diff --git a/.tmp-check-windows/.rustc_info.json b/.tmp-check-windows/.rustc_info.json new file mode 100644 index 000000000..f8932b67a --- /dev/null +++ b/.tmp-check-windows/.rustc_info.json @@ -0,0 +1 @@ +{"rustc_fingerprint":11718314890133433601,"outputs":{"17747080675513052775":{"success":true,"status":"","code":0,"stdout":"rustc 1.93.1 (01f6ddf75 2026-02-11)\nbinary: rustc\ncommit-hash: 01f6ddf7588f42ae2d7eb0a2f21d44e8e96674cf\ncommit-date: 2026-02-11\nhost: aarch64-apple-darwin\nrelease: 1.93.1\nLLVM version: 21.1.8\n","stderr":""},"7971740275564407648":{"success":true,"status":"","code":0,"stdout":"___\nlib___.rlib\nlib___.dylib\nlib___.dylib\nlib___.a\nlib___.dylib\n/Users/coso/.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":""},"12004014463585500860":{"success":true,"status":"","code":0,"stdout":"___.exe\nlib___.rlib\n___.dll\n___.dll\n___.lib\n___.dll\n/Users/coso/.rustup/toolchains/stable-aarch64-apple-darwin\npacked\n___\ndebug_assertions\npanic=\"unwind\"\nproc_macro\ntarget_abi=\"\"\ntarget_arch=\"x86_64\"\ntarget_endian=\"little\"\ntarget_env=\"msvc\"\ntarget_family=\"windows\"\ntarget_feature=\"cmpxchg16b\"\ntarget_feature=\"fxsr\"\ntarget_feature=\"sse\"\ntarget_feature=\"sse2\"\ntarget_feature=\"sse3\"\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=\"windows\"\ntarget_pointer_width=\"64\"\ntarget_vendor=\"pc\"\nwindows\n","stderr":""}},"successes":{}} \ No newline at end of file diff --git a/.tmp-check-windows/CACHEDIR.TAG b/.tmp-check-windows/CACHEDIR.TAG new file mode 100644 index 000000000..20d7c319c --- /dev/null +++ b/.tmp-check-windows/CACHEDIR.TAG @@ -0,0 +1,3 @@ +Signature: 8a477f597d28d172789f06886806bc55 +# This file is a cache directory tag created by cargo. +# For information about cache directory tags see https://bford.info/cachedir/ diff --git a/.tmp-check-windows/debug/.cargo-lock b/.tmp-check-windows/debug/.cargo-lock new file mode 100644 index 000000000..e69de29bb diff --git a/.tmp-check-windows/debug/.fingerprint/anyhow-b3e06dd550d929f4/build-script-build-script-build b/.tmp-check-windows/debug/.fingerprint/anyhow-b3e06dd550d929f4/build-script-build-script-build new file mode 100644 index 000000000..f17bcf508 --- /dev/null +++ b/.tmp-check-windows/debug/.fingerprint/anyhow-b3e06dd550d929f4/build-script-build-script-build @@ -0,0 +1 @@ +9236b45be5c2e85d \ No newline at end of file diff --git a/.tmp-check-windows/debug/.fingerprint/anyhow-b3e06dd550d929f4/build-script-build-script-build.json b/.tmp-check-windows/debug/.fingerprint/anyhow-b3e06dd550d929f4/build-script-build-script-build.json new file mode 100644 index 000000000..886822767 --- /dev/null +++ b/.tmp-check-windows/debug/.fingerprint/anyhow-b3e06dd550d929f4/build-script-build-script-build.json @@ -0,0 +1 @@ +{"rustc":13850170861107434965,"features":"[\"default\", \"std\"]","declared_features":"[\"backtrace\", \"default\", \"std\"]","target":5408242616063297496,"profile":5347358027863023418,"path":438583856841409704,"deps":[],"local":[{"CheckDepInfo":{"dep_info":"debug/.fingerprint/anyhow-b3e06dd550d929f4/dep-build-script-build-script-build","checksum":false}}],"rustflags":[],"config":2069994364910194474,"compile_kind":0} \ No newline at end of file diff --git a/.tmp-check-windows/debug/.fingerprint/anyhow-b3e06dd550d929f4/dep-build-script-build-script-build b/.tmp-check-windows/debug/.fingerprint/anyhow-b3e06dd550d929f4/dep-build-script-build-script-build new file mode 100644 index 000000000..ec3cb8bfd Binary files /dev/null and b/.tmp-check-windows/debug/.fingerprint/anyhow-b3e06dd550d929f4/dep-build-script-build-script-build differ diff --git a/.tmp-check-windows/debug/.fingerprint/anyhow-b3e06dd550d929f4/invoked.timestamp b/.tmp-check-windows/debug/.fingerprint/anyhow-b3e06dd550d929f4/invoked.timestamp new file mode 100644 index 000000000..e00328da5 --- /dev/null +++ b/.tmp-check-windows/debug/.fingerprint/anyhow-b3e06dd550d929f4/invoked.timestamp @@ -0,0 +1 @@ +This file has an mtime of when this was started. \ No newline at end of file diff --git a/.tmp-check-windows/debug/.fingerprint/autocfg-152ca27a30846b56/dep-lib-autocfg b/.tmp-check-windows/debug/.fingerprint/autocfg-152ca27a30846b56/dep-lib-autocfg new file mode 100644 index 000000000..ec3cb8bfd Binary files /dev/null and b/.tmp-check-windows/debug/.fingerprint/autocfg-152ca27a30846b56/dep-lib-autocfg differ diff --git a/.tmp-check-windows/debug/.fingerprint/autocfg-152ca27a30846b56/invoked.timestamp b/.tmp-check-windows/debug/.fingerprint/autocfg-152ca27a30846b56/invoked.timestamp new file mode 100644 index 000000000..e00328da5 --- /dev/null +++ b/.tmp-check-windows/debug/.fingerprint/autocfg-152ca27a30846b56/invoked.timestamp @@ -0,0 +1 @@ +This file has an mtime of when this was started. \ No newline at end of file diff --git a/.tmp-check-windows/debug/.fingerprint/autocfg-152ca27a30846b56/lib-autocfg b/.tmp-check-windows/debug/.fingerprint/autocfg-152ca27a30846b56/lib-autocfg new file mode 100644 index 000000000..251a2521d --- /dev/null +++ b/.tmp-check-windows/debug/.fingerprint/autocfg-152ca27a30846b56/lib-autocfg @@ -0,0 +1 @@ +91b210fbcb0c891b \ No newline at end of file diff --git a/.tmp-check-windows/debug/.fingerprint/autocfg-152ca27a30846b56/lib-autocfg.json b/.tmp-check-windows/debug/.fingerprint/autocfg-152ca27a30846b56/lib-autocfg.json new file mode 100644 index 000000000..d548bbf8a --- /dev/null +++ b/.tmp-check-windows/debug/.fingerprint/autocfg-152ca27a30846b56/lib-autocfg.json @@ -0,0 +1 @@ +{"rustc":13850170861107434965,"features":"[]","declared_features":"[]","target":6962977057026645649,"profile":5347358027863023418,"path":10561798840686315212,"deps":[],"local":[{"CheckDepInfo":{"dep_info":"debug/.fingerprint/autocfg-152ca27a30846b56/dep-lib-autocfg","checksum":false}}],"rustflags":[],"config":2069994364910194474,"compile_kind":0} \ No newline at end of file diff --git a/.tmp-check-windows/debug/.fingerprint/cc-9a040564725839fc/dep-lib-cc b/.tmp-check-windows/debug/.fingerprint/cc-9a040564725839fc/dep-lib-cc new file mode 100644 index 000000000..ec3cb8bfd Binary files /dev/null and b/.tmp-check-windows/debug/.fingerprint/cc-9a040564725839fc/dep-lib-cc differ diff --git a/.tmp-check-windows/debug/.fingerprint/cc-9a040564725839fc/invoked.timestamp b/.tmp-check-windows/debug/.fingerprint/cc-9a040564725839fc/invoked.timestamp new file mode 100644 index 000000000..e00328da5 --- /dev/null +++ b/.tmp-check-windows/debug/.fingerprint/cc-9a040564725839fc/invoked.timestamp @@ -0,0 +1 @@ +This file has an mtime of when this was started. \ No newline at end of file diff --git a/.tmp-check-windows/debug/.fingerprint/cc-9a040564725839fc/lib-cc b/.tmp-check-windows/debug/.fingerprint/cc-9a040564725839fc/lib-cc new file mode 100644 index 000000000..12294aedd --- /dev/null +++ b/.tmp-check-windows/debug/.fingerprint/cc-9a040564725839fc/lib-cc @@ -0,0 +1 @@ +b127b5780b5a96d3 \ No newline at end of file diff --git a/.tmp-check-windows/debug/.fingerprint/cc-9a040564725839fc/lib-cc.json b/.tmp-check-windows/debug/.fingerprint/cc-9a040564725839fc/lib-cc.json new file mode 100644 index 000000000..2a69636b0 --- /dev/null +++ b/.tmp-check-windows/debug/.fingerprint/cc-9a040564725839fc/lib-cc.json @@ -0,0 +1 @@ +{"rustc":13850170861107434965,"features":"[\"parallel\"]","declared_features":"[\"jobserver\", \"parallel\"]","target":11042037588551934598,"profile":2412554170225118858,"path":10369400415696255514,"deps":[[203594543813181569,"libc",false,7336680577683591520],[8410525223747752176,"shlex",false,5581476923035697754],[9159843920629750842,"find_msvc_tools",false,14021338141885018594],[16589527331085190088,"jobserver",false,16888315189732138046]],"local":[{"CheckDepInfo":{"dep_info":"debug/.fingerprint/cc-9a040564725839fc/dep-lib-cc","checksum":false}}],"rustflags":[],"config":2069994364910194474,"compile_kind":0} \ No newline at end of file diff --git a/.tmp-check-windows/debug/.fingerprint/cfg-if-bb242b5271acb8bf/dep-lib-cfg_if b/.tmp-check-windows/debug/.fingerprint/cfg-if-bb242b5271acb8bf/dep-lib-cfg_if new file mode 100644 index 000000000..ec3cb8bfd Binary files /dev/null and b/.tmp-check-windows/debug/.fingerprint/cfg-if-bb242b5271acb8bf/dep-lib-cfg_if differ diff --git a/.tmp-check-windows/debug/.fingerprint/cfg-if-bb242b5271acb8bf/invoked.timestamp b/.tmp-check-windows/debug/.fingerprint/cfg-if-bb242b5271acb8bf/invoked.timestamp new file mode 100644 index 000000000..e00328da5 --- /dev/null +++ b/.tmp-check-windows/debug/.fingerprint/cfg-if-bb242b5271acb8bf/invoked.timestamp @@ -0,0 +1 @@ +This file has an mtime of when this was started. \ No newline at end of file diff --git a/.tmp-check-windows/debug/.fingerprint/cfg-if-bb242b5271acb8bf/lib-cfg_if b/.tmp-check-windows/debug/.fingerprint/cfg-if-bb242b5271acb8bf/lib-cfg_if new file mode 100644 index 000000000..88f76c6ba --- /dev/null +++ b/.tmp-check-windows/debug/.fingerprint/cfg-if-bb242b5271acb8bf/lib-cfg_if @@ -0,0 +1 @@ +1e33c272f04e78e0 \ No newline at end of file diff --git a/.tmp-check-windows/debug/.fingerprint/cfg-if-bb242b5271acb8bf/lib-cfg_if.json b/.tmp-check-windows/debug/.fingerprint/cfg-if-bb242b5271acb8bf/lib-cfg_if.json new file mode 100644 index 000000000..adaffd4ad --- /dev/null +++ b/.tmp-check-windows/debug/.fingerprint/cfg-if-bb242b5271acb8bf/lib-cfg_if.json @@ -0,0 +1 @@ +{"rustc":13850170861107434965,"features":"[]","declared_features":"[\"core\", \"rustc-dep-of-std\"]","target":13840298032947503755,"profile":5347358027863023418,"path":4021105622758704507,"deps":[],"local":[{"CheckDepInfo":{"dep_info":"debug/.fingerprint/cfg-if-bb242b5271acb8bf/dep-lib-cfg_if","checksum":false}}],"rustflags":[],"config":2069994364910194474,"compile_kind":0} \ No newline at end of file diff --git a/.tmp-check-windows/debug/.fingerprint/crc32fast-69912509e6110587/build-script-build-script-build b/.tmp-check-windows/debug/.fingerprint/crc32fast-69912509e6110587/build-script-build-script-build new file mode 100644 index 000000000..ea806d9b9 --- /dev/null +++ b/.tmp-check-windows/debug/.fingerprint/crc32fast-69912509e6110587/build-script-build-script-build @@ -0,0 +1 @@ +85c1de7819b218e4 \ No newline at end of file diff --git a/.tmp-check-windows/debug/.fingerprint/crc32fast-69912509e6110587/build-script-build-script-build.json b/.tmp-check-windows/debug/.fingerprint/crc32fast-69912509e6110587/build-script-build-script-build.json new file mode 100644 index 000000000..bcf41d818 --- /dev/null +++ b/.tmp-check-windows/debug/.fingerprint/crc32fast-69912509e6110587/build-script-build-script-build.json @@ -0,0 +1 @@ +{"rustc":13850170861107434965,"features":"[\"default\", \"std\"]","declared_features":"[\"default\", \"nightly\", \"std\"]","target":5408242616063297496,"profile":5347358027863023418,"path":8689023696456998282,"deps":[],"local":[{"CheckDepInfo":{"dep_info":"debug/.fingerprint/crc32fast-69912509e6110587/dep-build-script-build-script-build","checksum":false}}],"rustflags":[],"config":2069994364910194474,"compile_kind":0} \ No newline at end of file diff --git a/.tmp-check-windows/debug/.fingerprint/crc32fast-69912509e6110587/dep-build-script-build-script-build b/.tmp-check-windows/debug/.fingerprint/crc32fast-69912509e6110587/dep-build-script-build-script-build new file mode 100644 index 000000000..ec3cb8bfd Binary files /dev/null and b/.tmp-check-windows/debug/.fingerprint/crc32fast-69912509e6110587/dep-build-script-build-script-build differ diff --git a/.tmp-check-windows/debug/.fingerprint/crc32fast-69912509e6110587/invoked.timestamp b/.tmp-check-windows/debug/.fingerprint/crc32fast-69912509e6110587/invoked.timestamp new file mode 100644 index 000000000..e00328da5 --- /dev/null +++ b/.tmp-check-windows/debug/.fingerprint/crc32fast-69912509e6110587/invoked.timestamp @@ -0,0 +1 @@ +This file has an mtime of when this was started. \ No newline at end of file diff --git a/.tmp-check-windows/debug/.fingerprint/dunce-1e059af6f562864b/dep-lib-dunce b/.tmp-check-windows/debug/.fingerprint/dunce-1e059af6f562864b/dep-lib-dunce new file mode 100644 index 000000000..ec3cb8bfd Binary files /dev/null and b/.tmp-check-windows/debug/.fingerprint/dunce-1e059af6f562864b/dep-lib-dunce differ diff --git a/.tmp-check-windows/debug/.fingerprint/dunce-1e059af6f562864b/invoked.timestamp b/.tmp-check-windows/debug/.fingerprint/dunce-1e059af6f562864b/invoked.timestamp new file mode 100644 index 000000000..e00328da5 --- /dev/null +++ b/.tmp-check-windows/debug/.fingerprint/dunce-1e059af6f562864b/invoked.timestamp @@ -0,0 +1 @@ +This file has an mtime of when this was started. \ No newline at end of file diff --git a/.tmp-check-windows/debug/.fingerprint/dunce-1e059af6f562864b/lib-dunce b/.tmp-check-windows/debug/.fingerprint/dunce-1e059af6f562864b/lib-dunce new file mode 100644 index 000000000..264ca7685 --- /dev/null +++ b/.tmp-check-windows/debug/.fingerprint/dunce-1e059af6f562864b/lib-dunce @@ -0,0 +1 @@ +93198d5b0f54bd51 \ No newline at end of file diff --git a/.tmp-check-windows/debug/.fingerprint/dunce-1e059af6f562864b/lib-dunce.json b/.tmp-check-windows/debug/.fingerprint/dunce-1e059af6f562864b/lib-dunce.json new file mode 100644 index 000000000..07a97e78e --- /dev/null +++ b/.tmp-check-windows/debug/.fingerprint/dunce-1e059af6f562864b/lib-dunce.json @@ -0,0 +1 @@ +{"rustc":13850170861107434965,"features":"[]","declared_features":"[]","target":2507403751003635712,"profile":5347358027863023418,"path":4251989995781477560,"deps":[],"local":[{"CheckDepInfo":{"dep_info":"debug/.fingerprint/dunce-1e059af6f562864b/dep-lib-dunce","checksum":false}}],"rustflags":[],"config":2069994364910194474,"compile_kind":0} \ No newline at end of file diff --git a/.tmp-check-windows/debug/.fingerprint/find-msvc-tools-330627f690eb7ff8/dep-lib-find_msvc_tools b/.tmp-check-windows/debug/.fingerprint/find-msvc-tools-330627f690eb7ff8/dep-lib-find_msvc_tools new file mode 100644 index 000000000..ec3cb8bfd Binary files /dev/null and b/.tmp-check-windows/debug/.fingerprint/find-msvc-tools-330627f690eb7ff8/dep-lib-find_msvc_tools differ diff --git a/.tmp-check-windows/debug/.fingerprint/find-msvc-tools-330627f690eb7ff8/invoked.timestamp b/.tmp-check-windows/debug/.fingerprint/find-msvc-tools-330627f690eb7ff8/invoked.timestamp new file mode 100644 index 000000000..e00328da5 --- /dev/null +++ b/.tmp-check-windows/debug/.fingerprint/find-msvc-tools-330627f690eb7ff8/invoked.timestamp @@ -0,0 +1 @@ +This file has an mtime of when this was started. \ No newline at end of file diff --git a/.tmp-check-windows/debug/.fingerprint/find-msvc-tools-330627f690eb7ff8/lib-find_msvc_tools b/.tmp-check-windows/debug/.fingerprint/find-msvc-tools-330627f690eb7ff8/lib-find_msvc_tools new file mode 100644 index 000000000..88bbe5e30 --- /dev/null +++ b/.tmp-check-windows/debug/.fingerprint/find-msvc-tools-330627f690eb7ff8/lib-find_msvc_tools @@ -0,0 +1 @@ +e231b176c0cc95c2 \ No newline at end of file diff --git a/.tmp-check-windows/debug/.fingerprint/find-msvc-tools-330627f690eb7ff8/lib-find_msvc_tools.json b/.tmp-check-windows/debug/.fingerprint/find-msvc-tools-330627f690eb7ff8/lib-find_msvc_tools.json new file mode 100644 index 000000000..14c92962d --- /dev/null +++ b/.tmp-check-windows/debug/.fingerprint/find-msvc-tools-330627f690eb7ff8/lib-find_msvc_tools.json @@ -0,0 +1 @@ +{"rustc":13850170861107434965,"features":"[]","declared_features":"[]","target":10620166500288925791,"profile":2412554170225118858,"path":15263894505388962951,"deps":[],"local":[{"CheckDepInfo":{"dep_info":"debug/.fingerprint/find-msvc-tools-330627f690eb7ff8/dep-lib-find_msvc_tools","checksum":false}}],"rustflags":[],"config":2069994364910194474,"compile_kind":0} \ No newline at end of file diff --git a/.tmp-check-windows/debug/.fingerprint/fnv-3aad16c2d5893feb/dep-lib-fnv b/.tmp-check-windows/debug/.fingerprint/fnv-3aad16c2d5893feb/dep-lib-fnv new file mode 100644 index 000000000..ec3cb8bfd Binary files /dev/null and b/.tmp-check-windows/debug/.fingerprint/fnv-3aad16c2d5893feb/dep-lib-fnv differ diff --git a/.tmp-check-windows/debug/.fingerprint/fnv-3aad16c2d5893feb/invoked.timestamp b/.tmp-check-windows/debug/.fingerprint/fnv-3aad16c2d5893feb/invoked.timestamp new file mode 100644 index 000000000..e00328da5 --- /dev/null +++ b/.tmp-check-windows/debug/.fingerprint/fnv-3aad16c2d5893feb/invoked.timestamp @@ -0,0 +1 @@ +This file has an mtime of when this was started. \ No newline at end of file diff --git a/.tmp-check-windows/debug/.fingerprint/fnv-3aad16c2d5893feb/lib-fnv b/.tmp-check-windows/debug/.fingerprint/fnv-3aad16c2d5893feb/lib-fnv new file mode 100644 index 000000000..a799ae92d --- /dev/null +++ b/.tmp-check-windows/debug/.fingerprint/fnv-3aad16c2d5893feb/lib-fnv @@ -0,0 +1 @@ +ddb7ffd074045267 \ No newline at end of file diff --git a/.tmp-check-windows/debug/.fingerprint/fnv-3aad16c2d5893feb/lib-fnv.json b/.tmp-check-windows/debug/.fingerprint/fnv-3aad16c2d5893feb/lib-fnv.json new file mode 100644 index 000000000..5925a82d1 --- /dev/null +++ b/.tmp-check-windows/debug/.fingerprint/fnv-3aad16c2d5893feb/lib-fnv.json @@ -0,0 +1 @@ +{"rustc":13850170861107434965,"features":"[\"default\", \"std\"]","declared_features":"[\"default\", \"std\"]","target":10248144769085601448,"profile":5347358027863023418,"path":4135225049254930421,"deps":[],"local":[{"CheckDepInfo":{"dep_info":"debug/.fingerprint/fnv-3aad16c2d5893feb/dep-lib-fnv","checksum":false}}],"rustflags":[],"config":2069994364910194474,"compile_kind":0} \ No newline at end of file diff --git a/.tmp-check-windows/debug/.fingerprint/generic-array-31795b474f687693/build-script-build-script-build b/.tmp-check-windows/debug/.fingerprint/generic-array-31795b474f687693/build-script-build-script-build new file mode 100644 index 000000000..604d0f1ab --- /dev/null +++ b/.tmp-check-windows/debug/.fingerprint/generic-array-31795b474f687693/build-script-build-script-build @@ -0,0 +1 @@ +29e21323b661ebab \ No newline at end of file diff --git a/.tmp-check-windows/debug/.fingerprint/generic-array-31795b474f687693/build-script-build-script-build.json b/.tmp-check-windows/debug/.fingerprint/generic-array-31795b474f687693/build-script-build-script-build.json new file mode 100644 index 000000000..2d2c0ffdf --- /dev/null +++ b/.tmp-check-windows/debug/.fingerprint/generic-array-31795b474f687693/build-script-build-script-build.json @@ -0,0 +1 @@ +{"rustc":13850170861107434965,"features":"[\"more_lengths\"]","declared_features":"[\"more_lengths\", \"serde\", \"zeroize\"]","target":12318548087768197662,"profile":5347358027863023418,"path":5808410647007746462,"deps":[[5398981501050481332,"version_check",false,10209375542989546637]],"local":[{"CheckDepInfo":{"dep_info":"debug/.fingerprint/generic-array-31795b474f687693/dep-build-script-build-script-build","checksum":false}}],"rustflags":[],"config":2069994364910194474,"compile_kind":0} \ No newline at end of file diff --git a/.tmp-check-windows/debug/.fingerprint/generic-array-31795b474f687693/dep-build-script-build-script-build b/.tmp-check-windows/debug/.fingerprint/generic-array-31795b474f687693/dep-build-script-build-script-build new file mode 100644 index 000000000..ec3cb8bfd Binary files /dev/null and b/.tmp-check-windows/debug/.fingerprint/generic-array-31795b474f687693/dep-build-script-build-script-build differ diff --git a/.tmp-check-windows/debug/.fingerprint/generic-array-31795b474f687693/invoked.timestamp b/.tmp-check-windows/debug/.fingerprint/generic-array-31795b474f687693/invoked.timestamp new file mode 100644 index 000000000..e00328da5 --- /dev/null +++ b/.tmp-check-windows/debug/.fingerprint/generic-array-31795b474f687693/invoked.timestamp @@ -0,0 +1 @@ +This file has an mtime of when this was started. \ No newline at end of file diff --git a/.tmp-check-windows/debug/.fingerprint/getrandom-11268112bacdfc1d/dep-lib-getrandom b/.tmp-check-windows/debug/.fingerprint/getrandom-11268112bacdfc1d/dep-lib-getrandom new file mode 100644 index 000000000..ec3cb8bfd Binary files /dev/null and b/.tmp-check-windows/debug/.fingerprint/getrandom-11268112bacdfc1d/dep-lib-getrandom differ diff --git a/.tmp-check-windows/debug/.fingerprint/getrandom-11268112bacdfc1d/invoked.timestamp b/.tmp-check-windows/debug/.fingerprint/getrandom-11268112bacdfc1d/invoked.timestamp new file mode 100644 index 000000000..e00328da5 --- /dev/null +++ b/.tmp-check-windows/debug/.fingerprint/getrandom-11268112bacdfc1d/invoked.timestamp @@ -0,0 +1 @@ +This file has an mtime of when this was started. \ No newline at end of file diff --git a/.tmp-check-windows/debug/.fingerprint/getrandom-11268112bacdfc1d/lib-getrandom b/.tmp-check-windows/debug/.fingerprint/getrandom-11268112bacdfc1d/lib-getrandom new file mode 100644 index 000000000..c690c258e --- /dev/null +++ b/.tmp-check-windows/debug/.fingerprint/getrandom-11268112bacdfc1d/lib-getrandom @@ -0,0 +1 @@ +a3789ceebf01c8d1 \ No newline at end of file diff --git a/.tmp-check-windows/debug/.fingerprint/getrandom-11268112bacdfc1d/lib-getrandom.json b/.tmp-check-windows/debug/.fingerprint/getrandom-11268112bacdfc1d/lib-getrandom.json new file mode 100644 index 000000000..996cc57d0 --- /dev/null +++ b/.tmp-check-windows/debug/.fingerprint/getrandom-11268112bacdfc1d/lib-getrandom.json @@ -0,0 +1 @@ +{"rustc":13850170861107434965,"features":"[\"std\"]","declared_features":"[\"compiler_builtins\", \"core\", \"custom\", \"js\", \"js-sys\", \"linux_disable_fallback\", \"rdrand\", \"rustc-dep-of-std\", \"std\", \"test-in-browser\", \"wasm-bindgen\"]","target":16244099637825074703,"profile":5347358027863023418,"path":1870863907584436639,"deps":[[203594543813181569,"libc",false,7336680577683591520],[7667230146095136825,"cfg_if",false,16174764856325583646]],"local":[{"CheckDepInfo":{"dep_info":"debug/.fingerprint/getrandom-11268112bacdfc1d/dep-lib-getrandom","checksum":false}}],"rustflags":[],"config":2069994364910194474,"compile_kind":0} \ No newline at end of file diff --git a/.tmp-check-windows/debug/.fingerprint/getrandom-1fa033f3fee610f0/build-script-build-script-build b/.tmp-check-windows/debug/.fingerprint/getrandom-1fa033f3fee610f0/build-script-build-script-build new file mode 100644 index 000000000..9ccd34c71 --- /dev/null +++ b/.tmp-check-windows/debug/.fingerprint/getrandom-1fa033f3fee610f0/build-script-build-script-build @@ -0,0 +1 @@ +4597a67f629e6bdc \ No newline at end of file diff --git a/.tmp-check-windows/debug/.fingerprint/getrandom-1fa033f3fee610f0/build-script-build-script-build.json b/.tmp-check-windows/debug/.fingerprint/getrandom-1fa033f3fee610f0/build-script-build-script-build.json new file mode 100644 index 000000000..697a425d7 --- /dev/null +++ b/.tmp-check-windows/debug/.fingerprint/getrandom-1fa033f3fee610f0/build-script-build-script-build.json @@ -0,0 +1 @@ +{"rustc":13850170861107434965,"features":"[]","declared_features":"[\"std\", \"sys_rng\", \"wasm_js\"]","target":2835126046236718539,"profile":54956885565002870,"path":4571784603348147615,"deps":[],"local":[{"CheckDepInfo":{"dep_info":"debug/.fingerprint/getrandom-1fa033f3fee610f0/dep-build-script-build-script-build","checksum":false}}],"rustflags":[],"config":2069994364910194474,"compile_kind":0} \ No newline at end of file diff --git a/.tmp-check-windows/debug/.fingerprint/getrandom-1fa033f3fee610f0/dep-build-script-build-script-build b/.tmp-check-windows/debug/.fingerprint/getrandom-1fa033f3fee610f0/dep-build-script-build-script-build new file mode 100644 index 000000000..ec3cb8bfd Binary files /dev/null and b/.tmp-check-windows/debug/.fingerprint/getrandom-1fa033f3fee610f0/dep-build-script-build-script-build differ diff --git a/.tmp-check-windows/debug/.fingerprint/getrandom-1fa033f3fee610f0/invoked.timestamp b/.tmp-check-windows/debug/.fingerprint/getrandom-1fa033f3fee610f0/invoked.timestamp new file mode 100644 index 000000000..e00328da5 --- /dev/null +++ b/.tmp-check-windows/debug/.fingerprint/getrandom-1fa033f3fee610f0/invoked.timestamp @@ -0,0 +1 @@ +This file has an mtime of when this was started. \ No newline at end of file diff --git a/.tmp-check-windows/debug/.fingerprint/getrandom-4a4edbcee435073f/run-build-script-build-script-build b/.tmp-check-windows/debug/.fingerprint/getrandom-4a4edbcee435073f/run-build-script-build-script-build new file mode 100644 index 000000000..4976bee18 --- /dev/null +++ b/.tmp-check-windows/debug/.fingerprint/getrandom-4a4edbcee435073f/run-build-script-build-script-build @@ -0,0 +1 @@ +f1c6fc4ed7d7afc6 \ No newline at end of file diff --git a/.tmp-check-windows/debug/.fingerprint/getrandom-4a4edbcee435073f/run-build-script-build-script-build.json b/.tmp-check-windows/debug/.fingerprint/getrandom-4a4edbcee435073f/run-build-script-build-script-build.json new file mode 100644 index 000000000..fe4d09215 --- /dev/null +++ b/.tmp-check-windows/debug/.fingerprint/getrandom-4a4edbcee435073f/run-build-script-build-script-build.json @@ -0,0 +1 @@ +{"rustc":13850170861107434965,"features":"","declared_features":"","target":0,"profile":0,"path":0,"deps":[[5170503507811329045,"build_script_build",false,8296193675333077115]],"local":[{"Precalculated":"0.1.16"}],"rustflags":[],"config":0,"compile_kind":0} \ No newline at end of file diff --git a/.tmp-check-windows/debug/.fingerprint/getrandom-4a9c4a505267276c/dep-lib-getrandom b/.tmp-check-windows/debug/.fingerprint/getrandom-4a9c4a505267276c/dep-lib-getrandom new file mode 100644 index 000000000..ec3cb8bfd Binary files /dev/null and b/.tmp-check-windows/debug/.fingerprint/getrandom-4a9c4a505267276c/dep-lib-getrandom differ diff --git a/.tmp-check-windows/debug/.fingerprint/getrandom-4a9c4a505267276c/invoked.timestamp b/.tmp-check-windows/debug/.fingerprint/getrandom-4a9c4a505267276c/invoked.timestamp new file mode 100644 index 000000000..e00328da5 --- /dev/null +++ b/.tmp-check-windows/debug/.fingerprint/getrandom-4a9c4a505267276c/invoked.timestamp @@ -0,0 +1 @@ +This file has an mtime of when this was started. \ No newline at end of file diff --git a/.tmp-check-windows/debug/.fingerprint/getrandom-4a9c4a505267276c/lib-getrandom b/.tmp-check-windows/debug/.fingerprint/getrandom-4a9c4a505267276c/lib-getrandom new file mode 100644 index 000000000..bf7b870f5 --- /dev/null +++ b/.tmp-check-windows/debug/.fingerprint/getrandom-4a9c4a505267276c/lib-getrandom @@ -0,0 +1 @@ +4559887188a2dbf9 \ No newline at end of file diff --git a/.tmp-check-windows/debug/.fingerprint/getrandom-4a9c4a505267276c/lib-getrandom.json b/.tmp-check-windows/debug/.fingerprint/getrandom-4a9c4a505267276c/lib-getrandom.json new file mode 100644 index 000000000..104f0f573 --- /dev/null +++ b/.tmp-check-windows/debug/.fingerprint/getrandom-4a9c4a505267276c/lib-getrandom.json @@ -0,0 +1 @@ +{"rustc":13850170861107434965,"features":"[\"std\"]","declared_features":"[\"bindgen\", \"compiler_builtins\", \"core\", \"dummy\", \"js-sys\", \"log\", \"rustc-dep-of-std\", \"std\", \"stdweb\", \"test-in-browser\", \"wasm-bindgen\"]","target":3140061874755240240,"profile":5347358027863023418,"path":15491371076775703130,"deps":[[203594543813181569,"libc",false,7336680577683591520],[5170503507811329045,"build_script_build",false,14316899060177225457],[7667230146095136825,"cfg_if",false,16174764856325583646]],"local":[{"CheckDepInfo":{"dep_info":"debug/.fingerprint/getrandom-4a9c4a505267276c/dep-lib-getrandom","checksum":false}}],"rustflags":[],"config":2069994364910194474,"compile_kind":0} \ No newline at end of file diff --git a/.tmp-check-windows/debug/.fingerprint/getrandom-95aa92372f5612e7/build-script-build-script-build b/.tmp-check-windows/debug/.fingerprint/getrandom-95aa92372f5612e7/build-script-build-script-build new file mode 100644 index 000000000..9f0f9d18c --- /dev/null +++ b/.tmp-check-windows/debug/.fingerprint/getrandom-95aa92372f5612e7/build-script-build-script-build @@ -0,0 +1 @@ +7b08124e31002273 \ No newline at end of file diff --git a/.tmp-check-windows/debug/.fingerprint/getrandom-95aa92372f5612e7/build-script-build-script-build.json b/.tmp-check-windows/debug/.fingerprint/getrandom-95aa92372f5612e7/build-script-build-script-build.json new file mode 100644 index 000000000..2d62f5421 --- /dev/null +++ b/.tmp-check-windows/debug/.fingerprint/getrandom-95aa92372f5612e7/build-script-build-script-build.json @@ -0,0 +1 @@ +{"rustc":13850170861107434965,"features":"[\"std\"]","declared_features":"[\"bindgen\", \"compiler_builtins\", \"core\", \"dummy\", \"js-sys\", \"log\", \"rustc-dep-of-std\", \"std\", \"stdweb\", \"test-in-browser\", \"wasm-bindgen\"]","target":17883862002600103897,"profile":5347358027863023418,"path":3408711168535472431,"deps":[],"local":[{"CheckDepInfo":{"dep_info":"debug/.fingerprint/getrandom-95aa92372f5612e7/dep-build-script-build-script-build","checksum":false}}],"rustflags":[],"config":2069994364910194474,"compile_kind":0} \ No newline at end of file diff --git a/.tmp-check-windows/debug/.fingerprint/getrandom-95aa92372f5612e7/dep-build-script-build-script-build b/.tmp-check-windows/debug/.fingerprint/getrandom-95aa92372f5612e7/dep-build-script-build-script-build new file mode 100644 index 000000000..ec3cb8bfd Binary files /dev/null and b/.tmp-check-windows/debug/.fingerprint/getrandom-95aa92372f5612e7/dep-build-script-build-script-build differ diff --git a/.tmp-check-windows/debug/.fingerprint/getrandom-95aa92372f5612e7/invoked.timestamp b/.tmp-check-windows/debug/.fingerprint/getrandom-95aa92372f5612e7/invoked.timestamp new file mode 100644 index 000000000..e00328da5 --- /dev/null +++ b/.tmp-check-windows/debug/.fingerprint/getrandom-95aa92372f5612e7/invoked.timestamp @@ -0,0 +1 @@ +This file has an mtime of when this was started. \ No newline at end of file diff --git a/.tmp-check-windows/debug/.fingerprint/httparse-3c9b1a9536533208/build-script-build-script-build b/.tmp-check-windows/debug/.fingerprint/httparse-3c9b1a9536533208/build-script-build-script-build new file mode 100644 index 000000000..d9c904957 --- /dev/null +++ b/.tmp-check-windows/debug/.fingerprint/httparse-3c9b1a9536533208/build-script-build-script-build @@ -0,0 +1 @@ +a47c4308f5046109 \ No newline at end of file diff --git a/.tmp-check-windows/debug/.fingerprint/httparse-3c9b1a9536533208/build-script-build-script-build.json b/.tmp-check-windows/debug/.fingerprint/httparse-3c9b1a9536533208/build-script-build-script-build.json new file mode 100644 index 000000000..a939c3e31 --- /dev/null +++ b/.tmp-check-windows/debug/.fingerprint/httparse-3c9b1a9536533208/build-script-build-script-build.json @@ -0,0 +1 @@ +{"rustc":13850170861107434965,"features":"[\"default\", \"std\"]","declared_features":"[\"default\", \"std\"]","target":17883862002600103897,"profile":9103622579043914327,"path":6049262837430550036,"deps":[],"local":[{"CheckDepInfo":{"dep_info":"debug/.fingerprint/httparse-3c9b1a9536533208/dep-build-script-build-script-build","checksum":false}}],"rustflags":[],"config":2069994364910194474,"compile_kind":0} \ No newline at end of file diff --git a/.tmp-check-windows/debug/.fingerprint/httparse-3c9b1a9536533208/dep-build-script-build-script-build b/.tmp-check-windows/debug/.fingerprint/httparse-3c9b1a9536533208/dep-build-script-build-script-build new file mode 100644 index 000000000..ec3cb8bfd Binary files /dev/null and b/.tmp-check-windows/debug/.fingerprint/httparse-3c9b1a9536533208/dep-build-script-build-script-build differ diff --git a/.tmp-check-windows/debug/.fingerprint/httparse-3c9b1a9536533208/invoked.timestamp b/.tmp-check-windows/debug/.fingerprint/httparse-3c9b1a9536533208/invoked.timestamp new file mode 100644 index 000000000..e00328da5 --- /dev/null +++ b/.tmp-check-windows/debug/.fingerprint/httparse-3c9b1a9536533208/invoked.timestamp @@ -0,0 +1 @@ +This file has an mtime of when this was started. \ No newline at end of file diff --git a/.tmp-check-windows/debug/.fingerprint/icu_normalizer_data-a3fe3ca9f44361c5/build-script-build-script-build b/.tmp-check-windows/debug/.fingerprint/icu_normalizer_data-a3fe3ca9f44361c5/build-script-build-script-build new file mode 100644 index 000000000..995a99b67 --- /dev/null +++ b/.tmp-check-windows/debug/.fingerprint/icu_normalizer_data-a3fe3ca9f44361c5/build-script-build-script-build @@ -0,0 +1 @@ +f6fb7e7d286cf96f \ No newline at end of file diff --git a/.tmp-check-windows/debug/.fingerprint/icu_normalizer_data-a3fe3ca9f44361c5/build-script-build-script-build.json b/.tmp-check-windows/debug/.fingerprint/icu_normalizer_data-a3fe3ca9f44361c5/build-script-build-script-build.json new file mode 100644 index 000000000..e2212234a --- /dev/null +++ b/.tmp-check-windows/debug/.fingerprint/icu_normalizer_data-a3fe3ca9f44361c5/build-script-build-script-build.json @@ -0,0 +1 @@ +{"rustc":13850170861107434965,"features":"[]","declared_features":"[]","target":5408242616063297496,"profile":8265957076240128272,"path":5155760063422148348,"deps":[],"local":[{"CheckDepInfo":{"dep_info":"debug/.fingerprint/icu_normalizer_data-a3fe3ca9f44361c5/dep-build-script-build-script-build","checksum":false}}],"rustflags":[],"config":2069994364910194474,"compile_kind":0} \ No newline at end of file diff --git a/.tmp-check-windows/debug/.fingerprint/icu_normalizer_data-a3fe3ca9f44361c5/dep-build-script-build-script-build b/.tmp-check-windows/debug/.fingerprint/icu_normalizer_data-a3fe3ca9f44361c5/dep-build-script-build-script-build new file mode 100644 index 000000000..ec3cb8bfd Binary files /dev/null and b/.tmp-check-windows/debug/.fingerprint/icu_normalizer_data-a3fe3ca9f44361c5/dep-build-script-build-script-build differ diff --git a/.tmp-check-windows/debug/.fingerprint/icu_normalizer_data-a3fe3ca9f44361c5/invoked.timestamp b/.tmp-check-windows/debug/.fingerprint/icu_normalizer_data-a3fe3ca9f44361c5/invoked.timestamp new file mode 100644 index 000000000..e00328da5 --- /dev/null +++ b/.tmp-check-windows/debug/.fingerprint/icu_normalizer_data-a3fe3ca9f44361c5/invoked.timestamp @@ -0,0 +1 @@ +This file has an mtime of when this was started. \ No newline at end of file diff --git a/.tmp-check-windows/debug/.fingerprint/icu_properties_data-fad2f27a512b9f47/build-script-build-script-build b/.tmp-check-windows/debug/.fingerprint/icu_properties_data-fad2f27a512b9f47/build-script-build-script-build new file mode 100644 index 000000000..e801f250f --- /dev/null +++ b/.tmp-check-windows/debug/.fingerprint/icu_properties_data-fad2f27a512b9f47/build-script-build-script-build @@ -0,0 +1 @@ +f1f228001835e575 \ No newline at end of file diff --git a/.tmp-check-windows/debug/.fingerprint/icu_properties_data-fad2f27a512b9f47/build-script-build-script-build.json b/.tmp-check-windows/debug/.fingerprint/icu_properties_data-fad2f27a512b9f47/build-script-build-script-build.json new file mode 100644 index 000000000..db1c38a48 --- /dev/null +++ b/.tmp-check-windows/debug/.fingerprint/icu_properties_data-fad2f27a512b9f47/build-script-build-script-build.json @@ -0,0 +1 @@ +{"rustc":13850170861107434965,"features":"[]","declared_features":"[]","target":5408242616063297496,"profile":8265957076240128272,"path":1407994214010245795,"deps":[],"local":[{"CheckDepInfo":{"dep_info":"debug/.fingerprint/icu_properties_data-fad2f27a512b9f47/dep-build-script-build-script-build","checksum":false}}],"rustflags":[],"config":2069994364910194474,"compile_kind":0} \ No newline at end of file diff --git a/.tmp-check-windows/debug/.fingerprint/icu_properties_data-fad2f27a512b9f47/dep-build-script-build-script-build b/.tmp-check-windows/debug/.fingerprint/icu_properties_data-fad2f27a512b9f47/dep-build-script-build-script-build new file mode 100644 index 000000000..ec3cb8bfd Binary files /dev/null and b/.tmp-check-windows/debug/.fingerprint/icu_properties_data-fad2f27a512b9f47/dep-build-script-build-script-build differ diff --git a/.tmp-check-windows/debug/.fingerprint/icu_properties_data-fad2f27a512b9f47/invoked.timestamp b/.tmp-check-windows/debug/.fingerprint/icu_properties_data-fad2f27a512b9f47/invoked.timestamp new file mode 100644 index 000000000..e00328da5 --- /dev/null +++ b/.tmp-check-windows/debug/.fingerprint/icu_properties_data-fad2f27a512b9f47/invoked.timestamp @@ -0,0 +1 @@ +This file has an mtime of when this was started. \ No newline at end of file diff --git a/.tmp-check-windows/debug/.fingerprint/ident_case-013f6ec9f8223e21/dep-lib-ident_case b/.tmp-check-windows/debug/.fingerprint/ident_case-013f6ec9f8223e21/dep-lib-ident_case new file mode 100644 index 000000000..ec3cb8bfd Binary files /dev/null and b/.tmp-check-windows/debug/.fingerprint/ident_case-013f6ec9f8223e21/dep-lib-ident_case differ diff --git a/.tmp-check-windows/debug/.fingerprint/ident_case-013f6ec9f8223e21/invoked.timestamp b/.tmp-check-windows/debug/.fingerprint/ident_case-013f6ec9f8223e21/invoked.timestamp new file mode 100644 index 000000000..e00328da5 --- /dev/null +++ b/.tmp-check-windows/debug/.fingerprint/ident_case-013f6ec9f8223e21/invoked.timestamp @@ -0,0 +1 @@ +This file has an mtime of when this was started. \ No newline at end of file diff --git a/.tmp-check-windows/debug/.fingerprint/ident_case-013f6ec9f8223e21/lib-ident_case b/.tmp-check-windows/debug/.fingerprint/ident_case-013f6ec9f8223e21/lib-ident_case new file mode 100644 index 000000000..bc7fd1588 --- /dev/null +++ b/.tmp-check-windows/debug/.fingerprint/ident_case-013f6ec9f8223e21/lib-ident_case @@ -0,0 +1 @@ +9199b0037c894d26 \ No newline at end of file diff --git a/.tmp-check-windows/debug/.fingerprint/ident_case-013f6ec9f8223e21/lib-ident_case.json b/.tmp-check-windows/debug/.fingerprint/ident_case-013f6ec9f8223e21/lib-ident_case.json new file mode 100644 index 000000000..125bd8221 --- /dev/null +++ b/.tmp-check-windows/debug/.fingerprint/ident_case-013f6ec9f8223e21/lib-ident_case.json @@ -0,0 +1 @@ +{"rustc":13850170861107434965,"features":"[]","declared_features":"[]","target":5776078485490251590,"profile":5347358027863023418,"path":5600756793277184213,"deps":[],"local":[{"CheckDepInfo":{"dep_info":"debug/.fingerprint/ident_case-013f6ec9f8223e21/dep-lib-ident_case","checksum":false}}],"rustflags":[],"config":2069994364910194474,"compile_kind":0} \ No newline at end of file diff --git a/.tmp-check-windows/debug/.fingerprint/itoa-25a0f54eb7c7164e/dep-lib-itoa b/.tmp-check-windows/debug/.fingerprint/itoa-25a0f54eb7c7164e/dep-lib-itoa new file mode 100644 index 000000000..ec3cb8bfd Binary files /dev/null and b/.tmp-check-windows/debug/.fingerprint/itoa-25a0f54eb7c7164e/dep-lib-itoa differ diff --git a/.tmp-check-windows/debug/.fingerprint/itoa-25a0f54eb7c7164e/invoked.timestamp b/.tmp-check-windows/debug/.fingerprint/itoa-25a0f54eb7c7164e/invoked.timestamp new file mode 100644 index 000000000..e00328da5 --- /dev/null +++ b/.tmp-check-windows/debug/.fingerprint/itoa-25a0f54eb7c7164e/invoked.timestamp @@ -0,0 +1 @@ +This file has an mtime of when this was started. \ No newline at end of file diff --git a/.tmp-check-windows/debug/.fingerprint/itoa-25a0f54eb7c7164e/lib-itoa b/.tmp-check-windows/debug/.fingerprint/itoa-25a0f54eb7c7164e/lib-itoa new file mode 100644 index 000000000..4e7403f70 --- /dev/null +++ b/.tmp-check-windows/debug/.fingerprint/itoa-25a0f54eb7c7164e/lib-itoa @@ -0,0 +1 @@ +3fc8e1c1463ad642 \ No newline at end of file diff --git a/.tmp-check-windows/debug/.fingerprint/itoa-25a0f54eb7c7164e/lib-itoa.json b/.tmp-check-windows/debug/.fingerprint/itoa-25a0f54eb7c7164e/lib-itoa.json new file mode 100644 index 000000000..37415ea32 --- /dev/null +++ b/.tmp-check-windows/debug/.fingerprint/itoa-25a0f54eb7c7164e/lib-itoa.json @@ -0,0 +1 @@ +{"rustc":13850170861107434965,"features":"[]","declared_features":"[\"no-panic\"]","target":18426369533666673425,"profile":5347358027863023418,"path":502996512233140141,"deps":[],"local":[{"CheckDepInfo":{"dep_info":"debug/.fingerprint/itoa-25a0f54eb7c7164e/dep-lib-itoa","checksum":false}}],"rustflags":[],"config":2069994364910194474,"compile_kind":0} \ No newline at end of file diff --git a/.tmp-check-windows/debug/.fingerprint/jobserver-847f1be937f25301/dep-lib-jobserver b/.tmp-check-windows/debug/.fingerprint/jobserver-847f1be937f25301/dep-lib-jobserver new file mode 100644 index 000000000..ec3cb8bfd Binary files /dev/null and b/.tmp-check-windows/debug/.fingerprint/jobserver-847f1be937f25301/dep-lib-jobserver differ diff --git a/.tmp-check-windows/debug/.fingerprint/jobserver-847f1be937f25301/invoked.timestamp b/.tmp-check-windows/debug/.fingerprint/jobserver-847f1be937f25301/invoked.timestamp new file mode 100644 index 000000000..e00328da5 --- /dev/null +++ b/.tmp-check-windows/debug/.fingerprint/jobserver-847f1be937f25301/invoked.timestamp @@ -0,0 +1 @@ +This file has an mtime of when this was started. \ No newline at end of file diff --git a/.tmp-check-windows/debug/.fingerprint/jobserver-847f1be937f25301/lib-jobserver b/.tmp-check-windows/debug/.fingerprint/jobserver-847f1be937f25301/lib-jobserver new file mode 100644 index 000000000..b8df7d928 --- /dev/null +++ b/.tmp-check-windows/debug/.fingerprint/jobserver-847f1be937f25301/lib-jobserver @@ -0,0 +1 @@ +3e5cd1da2f595fea \ No newline at end of file diff --git a/.tmp-check-windows/debug/.fingerprint/jobserver-847f1be937f25301/lib-jobserver.json b/.tmp-check-windows/debug/.fingerprint/jobserver-847f1be937f25301/lib-jobserver.json new file mode 100644 index 000000000..6d91d0925 --- /dev/null +++ b/.tmp-check-windows/debug/.fingerprint/jobserver-847f1be937f25301/lib-jobserver.json @@ -0,0 +1 @@ +{"rustc":13850170861107434965,"features":"[]","declared_features":"[]","target":15857469692476194146,"profile":5347358027863023418,"path":13529822223742746520,"deps":[[203594543813181569,"libc",false,7336680577683591520]],"local":[{"CheckDepInfo":{"dep_info":"debug/.fingerprint/jobserver-847f1be937f25301/dep-lib-jobserver","checksum":false}}],"rustflags":[],"config":2069994364910194474,"compile_kind":0} \ No newline at end of file diff --git a/.tmp-check-windows/debug/.fingerprint/libc-3115226fc8657037/build-script-build-script-build b/.tmp-check-windows/debug/.fingerprint/libc-3115226fc8657037/build-script-build-script-build new file mode 100644 index 000000000..c791b9d76 --- /dev/null +++ b/.tmp-check-windows/debug/.fingerprint/libc-3115226fc8657037/build-script-build-script-build @@ -0,0 +1 @@ +578f578d37e84b95 \ No newline at end of file diff --git a/.tmp-check-windows/debug/.fingerprint/libc-3115226fc8657037/build-script-build-script-build.json b/.tmp-check-windows/debug/.fingerprint/libc-3115226fc8657037/build-script-build-script-build.json new file mode 100644 index 000000000..9f1105141 --- /dev/null +++ b/.tmp-check-windows/debug/.fingerprint/libc-3115226fc8657037/build-script-build-script-build.json @@ -0,0 +1 @@ +{"rustc":13850170861107434965,"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":13030054270579460295,"path":5342197881825924190,"deps":[],"local":[{"CheckDepInfo":{"dep_info":"debug/.fingerprint/libc-3115226fc8657037/dep-build-script-build-script-build","checksum":false}}],"rustflags":[],"config":2069994364910194474,"compile_kind":0} \ No newline at end of file diff --git a/.tmp-check-windows/debug/.fingerprint/libc-3115226fc8657037/dep-build-script-build-script-build b/.tmp-check-windows/debug/.fingerprint/libc-3115226fc8657037/dep-build-script-build-script-build new file mode 100644 index 000000000..ec3cb8bfd Binary files /dev/null and b/.tmp-check-windows/debug/.fingerprint/libc-3115226fc8657037/dep-build-script-build-script-build differ diff --git a/.tmp-check-windows/debug/.fingerprint/libc-3115226fc8657037/invoked.timestamp b/.tmp-check-windows/debug/.fingerprint/libc-3115226fc8657037/invoked.timestamp new file mode 100644 index 000000000..e00328da5 --- /dev/null +++ b/.tmp-check-windows/debug/.fingerprint/libc-3115226fc8657037/invoked.timestamp @@ -0,0 +1 @@ +This file has an mtime of when this was started. \ No newline at end of file diff --git a/.tmp-check-windows/debug/.fingerprint/libc-766a782b7e87ec21/run-build-script-build-script-build b/.tmp-check-windows/debug/.fingerprint/libc-766a782b7e87ec21/run-build-script-build-script-build new file mode 100644 index 000000000..eacf0377c --- /dev/null +++ b/.tmp-check-windows/debug/.fingerprint/libc-766a782b7e87ec21/run-build-script-build-script-build @@ -0,0 +1 @@ +9f0cbafeabe548c6 \ No newline at end of file diff --git a/.tmp-check-windows/debug/.fingerprint/libc-766a782b7e87ec21/run-build-script-build-script-build.json b/.tmp-check-windows/debug/.fingerprint/libc-766a782b7e87ec21/run-build-script-build-script-build.json new file mode 100644 index 000000000..2adb16374 --- /dev/null +++ b/.tmp-check-windows/debug/.fingerprint/libc-766a782b7e87ec21/run-build-script-build-script-build.json @@ -0,0 +1 @@ +{"rustc":13850170861107434965,"features":"","declared_features":"","target":0,"profile":0,"path":0,"deps":[[203594543813181569,"build_script_build",false,10757947460196732759]],"local":[{"RerunIfChanged":{"output":"debug/build/libc-766a782b7e87ec21/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} \ No newline at end of file diff --git a/.tmp-check-windows/debug/.fingerprint/libc-ef70e72977ad2937/dep-lib-libc b/.tmp-check-windows/debug/.fingerprint/libc-ef70e72977ad2937/dep-lib-libc new file mode 100644 index 000000000..ec3cb8bfd Binary files /dev/null and b/.tmp-check-windows/debug/.fingerprint/libc-ef70e72977ad2937/dep-lib-libc differ diff --git a/.tmp-check-windows/debug/.fingerprint/libc-ef70e72977ad2937/invoked.timestamp b/.tmp-check-windows/debug/.fingerprint/libc-ef70e72977ad2937/invoked.timestamp new file mode 100644 index 000000000..e00328da5 --- /dev/null +++ b/.tmp-check-windows/debug/.fingerprint/libc-ef70e72977ad2937/invoked.timestamp @@ -0,0 +1 @@ +This file has an mtime of when this was started. \ No newline at end of file diff --git a/.tmp-check-windows/debug/.fingerprint/libc-ef70e72977ad2937/lib-libc b/.tmp-check-windows/debug/.fingerprint/libc-ef70e72977ad2937/lib-libc new file mode 100644 index 000000000..73e61dfa6 --- /dev/null +++ b/.tmp-check-windows/debug/.fingerprint/libc-ef70e72977ad2937/lib-libc @@ -0,0 +1 @@ +6091562f1d20d165 \ No newline at end of file diff --git a/.tmp-check-windows/debug/.fingerprint/libc-ef70e72977ad2937/lib-libc.json b/.tmp-check-windows/debug/.fingerprint/libc-ef70e72977ad2937/lib-libc.json new file mode 100644 index 000000000..68655ef0a --- /dev/null +++ b/.tmp-check-windows/debug/.fingerprint/libc-ef70e72977ad2937/lib-libc.json @@ -0,0 +1 @@ +{"rustc":13850170861107434965,"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":13030054270579460295,"path":5929996509444623387,"deps":[[203594543813181569,"build_script_build",false,14287922344708672671]],"local":[{"CheckDepInfo":{"dep_info":"debug/.fingerprint/libc-ef70e72977ad2937/dep-lib-libc","checksum":false}}],"rustflags":[],"config":2069994364910194474,"compile_kind":0} \ No newline at end of file diff --git a/.tmp-check-windows/debug/.fingerprint/libc-fdfc3eca3fbcb0d3/build-script-build-script-build b/.tmp-check-windows/debug/.fingerprint/libc-fdfc3eca3fbcb0d3/build-script-build-script-build new file mode 100644 index 000000000..d7d486037 --- /dev/null +++ b/.tmp-check-windows/debug/.fingerprint/libc-fdfc3eca3fbcb0d3/build-script-build-script-build @@ -0,0 +1 @@ +2150bd993edc21df \ No newline at end of file diff --git a/.tmp-check-windows/debug/.fingerprint/libc-fdfc3eca3fbcb0d3/build-script-build-script-build.json b/.tmp-check-windows/debug/.fingerprint/libc-fdfc3eca3fbcb0d3/build-script-build-script-build.json new file mode 100644 index 000000000..98b85e4f0 --- /dev/null +++ b/.tmp-check-windows/debug/.fingerprint/libc-fdfc3eca3fbcb0d3/build-script-build-script-build.json @@ -0,0 +1 @@ +{"rustc":13850170861107434965,"features":"[\"default\", \"extra_traits\", \"std\"]","declared_features":"[\"align\", \"const-extern-fn\", \"default\", \"extra_traits\", \"rustc-dep-of-std\", \"rustc-std-workspace-core\", \"std\", \"use_std\"]","target":5408242616063297496,"profile":13030054270579460295,"path":5342197881825924190,"deps":[],"local":[{"CheckDepInfo":{"dep_info":"debug/.fingerprint/libc-fdfc3eca3fbcb0d3/dep-build-script-build-script-build","checksum":false}}],"rustflags":[],"config":2069994364910194474,"compile_kind":0} \ No newline at end of file diff --git a/.tmp-check-windows/debug/.fingerprint/libc-fdfc3eca3fbcb0d3/dep-build-script-build-script-build b/.tmp-check-windows/debug/.fingerprint/libc-fdfc3eca3fbcb0d3/dep-build-script-build-script-build new file mode 100644 index 000000000..ec3cb8bfd Binary files /dev/null and b/.tmp-check-windows/debug/.fingerprint/libc-fdfc3eca3fbcb0d3/dep-build-script-build-script-build differ diff --git a/.tmp-check-windows/debug/.fingerprint/libc-fdfc3eca3fbcb0d3/invoked.timestamp b/.tmp-check-windows/debug/.fingerprint/libc-fdfc3eca3fbcb0d3/invoked.timestamp new file mode 100644 index 000000000..e00328da5 --- /dev/null +++ b/.tmp-check-windows/debug/.fingerprint/libc-fdfc3eca3fbcb0d3/invoked.timestamp @@ -0,0 +1 @@ +This file has an mtime of when this was started. \ No newline at end of file diff --git a/.tmp-check-windows/debug/.fingerprint/memchr-e732e24e160394a1/dep-lib-memchr b/.tmp-check-windows/debug/.fingerprint/memchr-e732e24e160394a1/dep-lib-memchr new file mode 100644 index 000000000..ec3cb8bfd Binary files /dev/null and b/.tmp-check-windows/debug/.fingerprint/memchr-e732e24e160394a1/dep-lib-memchr differ diff --git a/.tmp-check-windows/debug/.fingerprint/memchr-e732e24e160394a1/invoked.timestamp b/.tmp-check-windows/debug/.fingerprint/memchr-e732e24e160394a1/invoked.timestamp new file mode 100644 index 000000000..e00328da5 --- /dev/null +++ b/.tmp-check-windows/debug/.fingerprint/memchr-e732e24e160394a1/invoked.timestamp @@ -0,0 +1 @@ +This file has an mtime of when this was started. \ No newline at end of file diff --git a/.tmp-check-windows/debug/.fingerprint/memchr-e732e24e160394a1/lib-memchr b/.tmp-check-windows/debug/.fingerprint/memchr-e732e24e160394a1/lib-memchr new file mode 100644 index 000000000..6a0ede5af --- /dev/null +++ b/.tmp-check-windows/debug/.fingerprint/memchr-e732e24e160394a1/lib-memchr @@ -0,0 +1 @@ +44d78da196d2a903 \ No newline at end of file diff --git a/.tmp-check-windows/debug/.fingerprint/memchr-e732e24e160394a1/lib-memchr.json b/.tmp-check-windows/debug/.fingerprint/memchr-e732e24e160394a1/lib-memchr.json new file mode 100644 index 000000000..baed77d34 --- /dev/null +++ b/.tmp-check-windows/debug/.fingerprint/memchr-e732e24e160394a1/lib-memchr.json @@ -0,0 +1 @@ +{"rustc":13850170861107434965,"features":"[\"alloc\", \"default\", \"std\"]","declared_features":"[\"alloc\", \"core\", \"default\", \"libc\", \"logging\", \"rustc-dep-of-std\", \"std\", \"use_std\"]","target":11745930252914242013,"profile":5347358027863023418,"path":2588940523454892536,"deps":[],"local":[{"CheckDepInfo":{"dep_info":"debug/.fingerprint/memchr-e732e24e160394a1/dep-lib-memchr","checksum":false}}],"rustflags":[],"config":2069994364910194474,"compile_kind":0} \ No newline at end of file diff --git a/.tmp-check-windows/debug/.fingerprint/num-conv-ec727463a6cce659/dep-lib-num_conv b/.tmp-check-windows/debug/.fingerprint/num-conv-ec727463a6cce659/dep-lib-num_conv new file mode 100644 index 000000000..ec3cb8bfd Binary files /dev/null and b/.tmp-check-windows/debug/.fingerprint/num-conv-ec727463a6cce659/dep-lib-num_conv differ diff --git a/.tmp-check-windows/debug/.fingerprint/num-conv-ec727463a6cce659/invoked.timestamp b/.tmp-check-windows/debug/.fingerprint/num-conv-ec727463a6cce659/invoked.timestamp new file mode 100644 index 000000000..e00328da5 --- /dev/null +++ b/.tmp-check-windows/debug/.fingerprint/num-conv-ec727463a6cce659/invoked.timestamp @@ -0,0 +1 @@ +This file has an mtime of when this was started. \ No newline at end of file diff --git a/.tmp-check-windows/debug/.fingerprint/num-conv-ec727463a6cce659/lib-num_conv b/.tmp-check-windows/debug/.fingerprint/num-conv-ec727463a6cce659/lib-num_conv new file mode 100644 index 000000000..318408926 --- /dev/null +++ b/.tmp-check-windows/debug/.fingerprint/num-conv-ec727463a6cce659/lib-num_conv @@ -0,0 +1 @@ +0f18abd348a454ac \ No newline at end of file diff --git a/.tmp-check-windows/debug/.fingerprint/num-conv-ec727463a6cce659/lib-num_conv.json b/.tmp-check-windows/debug/.fingerprint/num-conv-ec727463a6cce659/lib-num_conv.json new file mode 100644 index 000000000..740b51dcc --- /dev/null +++ b/.tmp-check-windows/debug/.fingerprint/num-conv-ec727463a6cce659/lib-num_conv.json @@ -0,0 +1 @@ +{"rustc":13850170861107434965,"features":"[]","declared_features":"[]","target":8759765779269301280,"profile":10992052874695791952,"path":15908506251249466785,"deps":[],"local":[{"CheckDepInfo":{"dep_info":"debug/.fingerprint/num-conv-ec727463a6cce659/dep-lib-num_conv","checksum":false}}],"rustflags":[],"config":2069994364910194474,"compile_kind":0} \ No newline at end of file diff --git a/.tmp-check-windows/debug/.fingerprint/num-traits-76e72af6028092a4/build-script-build-script-build b/.tmp-check-windows/debug/.fingerprint/num-traits-76e72af6028092a4/build-script-build-script-build new file mode 100644 index 000000000..598a40561 --- /dev/null +++ b/.tmp-check-windows/debug/.fingerprint/num-traits-76e72af6028092a4/build-script-build-script-build @@ -0,0 +1 @@ +ae89375838b0f4b9 \ No newline at end of file diff --git a/.tmp-check-windows/debug/.fingerprint/num-traits-76e72af6028092a4/build-script-build-script-build.json b/.tmp-check-windows/debug/.fingerprint/num-traits-76e72af6028092a4/build-script-build-script-build.json new file mode 100644 index 000000000..47aa55913 --- /dev/null +++ b/.tmp-check-windows/debug/.fingerprint/num-traits-76e72af6028092a4/build-script-build-script-build.json @@ -0,0 +1 @@ +{"rustc":13850170861107434965,"features":"[\"default\", \"i128\", \"std\"]","declared_features":"[\"default\", \"i128\", \"libm\", \"std\"]","target":5408242616063297496,"profile":5347358027863023418,"path":332132831624751930,"deps":[[13927012481677012980,"autocfg",false,1984131181063484049]],"local":[{"CheckDepInfo":{"dep_info":"debug/.fingerprint/num-traits-76e72af6028092a4/dep-build-script-build-script-build","checksum":false}}],"rustflags":[],"config":2069994364910194474,"compile_kind":0} \ No newline at end of file diff --git a/.tmp-check-windows/debug/.fingerprint/num-traits-76e72af6028092a4/dep-build-script-build-script-build b/.tmp-check-windows/debug/.fingerprint/num-traits-76e72af6028092a4/dep-build-script-build-script-build new file mode 100644 index 000000000..ec3cb8bfd Binary files /dev/null and b/.tmp-check-windows/debug/.fingerprint/num-traits-76e72af6028092a4/dep-build-script-build-script-build differ diff --git a/.tmp-check-windows/debug/.fingerprint/num-traits-76e72af6028092a4/invoked.timestamp b/.tmp-check-windows/debug/.fingerprint/num-traits-76e72af6028092a4/invoked.timestamp new file mode 100644 index 000000000..e00328da5 --- /dev/null +++ b/.tmp-check-windows/debug/.fingerprint/num-traits-76e72af6028092a4/invoked.timestamp @@ -0,0 +1 @@ +This file has an mtime of when this was started. \ No newline at end of file diff --git a/.tmp-check-windows/debug/.fingerprint/parking_lot_core-381adda9d01549af/build-script-build-script-build b/.tmp-check-windows/debug/.fingerprint/parking_lot_core-381adda9d01549af/build-script-build-script-build new file mode 100644 index 000000000..66ff83a3c --- /dev/null +++ b/.tmp-check-windows/debug/.fingerprint/parking_lot_core-381adda9d01549af/build-script-build-script-build @@ -0,0 +1 @@ +da8590b0110ce283 \ No newline at end of file diff --git a/.tmp-check-windows/debug/.fingerprint/parking_lot_core-381adda9d01549af/build-script-build-script-build.json b/.tmp-check-windows/debug/.fingerprint/parking_lot_core-381adda9d01549af/build-script-build-script-build.json new file mode 100644 index 000000000..5673bea2f --- /dev/null +++ b/.tmp-check-windows/debug/.fingerprint/parking_lot_core-381adda9d01549af/build-script-build-script-build.json @@ -0,0 +1 @@ +{"rustc":13850170861107434965,"features":"[]","declared_features":"[\"backtrace\", \"deadlock_detection\", \"nightly\", \"petgraph\"]","target":5408242616063297496,"profile":5347358027863023418,"path":4903181848470584751,"deps":[],"local":[{"CheckDepInfo":{"dep_info":"debug/.fingerprint/parking_lot_core-381adda9d01549af/dep-build-script-build-script-build","checksum":false}}],"rustflags":[],"config":2069994364910194474,"compile_kind":0} \ No newline at end of file diff --git a/.tmp-check-windows/debug/.fingerprint/parking_lot_core-381adda9d01549af/dep-build-script-build-script-build b/.tmp-check-windows/debug/.fingerprint/parking_lot_core-381adda9d01549af/dep-build-script-build-script-build new file mode 100644 index 000000000..ec3cb8bfd Binary files /dev/null and b/.tmp-check-windows/debug/.fingerprint/parking_lot_core-381adda9d01549af/dep-build-script-build-script-build differ diff --git a/.tmp-check-windows/debug/.fingerprint/parking_lot_core-381adda9d01549af/invoked.timestamp b/.tmp-check-windows/debug/.fingerprint/parking_lot_core-381adda9d01549af/invoked.timestamp new file mode 100644 index 000000000..e00328da5 --- /dev/null +++ b/.tmp-check-windows/debug/.fingerprint/parking_lot_core-381adda9d01549af/invoked.timestamp @@ -0,0 +1 @@ +This file has an mtime of when this was started. \ No newline at end of file diff --git a/.tmp-check-windows/debug/.fingerprint/phf_generator-de8dc9c939e007cb/dep-lib-phf_generator b/.tmp-check-windows/debug/.fingerprint/phf_generator-de8dc9c939e007cb/dep-lib-phf_generator new file mode 100644 index 000000000..ec3cb8bfd Binary files /dev/null and b/.tmp-check-windows/debug/.fingerprint/phf_generator-de8dc9c939e007cb/dep-lib-phf_generator differ diff --git a/.tmp-check-windows/debug/.fingerprint/phf_generator-de8dc9c939e007cb/invoked.timestamp b/.tmp-check-windows/debug/.fingerprint/phf_generator-de8dc9c939e007cb/invoked.timestamp new file mode 100644 index 000000000..e00328da5 --- /dev/null +++ b/.tmp-check-windows/debug/.fingerprint/phf_generator-de8dc9c939e007cb/invoked.timestamp @@ -0,0 +1 @@ +This file has an mtime of when this was started. \ No newline at end of file diff --git a/.tmp-check-windows/debug/.fingerprint/phf_generator-de8dc9c939e007cb/lib-phf_generator b/.tmp-check-windows/debug/.fingerprint/phf_generator-de8dc9c939e007cb/lib-phf_generator new file mode 100644 index 000000000..6857f65aa --- /dev/null +++ b/.tmp-check-windows/debug/.fingerprint/phf_generator-de8dc9c939e007cb/lib-phf_generator @@ -0,0 +1 @@ +3aea2f3e13838954 \ No newline at end of file diff --git a/.tmp-check-windows/debug/.fingerprint/phf_generator-de8dc9c939e007cb/lib-phf_generator.json b/.tmp-check-windows/debug/.fingerprint/phf_generator-de8dc9c939e007cb/lib-phf_generator.json new file mode 100644 index 000000000..1dc9e8e9f --- /dev/null +++ b/.tmp-check-windows/debug/.fingerprint/phf_generator-de8dc9c939e007cb/lib-phf_generator.json @@ -0,0 +1 @@ +{"rustc":13850170861107434965,"features":"[]","declared_features":"[\"criterion\"]","target":4203241669981453472,"profile":5347358027863023418,"path":18166923306345165072,"deps":[[9060940869921439196,"phf_shared",false,5085394327042450151],[13208667028893622512,"rand",false,13244511299682577483]],"local":[{"CheckDepInfo":{"dep_info":"debug/.fingerprint/phf_generator-de8dc9c939e007cb/dep-lib-phf_generator","checksum":false}}],"rustflags":[],"config":2069994364910194474,"compile_kind":0} \ No newline at end of file diff --git a/.tmp-check-windows/debug/.fingerprint/phf_shared-00e4a9dbabd31b23/dep-lib-phf_shared b/.tmp-check-windows/debug/.fingerprint/phf_shared-00e4a9dbabd31b23/dep-lib-phf_shared new file mode 100644 index 000000000..ec3cb8bfd Binary files /dev/null and b/.tmp-check-windows/debug/.fingerprint/phf_shared-00e4a9dbabd31b23/dep-lib-phf_shared differ diff --git a/.tmp-check-windows/debug/.fingerprint/phf_shared-00e4a9dbabd31b23/invoked.timestamp b/.tmp-check-windows/debug/.fingerprint/phf_shared-00e4a9dbabd31b23/invoked.timestamp new file mode 100644 index 000000000..e00328da5 --- /dev/null +++ b/.tmp-check-windows/debug/.fingerprint/phf_shared-00e4a9dbabd31b23/invoked.timestamp @@ -0,0 +1 @@ +This file has an mtime of when this was started. \ No newline at end of file diff --git a/.tmp-check-windows/debug/.fingerprint/phf_shared-00e4a9dbabd31b23/lib-phf_shared b/.tmp-check-windows/debug/.fingerprint/phf_shared-00e4a9dbabd31b23/lib-phf_shared new file mode 100644 index 000000000..97920e98a --- /dev/null +++ b/.tmp-check-windows/debug/.fingerprint/phf_shared-00e4a9dbabd31b23/lib-phf_shared @@ -0,0 +1 @@ +e7e2266632f39246 \ No newline at end of file diff --git a/.tmp-check-windows/debug/.fingerprint/phf_shared-00e4a9dbabd31b23/lib-phf_shared.json b/.tmp-check-windows/debug/.fingerprint/phf_shared-00e4a9dbabd31b23/lib-phf_shared.json new file mode 100644 index 000000000..f96599ee5 --- /dev/null +++ b/.tmp-check-windows/debug/.fingerprint/phf_shared-00e4a9dbabd31b23/lib-phf_shared.json @@ -0,0 +1 @@ +{"rustc":13850170861107434965,"features":"[\"default\", \"std\"]","declared_features":"[\"default\", \"std\", \"uncased\", \"unicase\"]","target":13191988717353488301,"profile":5347358027863023418,"path":5897067252420848719,"deps":[[6052281619638306186,"siphasher",false,2548859059796591139]],"local":[{"CheckDepInfo":{"dep_info":"debug/.fingerprint/phf_shared-00e4a9dbabd31b23/dep-lib-phf_shared","checksum":false}}],"rustflags":[],"config":2069994364910194474,"compile_kind":0} \ No newline at end of file diff --git a/.tmp-check-windows/debug/.fingerprint/pkg-config-01ec38c44c4edb5c/dep-lib-pkg_config b/.tmp-check-windows/debug/.fingerprint/pkg-config-01ec38c44c4edb5c/dep-lib-pkg_config new file mode 100644 index 000000000..ec3cb8bfd Binary files /dev/null and b/.tmp-check-windows/debug/.fingerprint/pkg-config-01ec38c44c4edb5c/dep-lib-pkg_config differ diff --git a/.tmp-check-windows/debug/.fingerprint/pkg-config-01ec38c44c4edb5c/invoked.timestamp b/.tmp-check-windows/debug/.fingerprint/pkg-config-01ec38c44c4edb5c/invoked.timestamp new file mode 100644 index 000000000..e00328da5 --- /dev/null +++ b/.tmp-check-windows/debug/.fingerprint/pkg-config-01ec38c44c4edb5c/invoked.timestamp @@ -0,0 +1 @@ +This file has an mtime of when this was started. \ No newline at end of file diff --git a/.tmp-check-windows/debug/.fingerprint/pkg-config-01ec38c44c4edb5c/lib-pkg_config b/.tmp-check-windows/debug/.fingerprint/pkg-config-01ec38c44c4edb5c/lib-pkg_config new file mode 100644 index 000000000..e4e77cef1 --- /dev/null +++ b/.tmp-check-windows/debug/.fingerprint/pkg-config-01ec38c44c4edb5c/lib-pkg_config @@ -0,0 +1 @@ +fff58941d96cc7fb \ No newline at end of file diff --git a/.tmp-check-windows/debug/.fingerprint/pkg-config-01ec38c44c4edb5c/lib-pkg_config.json b/.tmp-check-windows/debug/.fingerprint/pkg-config-01ec38c44c4edb5c/lib-pkg_config.json new file mode 100644 index 000000000..f5b6ee360 --- /dev/null +++ b/.tmp-check-windows/debug/.fingerprint/pkg-config-01ec38c44c4edb5c/lib-pkg_config.json @@ -0,0 +1 @@ +{"rustc":13850170861107434965,"features":"[]","declared_features":"[]","target":4588055084852603002,"profile":5347358027863023418,"path":2177731501036329797,"deps":[],"local":[{"CheckDepInfo":{"dep_info":"debug/.fingerprint/pkg-config-01ec38c44c4edb5c/dep-lib-pkg_config","checksum":false}}],"rustflags":[],"config":2069994364910194474,"compile_kind":0} \ No newline at end of file diff --git a/.tmp-check-windows/debug/.fingerprint/ppv-lite86-5efa42a78a5a0b06/dep-lib-ppv_lite86 b/.tmp-check-windows/debug/.fingerprint/ppv-lite86-5efa42a78a5a0b06/dep-lib-ppv_lite86 new file mode 100644 index 000000000..ec3cb8bfd Binary files /dev/null and b/.tmp-check-windows/debug/.fingerprint/ppv-lite86-5efa42a78a5a0b06/dep-lib-ppv_lite86 differ diff --git a/.tmp-check-windows/debug/.fingerprint/ppv-lite86-5efa42a78a5a0b06/invoked.timestamp b/.tmp-check-windows/debug/.fingerprint/ppv-lite86-5efa42a78a5a0b06/invoked.timestamp new file mode 100644 index 000000000..e00328da5 --- /dev/null +++ b/.tmp-check-windows/debug/.fingerprint/ppv-lite86-5efa42a78a5a0b06/invoked.timestamp @@ -0,0 +1 @@ +This file has an mtime of when this was started. \ No newline at end of file diff --git a/.tmp-check-windows/debug/.fingerprint/ppv-lite86-5efa42a78a5a0b06/lib-ppv_lite86 b/.tmp-check-windows/debug/.fingerprint/ppv-lite86-5efa42a78a5a0b06/lib-ppv_lite86 new file mode 100644 index 000000000..fa7b65582 --- /dev/null +++ b/.tmp-check-windows/debug/.fingerprint/ppv-lite86-5efa42a78a5a0b06/lib-ppv_lite86 @@ -0,0 +1 @@ +f30b17fb586ac309 \ No newline at end of file diff --git a/.tmp-check-windows/debug/.fingerprint/ppv-lite86-5efa42a78a5a0b06/lib-ppv_lite86.json b/.tmp-check-windows/debug/.fingerprint/ppv-lite86-5efa42a78a5a0b06/lib-ppv_lite86.json new file mode 100644 index 000000000..06e745515 --- /dev/null +++ b/.tmp-check-windows/debug/.fingerprint/ppv-lite86-5efa42a78a5a0b06/lib-ppv_lite86.json @@ -0,0 +1 @@ +{"rustc":13850170861107434965,"features":"[\"simd\", \"std\"]","declared_features":"[\"default\", \"no_simd\", \"simd\", \"std\"]","target":2607852365283500179,"profile":5347358027863023418,"path":3758728575403016516,"deps":[[4878717189156408352,"zerocopy",false,16032154810621684424]],"local":[{"CheckDepInfo":{"dep_info":"debug/.fingerprint/ppv-lite86-5efa42a78a5a0b06/dep-lib-ppv_lite86","checksum":false}}],"rustflags":[],"config":2069994364910194474,"compile_kind":0} \ No newline at end of file diff --git a/.tmp-check-windows/debug/.fingerprint/proc-macro2-05370ae8c5d6ee4d/dep-lib-proc_macro2 b/.tmp-check-windows/debug/.fingerprint/proc-macro2-05370ae8c5d6ee4d/dep-lib-proc_macro2 new file mode 100644 index 000000000..ec3cb8bfd Binary files /dev/null and b/.tmp-check-windows/debug/.fingerprint/proc-macro2-05370ae8c5d6ee4d/dep-lib-proc_macro2 differ diff --git a/.tmp-check-windows/debug/.fingerprint/proc-macro2-05370ae8c5d6ee4d/invoked.timestamp b/.tmp-check-windows/debug/.fingerprint/proc-macro2-05370ae8c5d6ee4d/invoked.timestamp new file mode 100644 index 000000000..e00328da5 --- /dev/null +++ b/.tmp-check-windows/debug/.fingerprint/proc-macro2-05370ae8c5d6ee4d/invoked.timestamp @@ -0,0 +1 @@ +This file has an mtime of when this was started. \ No newline at end of file diff --git a/.tmp-check-windows/debug/.fingerprint/proc-macro2-05370ae8c5d6ee4d/lib-proc_macro2 b/.tmp-check-windows/debug/.fingerprint/proc-macro2-05370ae8c5d6ee4d/lib-proc_macro2 new file mode 100644 index 000000000..4a4e112e0 --- /dev/null +++ b/.tmp-check-windows/debug/.fingerprint/proc-macro2-05370ae8c5d6ee4d/lib-proc_macro2 @@ -0,0 +1 @@ +9c9790d84f748a8e \ No newline at end of file diff --git a/.tmp-check-windows/debug/.fingerprint/proc-macro2-05370ae8c5d6ee4d/lib-proc_macro2.json b/.tmp-check-windows/debug/.fingerprint/proc-macro2-05370ae8c5d6ee4d/lib-proc_macro2.json new file mode 100644 index 000000000..865b9173a --- /dev/null +++ b/.tmp-check-windows/debug/.fingerprint/proc-macro2-05370ae8c5d6ee4d/lib-proc_macro2.json @@ -0,0 +1 @@ +{"rustc":13850170861107434965,"features":"[\"default\", \"proc-macro\", \"span-locations\"]","declared_features":"[\"default\", \"nightly\", \"proc-macro\", \"span-locations\"]","target":369203346396300798,"profile":5347358027863023418,"path":9347952001124425818,"deps":[[4289358735036141001,"build_script_build",false,8671299010175948225],[8901712065508858692,"unicode_ident",false,13718498485453318976]],"local":[{"CheckDepInfo":{"dep_info":"debug/.fingerprint/proc-macro2-05370ae8c5d6ee4d/dep-lib-proc_macro2","checksum":false}}],"rustflags":[],"config":2069994364910194474,"compile_kind":0} \ No newline at end of file diff --git a/.tmp-check-windows/debug/.fingerprint/proc-macro2-165432f1abc131de/run-build-script-build-script-build b/.tmp-check-windows/debug/.fingerprint/proc-macro2-165432f1abc131de/run-build-script-build-script-build new file mode 100644 index 000000000..f0b309172 --- /dev/null +++ b/.tmp-check-windows/debug/.fingerprint/proc-macro2-165432f1abc131de/run-build-script-build-script-build @@ -0,0 +1 @@ +c1d5bbda81a45678 \ No newline at end of file diff --git a/.tmp-check-windows/debug/.fingerprint/proc-macro2-165432f1abc131de/run-build-script-build-script-build.json b/.tmp-check-windows/debug/.fingerprint/proc-macro2-165432f1abc131de/run-build-script-build-script-build.json new file mode 100644 index 000000000..754b42b53 --- /dev/null +++ b/.tmp-check-windows/debug/.fingerprint/proc-macro2-165432f1abc131de/run-build-script-build-script-build.json @@ -0,0 +1 @@ +{"rustc":13850170861107434965,"features":"","declared_features":"","target":0,"profile":0,"path":0,"deps":[[4289358735036141001,"build_script_build",false,15714308821499734581]],"local":[{"RerunIfChanged":{"output":"debug/build/proc-macro2-165432f1abc131de/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} \ No newline at end of file diff --git a/.tmp-check-windows/debug/.fingerprint/proc-macro2-cec0b88f40d16ebd/build-script-build-script-build b/.tmp-check-windows/debug/.fingerprint/proc-macro2-cec0b88f40d16ebd/build-script-build-script-build new file mode 100644 index 000000000..2872f2afb --- /dev/null +++ b/.tmp-check-windows/debug/.fingerprint/proc-macro2-cec0b88f40d16ebd/build-script-build-script-build @@ -0,0 +1 @@ +356a477c9d7014da \ No newline at end of file diff --git a/.tmp-check-windows/debug/.fingerprint/proc-macro2-cec0b88f40d16ebd/build-script-build-script-build.json b/.tmp-check-windows/debug/.fingerprint/proc-macro2-cec0b88f40d16ebd/build-script-build-script-build.json new file mode 100644 index 000000000..d32dff29e --- /dev/null +++ b/.tmp-check-windows/debug/.fingerprint/proc-macro2-cec0b88f40d16ebd/build-script-build-script-build.json @@ -0,0 +1 @@ +{"rustc":13850170861107434965,"features":"[\"default\", \"proc-macro\", \"span-locations\"]","declared_features":"[\"default\", \"nightly\", \"proc-macro\", \"span-locations\"]","target":5408242616063297496,"profile":5347358027863023418,"path":10156423897917301309,"deps":[],"local":[{"CheckDepInfo":{"dep_info":"debug/.fingerprint/proc-macro2-cec0b88f40d16ebd/dep-build-script-build-script-build","checksum":false}}],"rustflags":[],"config":2069994364910194474,"compile_kind":0} \ No newline at end of file diff --git a/.tmp-check-windows/debug/.fingerprint/proc-macro2-cec0b88f40d16ebd/dep-build-script-build-script-build b/.tmp-check-windows/debug/.fingerprint/proc-macro2-cec0b88f40d16ebd/dep-build-script-build-script-build new file mode 100644 index 000000000..ec3cb8bfd Binary files /dev/null and b/.tmp-check-windows/debug/.fingerprint/proc-macro2-cec0b88f40d16ebd/dep-build-script-build-script-build differ diff --git a/.tmp-check-windows/debug/.fingerprint/proc-macro2-cec0b88f40d16ebd/invoked.timestamp b/.tmp-check-windows/debug/.fingerprint/proc-macro2-cec0b88f40d16ebd/invoked.timestamp new file mode 100644 index 000000000..e00328da5 --- /dev/null +++ b/.tmp-check-windows/debug/.fingerprint/proc-macro2-cec0b88f40d16ebd/invoked.timestamp @@ -0,0 +1 @@ +This file has an mtime of when this was started. \ No newline at end of file diff --git a/.tmp-check-windows/debug/.fingerprint/quote-2c61fcf6c96f51df/run-build-script-build-script-build b/.tmp-check-windows/debug/.fingerprint/quote-2c61fcf6c96f51df/run-build-script-build-script-build new file mode 100644 index 000000000..8b3410cbc --- /dev/null +++ b/.tmp-check-windows/debug/.fingerprint/quote-2c61fcf6c96f51df/run-build-script-build-script-build @@ -0,0 +1 @@ +18da516e65252c17 \ No newline at end of file diff --git a/.tmp-check-windows/debug/.fingerprint/quote-2c61fcf6c96f51df/run-build-script-build-script-build.json b/.tmp-check-windows/debug/.fingerprint/quote-2c61fcf6c96f51df/run-build-script-build-script-build.json new file mode 100644 index 000000000..73301d295 --- /dev/null +++ b/.tmp-check-windows/debug/.fingerprint/quote-2c61fcf6c96f51df/run-build-script-build-script-build.json @@ -0,0 +1 @@ +{"rustc":13850170861107434965,"features":"","declared_features":"","target":0,"profile":0,"path":0,"deps":[[6100504282945712449,"build_script_build",false,6655746438645115143]],"local":[{"RerunIfChanged":{"output":"debug/build/quote-2c61fcf6c96f51df/output","paths":["build.rs"]}}],"rustflags":[],"config":0,"compile_kind":0} \ No newline at end of file diff --git a/.tmp-check-windows/debug/.fingerprint/quote-5ab4e48c22bca86d/dep-lib-quote b/.tmp-check-windows/debug/.fingerprint/quote-5ab4e48c22bca86d/dep-lib-quote new file mode 100644 index 000000000..ec3cb8bfd Binary files /dev/null and b/.tmp-check-windows/debug/.fingerprint/quote-5ab4e48c22bca86d/dep-lib-quote differ diff --git a/.tmp-check-windows/debug/.fingerprint/quote-5ab4e48c22bca86d/invoked.timestamp b/.tmp-check-windows/debug/.fingerprint/quote-5ab4e48c22bca86d/invoked.timestamp new file mode 100644 index 000000000..e00328da5 --- /dev/null +++ b/.tmp-check-windows/debug/.fingerprint/quote-5ab4e48c22bca86d/invoked.timestamp @@ -0,0 +1 @@ +This file has an mtime of when this was started. \ No newline at end of file diff --git a/.tmp-check-windows/debug/.fingerprint/quote-5ab4e48c22bca86d/lib-quote b/.tmp-check-windows/debug/.fingerprint/quote-5ab4e48c22bca86d/lib-quote new file mode 100644 index 000000000..25c9649fe --- /dev/null +++ b/.tmp-check-windows/debug/.fingerprint/quote-5ab4e48c22bca86d/lib-quote @@ -0,0 +1 @@ +db2cd057b99ae5e6 \ No newline at end of file diff --git a/.tmp-check-windows/debug/.fingerprint/quote-5ab4e48c22bca86d/lib-quote.json b/.tmp-check-windows/debug/.fingerprint/quote-5ab4e48c22bca86d/lib-quote.json new file mode 100644 index 000000000..d23402845 --- /dev/null +++ b/.tmp-check-windows/debug/.fingerprint/quote-5ab4e48c22bca86d/lib-quote.json @@ -0,0 +1 @@ +{"rustc":13850170861107434965,"features":"[\"default\", \"proc-macro\"]","declared_features":"[\"default\", \"proc-macro\"]","target":8313845041260779044,"profile":5347358027863023418,"path":2844264212916421661,"deps":[[4289358735036141001,"proc_macro2",false,10271149786456430492],[6100504282945712449,"build_script_build",false,1669750679420394008]],"local":[{"CheckDepInfo":{"dep_info":"debug/.fingerprint/quote-5ab4e48c22bca86d/dep-lib-quote","checksum":false}}],"rustflags":[],"config":2069994364910194474,"compile_kind":0} \ No newline at end of file diff --git a/.tmp-check-windows/debug/.fingerprint/quote-cf0a36acd10fe8d3/build-script-build-script-build b/.tmp-check-windows/debug/.fingerprint/quote-cf0a36acd10fe8d3/build-script-build-script-build new file mode 100644 index 000000000..689aea490 --- /dev/null +++ b/.tmp-check-windows/debug/.fingerprint/quote-cf0a36acd10fe8d3/build-script-build-script-build @@ -0,0 +1 @@ +0769834e1ff65d5c \ No newline at end of file diff --git a/.tmp-check-windows/debug/.fingerprint/quote-cf0a36acd10fe8d3/build-script-build-script-build.json b/.tmp-check-windows/debug/.fingerprint/quote-cf0a36acd10fe8d3/build-script-build-script-build.json new file mode 100644 index 000000000..0bccc08a9 --- /dev/null +++ b/.tmp-check-windows/debug/.fingerprint/quote-cf0a36acd10fe8d3/build-script-build-script-build.json @@ -0,0 +1 @@ +{"rustc":13850170861107434965,"features":"[\"default\", \"proc-macro\"]","declared_features":"[\"default\", \"proc-macro\"]","target":5408242616063297496,"profile":5347358027863023418,"path":11519709877592443947,"deps":[],"local":[{"CheckDepInfo":{"dep_info":"debug/.fingerprint/quote-cf0a36acd10fe8d3/dep-build-script-build-script-build","checksum":false}}],"rustflags":[],"config":2069994364910194474,"compile_kind":0} \ No newline at end of file diff --git a/.tmp-check-windows/debug/.fingerprint/quote-cf0a36acd10fe8d3/dep-build-script-build-script-build b/.tmp-check-windows/debug/.fingerprint/quote-cf0a36acd10fe8d3/dep-build-script-build-script-build new file mode 100644 index 000000000..ec3cb8bfd Binary files /dev/null and b/.tmp-check-windows/debug/.fingerprint/quote-cf0a36acd10fe8d3/dep-build-script-build-script-build differ diff --git a/.tmp-check-windows/debug/.fingerprint/quote-cf0a36acd10fe8d3/invoked.timestamp b/.tmp-check-windows/debug/.fingerprint/quote-cf0a36acd10fe8d3/invoked.timestamp new file mode 100644 index 000000000..e00328da5 --- /dev/null +++ b/.tmp-check-windows/debug/.fingerprint/quote-cf0a36acd10fe8d3/invoked.timestamp @@ -0,0 +1 @@ +This file has an mtime of when this was started. \ No newline at end of file diff --git a/.tmp-check-windows/debug/.fingerprint/rand-ca8d7a8b1b4b6e91/dep-lib-rand b/.tmp-check-windows/debug/.fingerprint/rand-ca8d7a8b1b4b6e91/dep-lib-rand new file mode 100644 index 000000000..ec3cb8bfd Binary files /dev/null and b/.tmp-check-windows/debug/.fingerprint/rand-ca8d7a8b1b4b6e91/dep-lib-rand differ diff --git a/.tmp-check-windows/debug/.fingerprint/rand-ca8d7a8b1b4b6e91/invoked.timestamp b/.tmp-check-windows/debug/.fingerprint/rand-ca8d7a8b1b4b6e91/invoked.timestamp new file mode 100644 index 000000000..e00328da5 --- /dev/null +++ b/.tmp-check-windows/debug/.fingerprint/rand-ca8d7a8b1b4b6e91/invoked.timestamp @@ -0,0 +1 @@ +This file has an mtime of when this was started. \ No newline at end of file diff --git a/.tmp-check-windows/debug/.fingerprint/rand-ca8d7a8b1b4b6e91/lib-rand b/.tmp-check-windows/debug/.fingerprint/rand-ca8d7a8b1b4b6e91/lib-rand new file mode 100644 index 000000000..0b0aecf24 --- /dev/null +++ b/.tmp-check-windows/debug/.fingerprint/rand-ca8d7a8b1b4b6e91/lib-rand @@ -0,0 +1 @@ +4b2c3ac9daf4cdb7 \ No newline at end of file diff --git a/.tmp-check-windows/debug/.fingerprint/rand-ca8d7a8b1b4b6e91/lib-rand.json b/.tmp-check-windows/debug/.fingerprint/rand-ca8d7a8b1b4b6e91/lib-rand.json new file mode 100644 index 000000000..5fe19b203 --- /dev/null +++ b/.tmp-check-windows/debug/.fingerprint/rand-ca8d7a8b1b4b6e91/lib-rand.json @@ -0,0 +1 @@ +{"rustc":13850170861107434965,"features":"[\"alloc\", \"default\", \"getrandom\", \"libc\", \"rand_chacha\", \"small_rng\", \"std\", \"std_rng\"]","declared_features":"[\"alloc\", \"default\", \"getrandom\", \"libc\", \"log\", \"min_const_gen\", \"nightly\", \"packed_simd\", \"rand_chacha\", \"serde\", \"serde1\", \"simd_support\", \"small_rng\", \"std\", \"std_rng\"]","target":8827111241893198906,"profile":5347358027863023418,"path":15076473556655932636,"deps":[[203594543813181569,"libc",false,7336680577683591520],[1573238666360410412,"rand_chacha",false,5513495664890794640],[18130209639506977569,"rand_core",false,6185312734587388051]],"local":[{"CheckDepInfo":{"dep_info":"debug/.fingerprint/rand-ca8d7a8b1b4b6e91/dep-lib-rand","checksum":false}}],"rustflags":[],"config":2069994364910194474,"compile_kind":0} \ No newline at end of file diff --git a/.tmp-check-windows/debug/.fingerprint/rand_chacha-b996a58b86cd87f0/dep-lib-rand_chacha b/.tmp-check-windows/debug/.fingerprint/rand_chacha-b996a58b86cd87f0/dep-lib-rand_chacha new file mode 100644 index 000000000..ec3cb8bfd Binary files /dev/null and b/.tmp-check-windows/debug/.fingerprint/rand_chacha-b996a58b86cd87f0/dep-lib-rand_chacha differ diff --git a/.tmp-check-windows/debug/.fingerprint/rand_chacha-b996a58b86cd87f0/invoked.timestamp b/.tmp-check-windows/debug/.fingerprint/rand_chacha-b996a58b86cd87f0/invoked.timestamp new file mode 100644 index 000000000..e00328da5 --- /dev/null +++ b/.tmp-check-windows/debug/.fingerprint/rand_chacha-b996a58b86cd87f0/invoked.timestamp @@ -0,0 +1 @@ +This file has an mtime of when this was started. \ No newline at end of file diff --git a/.tmp-check-windows/debug/.fingerprint/rand_chacha-b996a58b86cd87f0/lib-rand_chacha b/.tmp-check-windows/debug/.fingerprint/rand_chacha-b996a58b86cd87f0/lib-rand_chacha new file mode 100644 index 000000000..ea5cfd86a --- /dev/null +++ b/.tmp-check-windows/debug/.fingerprint/rand_chacha-b996a58b86cd87f0/lib-rand_chacha @@ -0,0 +1 @@ +fff89350bdf455af \ No newline at end of file diff --git a/.tmp-check-windows/debug/.fingerprint/rand_chacha-b996a58b86cd87f0/lib-rand_chacha.json b/.tmp-check-windows/debug/.fingerprint/rand_chacha-b996a58b86cd87f0/lib-rand_chacha.json new file mode 100644 index 000000000..1f2833d1e --- /dev/null +++ b/.tmp-check-windows/debug/.fingerprint/rand_chacha-b996a58b86cd87f0/lib-rand_chacha.json @@ -0,0 +1 @@ +{"rustc":13850170861107434965,"features":"[\"std\"]","declared_features":"[\"default\", \"simd\", \"std\"]","target":15766068575093147603,"profile":5347358027863023418,"path":3569772719771541049,"deps":[[1740877332521282793,"rand_core",false,16014631921206642247],[12919011715531272606,"ppv_lite86",false,703522897202187251]],"local":[{"CheckDepInfo":{"dep_info":"debug/.fingerprint/rand_chacha-b996a58b86cd87f0/dep-lib-rand_chacha","checksum":false}}],"rustflags":[],"config":2069994364910194474,"compile_kind":0} \ No newline at end of file diff --git a/.tmp-check-windows/debug/.fingerprint/rand_chacha-df53c86858a7ab42/dep-lib-rand_chacha b/.tmp-check-windows/debug/.fingerprint/rand_chacha-df53c86858a7ab42/dep-lib-rand_chacha new file mode 100644 index 000000000..ec3cb8bfd Binary files /dev/null and b/.tmp-check-windows/debug/.fingerprint/rand_chacha-df53c86858a7ab42/dep-lib-rand_chacha differ diff --git a/.tmp-check-windows/debug/.fingerprint/rand_chacha-df53c86858a7ab42/invoked.timestamp b/.tmp-check-windows/debug/.fingerprint/rand_chacha-df53c86858a7ab42/invoked.timestamp new file mode 100644 index 000000000..e00328da5 --- /dev/null +++ b/.tmp-check-windows/debug/.fingerprint/rand_chacha-df53c86858a7ab42/invoked.timestamp @@ -0,0 +1 @@ +This file has an mtime of when this was started. \ No newline at end of file diff --git a/.tmp-check-windows/debug/.fingerprint/rand_chacha-df53c86858a7ab42/lib-rand_chacha b/.tmp-check-windows/debug/.fingerprint/rand_chacha-df53c86858a7ab42/lib-rand_chacha new file mode 100644 index 000000000..ff39edfa9 --- /dev/null +++ b/.tmp-check-windows/debug/.fingerprint/rand_chacha-df53c86858a7ab42/lib-rand_chacha @@ -0,0 +1 @@ +90d2787018df834c \ No newline at end of file diff --git a/.tmp-check-windows/debug/.fingerprint/rand_chacha-df53c86858a7ab42/lib-rand_chacha.json b/.tmp-check-windows/debug/.fingerprint/rand_chacha-df53c86858a7ab42/lib-rand_chacha.json new file mode 100644 index 000000000..45355f6c0 --- /dev/null +++ b/.tmp-check-windows/debug/.fingerprint/rand_chacha-df53c86858a7ab42/lib-rand_chacha.json @@ -0,0 +1 @@ +{"rustc":13850170861107434965,"features":"[\"std\"]","declared_features":"[\"default\", \"serde\", \"serde1\", \"simd\", \"std\"]","target":15766068575093147603,"profile":5347358027863023418,"path":4679686040763618825,"deps":[[12919011715531272606,"ppv_lite86",false,703522897202187251],[18130209639506977569,"rand_core",false,6185312734587388051]],"local":[{"CheckDepInfo":{"dep_info":"debug/.fingerprint/rand_chacha-df53c86858a7ab42/dep-lib-rand_chacha","checksum":false}}],"rustflags":[],"config":2069994364910194474,"compile_kind":0} \ No newline at end of file diff --git a/.tmp-check-windows/debug/.fingerprint/rand_core-051728e3b27028a4/dep-lib-rand_core b/.tmp-check-windows/debug/.fingerprint/rand_core-051728e3b27028a4/dep-lib-rand_core new file mode 100644 index 000000000..ec3cb8bfd Binary files /dev/null and b/.tmp-check-windows/debug/.fingerprint/rand_core-051728e3b27028a4/dep-lib-rand_core differ diff --git a/.tmp-check-windows/debug/.fingerprint/rand_core-051728e3b27028a4/invoked.timestamp b/.tmp-check-windows/debug/.fingerprint/rand_core-051728e3b27028a4/invoked.timestamp new file mode 100644 index 000000000..e00328da5 --- /dev/null +++ b/.tmp-check-windows/debug/.fingerprint/rand_core-051728e3b27028a4/invoked.timestamp @@ -0,0 +1 @@ +This file has an mtime of when this was started. \ No newline at end of file diff --git a/.tmp-check-windows/debug/.fingerprint/rand_core-051728e3b27028a4/lib-rand_core b/.tmp-check-windows/debug/.fingerprint/rand_core-051728e3b27028a4/lib-rand_core new file mode 100644 index 000000000..bd44f0736 --- /dev/null +++ b/.tmp-check-windows/debug/.fingerprint/rand_core-051728e3b27028a4/lib-rand_core @@ -0,0 +1 @@ +47462718e2663fde \ No newline at end of file diff --git a/.tmp-check-windows/debug/.fingerprint/rand_core-051728e3b27028a4/lib-rand_core.json b/.tmp-check-windows/debug/.fingerprint/rand_core-051728e3b27028a4/lib-rand_core.json new file mode 100644 index 000000000..a61d21603 --- /dev/null +++ b/.tmp-check-windows/debug/.fingerprint/rand_core-051728e3b27028a4/lib-rand_core.json @@ -0,0 +1 @@ +{"rustc":13850170861107434965,"features":"[\"alloc\", \"getrandom\", \"std\"]","declared_features":"[\"alloc\", \"getrandom\", \"serde\", \"serde1\", \"std\"]","target":13770603672348587087,"profile":5347358027863023418,"path":2844603156493836689,"deps":[[5170503507811329045,"getrandom",false,18004162642247702853]],"local":[{"CheckDepInfo":{"dep_info":"debug/.fingerprint/rand_core-051728e3b27028a4/dep-lib-rand_core","checksum":false}}],"rustflags":[],"config":2069994364910194474,"compile_kind":0} \ No newline at end of file diff --git a/.tmp-check-windows/debug/.fingerprint/rand_core-a8e35fcc86bce3df/dep-lib-rand_core b/.tmp-check-windows/debug/.fingerprint/rand_core-a8e35fcc86bce3df/dep-lib-rand_core new file mode 100644 index 000000000..ec3cb8bfd Binary files /dev/null and b/.tmp-check-windows/debug/.fingerprint/rand_core-a8e35fcc86bce3df/dep-lib-rand_core differ diff --git a/.tmp-check-windows/debug/.fingerprint/rand_core-a8e35fcc86bce3df/invoked.timestamp b/.tmp-check-windows/debug/.fingerprint/rand_core-a8e35fcc86bce3df/invoked.timestamp new file mode 100644 index 000000000..e00328da5 --- /dev/null +++ b/.tmp-check-windows/debug/.fingerprint/rand_core-a8e35fcc86bce3df/invoked.timestamp @@ -0,0 +1 @@ +This file has an mtime of when this was started. \ No newline at end of file diff --git a/.tmp-check-windows/debug/.fingerprint/rand_core-a8e35fcc86bce3df/lib-rand_core b/.tmp-check-windows/debug/.fingerprint/rand_core-a8e35fcc86bce3df/lib-rand_core new file mode 100644 index 000000000..0c4a2a88c --- /dev/null +++ b/.tmp-check-windows/debug/.fingerprint/rand_core-a8e35fcc86bce3df/lib-rand_core @@ -0,0 +1 @@ +9300c83129a5d655 \ No newline at end of file diff --git a/.tmp-check-windows/debug/.fingerprint/rand_core-a8e35fcc86bce3df/lib-rand_core.json b/.tmp-check-windows/debug/.fingerprint/rand_core-a8e35fcc86bce3df/lib-rand_core.json new file mode 100644 index 000000000..a09894329 --- /dev/null +++ b/.tmp-check-windows/debug/.fingerprint/rand_core-a8e35fcc86bce3df/lib-rand_core.json @@ -0,0 +1 @@ +{"rustc":13850170861107434965,"features":"[\"alloc\", \"getrandom\", \"std\"]","declared_features":"[\"alloc\", \"getrandom\", \"serde\", \"serde1\", \"std\"]","target":13770603672348587087,"profile":5347358027863023418,"path":16484890452860741293,"deps":[[11023519408959114924,"getrandom",false,15116334073122683043]],"local":[{"CheckDepInfo":{"dep_info":"debug/.fingerprint/rand_core-a8e35fcc86bce3df/dep-lib-rand_core","checksum":false}}],"rustflags":[],"config":2069994364910194474,"compile_kind":0} \ No newline at end of file diff --git a/.tmp-check-windows/debug/.fingerprint/rand_pcg-40dcf86c8ec86296/dep-lib-rand_pcg b/.tmp-check-windows/debug/.fingerprint/rand_pcg-40dcf86c8ec86296/dep-lib-rand_pcg new file mode 100644 index 000000000..ec3cb8bfd Binary files /dev/null and b/.tmp-check-windows/debug/.fingerprint/rand_pcg-40dcf86c8ec86296/dep-lib-rand_pcg differ diff --git a/.tmp-check-windows/debug/.fingerprint/rand_pcg-40dcf86c8ec86296/invoked.timestamp b/.tmp-check-windows/debug/.fingerprint/rand_pcg-40dcf86c8ec86296/invoked.timestamp new file mode 100644 index 000000000..e00328da5 --- /dev/null +++ b/.tmp-check-windows/debug/.fingerprint/rand_pcg-40dcf86c8ec86296/invoked.timestamp @@ -0,0 +1 @@ +This file has an mtime of when this was started. \ No newline at end of file diff --git a/.tmp-check-windows/debug/.fingerprint/rand_pcg-40dcf86c8ec86296/lib-rand_pcg b/.tmp-check-windows/debug/.fingerprint/rand_pcg-40dcf86c8ec86296/lib-rand_pcg new file mode 100644 index 000000000..863207088 --- /dev/null +++ b/.tmp-check-windows/debug/.fingerprint/rand_pcg-40dcf86c8ec86296/lib-rand_pcg @@ -0,0 +1 @@ +84b7015d5eb70e8c \ No newline at end of file diff --git a/.tmp-check-windows/debug/.fingerprint/rand_pcg-40dcf86c8ec86296/lib-rand_pcg.json b/.tmp-check-windows/debug/.fingerprint/rand_pcg-40dcf86c8ec86296/lib-rand_pcg.json new file mode 100644 index 000000000..79456fdbe --- /dev/null +++ b/.tmp-check-windows/debug/.fingerprint/rand_pcg-40dcf86c8ec86296/lib-rand_pcg.json @@ -0,0 +1 @@ +{"rustc":13850170861107434965,"features":"[]","declared_features":"[\"serde\", \"serde1\"]","target":15639958921810889256,"profile":5347358027863023418,"path":7620870250783641542,"deps":[[1740877332521282793,"rand_core",false,16014631921206642247]],"local":[{"CheckDepInfo":{"dep_info":"debug/.fingerprint/rand_pcg-40dcf86c8ec86296/dep-lib-rand_pcg","checksum":false}}],"rustflags":[],"config":2069994364910194474,"compile_kind":0} \ No newline at end of file diff --git a/.tmp-check-windows/debug/.fingerprint/ring-5b2375c7e9e4dabf/build-script-build-script-build b/.tmp-check-windows/debug/.fingerprint/ring-5b2375c7e9e4dabf/build-script-build-script-build new file mode 100644 index 000000000..33e17fa18 --- /dev/null +++ b/.tmp-check-windows/debug/.fingerprint/ring-5b2375c7e9e4dabf/build-script-build-script-build @@ -0,0 +1 @@ +296531ff78f7c6f9 \ No newline at end of file diff --git a/.tmp-check-windows/debug/.fingerprint/ring-5b2375c7e9e4dabf/build-script-build-script-build.json b/.tmp-check-windows/debug/.fingerprint/ring-5b2375c7e9e4dabf/build-script-build-script-build.json new file mode 100644 index 000000000..261429215 --- /dev/null +++ b/.tmp-check-windows/debug/.fingerprint/ring-5b2375c7e9e4dabf/build-script-build-script-build.json @@ -0,0 +1 @@ +{"rustc":13850170861107434965,"features":"[\"alloc\", \"default\", \"dev_urandom_fallback\", \"std\"]","declared_features":"[\"alloc\", \"default\", \"dev_urandom_fallback\", \"less-safe-getrandom-custom-or-rdrand\", \"less-safe-getrandom-espidf\", \"slow_tests\", \"std\", \"test_logging\", \"unstable-testing-arm-no-hw\", \"unstable-testing-arm-no-neon\", \"wasm32_unknown_unknown_js\"]","target":5408242616063297496,"profile":5347358027863023418,"path":10933279620432667647,"deps":[[14836725263356672040,"cc",false,15246472593825671089]],"local":[{"CheckDepInfo":{"dep_info":"debug/.fingerprint/ring-5b2375c7e9e4dabf/dep-build-script-build-script-build","checksum":false}}],"rustflags":[],"config":2069994364910194474,"compile_kind":0} \ No newline at end of file diff --git a/.tmp-check-windows/debug/.fingerprint/ring-5b2375c7e9e4dabf/dep-build-script-build-script-build b/.tmp-check-windows/debug/.fingerprint/ring-5b2375c7e9e4dabf/dep-build-script-build-script-build new file mode 100644 index 000000000..ec3cb8bfd Binary files /dev/null and b/.tmp-check-windows/debug/.fingerprint/ring-5b2375c7e9e4dabf/dep-build-script-build-script-build differ diff --git a/.tmp-check-windows/debug/.fingerprint/ring-5b2375c7e9e4dabf/invoked.timestamp b/.tmp-check-windows/debug/.fingerprint/ring-5b2375c7e9e4dabf/invoked.timestamp new file mode 100644 index 000000000..e00328da5 --- /dev/null +++ b/.tmp-check-windows/debug/.fingerprint/ring-5b2375c7e9e4dabf/invoked.timestamp @@ -0,0 +1 @@ +This file has an mtime of when this was started. \ No newline at end of file diff --git a/.tmp-check-windows/debug/.fingerprint/semver-543345514cf43968/dep-lib-semver b/.tmp-check-windows/debug/.fingerprint/semver-543345514cf43968/dep-lib-semver new file mode 100644 index 000000000..ec3cb8bfd Binary files /dev/null and b/.tmp-check-windows/debug/.fingerprint/semver-543345514cf43968/dep-lib-semver differ diff --git a/.tmp-check-windows/debug/.fingerprint/semver-543345514cf43968/invoked.timestamp b/.tmp-check-windows/debug/.fingerprint/semver-543345514cf43968/invoked.timestamp new file mode 100644 index 000000000..e00328da5 --- /dev/null +++ b/.tmp-check-windows/debug/.fingerprint/semver-543345514cf43968/invoked.timestamp @@ -0,0 +1 @@ +This file has an mtime of when this was started. \ No newline at end of file diff --git a/.tmp-check-windows/debug/.fingerprint/semver-543345514cf43968/lib-semver b/.tmp-check-windows/debug/.fingerprint/semver-543345514cf43968/lib-semver new file mode 100644 index 000000000..334b576c9 --- /dev/null +++ b/.tmp-check-windows/debug/.fingerprint/semver-543345514cf43968/lib-semver @@ -0,0 +1 @@ +3bc378527aac89dc \ No newline at end of file diff --git a/.tmp-check-windows/debug/.fingerprint/semver-543345514cf43968/lib-semver.json b/.tmp-check-windows/debug/.fingerprint/semver-543345514cf43968/lib-semver.json new file mode 100644 index 000000000..944cf8af2 --- /dev/null +++ b/.tmp-check-windows/debug/.fingerprint/semver-543345514cf43968/lib-semver.json @@ -0,0 +1 @@ +{"rustc":13850170861107434965,"features":"[\"default\", \"serde\", \"std\"]","declared_features":"[\"default\", \"serde\", \"std\"]","target":10123455430689237779,"profile":5347358027863023418,"path":5228639717228235202,"deps":[[11899261697793765154,"serde",false,17219360503563949501]],"local":[{"CheckDepInfo":{"dep_info":"debug/.fingerprint/semver-543345514cf43968/dep-lib-semver","checksum":false}}],"rustflags":[],"config":2069994364910194474,"compile_kind":0} \ No newline at end of file diff --git a/.tmp-check-windows/debug/.fingerprint/serde-13ee3669d1da3588/build-script-build-script-build b/.tmp-check-windows/debug/.fingerprint/serde-13ee3669d1da3588/build-script-build-script-build new file mode 100644 index 000000000..c50e3b523 --- /dev/null +++ b/.tmp-check-windows/debug/.fingerprint/serde-13ee3669d1da3588/build-script-build-script-build @@ -0,0 +1 @@ +4ec4706cdfbcce66 \ No newline at end of file diff --git a/.tmp-check-windows/debug/.fingerprint/serde-13ee3669d1da3588/build-script-build-script-build.json b/.tmp-check-windows/debug/.fingerprint/serde-13ee3669d1da3588/build-script-build-script-build.json new file mode 100644 index 000000000..f56f7dfc2 --- /dev/null +++ b/.tmp-check-windows/debug/.fingerprint/serde-13ee3669d1da3588/build-script-build-script-build.json @@ -0,0 +1 @@ +{"rustc":13850170861107434965,"features":"[\"alloc\", \"default\", \"derive\", \"rc\", \"serde_derive\", \"std\"]","declared_features":"[\"alloc\", \"default\", \"derive\", \"rc\", \"serde_derive\", \"std\", \"unstable\"]","target":5408242616063297496,"profile":5347358027863023418,"path":14344486929720091197,"deps":[],"local":[{"CheckDepInfo":{"dep_info":"debug/.fingerprint/serde-13ee3669d1da3588/dep-build-script-build-script-build","checksum":false}}],"rustflags":[],"config":2069994364910194474,"compile_kind":0} \ No newline at end of file diff --git a/.tmp-check-windows/debug/.fingerprint/serde-13ee3669d1da3588/dep-build-script-build-script-build b/.tmp-check-windows/debug/.fingerprint/serde-13ee3669d1da3588/dep-build-script-build-script-build new file mode 100644 index 000000000..ec3cb8bfd Binary files /dev/null and b/.tmp-check-windows/debug/.fingerprint/serde-13ee3669d1da3588/dep-build-script-build-script-build differ diff --git a/.tmp-check-windows/debug/.fingerprint/serde-13ee3669d1da3588/invoked.timestamp b/.tmp-check-windows/debug/.fingerprint/serde-13ee3669d1da3588/invoked.timestamp new file mode 100644 index 000000000..e00328da5 --- /dev/null +++ b/.tmp-check-windows/debug/.fingerprint/serde-13ee3669d1da3588/invoked.timestamp @@ -0,0 +1 @@ +This file has an mtime of when this was started. \ No newline at end of file diff --git a/.tmp-check-windows/debug/.fingerprint/serde-c276f5c30ba9f8ca/run-build-script-build-script-build b/.tmp-check-windows/debug/.fingerprint/serde-c276f5c30ba9f8ca/run-build-script-build-script-build new file mode 100644 index 000000000..6761e42d7 --- /dev/null +++ b/.tmp-check-windows/debug/.fingerprint/serde-c276f5c30ba9f8ca/run-build-script-build-script-build @@ -0,0 +1 @@ +28bd93eb9d9ede2b \ No newline at end of file diff --git a/.tmp-check-windows/debug/.fingerprint/serde-c276f5c30ba9f8ca/run-build-script-build-script-build.json b/.tmp-check-windows/debug/.fingerprint/serde-c276f5c30ba9f8ca/run-build-script-build-script-build.json new file mode 100644 index 000000000..90b4c04fb --- /dev/null +++ b/.tmp-check-windows/debug/.fingerprint/serde-c276f5c30ba9f8ca/run-build-script-build-script-build.json @@ -0,0 +1 @@ +{"rustc":13850170861107434965,"features":"","declared_features":"","target":0,"profile":0,"path":0,"deps":[[13548984313718623784,"build_script_build",false,7408066104854103118]],"local":[{"RerunIfChanged":{"output":"debug/build/serde-c276f5c30ba9f8ca/output","paths":["build.rs"]}}],"rustflags":[],"config":0,"compile_kind":0} \ No newline at end of file diff --git a/.tmp-check-windows/debug/.fingerprint/serde_core-30a846274c034237/build-script-build-script-build b/.tmp-check-windows/debug/.fingerprint/serde_core-30a846274c034237/build-script-build-script-build new file mode 100644 index 000000000..7a732cc59 --- /dev/null +++ b/.tmp-check-windows/debug/.fingerprint/serde_core-30a846274c034237/build-script-build-script-build @@ -0,0 +1 @@ +ebab70206d96ff58 \ No newline at end of file diff --git a/.tmp-check-windows/debug/.fingerprint/serde_core-30a846274c034237/build-script-build-script-build.json b/.tmp-check-windows/debug/.fingerprint/serde_core-30a846274c034237/build-script-build-script-build.json new file mode 100644 index 000000000..9249c26be --- /dev/null +++ b/.tmp-check-windows/debug/.fingerprint/serde_core-30a846274c034237/build-script-build-script-build.json @@ -0,0 +1 @@ +{"rustc":13850170861107434965,"features":"[\"alloc\", \"default\", \"rc\", \"result\", \"std\"]","declared_features":"[\"alloc\", \"default\", \"rc\", \"result\", \"std\", \"unstable\"]","target":5408242616063297496,"profile":5347358027863023418,"path":10265189118736803224,"deps":[],"local":[{"CheckDepInfo":{"dep_info":"debug/.fingerprint/serde_core-30a846274c034237/dep-build-script-build-script-build","checksum":false}}],"rustflags":[],"config":2069994364910194474,"compile_kind":0} \ No newline at end of file diff --git a/.tmp-check-windows/debug/.fingerprint/serde_core-30a846274c034237/dep-build-script-build-script-build b/.tmp-check-windows/debug/.fingerprint/serde_core-30a846274c034237/dep-build-script-build-script-build new file mode 100644 index 000000000..ec3cb8bfd Binary files /dev/null and b/.tmp-check-windows/debug/.fingerprint/serde_core-30a846274c034237/dep-build-script-build-script-build differ diff --git a/.tmp-check-windows/debug/.fingerprint/serde_core-30a846274c034237/invoked.timestamp b/.tmp-check-windows/debug/.fingerprint/serde_core-30a846274c034237/invoked.timestamp new file mode 100644 index 000000000..e00328da5 --- /dev/null +++ b/.tmp-check-windows/debug/.fingerprint/serde_core-30a846274c034237/invoked.timestamp @@ -0,0 +1 @@ +This file has an mtime of when this was started. \ No newline at end of file diff --git a/.tmp-check-windows/debug/.fingerprint/serde_core-c794bec5d8a19735/run-build-script-build-script-build b/.tmp-check-windows/debug/.fingerprint/serde_core-c794bec5d8a19735/run-build-script-build-script-build new file mode 100644 index 000000000..1d8c4fa58 --- /dev/null +++ b/.tmp-check-windows/debug/.fingerprint/serde_core-c794bec5d8a19735/run-build-script-build-script-build @@ -0,0 +1 @@ +41eabed20d4825bd \ No newline at end of file diff --git a/.tmp-check-windows/debug/.fingerprint/serde_core-c794bec5d8a19735/run-build-script-build-script-build.json b/.tmp-check-windows/debug/.fingerprint/serde_core-c794bec5d8a19735/run-build-script-build-script-build.json new file mode 100644 index 000000000..447b978b2 --- /dev/null +++ b/.tmp-check-windows/debug/.fingerprint/serde_core-c794bec5d8a19735/run-build-script-build-script-build.json @@ -0,0 +1 @@ +{"rustc":13850170861107434965,"features":"","declared_features":"","target":0,"profile":0,"path":0,"deps":[[11899261697793765154,"build_script_build",false,6413009789838732267]],"local":[{"RerunIfChanged":{"output":"debug/build/serde_core-c794bec5d8a19735/output","paths":["build.rs"]}}],"rustflags":[],"config":0,"compile_kind":0} \ No newline at end of file diff --git a/.tmp-check-windows/debug/.fingerprint/serde_core-cefd6cbc7f95582d/dep-lib-serde_core b/.tmp-check-windows/debug/.fingerprint/serde_core-cefd6cbc7f95582d/dep-lib-serde_core new file mode 100644 index 000000000..7d51383a5 Binary files /dev/null and b/.tmp-check-windows/debug/.fingerprint/serde_core-cefd6cbc7f95582d/dep-lib-serde_core differ diff --git a/.tmp-check-windows/debug/.fingerprint/serde_core-cefd6cbc7f95582d/invoked.timestamp b/.tmp-check-windows/debug/.fingerprint/serde_core-cefd6cbc7f95582d/invoked.timestamp new file mode 100644 index 000000000..e00328da5 --- /dev/null +++ b/.tmp-check-windows/debug/.fingerprint/serde_core-cefd6cbc7f95582d/invoked.timestamp @@ -0,0 +1 @@ +This file has an mtime of when this was started. \ No newline at end of file diff --git a/.tmp-check-windows/debug/.fingerprint/serde_core-cefd6cbc7f95582d/lib-serde_core b/.tmp-check-windows/debug/.fingerprint/serde_core-cefd6cbc7f95582d/lib-serde_core new file mode 100644 index 000000000..9937c6324 --- /dev/null +++ b/.tmp-check-windows/debug/.fingerprint/serde_core-cefd6cbc7f95582d/lib-serde_core @@ -0,0 +1 @@ +bd15525a2575f7ee \ No newline at end of file diff --git a/.tmp-check-windows/debug/.fingerprint/serde_core-cefd6cbc7f95582d/lib-serde_core.json b/.tmp-check-windows/debug/.fingerprint/serde_core-cefd6cbc7f95582d/lib-serde_core.json new file mode 100644 index 000000000..8545cf868 --- /dev/null +++ b/.tmp-check-windows/debug/.fingerprint/serde_core-cefd6cbc7f95582d/lib-serde_core.json @@ -0,0 +1 @@ +{"rustc":13850170861107434965,"features":"[\"alloc\", \"default\", \"rc\", \"result\", \"std\"]","declared_features":"[\"alloc\", \"default\", \"rc\", \"result\", \"std\", \"unstable\"]","target":6810695588070812737,"profile":5347358027863023418,"path":11251691794696939626,"deps":[[11899261697793765154,"build_script_build",false,13629379071514176065]],"local":[{"CheckDepInfo":{"dep_info":"debug/.fingerprint/serde_core-cefd6cbc7f95582d/dep-lib-serde_core","checksum":false}}],"rustflags":[],"config":2069994364910194474,"compile_kind":0} \ No newline at end of file diff --git a/.tmp-check-windows/debug/.fingerprint/serde_derive-89ba98fc0a6b891c/dep-lib-serde_derive b/.tmp-check-windows/debug/.fingerprint/serde_derive-89ba98fc0a6b891c/dep-lib-serde_derive new file mode 100644 index 000000000..ec3cb8bfd Binary files /dev/null and b/.tmp-check-windows/debug/.fingerprint/serde_derive-89ba98fc0a6b891c/dep-lib-serde_derive differ diff --git a/.tmp-check-windows/debug/.fingerprint/serde_derive-89ba98fc0a6b891c/invoked.timestamp b/.tmp-check-windows/debug/.fingerprint/serde_derive-89ba98fc0a6b891c/invoked.timestamp new file mode 100644 index 000000000..e00328da5 --- /dev/null +++ b/.tmp-check-windows/debug/.fingerprint/serde_derive-89ba98fc0a6b891c/invoked.timestamp @@ -0,0 +1 @@ +This file has an mtime of when this was started. \ No newline at end of file diff --git a/.tmp-check-windows/debug/.fingerprint/serde_derive-89ba98fc0a6b891c/lib-serde_derive b/.tmp-check-windows/debug/.fingerprint/serde_derive-89ba98fc0a6b891c/lib-serde_derive new file mode 100644 index 000000000..e0680e2ba --- /dev/null +++ b/.tmp-check-windows/debug/.fingerprint/serde_derive-89ba98fc0a6b891c/lib-serde_derive @@ -0,0 +1 @@ +ad710d41745efdc9 \ No newline at end of file diff --git a/.tmp-check-windows/debug/.fingerprint/serde_derive-89ba98fc0a6b891c/lib-serde_derive.json b/.tmp-check-windows/debug/.fingerprint/serde_derive-89ba98fc0a6b891c/lib-serde_derive.json new file mode 100644 index 000000000..3a3c496cc --- /dev/null +++ b/.tmp-check-windows/debug/.fingerprint/serde_derive-89ba98fc0a6b891c/lib-serde_derive.json @@ -0,0 +1 @@ +{"rustc":13850170861107434965,"features":"[\"default\"]","declared_features":"[\"default\", \"deserialize_in_place\"]","target":13076129734743110817,"profile":5347358027863023418,"path":2334231837598435064,"deps":[[4289358735036141001,"proc_macro2",false,10271149786456430492],[6100504282945712449,"quote",false,16637874519223053531],[10420560437213941093,"syn",false,1100609084922959835]],"local":[{"CheckDepInfo":{"dep_info":"debug/.fingerprint/serde_derive-89ba98fc0a6b891c/dep-lib-serde_derive","checksum":false}}],"rustflags":[],"config":2069994364910194474,"compile_kind":0} \ No newline at end of file diff --git a/.tmp-check-windows/debug/.fingerprint/serde_json-3b90b44da97b9d90/build-script-build-script-build b/.tmp-check-windows/debug/.fingerprint/serde_json-3b90b44da97b9d90/build-script-build-script-build new file mode 100644 index 000000000..5a97ff53f --- /dev/null +++ b/.tmp-check-windows/debug/.fingerprint/serde_json-3b90b44da97b9d90/build-script-build-script-build @@ -0,0 +1 @@ +0792902c5fca6178 \ No newline at end of file diff --git a/.tmp-check-windows/debug/.fingerprint/serde_json-3b90b44da97b9d90/build-script-build-script-build.json b/.tmp-check-windows/debug/.fingerprint/serde_json-3b90b44da97b9d90/build-script-build-script-build.json new file mode 100644 index 000000000..dac496e55 --- /dev/null +++ b/.tmp-check-windows/debug/.fingerprint/serde_json-3b90b44da97b9d90/build-script-build-script-build.json @@ -0,0 +1 @@ +{"rustc":13850170861107434965,"features":"[\"alloc\", \"default\", \"raw_value\", \"std\", \"unbounded_depth\"]","declared_features":"[\"alloc\", \"arbitrary_precision\", \"default\", \"float_roundtrip\", \"indexmap\", \"preserve_order\", \"raw_value\", \"std\", \"unbounded_depth\"]","target":5408242616063297496,"profile":5347358027863023418,"path":9716244511404754900,"deps":[],"local":[{"CheckDepInfo":{"dep_info":"debug/.fingerprint/serde_json-3b90b44da97b9d90/dep-build-script-build-script-build","checksum":false}}],"rustflags":[],"config":2069994364910194474,"compile_kind":0} \ No newline at end of file diff --git a/.tmp-check-windows/debug/.fingerprint/serde_json-3b90b44da97b9d90/dep-build-script-build-script-build b/.tmp-check-windows/debug/.fingerprint/serde_json-3b90b44da97b9d90/dep-build-script-build-script-build new file mode 100644 index 000000000..ec3cb8bfd Binary files /dev/null and b/.tmp-check-windows/debug/.fingerprint/serde_json-3b90b44da97b9d90/dep-build-script-build-script-build differ diff --git a/.tmp-check-windows/debug/.fingerprint/serde_json-3b90b44da97b9d90/invoked.timestamp b/.tmp-check-windows/debug/.fingerprint/serde_json-3b90b44da97b9d90/invoked.timestamp new file mode 100644 index 000000000..e00328da5 --- /dev/null +++ b/.tmp-check-windows/debug/.fingerprint/serde_json-3b90b44da97b9d90/invoked.timestamp @@ -0,0 +1 @@ +This file has an mtime of when this was started. \ No newline at end of file diff --git a/.tmp-check-windows/debug/.fingerprint/serde_json-48b98585285cf825/run-build-script-build-script-build b/.tmp-check-windows/debug/.fingerprint/serde_json-48b98585285cf825/run-build-script-build-script-build new file mode 100644 index 000000000..94ba1923f --- /dev/null +++ b/.tmp-check-windows/debug/.fingerprint/serde_json-48b98585285cf825/run-build-script-build-script-build @@ -0,0 +1 @@ +d5116b6a054fa958 \ No newline at end of file diff --git a/.tmp-check-windows/debug/.fingerprint/serde_json-48b98585285cf825/run-build-script-build-script-build.json b/.tmp-check-windows/debug/.fingerprint/serde_json-48b98585285cf825/run-build-script-build-script-build.json new file mode 100644 index 000000000..0948ce537 --- /dev/null +++ b/.tmp-check-windows/debug/.fingerprint/serde_json-48b98585285cf825/run-build-script-build-script-build.json @@ -0,0 +1 @@ +{"rustc":13850170861107434965,"features":"","declared_features":"","target":0,"profile":0,"path":0,"deps":[[13795362694956882968,"build_script_build",false,8674436867410661895]],"local":[{"RerunIfChanged":{"output":"debug/build/serde_json-48b98585285cf825/output","paths":["build.rs"]}}],"rustflags":[],"config":0,"compile_kind":0} \ No newline at end of file diff --git a/.tmp-check-windows/debug/.fingerprint/serde_json-490286e15e730fa6/build-script-build-script-build b/.tmp-check-windows/debug/.fingerprint/serde_json-490286e15e730fa6/build-script-build-script-build new file mode 100644 index 000000000..65c6159df --- /dev/null +++ b/.tmp-check-windows/debug/.fingerprint/serde_json-490286e15e730fa6/build-script-build-script-build @@ -0,0 +1 @@ +a88eb4f03522671a \ No newline at end of file diff --git a/.tmp-check-windows/debug/.fingerprint/serde_json-490286e15e730fa6/build-script-build-script-build.json b/.tmp-check-windows/debug/.fingerprint/serde_json-490286e15e730fa6/build-script-build-script-build.json new file mode 100644 index 000000000..90f86a9f5 --- /dev/null +++ b/.tmp-check-windows/debug/.fingerprint/serde_json-490286e15e730fa6/build-script-build-script-build.json @@ -0,0 +1 @@ +{"rustc":13850170861107434965,"features":"[\"alloc\", \"default\", \"raw_value\", \"std\"]","declared_features":"[\"alloc\", \"arbitrary_precision\", \"default\", \"float_roundtrip\", \"indexmap\", \"preserve_order\", \"raw_value\", \"std\", \"unbounded_depth\"]","target":5408242616063297496,"profile":5347358027863023418,"path":9716244511404754900,"deps":[],"local":[{"CheckDepInfo":{"dep_info":"debug/.fingerprint/serde_json-490286e15e730fa6/dep-build-script-build-script-build","checksum":false}}],"rustflags":[],"config":2069994364910194474,"compile_kind":0} \ No newline at end of file diff --git a/.tmp-check-windows/debug/.fingerprint/serde_json-490286e15e730fa6/dep-build-script-build-script-build b/.tmp-check-windows/debug/.fingerprint/serde_json-490286e15e730fa6/dep-build-script-build-script-build new file mode 100644 index 000000000..ec3cb8bfd Binary files /dev/null and b/.tmp-check-windows/debug/.fingerprint/serde_json-490286e15e730fa6/dep-build-script-build-script-build differ diff --git a/.tmp-check-windows/debug/.fingerprint/serde_json-490286e15e730fa6/invoked.timestamp b/.tmp-check-windows/debug/.fingerprint/serde_json-490286e15e730fa6/invoked.timestamp new file mode 100644 index 000000000..e00328da5 --- /dev/null +++ b/.tmp-check-windows/debug/.fingerprint/serde_json-490286e15e730fa6/invoked.timestamp @@ -0,0 +1 @@ +This file has an mtime of when this was started. \ No newline at end of file diff --git a/.tmp-check-windows/debug/.fingerprint/serde_json-6c77cebf97b17baa/dep-lib-serde_json b/.tmp-check-windows/debug/.fingerprint/serde_json-6c77cebf97b17baa/dep-lib-serde_json new file mode 100644 index 000000000..ec3cb8bfd Binary files /dev/null and b/.tmp-check-windows/debug/.fingerprint/serde_json-6c77cebf97b17baa/dep-lib-serde_json differ diff --git a/.tmp-check-windows/debug/.fingerprint/serde_json-6c77cebf97b17baa/invoked.timestamp b/.tmp-check-windows/debug/.fingerprint/serde_json-6c77cebf97b17baa/invoked.timestamp new file mode 100644 index 000000000..e00328da5 --- /dev/null +++ b/.tmp-check-windows/debug/.fingerprint/serde_json-6c77cebf97b17baa/invoked.timestamp @@ -0,0 +1 @@ +This file has an mtime of when this was started. \ No newline at end of file diff --git a/.tmp-check-windows/debug/.fingerprint/serde_json-6c77cebf97b17baa/lib-serde_json b/.tmp-check-windows/debug/.fingerprint/serde_json-6c77cebf97b17baa/lib-serde_json new file mode 100644 index 000000000..384aa0a41 --- /dev/null +++ b/.tmp-check-windows/debug/.fingerprint/serde_json-6c77cebf97b17baa/lib-serde_json @@ -0,0 +1 @@ +9af16df45ae8362d \ No newline at end of file diff --git a/.tmp-check-windows/debug/.fingerprint/serde_json-6c77cebf97b17baa/lib-serde_json.json b/.tmp-check-windows/debug/.fingerprint/serde_json-6c77cebf97b17baa/lib-serde_json.json new file mode 100644 index 000000000..553e8ec68 --- /dev/null +++ b/.tmp-check-windows/debug/.fingerprint/serde_json-6c77cebf97b17baa/lib-serde_json.json @@ -0,0 +1 @@ +{"rustc":13850170861107434965,"features":"[\"alloc\", \"default\", \"raw_value\", \"std\", \"unbounded_depth\"]","declared_features":"[\"alloc\", \"arbitrary_precision\", \"default\", \"float_roundtrip\", \"indexmap\", \"preserve_order\", \"raw_value\", \"std\", \"unbounded_depth\"]","target":9592559880233824070,"profile":5347358027863023418,"path":18292503061834243562,"deps":[[1363051979936526615,"memchr",false,263973597575239492],[9938278000850417404,"itoa",false,4816100927094245439],[11899261697793765154,"serde_core",false,17219360503563949501],[12347024475581975995,"zmij",false,5221308048313809914],[13795362694956882968,"build_script_build",false,6388724431080591829]],"local":[{"CheckDepInfo":{"dep_info":"debug/.fingerprint/serde_json-6c77cebf97b17baa/dep-lib-serde_json","checksum":false}}],"rustflags":[],"config":2069994364910194474,"compile_kind":0} \ No newline at end of file diff --git a/.tmp-check-windows/debug/.fingerprint/shlex-7171638d6f63b0df/dep-lib-shlex b/.tmp-check-windows/debug/.fingerprint/shlex-7171638d6f63b0df/dep-lib-shlex new file mode 100644 index 000000000..ec3cb8bfd Binary files /dev/null and b/.tmp-check-windows/debug/.fingerprint/shlex-7171638d6f63b0df/dep-lib-shlex differ diff --git a/.tmp-check-windows/debug/.fingerprint/shlex-7171638d6f63b0df/invoked.timestamp b/.tmp-check-windows/debug/.fingerprint/shlex-7171638d6f63b0df/invoked.timestamp new file mode 100644 index 000000000..e00328da5 --- /dev/null +++ b/.tmp-check-windows/debug/.fingerprint/shlex-7171638d6f63b0df/invoked.timestamp @@ -0,0 +1 @@ +This file has an mtime of when this was started. \ No newline at end of file diff --git a/.tmp-check-windows/debug/.fingerprint/shlex-7171638d6f63b0df/lib-shlex b/.tmp-check-windows/debug/.fingerprint/shlex-7171638d6f63b0df/lib-shlex new file mode 100644 index 000000000..9c9a8f53c --- /dev/null +++ b/.tmp-check-windows/debug/.fingerprint/shlex-7171638d6f63b0df/lib-shlex @@ -0,0 +1 @@ +5a429587b063754d \ No newline at end of file diff --git a/.tmp-check-windows/debug/.fingerprint/shlex-7171638d6f63b0df/lib-shlex.json b/.tmp-check-windows/debug/.fingerprint/shlex-7171638d6f63b0df/lib-shlex.json new file mode 100644 index 000000000..892d5ad2d --- /dev/null +++ b/.tmp-check-windows/debug/.fingerprint/shlex-7171638d6f63b0df/lib-shlex.json @@ -0,0 +1 @@ +{"rustc":13850170861107434965,"features":"[\"default\", \"std\"]","declared_features":"[\"default\", \"std\"]","target":929485496544747924,"profile":5347358027863023418,"path":15142752719376777338,"deps":[],"local":[{"CheckDepInfo":{"dep_info":"debug/.fingerprint/shlex-7171638d6f63b0df/dep-lib-shlex","checksum":false}}],"rustflags":[],"config":2069994364910194474,"compile_kind":0} \ No newline at end of file diff --git a/.tmp-check-windows/debug/.fingerprint/siphasher-1009363a57ead995/dep-lib-siphasher b/.tmp-check-windows/debug/.fingerprint/siphasher-1009363a57ead995/dep-lib-siphasher new file mode 100644 index 000000000..ec3cb8bfd Binary files /dev/null and b/.tmp-check-windows/debug/.fingerprint/siphasher-1009363a57ead995/dep-lib-siphasher differ diff --git a/.tmp-check-windows/debug/.fingerprint/siphasher-1009363a57ead995/invoked.timestamp b/.tmp-check-windows/debug/.fingerprint/siphasher-1009363a57ead995/invoked.timestamp new file mode 100644 index 000000000..e00328da5 --- /dev/null +++ b/.tmp-check-windows/debug/.fingerprint/siphasher-1009363a57ead995/invoked.timestamp @@ -0,0 +1 @@ +This file has an mtime of when this was started. \ No newline at end of file diff --git a/.tmp-check-windows/debug/.fingerprint/siphasher-1009363a57ead995/lib-siphasher b/.tmp-check-windows/debug/.fingerprint/siphasher-1009363a57ead995/lib-siphasher new file mode 100644 index 000000000..237efc596 --- /dev/null +++ b/.tmp-check-windows/debug/.fingerprint/siphasher-1009363a57ead995/lib-siphasher @@ -0,0 +1 @@ +2342b679cf5d5f23 \ No newline at end of file diff --git a/.tmp-check-windows/debug/.fingerprint/siphasher-1009363a57ead995/lib-siphasher.json b/.tmp-check-windows/debug/.fingerprint/siphasher-1009363a57ead995/lib-siphasher.json new file mode 100644 index 000000000..ccd470853 --- /dev/null +++ b/.tmp-check-windows/debug/.fingerprint/siphasher-1009363a57ead995/lib-siphasher.json @@ -0,0 +1 @@ +{"rustc":13850170861107434965,"features":"[\"default\", \"std\"]","declared_features":"[\"default\", \"serde\", \"serde_json\", \"serde_no_std\", \"serde_std\", \"std\"]","target":4119152769974956727,"profile":5347358027863023418,"path":4152024725523974760,"deps":[],"local":[{"CheckDepInfo":{"dep_info":"debug/.fingerprint/siphasher-1009363a57ead995/dep-lib-siphasher","checksum":false}}],"rustflags":[],"config":2069994364910194474,"compile_kind":0} \ No newline at end of file diff --git a/.tmp-check-windows/debug/.fingerprint/siphasher-345e9d0d879105b4/dep-lib-siphasher b/.tmp-check-windows/debug/.fingerprint/siphasher-345e9d0d879105b4/dep-lib-siphasher new file mode 100644 index 000000000..ec3cb8bfd Binary files /dev/null and b/.tmp-check-windows/debug/.fingerprint/siphasher-345e9d0d879105b4/dep-lib-siphasher differ diff --git a/.tmp-check-windows/debug/.fingerprint/siphasher-345e9d0d879105b4/invoked.timestamp b/.tmp-check-windows/debug/.fingerprint/siphasher-345e9d0d879105b4/invoked.timestamp new file mode 100644 index 000000000..e00328da5 --- /dev/null +++ b/.tmp-check-windows/debug/.fingerprint/siphasher-345e9d0d879105b4/invoked.timestamp @@ -0,0 +1 @@ +This file has an mtime of when this was started. \ No newline at end of file diff --git a/.tmp-check-windows/debug/.fingerprint/siphasher-345e9d0d879105b4/lib-siphasher b/.tmp-check-windows/debug/.fingerprint/siphasher-345e9d0d879105b4/lib-siphasher new file mode 100644 index 000000000..d42845c39 --- /dev/null +++ b/.tmp-check-windows/debug/.fingerprint/siphasher-345e9d0d879105b4/lib-siphasher @@ -0,0 +1 @@ +93541812852906fb \ No newline at end of file diff --git a/.tmp-check-windows/debug/.fingerprint/siphasher-345e9d0d879105b4/lib-siphasher.json b/.tmp-check-windows/debug/.fingerprint/siphasher-345e9d0d879105b4/lib-siphasher.json new file mode 100644 index 000000000..06c09b7ee --- /dev/null +++ b/.tmp-check-windows/debug/.fingerprint/siphasher-345e9d0d879105b4/lib-siphasher.json @@ -0,0 +1 @@ +{"rustc":13850170861107434965,"features":"[\"default\", \"std\"]","declared_features":"[\"default\", \"serde\", \"serde_json\", \"serde_no_std\", \"serde_std\", \"std\"]","target":6846127388476139628,"profile":5347358027863023418,"path":330148600304047602,"deps":[],"local":[{"CheckDepInfo":{"dep_info":"debug/.fingerprint/siphasher-345e9d0d879105b4/dep-lib-siphasher","checksum":false}}],"rustflags":[],"config":2069994364910194474,"compile_kind":0} \ No newline at end of file diff --git a/.tmp-check-windows/debug/.fingerprint/smallvec-98f2f3c753ea1c31/dep-lib-smallvec b/.tmp-check-windows/debug/.fingerprint/smallvec-98f2f3c753ea1c31/dep-lib-smallvec new file mode 100644 index 000000000..ec3cb8bfd Binary files /dev/null and b/.tmp-check-windows/debug/.fingerprint/smallvec-98f2f3c753ea1c31/dep-lib-smallvec differ diff --git a/.tmp-check-windows/debug/.fingerprint/smallvec-98f2f3c753ea1c31/invoked.timestamp b/.tmp-check-windows/debug/.fingerprint/smallvec-98f2f3c753ea1c31/invoked.timestamp new file mode 100644 index 000000000..e00328da5 --- /dev/null +++ b/.tmp-check-windows/debug/.fingerprint/smallvec-98f2f3c753ea1c31/invoked.timestamp @@ -0,0 +1 @@ +This file has an mtime of when this was started. \ No newline at end of file diff --git a/.tmp-check-windows/debug/.fingerprint/smallvec-98f2f3c753ea1c31/lib-smallvec b/.tmp-check-windows/debug/.fingerprint/smallvec-98f2f3c753ea1c31/lib-smallvec new file mode 100644 index 000000000..9e93a7a1f --- /dev/null +++ b/.tmp-check-windows/debug/.fingerprint/smallvec-98f2f3c753ea1c31/lib-smallvec @@ -0,0 +1 @@ +378d5d3539a3b7f9 \ No newline at end of file diff --git a/.tmp-check-windows/debug/.fingerprint/smallvec-98f2f3c753ea1c31/lib-smallvec.json b/.tmp-check-windows/debug/.fingerprint/smallvec-98f2f3c753ea1c31/lib-smallvec.json new file mode 100644 index 000000000..91830c02e --- /dev/null +++ b/.tmp-check-windows/debug/.fingerprint/smallvec-98f2f3c753ea1c31/lib-smallvec.json @@ -0,0 +1 @@ +{"rustc":13850170861107434965,"features":"[\"const_generics\", \"const_new\"]","declared_features":"[\"arbitrary\", \"bincode\", \"const_generics\", \"const_new\", \"debugger_visualizer\", \"drain_filter\", \"drain_keep_rest\", \"impl_bincode\", \"malloc_size_of\", \"may_dangle\", \"serde\", \"specialization\", \"union\", \"unty\", \"write\"]","target":9091769176333489034,"profile":5347358027863023418,"path":898322672860480210,"deps":[],"local":[{"CheckDepInfo":{"dep_info":"debug/.fingerprint/smallvec-98f2f3c753ea1c31/dep-lib-smallvec","checksum":false}}],"rustflags":[],"config":2069994364910194474,"compile_kind":0} \ No newline at end of file diff --git a/.tmp-check-windows/debug/.fingerprint/stable_deref_trait-079674d525393046/dep-lib-stable_deref_trait b/.tmp-check-windows/debug/.fingerprint/stable_deref_trait-079674d525393046/dep-lib-stable_deref_trait new file mode 100644 index 000000000..ec3cb8bfd Binary files /dev/null and b/.tmp-check-windows/debug/.fingerprint/stable_deref_trait-079674d525393046/dep-lib-stable_deref_trait differ diff --git a/.tmp-check-windows/debug/.fingerprint/stable_deref_trait-079674d525393046/invoked.timestamp b/.tmp-check-windows/debug/.fingerprint/stable_deref_trait-079674d525393046/invoked.timestamp new file mode 100644 index 000000000..e00328da5 --- /dev/null +++ b/.tmp-check-windows/debug/.fingerprint/stable_deref_trait-079674d525393046/invoked.timestamp @@ -0,0 +1 @@ +This file has an mtime of when this was started. \ No newline at end of file diff --git a/.tmp-check-windows/debug/.fingerprint/stable_deref_trait-079674d525393046/lib-stable_deref_trait b/.tmp-check-windows/debug/.fingerprint/stable_deref_trait-079674d525393046/lib-stable_deref_trait new file mode 100644 index 000000000..9537b054c --- /dev/null +++ b/.tmp-check-windows/debug/.fingerprint/stable_deref_trait-079674d525393046/lib-stable_deref_trait @@ -0,0 +1 @@ +ec4f562c6d31b951 \ No newline at end of file diff --git a/.tmp-check-windows/debug/.fingerprint/stable_deref_trait-079674d525393046/lib-stable_deref_trait.json b/.tmp-check-windows/debug/.fingerprint/stable_deref_trait-079674d525393046/lib-stable_deref_trait.json new file mode 100644 index 000000000..76e9a525c --- /dev/null +++ b/.tmp-check-windows/debug/.fingerprint/stable_deref_trait-079674d525393046/lib-stable_deref_trait.json @@ -0,0 +1 @@ +{"rustc":13850170861107434965,"features":"[\"alloc\", \"default\", \"std\"]","declared_features":"[\"alloc\", \"default\", \"std\"]","target":5616890217583455155,"profile":5347358027863023418,"path":6768685854453472276,"deps":[],"local":[{"CheckDepInfo":{"dep_info":"debug/.fingerprint/stable_deref_trait-079674d525393046/dep-lib-stable_deref_trait","checksum":false}}],"rustflags":[],"config":2069994364910194474,"compile_kind":0} \ No newline at end of file diff --git a/.tmp-check-windows/debug/.fingerprint/strsim-5ae94b339ebb4964/dep-lib-strsim b/.tmp-check-windows/debug/.fingerprint/strsim-5ae94b339ebb4964/dep-lib-strsim new file mode 100644 index 000000000..ec3cb8bfd Binary files /dev/null and b/.tmp-check-windows/debug/.fingerprint/strsim-5ae94b339ebb4964/dep-lib-strsim differ diff --git a/.tmp-check-windows/debug/.fingerprint/strsim-5ae94b339ebb4964/invoked.timestamp b/.tmp-check-windows/debug/.fingerprint/strsim-5ae94b339ebb4964/invoked.timestamp new file mode 100644 index 000000000..e00328da5 --- /dev/null +++ b/.tmp-check-windows/debug/.fingerprint/strsim-5ae94b339ebb4964/invoked.timestamp @@ -0,0 +1 @@ +This file has an mtime of when this was started. \ No newline at end of file diff --git a/.tmp-check-windows/debug/.fingerprint/strsim-5ae94b339ebb4964/lib-strsim b/.tmp-check-windows/debug/.fingerprint/strsim-5ae94b339ebb4964/lib-strsim new file mode 100644 index 000000000..b487b13bc --- /dev/null +++ b/.tmp-check-windows/debug/.fingerprint/strsim-5ae94b339ebb4964/lib-strsim @@ -0,0 +1 @@ +ebd53c3c965202e8 \ No newline at end of file diff --git a/.tmp-check-windows/debug/.fingerprint/strsim-5ae94b339ebb4964/lib-strsim.json b/.tmp-check-windows/debug/.fingerprint/strsim-5ae94b339ebb4964/lib-strsim.json new file mode 100644 index 000000000..5d45bc125 --- /dev/null +++ b/.tmp-check-windows/debug/.fingerprint/strsim-5ae94b339ebb4964/lib-strsim.json @@ -0,0 +1 @@ +{"rustc":13850170861107434965,"features":"[]","declared_features":"[]","target":14520901741915772287,"profile":5347358027863023418,"path":11051779843621992021,"deps":[],"local":[{"CheckDepInfo":{"dep_info":"debug/.fingerprint/strsim-5ae94b339ebb4964/dep-lib-strsim","checksum":false}}],"rustflags":[],"config":2069994364910194474,"compile_kind":0} \ No newline at end of file diff --git a/.tmp-check-windows/debug/.fingerprint/syn-01a0fc01109b9e8a/dep-lib-syn b/.tmp-check-windows/debug/.fingerprint/syn-01a0fc01109b9e8a/dep-lib-syn new file mode 100644 index 000000000..ec3cb8bfd Binary files /dev/null and b/.tmp-check-windows/debug/.fingerprint/syn-01a0fc01109b9e8a/dep-lib-syn differ diff --git a/.tmp-check-windows/debug/.fingerprint/syn-01a0fc01109b9e8a/invoked.timestamp b/.tmp-check-windows/debug/.fingerprint/syn-01a0fc01109b9e8a/invoked.timestamp new file mode 100644 index 000000000..e00328da5 --- /dev/null +++ b/.tmp-check-windows/debug/.fingerprint/syn-01a0fc01109b9e8a/invoked.timestamp @@ -0,0 +1 @@ +This file has an mtime of when this was started. \ No newline at end of file diff --git a/.tmp-check-windows/debug/.fingerprint/syn-01a0fc01109b9e8a/lib-syn b/.tmp-check-windows/debug/.fingerprint/syn-01a0fc01109b9e8a/lib-syn new file mode 100644 index 000000000..d50d9a8c4 --- /dev/null +++ b/.tmp-check-windows/debug/.fingerprint/syn-01a0fc01109b9e8a/lib-syn @@ -0,0 +1 @@ +db9766a72126460f \ No newline at end of file diff --git a/.tmp-check-windows/debug/.fingerprint/syn-01a0fc01109b9e8a/lib-syn.json b/.tmp-check-windows/debug/.fingerprint/syn-01a0fc01109b9e8a/lib-syn.json new file mode 100644 index 000000000..2d92a2913 --- /dev/null +++ b/.tmp-check-windows/debug/.fingerprint/syn-01a0fc01109b9e8a/lib-syn.json @@ -0,0 +1 @@ +{"rustc":13850170861107434965,"features":"[\"clone-impls\", \"default\", \"derive\", \"extra-traits\", \"fold\", \"full\", \"parsing\", \"printing\", \"proc-macro\", \"visit\", \"visit-mut\"]","declared_features":"[\"clone-impls\", \"default\", \"derive\", \"extra-traits\", \"fold\", \"full\", \"parsing\", \"printing\", \"proc-macro\", \"test\", \"visit\", \"visit-mut\"]","target":9442126953582868550,"profile":5347358027863023418,"path":3119093010730842801,"deps":[[4289358735036141001,"proc_macro2",false,10271149786456430492],[6100504282945712449,"quote",false,16637874519223053531],[8901712065508858692,"unicode_ident",false,13718498485453318976]],"local":[{"CheckDepInfo":{"dep_info":"debug/.fingerprint/syn-01a0fc01109b9e8a/dep-lib-syn","checksum":false}}],"rustflags":[],"config":2069994364910194474,"compile_kind":0} \ No newline at end of file diff --git a/.tmp-check-windows/debug/.fingerprint/syn-1436ae3860e218e7/build-script-build-script-build b/.tmp-check-windows/debug/.fingerprint/syn-1436ae3860e218e7/build-script-build-script-build new file mode 100644 index 000000000..fa5458ae3 --- /dev/null +++ b/.tmp-check-windows/debug/.fingerprint/syn-1436ae3860e218e7/build-script-build-script-build @@ -0,0 +1 @@ +3ccc2a8c1b7b1d4b \ No newline at end of file diff --git a/.tmp-check-windows/debug/.fingerprint/syn-1436ae3860e218e7/build-script-build-script-build.json b/.tmp-check-windows/debug/.fingerprint/syn-1436ae3860e218e7/build-script-build-script-build.json new file mode 100644 index 000000000..9e8bfe375 --- /dev/null +++ b/.tmp-check-windows/debug/.fingerprint/syn-1436ae3860e218e7/build-script-build-script-build.json @@ -0,0 +1 @@ +{"rustc":13850170861107434965,"features":"[\"clone-impls\", \"default\", \"derive\", \"extra-traits\", \"fold\", \"full\", \"parsing\", \"printing\", \"proc-macro\", \"quote\"]","declared_features":"[\"clone-impls\", \"default\", \"derive\", \"extra-traits\", \"fold\", \"full\", \"parsing\", \"printing\", \"proc-macro\", \"quote\", \"test\", \"visit\", \"visit-mut\"]","target":17883862002600103897,"profile":5347358027863023418,"path":3555642079897760350,"deps":[],"local":[{"CheckDepInfo":{"dep_info":"debug/.fingerprint/syn-1436ae3860e218e7/dep-build-script-build-script-build","checksum":false}}],"rustflags":[],"config":2069994364910194474,"compile_kind":0} \ No newline at end of file diff --git a/.tmp-check-windows/debug/.fingerprint/syn-1436ae3860e218e7/dep-build-script-build-script-build b/.tmp-check-windows/debug/.fingerprint/syn-1436ae3860e218e7/dep-build-script-build-script-build new file mode 100644 index 000000000..ec3cb8bfd Binary files /dev/null and b/.tmp-check-windows/debug/.fingerprint/syn-1436ae3860e218e7/dep-build-script-build-script-build differ diff --git a/.tmp-check-windows/debug/.fingerprint/syn-1436ae3860e218e7/invoked.timestamp b/.tmp-check-windows/debug/.fingerprint/syn-1436ae3860e218e7/invoked.timestamp new file mode 100644 index 000000000..e00328da5 --- /dev/null +++ b/.tmp-check-windows/debug/.fingerprint/syn-1436ae3860e218e7/invoked.timestamp @@ -0,0 +1 @@ +This file has an mtime of when this was started. \ No newline at end of file diff --git a/.tmp-check-windows/debug/.fingerprint/syn-4ab2b9632b5fdaf5/run-build-script-build-script-build b/.tmp-check-windows/debug/.fingerprint/syn-4ab2b9632b5fdaf5/run-build-script-build-script-build new file mode 100644 index 000000000..75f360f4e --- /dev/null +++ b/.tmp-check-windows/debug/.fingerprint/syn-4ab2b9632b5fdaf5/run-build-script-build-script-build @@ -0,0 +1 @@ +88dacdbcad428e3a \ No newline at end of file diff --git a/.tmp-check-windows/debug/.fingerprint/syn-4ab2b9632b5fdaf5/run-build-script-build-script-build.json b/.tmp-check-windows/debug/.fingerprint/syn-4ab2b9632b5fdaf5/run-build-script-build-script-build.json new file mode 100644 index 000000000..13213f902 --- /dev/null +++ b/.tmp-check-windows/debug/.fingerprint/syn-4ab2b9632b5fdaf5/run-build-script-build-script-build.json @@ -0,0 +1 @@ +{"rustc":13850170861107434965,"features":"","declared_features":"","target":0,"profile":0,"path":0,"deps":[[2713742371683562785,"build_script_build",false,5412617685415152700]],"local":[{"Precalculated":"1.0.109"}],"rustflags":[],"config":0,"compile_kind":0} \ No newline at end of file diff --git a/.tmp-check-windows/debug/.fingerprint/synstructure-cd990b40b40e7322/dep-lib-synstructure b/.tmp-check-windows/debug/.fingerprint/synstructure-cd990b40b40e7322/dep-lib-synstructure new file mode 100644 index 000000000..ec3cb8bfd Binary files /dev/null and b/.tmp-check-windows/debug/.fingerprint/synstructure-cd990b40b40e7322/dep-lib-synstructure differ diff --git a/.tmp-check-windows/debug/.fingerprint/synstructure-cd990b40b40e7322/invoked.timestamp b/.tmp-check-windows/debug/.fingerprint/synstructure-cd990b40b40e7322/invoked.timestamp new file mode 100644 index 000000000..e00328da5 --- /dev/null +++ b/.tmp-check-windows/debug/.fingerprint/synstructure-cd990b40b40e7322/invoked.timestamp @@ -0,0 +1 @@ +This file has an mtime of when this was started. \ No newline at end of file diff --git a/.tmp-check-windows/debug/.fingerprint/synstructure-cd990b40b40e7322/lib-synstructure b/.tmp-check-windows/debug/.fingerprint/synstructure-cd990b40b40e7322/lib-synstructure new file mode 100644 index 000000000..d25ee9bf2 --- /dev/null +++ b/.tmp-check-windows/debug/.fingerprint/synstructure-cd990b40b40e7322/lib-synstructure @@ -0,0 +1 @@ +951f03ef55799928 \ No newline at end of file diff --git a/.tmp-check-windows/debug/.fingerprint/synstructure-cd990b40b40e7322/lib-synstructure.json b/.tmp-check-windows/debug/.fingerprint/synstructure-cd990b40b40e7322/lib-synstructure.json new file mode 100644 index 000000000..c851b02f7 --- /dev/null +++ b/.tmp-check-windows/debug/.fingerprint/synstructure-cd990b40b40e7322/lib-synstructure.json @@ -0,0 +1 @@ +{"rustc":13850170861107434965,"features":"[\"default\", \"proc-macro\"]","declared_features":"[\"default\", \"proc-macro\"]","target":14291004384071580589,"profile":5347358027863023418,"path":60098187754998933,"deps":[[4289358735036141001,"proc_macro2",false,10271149786456430492],[6100504282945712449,"quote",false,16637874519223053531],[10420560437213941093,"syn",false,1100609084922959835]],"local":[{"CheckDepInfo":{"dep_info":"debug/.fingerprint/synstructure-cd990b40b40e7322/dep-lib-synstructure","checksum":false}}],"rustflags":[],"config":2069994364910194474,"compile_kind":0} \ No newline at end of file diff --git a/.tmp-check-windows/debug/.fingerprint/thiserror-3a13fe7bd6af16a6/build-script-build-script-build b/.tmp-check-windows/debug/.fingerprint/thiserror-3a13fe7bd6af16a6/build-script-build-script-build new file mode 100644 index 000000000..c231d9524 --- /dev/null +++ b/.tmp-check-windows/debug/.fingerprint/thiserror-3a13fe7bd6af16a6/build-script-build-script-build @@ -0,0 +1 @@ +74e979bc06469437 \ No newline at end of file diff --git a/.tmp-check-windows/debug/.fingerprint/thiserror-3a13fe7bd6af16a6/build-script-build-script-build.json b/.tmp-check-windows/debug/.fingerprint/thiserror-3a13fe7bd6af16a6/build-script-build-script-build.json new file mode 100644 index 000000000..e808c5f06 --- /dev/null +++ b/.tmp-check-windows/debug/.fingerprint/thiserror-3a13fe7bd6af16a6/build-script-build-script-build.json @@ -0,0 +1 @@ +{"rustc":13850170861107434965,"features":"[\"default\", \"std\"]","declared_features":"[\"default\", \"std\"]","target":5408242616063297496,"profile":5347358027863023418,"path":5089523810489643121,"deps":[],"local":[{"CheckDepInfo":{"dep_info":"debug/.fingerprint/thiserror-3a13fe7bd6af16a6/dep-build-script-build-script-build","checksum":false}}],"rustflags":[],"config":2069994364910194474,"compile_kind":0} \ No newline at end of file diff --git a/.tmp-check-windows/debug/.fingerprint/thiserror-3a13fe7bd6af16a6/dep-build-script-build-script-build b/.tmp-check-windows/debug/.fingerprint/thiserror-3a13fe7bd6af16a6/dep-build-script-build-script-build new file mode 100644 index 000000000..ec3cb8bfd Binary files /dev/null and b/.tmp-check-windows/debug/.fingerprint/thiserror-3a13fe7bd6af16a6/dep-build-script-build-script-build differ diff --git a/.tmp-check-windows/debug/.fingerprint/thiserror-3a13fe7bd6af16a6/invoked.timestamp b/.tmp-check-windows/debug/.fingerprint/thiserror-3a13fe7bd6af16a6/invoked.timestamp new file mode 100644 index 000000000..e00328da5 --- /dev/null +++ b/.tmp-check-windows/debug/.fingerprint/thiserror-3a13fe7bd6af16a6/invoked.timestamp @@ -0,0 +1 @@ +This file has an mtime of when this was started. \ No newline at end of file diff --git a/.tmp-check-windows/debug/.fingerprint/thiserror-bdad7868d0257c89/build-script-build-script-build b/.tmp-check-windows/debug/.fingerprint/thiserror-bdad7868d0257c89/build-script-build-script-build new file mode 100644 index 000000000..575531d23 --- /dev/null +++ b/.tmp-check-windows/debug/.fingerprint/thiserror-bdad7868d0257c89/build-script-build-script-build @@ -0,0 +1 @@ +18525cf15cdf76c7 \ No newline at end of file diff --git a/.tmp-check-windows/debug/.fingerprint/thiserror-bdad7868d0257c89/build-script-build-script-build.json b/.tmp-check-windows/debug/.fingerprint/thiserror-bdad7868d0257c89/build-script-build-script-build.json new file mode 100644 index 000000000..69a745133 --- /dev/null +++ b/.tmp-check-windows/debug/.fingerprint/thiserror-bdad7868d0257c89/build-script-build-script-build.json @@ -0,0 +1 @@ +{"rustc":13850170861107434965,"features":"[]","declared_features":"[]","target":5408242616063297496,"profile":5347358027863023418,"path":4179793223949506243,"deps":[],"local":[{"CheckDepInfo":{"dep_info":"debug/.fingerprint/thiserror-bdad7868d0257c89/dep-build-script-build-script-build","checksum":false}}],"rustflags":[],"config":2069994364910194474,"compile_kind":0} \ No newline at end of file diff --git a/.tmp-check-windows/debug/.fingerprint/thiserror-bdad7868d0257c89/dep-build-script-build-script-build b/.tmp-check-windows/debug/.fingerprint/thiserror-bdad7868d0257c89/dep-build-script-build-script-build new file mode 100644 index 000000000..ec3cb8bfd Binary files /dev/null and b/.tmp-check-windows/debug/.fingerprint/thiserror-bdad7868d0257c89/dep-build-script-build-script-build differ diff --git a/.tmp-check-windows/debug/.fingerprint/thiserror-bdad7868d0257c89/invoked.timestamp b/.tmp-check-windows/debug/.fingerprint/thiserror-bdad7868d0257c89/invoked.timestamp new file mode 100644 index 000000000..e00328da5 --- /dev/null +++ b/.tmp-check-windows/debug/.fingerprint/thiserror-bdad7868d0257c89/invoked.timestamp @@ -0,0 +1 @@ +This file has an mtime of when this was started. \ No newline at end of file diff --git a/.tmp-check-windows/debug/.fingerprint/time-core-bf187c8f94feacd5/dep-lib-time_core b/.tmp-check-windows/debug/.fingerprint/time-core-bf187c8f94feacd5/dep-lib-time_core new file mode 100644 index 000000000..ec3cb8bfd Binary files /dev/null and b/.tmp-check-windows/debug/.fingerprint/time-core-bf187c8f94feacd5/dep-lib-time_core differ diff --git a/.tmp-check-windows/debug/.fingerprint/time-core-bf187c8f94feacd5/invoked.timestamp b/.tmp-check-windows/debug/.fingerprint/time-core-bf187c8f94feacd5/invoked.timestamp new file mode 100644 index 000000000..e00328da5 --- /dev/null +++ b/.tmp-check-windows/debug/.fingerprint/time-core-bf187c8f94feacd5/invoked.timestamp @@ -0,0 +1 @@ +This file has an mtime of when this was started. \ No newline at end of file diff --git a/.tmp-check-windows/debug/.fingerprint/time-core-bf187c8f94feacd5/lib-time_core b/.tmp-check-windows/debug/.fingerprint/time-core-bf187c8f94feacd5/lib-time_core new file mode 100644 index 000000000..ee04f32ea --- /dev/null +++ b/.tmp-check-windows/debug/.fingerprint/time-core-bf187c8f94feacd5/lib-time_core @@ -0,0 +1 @@ +582573da8ccbb009 \ No newline at end of file diff --git a/.tmp-check-windows/debug/.fingerprint/time-core-bf187c8f94feacd5/lib-time_core.json b/.tmp-check-windows/debug/.fingerprint/time-core-bf187c8f94feacd5/lib-time_core.json new file mode 100644 index 000000000..da1040e74 --- /dev/null +++ b/.tmp-check-windows/debug/.fingerprint/time-core-bf187c8f94feacd5/lib-time_core.json @@ -0,0 +1 @@ +{"rustc":13850170861107434965,"features":"[]","declared_features":"[\"large-dates\"]","target":10582047573009931897,"profile":5358198432022349590,"path":11150084072982371776,"deps":[],"local":[{"CheckDepInfo":{"dep_info":"debug/.fingerprint/time-core-bf187c8f94feacd5/dep-lib-time_core","checksum":false}}],"rustflags":[],"config":2069994364910194474,"compile_kind":0} \ No newline at end of file diff --git a/.tmp-check-windows/debug/.fingerprint/time-macros-c4406bda9a40cce8/dep-lib-time_macros b/.tmp-check-windows/debug/.fingerprint/time-macros-c4406bda9a40cce8/dep-lib-time_macros new file mode 100644 index 000000000..ec3cb8bfd Binary files /dev/null and b/.tmp-check-windows/debug/.fingerprint/time-macros-c4406bda9a40cce8/dep-lib-time_macros differ diff --git a/.tmp-check-windows/debug/.fingerprint/time-macros-c4406bda9a40cce8/invoked.timestamp b/.tmp-check-windows/debug/.fingerprint/time-macros-c4406bda9a40cce8/invoked.timestamp new file mode 100644 index 000000000..e00328da5 --- /dev/null +++ b/.tmp-check-windows/debug/.fingerprint/time-macros-c4406bda9a40cce8/invoked.timestamp @@ -0,0 +1 @@ +This file has an mtime of when this was started. \ No newline at end of file diff --git a/.tmp-check-windows/debug/.fingerprint/time-macros-c4406bda9a40cce8/lib-time_macros b/.tmp-check-windows/debug/.fingerprint/time-macros-c4406bda9a40cce8/lib-time_macros new file mode 100644 index 000000000..fee434adc --- /dev/null +++ b/.tmp-check-windows/debug/.fingerprint/time-macros-c4406bda9a40cce8/lib-time_macros @@ -0,0 +1 @@ +27c7a335e4f76e88 \ No newline at end of file diff --git a/.tmp-check-windows/debug/.fingerprint/time-macros-c4406bda9a40cce8/lib-time_macros.json b/.tmp-check-windows/debug/.fingerprint/time-macros-c4406bda9a40cce8/lib-time_macros.json new file mode 100644 index 000000000..c3042edee --- /dev/null +++ b/.tmp-check-windows/debug/.fingerprint/time-macros-c4406bda9a40cce8/lib-time_macros.json @@ -0,0 +1 @@ +{"rustc":13850170861107434965,"features":"[\"formatting\", \"large-dates\", \"parsing\"]","declared_features":"[\"formatting\", \"large-dates\", \"parsing\", \"serde\"]","target":6150452040990090255,"profile":5358198432022349590,"path":11282851452914863024,"deps":[[15572560757901793625,"time_core",false,698281748063266136],[15673264339717225619,"num_conv",false,12417730705263106063]],"local":[{"CheckDepInfo":{"dep_info":"debug/.fingerprint/time-macros-c4406bda9a40cce8/dep-lib-time_macros","checksum":false}}],"rustflags":[],"config":2069994364910194474,"compile_kind":0} \ No newline at end of file diff --git a/.tmp-check-windows/debug/.fingerprint/typenum-8b92c0cdb47cfa5e/build-script-build-script-build b/.tmp-check-windows/debug/.fingerprint/typenum-8b92c0cdb47cfa5e/build-script-build-script-build new file mode 100644 index 000000000..021e609de --- /dev/null +++ b/.tmp-check-windows/debug/.fingerprint/typenum-8b92c0cdb47cfa5e/build-script-build-script-build @@ -0,0 +1 @@ +93fa4435216a06ae \ No newline at end of file diff --git a/.tmp-check-windows/debug/.fingerprint/typenum-8b92c0cdb47cfa5e/build-script-build-script-build.json b/.tmp-check-windows/debug/.fingerprint/typenum-8b92c0cdb47cfa5e/build-script-build-script-build.json new file mode 100644 index 000000000..f4854c3a9 --- /dev/null +++ b/.tmp-check-windows/debug/.fingerprint/typenum-8b92c0cdb47cfa5e/build-script-build-script-build.json @@ -0,0 +1 @@ +{"rustc":13850170861107434965,"features":"[]","declared_features":"[\"const-generics\", \"force_unix_path_separator\", \"i128\", \"no_std\", \"scale-info\", \"scale_info\", \"strict\"]","target":17883862002600103897,"profile":5347358027863023418,"path":15313930121319331472,"deps":[],"local":[{"CheckDepInfo":{"dep_info":"debug/.fingerprint/typenum-8b92c0cdb47cfa5e/dep-build-script-build-script-build","checksum":false}}],"rustflags":[],"config":2069994364910194474,"compile_kind":0} \ No newline at end of file diff --git a/.tmp-check-windows/debug/.fingerprint/typenum-8b92c0cdb47cfa5e/dep-build-script-build-script-build b/.tmp-check-windows/debug/.fingerprint/typenum-8b92c0cdb47cfa5e/dep-build-script-build-script-build new file mode 100644 index 000000000..ec3cb8bfd Binary files /dev/null and b/.tmp-check-windows/debug/.fingerprint/typenum-8b92c0cdb47cfa5e/dep-build-script-build-script-build differ diff --git a/.tmp-check-windows/debug/.fingerprint/typenum-8b92c0cdb47cfa5e/invoked.timestamp b/.tmp-check-windows/debug/.fingerprint/typenum-8b92c0cdb47cfa5e/invoked.timestamp new file mode 100644 index 000000000..e00328da5 --- /dev/null +++ b/.tmp-check-windows/debug/.fingerprint/typenum-8b92c0cdb47cfa5e/invoked.timestamp @@ -0,0 +1 @@ +This file has an mtime of when this was started. \ No newline at end of file diff --git a/.tmp-check-windows/debug/.fingerprint/unicode-ident-be69b2baaa981aa6/dep-lib-unicode_ident b/.tmp-check-windows/debug/.fingerprint/unicode-ident-be69b2baaa981aa6/dep-lib-unicode_ident new file mode 100644 index 000000000..ec3cb8bfd Binary files /dev/null and b/.tmp-check-windows/debug/.fingerprint/unicode-ident-be69b2baaa981aa6/dep-lib-unicode_ident differ diff --git a/.tmp-check-windows/debug/.fingerprint/unicode-ident-be69b2baaa981aa6/invoked.timestamp b/.tmp-check-windows/debug/.fingerprint/unicode-ident-be69b2baaa981aa6/invoked.timestamp new file mode 100644 index 000000000..e00328da5 --- /dev/null +++ b/.tmp-check-windows/debug/.fingerprint/unicode-ident-be69b2baaa981aa6/invoked.timestamp @@ -0,0 +1 @@ +This file has an mtime of when this was started. \ No newline at end of file diff --git a/.tmp-check-windows/debug/.fingerprint/unicode-ident-be69b2baaa981aa6/lib-unicode_ident b/.tmp-check-windows/debug/.fingerprint/unicode-ident-be69b2baaa981aa6/lib-unicode_ident new file mode 100644 index 000000000..b6bf185eb --- /dev/null +++ b/.tmp-check-windows/debug/.fingerprint/unicode-ident-be69b2baaa981aa6/lib-unicode_ident @@ -0,0 +1 @@ +40eb2d55b0e561be \ No newline at end of file diff --git a/.tmp-check-windows/debug/.fingerprint/unicode-ident-be69b2baaa981aa6/lib-unicode_ident.json b/.tmp-check-windows/debug/.fingerprint/unicode-ident-be69b2baaa981aa6/lib-unicode_ident.json new file mode 100644 index 000000000..e63e32eba --- /dev/null +++ b/.tmp-check-windows/debug/.fingerprint/unicode-ident-be69b2baaa981aa6/lib-unicode_ident.json @@ -0,0 +1 @@ +{"rustc":13850170861107434965,"features":"[]","declared_features":"[]","target":14045917370260632744,"profile":5347358027863023418,"path":11442511420527637851,"deps":[],"local":[{"CheckDepInfo":{"dep_info":"debug/.fingerprint/unicode-ident-be69b2baaa981aa6/dep-lib-unicode_ident","checksum":false}}],"rustflags":[],"config":2069994364910194474,"compile_kind":0} \ No newline at end of file diff --git a/.tmp-check-windows/debug/.fingerprint/version_check-424b161a97c75473/dep-lib-version_check b/.tmp-check-windows/debug/.fingerprint/version_check-424b161a97c75473/dep-lib-version_check new file mode 100644 index 000000000..ec3cb8bfd Binary files /dev/null and b/.tmp-check-windows/debug/.fingerprint/version_check-424b161a97c75473/dep-lib-version_check differ diff --git a/.tmp-check-windows/debug/.fingerprint/version_check-424b161a97c75473/invoked.timestamp b/.tmp-check-windows/debug/.fingerprint/version_check-424b161a97c75473/invoked.timestamp new file mode 100644 index 000000000..e00328da5 --- /dev/null +++ b/.tmp-check-windows/debug/.fingerprint/version_check-424b161a97c75473/invoked.timestamp @@ -0,0 +1 @@ +This file has an mtime of when this was started. \ No newline at end of file diff --git a/.tmp-check-windows/debug/.fingerprint/version_check-424b161a97c75473/lib-version_check b/.tmp-check-windows/debug/.fingerprint/version_check-424b161a97c75473/lib-version_check new file mode 100644 index 000000000..c4b042dc6 --- /dev/null +++ b/.tmp-check-windows/debug/.fingerprint/version_check-424b161a97c75473/lib-version_check @@ -0,0 +1 @@ +8de473faf6fcae8d \ No newline at end of file diff --git a/.tmp-check-windows/debug/.fingerprint/version_check-424b161a97c75473/lib-version_check.json b/.tmp-check-windows/debug/.fingerprint/version_check-424b161a97c75473/lib-version_check.json new file mode 100644 index 000000000..b7b8365c5 --- /dev/null +++ b/.tmp-check-windows/debug/.fingerprint/version_check-424b161a97c75473/lib-version_check.json @@ -0,0 +1 @@ +{"rustc":13850170861107434965,"features":"[]","declared_features":"[]","target":18099224280402537651,"profile":5347358027863023418,"path":10705613035554852245,"deps":[],"local":[{"CheckDepInfo":{"dep_info":"debug/.fingerprint/version_check-424b161a97c75473/dep-lib-version_check","checksum":false}}],"rustflags":[],"config":2069994364910194474,"compile_kind":0} \ No newline at end of file diff --git a/.tmp-check-windows/debug/.fingerprint/windows_x86_64_msvc-353dc2fffa32fcef/build-script-build-script-build b/.tmp-check-windows/debug/.fingerprint/windows_x86_64_msvc-353dc2fffa32fcef/build-script-build-script-build new file mode 100644 index 000000000..5df17a614 --- /dev/null +++ b/.tmp-check-windows/debug/.fingerprint/windows_x86_64_msvc-353dc2fffa32fcef/build-script-build-script-build @@ -0,0 +1 @@ +26e30b492de1ed15 \ No newline at end of file diff --git a/.tmp-check-windows/debug/.fingerprint/windows_x86_64_msvc-353dc2fffa32fcef/build-script-build-script-build.json b/.tmp-check-windows/debug/.fingerprint/windows_x86_64_msvc-353dc2fffa32fcef/build-script-build-script-build.json new file mode 100644 index 000000000..3bd4a13db --- /dev/null +++ b/.tmp-check-windows/debug/.fingerprint/windows_x86_64_msvc-353dc2fffa32fcef/build-script-build-script-build.json @@ -0,0 +1 @@ +{"rustc":13850170861107434965,"features":"[]","declared_features":"[]","target":5408242616063297496,"profile":7236838590663936263,"path":6300009665761306081,"deps":[],"local":[{"CheckDepInfo":{"dep_info":"debug/.fingerprint/windows_x86_64_msvc-353dc2fffa32fcef/dep-build-script-build-script-build","checksum":false}}],"rustflags":[],"config":2069994364910194474,"compile_kind":0} \ No newline at end of file diff --git a/.tmp-check-windows/debug/.fingerprint/windows_x86_64_msvc-353dc2fffa32fcef/dep-build-script-build-script-build b/.tmp-check-windows/debug/.fingerprint/windows_x86_64_msvc-353dc2fffa32fcef/dep-build-script-build-script-build new file mode 100644 index 000000000..ec3cb8bfd Binary files /dev/null and b/.tmp-check-windows/debug/.fingerprint/windows_x86_64_msvc-353dc2fffa32fcef/dep-build-script-build-script-build differ diff --git a/.tmp-check-windows/debug/.fingerprint/windows_x86_64_msvc-353dc2fffa32fcef/invoked.timestamp b/.tmp-check-windows/debug/.fingerprint/windows_x86_64_msvc-353dc2fffa32fcef/invoked.timestamp new file mode 100644 index 000000000..e00328da5 --- /dev/null +++ b/.tmp-check-windows/debug/.fingerprint/windows_x86_64_msvc-353dc2fffa32fcef/invoked.timestamp @@ -0,0 +1 @@ +This file has an mtime of when this was started. \ No newline at end of file diff --git a/.tmp-check-windows/debug/.fingerprint/windows_x86_64_msvc-46a1922927989180/build-script-build-script-build b/.tmp-check-windows/debug/.fingerprint/windows_x86_64_msvc-46a1922927989180/build-script-build-script-build new file mode 100644 index 000000000..7328bf6d2 --- /dev/null +++ b/.tmp-check-windows/debug/.fingerprint/windows_x86_64_msvc-46a1922927989180/build-script-build-script-build @@ -0,0 +1 @@ +ad2834372842fe84 \ No newline at end of file diff --git a/.tmp-check-windows/debug/.fingerprint/windows_x86_64_msvc-46a1922927989180/build-script-build-script-build.json b/.tmp-check-windows/debug/.fingerprint/windows_x86_64_msvc-46a1922927989180/build-script-build-script-build.json new file mode 100644 index 000000000..c908cc832 --- /dev/null +++ b/.tmp-check-windows/debug/.fingerprint/windows_x86_64_msvc-46a1922927989180/build-script-build-script-build.json @@ -0,0 +1 @@ +{"rustc":13850170861107434965,"features":"[]","declared_features":"[]","target":5408242616063297496,"profile":5347358027863023418,"path":3238682055609140480,"deps":[],"local":[{"CheckDepInfo":{"dep_info":"debug/.fingerprint/windows_x86_64_msvc-46a1922927989180/dep-build-script-build-script-build","checksum":false}}],"rustflags":[],"config":2069994364910194474,"compile_kind":0} \ No newline at end of file diff --git a/.tmp-check-windows/debug/.fingerprint/windows_x86_64_msvc-46a1922927989180/dep-build-script-build-script-build b/.tmp-check-windows/debug/.fingerprint/windows_x86_64_msvc-46a1922927989180/dep-build-script-build-script-build new file mode 100644 index 000000000..ec3cb8bfd Binary files /dev/null and b/.tmp-check-windows/debug/.fingerprint/windows_x86_64_msvc-46a1922927989180/dep-build-script-build-script-build differ diff --git a/.tmp-check-windows/debug/.fingerprint/windows_x86_64_msvc-46a1922927989180/invoked.timestamp b/.tmp-check-windows/debug/.fingerprint/windows_x86_64_msvc-46a1922927989180/invoked.timestamp new file mode 100644 index 000000000..e00328da5 --- /dev/null +++ b/.tmp-check-windows/debug/.fingerprint/windows_x86_64_msvc-46a1922927989180/invoked.timestamp @@ -0,0 +1 @@ +This file has an mtime of when this was started. \ No newline at end of file diff --git a/.tmp-check-windows/debug/.fingerprint/writeable-7e7c486cd9376f84/dep-lib-writeable b/.tmp-check-windows/debug/.fingerprint/writeable-7e7c486cd9376f84/dep-lib-writeable new file mode 100644 index 000000000..ec3cb8bfd Binary files /dev/null and b/.tmp-check-windows/debug/.fingerprint/writeable-7e7c486cd9376f84/dep-lib-writeable differ diff --git a/.tmp-check-windows/debug/.fingerprint/writeable-7e7c486cd9376f84/invoked.timestamp b/.tmp-check-windows/debug/.fingerprint/writeable-7e7c486cd9376f84/invoked.timestamp new file mode 100644 index 000000000..e00328da5 --- /dev/null +++ b/.tmp-check-windows/debug/.fingerprint/writeable-7e7c486cd9376f84/invoked.timestamp @@ -0,0 +1 @@ +This file has an mtime of when this was started. \ No newline at end of file diff --git a/.tmp-check-windows/debug/.fingerprint/writeable-7e7c486cd9376f84/lib-writeable b/.tmp-check-windows/debug/.fingerprint/writeable-7e7c486cd9376f84/lib-writeable new file mode 100644 index 000000000..3f7ba7844 --- /dev/null +++ b/.tmp-check-windows/debug/.fingerprint/writeable-7e7c486cd9376f84/lib-writeable @@ -0,0 +1 @@ +385eee93e49c1d15 \ No newline at end of file diff --git a/.tmp-check-windows/debug/.fingerprint/writeable-7e7c486cd9376f84/lib-writeable.json b/.tmp-check-windows/debug/.fingerprint/writeable-7e7c486cd9376f84/lib-writeable.json new file mode 100644 index 000000000..22750b0d0 --- /dev/null +++ b/.tmp-check-windows/debug/.fingerprint/writeable-7e7c486cd9376f84/lib-writeable.json @@ -0,0 +1 @@ +{"rustc":13850170861107434965,"features":"[\"alloc\"]","declared_features":"[\"alloc\", \"default\", \"either\"]","target":6209224040855486982,"profile":5347358027863023418,"path":8085662737133398328,"deps":[],"local":[{"CheckDepInfo":{"dep_info":"debug/.fingerprint/writeable-7e7c486cd9376f84/dep-lib-writeable","checksum":false}}],"rustflags":[],"config":2069994364910194474,"compile_kind":0} \ No newline at end of file diff --git a/.tmp-check-windows/debug/.fingerprint/yoke-derive-1f91f6751dc2866d/dep-lib-yoke_derive b/.tmp-check-windows/debug/.fingerprint/yoke-derive-1f91f6751dc2866d/dep-lib-yoke_derive new file mode 100644 index 000000000..ec3cb8bfd Binary files /dev/null and b/.tmp-check-windows/debug/.fingerprint/yoke-derive-1f91f6751dc2866d/dep-lib-yoke_derive differ diff --git a/.tmp-check-windows/debug/.fingerprint/yoke-derive-1f91f6751dc2866d/invoked.timestamp b/.tmp-check-windows/debug/.fingerprint/yoke-derive-1f91f6751dc2866d/invoked.timestamp new file mode 100644 index 000000000..e00328da5 --- /dev/null +++ b/.tmp-check-windows/debug/.fingerprint/yoke-derive-1f91f6751dc2866d/invoked.timestamp @@ -0,0 +1 @@ +This file has an mtime of when this was started. \ No newline at end of file diff --git a/.tmp-check-windows/debug/.fingerprint/yoke-derive-1f91f6751dc2866d/lib-yoke_derive b/.tmp-check-windows/debug/.fingerprint/yoke-derive-1f91f6751dc2866d/lib-yoke_derive new file mode 100644 index 000000000..30600dadd --- /dev/null +++ b/.tmp-check-windows/debug/.fingerprint/yoke-derive-1f91f6751dc2866d/lib-yoke_derive @@ -0,0 +1 @@ +abe65a537819bdec \ No newline at end of file diff --git a/.tmp-check-windows/debug/.fingerprint/yoke-derive-1f91f6751dc2866d/lib-yoke_derive.json b/.tmp-check-windows/debug/.fingerprint/yoke-derive-1f91f6751dc2866d/lib-yoke_derive.json new file mode 100644 index 000000000..1d44a2ea6 --- /dev/null +++ b/.tmp-check-windows/debug/.fingerprint/yoke-derive-1f91f6751dc2866d/lib-yoke_derive.json @@ -0,0 +1 @@ +{"rustc":13850170861107434965,"features":"[]","declared_features":"[]","target":1654536213780382264,"profile":5347358027863023418,"path":15884459676294444515,"deps":[[4289358735036141001,"proc_macro2",false,10271149786456430492],[4621990586401870511,"synstructure",false,2925502842942988181],[6100504282945712449,"quote",false,16637874519223053531],[10420560437213941093,"syn",false,1100609084922959835]],"local":[{"CheckDepInfo":{"dep_info":"debug/.fingerprint/yoke-derive-1f91f6751dc2866d/dep-lib-yoke_derive","checksum":false}}],"rustflags":[],"config":2069994364910194474,"compile_kind":0} \ No newline at end of file diff --git a/.tmp-check-windows/debug/.fingerprint/zerocopy-69a6142213611a6b/run-build-script-build-script-build b/.tmp-check-windows/debug/.fingerprint/zerocopy-69a6142213611a6b/run-build-script-build-script-build new file mode 100644 index 000000000..5ef476f99 --- /dev/null +++ b/.tmp-check-windows/debug/.fingerprint/zerocopy-69a6142213611a6b/run-build-script-build-script-build @@ -0,0 +1 @@ +22e8825813f056c7 \ No newline at end of file diff --git a/.tmp-check-windows/debug/.fingerprint/zerocopy-69a6142213611a6b/run-build-script-build-script-build.json b/.tmp-check-windows/debug/.fingerprint/zerocopy-69a6142213611a6b/run-build-script-build-script-build.json new file mode 100644 index 000000000..466d3dcc1 --- /dev/null +++ b/.tmp-check-windows/debug/.fingerprint/zerocopy-69a6142213611a6b/run-build-script-build-script-build.json @@ -0,0 +1 @@ +{"rustc":13850170861107434965,"features":"","declared_features":"","target":0,"profile":0,"path":0,"deps":[[4878717189156408352,"build_script_build",false,12609339611077374058]],"local":[{"RerunIfChanged":{"output":"debug/build/zerocopy-69a6142213611a6b/output","paths":["build.rs","Cargo.toml"]}}],"rustflags":[],"config":0,"compile_kind":0} \ No newline at end of file diff --git a/.tmp-check-windows/debug/.fingerprint/zerocopy-a2b022916120892e/dep-lib-zerocopy b/.tmp-check-windows/debug/.fingerprint/zerocopy-a2b022916120892e/dep-lib-zerocopy new file mode 100644 index 000000000..ec3cb8bfd Binary files /dev/null and b/.tmp-check-windows/debug/.fingerprint/zerocopy-a2b022916120892e/dep-lib-zerocopy differ diff --git a/.tmp-check-windows/debug/.fingerprint/zerocopy-a2b022916120892e/invoked.timestamp b/.tmp-check-windows/debug/.fingerprint/zerocopy-a2b022916120892e/invoked.timestamp new file mode 100644 index 000000000..e00328da5 --- /dev/null +++ b/.tmp-check-windows/debug/.fingerprint/zerocopy-a2b022916120892e/invoked.timestamp @@ -0,0 +1 @@ +This file has an mtime of when this was started. \ No newline at end of file diff --git a/.tmp-check-windows/debug/.fingerprint/zerocopy-a2b022916120892e/lib-zerocopy b/.tmp-check-windows/debug/.fingerprint/zerocopy-a2b022916120892e/lib-zerocopy new file mode 100644 index 000000000..a5cb5d387 --- /dev/null +++ b/.tmp-check-windows/debug/.fingerprint/zerocopy-a2b022916120892e/lib-zerocopy @@ -0,0 +1 @@ +c8ea2cb7dba77dde \ No newline at end of file diff --git a/.tmp-check-windows/debug/.fingerprint/zerocopy-a2b022916120892e/lib-zerocopy.json b/.tmp-check-windows/debug/.fingerprint/zerocopy-a2b022916120892e/lib-zerocopy.json new file mode 100644 index 000000000..9feb9b2f9 --- /dev/null +++ b/.tmp-check-windows/debug/.fingerprint/zerocopy-a2b022916120892e/lib-zerocopy.json @@ -0,0 +1 @@ +{"rustc":13850170861107434965,"features":"[\"simd\"]","declared_features":"[\"__internal_use_only_features_that_work_on_stable\", \"alloc\", \"derive\", \"float-nightly\", \"simd\", \"simd-nightly\", \"std\", \"zerocopy-derive\"]","target":3084901215544504908,"profile":5347358027863023418,"path":16575134283669177744,"deps":[[4878717189156408352,"build_script_build",false,14363932027424794658]],"local":[{"CheckDepInfo":{"dep_info":"debug/.fingerprint/zerocopy-a2b022916120892e/dep-lib-zerocopy","checksum":false}}],"rustflags":[],"config":2069994364910194474,"compile_kind":0} \ No newline at end of file diff --git a/.tmp-check-windows/debug/.fingerprint/zerocopy-b7b1bfb8cf3ce966/build-script-build-script-build b/.tmp-check-windows/debug/.fingerprint/zerocopy-b7b1bfb8cf3ce966/build-script-build-script-build new file mode 100644 index 000000000..ddbe2d83e --- /dev/null +++ b/.tmp-check-windows/debug/.fingerprint/zerocopy-b7b1bfb8cf3ce966/build-script-build-script-build @@ -0,0 +1 @@ +6a7087b2915ffdae \ No newline at end of file diff --git a/.tmp-check-windows/debug/.fingerprint/zerocopy-b7b1bfb8cf3ce966/build-script-build-script-build.json b/.tmp-check-windows/debug/.fingerprint/zerocopy-b7b1bfb8cf3ce966/build-script-build-script-build.json new file mode 100644 index 000000000..da23456b3 --- /dev/null +++ b/.tmp-check-windows/debug/.fingerprint/zerocopy-b7b1bfb8cf3ce966/build-script-build-script-build.json @@ -0,0 +1 @@ +{"rustc":13850170861107434965,"features":"[\"simd\"]","declared_features":"[\"__internal_use_only_features_that_work_on_stable\", \"alloc\", \"derive\", \"float-nightly\", \"simd\", \"simd-nightly\", \"std\", \"zerocopy-derive\"]","target":5408242616063297496,"profile":5347358027863023418,"path":2668237360459780296,"deps":[],"local":[{"CheckDepInfo":{"dep_info":"debug/.fingerprint/zerocopy-b7b1bfb8cf3ce966/dep-build-script-build-script-build","checksum":false}}],"rustflags":[],"config":2069994364910194474,"compile_kind":0} \ No newline at end of file diff --git a/.tmp-check-windows/debug/.fingerprint/zerocopy-b7b1bfb8cf3ce966/dep-build-script-build-script-build b/.tmp-check-windows/debug/.fingerprint/zerocopy-b7b1bfb8cf3ce966/dep-build-script-build-script-build new file mode 100644 index 000000000..ec3cb8bfd Binary files /dev/null and b/.tmp-check-windows/debug/.fingerprint/zerocopy-b7b1bfb8cf3ce966/dep-build-script-build-script-build differ diff --git a/.tmp-check-windows/debug/.fingerprint/zerocopy-b7b1bfb8cf3ce966/invoked.timestamp b/.tmp-check-windows/debug/.fingerprint/zerocopy-b7b1bfb8cf3ce966/invoked.timestamp new file mode 100644 index 000000000..e00328da5 --- /dev/null +++ b/.tmp-check-windows/debug/.fingerprint/zerocopy-b7b1bfb8cf3ce966/invoked.timestamp @@ -0,0 +1 @@ +This file has an mtime of when this was started. \ No newline at end of file diff --git a/.tmp-check-windows/debug/.fingerprint/zerofrom-derive-cc5732938083fb5d/dep-lib-zerofrom_derive b/.tmp-check-windows/debug/.fingerprint/zerofrom-derive-cc5732938083fb5d/dep-lib-zerofrom_derive new file mode 100644 index 000000000..ec3cb8bfd Binary files /dev/null and b/.tmp-check-windows/debug/.fingerprint/zerofrom-derive-cc5732938083fb5d/dep-lib-zerofrom_derive differ diff --git a/.tmp-check-windows/debug/.fingerprint/zerofrom-derive-cc5732938083fb5d/invoked.timestamp b/.tmp-check-windows/debug/.fingerprint/zerofrom-derive-cc5732938083fb5d/invoked.timestamp new file mode 100644 index 000000000..e00328da5 --- /dev/null +++ b/.tmp-check-windows/debug/.fingerprint/zerofrom-derive-cc5732938083fb5d/invoked.timestamp @@ -0,0 +1 @@ +This file has an mtime of when this was started. \ No newline at end of file diff --git a/.tmp-check-windows/debug/.fingerprint/zerofrom-derive-cc5732938083fb5d/lib-zerofrom_derive b/.tmp-check-windows/debug/.fingerprint/zerofrom-derive-cc5732938083fb5d/lib-zerofrom_derive new file mode 100644 index 000000000..9248fcad8 --- /dev/null +++ b/.tmp-check-windows/debug/.fingerprint/zerofrom-derive-cc5732938083fb5d/lib-zerofrom_derive @@ -0,0 +1 @@ +2224c1766b9dd8f8 \ No newline at end of file diff --git a/.tmp-check-windows/debug/.fingerprint/zerofrom-derive-cc5732938083fb5d/lib-zerofrom_derive.json b/.tmp-check-windows/debug/.fingerprint/zerofrom-derive-cc5732938083fb5d/lib-zerofrom_derive.json new file mode 100644 index 000000000..b63a4d08c --- /dev/null +++ b/.tmp-check-windows/debug/.fingerprint/zerofrom-derive-cc5732938083fb5d/lib-zerofrom_derive.json @@ -0,0 +1 @@ +{"rustc":13850170861107434965,"features":"[]","declared_features":"[]","target":1753304412232254384,"profile":5347358027863023418,"path":16815174005089305912,"deps":[[4289358735036141001,"proc_macro2",false,10271149786456430492],[4621990586401870511,"synstructure",false,2925502842942988181],[6100504282945712449,"quote",false,16637874519223053531],[10420560437213941093,"syn",false,1100609084922959835]],"local":[{"CheckDepInfo":{"dep_info":"debug/.fingerprint/zerofrom-derive-cc5732938083fb5d/dep-lib-zerofrom_derive","checksum":false}}],"rustflags":[],"config":2069994364910194474,"compile_kind":0} \ No newline at end of file diff --git a/.tmp-check-windows/debug/.fingerprint/zerovec-derive-102b2341acf1be88/dep-lib-zerovec_derive b/.tmp-check-windows/debug/.fingerprint/zerovec-derive-102b2341acf1be88/dep-lib-zerovec_derive new file mode 100644 index 000000000..ec3cb8bfd Binary files /dev/null and b/.tmp-check-windows/debug/.fingerprint/zerovec-derive-102b2341acf1be88/dep-lib-zerovec_derive differ diff --git a/.tmp-check-windows/debug/.fingerprint/zerovec-derive-102b2341acf1be88/invoked.timestamp b/.tmp-check-windows/debug/.fingerprint/zerovec-derive-102b2341acf1be88/invoked.timestamp new file mode 100644 index 000000000..e00328da5 --- /dev/null +++ b/.tmp-check-windows/debug/.fingerprint/zerovec-derive-102b2341acf1be88/invoked.timestamp @@ -0,0 +1 @@ +This file has an mtime of when this was started. \ No newline at end of file diff --git a/.tmp-check-windows/debug/.fingerprint/zerovec-derive-102b2341acf1be88/lib-zerovec_derive b/.tmp-check-windows/debug/.fingerprint/zerovec-derive-102b2341acf1be88/lib-zerovec_derive new file mode 100644 index 000000000..1d7fbe9b5 --- /dev/null +++ b/.tmp-check-windows/debug/.fingerprint/zerovec-derive-102b2341acf1be88/lib-zerovec_derive @@ -0,0 +1 @@ +1d64eb0cc1e01034 \ No newline at end of file diff --git a/.tmp-check-windows/debug/.fingerprint/zerovec-derive-102b2341acf1be88/lib-zerovec_derive.json b/.tmp-check-windows/debug/.fingerprint/zerovec-derive-102b2341acf1be88/lib-zerovec_derive.json new file mode 100644 index 000000000..548025a6b --- /dev/null +++ b/.tmp-check-windows/debug/.fingerprint/zerovec-derive-102b2341acf1be88/lib-zerovec_derive.json @@ -0,0 +1 @@ +{"rustc":13850170861107434965,"features":"[]","declared_features":"[]","target":14030368369369144574,"profile":5347358027863023418,"path":5102416131449904847,"deps":[[4289358735036141001,"proc_macro2",false,10271149786456430492],[6100504282945712449,"quote",false,16637874519223053531],[10420560437213941093,"syn",false,1100609084922959835]],"local":[{"CheckDepInfo":{"dep_info":"debug/.fingerprint/zerovec-derive-102b2341acf1be88/dep-lib-zerovec_derive","checksum":false}}],"rustflags":[],"config":2069994364910194474,"compile_kind":0} \ No newline at end of file diff --git a/.tmp-check-windows/debug/.fingerprint/zmij-786d644418f5a0ff/run-build-script-build-script-build b/.tmp-check-windows/debug/.fingerprint/zmij-786d644418f5a0ff/run-build-script-build-script-build new file mode 100644 index 000000000..81e3d27c4 --- /dev/null +++ b/.tmp-check-windows/debug/.fingerprint/zmij-786d644418f5a0ff/run-build-script-build-script-build @@ -0,0 +1 @@ +687501dd299ce809 \ No newline at end of file diff --git a/.tmp-check-windows/debug/.fingerprint/zmij-786d644418f5a0ff/run-build-script-build-script-build.json b/.tmp-check-windows/debug/.fingerprint/zmij-786d644418f5a0ff/run-build-script-build-script-build.json new file mode 100644 index 000000000..958f1b406 --- /dev/null +++ b/.tmp-check-windows/debug/.fingerprint/zmij-786d644418f5a0ff/run-build-script-build-script-build.json @@ -0,0 +1 @@ +{"rustc":13850170861107434965,"features":"","declared_features":"","target":0,"profile":0,"path":0,"deps":[[12347024475581975995,"build_script_build",false,11261839570347122083]],"local":[{"RerunIfChanged":{"output":"debug/build/zmij-786d644418f5a0ff/output","paths":["build.rs"]}}],"rustflags":[],"config":0,"compile_kind":0} \ No newline at end of file diff --git a/.tmp-check-windows/debug/.fingerprint/zmij-a49de641c03deb03/build-script-build-script-build b/.tmp-check-windows/debug/.fingerprint/zmij-a49de641c03deb03/build-script-build-script-build new file mode 100644 index 000000000..b16669dd4 --- /dev/null +++ b/.tmp-check-windows/debug/.fingerprint/zmij-a49de641c03deb03/build-script-build-script-build @@ -0,0 +1 @@ +a35dfae36b174a9c \ No newline at end of file diff --git a/.tmp-check-windows/debug/.fingerprint/zmij-a49de641c03deb03/build-script-build-script-build.json b/.tmp-check-windows/debug/.fingerprint/zmij-a49de641c03deb03/build-script-build-script-build.json new file mode 100644 index 000000000..62ad02fee --- /dev/null +++ b/.tmp-check-windows/debug/.fingerprint/zmij-a49de641c03deb03/build-script-build-script-build.json @@ -0,0 +1 @@ +{"rustc":13850170861107434965,"features":"[]","declared_features":"[\"no-panic\"]","target":5408242616063297496,"profile":5347358027863023418,"path":11193188533201905398,"deps":[],"local":[{"CheckDepInfo":{"dep_info":"debug/.fingerprint/zmij-a49de641c03deb03/dep-build-script-build-script-build","checksum":false}}],"rustflags":[],"config":2069994364910194474,"compile_kind":0} \ No newline at end of file diff --git a/.tmp-check-windows/debug/.fingerprint/zmij-a49de641c03deb03/dep-build-script-build-script-build b/.tmp-check-windows/debug/.fingerprint/zmij-a49de641c03deb03/dep-build-script-build-script-build new file mode 100644 index 000000000..ec3cb8bfd Binary files /dev/null and b/.tmp-check-windows/debug/.fingerprint/zmij-a49de641c03deb03/dep-build-script-build-script-build differ diff --git a/.tmp-check-windows/debug/.fingerprint/zmij-a49de641c03deb03/invoked.timestamp b/.tmp-check-windows/debug/.fingerprint/zmij-a49de641c03deb03/invoked.timestamp new file mode 100644 index 000000000..e00328da5 --- /dev/null +++ b/.tmp-check-windows/debug/.fingerprint/zmij-a49de641c03deb03/invoked.timestamp @@ -0,0 +1 @@ +This file has an mtime of when this was started. \ No newline at end of file diff --git a/.tmp-check-windows/debug/.fingerprint/zmij-dcc967559ac11d96/dep-lib-zmij b/.tmp-check-windows/debug/.fingerprint/zmij-dcc967559ac11d96/dep-lib-zmij new file mode 100644 index 000000000..ec3cb8bfd Binary files /dev/null and b/.tmp-check-windows/debug/.fingerprint/zmij-dcc967559ac11d96/dep-lib-zmij differ diff --git a/.tmp-check-windows/debug/.fingerprint/zmij-dcc967559ac11d96/invoked.timestamp b/.tmp-check-windows/debug/.fingerprint/zmij-dcc967559ac11d96/invoked.timestamp new file mode 100644 index 000000000..e00328da5 --- /dev/null +++ b/.tmp-check-windows/debug/.fingerprint/zmij-dcc967559ac11d96/invoked.timestamp @@ -0,0 +1 @@ +This file has an mtime of when this was started. \ No newline at end of file diff --git a/.tmp-check-windows/debug/.fingerprint/zmij-dcc967559ac11d96/lib-zmij b/.tmp-check-windows/debug/.fingerprint/zmij-dcc967559ac11d96/lib-zmij new file mode 100644 index 000000000..26cc1b85c --- /dev/null +++ b/.tmp-check-windows/debug/.fingerprint/zmij-dcc967559ac11d96/lib-zmij @@ -0,0 +1 @@ +fafba19a01d07548 \ No newline at end of file diff --git a/.tmp-check-windows/debug/.fingerprint/zmij-dcc967559ac11d96/lib-zmij.json b/.tmp-check-windows/debug/.fingerprint/zmij-dcc967559ac11d96/lib-zmij.json new file mode 100644 index 000000000..8f09678b9 --- /dev/null +++ b/.tmp-check-windows/debug/.fingerprint/zmij-dcc967559ac11d96/lib-zmij.json @@ -0,0 +1 @@ +{"rustc":13850170861107434965,"features":"[]","declared_features":"[\"no-panic\"]","target":16603507647234574737,"profile":5347358027863023418,"path":5884773658754602411,"deps":[[12347024475581975995,"build_script_build",false,713992244553676136]],"local":[{"CheckDepInfo":{"dep_info":"debug/.fingerprint/zmij-dcc967559ac11d96/dep-lib-zmij","checksum":false}}],"rustflags":[],"config":2069994364910194474,"compile_kind":0} \ No newline at end of file diff --git a/.tmp-check-windows/debug/build/anyhow-b3e06dd550d929f4/build-script-build b/.tmp-check-windows/debug/build/anyhow-b3e06dd550d929f4/build-script-build new file mode 100755 index 000000000..e063445c1 Binary files /dev/null and b/.tmp-check-windows/debug/build/anyhow-b3e06dd550d929f4/build-script-build differ diff --git a/.tmp-check-windows/debug/build/anyhow-b3e06dd550d929f4/build_script_build-b3e06dd550d929f4 b/.tmp-check-windows/debug/build/anyhow-b3e06dd550d929f4/build_script_build-b3e06dd550d929f4 new file mode 100755 index 000000000..e063445c1 Binary files /dev/null and b/.tmp-check-windows/debug/build/anyhow-b3e06dd550d929f4/build_script_build-b3e06dd550d929f4 differ diff --git a/.tmp-check-windows/debug/build/anyhow-b3e06dd550d929f4/build_script_build-b3e06dd550d929f4.build_script_build.32a021dd50bda972-cgu.0.rcgu.o b/.tmp-check-windows/debug/build/anyhow-b3e06dd550d929f4/build_script_build-b3e06dd550d929f4.build_script_build.32a021dd50bda972-cgu.0.rcgu.o new file mode 100644 index 000000000..4d993a60b Binary files /dev/null and b/.tmp-check-windows/debug/build/anyhow-b3e06dd550d929f4/build_script_build-b3e06dd550d929f4.build_script_build.32a021dd50bda972-cgu.0.rcgu.o differ diff --git a/.tmp-check-windows/debug/build/anyhow-b3e06dd550d929f4/build_script_build-b3e06dd550d929f4.build_script_build.32a021dd50bda972-cgu.1.rcgu.o b/.tmp-check-windows/debug/build/anyhow-b3e06dd550d929f4/build_script_build-b3e06dd550d929f4.build_script_build.32a021dd50bda972-cgu.1.rcgu.o new file mode 100644 index 000000000..829f0807d Binary files /dev/null and b/.tmp-check-windows/debug/build/anyhow-b3e06dd550d929f4/build_script_build-b3e06dd550d929f4.build_script_build.32a021dd50bda972-cgu.1.rcgu.o differ diff --git a/.tmp-check-windows/debug/build/anyhow-b3e06dd550d929f4/build_script_build-b3e06dd550d929f4.d b/.tmp-check-windows/debug/build/anyhow-b3e06dd550d929f4/build_script_build-b3e06dd550d929f4.d new file mode 100644 index 000000000..d8157ed66 --- /dev/null +++ b/.tmp-check-windows/debug/build/anyhow-b3e06dd550d929f4/build_script_build-b3e06dd550d929f4.d @@ -0,0 +1,5 @@ +/Users/coso/Documents/dev/ai/aiclientproxy/lime/.tmp-check-windows/debug/build/anyhow-b3e06dd550d929f4/build_script_build-b3e06dd550d929f4.d: /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/anyhow-1.0.102/build.rs + +/Users/coso/Documents/dev/ai/aiclientproxy/lime/.tmp-check-windows/debug/build/anyhow-b3e06dd550d929f4/build_script_build-b3e06dd550d929f4: /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/anyhow-1.0.102/build.rs + +/Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/anyhow-1.0.102/build.rs: diff --git a/.tmp-check-windows/debug/build/crc32fast-69912509e6110587/build-script-build b/.tmp-check-windows/debug/build/crc32fast-69912509e6110587/build-script-build new file mode 100755 index 000000000..3c68c0c7e Binary files /dev/null and b/.tmp-check-windows/debug/build/crc32fast-69912509e6110587/build-script-build differ diff --git a/.tmp-check-windows/debug/build/crc32fast-69912509e6110587/build_script_build-69912509e6110587 b/.tmp-check-windows/debug/build/crc32fast-69912509e6110587/build_script_build-69912509e6110587 new file mode 100755 index 000000000..3c68c0c7e Binary files /dev/null and b/.tmp-check-windows/debug/build/crc32fast-69912509e6110587/build_script_build-69912509e6110587 differ diff --git a/.tmp-check-windows/debug/build/crc32fast-69912509e6110587/build_script_build-69912509e6110587.build_script_build.5b96d311767a79c-cgu.0.rcgu.o b/.tmp-check-windows/debug/build/crc32fast-69912509e6110587/build_script_build-69912509e6110587.build_script_build.5b96d311767a79c-cgu.0.rcgu.o new file mode 100644 index 000000000..7e225e508 Binary files /dev/null and b/.tmp-check-windows/debug/build/crc32fast-69912509e6110587/build_script_build-69912509e6110587.build_script_build.5b96d311767a79c-cgu.0.rcgu.o differ diff --git a/.tmp-check-windows/debug/build/crc32fast-69912509e6110587/build_script_build-69912509e6110587.d b/.tmp-check-windows/debug/build/crc32fast-69912509e6110587/build_script_build-69912509e6110587.d new file mode 100644 index 000000000..7be420637 --- /dev/null +++ b/.tmp-check-windows/debug/build/crc32fast-69912509e6110587/build_script_build-69912509e6110587.d @@ -0,0 +1,5 @@ +/Users/coso/Documents/dev/ai/aiclientproxy/lime/.tmp-check-windows/debug/build/crc32fast-69912509e6110587/build_script_build-69912509e6110587.d: /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/crc32fast-1.5.0/build.rs + +/Users/coso/Documents/dev/ai/aiclientproxy/lime/.tmp-check-windows/debug/build/crc32fast-69912509e6110587/build_script_build-69912509e6110587: /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/crc32fast-1.5.0/build.rs + +/Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/crc32fast-1.5.0/build.rs: diff --git a/.tmp-check-windows/debug/build/generic-array-31795b474f687693/build-script-build b/.tmp-check-windows/debug/build/generic-array-31795b474f687693/build-script-build new file mode 100755 index 000000000..465b82619 Binary files /dev/null and b/.tmp-check-windows/debug/build/generic-array-31795b474f687693/build-script-build differ diff --git a/.tmp-check-windows/debug/build/generic-array-31795b474f687693/build_script_build-31795b474f687693 b/.tmp-check-windows/debug/build/generic-array-31795b474f687693/build_script_build-31795b474f687693 new file mode 100755 index 000000000..465b82619 Binary files /dev/null and b/.tmp-check-windows/debug/build/generic-array-31795b474f687693/build_script_build-31795b474f687693 differ diff --git a/.tmp-check-windows/debug/build/generic-array-31795b474f687693/build_script_build-31795b474f687693.build_script_build.5488675cd42d4c95-cgu.0.rcgu.o b/.tmp-check-windows/debug/build/generic-array-31795b474f687693/build_script_build-31795b474f687693.build_script_build.5488675cd42d4c95-cgu.0.rcgu.o new file mode 100644 index 000000000..7fb750fa3 Binary files /dev/null and b/.tmp-check-windows/debug/build/generic-array-31795b474f687693/build_script_build-31795b474f687693.build_script_build.5488675cd42d4c95-cgu.0.rcgu.o differ diff --git a/.tmp-check-windows/debug/build/generic-array-31795b474f687693/build_script_build-31795b474f687693.d b/.tmp-check-windows/debug/build/generic-array-31795b474f687693/build_script_build-31795b474f687693.d new file mode 100644 index 000000000..ebb969814 --- /dev/null +++ b/.tmp-check-windows/debug/build/generic-array-31795b474f687693/build_script_build-31795b474f687693.d @@ -0,0 +1,5 @@ +/Users/coso/Documents/dev/ai/aiclientproxy/lime/.tmp-check-windows/debug/build/generic-array-31795b474f687693/build_script_build-31795b474f687693.d: /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/generic-array-0.14.7/build.rs + +/Users/coso/Documents/dev/ai/aiclientproxy/lime/.tmp-check-windows/debug/build/generic-array-31795b474f687693/build_script_build-31795b474f687693: /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/generic-array-0.14.7/build.rs + +/Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/generic-array-0.14.7/build.rs: diff --git a/.tmp-check-windows/debug/build/getrandom-1fa033f3fee610f0/build-script-build b/.tmp-check-windows/debug/build/getrandom-1fa033f3fee610f0/build-script-build new file mode 100755 index 000000000..2e4a7117a Binary files /dev/null and b/.tmp-check-windows/debug/build/getrandom-1fa033f3fee610f0/build-script-build differ diff --git a/.tmp-check-windows/debug/build/getrandom-1fa033f3fee610f0/build_script_build-1fa033f3fee610f0 b/.tmp-check-windows/debug/build/getrandom-1fa033f3fee610f0/build_script_build-1fa033f3fee610f0 new file mode 100755 index 000000000..2e4a7117a Binary files /dev/null and b/.tmp-check-windows/debug/build/getrandom-1fa033f3fee610f0/build_script_build-1fa033f3fee610f0 differ diff --git a/.tmp-check-windows/debug/build/getrandom-1fa033f3fee610f0/build_script_build-1fa033f3fee610f0.build_script_build.2da15783752051d4-cgu.0.rcgu.o b/.tmp-check-windows/debug/build/getrandom-1fa033f3fee610f0/build_script_build-1fa033f3fee610f0.build_script_build.2da15783752051d4-cgu.0.rcgu.o new file mode 100644 index 000000000..5a1642845 Binary files /dev/null and b/.tmp-check-windows/debug/build/getrandom-1fa033f3fee610f0/build_script_build-1fa033f3fee610f0.build_script_build.2da15783752051d4-cgu.0.rcgu.o differ diff --git a/.tmp-check-windows/debug/build/getrandom-1fa033f3fee610f0/build_script_build-1fa033f3fee610f0.d b/.tmp-check-windows/debug/build/getrandom-1fa033f3fee610f0/build_script_build-1fa033f3fee610f0.d new file mode 100644 index 000000000..df979d40c --- /dev/null +++ b/.tmp-check-windows/debug/build/getrandom-1fa033f3fee610f0/build_script_build-1fa033f3fee610f0.d @@ -0,0 +1,5 @@ +/Users/coso/Documents/dev/ai/aiclientproxy/lime/.tmp-check-windows/debug/build/getrandom-1fa033f3fee610f0/build_script_build-1fa033f3fee610f0.d: /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/getrandom-0.4.1/build.rs + +/Users/coso/Documents/dev/ai/aiclientproxy/lime/.tmp-check-windows/debug/build/getrandom-1fa033f3fee610f0/build_script_build-1fa033f3fee610f0: /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/getrandom-0.4.1/build.rs + +/Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/getrandom-0.4.1/build.rs: diff --git a/.tmp-check-windows/debug/build/getrandom-4a4edbcee435073f/invoked.timestamp b/.tmp-check-windows/debug/build/getrandom-4a4edbcee435073f/invoked.timestamp new file mode 100644 index 000000000..e00328da5 --- /dev/null +++ b/.tmp-check-windows/debug/build/getrandom-4a4edbcee435073f/invoked.timestamp @@ -0,0 +1 @@ +This file has an mtime of when this was started. \ No newline at end of file diff --git a/.tmp-check-windows/debug/build/getrandom-4a4edbcee435073f/output b/.tmp-check-windows/debug/build/getrandom-4a4edbcee435073f/output new file mode 100644 index 000000000..e69de29bb diff --git a/.tmp-check-windows/debug/build/getrandom-4a4edbcee435073f/root-output b/.tmp-check-windows/debug/build/getrandom-4a4edbcee435073f/root-output new file mode 100644 index 000000000..d2a3ff187 --- /dev/null +++ b/.tmp-check-windows/debug/build/getrandom-4a4edbcee435073f/root-output @@ -0,0 +1 @@ +/Users/coso/Documents/dev/ai/aiclientproxy/lime/.tmp-check-windows/debug/build/getrandom-4a4edbcee435073f/out \ No newline at end of file diff --git a/.tmp-check-windows/debug/build/getrandom-4a4edbcee435073f/stderr b/.tmp-check-windows/debug/build/getrandom-4a4edbcee435073f/stderr new file mode 100644 index 000000000..e69de29bb diff --git a/.tmp-check-windows/debug/build/getrandom-95aa92372f5612e7/build-script-build b/.tmp-check-windows/debug/build/getrandom-95aa92372f5612e7/build-script-build new file mode 100755 index 000000000..f098993d3 Binary files /dev/null and b/.tmp-check-windows/debug/build/getrandom-95aa92372f5612e7/build-script-build differ diff --git a/.tmp-check-windows/debug/build/getrandom-95aa92372f5612e7/build_script_build-95aa92372f5612e7 b/.tmp-check-windows/debug/build/getrandom-95aa92372f5612e7/build_script_build-95aa92372f5612e7 new file mode 100755 index 000000000..f098993d3 Binary files /dev/null and b/.tmp-check-windows/debug/build/getrandom-95aa92372f5612e7/build_script_build-95aa92372f5612e7 differ diff --git a/.tmp-check-windows/debug/build/getrandom-95aa92372f5612e7/build_script_build-95aa92372f5612e7.build_script_build.5c33c1421fc3e148-cgu.0.rcgu.o b/.tmp-check-windows/debug/build/getrandom-95aa92372f5612e7/build_script_build-95aa92372f5612e7.build_script_build.5c33c1421fc3e148-cgu.0.rcgu.o new file mode 100644 index 000000000..d0f1ce535 Binary files /dev/null and b/.tmp-check-windows/debug/build/getrandom-95aa92372f5612e7/build_script_build-95aa92372f5612e7.build_script_build.5c33c1421fc3e148-cgu.0.rcgu.o differ diff --git a/.tmp-check-windows/debug/build/getrandom-95aa92372f5612e7/build_script_build-95aa92372f5612e7.d b/.tmp-check-windows/debug/build/getrandom-95aa92372f5612e7/build_script_build-95aa92372f5612e7.d new file mode 100644 index 000000000..dd815ef72 --- /dev/null +++ b/.tmp-check-windows/debug/build/getrandom-95aa92372f5612e7/build_script_build-95aa92372f5612e7.d @@ -0,0 +1,5 @@ +/Users/coso/Documents/dev/ai/aiclientproxy/lime/.tmp-check-windows/debug/build/getrandom-95aa92372f5612e7/build_script_build-95aa92372f5612e7.d: /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/getrandom-0.1.16/build.rs + +/Users/coso/Documents/dev/ai/aiclientproxy/lime/.tmp-check-windows/debug/build/getrandom-95aa92372f5612e7/build_script_build-95aa92372f5612e7: /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/getrandom-0.1.16/build.rs + +/Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/getrandom-0.1.16/build.rs: diff --git a/.tmp-check-windows/debug/build/httparse-3c9b1a9536533208/build-script-build b/.tmp-check-windows/debug/build/httparse-3c9b1a9536533208/build-script-build new file mode 100755 index 000000000..d3ac63dd9 Binary files /dev/null and b/.tmp-check-windows/debug/build/httparse-3c9b1a9536533208/build-script-build differ diff --git a/.tmp-check-windows/debug/build/httparse-3c9b1a9536533208/build_script_build-3c9b1a9536533208 b/.tmp-check-windows/debug/build/httparse-3c9b1a9536533208/build_script_build-3c9b1a9536533208 new file mode 100755 index 000000000..d3ac63dd9 Binary files /dev/null and b/.tmp-check-windows/debug/build/httparse-3c9b1a9536533208/build_script_build-3c9b1a9536533208 differ diff --git a/.tmp-check-windows/debug/build/httparse-3c9b1a9536533208/build_script_build-3c9b1a9536533208.build_script_build.1dcf6d5ab6a60ebb-cgu.0.rcgu.o b/.tmp-check-windows/debug/build/httparse-3c9b1a9536533208/build_script_build-3c9b1a9536533208.build_script_build.1dcf6d5ab6a60ebb-cgu.0.rcgu.o new file mode 100644 index 000000000..70362e04e Binary files /dev/null and b/.tmp-check-windows/debug/build/httparse-3c9b1a9536533208/build_script_build-3c9b1a9536533208.build_script_build.1dcf6d5ab6a60ebb-cgu.0.rcgu.o differ diff --git a/.tmp-check-windows/debug/build/httparse-3c9b1a9536533208/build_script_build-3c9b1a9536533208.build_script_build.1dcf6d5ab6a60ebb-cgu.1.rcgu.o b/.tmp-check-windows/debug/build/httparse-3c9b1a9536533208/build_script_build-3c9b1a9536533208.build_script_build.1dcf6d5ab6a60ebb-cgu.1.rcgu.o new file mode 100644 index 000000000..5d60453b0 Binary files /dev/null and b/.tmp-check-windows/debug/build/httparse-3c9b1a9536533208/build_script_build-3c9b1a9536533208.build_script_build.1dcf6d5ab6a60ebb-cgu.1.rcgu.o differ diff --git a/.tmp-check-windows/debug/build/httparse-3c9b1a9536533208/build_script_build-3c9b1a9536533208.d b/.tmp-check-windows/debug/build/httparse-3c9b1a9536533208/build_script_build-3c9b1a9536533208.d new file mode 100644 index 000000000..2e65bb26d --- /dev/null +++ b/.tmp-check-windows/debug/build/httparse-3c9b1a9536533208/build_script_build-3c9b1a9536533208.d @@ -0,0 +1,5 @@ +/Users/coso/Documents/dev/ai/aiclientproxy/lime/.tmp-check-windows/debug/build/httparse-3c9b1a9536533208/build_script_build-3c9b1a9536533208.d: /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/httparse-1.10.1/build.rs + +/Users/coso/Documents/dev/ai/aiclientproxy/lime/.tmp-check-windows/debug/build/httparse-3c9b1a9536533208/build_script_build-3c9b1a9536533208: /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/httparse-1.10.1/build.rs + +/Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/httparse-1.10.1/build.rs: diff --git a/.tmp-check-windows/debug/build/icu_normalizer_data-a3fe3ca9f44361c5/build-script-build b/.tmp-check-windows/debug/build/icu_normalizer_data-a3fe3ca9f44361c5/build-script-build new file mode 100755 index 000000000..b0e83d4d4 Binary files /dev/null and b/.tmp-check-windows/debug/build/icu_normalizer_data-a3fe3ca9f44361c5/build-script-build differ diff --git a/.tmp-check-windows/debug/build/icu_normalizer_data-a3fe3ca9f44361c5/build_script_build-a3fe3ca9f44361c5 b/.tmp-check-windows/debug/build/icu_normalizer_data-a3fe3ca9f44361c5/build_script_build-a3fe3ca9f44361c5 new file mode 100755 index 000000000..b0e83d4d4 Binary files /dev/null and b/.tmp-check-windows/debug/build/icu_normalizer_data-a3fe3ca9f44361c5/build_script_build-a3fe3ca9f44361c5 differ diff --git a/.tmp-check-windows/debug/build/icu_normalizer_data-a3fe3ca9f44361c5/build_script_build-a3fe3ca9f44361c5.build_script_build.c1574864a969ad4e-cgu.0.rcgu.o b/.tmp-check-windows/debug/build/icu_normalizer_data-a3fe3ca9f44361c5/build_script_build-a3fe3ca9f44361c5.build_script_build.c1574864a969ad4e-cgu.0.rcgu.o new file mode 100644 index 000000000..018f40abb Binary files /dev/null and b/.tmp-check-windows/debug/build/icu_normalizer_data-a3fe3ca9f44361c5/build_script_build-a3fe3ca9f44361c5.build_script_build.c1574864a969ad4e-cgu.0.rcgu.o differ diff --git a/.tmp-check-windows/debug/build/icu_normalizer_data-a3fe3ca9f44361c5/build_script_build-a3fe3ca9f44361c5.d b/.tmp-check-windows/debug/build/icu_normalizer_data-a3fe3ca9f44361c5/build_script_build-a3fe3ca9f44361c5.d new file mode 100644 index 000000000..3377b93ab --- /dev/null +++ b/.tmp-check-windows/debug/build/icu_normalizer_data-a3fe3ca9f44361c5/build_script_build-a3fe3ca9f44361c5.d @@ -0,0 +1,5 @@ +/Users/coso/Documents/dev/ai/aiclientproxy/lime/.tmp-check-windows/debug/build/icu_normalizer_data-a3fe3ca9f44361c5/build_script_build-a3fe3ca9f44361c5.d: /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/icu_normalizer_data-2.0.0/build.rs + +/Users/coso/Documents/dev/ai/aiclientproxy/lime/.tmp-check-windows/debug/build/icu_normalizer_data-a3fe3ca9f44361c5/build_script_build-a3fe3ca9f44361c5: /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/icu_normalizer_data-2.0.0/build.rs + +/Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/icu_normalizer_data-2.0.0/build.rs: diff --git a/.tmp-check-windows/debug/build/icu_properties_data-fad2f27a512b9f47/build-script-build b/.tmp-check-windows/debug/build/icu_properties_data-fad2f27a512b9f47/build-script-build new file mode 100755 index 000000000..067e6d51e Binary files /dev/null and b/.tmp-check-windows/debug/build/icu_properties_data-fad2f27a512b9f47/build-script-build differ diff --git a/.tmp-check-windows/debug/build/icu_properties_data-fad2f27a512b9f47/build_script_build-fad2f27a512b9f47 b/.tmp-check-windows/debug/build/icu_properties_data-fad2f27a512b9f47/build_script_build-fad2f27a512b9f47 new file mode 100755 index 000000000..067e6d51e Binary files /dev/null and b/.tmp-check-windows/debug/build/icu_properties_data-fad2f27a512b9f47/build_script_build-fad2f27a512b9f47 differ diff --git a/.tmp-check-windows/debug/build/icu_properties_data-fad2f27a512b9f47/build_script_build-fad2f27a512b9f47.build_script_build.2215ff2bffeb668f-cgu.0.rcgu.o b/.tmp-check-windows/debug/build/icu_properties_data-fad2f27a512b9f47/build_script_build-fad2f27a512b9f47.build_script_build.2215ff2bffeb668f-cgu.0.rcgu.o new file mode 100644 index 000000000..0c5164e42 Binary files /dev/null and b/.tmp-check-windows/debug/build/icu_properties_data-fad2f27a512b9f47/build_script_build-fad2f27a512b9f47.build_script_build.2215ff2bffeb668f-cgu.0.rcgu.o differ diff --git a/.tmp-check-windows/debug/build/icu_properties_data-fad2f27a512b9f47/build_script_build-fad2f27a512b9f47.d b/.tmp-check-windows/debug/build/icu_properties_data-fad2f27a512b9f47/build_script_build-fad2f27a512b9f47.d new file mode 100644 index 000000000..3c58894ba --- /dev/null +++ b/.tmp-check-windows/debug/build/icu_properties_data-fad2f27a512b9f47/build_script_build-fad2f27a512b9f47.d @@ -0,0 +1,5 @@ +/Users/coso/Documents/dev/ai/aiclientproxy/lime/.tmp-check-windows/debug/build/icu_properties_data-fad2f27a512b9f47/build_script_build-fad2f27a512b9f47.d: /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/icu_properties_data-2.0.1/build.rs + +/Users/coso/Documents/dev/ai/aiclientproxy/lime/.tmp-check-windows/debug/build/icu_properties_data-fad2f27a512b9f47/build_script_build-fad2f27a512b9f47: /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/icu_properties_data-2.0.1/build.rs + +/Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/icu_properties_data-2.0.1/build.rs: diff --git a/.tmp-check-windows/debug/build/libc-3115226fc8657037/build-script-build b/.tmp-check-windows/debug/build/libc-3115226fc8657037/build-script-build new file mode 100755 index 000000000..bda80ce3e Binary files /dev/null and b/.tmp-check-windows/debug/build/libc-3115226fc8657037/build-script-build differ diff --git a/.tmp-check-windows/debug/build/libc-3115226fc8657037/build_script_build-3115226fc8657037 b/.tmp-check-windows/debug/build/libc-3115226fc8657037/build_script_build-3115226fc8657037 new file mode 100755 index 000000000..bda80ce3e Binary files /dev/null and b/.tmp-check-windows/debug/build/libc-3115226fc8657037/build_script_build-3115226fc8657037 differ diff --git a/.tmp-check-windows/debug/build/libc-3115226fc8657037/build_script_build-3115226fc8657037.build_script_build.f4a35cec9806c6be-cgu.0.rcgu.o b/.tmp-check-windows/debug/build/libc-3115226fc8657037/build_script_build-3115226fc8657037.build_script_build.f4a35cec9806c6be-cgu.0.rcgu.o new file mode 100644 index 000000000..0a5603283 Binary files /dev/null and b/.tmp-check-windows/debug/build/libc-3115226fc8657037/build_script_build-3115226fc8657037.build_script_build.f4a35cec9806c6be-cgu.0.rcgu.o differ diff --git a/.tmp-check-windows/debug/build/libc-3115226fc8657037/build_script_build-3115226fc8657037.build_script_build.f4a35cec9806c6be-cgu.1.rcgu.o b/.tmp-check-windows/debug/build/libc-3115226fc8657037/build_script_build-3115226fc8657037.build_script_build.f4a35cec9806c6be-cgu.1.rcgu.o new file mode 100644 index 000000000..8d28408a3 Binary files /dev/null and b/.tmp-check-windows/debug/build/libc-3115226fc8657037/build_script_build-3115226fc8657037.build_script_build.f4a35cec9806c6be-cgu.1.rcgu.o differ diff --git a/.tmp-check-windows/debug/build/libc-3115226fc8657037/build_script_build-3115226fc8657037.build_script_build.f4a35cec9806c6be-cgu.2.rcgu.o b/.tmp-check-windows/debug/build/libc-3115226fc8657037/build_script_build-3115226fc8657037.build_script_build.f4a35cec9806c6be-cgu.2.rcgu.o new file mode 100644 index 000000000..57bb79f57 Binary files /dev/null and b/.tmp-check-windows/debug/build/libc-3115226fc8657037/build_script_build-3115226fc8657037.build_script_build.f4a35cec9806c6be-cgu.2.rcgu.o differ diff --git a/.tmp-check-windows/debug/build/libc-3115226fc8657037/build_script_build-3115226fc8657037.build_script_build.f4a35cec9806c6be-cgu.3.rcgu.o b/.tmp-check-windows/debug/build/libc-3115226fc8657037/build_script_build-3115226fc8657037.build_script_build.f4a35cec9806c6be-cgu.3.rcgu.o new file mode 100644 index 000000000..9dfce551a Binary files /dev/null and b/.tmp-check-windows/debug/build/libc-3115226fc8657037/build_script_build-3115226fc8657037.build_script_build.f4a35cec9806c6be-cgu.3.rcgu.o differ diff --git a/.tmp-check-windows/debug/build/libc-3115226fc8657037/build_script_build-3115226fc8657037.d b/.tmp-check-windows/debug/build/libc-3115226fc8657037/build_script_build-3115226fc8657037.d new file mode 100644 index 000000000..2a3322248 --- /dev/null +++ b/.tmp-check-windows/debug/build/libc-3115226fc8657037/build_script_build-3115226fc8657037.d @@ -0,0 +1,5 @@ +/Users/coso/Documents/dev/ai/aiclientproxy/lime/.tmp-check-windows/debug/build/libc-3115226fc8657037/build_script_build-3115226fc8657037.d: /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/libc-0.2.180/build.rs + +/Users/coso/Documents/dev/ai/aiclientproxy/lime/.tmp-check-windows/debug/build/libc-3115226fc8657037/build_script_build-3115226fc8657037: /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/libc-0.2.180/build.rs + +/Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/libc-0.2.180/build.rs: diff --git a/.tmp-check-windows/debug/build/libc-766a782b7e87ec21/invoked.timestamp b/.tmp-check-windows/debug/build/libc-766a782b7e87ec21/invoked.timestamp new file mode 100644 index 000000000..e00328da5 --- /dev/null +++ b/.tmp-check-windows/debug/build/libc-766a782b7e87ec21/invoked.timestamp @@ -0,0 +1 @@ +This file has an mtime of when this was started. \ No newline at end of file diff --git a/.tmp-check-windows/debug/build/libc-766a782b7e87ec21/output b/.tmp-check-windows/debug/build/libc-766a782b7e87ec21/output new file mode 100644 index 000000000..89a43b576 --- /dev/null +++ b/.tmp-check-windows/debug/build/libc-766a782b7e87ec21/output @@ -0,0 +1,25 @@ +cargo:rerun-if-changed=build.rs +cargo:rerun-if-env-changed=RUST_LIBC_UNSTABLE_FREEBSD_VERSION +cargo:rustc-cfg=freebsd12 +cargo:rerun-if-env-changed=RUST_LIBC_UNSTABLE_MUSL_V1_2_3 +cargo:rerun-if-env-changed=RUST_LIBC_UNSTABLE_LINUX_TIME_BITS64 +cargo:rerun-if-env-changed=RUST_LIBC_UNSTABLE_GNU_FILE_OFFSET_BITS +cargo:rerun-if-env-changed=RUST_LIBC_UNSTABLE_GNU_TIME_BITS +cargo:rustc-check-cfg=cfg(emscripten_old_stat_abi) +cargo:rustc-check-cfg=cfg(espidf_time32) +cargo:rustc-check-cfg=cfg(freebsd10) +cargo:rustc-check-cfg=cfg(freebsd11) +cargo:rustc-check-cfg=cfg(freebsd12) +cargo:rustc-check-cfg=cfg(freebsd13) +cargo:rustc-check-cfg=cfg(freebsd14) +cargo:rustc-check-cfg=cfg(freebsd15) +cargo:rustc-check-cfg=cfg(gnu_file_offset_bits64) +cargo:rustc-check-cfg=cfg(gnu_time_bits64) +cargo:rustc-check-cfg=cfg(libc_deny_warnings) +cargo:rustc-check-cfg=cfg(linux_time_bits64) +cargo:rustc-check-cfg=cfg(musl_v1_2_3) +cargo:rustc-check-cfg=cfg(musl32_time64) +cargo:rustc-check-cfg=cfg(vxworks_lt_25_09) +cargo:rustc-check-cfg=cfg(target_os,values("switch","aix","ohos","hurd","rtems","visionos","nuttx","cygwin","qurt")) +cargo:rustc-check-cfg=cfg(target_env,values("illumos","wasi","aix","ohos","nto71_iosock","nto80")) +cargo:rustc-check-cfg=cfg(target_arch,values("loongarch64","mips32r6","mips64r6","csky")) diff --git a/.tmp-check-windows/debug/build/libc-766a782b7e87ec21/root-output b/.tmp-check-windows/debug/build/libc-766a782b7e87ec21/root-output new file mode 100644 index 000000000..8962e557c --- /dev/null +++ b/.tmp-check-windows/debug/build/libc-766a782b7e87ec21/root-output @@ -0,0 +1 @@ +/Users/coso/Documents/dev/ai/aiclientproxy/lime/.tmp-check-windows/debug/build/libc-766a782b7e87ec21/out \ No newline at end of file diff --git a/.tmp-check-windows/debug/build/libc-766a782b7e87ec21/stderr b/.tmp-check-windows/debug/build/libc-766a782b7e87ec21/stderr new file mode 100644 index 000000000..e69de29bb diff --git a/.tmp-check-windows/debug/build/libc-fdfc3eca3fbcb0d3/build-script-build b/.tmp-check-windows/debug/build/libc-fdfc3eca3fbcb0d3/build-script-build new file mode 100755 index 000000000..69b05dad9 Binary files /dev/null and b/.tmp-check-windows/debug/build/libc-fdfc3eca3fbcb0d3/build-script-build differ diff --git a/.tmp-check-windows/debug/build/libc-fdfc3eca3fbcb0d3/build_script_build-fdfc3eca3fbcb0d3 b/.tmp-check-windows/debug/build/libc-fdfc3eca3fbcb0d3/build_script_build-fdfc3eca3fbcb0d3 new file mode 100755 index 000000000..69b05dad9 Binary files /dev/null and b/.tmp-check-windows/debug/build/libc-fdfc3eca3fbcb0d3/build_script_build-fdfc3eca3fbcb0d3 differ diff --git a/.tmp-check-windows/debug/build/libc-fdfc3eca3fbcb0d3/build_script_build-fdfc3eca3fbcb0d3.build_script_build.70110bf8fca56222-cgu.0.rcgu.o b/.tmp-check-windows/debug/build/libc-fdfc3eca3fbcb0d3/build_script_build-fdfc3eca3fbcb0d3.build_script_build.70110bf8fca56222-cgu.0.rcgu.o new file mode 100644 index 000000000..2100dce8a Binary files /dev/null and b/.tmp-check-windows/debug/build/libc-fdfc3eca3fbcb0d3/build_script_build-fdfc3eca3fbcb0d3.build_script_build.70110bf8fca56222-cgu.0.rcgu.o differ diff --git a/.tmp-check-windows/debug/build/libc-fdfc3eca3fbcb0d3/build_script_build-fdfc3eca3fbcb0d3.build_script_build.70110bf8fca56222-cgu.1.rcgu.o b/.tmp-check-windows/debug/build/libc-fdfc3eca3fbcb0d3/build_script_build-fdfc3eca3fbcb0d3.build_script_build.70110bf8fca56222-cgu.1.rcgu.o new file mode 100644 index 000000000..71eed4093 Binary files /dev/null and b/.tmp-check-windows/debug/build/libc-fdfc3eca3fbcb0d3/build_script_build-fdfc3eca3fbcb0d3.build_script_build.70110bf8fca56222-cgu.1.rcgu.o differ diff --git a/.tmp-check-windows/debug/build/libc-fdfc3eca3fbcb0d3/build_script_build-fdfc3eca3fbcb0d3.build_script_build.70110bf8fca56222-cgu.2.rcgu.o b/.tmp-check-windows/debug/build/libc-fdfc3eca3fbcb0d3/build_script_build-fdfc3eca3fbcb0d3.build_script_build.70110bf8fca56222-cgu.2.rcgu.o new file mode 100644 index 000000000..978edebd6 Binary files /dev/null and b/.tmp-check-windows/debug/build/libc-fdfc3eca3fbcb0d3/build_script_build-fdfc3eca3fbcb0d3.build_script_build.70110bf8fca56222-cgu.2.rcgu.o differ diff --git a/.tmp-check-windows/debug/build/libc-fdfc3eca3fbcb0d3/build_script_build-fdfc3eca3fbcb0d3.build_script_build.70110bf8fca56222-cgu.3.rcgu.o b/.tmp-check-windows/debug/build/libc-fdfc3eca3fbcb0d3/build_script_build-fdfc3eca3fbcb0d3.build_script_build.70110bf8fca56222-cgu.3.rcgu.o new file mode 100644 index 000000000..f400ad7d6 Binary files /dev/null and b/.tmp-check-windows/debug/build/libc-fdfc3eca3fbcb0d3/build_script_build-fdfc3eca3fbcb0d3.build_script_build.70110bf8fca56222-cgu.3.rcgu.o differ diff --git a/.tmp-check-windows/debug/build/libc-fdfc3eca3fbcb0d3/build_script_build-fdfc3eca3fbcb0d3.d b/.tmp-check-windows/debug/build/libc-fdfc3eca3fbcb0d3/build_script_build-fdfc3eca3fbcb0d3.d new file mode 100644 index 000000000..5c43412fd --- /dev/null +++ b/.tmp-check-windows/debug/build/libc-fdfc3eca3fbcb0d3/build_script_build-fdfc3eca3fbcb0d3.d @@ -0,0 +1,5 @@ +/Users/coso/Documents/dev/ai/aiclientproxy/lime/.tmp-check-windows/debug/build/libc-fdfc3eca3fbcb0d3/build_script_build-fdfc3eca3fbcb0d3.d: /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/libc-0.2.180/build.rs + +/Users/coso/Documents/dev/ai/aiclientproxy/lime/.tmp-check-windows/debug/build/libc-fdfc3eca3fbcb0d3/build_script_build-fdfc3eca3fbcb0d3: /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/libc-0.2.180/build.rs + +/Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/libc-0.2.180/build.rs: diff --git a/.tmp-check-windows/debug/build/num-traits-76e72af6028092a4/build-script-build b/.tmp-check-windows/debug/build/num-traits-76e72af6028092a4/build-script-build new file mode 100755 index 000000000..8d59b37e3 Binary files /dev/null and b/.tmp-check-windows/debug/build/num-traits-76e72af6028092a4/build-script-build differ diff --git a/.tmp-check-windows/debug/build/num-traits-76e72af6028092a4/build_script_build-76e72af6028092a4 b/.tmp-check-windows/debug/build/num-traits-76e72af6028092a4/build_script_build-76e72af6028092a4 new file mode 100755 index 000000000..8d59b37e3 Binary files /dev/null and b/.tmp-check-windows/debug/build/num-traits-76e72af6028092a4/build_script_build-76e72af6028092a4 differ diff --git a/.tmp-check-windows/debug/build/num-traits-76e72af6028092a4/build_script_build-76e72af6028092a4.build_script_build.b2f92bbf0f472cc-cgu.0.rcgu.o b/.tmp-check-windows/debug/build/num-traits-76e72af6028092a4/build_script_build-76e72af6028092a4.build_script_build.b2f92bbf0f472cc-cgu.0.rcgu.o new file mode 100644 index 000000000..f9d397dc2 Binary files /dev/null and b/.tmp-check-windows/debug/build/num-traits-76e72af6028092a4/build_script_build-76e72af6028092a4.build_script_build.b2f92bbf0f472cc-cgu.0.rcgu.o differ diff --git a/.tmp-check-windows/debug/build/num-traits-76e72af6028092a4/build_script_build-76e72af6028092a4.d b/.tmp-check-windows/debug/build/num-traits-76e72af6028092a4/build_script_build-76e72af6028092a4.d new file mode 100644 index 000000000..81b28d3be --- /dev/null +++ b/.tmp-check-windows/debug/build/num-traits-76e72af6028092a4/build_script_build-76e72af6028092a4.d @@ -0,0 +1,5 @@ +/Users/coso/Documents/dev/ai/aiclientproxy/lime/.tmp-check-windows/debug/build/num-traits-76e72af6028092a4/build_script_build-76e72af6028092a4.d: /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/num-traits-0.2.19/build.rs + +/Users/coso/Documents/dev/ai/aiclientproxy/lime/.tmp-check-windows/debug/build/num-traits-76e72af6028092a4/build_script_build-76e72af6028092a4: /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/num-traits-0.2.19/build.rs + +/Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/num-traits-0.2.19/build.rs: diff --git a/.tmp-check-windows/debug/build/parking_lot_core-381adda9d01549af/build-script-build b/.tmp-check-windows/debug/build/parking_lot_core-381adda9d01549af/build-script-build new file mode 100755 index 000000000..496730725 Binary files /dev/null and b/.tmp-check-windows/debug/build/parking_lot_core-381adda9d01549af/build-script-build differ diff --git a/.tmp-check-windows/debug/build/parking_lot_core-381adda9d01549af/build_script_build-381adda9d01549af b/.tmp-check-windows/debug/build/parking_lot_core-381adda9d01549af/build_script_build-381adda9d01549af new file mode 100755 index 000000000..496730725 Binary files /dev/null and b/.tmp-check-windows/debug/build/parking_lot_core-381adda9d01549af/build_script_build-381adda9d01549af differ diff --git a/.tmp-check-windows/debug/build/parking_lot_core-381adda9d01549af/build_script_build-381adda9d01549af.build_script_build.2dfdd765247586ea-cgu.0.rcgu.o b/.tmp-check-windows/debug/build/parking_lot_core-381adda9d01549af/build_script_build-381adda9d01549af.build_script_build.2dfdd765247586ea-cgu.0.rcgu.o new file mode 100644 index 000000000..0645eb398 Binary files /dev/null and b/.tmp-check-windows/debug/build/parking_lot_core-381adda9d01549af/build_script_build-381adda9d01549af.build_script_build.2dfdd765247586ea-cgu.0.rcgu.o differ diff --git a/.tmp-check-windows/debug/build/parking_lot_core-381adda9d01549af/build_script_build-381adda9d01549af.d b/.tmp-check-windows/debug/build/parking_lot_core-381adda9d01549af/build_script_build-381adda9d01549af.d new file mode 100644 index 000000000..1d0b1326f --- /dev/null +++ b/.tmp-check-windows/debug/build/parking_lot_core-381adda9d01549af/build_script_build-381adda9d01549af.d @@ -0,0 +1,5 @@ +/Users/coso/Documents/dev/ai/aiclientproxy/lime/.tmp-check-windows/debug/build/parking_lot_core-381adda9d01549af/build_script_build-381adda9d01549af.d: /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/parking_lot_core-0.9.12/build.rs + +/Users/coso/Documents/dev/ai/aiclientproxy/lime/.tmp-check-windows/debug/build/parking_lot_core-381adda9d01549af/build_script_build-381adda9d01549af: /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/parking_lot_core-0.9.12/build.rs + +/Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/parking_lot_core-0.9.12/build.rs: diff --git a/.tmp-check-windows/debug/build/proc-macro2-165432f1abc131de/invoked.timestamp b/.tmp-check-windows/debug/build/proc-macro2-165432f1abc131de/invoked.timestamp new file mode 100644 index 000000000..e00328da5 --- /dev/null +++ b/.tmp-check-windows/debug/build/proc-macro2-165432f1abc131de/invoked.timestamp @@ -0,0 +1 @@ +This file has an mtime of when this was started. \ No newline at end of file diff --git a/.tmp-check-windows/debug/build/proc-macro2-165432f1abc131de/output b/.tmp-check-windows/debug/build/proc-macro2-165432f1abc131de/output new file mode 100644 index 000000000..5785ffed4 --- /dev/null +++ b/.tmp-check-windows/debug/build/proc-macro2-165432f1abc131de/output @@ -0,0 +1,24 @@ +cargo:rustc-check-cfg=cfg(fuzzing) +cargo:rustc-check-cfg=cfg(no_is_available) +cargo:rustc-check-cfg=cfg(no_literal_byte_character) +cargo:rustc-check-cfg=cfg(no_literal_c_string) +cargo:rustc-check-cfg=cfg(no_source_text) +cargo:rustc-check-cfg=cfg(proc_macro_span) +cargo:rustc-check-cfg=cfg(proc_macro_span_file) +cargo:rustc-check-cfg=cfg(proc_macro_span_location) +cargo:rustc-check-cfg=cfg(procmacro2_backtrace) +cargo:rustc-check-cfg=cfg(procmacro2_build_probe) +cargo:rustc-check-cfg=cfg(procmacro2_nightly_testing) +cargo:rustc-check-cfg=cfg(procmacro2_semver_exempt) +cargo:rustc-check-cfg=cfg(randomize_layout) +cargo:rustc-check-cfg=cfg(span_locations) +cargo:rustc-check-cfg=cfg(super_unstable) +cargo:rustc-check-cfg=cfg(wrap_proc_macro) +cargo:rustc-cfg=span_locations +cargo:rerun-if-changed=src/probe/proc_macro_span.rs +cargo:rustc-cfg=wrap_proc_macro +cargo:rerun-if-changed=src/probe/proc_macro_span_location.rs +cargo:rustc-cfg=proc_macro_span_location +cargo:rerun-if-changed=src/probe/proc_macro_span_file.rs +cargo:rustc-cfg=proc_macro_span_file +cargo:rerun-if-env-changed=RUSTC_BOOTSTRAP diff --git a/.tmp-check-windows/debug/build/proc-macro2-165432f1abc131de/root-output b/.tmp-check-windows/debug/build/proc-macro2-165432f1abc131de/root-output new file mode 100644 index 000000000..a37f53720 --- /dev/null +++ b/.tmp-check-windows/debug/build/proc-macro2-165432f1abc131de/root-output @@ -0,0 +1 @@ +/Users/coso/Documents/dev/ai/aiclientproxy/lime/.tmp-check-windows/debug/build/proc-macro2-165432f1abc131de/out \ No newline at end of file diff --git a/.tmp-check-windows/debug/build/proc-macro2-165432f1abc131de/stderr b/.tmp-check-windows/debug/build/proc-macro2-165432f1abc131de/stderr new file mode 100644 index 000000000..e69de29bb diff --git a/.tmp-check-windows/debug/build/proc-macro2-cec0b88f40d16ebd/build-script-build b/.tmp-check-windows/debug/build/proc-macro2-cec0b88f40d16ebd/build-script-build new file mode 100755 index 000000000..703187f53 Binary files /dev/null and b/.tmp-check-windows/debug/build/proc-macro2-cec0b88f40d16ebd/build-script-build differ diff --git a/.tmp-check-windows/debug/build/proc-macro2-cec0b88f40d16ebd/build_script_build-cec0b88f40d16ebd b/.tmp-check-windows/debug/build/proc-macro2-cec0b88f40d16ebd/build_script_build-cec0b88f40d16ebd new file mode 100755 index 000000000..703187f53 Binary files /dev/null and b/.tmp-check-windows/debug/build/proc-macro2-cec0b88f40d16ebd/build_script_build-cec0b88f40d16ebd differ diff --git a/.tmp-check-windows/debug/build/proc-macro2-cec0b88f40d16ebd/build_script_build-cec0b88f40d16ebd.build_script_build.30099fd33494df4-cgu.0.rcgu.o b/.tmp-check-windows/debug/build/proc-macro2-cec0b88f40d16ebd/build_script_build-cec0b88f40d16ebd.build_script_build.30099fd33494df4-cgu.0.rcgu.o new file mode 100644 index 000000000..47290f03c Binary files /dev/null and b/.tmp-check-windows/debug/build/proc-macro2-cec0b88f40d16ebd/build_script_build-cec0b88f40d16ebd.build_script_build.30099fd33494df4-cgu.0.rcgu.o differ diff --git a/.tmp-check-windows/debug/build/proc-macro2-cec0b88f40d16ebd/build_script_build-cec0b88f40d16ebd.build_script_build.30099fd33494df4-cgu.1.rcgu.o b/.tmp-check-windows/debug/build/proc-macro2-cec0b88f40d16ebd/build_script_build-cec0b88f40d16ebd.build_script_build.30099fd33494df4-cgu.1.rcgu.o new file mode 100644 index 000000000..3746be3d4 Binary files /dev/null and b/.tmp-check-windows/debug/build/proc-macro2-cec0b88f40d16ebd/build_script_build-cec0b88f40d16ebd.build_script_build.30099fd33494df4-cgu.1.rcgu.o differ diff --git a/.tmp-check-windows/debug/build/proc-macro2-cec0b88f40d16ebd/build_script_build-cec0b88f40d16ebd.d b/.tmp-check-windows/debug/build/proc-macro2-cec0b88f40d16ebd/build_script_build-cec0b88f40d16ebd.d new file mode 100644 index 000000000..006570d66 --- /dev/null +++ b/.tmp-check-windows/debug/build/proc-macro2-cec0b88f40d16ebd/build_script_build-cec0b88f40d16ebd.d @@ -0,0 +1,5 @@ +/Users/coso/Documents/dev/ai/aiclientproxy/lime/.tmp-check-windows/debug/build/proc-macro2-cec0b88f40d16ebd/build_script_build-cec0b88f40d16ebd.d: /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/proc-macro2-1.0.106/build.rs + +/Users/coso/Documents/dev/ai/aiclientproxy/lime/.tmp-check-windows/debug/build/proc-macro2-cec0b88f40d16ebd/build_script_build-cec0b88f40d16ebd: /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/proc-macro2-1.0.106/build.rs + +/Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/proc-macro2-1.0.106/build.rs: diff --git a/.tmp-check-windows/debug/build/quote-2c61fcf6c96f51df/invoked.timestamp b/.tmp-check-windows/debug/build/quote-2c61fcf6c96f51df/invoked.timestamp new file mode 100644 index 000000000..e00328da5 --- /dev/null +++ b/.tmp-check-windows/debug/build/quote-2c61fcf6c96f51df/invoked.timestamp @@ -0,0 +1 @@ +This file has an mtime of when this was started. \ No newline at end of file diff --git a/.tmp-check-windows/debug/build/quote-2c61fcf6c96f51df/output b/.tmp-check-windows/debug/build/quote-2c61fcf6c96f51df/output new file mode 100644 index 000000000..6d81eca24 --- /dev/null +++ b/.tmp-check-windows/debug/build/quote-2c61fcf6c96f51df/output @@ -0,0 +1,2 @@ +cargo:rerun-if-changed=build.rs +cargo:rustc-check-cfg=cfg(no_diagnostic_namespace) diff --git a/.tmp-check-windows/debug/build/quote-2c61fcf6c96f51df/root-output b/.tmp-check-windows/debug/build/quote-2c61fcf6c96f51df/root-output new file mode 100644 index 000000000..471ab7258 --- /dev/null +++ b/.tmp-check-windows/debug/build/quote-2c61fcf6c96f51df/root-output @@ -0,0 +1 @@ +/Users/coso/Documents/dev/ai/aiclientproxy/lime/.tmp-check-windows/debug/build/quote-2c61fcf6c96f51df/out \ No newline at end of file diff --git a/.tmp-check-windows/debug/build/quote-2c61fcf6c96f51df/stderr b/.tmp-check-windows/debug/build/quote-2c61fcf6c96f51df/stderr new file mode 100644 index 000000000..e69de29bb diff --git a/.tmp-check-windows/debug/build/quote-cf0a36acd10fe8d3/build-script-build b/.tmp-check-windows/debug/build/quote-cf0a36acd10fe8d3/build-script-build new file mode 100755 index 000000000..531c7dc11 Binary files /dev/null and b/.tmp-check-windows/debug/build/quote-cf0a36acd10fe8d3/build-script-build differ diff --git a/.tmp-check-windows/debug/build/quote-cf0a36acd10fe8d3/build_script_build-cf0a36acd10fe8d3 b/.tmp-check-windows/debug/build/quote-cf0a36acd10fe8d3/build_script_build-cf0a36acd10fe8d3 new file mode 100755 index 000000000..531c7dc11 Binary files /dev/null and b/.tmp-check-windows/debug/build/quote-cf0a36acd10fe8d3/build_script_build-cf0a36acd10fe8d3 differ diff --git a/.tmp-check-windows/debug/build/quote-cf0a36acd10fe8d3/build_script_build-cf0a36acd10fe8d3.build_script_build.2152675f235b84de-cgu.0.rcgu.o b/.tmp-check-windows/debug/build/quote-cf0a36acd10fe8d3/build_script_build-cf0a36acd10fe8d3.build_script_build.2152675f235b84de-cgu.0.rcgu.o new file mode 100644 index 000000000..d3d068eda Binary files /dev/null and b/.tmp-check-windows/debug/build/quote-cf0a36acd10fe8d3/build_script_build-cf0a36acd10fe8d3.build_script_build.2152675f235b84de-cgu.0.rcgu.o differ diff --git a/.tmp-check-windows/debug/build/quote-cf0a36acd10fe8d3/build_script_build-cf0a36acd10fe8d3.d b/.tmp-check-windows/debug/build/quote-cf0a36acd10fe8d3/build_script_build-cf0a36acd10fe8d3.d new file mode 100644 index 000000000..89d591e31 --- /dev/null +++ b/.tmp-check-windows/debug/build/quote-cf0a36acd10fe8d3/build_script_build-cf0a36acd10fe8d3.d @@ -0,0 +1,5 @@ +/Users/coso/Documents/dev/ai/aiclientproxy/lime/.tmp-check-windows/debug/build/quote-cf0a36acd10fe8d3/build_script_build-cf0a36acd10fe8d3.d: /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/quote-1.0.44/build.rs + +/Users/coso/Documents/dev/ai/aiclientproxy/lime/.tmp-check-windows/debug/build/quote-cf0a36acd10fe8d3/build_script_build-cf0a36acd10fe8d3: /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/quote-1.0.44/build.rs + +/Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/quote-1.0.44/build.rs: diff --git a/.tmp-check-windows/debug/build/ring-5b2375c7e9e4dabf/build-script-build b/.tmp-check-windows/debug/build/ring-5b2375c7e9e4dabf/build-script-build new file mode 100755 index 000000000..29ebdcac0 Binary files /dev/null and b/.tmp-check-windows/debug/build/ring-5b2375c7e9e4dabf/build-script-build differ diff --git a/.tmp-check-windows/debug/build/ring-5b2375c7e9e4dabf/build_script_build-5b2375c7e9e4dabf b/.tmp-check-windows/debug/build/ring-5b2375c7e9e4dabf/build_script_build-5b2375c7e9e4dabf new file mode 100755 index 000000000..29ebdcac0 Binary files /dev/null and b/.tmp-check-windows/debug/build/ring-5b2375c7e9e4dabf/build_script_build-5b2375c7e9e4dabf differ diff --git a/.tmp-check-windows/debug/build/ring-5b2375c7e9e4dabf/build_script_build-5b2375c7e9e4dabf.build_script_build.a4aa1a7e5ff6eb67-cgu.0.rcgu.o b/.tmp-check-windows/debug/build/ring-5b2375c7e9e4dabf/build_script_build-5b2375c7e9e4dabf.build_script_build.a4aa1a7e5ff6eb67-cgu.0.rcgu.o new file mode 100644 index 000000000..10ec20a84 Binary files /dev/null and b/.tmp-check-windows/debug/build/ring-5b2375c7e9e4dabf/build_script_build-5b2375c7e9e4dabf.build_script_build.a4aa1a7e5ff6eb67-cgu.0.rcgu.o differ diff --git a/.tmp-check-windows/debug/build/ring-5b2375c7e9e4dabf/build_script_build-5b2375c7e9e4dabf.build_script_build.a4aa1a7e5ff6eb67-cgu.1.rcgu.o b/.tmp-check-windows/debug/build/ring-5b2375c7e9e4dabf/build_script_build-5b2375c7e9e4dabf.build_script_build.a4aa1a7e5ff6eb67-cgu.1.rcgu.o new file mode 100644 index 000000000..548a87e92 Binary files /dev/null and b/.tmp-check-windows/debug/build/ring-5b2375c7e9e4dabf/build_script_build-5b2375c7e9e4dabf.build_script_build.a4aa1a7e5ff6eb67-cgu.1.rcgu.o differ diff --git a/.tmp-check-windows/debug/build/ring-5b2375c7e9e4dabf/build_script_build-5b2375c7e9e4dabf.build_script_build.a4aa1a7e5ff6eb67-cgu.2.rcgu.o b/.tmp-check-windows/debug/build/ring-5b2375c7e9e4dabf/build_script_build-5b2375c7e9e4dabf.build_script_build.a4aa1a7e5ff6eb67-cgu.2.rcgu.o new file mode 100644 index 000000000..620ec2f6f Binary files /dev/null and b/.tmp-check-windows/debug/build/ring-5b2375c7e9e4dabf/build_script_build-5b2375c7e9e4dabf.build_script_build.a4aa1a7e5ff6eb67-cgu.2.rcgu.o differ diff --git a/.tmp-check-windows/debug/build/ring-5b2375c7e9e4dabf/build_script_build-5b2375c7e9e4dabf.build_script_build.a4aa1a7e5ff6eb67-cgu.3.rcgu.o b/.tmp-check-windows/debug/build/ring-5b2375c7e9e4dabf/build_script_build-5b2375c7e9e4dabf.build_script_build.a4aa1a7e5ff6eb67-cgu.3.rcgu.o new file mode 100644 index 000000000..ed9274a1b Binary files /dev/null and b/.tmp-check-windows/debug/build/ring-5b2375c7e9e4dabf/build_script_build-5b2375c7e9e4dabf.build_script_build.a4aa1a7e5ff6eb67-cgu.3.rcgu.o differ diff --git a/.tmp-check-windows/debug/build/ring-5b2375c7e9e4dabf/build_script_build-5b2375c7e9e4dabf.build_script_build.a4aa1a7e5ff6eb67-cgu.4.rcgu.o b/.tmp-check-windows/debug/build/ring-5b2375c7e9e4dabf/build_script_build-5b2375c7e9e4dabf.build_script_build.a4aa1a7e5ff6eb67-cgu.4.rcgu.o new file mode 100644 index 000000000..b25027b3a Binary files /dev/null and b/.tmp-check-windows/debug/build/ring-5b2375c7e9e4dabf/build_script_build-5b2375c7e9e4dabf.build_script_build.a4aa1a7e5ff6eb67-cgu.4.rcgu.o differ diff --git a/.tmp-check-windows/debug/build/ring-5b2375c7e9e4dabf/build_script_build-5b2375c7e9e4dabf.d b/.tmp-check-windows/debug/build/ring-5b2375c7e9e4dabf/build_script_build-5b2375c7e9e4dabf.d new file mode 100644 index 000000000..883674b6c --- /dev/null +++ b/.tmp-check-windows/debug/build/ring-5b2375c7e9e4dabf/build_script_build-5b2375c7e9e4dabf.d @@ -0,0 +1,5 @@ +/Users/coso/Documents/dev/ai/aiclientproxy/lime/.tmp-check-windows/debug/build/ring-5b2375c7e9e4dabf/build_script_build-5b2375c7e9e4dabf.d: /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/ring-0.17.14/build.rs + +/Users/coso/Documents/dev/ai/aiclientproxy/lime/.tmp-check-windows/debug/build/ring-5b2375c7e9e4dabf/build_script_build-5b2375c7e9e4dabf: /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/ring-0.17.14/build.rs + +/Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/ring-0.17.14/build.rs: diff --git a/.tmp-check-windows/debug/build/serde-13ee3669d1da3588/build-script-build b/.tmp-check-windows/debug/build/serde-13ee3669d1da3588/build-script-build new file mode 100755 index 000000000..2dfd33c57 Binary files /dev/null and b/.tmp-check-windows/debug/build/serde-13ee3669d1da3588/build-script-build differ diff --git a/.tmp-check-windows/debug/build/serde-13ee3669d1da3588/build_script_build-13ee3669d1da3588 b/.tmp-check-windows/debug/build/serde-13ee3669d1da3588/build_script_build-13ee3669d1da3588 new file mode 100755 index 000000000..2dfd33c57 Binary files /dev/null and b/.tmp-check-windows/debug/build/serde-13ee3669d1da3588/build_script_build-13ee3669d1da3588 differ diff --git a/.tmp-check-windows/debug/build/serde-13ee3669d1da3588/build_script_build-13ee3669d1da3588.build_script_build.44eee517b6129e92-cgu.0.rcgu.o b/.tmp-check-windows/debug/build/serde-13ee3669d1da3588/build_script_build-13ee3669d1da3588.build_script_build.44eee517b6129e92-cgu.0.rcgu.o new file mode 100644 index 000000000..76456e530 Binary files /dev/null and b/.tmp-check-windows/debug/build/serde-13ee3669d1da3588/build_script_build-13ee3669d1da3588.build_script_build.44eee517b6129e92-cgu.0.rcgu.o differ diff --git a/.tmp-check-windows/debug/build/serde-13ee3669d1da3588/build_script_build-13ee3669d1da3588.build_script_build.44eee517b6129e92-cgu.1.rcgu.o b/.tmp-check-windows/debug/build/serde-13ee3669d1da3588/build_script_build-13ee3669d1da3588.build_script_build.44eee517b6129e92-cgu.1.rcgu.o new file mode 100644 index 000000000..4a327d5e4 Binary files /dev/null and b/.tmp-check-windows/debug/build/serde-13ee3669d1da3588/build_script_build-13ee3669d1da3588.build_script_build.44eee517b6129e92-cgu.1.rcgu.o differ diff --git a/.tmp-check-windows/debug/build/serde-13ee3669d1da3588/build_script_build-13ee3669d1da3588.d b/.tmp-check-windows/debug/build/serde-13ee3669d1da3588/build_script_build-13ee3669d1da3588.d new file mode 100644 index 000000000..8bad07a7e --- /dev/null +++ b/.tmp-check-windows/debug/build/serde-13ee3669d1da3588/build_script_build-13ee3669d1da3588.d @@ -0,0 +1,5 @@ +/Users/coso/Documents/dev/ai/aiclientproxy/lime/.tmp-check-windows/debug/build/serde-13ee3669d1da3588/build_script_build-13ee3669d1da3588.d: /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/serde-1.0.228/build.rs + +/Users/coso/Documents/dev/ai/aiclientproxy/lime/.tmp-check-windows/debug/build/serde-13ee3669d1da3588/build_script_build-13ee3669d1da3588: /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/serde-1.0.228/build.rs + +/Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/serde-1.0.228/build.rs: diff --git a/.tmp-check-windows/debug/build/serde-c276f5c30ba9f8ca/invoked.timestamp b/.tmp-check-windows/debug/build/serde-c276f5c30ba9f8ca/invoked.timestamp new file mode 100644 index 000000000..e00328da5 --- /dev/null +++ b/.tmp-check-windows/debug/build/serde-c276f5c30ba9f8ca/invoked.timestamp @@ -0,0 +1 @@ +This file has an mtime of when this was started. \ No newline at end of file diff --git a/.tmp-check-windows/debug/build/serde-c276f5c30ba9f8ca/out/private.rs b/.tmp-check-windows/debug/build/serde-c276f5c30ba9f8ca/out/private.rs new file mode 100644 index 000000000..ed2927ea1 --- /dev/null +++ b/.tmp-check-windows/debug/build/serde-c276f5c30ba9f8ca/out/private.rs @@ -0,0 +1,6 @@ +#[doc(hidden)] +pub mod __private228 { + #[doc(hidden)] + pub use crate::private::*; +} +use serde_core::__private228 as serde_core_private; diff --git a/.tmp-check-windows/debug/build/serde-c276f5c30ba9f8ca/output b/.tmp-check-windows/debug/build/serde-c276f5c30ba9f8ca/output new file mode 100644 index 000000000..854cb5387 --- /dev/null +++ b/.tmp-check-windows/debug/build/serde-c276f5c30ba9f8ca/output @@ -0,0 +1,13 @@ +cargo:rerun-if-changed=build.rs +cargo:rustc-cfg=if_docsrs_then_no_serde_core +cargo:rustc-check-cfg=cfg(feature, values("result")) +cargo:rustc-check-cfg=cfg(if_docsrs_then_no_serde_core) +cargo:rustc-check-cfg=cfg(no_core_cstr) +cargo:rustc-check-cfg=cfg(no_core_error) +cargo:rustc-check-cfg=cfg(no_core_net) +cargo:rustc-check-cfg=cfg(no_core_num_saturating) +cargo:rustc-check-cfg=cfg(no_diagnostic_namespace) +cargo:rustc-check-cfg=cfg(no_serde_derive) +cargo:rustc-check-cfg=cfg(no_std_atomic) +cargo:rustc-check-cfg=cfg(no_std_atomic64) +cargo:rustc-check-cfg=cfg(no_target_has_atomic) diff --git a/.tmp-check-windows/debug/build/serde-c276f5c30ba9f8ca/root-output b/.tmp-check-windows/debug/build/serde-c276f5c30ba9f8ca/root-output new file mode 100644 index 000000000..e48d5dd7d --- /dev/null +++ b/.tmp-check-windows/debug/build/serde-c276f5c30ba9f8ca/root-output @@ -0,0 +1 @@ +/Users/coso/Documents/dev/ai/aiclientproxy/lime/.tmp-check-windows/debug/build/serde-c276f5c30ba9f8ca/out \ No newline at end of file diff --git a/.tmp-check-windows/debug/build/serde-c276f5c30ba9f8ca/stderr b/.tmp-check-windows/debug/build/serde-c276f5c30ba9f8ca/stderr new file mode 100644 index 000000000..e69de29bb diff --git a/.tmp-check-windows/debug/build/serde_core-30a846274c034237/build-script-build b/.tmp-check-windows/debug/build/serde_core-30a846274c034237/build-script-build new file mode 100755 index 000000000..6cdde385d Binary files /dev/null and b/.tmp-check-windows/debug/build/serde_core-30a846274c034237/build-script-build differ diff --git a/.tmp-check-windows/debug/build/serde_core-30a846274c034237/build_script_build-30a846274c034237 b/.tmp-check-windows/debug/build/serde_core-30a846274c034237/build_script_build-30a846274c034237 new file mode 100755 index 000000000..6cdde385d Binary files /dev/null and b/.tmp-check-windows/debug/build/serde_core-30a846274c034237/build_script_build-30a846274c034237 differ diff --git a/.tmp-check-windows/debug/build/serde_core-30a846274c034237/build_script_build-30a846274c034237.build_script_build.f26fad5dfde9483b-cgu.0.rcgu.o b/.tmp-check-windows/debug/build/serde_core-30a846274c034237/build_script_build-30a846274c034237.build_script_build.f26fad5dfde9483b-cgu.0.rcgu.o new file mode 100644 index 000000000..c9446f260 Binary files /dev/null and b/.tmp-check-windows/debug/build/serde_core-30a846274c034237/build_script_build-30a846274c034237.build_script_build.f26fad5dfde9483b-cgu.0.rcgu.o differ diff --git a/.tmp-check-windows/debug/build/serde_core-30a846274c034237/build_script_build-30a846274c034237.build_script_build.f26fad5dfde9483b-cgu.1.rcgu.o b/.tmp-check-windows/debug/build/serde_core-30a846274c034237/build_script_build-30a846274c034237.build_script_build.f26fad5dfde9483b-cgu.1.rcgu.o new file mode 100644 index 000000000..f7785207d Binary files /dev/null and b/.tmp-check-windows/debug/build/serde_core-30a846274c034237/build_script_build-30a846274c034237.build_script_build.f26fad5dfde9483b-cgu.1.rcgu.o differ diff --git a/.tmp-check-windows/debug/build/serde_core-30a846274c034237/build_script_build-30a846274c034237.d b/.tmp-check-windows/debug/build/serde_core-30a846274c034237/build_script_build-30a846274c034237.d new file mode 100644 index 000000000..52c3d28f1 --- /dev/null +++ b/.tmp-check-windows/debug/build/serde_core-30a846274c034237/build_script_build-30a846274c034237.d @@ -0,0 +1,5 @@ +/Users/coso/Documents/dev/ai/aiclientproxy/lime/.tmp-check-windows/debug/build/serde_core-30a846274c034237/build_script_build-30a846274c034237.d: /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/serde_core-1.0.228/build.rs + +/Users/coso/Documents/dev/ai/aiclientproxy/lime/.tmp-check-windows/debug/build/serde_core-30a846274c034237/build_script_build-30a846274c034237: /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/serde_core-1.0.228/build.rs + +/Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/serde_core-1.0.228/build.rs: diff --git a/.tmp-check-windows/debug/build/serde_core-c794bec5d8a19735/invoked.timestamp b/.tmp-check-windows/debug/build/serde_core-c794bec5d8a19735/invoked.timestamp new file mode 100644 index 000000000..e00328da5 --- /dev/null +++ b/.tmp-check-windows/debug/build/serde_core-c794bec5d8a19735/invoked.timestamp @@ -0,0 +1 @@ +This file has an mtime of when this was started. \ No newline at end of file diff --git a/.tmp-check-windows/debug/build/serde_core-c794bec5d8a19735/out/private.rs b/.tmp-check-windows/debug/build/serde_core-c794bec5d8a19735/out/private.rs new file mode 100644 index 000000000..08f232bbd --- /dev/null +++ b/.tmp-check-windows/debug/build/serde_core-c794bec5d8a19735/out/private.rs @@ -0,0 +1,5 @@ +#[doc(hidden)] +pub mod __private228 { + #[doc(hidden)] + pub use crate::private::*; +} diff --git a/.tmp-check-windows/debug/build/serde_core-c794bec5d8a19735/output b/.tmp-check-windows/debug/build/serde_core-c794bec5d8a19735/output new file mode 100644 index 000000000..98a6653d1 --- /dev/null +++ b/.tmp-check-windows/debug/build/serde_core-c794bec5d8a19735/output @@ -0,0 +1,11 @@ +cargo:rerun-if-changed=build.rs +cargo:rustc-check-cfg=cfg(if_docsrs_then_no_serde_core) +cargo:rustc-check-cfg=cfg(no_core_cstr) +cargo:rustc-check-cfg=cfg(no_core_error) +cargo:rustc-check-cfg=cfg(no_core_net) +cargo:rustc-check-cfg=cfg(no_core_num_saturating) +cargo:rustc-check-cfg=cfg(no_diagnostic_namespace) +cargo:rustc-check-cfg=cfg(no_serde_derive) +cargo:rustc-check-cfg=cfg(no_std_atomic) +cargo:rustc-check-cfg=cfg(no_std_atomic64) +cargo:rustc-check-cfg=cfg(no_target_has_atomic) diff --git a/.tmp-check-windows/debug/build/serde_core-c794bec5d8a19735/root-output b/.tmp-check-windows/debug/build/serde_core-c794bec5d8a19735/root-output new file mode 100644 index 000000000..9c82eb59d --- /dev/null +++ b/.tmp-check-windows/debug/build/serde_core-c794bec5d8a19735/root-output @@ -0,0 +1 @@ +/Users/coso/Documents/dev/ai/aiclientproxy/lime/.tmp-check-windows/debug/build/serde_core-c794bec5d8a19735/out \ No newline at end of file diff --git a/.tmp-check-windows/debug/build/serde_core-c794bec5d8a19735/stderr b/.tmp-check-windows/debug/build/serde_core-c794bec5d8a19735/stderr new file mode 100644 index 000000000..e69de29bb diff --git a/.tmp-check-windows/debug/build/serde_json-3b90b44da97b9d90/build-script-build b/.tmp-check-windows/debug/build/serde_json-3b90b44da97b9d90/build-script-build new file mode 100755 index 000000000..be788a790 Binary files /dev/null and b/.tmp-check-windows/debug/build/serde_json-3b90b44da97b9d90/build-script-build differ diff --git a/.tmp-check-windows/debug/build/serde_json-3b90b44da97b9d90/build_script_build-3b90b44da97b9d90 b/.tmp-check-windows/debug/build/serde_json-3b90b44da97b9d90/build_script_build-3b90b44da97b9d90 new file mode 100755 index 000000000..be788a790 Binary files /dev/null and b/.tmp-check-windows/debug/build/serde_json-3b90b44da97b9d90/build_script_build-3b90b44da97b9d90 differ diff --git a/.tmp-check-windows/debug/build/serde_json-3b90b44da97b9d90/build_script_build-3b90b44da97b9d90.build_script_build.67ae91011409bca8-cgu.0.rcgu.o b/.tmp-check-windows/debug/build/serde_json-3b90b44da97b9d90/build_script_build-3b90b44da97b9d90.build_script_build.67ae91011409bca8-cgu.0.rcgu.o new file mode 100644 index 000000000..de0aaa135 Binary files /dev/null and b/.tmp-check-windows/debug/build/serde_json-3b90b44da97b9d90/build_script_build-3b90b44da97b9d90.build_script_build.67ae91011409bca8-cgu.0.rcgu.o differ diff --git a/.tmp-check-windows/debug/build/serde_json-3b90b44da97b9d90/build_script_build-3b90b44da97b9d90.d b/.tmp-check-windows/debug/build/serde_json-3b90b44da97b9d90/build_script_build-3b90b44da97b9d90.d new file mode 100644 index 000000000..e67a06451 --- /dev/null +++ b/.tmp-check-windows/debug/build/serde_json-3b90b44da97b9d90/build_script_build-3b90b44da97b9d90.d @@ -0,0 +1,5 @@ +/Users/coso/Documents/dev/ai/aiclientproxy/lime/.tmp-check-windows/debug/build/serde_json-3b90b44da97b9d90/build_script_build-3b90b44da97b9d90.d: /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/serde_json-1.0.149/build.rs + +/Users/coso/Documents/dev/ai/aiclientproxy/lime/.tmp-check-windows/debug/build/serde_json-3b90b44da97b9d90/build_script_build-3b90b44da97b9d90: /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/serde_json-1.0.149/build.rs + +/Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/serde_json-1.0.149/build.rs: diff --git a/.tmp-check-windows/debug/build/serde_json-48b98585285cf825/invoked.timestamp b/.tmp-check-windows/debug/build/serde_json-48b98585285cf825/invoked.timestamp new file mode 100644 index 000000000..e00328da5 --- /dev/null +++ b/.tmp-check-windows/debug/build/serde_json-48b98585285cf825/invoked.timestamp @@ -0,0 +1 @@ +This file has an mtime of when this was started. \ No newline at end of file diff --git a/.tmp-check-windows/debug/build/serde_json-48b98585285cf825/output b/.tmp-check-windows/debug/build/serde_json-48b98585285cf825/output new file mode 100644 index 000000000..32010770d --- /dev/null +++ b/.tmp-check-windows/debug/build/serde_json-48b98585285cf825/output @@ -0,0 +1,3 @@ +cargo:rerun-if-changed=build.rs +cargo:rustc-check-cfg=cfg(fast_arithmetic, values("32", "64")) +cargo:rustc-cfg=fast_arithmetic="64" diff --git a/.tmp-check-windows/debug/build/serde_json-48b98585285cf825/root-output b/.tmp-check-windows/debug/build/serde_json-48b98585285cf825/root-output new file mode 100644 index 000000000..bfb257e61 --- /dev/null +++ b/.tmp-check-windows/debug/build/serde_json-48b98585285cf825/root-output @@ -0,0 +1 @@ +/Users/coso/Documents/dev/ai/aiclientproxy/lime/.tmp-check-windows/debug/build/serde_json-48b98585285cf825/out \ No newline at end of file diff --git a/.tmp-check-windows/debug/build/serde_json-48b98585285cf825/stderr b/.tmp-check-windows/debug/build/serde_json-48b98585285cf825/stderr new file mode 100644 index 000000000..e69de29bb diff --git a/.tmp-check-windows/debug/build/serde_json-490286e15e730fa6/build-script-build b/.tmp-check-windows/debug/build/serde_json-490286e15e730fa6/build-script-build new file mode 100755 index 000000000..4b320e318 Binary files /dev/null and b/.tmp-check-windows/debug/build/serde_json-490286e15e730fa6/build-script-build differ diff --git a/.tmp-check-windows/debug/build/serde_json-490286e15e730fa6/build_script_build-490286e15e730fa6 b/.tmp-check-windows/debug/build/serde_json-490286e15e730fa6/build_script_build-490286e15e730fa6 new file mode 100755 index 000000000..4b320e318 Binary files /dev/null and b/.tmp-check-windows/debug/build/serde_json-490286e15e730fa6/build_script_build-490286e15e730fa6 differ diff --git a/.tmp-check-windows/debug/build/serde_json-490286e15e730fa6/build_script_build-490286e15e730fa6.build_script_build.35298861f33551e9-cgu.0.rcgu.o b/.tmp-check-windows/debug/build/serde_json-490286e15e730fa6/build_script_build-490286e15e730fa6.build_script_build.35298861f33551e9-cgu.0.rcgu.o new file mode 100644 index 000000000..178386361 Binary files /dev/null and b/.tmp-check-windows/debug/build/serde_json-490286e15e730fa6/build_script_build-490286e15e730fa6.build_script_build.35298861f33551e9-cgu.0.rcgu.o differ diff --git a/.tmp-check-windows/debug/build/serde_json-490286e15e730fa6/build_script_build-490286e15e730fa6.d b/.tmp-check-windows/debug/build/serde_json-490286e15e730fa6/build_script_build-490286e15e730fa6.d new file mode 100644 index 000000000..21b413385 --- /dev/null +++ b/.tmp-check-windows/debug/build/serde_json-490286e15e730fa6/build_script_build-490286e15e730fa6.d @@ -0,0 +1,5 @@ +/Users/coso/Documents/dev/ai/aiclientproxy/lime/.tmp-check-windows/debug/build/serde_json-490286e15e730fa6/build_script_build-490286e15e730fa6.d: /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/serde_json-1.0.149/build.rs + +/Users/coso/Documents/dev/ai/aiclientproxy/lime/.tmp-check-windows/debug/build/serde_json-490286e15e730fa6/build_script_build-490286e15e730fa6: /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/serde_json-1.0.149/build.rs + +/Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/serde_json-1.0.149/build.rs: diff --git a/.tmp-check-windows/debug/build/syn-1436ae3860e218e7/build-script-build b/.tmp-check-windows/debug/build/syn-1436ae3860e218e7/build-script-build new file mode 100755 index 000000000..991d95bb0 Binary files /dev/null and b/.tmp-check-windows/debug/build/syn-1436ae3860e218e7/build-script-build differ diff --git a/.tmp-check-windows/debug/build/syn-1436ae3860e218e7/build_script_build-1436ae3860e218e7 b/.tmp-check-windows/debug/build/syn-1436ae3860e218e7/build_script_build-1436ae3860e218e7 new file mode 100755 index 000000000..991d95bb0 Binary files /dev/null and b/.tmp-check-windows/debug/build/syn-1436ae3860e218e7/build_script_build-1436ae3860e218e7 differ diff --git a/.tmp-check-windows/debug/build/syn-1436ae3860e218e7/build_script_build-1436ae3860e218e7.build_script_build.2dbf28ea1d9ca01a-cgu.0.rcgu.o b/.tmp-check-windows/debug/build/syn-1436ae3860e218e7/build_script_build-1436ae3860e218e7.build_script_build.2dbf28ea1d9ca01a-cgu.0.rcgu.o new file mode 100644 index 000000000..5508354bc Binary files /dev/null and b/.tmp-check-windows/debug/build/syn-1436ae3860e218e7/build_script_build-1436ae3860e218e7.build_script_build.2dbf28ea1d9ca01a-cgu.0.rcgu.o differ diff --git a/.tmp-check-windows/debug/build/syn-1436ae3860e218e7/build_script_build-1436ae3860e218e7.build_script_build.2dbf28ea1d9ca01a-cgu.1.rcgu.o b/.tmp-check-windows/debug/build/syn-1436ae3860e218e7/build_script_build-1436ae3860e218e7.build_script_build.2dbf28ea1d9ca01a-cgu.1.rcgu.o new file mode 100644 index 000000000..7aa8fa168 Binary files /dev/null and b/.tmp-check-windows/debug/build/syn-1436ae3860e218e7/build_script_build-1436ae3860e218e7.build_script_build.2dbf28ea1d9ca01a-cgu.1.rcgu.o differ diff --git a/.tmp-check-windows/debug/build/syn-1436ae3860e218e7/build_script_build-1436ae3860e218e7.d b/.tmp-check-windows/debug/build/syn-1436ae3860e218e7/build_script_build-1436ae3860e218e7.d new file mode 100644 index 000000000..597fa20f4 --- /dev/null +++ b/.tmp-check-windows/debug/build/syn-1436ae3860e218e7/build_script_build-1436ae3860e218e7.d @@ -0,0 +1,5 @@ +/Users/coso/Documents/dev/ai/aiclientproxy/lime/.tmp-check-windows/debug/build/syn-1436ae3860e218e7/build_script_build-1436ae3860e218e7.d: /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/syn-1.0.109/build.rs + +/Users/coso/Documents/dev/ai/aiclientproxy/lime/.tmp-check-windows/debug/build/syn-1436ae3860e218e7/build_script_build-1436ae3860e218e7: /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/syn-1.0.109/build.rs + +/Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/syn-1.0.109/build.rs: diff --git a/.tmp-check-windows/debug/build/syn-4ab2b9632b5fdaf5/invoked.timestamp b/.tmp-check-windows/debug/build/syn-4ab2b9632b5fdaf5/invoked.timestamp new file mode 100644 index 000000000..e00328da5 --- /dev/null +++ b/.tmp-check-windows/debug/build/syn-4ab2b9632b5fdaf5/invoked.timestamp @@ -0,0 +1 @@ +This file has an mtime of when this was started. \ No newline at end of file diff --git a/.tmp-check-windows/debug/build/syn-4ab2b9632b5fdaf5/output b/.tmp-check-windows/debug/build/syn-4ab2b9632b5fdaf5/output new file mode 100644 index 000000000..614b94855 --- /dev/null +++ b/.tmp-check-windows/debug/build/syn-4ab2b9632b5fdaf5/output @@ -0,0 +1 @@ +cargo:rustc-cfg=syn_disable_nightly_tests diff --git a/.tmp-check-windows/debug/build/syn-4ab2b9632b5fdaf5/root-output b/.tmp-check-windows/debug/build/syn-4ab2b9632b5fdaf5/root-output new file mode 100644 index 000000000..9b2daef1d --- /dev/null +++ b/.tmp-check-windows/debug/build/syn-4ab2b9632b5fdaf5/root-output @@ -0,0 +1 @@ +/Users/coso/Documents/dev/ai/aiclientproxy/lime/.tmp-check-windows/debug/build/syn-4ab2b9632b5fdaf5/out \ No newline at end of file diff --git a/.tmp-check-windows/debug/build/syn-4ab2b9632b5fdaf5/stderr b/.tmp-check-windows/debug/build/syn-4ab2b9632b5fdaf5/stderr new file mode 100644 index 000000000..e69de29bb diff --git a/.tmp-check-windows/debug/build/thiserror-3a13fe7bd6af16a6/build-script-build b/.tmp-check-windows/debug/build/thiserror-3a13fe7bd6af16a6/build-script-build new file mode 100755 index 000000000..43b8b7d4c Binary files /dev/null and b/.tmp-check-windows/debug/build/thiserror-3a13fe7bd6af16a6/build-script-build differ diff --git a/.tmp-check-windows/debug/build/thiserror-3a13fe7bd6af16a6/build_script_build-3a13fe7bd6af16a6 b/.tmp-check-windows/debug/build/thiserror-3a13fe7bd6af16a6/build_script_build-3a13fe7bd6af16a6 new file mode 100755 index 000000000..43b8b7d4c Binary files /dev/null and b/.tmp-check-windows/debug/build/thiserror-3a13fe7bd6af16a6/build_script_build-3a13fe7bd6af16a6 differ diff --git a/.tmp-check-windows/debug/build/thiserror-3a13fe7bd6af16a6/build_script_build-3a13fe7bd6af16a6.build_script_build.cccb04bb3728e1b1-cgu.0.rcgu.o b/.tmp-check-windows/debug/build/thiserror-3a13fe7bd6af16a6/build_script_build-3a13fe7bd6af16a6.build_script_build.cccb04bb3728e1b1-cgu.0.rcgu.o new file mode 100644 index 000000000..d81ac043a Binary files /dev/null and b/.tmp-check-windows/debug/build/thiserror-3a13fe7bd6af16a6/build_script_build-3a13fe7bd6af16a6.build_script_build.cccb04bb3728e1b1-cgu.0.rcgu.o differ diff --git a/.tmp-check-windows/debug/build/thiserror-3a13fe7bd6af16a6/build_script_build-3a13fe7bd6af16a6.build_script_build.cccb04bb3728e1b1-cgu.1.rcgu.o b/.tmp-check-windows/debug/build/thiserror-3a13fe7bd6af16a6/build_script_build-3a13fe7bd6af16a6.build_script_build.cccb04bb3728e1b1-cgu.1.rcgu.o new file mode 100644 index 000000000..6d41cc02b Binary files /dev/null and b/.tmp-check-windows/debug/build/thiserror-3a13fe7bd6af16a6/build_script_build-3a13fe7bd6af16a6.build_script_build.cccb04bb3728e1b1-cgu.1.rcgu.o differ diff --git a/.tmp-check-windows/debug/build/thiserror-3a13fe7bd6af16a6/build_script_build-3a13fe7bd6af16a6.d b/.tmp-check-windows/debug/build/thiserror-3a13fe7bd6af16a6/build_script_build-3a13fe7bd6af16a6.d new file mode 100644 index 000000000..3493a343d --- /dev/null +++ b/.tmp-check-windows/debug/build/thiserror-3a13fe7bd6af16a6/build_script_build-3a13fe7bd6af16a6.d @@ -0,0 +1,5 @@ +/Users/coso/Documents/dev/ai/aiclientproxy/lime/.tmp-check-windows/debug/build/thiserror-3a13fe7bd6af16a6/build_script_build-3a13fe7bd6af16a6.d: /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/thiserror-2.0.18/build.rs + +/Users/coso/Documents/dev/ai/aiclientproxy/lime/.tmp-check-windows/debug/build/thiserror-3a13fe7bd6af16a6/build_script_build-3a13fe7bd6af16a6: /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/thiserror-2.0.18/build.rs + +/Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/thiserror-2.0.18/build.rs: diff --git a/.tmp-check-windows/debug/build/thiserror-bdad7868d0257c89/build-script-build b/.tmp-check-windows/debug/build/thiserror-bdad7868d0257c89/build-script-build new file mode 100755 index 000000000..da6f69397 Binary files /dev/null and b/.tmp-check-windows/debug/build/thiserror-bdad7868d0257c89/build-script-build differ diff --git a/.tmp-check-windows/debug/build/thiserror-bdad7868d0257c89/build_script_build-bdad7868d0257c89 b/.tmp-check-windows/debug/build/thiserror-bdad7868d0257c89/build_script_build-bdad7868d0257c89 new file mode 100755 index 000000000..da6f69397 Binary files /dev/null and b/.tmp-check-windows/debug/build/thiserror-bdad7868d0257c89/build_script_build-bdad7868d0257c89 differ diff --git a/.tmp-check-windows/debug/build/thiserror-bdad7868d0257c89/build_script_build-bdad7868d0257c89.build_script_build.9dca3337933883e1-cgu.0.rcgu.o b/.tmp-check-windows/debug/build/thiserror-bdad7868d0257c89/build_script_build-bdad7868d0257c89.build_script_build.9dca3337933883e1-cgu.0.rcgu.o new file mode 100644 index 000000000..7d2580dbd Binary files /dev/null and b/.tmp-check-windows/debug/build/thiserror-bdad7868d0257c89/build_script_build-bdad7868d0257c89.build_script_build.9dca3337933883e1-cgu.0.rcgu.o differ diff --git a/.tmp-check-windows/debug/build/thiserror-bdad7868d0257c89/build_script_build-bdad7868d0257c89.build_script_build.9dca3337933883e1-cgu.1.rcgu.o b/.tmp-check-windows/debug/build/thiserror-bdad7868d0257c89/build_script_build-bdad7868d0257c89.build_script_build.9dca3337933883e1-cgu.1.rcgu.o new file mode 100644 index 000000000..01e2ba11a Binary files /dev/null and b/.tmp-check-windows/debug/build/thiserror-bdad7868d0257c89/build_script_build-bdad7868d0257c89.build_script_build.9dca3337933883e1-cgu.1.rcgu.o differ diff --git a/.tmp-check-windows/debug/build/thiserror-bdad7868d0257c89/build_script_build-bdad7868d0257c89.d b/.tmp-check-windows/debug/build/thiserror-bdad7868d0257c89/build_script_build-bdad7868d0257c89.d new file mode 100644 index 000000000..03d52c339 --- /dev/null +++ b/.tmp-check-windows/debug/build/thiserror-bdad7868d0257c89/build_script_build-bdad7868d0257c89.d @@ -0,0 +1,5 @@ +/Users/coso/Documents/dev/ai/aiclientproxy/lime/.tmp-check-windows/debug/build/thiserror-bdad7868d0257c89/build_script_build-bdad7868d0257c89.d: /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/thiserror-1.0.69/build.rs + +/Users/coso/Documents/dev/ai/aiclientproxy/lime/.tmp-check-windows/debug/build/thiserror-bdad7868d0257c89/build_script_build-bdad7868d0257c89: /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/thiserror-1.0.69/build.rs + +/Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/thiserror-1.0.69/build.rs: diff --git a/.tmp-check-windows/debug/build/typenum-8b92c0cdb47cfa5e/build-script-build b/.tmp-check-windows/debug/build/typenum-8b92c0cdb47cfa5e/build-script-build new file mode 100755 index 000000000..8ea21791d Binary files /dev/null and b/.tmp-check-windows/debug/build/typenum-8b92c0cdb47cfa5e/build-script-build differ diff --git a/.tmp-check-windows/debug/build/typenum-8b92c0cdb47cfa5e/build_script_build-8b92c0cdb47cfa5e b/.tmp-check-windows/debug/build/typenum-8b92c0cdb47cfa5e/build_script_build-8b92c0cdb47cfa5e new file mode 100755 index 000000000..8ea21791d Binary files /dev/null and b/.tmp-check-windows/debug/build/typenum-8b92c0cdb47cfa5e/build_script_build-8b92c0cdb47cfa5e differ diff --git a/.tmp-check-windows/debug/build/typenum-8b92c0cdb47cfa5e/build_script_build-8b92c0cdb47cfa5e.build_script_build.355c4f6473f3d259-cgu.0.rcgu.o b/.tmp-check-windows/debug/build/typenum-8b92c0cdb47cfa5e/build_script_build-8b92c0cdb47cfa5e.build_script_build.355c4f6473f3d259-cgu.0.rcgu.o new file mode 100644 index 000000000..df8e22d85 Binary files /dev/null and b/.tmp-check-windows/debug/build/typenum-8b92c0cdb47cfa5e/build_script_build-8b92c0cdb47cfa5e.build_script_build.355c4f6473f3d259-cgu.0.rcgu.o differ diff --git a/.tmp-check-windows/debug/build/typenum-8b92c0cdb47cfa5e/build_script_build-8b92c0cdb47cfa5e.build_script_build.355c4f6473f3d259-cgu.1.rcgu.o b/.tmp-check-windows/debug/build/typenum-8b92c0cdb47cfa5e/build_script_build-8b92c0cdb47cfa5e.build_script_build.355c4f6473f3d259-cgu.1.rcgu.o new file mode 100644 index 000000000..0cedcd404 Binary files /dev/null and b/.tmp-check-windows/debug/build/typenum-8b92c0cdb47cfa5e/build_script_build-8b92c0cdb47cfa5e.build_script_build.355c4f6473f3d259-cgu.1.rcgu.o differ diff --git a/.tmp-check-windows/debug/build/typenum-8b92c0cdb47cfa5e/build_script_build-8b92c0cdb47cfa5e.d b/.tmp-check-windows/debug/build/typenum-8b92c0cdb47cfa5e/build_script_build-8b92c0cdb47cfa5e.d new file mode 100644 index 000000000..a7a62b825 --- /dev/null +++ b/.tmp-check-windows/debug/build/typenum-8b92c0cdb47cfa5e/build_script_build-8b92c0cdb47cfa5e.d @@ -0,0 +1,5 @@ +/Users/coso/Documents/dev/ai/aiclientproxy/lime/.tmp-check-windows/debug/build/typenum-8b92c0cdb47cfa5e/build_script_build-8b92c0cdb47cfa5e.d: /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/typenum-1.19.0/build.rs + +/Users/coso/Documents/dev/ai/aiclientproxy/lime/.tmp-check-windows/debug/build/typenum-8b92c0cdb47cfa5e/build_script_build-8b92c0cdb47cfa5e: /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/typenum-1.19.0/build.rs + +/Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/typenum-1.19.0/build.rs: diff --git a/.tmp-check-windows/debug/build/windows_x86_64_msvc-353dc2fffa32fcef/build-script-build b/.tmp-check-windows/debug/build/windows_x86_64_msvc-353dc2fffa32fcef/build-script-build new file mode 100755 index 000000000..daebaae8f Binary files /dev/null and b/.tmp-check-windows/debug/build/windows_x86_64_msvc-353dc2fffa32fcef/build-script-build differ diff --git a/.tmp-check-windows/debug/build/windows_x86_64_msvc-353dc2fffa32fcef/build_script_build-353dc2fffa32fcef b/.tmp-check-windows/debug/build/windows_x86_64_msvc-353dc2fffa32fcef/build_script_build-353dc2fffa32fcef new file mode 100755 index 000000000..daebaae8f Binary files /dev/null and b/.tmp-check-windows/debug/build/windows_x86_64_msvc-353dc2fffa32fcef/build_script_build-353dc2fffa32fcef differ diff --git a/.tmp-check-windows/debug/build/windows_x86_64_msvc-353dc2fffa32fcef/build_script_build-353dc2fffa32fcef.build_script_build.36e2be3e0f648c91-cgu.0.rcgu.o b/.tmp-check-windows/debug/build/windows_x86_64_msvc-353dc2fffa32fcef/build_script_build-353dc2fffa32fcef.build_script_build.36e2be3e0f648c91-cgu.0.rcgu.o new file mode 100644 index 000000000..4423e4e57 Binary files /dev/null and b/.tmp-check-windows/debug/build/windows_x86_64_msvc-353dc2fffa32fcef/build_script_build-353dc2fffa32fcef.build_script_build.36e2be3e0f648c91-cgu.0.rcgu.o differ diff --git a/.tmp-check-windows/debug/build/windows_x86_64_msvc-353dc2fffa32fcef/build_script_build-353dc2fffa32fcef.d b/.tmp-check-windows/debug/build/windows_x86_64_msvc-353dc2fffa32fcef/build_script_build-353dc2fffa32fcef.d new file mode 100644 index 000000000..067b36590 --- /dev/null +++ b/.tmp-check-windows/debug/build/windows_x86_64_msvc-353dc2fffa32fcef/build_script_build-353dc2fffa32fcef.d @@ -0,0 +1,5 @@ +/Users/coso/Documents/dev/ai/aiclientproxy/lime/.tmp-check-windows/debug/build/windows_x86_64_msvc-353dc2fffa32fcef/build_script_build-353dc2fffa32fcef.d: /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/windows_x86_64_msvc-0.53.1/build.rs + +/Users/coso/Documents/dev/ai/aiclientproxy/lime/.tmp-check-windows/debug/build/windows_x86_64_msvc-353dc2fffa32fcef/build_script_build-353dc2fffa32fcef: /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/windows_x86_64_msvc-0.53.1/build.rs + +/Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/windows_x86_64_msvc-0.53.1/build.rs: diff --git a/.tmp-check-windows/debug/build/windows_x86_64_msvc-46a1922927989180/build-script-build b/.tmp-check-windows/debug/build/windows_x86_64_msvc-46a1922927989180/build-script-build new file mode 100755 index 000000000..8f6bc2f3b Binary files /dev/null and b/.tmp-check-windows/debug/build/windows_x86_64_msvc-46a1922927989180/build-script-build differ diff --git a/.tmp-check-windows/debug/build/windows_x86_64_msvc-46a1922927989180/build_script_build-46a1922927989180 b/.tmp-check-windows/debug/build/windows_x86_64_msvc-46a1922927989180/build_script_build-46a1922927989180 new file mode 100755 index 000000000..8f6bc2f3b Binary files /dev/null and b/.tmp-check-windows/debug/build/windows_x86_64_msvc-46a1922927989180/build_script_build-46a1922927989180 differ diff --git a/.tmp-check-windows/debug/build/windows_x86_64_msvc-46a1922927989180/build_script_build-46a1922927989180.build_script_build.66a5205ba5ec613a-cgu.0.rcgu.o b/.tmp-check-windows/debug/build/windows_x86_64_msvc-46a1922927989180/build_script_build-46a1922927989180.build_script_build.66a5205ba5ec613a-cgu.0.rcgu.o new file mode 100644 index 000000000..916a8a27b Binary files /dev/null and b/.tmp-check-windows/debug/build/windows_x86_64_msvc-46a1922927989180/build_script_build-46a1922927989180.build_script_build.66a5205ba5ec613a-cgu.0.rcgu.o differ diff --git a/.tmp-check-windows/debug/build/windows_x86_64_msvc-46a1922927989180/build_script_build-46a1922927989180.d b/.tmp-check-windows/debug/build/windows_x86_64_msvc-46a1922927989180/build_script_build-46a1922927989180.d new file mode 100644 index 000000000..76bbc29a7 --- /dev/null +++ b/.tmp-check-windows/debug/build/windows_x86_64_msvc-46a1922927989180/build_script_build-46a1922927989180.d @@ -0,0 +1,5 @@ +/Users/coso/Documents/dev/ai/aiclientproxy/lime/.tmp-check-windows/debug/build/windows_x86_64_msvc-46a1922927989180/build_script_build-46a1922927989180.d: /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/windows_x86_64_msvc-0.52.6/build.rs + +/Users/coso/Documents/dev/ai/aiclientproxy/lime/.tmp-check-windows/debug/build/windows_x86_64_msvc-46a1922927989180/build_script_build-46a1922927989180: /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/windows_x86_64_msvc-0.52.6/build.rs + +/Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/windows_x86_64_msvc-0.52.6/build.rs: diff --git a/.tmp-check-windows/debug/build/zerocopy-69a6142213611a6b/invoked.timestamp b/.tmp-check-windows/debug/build/zerocopy-69a6142213611a6b/invoked.timestamp new file mode 100644 index 000000000..e00328da5 --- /dev/null +++ b/.tmp-check-windows/debug/build/zerocopy-69a6142213611a6b/invoked.timestamp @@ -0,0 +1 @@ +This file has an mtime of when this was started. \ No newline at end of file diff --git a/.tmp-check-windows/debug/build/zerocopy-69a6142213611a6b/output b/.tmp-check-windows/debug/build/zerocopy-69a6142213611a6b/output new file mode 100644 index 000000000..deda5f6ab --- /dev/null +++ b/.tmp-check-windows/debug/build/zerocopy-69a6142213611a6b/output @@ -0,0 +1,21 @@ +cargo:rerun-if-changed=build.rs +cargo:rerun-if-changed=Cargo.toml +cargo:rustc-check-cfg=cfg(no_zerocopy_simd_x86_avx12_1_89_0) +cargo:rustc-check-cfg=cfg(rust, values("1.89.0")) +cargo:rustc-check-cfg=cfg(no_zerocopy_core_error_1_81_0) +cargo:rustc-check-cfg=cfg(rust, values("1.81.0")) +cargo:rustc-check-cfg=cfg(no_zerocopy_diagnostic_on_unimplemented_1_78_0) +cargo:rustc-check-cfg=cfg(rust, values("1.78.0")) +cargo:rustc-check-cfg=cfg(no_zerocopy_generic_bounds_in_const_fn_1_61_0) +cargo:rustc-check-cfg=cfg(rust, values("1.61.0")) +cargo:rustc-check-cfg=cfg(no_zerocopy_target_has_atomics_1_60_0) +cargo:rustc-check-cfg=cfg(rust, values("1.60.0")) +cargo:rustc-check-cfg=cfg(no_zerocopy_aarch64_simd_1_59_0) +cargo:rustc-check-cfg=cfg(rust, values("1.59.0")) +cargo:rustc-check-cfg=cfg(no_zerocopy_panic_in_const_and_vec_try_reserve_1_57_0) +cargo:rustc-check-cfg=cfg(rust, values("1.57.0")) +cargo:rustc-check-cfg=cfg(doc_cfg) +cargo:rustc-check-cfg=cfg(kani) +cargo:rustc-check-cfg=cfg(__ZEROCOPY_INTERNAL_USE_ONLY_NIGHTLY_FEATURES_IN_TESTS) +cargo:rustc-check-cfg=cfg(__ZEROCOPY_INTERNAL_USE_ONLY_DEV_MODE) +cargo:rustc-check-cfg=cfg(coverage_nightly) diff --git a/.tmp-check-windows/debug/build/zerocopy-69a6142213611a6b/root-output b/.tmp-check-windows/debug/build/zerocopy-69a6142213611a6b/root-output new file mode 100644 index 000000000..d781cc713 --- /dev/null +++ b/.tmp-check-windows/debug/build/zerocopy-69a6142213611a6b/root-output @@ -0,0 +1 @@ +/Users/coso/Documents/dev/ai/aiclientproxy/lime/.tmp-check-windows/debug/build/zerocopy-69a6142213611a6b/out \ No newline at end of file diff --git a/.tmp-check-windows/debug/build/zerocopy-69a6142213611a6b/stderr b/.tmp-check-windows/debug/build/zerocopy-69a6142213611a6b/stderr new file mode 100644 index 000000000..e69de29bb diff --git a/.tmp-check-windows/debug/build/zerocopy-b7b1bfb8cf3ce966/build-script-build b/.tmp-check-windows/debug/build/zerocopy-b7b1bfb8cf3ce966/build-script-build new file mode 100755 index 000000000..f878f08a9 Binary files /dev/null and b/.tmp-check-windows/debug/build/zerocopy-b7b1bfb8cf3ce966/build-script-build differ diff --git a/.tmp-check-windows/debug/build/zerocopy-b7b1bfb8cf3ce966/build_script_build-b7b1bfb8cf3ce966 b/.tmp-check-windows/debug/build/zerocopy-b7b1bfb8cf3ce966/build_script_build-b7b1bfb8cf3ce966 new file mode 100755 index 000000000..f878f08a9 Binary files /dev/null and b/.tmp-check-windows/debug/build/zerocopy-b7b1bfb8cf3ce966/build_script_build-b7b1bfb8cf3ce966 differ diff --git a/.tmp-check-windows/debug/build/zerocopy-b7b1bfb8cf3ce966/build_script_build-b7b1bfb8cf3ce966.build_script_build.c1e51233268f69b0-cgu.0.rcgu.o b/.tmp-check-windows/debug/build/zerocopy-b7b1bfb8cf3ce966/build_script_build-b7b1bfb8cf3ce966.build_script_build.c1e51233268f69b0-cgu.0.rcgu.o new file mode 100644 index 000000000..6e205b0cf Binary files /dev/null and b/.tmp-check-windows/debug/build/zerocopy-b7b1bfb8cf3ce966/build_script_build-b7b1bfb8cf3ce966.build_script_build.c1e51233268f69b0-cgu.0.rcgu.o differ diff --git a/.tmp-check-windows/debug/build/zerocopy-b7b1bfb8cf3ce966/build_script_build-b7b1bfb8cf3ce966.build_script_build.c1e51233268f69b0-cgu.1.rcgu.o b/.tmp-check-windows/debug/build/zerocopy-b7b1bfb8cf3ce966/build_script_build-b7b1bfb8cf3ce966.build_script_build.c1e51233268f69b0-cgu.1.rcgu.o new file mode 100644 index 000000000..345bb6608 Binary files /dev/null and b/.tmp-check-windows/debug/build/zerocopy-b7b1bfb8cf3ce966/build_script_build-b7b1bfb8cf3ce966.build_script_build.c1e51233268f69b0-cgu.1.rcgu.o differ diff --git a/.tmp-check-windows/debug/build/zerocopy-b7b1bfb8cf3ce966/build_script_build-b7b1bfb8cf3ce966.build_script_build.c1e51233268f69b0-cgu.2.rcgu.o b/.tmp-check-windows/debug/build/zerocopy-b7b1bfb8cf3ce966/build_script_build-b7b1bfb8cf3ce966.build_script_build.c1e51233268f69b0-cgu.2.rcgu.o new file mode 100644 index 000000000..15f4bc190 Binary files /dev/null and b/.tmp-check-windows/debug/build/zerocopy-b7b1bfb8cf3ce966/build_script_build-b7b1bfb8cf3ce966.build_script_build.c1e51233268f69b0-cgu.2.rcgu.o differ diff --git a/.tmp-check-windows/debug/build/zerocopy-b7b1bfb8cf3ce966/build_script_build-b7b1bfb8cf3ce966.build_script_build.c1e51233268f69b0-cgu.3.rcgu.o b/.tmp-check-windows/debug/build/zerocopy-b7b1bfb8cf3ce966/build_script_build-b7b1bfb8cf3ce966.build_script_build.c1e51233268f69b0-cgu.3.rcgu.o new file mode 100644 index 000000000..7f50b9a17 Binary files /dev/null and b/.tmp-check-windows/debug/build/zerocopy-b7b1bfb8cf3ce966/build_script_build-b7b1bfb8cf3ce966.build_script_build.c1e51233268f69b0-cgu.3.rcgu.o differ diff --git a/.tmp-check-windows/debug/build/zerocopy-b7b1bfb8cf3ce966/build_script_build-b7b1bfb8cf3ce966.build_script_build.c1e51233268f69b0-cgu.4.rcgu.o b/.tmp-check-windows/debug/build/zerocopy-b7b1bfb8cf3ce966/build_script_build-b7b1bfb8cf3ce966.build_script_build.c1e51233268f69b0-cgu.4.rcgu.o new file mode 100644 index 000000000..80d9e8cae Binary files /dev/null and b/.tmp-check-windows/debug/build/zerocopy-b7b1bfb8cf3ce966/build_script_build-b7b1bfb8cf3ce966.build_script_build.c1e51233268f69b0-cgu.4.rcgu.o differ diff --git a/.tmp-check-windows/debug/build/zerocopy-b7b1bfb8cf3ce966/build_script_build-b7b1bfb8cf3ce966.d b/.tmp-check-windows/debug/build/zerocopy-b7b1bfb8cf3ce966/build_script_build-b7b1bfb8cf3ce966.d new file mode 100644 index 000000000..413601076 --- /dev/null +++ b/.tmp-check-windows/debug/build/zerocopy-b7b1bfb8cf3ce966/build_script_build-b7b1bfb8cf3ce966.d @@ -0,0 +1,5 @@ +/Users/coso/Documents/dev/ai/aiclientproxy/lime/.tmp-check-windows/debug/build/zerocopy-b7b1bfb8cf3ce966/build_script_build-b7b1bfb8cf3ce966.d: /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/zerocopy-0.8.39/build.rs + +/Users/coso/Documents/dev/ai/aiclientproxy/lime/.tmp-check-windows/debug/build/zerocopy-b7b1bfb8cf3ce966/build_script_build-b7b1bfb8cf3ce966: /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/zerocopy-0.8.39/build.rs + +/Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/zerocopy-0.8.39/build.rs: diff --git a/.tmp-check-windows/debug/build/zmij-786d644418f5a0ff/invoked.timestamp b/.tmp-check-windows/debug/build/zmij-786d644418f5a0ff/invoked.timestamp new file mode 100644 index 000000000..e00328da5 --- /dev/null +++ b/.tmp-check-windows/debug/build/zmij-786d644418f5a0ff/invoked.timestamp @@ -0,0 +1 @@ +This file has an mtime of when this was started. \ No newline at end of file diff --git a/.tmp-check-windows/debug/build/zmij-786d644418f5a0ff/output b/.tmp-check-windows/debug/build/zmij-786d644418f5a0ff/output new file mode 100644 index 000000000..c99f95855 --- /dev/null +++ b/.tmp-check-windows/debug/build/zmij-786d644418f5a0ff/output @@ -0,0 +1,3 @@ +cargo:rerun-if-changed=build.rs +cargo:rustc-check-cfg=cfg(exhaustive) +cargo:rustc-check-cfg=cfg(zmij_no_select_unpredictable) diff --git a/.tmp-check-windows/debug/build/zmij-786d644418f5a0ff/root-output b/.tmp-check-windows/debug/build/zmij-786d644418f5a0ff/root-output new file mode 100644 index 000000000..1e54042fb --- /dev/null +++ b/.tmp-check-windows/debug/build/zmij-786d644418f5a0ff/root-output @@ -0,0 +1 @@ +/Users/coso/Documents/dev/ai/aiclientproxy/lime/.tmp-check-windows/debug/build/zmij-786d644418f5a0ff/out \ No newline at end of file diff --git a/.tmp-check-windows/debug/build/zmij-786d644418f5a0ff/stderr b/.tmp-check-windows/debug/build/zmij-786d644418f5a0ff/stderr new file mode 100644 index 000000000..e69de29bb diff --git a/.tmp-check-windows/debug/build/zmij-a49de641c03deb03/build-script-build b/.tmp-check-windows/debug/build/zmij-a49de641c03deb03/build-script-build new file mode 100755 index 000000000..c57c76e2d Binary files /dev/null and b/.tmp-check-windows/debug/build/zmij-a49de641c03deb03/build-script-build differ diff --git a/.tmp-check-windows/debug/build/zmij-a49de641c03deb03/build_script_build-a49de641c03deb03 b/.tmp-check-windows/debug/build/zmij-a49de641c03deb03/build_script_build-a49de641c03deb03 new file mode 100755 index 000000000..c57c76e2d Binary files /dev/null and b/.tmp-check-windows/debug/build/zmij-a49de641c03deb03/build_script_build-a49de641c03deb03 differ diff --git a/.tmp-check-windows/debug/build/zmij-a49de641c03deb03/build_script_build-a49de641c03deb03.build_script_build.ef204e2a70158f1d-cgu.0.rcgu.o b/.tmp-check-windows/debug/build/zmij-a49de641c03deb03/build_script_build-a49de641c03deb03.build_script_build.ef204e2a70158f1d-cgu.0.rcgu.o new file mode 100644 index 000000000..283483078 Binary files /dev/null and b/.tmp-check-windows/debug/build/zmij-a49de641c03deb03/build_script_build-a49de641c03deb03.build_script_build.ef204e2a70158f1d-cgu.0.rcgu.o differ diff --git a/.tmp-check-windows/debug/build/zmij-a49de641c03deb03/build_script_build-a49de641c03deb03.d b/.tmp-check-windows/debug/build/zmij-a49de641c03deb03/build_script_build-a49de641c03deb03.d new file mode 100644 index 000000000..c1f7ac3e8 --- /dev/null +++ b/.tmp-check-windows/debug/build/zmij-a49de641c03deb03/build_script_build-a49de641c03deb03.d @@ -0,0 +1,5 @@ +/Users/coso/Documents/dev/ai/aiclientproxy/lime/.tmp-check-windows/debug/build/zmij-a49de641c03deb03/build_script_build-a49de641c03deb03.d: /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/zmij-1.0.21/build.rs + +/Users/coso/Documents/dev/ai/aiclientproxy/lime/.tmp-check-windows/debug/build/zmij-a49de641c03deb03/build_script_build-a49de641c03deb03: /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/zmij-1.0.21/build.rs + +/Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/zmij-1.0.21/build.rs: diff --git a/.tmp-check-windows/debug/deps/autocfg-152ca27a30846b56.autocfg.52d4331d564e0593-cgu.0.rcgu.o b/.tmp-check-windows/debug/deps/autocfg-152ca27a30846b56.autocfg.52d4331d564e0593-cgu.0.rcgu.o new file mode 100644 index 000000000..ce9f699ea Binary files /dev/null and b/.tmp-check-windows/debug/deps/autocfg-152ca27a30846b56.autocfg.52d4331d564e0593-cgu.0.rcgu.o differ diff --git a/.tmp-check-windows/debug/deps/autocfg-152ca27a30846b56.autocfg.52d4331d564e0593-cgu.1.rcgu.o b/.tmp-check-windows/debug/deps/autocfg-152ca27a30846b56.autocfg.52d4331d564e0593-cgu.1.rcgu.o new file mode 100644 index 000000000..5cb4c44ce Binary files /dev/null and b/.tmp-check-windows/debug/deps/autocfg-152ca27a30846b56.autocfg.52d4331d564e0593-cgu.1.rcgu.o differ diff --git a/.tmp-check-windows/debug/deps/autocfg-152ca27a30846b56.autocfg.52d4331d564e0593-cgu.2.rcgu.o b/.tmp-check-windows/debug/deps/autocfg-152ca27a30846b56.autocfg.52d4331d564e0593-cgu.2.rcgu.o new file mode 100644 index 000000000..1ad660153 Binary files /dev/null and b/.tmp-check-windows/debug/deps/autocfg-152ca27a30846b56.autocfg.52d4331d564e0593-cgu.2.rcgu.o differ diff --git a/.tmp-check-windows/debug/deps/autocfg-152ca27a30846b56.autocfg.52d4331d564e0593-cgu.3.rcgu.o b/.tmp-check-windows/debug/deps/autocfg-152ca27a30846b56.autocfg.52d4331d564e0593-cgu.3.rcgu.o new file mode 100644 index 000000000..7202d0978 Binary files /dev/null and b/.tmp-check-windows/debug/deps/autocfg-152ca27a30846b56.autocfg.52d4331d564e0593-cgu.3.rcgu.o differ diff --git a/.tmp-check-windows/debug/deps/autocfg-152ca27a30846b56.autocfg.52d4331d564e0593-cgu.4.rcgu.o b/.tmp-check-windows/debug/deps/autocfg-152ca27a30846b56.autocfg.52d4331d564e0593-cgu.4.rcgu.o new file mode 100644 index 000000000..e5d1ee52b Binary files /dev/null and b/.tmp-check-windows/debug/deps/autocfg-152ca27a30846b56.autocfg.52d4331d564e0593-cgu.4.rcgu.o differ diff --git a/.tmp-check-windows/debug/deps/autocfg-152ca27a30846b56.d b/.tmp-check-windows/debug/deps/autocfg-152ca27a30846b56.d new file mode 100644 index 000000000..2dc4fc102 --- /dev/null +++ b/.tmp-check-windows/debug/deps/autocfg-152ca27a30846b56.d @@ -0,0 +1,10 @@ +/Users/coso/Documents/dev/ai/aiclientproxy/lime/.tmp-check-windows/debug/deps/autocfg-152ca27a30846b56.d: /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/autocfg-1.5.0/src/lib.rs /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/autocfg-1.5.0/src/error.rs /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/autocfg-1.5.0/src/rustc.rs /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/autocfg-1.5.0/src/version.rs + +/Users/coso/Documents/dev/ai/aiclientproxy/lime/.tmp-check-windows/debug/deps/libautocfg-152ca27a30846b56.rlib: /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/autocfg-1.5.0/src/lib.rs /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/autocfg-1.5.0/src/error.rs /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/autocfg-1.5.0/src/rustc.rs /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/autocfg-1.5.0/src/version.rs + +/Users/coso/Documents/dev/ai/aiclientproxy/lime/.tmp-check-windows/debug/deps/libautocfg-152ca27a30846b56.rmeta: /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/autocfg-1.5.0/src/lib.rs /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/autocfg-1.5.0/src/error.rs /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/autocfg-1.5.0/src/rustc.rs /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/autocfg-1.5.0/src/version.rs + +/Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/autocfg-1.5.0/src/lib.rs: +/Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/autocfg-1.5.0/src/error.rs: +/Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/autocfg-1.5.0/src/rustc.rs: +/Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/autocfg-1.5.0/src/version.rs: diff --git a/.tmp-check-windows/debug/deps/cc-9a040564725839fc.cc.2775889b1db72fd3-cgu.00.rcgu.o b/.tmp-check-windows/debug/deps/cc-9a040564725839fc.cc.2775889b1db72fd3-cgu.00.rcgu.o new file mode 100644 index 000000000..f3ec3a410 Binary files /dev/null and b/.tmp-check-windows/debug/deps/cc-9a040564725839fc.cc.2775889b1db72fd3-cgu.00.rcgu.o differ diff --git a/.tmp-check-windows/debug/deps/cc-9a040564725839fc.cc.2775889b1db72fd3-cgu.01.rcgu.o b/.tmp-check-windows/debug/deps/cc-9a040564725839fc.cc.2775889b1db72fd3-cgu.01.rcgu.o new file mode 100644 index 000000000..0ca37f45e Binary files /dev/null and b/.tmp-check-windows/debug/deps/cc-9a040564725839fc.cc.2775889b1db72fd3-cgu.01.rcgu.o differ diff --git a/.tmp-check-windows/debug/deps/cc-9a040564725839fc.cc.2775889b1db72fd3-cgu.02.rcgu.o b/.tmp-check-windows/debug/deps/cc-9a040564725839fc.cc.2775889b1db72fd3-cgu.02.rcgu.o new file mode 100644 index 000000000..1931abf17 Binary files /dev/null and b/.tmp-check-windows/debug/deps/cc-9a040564725839fc.cc.2775889b1db72fd3-cgu.02.rcgu.o differ diff --git a/.tmp-check-windows/debug/deps/cc-9a040564725839fc.cc.2775889b1db72fd3-cgu.03.rcgu.o b/.tmp-check-windows/debug/deps/cc-9a040564725839fc.cc.2775889b1db72fd3-cgu.03.rcgu.o new file mode 100644 index 000000000..4c2b3308e Binary files /dev/null and b/.tmp-check-windows/debug/deps/cc-9a040564725839fc.cc.2775889b1db72fd3-cgu.03.rcgu.o differ diff --git a/.tmp-check-windows/debug/deps/cc-9a040564725839fc.cc.2775889b1db72fd3-cgu.04.rcgu.o b/.tmp-check-windows/debug/deps/cc-9a040564725839fc.cc.2775889b1db72fd3-cgu.04.rcgu.o new file mode 100644 index 000000000..1a6b6d509 Binary files /dev/null and b/.tmp-check-windows/debug/deps/cc-9a040564725839fc.cc.2775889b1db72fd3-cgu.04.rcgu.o differ diff --git a/.tmp-check-windows/debug/deps/cc-9a040564725839fc.cc.2775889b1db72fd3-cgu.05.rcgu.o b/.tmp-check-windows/debug/deps/cc-9a040564725839fc.cc.2775889b1db72fd3-cgu.05.rcgu.o new file mode 100644 index 000000000..617bf89db Binary files /dev/null and b/.tmp-check-windows/debug/deps/cc-9a040564725839fc.cc.2775889b1db72fd3-cgu.05.rcgu.o differ diff --git a/.tmp-check-windows/debug/deps/cc-9a040564725839fc.cc.2775889b1db72fd3-cgu.06.rcgu.o b/.tmp-check-windows/debug/deps/cc-9a040564725839fc.cc.2775889b1db72fd3-cgu.06.rcgu.o new file mode 100644 index 000000000..d904f1ac4 Binary files /dev/null and b/.tmp-check-windows/debug/deps/cc-9a040564725839fc.cc.2775889b1db72fd3-cgu.06.rcgu.o differ diff --git a/.tmp-check-windows/debug/deps/cc-9a040564725839fc.cc.2775889b1db72fd3-cgu.07.rcgu.o b/.tmp-check-windows/debug/deps/cc-9a040564725839fc.cc.2775889b1db72fd3-cgu.07.rcgu.o new file mode 100644 index 000000000..3bd429111 Binary files /dev/null and b/.tmp-check-windows/debug/deps/cc-9a040564725839fc.cc.2775889b1db72fd3-cgu.07.rcgu.o differ diff --git a/.tmp-check-windows/debug/deps/cc-9a040564725839fc.cc.2775889b1db72fd3-cgu.08.rcgu.o b/.tmp-check-windows/debug/deps/cc-9a040564725839fc.cc.2775889b1db72fd3-cgu.08.rcgu.o new file mode 100644 index 000000000..cf8f49098 Binary files /dev/null and b/.tmp-check-windows/debug/deps/cc-9a040564725839fc.cc.2775889b1db72fd3-cgu.08.rcgu.o differ diff --git a/.tmp-check-windows/debug/deps/cc-9a040564725839fc.cc.2775889b1db72fd3-cgu.09.rcgu.o b/.tmp-check-windows/debug/deps/cc-9a040564725839fc.cc.2775889b1db72fd3-cgu.09.rcgu.o new file mode 100644 index 000000000..d6fa9550d Binary files /dev/null and b/.tmp-check-windows/debug/deps/cc-9a040564725839fc.cc.2775889b1db72fd3-cgu.09.rcgu.o differ diff --git a/.tmp-check-windows/debug/deps/cc-9a040564725839fc.cc.2775889b1db72fd3-cgu.10.rcgu.o b/.tmp-check-windows/debug/deps/cc-9a040564725839fc.cc.2775889b1db72fd3-cgu.10.rcgu.o new file mode 100644 index 000000000..3b68528d7 Binary files /dev/null and b/.tmp-check-windows/debug/deps/cc-9a040564725839fc.cc.2775889b1db72fd3-cgu.10.rcgu.o differ diff --git a/.tmp-check-windows/debug/deps/cc-9a040564725839fc.cc.2775889b1db72fd3-cgu.11.rcgu.o b/.tmp-check-windows/debug/deps/cc-9a040564725839fc.cc.2775889b1db72fd3-cgu.11.rcgu.o new file mode 100644 index 000000000..53ab4d65c Binary files /dev/null and b/.tmp-check-windows/debug/deps/cc-9a040564725839fc.cc.2775889b1db72fd3-cgu.11.rcgu.o differ diff --git a/.tmp-check-windows/debug/deps/cc-9a040564725839fc.cc.2775889b1db72fd3-cgu.12.rcgu.o b/.tmp-check-windows/debug/deps/cc-9a040564725839fc.cc.2775889b1db72fd3-cgu.12.rcgu.o new file mode 100644 index 000000000..e22905826 Binary files /dev/null and b/.tmp-check-windows/debug/deps/cc-9a040564725839fc.cc.2775889b1db72fd3-cgu.12.rcgu.o differ diff --git a/.tmp-check-windows/debug/deps/cc-9a040564725839fc.cc.2775889b1db72fd3-cgu.13.rcgu.o b/.tmp-check-windows/debug/deps/cc-9a040564725839fc.cc.2775889b1db72fd3-cgu.13.rcgu.o new file mode 100644 index 000000000..f85517bca Binary files /dev/null and b/.tmp-check-windows/debug/deps/cc-9a040564725839fc.cc.2775889b1db72fd3-cgu.13.rcgu.o differ diff --git a/.tmp-check-windows/debug/deps/cc-9a040564725839fc.cc.2775889b1db72fd3-cgu.14.rcgu.o b/.tmp-check-windows/debug/deps/cc-9a040564725839fc.cc.2775889b1db72fd3-cgu.14.rcgu.o new file mode 100644 index 000000000..06d7e2599 Binary files /dev/null and b/.tmp-check-windows/debug/deps/cc-9a040564725839fc.cc.2775889b1db72fd3-cgu.14.rcgu.o differ diff --git a/.tmp-check-windows/debug/deps/cc-9a040564725839fc.cc.2775889b1db72fd3-cgu.15.rcgu.o b/.tmp-check-windows/debug/deps/cc-9a040564725839fc.cc.2775889b1db72fd3-cgu.15.rcgu.o new file mode 100644 index 000000000..6d3c79182 Binary files /dev/null and b/.tmp-check-windows/debug/deps/cc-9a040564725839fc.cc.2775889b1db72fd3-cgu.15.rcgu.o differ diff --git a/.tmp-check-windows/debug/deps/cc-9a040564725839fc.d b/.tmp-check-windows/debug/deps/cc-9a040564725839fc.d new file mode 100644 index 000000000..c71bb320e --- /dev/null +++ b/.tmp-check-windows/debug/deps/cc-9a040564725839fc.d @@ -0,0 +1,23 @@ +/Users/coso/Documents/dev/ai/aiclientproxy/lime/.tmp-check-windows/debug/deps/cc-9a040564725839fc.d: /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/cc-1.2.56/src/lib.rs /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/cc-1.2.56/src/parallel/mod.rs /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/cc-1.2.56/src/parallel/async_executor.rs /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/cc-1.2.56/src/parallel/command_runner.rs /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/cc-1.2.56/src/parallel/job_token.rs /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/cc-1.2.56/src/parallel/stderr.rs /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/cc-1.2.56/src/target.rs /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/cc-1.2.56/src/target/apple.rs /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/cc-1.2.56/src/target/generated.rs /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/cc-1.2.56/src/target/llvm.rs /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/cc-1.2.56/src/target/parser.rs /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/cc-1.2.56/src/command_helpers.rs /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/cc-1.2.56/src/tool.rs /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/cc-1.2.56/src/tempfile.rs /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/cc-1.2.56/src/utilities.rs /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/cc-1.2.56/src/flags.rs /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/cc-1.2.56/src/detect_compiler_family.c + +/Users/coso/Documents/dev/ai/aiclientproxy/lime/.tmp-check-windows/debug/deps/libcc-9a040564725839fc.rlib: /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/cc-1.2.56/src/lib.rs /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/cc-1.2.56/src/parallel/mod.rs /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/cc-1.2.56/src/parallel/async_executor.rs /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/cc-1.2.56/src/parallel/command_runner.rs /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/cc-1.2.56/src/parallel/job_token.rs /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/cc-1.2.56/src/parallel/stderr.rs /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/cc-1.2.56/src/target.rs /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/cc-1.2.56/src/target/apple.rs /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/cc-1.2.56/src/target/generated.rs /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/cc-1.2.56/src/target/llvm.rs /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/cc-1.2.56/src/target/parser.rs /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/cc-1.2.56/src/command_helpers.rs /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/cc-1.2.56/src/tool.rs /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/cc-1.2.56/src/tempfile.rs /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/cc-1.2.56/src/utilities.rs /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/cc-1.2.56/src/flags.rs /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/cc-1.2.56/src/detect_compiler_family.c + +/Users/coso/Documents/dev/ai/aiclientproxy/lime/.tmp-check-windows/debug/deps/libcc-9a040564725839fc.rmeta: /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/cc-1.2.56/src/lib.rs /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/cc-1.2.56/src/parallel/mod.rs /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/cc-1.2.56/src/parallel/async_executor.rs /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/cc-1.2.56/src/parallel/command_runner.rs /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/cc-1.2.56/src/parallel/job_token.rs /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/cc-1.2.56/src/parallel/stderr.rs /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/cc-1.2.56/src/target.rs /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/cc-1.2.56/src/target/apple.rs /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/cc-1.2.56/src/target/generated.rs /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/cc-1.2.56/src/target/llvm.rs /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/cc-1.2.56/src/target/parser.rs /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/cc-1.2.56/src/command_helpers.rs /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/cc-1.2.56/src/tool.rs /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/cc-1.2.56/src/tempfile.rs /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/cc-1.2.56/src/utilities.rs /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/cc-1.2.56/src/flags.rs /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/cc-1.2.56/src/detect_compiler_family.c + +/Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/cc-1.2.56/src/lib.rs: +/Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/cc-1.2.56/src/parallel/mod.rs: +/Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/cc-1.2.56/src/parallel/async_executor.rs: +/Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/cc-1.2.56/src/parallel/command_runner.rs: +/Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/cc-1.2.56/src/parallel/job_token.rs: +/Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/cc-1.2.56/src/parallel/stderr.rs: +/Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/cc-1.2.56/src/target.rs: +/Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/cc-1.2.56/src/target/apple.rs: +/Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/cc-1.2.56/src/target/generated.rs: +/Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/cc-1.2.56/src/target/llvm.rs: +/Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/cc-1.2.56/src/target/parser.rs: +/Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/cc-1.2.56/src/command_helpers.rs: +/Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/cc-1.2.56/src/tool.rs: +/Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/cc-1.2.56/src/tempfile.rs: +/Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/cc-1.2.56/src/utilities.rs: +/Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/cc-1.2.56/src/flags.rs: +/Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/cc-1.2.56/src/detect_compiler_family.c: diff --git a/.tmp-check-windows/debug/deps/cfg_if-bb242b5271acb8bf.cfg_if.d2a0bc5da1ccef53-cgu.0.rcgu.o b/.tmp-check-windows/debug/deps/cfg_if-bb242b5271acb8bf.cfg_if.d2a0bc5da1ccef53-cgu.0.rcgu.o new file mode 100644 index 000000000..44add98cb Binary files /dev/null and b/.tmp-check-windows/debug/deps/cfg_if-bb242b5271acb8bf.cfg_if.d2a0bc5da1ccef53-cgu.0.rcgu.o differ diff --git a/.tmp-check-windows/debug/deps/cfg_if-bb242b5271acb8bf.d b/.tmp-check-windows/debug/deps/cfg_if-bb242b5271acb8bf.d new file mode 100644 index 000000000..52fe31879 --- /dev/null +++ b/.tmp-check-windows/debug/deps/cfg_if-bb242b5271acb8bf.d @@ -0,0 +1,7 @@ +/Users/coso/Documents/dev/ai/aiclientproxy/lime/.tmp-check-windows/debug/deps/cfg_if-bb242b5271acb8bf.d: /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/cfg-if-1.0.4/src/lib.rs + +/Users/coso/Documents/dev/ai/aiclientproxy/lime/.tmp-check-windows/debug/deps/libcfg_if-bb242b5271acb8bf.rlib: /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/cfg-if-1.0.4/src/lib.rs + +/Users/coso/Documents/dev/ai/aiclientproxy/lime/.tmp-check-windows/debug/deps/libcfg_if-bb242b5271acb8bf.rmeta: /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/cfg-if-1.0.4/src/lib.rs + +/Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/cfg-if-1.0.4/src/lib.rs: diff --git a/.tmp-check-windows/debug/deps/dunce-1e059af6f562864b.d b/.tmp-check-windows/debug/deps/dunce-1e059af6f562864b.d new file mode 100644 index 000000000..96013dec5 --- /dev/null +++ b/.tmp-check-windows/debug/deps/dunce-1e059af6f562864b.d @@ -0,0 +1,7 @@ +/Users/coso/Documents/dev/ai/aiclientproxy/lime/.tmp-check-windows/debug/deps/dunce-1e059af6f562864b.d: /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/dunce-1.0.5/src/lib.rs + +/Users/coso/Documents/dev/ai/aiclientproxy/lime/.tmp-check-windows/debug/deps/libdunce-1e059af6f562864b.rlib: /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/dunce-1.0.5/src/lib.rs + +/Users/coso/Documents/dev/ai/aiclientproxy/lime/.tmp-check-windows/debug/deps/libdunce-1e059af6f562864b.rmeta: /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/dunce-1.0.5/src/lib.rs + +/Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/dunce-1.0.5/src/lib.rs: diff --git a/.tmp-check-windows/debug/deps/dunce-1e059af6f562864b.dunce.e1bb98ac8f3bdbb4-cgu.0.rcgu.o b/.tmp-check-windows/debug/deps/dunce-1e059af6f562864b.dunce.e1bb98ac8f3bdbb4-cgu.0.rcgu.o new file mode 100644 index 000000000..44add98cb Binary files /dev/null and b/.tmp-check-windows/debug/deps/dunce-1e059af6f562864b.dunce.e1bb98ac8f3bdbb4-cgu.0.rcgu.o differ diff --git a/.tmp-check-windows/debug/deps/find_msvc_tools-330627f690eb7ff8.d b/.tmp-check-windows/debug/deps/find_msvc_tools-330627f690eb7ff8.d new file mode 100644 index 000000000..3c544b767 --- /dev/null +++ b/.tmp-check-windows/debug/deps/find_msvc_tools-330627f690eb7ff8.d @@ -0,0 +1,9 @@ +/Users/coso/Documents/dev/ai/aiclientproxy/lime/.tmp-check-windows/debug/deps/find_msvc_tools-330627f690eb7ff8.d: /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/find-msvc-tools-0.1.9/src/lib.rs /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/find-msvc-tools-0.1.9/src/find_tools.rs /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/find-msvc-tools-0.1.9/src/tool.rs + +/Users/coso/Documents/dev/ai/aiclientproxy/lime/.tmp-check-windows/debug/deps/libfind_msvc_tools-330627f690eb7ff8.rlib: /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/find-msvc-tools-0.1.9/src/lib.rs /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/find-msvc-tools-0.1.9/src/find_tools.rs /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/find-msvc-tools-0.1.9/src/tool.rs + +/Users/coso/Documents/dev/ai/aiclientproxy/lime/.tmp-check-windows/debug/deps/libfind_msvc_tools-330627f690eb7ff8.rmeta: /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/find-msvc-tools-0.1.9/src/lib.rs /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/find-msvc-tools-0.1.9/src/find_tools.rs /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/find-msvc-tools-0.1.9/src/tool.rs + +/Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/find-msvc-tools-0.1.9/src/lib.rs: +/Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/find-msvc-tools-0.1.9/src/find_tools.rs: +/Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/find-msvc-tools-0.1.9/src/tool.rs: diff --git a/.tmp-check-windows/debug/deps/find_msvc_tools-330627f690eb7ff8.find_msvc_tools.7b7513990b9db4d0-cgu.0.rcgu.o b/.tmp-check-windows/debug/deps/find_msvc_tools-330627f690eb7ff8.find_msvc_tools.7b7513990b9db4d0-cgu.0.rcgu.o new file mode 100644 index 000000000..5e45615a9 Binary files /dev/null and b/.tmp-check-windows/debug/deps/find_msvc_tools-330627f690eb7ff8.find_msvc_tools.7b7513990b9db4d0-cgu.0.rcgu.o differ diff --git a/.tmp-check-windows/debug/deps/find_msvc_tools-330627f690eb7ff8.find_msvc_tools.7b7513990b9db4d0-cgu.1.rcgu.o b/.tmp-check-windows/debug/deps/find_msvc_tools-330627f690eb7ff8.find_msvc_tools.7b7513990b9db4d0-cgu.1.rcgu.o new file mode 100644 index 000000000..7a457cea6 Binary files /dev/null and b/.tmp-check-windows/debug/deps/find_msvc_tools-330627f690eb7ff8.find_msvc_tools.7b7513990b9db4d0-cgu.1.rcgu.o differ diff --git a/.tmp-check-windows/debug/deps/fnv-3aad16c2d5893feb.d b/.tmp-check-windows/debug/deps/fnv-3aad16c2d5893feb.d new file mode 100644 index 000000000..b528e3fe9 --- /dev/null +++ b/.tmp-check-windows/debug/deps/fnv-3aad16c2d5893feb.d @@ -0,0 +1,7 @@ +/Users/coso/Documents/dev/ai/aiclientproxy/lime/.tmp-check-windows/debug/deps/fnv-3aad16c2d5893feb.d: /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/fnv-1.0.7/lib.rs + +/Users/coso/Documents/dev/ai/aiclientproxy/lime/.tmp-check-windows/debug/deps/libfnv-3aad16c2d5893feb.rlib: /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/fnv-1.0.7/lib.rs + +/Users/coso/Documents/dev/ai/aiclientproxy/lime/.tmp-check-windows/debug/deps/libfnv-3aad16c2d5893feb.rmeta: /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/fnv-1.0.7/lib.rs + +/Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/fnv-1.0.7/lib.rs: diff --git a/.tmp-check-windows/debug/deps/fnv-3aad16c2d5893feb.fnv.d493786f08e2f5f0-cgu.0.rcgu.o b/.tmp-check-windows/debug/deps/fnv-3aad16c2d5893feb.fnv.d493786f08e2f5f0-cgu.0.rcgu.o new file mode 100644 index 000000000..44add98cb Binary files /dev/null and b/.tmp-check-windows/debug/deps/fnv-3aad16c2d5893feb.fnv.d493786f08e2f5f0-cgu.0.rcgu.o differ diff --git a/.tmp-check-windows/debug/deps/getrandom-11268112bacdfc1d.d b/.tmp-check-windows/debug/deps/getrandom-11268112bacdfc1d.d new file mode 100644 index 000000000..ad7647387 --- /dev/null +++ b/.tmp-check-windows/debug/deps/getrandom-11268112bacdfc1d.d @@ -0,0 +1,12 @@ +/Users/coso/Documents/dev/ai/aiclientproxy/lime/.tmp-check-windows/debug/deps/getrandom-11268112bacdfc1d.d: /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/getrandom-0.2.17/src/lib.rs /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/getrandom-0.2.17/src/error.rs /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/getrandom-0.2.17/src/util.rs /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/getrandom-0.2.17/src/error_impls.rs /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/getrandom-0.2.17/src/util_libc.rs /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/getrandom-0.2.17/src/getentropy.rs + +/Users/coso/Documents/dev/ai/aiclientproxy/lime/.tmp-check-windows/debug/deps/libgetrandom-11268112bacdfc1d.rlib: /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/getrandom-0.2.17/src/lib.rs /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/getrandom-0.2.17/src/error.rs /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/getrandom-0.2.17/src/util.rs /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/getrandom-0.2.17/src/error_impls.rs /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/getrandom-0.2.17/src/util_libc.rs /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/getrandom-0.2.17/src/getentropy.rs + +/Users/coso/Documents/dev/ai/aiclientproxy/lime/.tmp-check-windows/debug/deps/libgetrandom-11268112bacdfc1d.rmeta: /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/getrandom-0.2.17/src/lib.rs /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/getrandom-0.2.17/src/error.rs /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/getrandom-0.2.17/src/util.rs /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/getrandom-0.2.17/src/error_impls.rs /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/getrandom-0.2.17/src/util_libc.rs /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/getrandom-0.2.17/src/getentropy.rs + +/Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/getrandom-0.2.17/src/lib.rs: +/Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/getrandom-0.2.17/src/error.rs: +/Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/getrandom-0.2.17/src/util.rs: +/Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/getrandom-0.2.17/src/error_impls.rs: +/Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/getrandom-0.2.17/src/util_libc.rs: +/Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/getrandom-0.2.17/src/getentropy.rs: diff --git a/.tmp-check-windows/debug/deps/getrandom-11268112bacdfc1d.getrandom.c2549cd589bebd20-cgu.0.rcgu.o b/.tmp-check-windows/debug/deps/getrandom-11268112bacdfc1d.getrandom.c2549cd589bebd20-cgu.0.rcgu.o new file mode 100644 index 000000000..98c53b381 Binary files /dev/null and b/.tmp-check-windows/debug/deps/getrandom-11268112bacdfc1d.getrandom.c2549cd589bebd20-cgu.0.rcgu.o differ diff --git a/.tmp-check-windows/debug/deps/getrandom-4a9c4a505267276c.d b/.tmp-check-windows/debug/deps/getrandom-4a9c4a505267276c.d new file mode 100644 index 000000000..f6e686948 --- /dev/null +++ b/.tmp-check-windows/debug/deps/getrandom-4a9c4a505267276c.d @@ -0,0 +1,13 @@ +/Users/coso/Documents/dev/ai/aiclientproxy/lime/.tmp-check-windows/debug/deps/getrandom-4a9c4a505267276c.d: /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/getrandom-0.1.16/src/lib.rs /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/getrandom-0.1.16/src/error.rs /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/getrandom-0.1.16/src/util.rs /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/getrandom-0.1.16/src/error_impls.rs /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/getrandom-0.1.16/src/util_libc.rs /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/getrandom-0.1.16/src/use_file.rs /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/getrandom-0.1.16/src/macos.rs + +/Users/coso/Documents/dev/ai/aiclientproxy/lime/.tmp-check-windows/debug/deps/libgetrandom-4a9c4a505267276c.rlib: /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/getrandom-0.1.16/src/lib.rs /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/getrandom-0.1.16/src/error.rs /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/getrandom-0.1.16/src/util.rs /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/getrandom-0.1.16/src/error_impls.rs /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/getrandom-0.1.16/src/util_libc.rs /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/getrandom-0.1.16/src/use_file.rs /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/getrandom-0.1.16/src/macos.rs + +/Users/coso/Documents/dev/ai/aiclientproxy/lime/.tmp-check-windows/debug/deps/libgetrandom-4a9c4a505267276c.rmeta: /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/getrandom-0.1.16/src/lib.rs /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/getrandom-0.1.16/src/error.rs /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/getrandom-0.1.16/src/util.rs /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/getrandom-0.1.16/src/error_impls.rs /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/getrandom-0.1.16/src/util_libc.rs /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/getrandom-0.1.16/src/use_file.rs /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/getrandom-0.1.16/src/macos.rs + +/Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/getrandom-0.1.16/src/lib.rs: +/Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/getrandom-0.1.16/src/error.rs: +/Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/getrandom-0.1.16/src/util.rs: +/Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/getrandom-0.1.16/src/error_impls.rs: +/Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/getrandom-0.1.16/src/util_libc.rs: +/Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/getrandom-0.1.16/src/use_file.rs: +/Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/getrandom-0.1.16/src/macos.rs: diff --git a/.tmp-check-windows/debug/deps/getrandom-4a9c4a505267276c.getrandom.8f80beb16d0ecfd0-cgu.0.rcgu.o b/.tmp-check-windows/debug/deps/getrandom-4a9c4a505267276c.getrandom.8f80beb16d0ecfd0-cgu.0.rcgu.o new file mode 100644 index 000000000..615bcd83d Binary files /dev/null and b/.tmp-check-windows/debug/deps/getrandom-4a9c4a505267276c.getrandom.8f80beb16d0ecfd0-cgu.0.rcgu.o differ diff --git a/.tmp-check-windows/debug/deps/ident_case-013f6ec9f8223e21.d b/.tmp-check-windows/debug/deps/ident_case-013f6ec9f8223e21.d new file mode 100644 index 000000000..71ba59f5a --- /dev/null +++ b/.tmp-check-windows/debug/deps/ident_case-013f6ec9f8223e21.d @@ -0,0 +1,7 @@ +/Users/coso/Documents/dev/ai/aiclientproxy/lime/.tmp-check-windows/debug/deps/ident_case-013f6ec9f8223e21.d: /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/ident_case-1.0.1/src/lib.rs + +/Users/coso/Documents/dev/ai/aiclientproxy/lime/.tmp-check-windows/debug/deps/libident_case-013f6ec9f8223e21.rlib: /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/ident_case-1.0.1/src/lib.rs + +/Users/coso/Documents/dev/ai/aiclientproxy/lime/.tmp-check-windows/debug/deps/libident_case-013f6ec9f8223e21.rmeta: /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/ident_case-1.0.1/src/lib.rs + +/Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/ident_case-1.0.1/src/lib.rs: diff --git a/.tmp-check-windows/debug/deps/ident_case-013f6ec9f8223e21.ident_case.3354d14e71cad3b4-cgu.0.rcgu.o b/.tmp-check-windows/debug/deps/ident_case-013f6ec9f8223e21.ident_case.3354d14e71cad3b4-cgu.0.rcgu.o new file mode 100644 index 000000000..abed6cd95 Binary files /dev/null and b/.tmp-check-windows/debug/deps/ident_case-013f6ec9f8223e21.ident_case.3354d14e71cad3b4-cgu.0.rcgu.o differ diff --git a/.tmp-check-windows/debug/deps/itoa-25a0f54eb7c7164e.d b/.tmp-check-windows/debug/deps/itoa-25a0f54eb7c7164e.d new file mode 100644 index 000000000..6632a8ce2 --- /dev/null +++ b/.tmp-check-windows/debug/deps/itoa-25a0f54eb7c7164e.d @@ -0,0 +1,8 @@ +/Users/coso/Documents/dev/ai/aiclientproxy/lime/.tmp-check-windows/debug/deps/itoa-25a0f54eb7c7164e.d: /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/itoa-1.0.17/src/lib.rs /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/itoa-1.0.17/src/u128_ext.rs + +/Users/coso/Documents/dev/ai/aiclientproxy/lime/.tmp-check-windows/debug/deps/libitoa-25a0f54eb7c7164e.rlib: /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/itoa-1.0.17/src/lib.rs /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/itoa-1.0.17/src/u128_ext.rs + +/Users/coso/Documents/dev/ai/aiclientproxy/lime/.tmp-check-windows/debug/deps/libitoa-25a0f54eb7c7164e.rmeta: /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/itoa-1.0.17/src/lib.rs /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/itoa-1.0.17/src/u128_ext.rs + +/Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/itoa-1.0.17/src/lib.rs: +/Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/itoa-1.0.17/src/u128_ext.rs: diff --git a/.tmp-check-windows/debug/deps/itoa-25a0f54eb7c7164e.itoa.4dace2c6936d1795-cgu.0.rcgu.o b/.tmp-check-windows/debug/deps/itoa-25a0f54eb7c7164e.itoa.4dace2c6936d1795-cgu.0.rcgu.o new file mode 100644 index 000000000..e7503d42e Binary files /dev/null and b/.tmp-check-windows/debug/deps/itoa-25a0f54eb7c7164e.itoa.4dace2c6936d1795-cgu.0.rcgu.o differ diff --git a/.tmp-check-windows/debug/deps/jobserver-847f1be937f25301.d b/.tmp-check-windows/debug/deps/jobserver-847f1be937f25301.d new file mode 100644 index 000000000..a7ed05631 --- /dev/null +++ b/.tmp-check-windows/debug/deps/jobserver-847f1be937f25301.d @@ -0,0 +1,9 @@ +/Users/coso/Documents/dev/ai/aiclientproxy/lime/.tmp-check-windows/debug/deps/jobserver-847f1be937f25301.d: /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/jobserver-0.1.34/src/lib.rs /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/jobserver-0.1.34/src/error.rs /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/jobserver-0.1.34/src/unix.rs + +/Users/coso/Documents/dev/ai/aiclientproxy/lime/.tmp-check-windows/debug/deps/libjobserver-847f1be937f25301.rlib: /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/jobserver-0.1.34/src/lib.rs /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/jobserver-0.1.34/src/error.rs /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/jobserver-0.1.34/src/unix.rs + +/Users/coso/Documents/dev/ai/aiclientproxy/lime/.tmp-check-windows/debug/deps/libjobserver-847f1be937f25301.rmeta: /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/jobserver-0.1.34/src/lib.rs /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/jobserver-0.1.34/src/error.rs /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/jobserver-0.1.34/src/unix.rs + +/Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/jobserver-0.1.34/src/lib.rs: +/Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/jobserver-0.1.34/src/error.rs: +/Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/jobserver-0.1.34/src/unix.rs: diff --git a/.tmp-check-windows/debug/deps/jobserver-847f1be937f25301.jobserver.e423bd0f8f057f16-cgu.0.rcgu.o b/.tmp-check-windows/debug/deps/jobserver-847f1be937f25301.jobserver.e423bd0f8f057f16-cgu.0.rcgu.o new file mode 100644 index 000000000..087377f2e Binary files /dev/null and b/.tmp-check-windows/debug/deps/jobserver-847f1be937f25301.jobserver.e423bd0f8f057f16-cgu.0.rcgu.o differ diff --git a/.tmp-check-windows/debug/deps/jobserver-847f1be937f25301.jobserver.e423bd0f8f057f16-cgu.1.rcgu.o b/.tmp-check-windows/debug/deps/jobserver-847f1be937f25301.jobserver.e423bd0f8f057f16-cgu.1.rcgu.o new file mode 100644 index 000000000..1a444c4b5 Binary files /dev/null and b/.tmp-check-windows/debug/deps/jobserver-847f1be937f25301.jobserver.e423bd0f8f057f16-cgu.1.rcgu.o differ diff --git a/.tmp-check-windows/debug/deps/jobserver-847f1be937f25301.jobserver.e423bd0f8f057f16-cgu.2.rcgu.o b/.tmp-check-windows/debug/deps/jobserver-847f1be937f25301.jobserver.e423bd0f8f057f16-cgu.2.rcgu.o new file mode 100644 index 000000000..0bd7f9dae Binary files /dev/null and b/.tmp-check-windows/debug/deps/jobserver-847f1be937f25301.jobserver.e423bd0f8f057f16-cgu.2.rcgu.o differ diff --git a/.tmp-check-windows/debug/deps/jobserver-847f1be937f25301.jobserver.e423bd0f8f057f16-cgu.3.rcgu.o b/.tmp-check-windows/debug/deps/jobserver-847f1be937f25301.jobserver.e423bd0f8f057f16-cgu.3.rcgu.o new file mode 100644 index 000000000..5bda5ca10 Binary files /dev/null and b/.tmp-check-windows/debug/deps/jobserver-847f1be937f25301.jobserver.e423bd0f8f057f16-cgu.3.rcgu.o differ diff --git a/.tmp-check-windows/debug/deps/libautocfg-152ca27a30846b56.rlib b/.tmp-check-windows/debug/deps/libautocfg-152ca27a30846b56.rlib new file mode 100644 index 000000000..2270b3daa Binary files /dev/null and b/.tmp-check-windows/debug/deps/libautocfg-152ca27a30846b56.rlib differ diff --git a/.tmp-check-windows/debug/deps/libautocfg-152ca27a30846b56.rmeta b/.tmp-check-windows/debug/deps/libautocfg-152ca27a30846b56.rmeta new file mode 100644 index 000000000..1d816ba6e Binary files /dev/null and b/.tmp-check-windows/debug/deps/libautocfg-152ca27a30846b56.rmeta differ diff --git a/.tmp-check-windows/debug/deps/libc-ef70e72977ad2937.d b/.tmp-check-windows/debug/deps/libc-ef70e72977ad2937.d new file mode 100644 index 000000000..497c1afe5 --- /dev/null +++ b/.tmp-check-windows/debug/deps/libc-ef70e72977ad2937.d @@ -0,0 +1,45 @@ +/Users/coso/Documents/dev/ai/aiclientproxy/lime/.tmp-check-windows/debug/deps/libc-ef70e72977ad2937.d: /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/libc-0.2.180/src/lib.rs /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/libc-0.2.180/src/macros.rs /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/libc-0.2.180/src/new/mod.rs /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/libc-0.2.180/src/new/common/mod.rs /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/libc-0.2.180/src/new/common/bsd.rs /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/libc-0.2.180/src/new/common/posix/mod.rs /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/libc-0.2.180/src/new/common/posix/pthread.rs /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/libc-0.2.180/src/new/common/posix/unistd.rs /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/libc-0.2.180/src/new/apple/mod.rs /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/libc-0.2.180/src/new/apple/libc/signal.rs /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/libc-0.2.180/src/new/apple/libc/unistd.rs /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/libc-0.2.180/src/new/apple/libpthread/mod.rs /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/libc-0.2.180/src/new/apple/libpthread/pthread_/introspection.rs /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/libc-0.2.180/src/new/apple/libpthread/pthread_/pthread.rs /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/libc-0.2.180/src/new/apple/libpthread/pthread_/pthread_impl.rs /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/libc-0.2.180/src/new/apple/libpthread/pthread_/pthread_spis.rs /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/libc-0.2.180/src/new/apple/libpthread/pthread_/qos.rs /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/libc-0.2.180/src/new/apple/libpthread/pthread_/sched.rs /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/libc-0.2.180/src/new/apple/libpthread/pthread_/spawn.rs /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/libc-0.2.180/src/new/apple/libpthread/pthread_/stack_np.rs /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/libc-0.2.180/src/new/apple/libpthread/sys/mod.rs /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/libc-0.2.180/src/new/apple/libpthread/sys/_pthread/_pthread_types.rs /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/libc-0.2.180/src/new/apple/libpthread/sys/qos.rs /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/libc-0.2.180/src/new/apple/xnu/mod.rs /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/libc-0.2.180/src/new/apple/xnu/arm/_mcontext.rs /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/libc-0.2.180/src/new/apple/xnu/mach/mod.rs /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/libc-0.2.180/src/new/apple/xnu/mach/arm/_structs.rs /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/libc-0.2.180/src/new/apple/xnu/mach/machine/_structs.rs /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/libc-0.2.180/src/new/apple/xnu/machine/_mcontext.rs /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/libc-0.2.180/src/new/apple/xnu/sys/mod.rs /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/libc-0.2.180/src/new/apple/xnu/sys/signal.rs /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/libc-0.2.180/src/new/apple/xnu/sys/_types/_ucontext.rs /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/libc-0.2.180/src/primitives.rs /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/libc-0.2.180/src/unix/mod.rs /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/libc-0.2.180/src/unix/bsd/mod.rs /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/libc-0.2.180/src/unix/bsd/apple/mod.rs /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/libc-0.2.180/src/unix/bsd/apple/b64/mod.rs /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/libc-0.2.180/src/unix/bsd/apple/b64/aarch64/mod.rs /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/libc-0.2.180/src/types.rs + +/Users/coso/Documents/dev/ai/aiclientproxy/lime/.tmp-check-windows/debug/deps/liblibc-ef70e72977ad2937.rlib: /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/libc-0.2.180/src/lib.rs /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/libc-0.2.180/src/macros.rs /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/libc-0.2.180/src/new/mod.rs /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/libc-0.2.180/src/new/common/mod.rs /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/libc-0.2.180/src/new/common/bsd.rs /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/libc-0.2.180/src/new/common/posix/mod.rs /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/libc-0.2.180/src/new/common/posix/pthread.rs /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/libc-0.2.180/src/new/common/posix/unistd.rs /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/libc-0.2.180/src/new/apple/mod.rs /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/libc-0.2.180/src/new/apple/libc/signal.rs /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/libc-0.2.180/src/new/apple/libc/unistd.rs /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/libc-0.2.180/src/new/apple/libpthread/mod.rs /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/libc-0.2.180/src/new/apple/libpthread/pthread_/introspection.rs /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/libc-0.2.180/src/new/apple/libpthread/pthread_/pthread.rs /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/libc-0.2.180/src/new/apple/libpthread/pthread_/pthread_impl.rs /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/libc-0.2.180/src/new/apple/libpthread/pthread_/pthread_spis.rs /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/libc-0.2.180/src/new/apple/libpthread/pthread_/qos.rs /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/libc-0.2.180/src/new/apple/libpthread/pthread_/sched.rs /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/libc-0.2.180/src/new/apple/libpthread/pthread_/spawn.rs /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/libc-0.2.180/src/new/apple/libpthread/pthread_/stack_np.rs /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/libc-0.2.180/src/new/apple/libpthread/sys/mod.rs /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/libc-0.2.180/src/new/apple/libpthread/sys/_pthread/_pthread_types.rs /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/libc-0.2.180/src/new/apple/libpthread/sys/qos.rs /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/libc-0.2.180/src/new/apple/xnu/mod.rs /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/libc-0.2.180/src/new/apple/xnu/arm/_mcontext.rs /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/libc-0.2.180/src/new/apple/xnu/mach/mod.rs /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/libc-0.2.180/src/new/apple/xnu/mach/arm/_structs.rs /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/libc-0.2.180/src/new/apple/xnu/mach/machine/_structs.rs /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/libc-0.2.180/src/new/apple/xnu/machine/_mcontext.rs /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/libc-0.2.180/src/new/apple/xnu/sys/mod.rs /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/libc-0.2.180/src/new/apple/xnu/sys/signal.rs /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/libc-0.2.180/src/new/apple/xnu/sys/_types/_ucontext.rs /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/libc-0.2.180/src/primitives.rs /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/libc-0.2.180/src/unix/mod.rs /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/libc-0.2.180/src/unix/bsd/mod.rs /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/libc-0.2.180/src/unix/bsd/apple/mod.rs /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/libc-0.2.180/src/unix/bsd/apple/b64/mod.rs /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/libc-0.2.180/src/unix/bsd/apple/b64/aarch64/mod.rs /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/libc-0.2.180/src/types.rs + +/Users/coso/Documents/dev/ai/aiclientproxy/lime/.tmp-check-windows/debug/deps/liblibc-ef70e72977ad2937.rmeta: /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/libc-0.2.180/src/lib.rs /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/libc-0.2.180/src/macros.rs /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/libc-0.2.180/src/new/mod.rs /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/libc-0.2.180/src/new/common/mod.rs /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/libc-0.2.180/src/new/common/bsd.rs /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/libc-0.2.180/src/new/common/posix/mod.rs /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/libc-0.2.180/src/new/common/posix/pthread.rs /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/libc-0.2.180/src/new/common/posix/unistd.rs /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/libc-0.2.180/src/new/apple/mod.rs /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/libc-0.2.180/src/new/apple/libc/signal.rs /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/libc-0.2.180/src/new/apple/libc/unistd.rs /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/libc-0.2.180/src/new/apple/libpthread/mod.rs /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/libc-0.2.180/src/new/apple/libpthread/pthread_/introspection.rs /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/libc-0.2.180/src/new/apple/libpthread/pthread_/pthread.rs /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/libc-0.2.180/src/new/apple/libpthread/pthread_/pthread_impl.rs /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/libc-0.2.180/src/new/apple/libpthread/pthread_/pthread_spis.rs /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/libc-0.2.180/src/new/apple/libpthread/pthread_/qos.rs /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/libc-0.2.180/src/new/apple/libpthread/pthread_/sched.rs /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/libc-0.2.180/src/new/apple/libpthread/pthread_/spawn.rs /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/libc-0.2.180/src/new/apple/libpthread/pthread_/stack_np.rs /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/libc-0.2.180/src/new/apple/libpthread/sys/mod.rs /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/libc-0.2.180/src/new/apple/libpthread/sys/_pthread/_pthread_types.rs /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/libc-0.2.180/src/new/apple/libpthread/sys/qos.rs /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/libc-0.2.180/src/new/apple/xnu/mod.rs /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/libc-0.2.180/src/new/apple/xnu/arm/_mcontext.rs /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/libc-0.2.180/src/new/apple/xnu/mach/mod.rs /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/libc-0.2.180/src/new/apple/xnu/mach/arm/_structs.rs /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/libc-0.2.180/src/new/apple/xnu/mach/machine/_structs.rs /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/libc-0.2.180/src/new/apple/xnu/machine/_mcontext.rs /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/libc-0.2.180/src/new/apple/xnu/sys/mod.rs /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/libc-0.2.180/src/new/apple/xnu/sys/signal.rs /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/libc-0.2.180/src/new/apple/xnu/sys/_types/_ucontext.rs /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/libc-0.2.180/src/primitives.rs /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/libc-0.2.180/src/unix/mod.rs /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/libc-0.2.180/src/unix/bsd/mod.rs /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/libc-0.2.180/src/unix/bsd/apple/mod.rs /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/libc-0.2.180/src/unix/bsd/apple/b64/mod.rs /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/libc-0.2.180/src/unix/bsd/apple/b64/aarch64/mod.rs /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/libc-0.2.180/src/types.rs + +/Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/libc-0.2.180/src/lib.rs: +/Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/libc-0.2.180/src/macros.rs: +/Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/libc-0.2.180/src/new/mod.rs: +/Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/libc-0.2.180/src/new/common/mod.rs: +/Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/libc-0.2.180/src/new/common/bsd.rs: +/Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/libc-0.2.180/src/new/common/posix/mod.rs: +/Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/libc-0.2.180/src/new/common/posix/pthread.rs: +/Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/libc-0.2.180/src/new/common/posix/unistd.rs: +/Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/libc-0.2.180/src/new/apple/mod.rs: +/Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/libc-0.2.180/src/new/apple/libc/signal.rs: +/Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/libc-0.2.180/src/new/apple/libc/unistd.rs: +/Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/libc-0.2.180/src/new/apple/libpthread/mod.rs: +/Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/libc-0.2.180/src/new/apple/libpthread/pthread_/introspection.rs: +/Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/libc-0.2.180/src/new/apple/libpthread/pthread_/pthread.rs: +/Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/libc-0.2.180/src/new/apple/libpthread/pthread_/pthread_impl.rs: +/Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/libc-0.2.180/src/new/apple/libpthread/pthread_/pthread_spis.rs: +/Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/libc-0.2.180/src/new/apple/libpthread/pthread_/qos.rs: +/Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/libc-0.2.180/src/new/apple/libpthread/pthread_/sched.rs: +/Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/libc-0.2.180/src/new/apple/libpthread/pthread_/spawn.rs: +/Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/libc-0.2.180/src/new/apple/libpthread/pthread_/stack_np.rs: +/Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/libc-0.2.180/src/new/apple/libpthread/sys/mod.rs: +/Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/libc-0.2.180/src/new/apple/libpthread/sys/_pthread/_pthread_types.rs: +/Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/libc-0.2.180/src/new/apple/libpthread/sys/qos.rs: +/Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/libc-0.2.180/src/new/apple/xnu/mod.rs: +/Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/libc-0.2.180/src/new/apple/xnu/arm/_mcontext.rs: +/Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/libc-0.2.180/src/new/apple/xnu/mach/mod.rs: +/Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/libc-0.2.180/src/new/apple/xnu/mach/arm/_structs.rs: +/Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/libc-0.2.180/src/new/apple/xnu/mach/machine/_structs.rs: +/Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/libc-0.2.180/src/new/apple/xnu/machine/_mcontext.rs: +/Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/libc-0.2.180/src/new/apple/xnu/sys/mod.rs: +/Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/libc-0.2.180/src/new/apple/xnu/sys/signal.rs: +/Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/libc-0.2.180/src/new/apple/xnu/sys/_types/_ucontext.rs: +/Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/libc-0.2.180/src/primitives.rs: +/Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/libc-0.2.180/src/unix/mod.rs: +/Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/libc-0.2.180/src/unix/bsd/mod.rs: +/Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/libc-0.2.180/src/unix/bsd/apple/mod.rs: +/Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/libc-0.2.180/src/unix/bsd/apple/b64/mod.rs: +/Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/libc-0.2.180/src/unix/bsd/apple/b64/aarch64/mod.rs: +/Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/libc-0.2.180/src/types.rs: diff --git a/.tmp-check-windows/debug/deps/libc-ef70e72977ad2937.libc.3f2e7850c6b04e36-cgu.0.rcgu.o b/.tmp-check-windows/debug/deps/libc-ef70e72977ad2937.libc.3f2e7850c6b04e36-cgu.0.rcgu.o new file mode 100644 index 000000000..b5d4efed4 Binary files /dev/null and b/.tmp-check-windows/debug/deps/libc-ef70e72977ad2937.libc.3f2e7850c6b04e36-cgu.0.rcgu.o differ diff --git a/.tmp-check-windows/debug/deps/libcc-9a040564725839fc.rlib b/.tmp-check-windows/debug/deps/libcc-9a040564725839fc.rlib new file mode 100644 index 000000000..d9c3bd965 Binary files /dev/null and b/.tmp-check-windows/debug/deps/libcc-9a040564725839fc.rlib differ diff --git a/.tmp-check-windows/debug/deps/libcc-9a040564725839fc.rmeta b/.tmp-check-windows/debug/deps/libcc-9a040564725839fc.rmeta new file mode 100644 index 000000000..0371b26a4 Binary files /dev/null and b/.tmp-check-windows/debug/deps/libcc-9a040564725839fc.rmeta differ diff --git a/.tmp-check-windows/debug/deps/libcfg_if-bb242b5271acb8bf.rlib b/.tmp-check-windows/debug/deps/libcfg_if-bb242b5271acb8bf.rlib new file mode 100644 index 000000000..65b2c69d1 Binary files /dev/null and b/.tmp-check-windows/debug/deps/libcfg_if-bb242b5271acb8bf.rlib differ diff --git a/.tmp-check-windows/debug/deps/libcfg_if-bb242b5271acb8bf.rmeta b/.tmp-check-windows/debug/deps/libcfg_if-bb242b5271acb8bf.rmeta new file mode 100644 index 000000000..246f97e2f Binary files /dev/null and b/.tmp-check-windows/debug/deps/libcfg_if-bb242b5271acb8bf.rmeta differ diff --git a/.tmp-check-windows/debug/deps/libdunce-1e059af6f562864b.rlib b/.tmp-check-windows/debug/deps/libdunce-1e059af6f562864b.rlib new file mode 100644 index 000000000..0cfeaa00c Binary files /dev/null and b/.tmp-check-windows/debug/deps/libdunce-1e059af6f562864b.rlib differ diff --git a/.tmp-check-windows/debug/deps/libdunce-1e059af6f562864b.rmeta b/.tmp-check-windows/debug/deps/libdunce-1e059af6f562864b.rmeta new file mode 100644 index 000000000..fde76662a Binary files /dev/null and b/.tmp-check-windows/debug/deps/libdunce-1e059af6f562864b.rmeta differ diff --git a/.tmp-check-windows/debug/deps/libfind_msvc_tools-330627f690eb7ff8.rlib b/.tmp-check-windows/debug/deps/libfind_msvc_tools-330627f690eb7ff8.rlib new file mode 100644 index 000000000..808ef30d7 Binary files /dev/null and b/.tmp-check-windows/debug/deps/libfind_msvc_tools-330627f690eb7ff8.rlib differ diff --git a/.tmp-check-windows/debug/deps/libfind_msvc_tools-330627f690eb7ff8.rmeta b/.tmp-check-windows/debug/deps/libfind_msvc_tools-330627f690eb7ff8.rmeta new file mode 100644 index 000000000..f35969b6f Binary files /dev/null and b/.tmp-check-windows/debug/deps/libfind_msvc_tools-330627f690eb7ff8.rmeta differ diff --git a/.tmp-check-windows/debug/deps/libfnv-3aad16c2d5893feb.rlib b/.tmp-check-windows/debug/deps/libfnv-3aad16c2d5893feb.rlib new file mode 100644 index 000000000..10affa943 Binary files /dev/null and b/.tmp-check-windows/debug/deps/libfnv-3aad16c2d5893feb.rlib differ diff --git a/.tmp-check-windows/debug/deps/libfnv-3aad16c2d5893feb.rmeta b/.tmp-check-windows/debug/deps/libfnv-3aad16c2d5893feb.rmeta new file mode 100644 index 000000000..982645286 Binary files /dev/null and b/.tmp-check-windows/debug/deps/libfnv-3aad16c2d5893feb.rmeta differ diff --git a/.tmp-check-windows/debug/deps/libgetrandom-11268112bacdfc1d.rlib b/.tmp-check-windows/debug/deps/libgetrandom-11268112bacdfc1d.rlib new file mode 100644 index 000000000..c32193266 Binary files /dev/null and b/.tmp-check-windows/debug/deps/libgetrandom-11268112bacdfc1d.rlib differ diff --git a/.tmp-check-windows/debug/deps/libgetrandom-11268112bacdfc1d.rmeta b/.tmp-check-windows/debug/deps/libgetrandom-11268112bacdfc1d.rmeta new file mode 100644 index 000000000..19bfdf22d Binary files /dev/null and b/.tmp-check-windows/debug/deps/libgetrandom-11268112bacdfc1d.rmeta differ diff --git a/.tmp-check-windows/debug/deps/libgetrandom-4a9c4a505267276c.rlib b/.tmp-check-windows/debug/deps/libgetrandom-4a9c4a505267276c.rlib new file mode 100644 index 000000000..7313347c1 Binary files /dev/null and b/.tmp-check-windows/debug/deps/libgetrandom-4a9c4a505267276c.rlib differ diff --git a/.tmp-check-windows/debug/deps/libgetrandom-4a9c4a505267276c.rmeta b/.tmp-check-windows/debug/deps/libgetrandom-4a9c4a505267276c.rmeta new file mode 100644 index 000000000..069afe473 Binary files /dev/null and b/.tmp-check-windows/debug/deps/libgetrandom-4a9c4a505267276c.rmeta differ diff --git a/.tmp-check-windows/debug/deps/libident_case-013f6ec9f8223e21.rlib b/.tmp-check-windows/debug/deps/libident_case-013f6ec9f8223e21.rlib new file mode 100644 index 000000000..5bf7f30bc Binary files /dev/null and b/.tmp-check-windows/debug/deps/libident_case-013f6ec9f8223e21.rlib differ diff --git a/.tmp-check-windows/debug/deps/libident_case-013f6ec9f8223e21.rmeta b/.tmp-check-windows/debug/deps/libident_case-013f6ec9f8223e21.rmeta new file mode 100644 index 000000000..00557e899 Binary files /dev/null and b/.tmp-check-windows/debug/deps/libident_case-013f6ec9f8223e21.rmeta differ diff --git a/.tmp-check-windows/debug/deps/libitoa-25a0f54eb7c7164e.rlib b/.tmp-check-windows/debug/deps/libitoa-25a0f54eb7c7164e.rlib new file mode 100644 index 000000000..2117b77bd Binary files /dev/null and b/.tmp-check-windows/debug/deps/libitoa-25a0f54eb7c7164e.rlib differ diff --git a/.tmp-check-windows/debug/deps/libitoa-25a0f54eb7c7164e.rmeta b/.tmp-check-windows/debug/deps/libitoa-25a0f54eb7c7164e.rmeta new file mode 100644 index 000000000..09699d1bb Binary files /dev/null and b/.tmp-check-windows/debug/deps/libitoa-25a0f54eb7c7164e.rmeta differ diff --git a/.tmp-check-windows/debug/deps/libjobserver-847f1be937f25301.rlib b/.tmp-check-windows/debug/deps/libjobserver-847f1be937f25301.rlib new file mode 100644 index 000000000..720a7b02e Binary files /dev/null and b/.tmp-check-windows/debug/deps/libjobserver-847f1be937f25301.rlib differ diff --git a/.tmp-check-windows/debug/deps/libjobserver-847f1be937f25301.rmeta b/.tmp-check-windows/debug/deps/libjobserver-847f1be937f25301.rmeta new file mode 100644 index 000000000..3075c4f3b Binary files /dev/null and b/.tmp-check-windows/debug/deps/libjobserver-847f1be937f25301.rmeta differ diff --git a/.tmp-check-windows/debug/deps/liblibc-ef70e72977ad2937.rlib b/.tmp-check-windows/debug/deps/liblibc-ef70e72977ad2937.rlib new file mode 100644 index 000000000..439d8f063 Binary files /dev/null and b/.tmp-check-windows/debug/deps/liblibc-ef70e72977ad2937.rlib differ diff --git a/.tmp-check-windows/debug/deps/liblibc-ef70e72977ad2937.rmeta b/.tmp-check-windows/debug/deps/liblibc-ef70e72977ad2937.rmeta new file mode 100644 index 000000000..109c0fbaf Binary files /dev/null and b/.tmp-check-windows/debug/deps/liblibc-ef70e72977ad2937.rmeta differ diff --git a/.tmp-check-windows/debug/deps/libmemchr-e732e24e160394a1.rlib b/.tmp-check-windows/debug/deps/libmemchr-e732e24e160394a1.rlib new file mode 100644 index 000000000..64f1b42df Binary files /dev/null and b/.tmp-check-windows/debug/deps/libmemchr-e732e24e160394a1.rlib differ diff --git a/.tmp-check-windows/debug/deps/libmemchr-e732e24e160394a1.rmeta b/.tmp-check-windows/debug/deps/libmemchr-e732e24e160394a1.rmeta new file mode 100644 index 000000000..ccb5cb049 Binary files /dev/null and b/.tmp-check-windows/debug/deps/libmemchr-e732e24e160394a1.rmeta differ diff --git a/.tmp-check-windows/debug/deps/libnum_conv-ec727463a6cce659.rlib b/.tmp-check-windows/debug/deps/libnum_conv-ec727463a6cce659.rlib new file mode 100644 index 000000000..94e36a42d Binary files /dev/null and b/.tmp-check-windows/debug/deps/libnum_conv-ec727463a6cce659.rlib differ diff --git a/.tmp-check-windows/debug/deps/libnum_conv-ec727463a6cce659.rmeta b/.tmp-check-windows/debug/deps/libnum_conv-ec727463a6cce659.rmeta new file mode 100644 index 000000000..dc51012ce Binary files /dev/null and b/.tmp-check-windows/debug/deps/libnum_conv-ec727463a6cce659.rmeta differ diff --git a/.tmp-check-windows/debug/deps/libphf_generator-de8dc9c939e007cb.rlib b/.tmp-check-windows/debug/deps/libphf_generator-de8dc9c939e007cb.rlib new file mode 100644 index 000000000..7ae366fec Binary files /dev/null and b/.tmp-check-windows/debug/deps/libphf_generator-de8dc9c939e007cb.rlib differ diff --git a/.tmp-check-windows/debug/deps/libphf_generator-de8dc9c939e007cb.rmeta b/.tmp-check-windows/debug/deps/libphf_generator-de8dc9c939e007cb.rmeta new file mode 100644 index 000000000..144752460 Binary files /dev/null and b/.tmp-check-windows/debug/deps/libphf_generator-de8dc9c939e007cb.rmeta differ diff --git a/.tmp-check-windows/debug/deps/libphf_shared-00e4a9dbabd31b23.rlib b/.tmp-check-windows/debug/deps/libphf_shared-00e4a9dbabd31b23.rlib new file mode 100644 index 000000000..2bafaec23 Binary files /dev/null and b/.tmp-check-windows/debug/deps/libphf_shared-00e4a9dbabd31b23.rlib differ diff --git a/.tmp-check-windows/debug/deps/libphf_shared-00e4a9dbabd31b23.rmeta b/.tmp-check-windows/debug/deps/libphf_shared-00e4a9dbabd31b23.rmeta new file mode 100644 index 000000000..964b1db60 Binary files /dev/null and b/.tmp-check-windows/debug/deps/libphf_shared-00e4a9dbabd31b23.rmeta differ diff --git a/.tmp-check-windows/debug/deps/libpkg_config-01ec38c44c4edb5c.rlib b/.tmp-check-windows/debug/deps/libpkg_config-01ec38c44c4edb5c.rlib new file mode 100644 index 000000000..daa6a9e20 Binary files /dev/null and b/.tmp-check-windows/debug/deps/libpkg_config-01ec38c44c4edb5c.rlib differ diff --git a/.tmp-check-windows/debug/deps/libpkg_config-01ec38c44c4edb5c.rmeta b/.tmp-check-windows/debug/deps/libpkg_config-01ec38c44c4edb5c.rmeta new file mode 100644 index 000000000..23f3611f5 Binary files /dev/null and b/.tmp-check-windows/debug/deps/libpkg_config-01ec38c44c4edb5c.rmeta differ diff --git a/.tmp-check-windows/debug/deps/libppv_lite86-5efa42a78a5a0b06.rlib b/.tmp-check-windows/debug/deps/libppv_lite86-5efa42a78a5a0b06.rlib new file mode 100644 index 000000000..78b98785e Binary files /dev/null and b/.tmp-check-windows/debug/deps/libppv_lite86-5efa42a78a5a0b06.rlib differ diff --git a/.tmp-check-windows/debug/deps/libppv_lite86-5efa42a78a5a0b06.rmeta b/.tmp-check-windows/debug/deps/libppv_lite86-5efa42a78a5a0b06.rmeta new file mode 100644 index 000000000..42cc5a9a8 Binary files /dev/null and b/.tmp-check-windows/debug/deps/libppv_lite86-5efa42a78a5a0b06.rmeta differ diff --git a/.tmp-check-windows/debug/deps/libproc_macro2-05370ae8c5d6ee4d.rlib b/.tmp-check-windows/debug/deps/libproc_macro2-05370ae8c5d6ee4d.rlib new file mode 100644 index 000000000..514bb1b99 Binary files /dev/null and b/.tmp-check-windows/debug/deps/libproc_macro2-05370ae8c5d6ee4d.rlib differ diff --git a/.tmp-check-windows/debug/deps/libproc_macro2-05370ae8c5d6ee4d.rmeta b/.tmp-check-windows/debug/deps/libproc_macro2-05370ae8c5d6ee4d.rmeta new file mode 100644 index 000000000..5b6f12845 Binary files /dev/null and b/.tmp-check-windows/debug/deps/libproc_macro2-05370ae8c5d6ee4d.rmeta differ diff --git a/.tmp-check-windows/debug/deps/libquote-5ab4e48c22bca86d.rlib b/.tmp-check-windows/debug/deps/libquote-5ab4e48c22bca86d.rlib new file mode 100644 index 000000000..e0b99d353 Binary files /dev/null and b/.tmp-check-windows/debug/deps/libquote-5ab4e48c22bca86d.rlib differ diff --git a/.tmp-check-windows/debug/deps/libquote-5ab4e48c22bca86d.rmeta b/.tmp-check-windows/debug/deps/libquote-5ab4e48c22bca86d.rmeta new file mode 100644 index 000000000..2243b85cd Binary files /dev/null and b/.tmp-check-windows/debug/deps/libquote-5ab4e48c22bca86d.rmeta differ diff --git a/.tmp-check-windows/debug/deps/librand-ca8d7a8b1b4b6e91.rlib b/.tmp-check-windows/debug/deps/librand-ca8d7a8b1b4b6e91.rlib new file mode 100644 index 000000000..cdffbe707 Binary files /dev/null and b/.tmp-check-windows/debug/deps/librand-ca8d7a8b1b4b6e91.rlib differ diff --git a/.tmp-check-windows/debug/deps/librand-ca8d7a8b1b4b6e91.rmeta b/.tmp-check-windows/debug/deps/librand-ca8d7a8b1b4b6e91.rmeta new file mode 100644 index 000000000..4d37dcdaa Binary files /dev/null and b/.tmp-check-windows/debug/deps/librand-ca8d7a8b1b4b6e91.rmeta differ diff --git a/.tmp-check-windows/debug/deps/librand_chacha-b996a58b86cd87f0.rlib b/.tmp-check-windows/debug/deps/librand_chacha-b996a58b86cd87f0.rlib new file mode 100644 index 000000000..e1b01eb04 Binary files /dev/null and b/.tmp-check-windows/debug/deps/librand_chacha-b996a58b86cd87f0.rlib differ diff --git a/.tmp-check-windows/debug/deps/librand_chacha-b996a58b86cd87f0.rmeta b/.tmp-check-windows/debug/deps/librand_chacha-b996a58b86cd87f0.rmeta new file mode 100644 index 000000000..38eea8fb5 Binary files /dev/null and b/.tmp-check-windows/debug/deps/librand_chacha-b996a58b86cd87f0.rmeta differ diff --git a/.tmp-check-windows/debug/deps/librand_chacha-df53c86858a7ab42.rlib b/.tmp-check-windows/debug/deps/librand_chacha-df53c86858a7ab42.rlib new file mode 100644 index 000000000..24aaf2006 Binary files /dev/null and b/.tmp-check-windows/debug/deps/librand_chacha-df53c86858a7ab42.rlib differ diff --git a/.tmp-check-windows/debug/deps/librand_chacha-df53c86858a7ab42.rmeta b/.tmp-check-windows/debug/deps/librand_chacha-df53c86858a7ab42.rmeta new file mode 100644 index 000000000..86c783085 Binary files /dev/null and b/.tmp-check-windows/debug/deps/librand_chacha-df53c86858a7ab42.rmeta differ diff --git a/.tmp-check-windows/debug/deps/librand_core-051728e3b27028a4.rlib b/.tmp-check-windows/debug/deps/librand_core-051728e3b27028a4.rlib new file mode 100644 index 000000000..bccab8ae7 Binary files /dev/null and b/.tmp-check-windows/debug/deps/librand_core-051728e3b27028a4.rlib differ diff --git a/.tmp-check-windows/debug/deps/librand_core-051728e3b27028a4.rmeta b/.tmp-check-windows/debug/deps/librand_core-051728e3b27028a4.rmeta new file mode 100644 index 000000000..c34f31acd Binary files /dev/null and b/.tmp-check-windows/debug/deps/librand_core-051728e3b27028a4.rmeta differ diff --git a/.tmp-check-windows/debug/deps/librand_core-a8e35fcc86bce3df.rlib b/.tmp-check-windows/debug/deps/librand_core-a8e35fcc86bce3df.rlib new file mode 100644 index 000000000..8d0156d60 Binary files /dev/null and b/.tmp-check-windows/debug/deps/librand_core-a8e35fcc86bce3df.rlib differ diff --git a/.tmp-check-windows/debug/deps/librand_core-a8e35fcc86bce3df.rmeta b/.tmp-check-windows/debug/deps/librand_core-a8e35fcc86bce3df.rmeta new file mode 100644 index 000000000..5825b011f Binary files /dev/null and b/.tmp-check-windows/debug/deps/librand_core-a8e35fcc86bce3df.rmeta differ diff --git a/.tmp-check-windows/debug/deps/librand_pcg-40dcf86c8ec86296.rlib b/.tmp-check-windows/debug/deps/librand_pcg-40dcf86c8ec86296.rlib new file mode 100644 index 000000000..3ad2f4d63 Binary files /dev/null and b/.tmp-check-windows/debug/deps/librand_pcg-40dcf86c8ec86296.rlib differ diff --git a/.tmp-check-windows/debug/deps/librand_pcg-40dcf86c8ec86296.rmeta b/.tmp-check-windows/debug/deps/librand_pcg-40dcf86c8ec86296.rmeta new file mode 100644 index 000000000..35943d1a0 Binary files /dev/null and b/.tmp-check-windows/debug/deps/librand_pcg-40dcf86c8ec86296.rmeta differ diff --git a/.tmp-check-windows/debug/deps/libsemver-543345514cf43968.rlib b/.tmp-check-windows/debug/deps/libsemver-543345514cf43968.rlib new file mode 100644 index 000000000..2e152d32a Binary files /dev/null and b/.tmp-check-windows/debug/deps/libsemver-543345514cf43968.rlib differ diff --git a/.tmp-check-windows/debug/deps/libsemver-543345514cf43968.rmeta b/.tmp-check-windows/debug/deps/libsemver-543345514cf43968.rmeta new file mode 100644 index 000000000..b067087a3 Binary files /dev/null and b/.tmp-check-windows/debug/deps/libsemver-543345514cf43968.rmeta differ diff --git a/.tmp-check-windows/debug/deps/libserde_core-cefd6cbc7f95582d.rlib b/.tmp-check-windows/debug/deps/libserde_core-cefd6cbc7f95582d.rlib new file mode 100644 index 000000000..e845fd783 Binary files /dev/null and b/.tmp-check-windows/debug/deps/libserde_core-cefd6cbc7f95582d.rlib differ diff --git a/.tmp-check-windows/debug/deps/libserde_core-cefd6cbc7f95582d.rmeta b/.tmp-check-windows/debug/deps/libserde_core-cefd6cbc7f95582d.rmeta new file mode 100644 index 000000000..da514e152 Binary files /dev/null and b/.tmp-check-windows/debug/deps/libserde_core-cefd6cbc7f95582d.rmeta differ diff --git a/.tmp-check-windows/debug/deps/libserde_derive-89ba98fc0a6b891c.dylib b/.tmp-check-windows/debug/deps/libserde_derive-89ba98fc0a6b891c.dylib new file mode 100755 index 000000000..182ce1464 Binary files /dev/null and b/.tmp-check-windows/debug/deps/libserde_derive-89ba98fc0a6b891c.dylib differ diff --git a/.tmp-check-windows/debug/deps/libserde_json-6c77cebf97b17baa.rlib b/.tmp-check-windows/debug/deps/libserde_json-6c77cebf97b17baa.rlib new file mode 100644 index 000000000..9d9f10872 Binary files /dev/null and b/.tmp-check-windows/debug/deps/libserde_json-6c77cebf97b17baa.rlib differ diff --git a/.tmp-check-windows/debug/deps/libserde_json-6c77cebf97b17baa.rmeta b/.tmp-check-windows/debug/deps/libserde_json-6c77cebf97b17baa.rmeta new file mode 100644 index 000000000..7f7d3b74a Binary files /dev/null and b/.tmp-check-windows/debug/deps/libserde_json-6c77cebf97b17baa.rmeta differ diff --git a/.tmp-check-windows/debug/deps/libshlex-7171638d6f63b0df.rlib b/.tmp-check-windows/debug/deps/libshlex-7171638d6f63b0df.rlib new file mode 100644 index 000000000..cf395b37c Binary files /dev/null and b/.tmp-check-windows/debug/deps/libshlex-7171638d6f63b0df.rlib differ diff --git a/.tmp-check-windows/debug/deps/libshlex-7171638d6f63b0df.rmeta b/.tmp-check-windows/debug/deps/libshlex-7171638d6f63b0df.rmeta new file mode 100644 index 000000000..2116cfbf8 Binary files /dev/null and b/.tmp-check-windows/debug/deps/libshlex-7171638d6f63b0df.rmeta differ diff --git a/.tmp-check-windows/debug/deps/libsiphasher-1009363a57ead995.rlib b/.tmp-check-windows/debug/deps/libsiphasher-1009363a57ead995.rlib new file mode 100644 index 000000000..ff5bf4b62 Binary files /dev/null and b/.tmp-check-windows/debug/deps/libsiphasher-1009363a57ead995.rlib differ diff --git a/.tmp-check-windows/debug/deps/libsiphasher-1009363a57ead995.rmeta b/.tmp-check-windows/debug/deps/libsiphasher-1009363a57ead995.rmeta new file mode 100644 index 000000000..d624cda22 Binary files /dev/null and b/.tmp-check-windows/debug/deps/libsiphasher-1009363a57ead995.rmeta differ diff --git a/.tmp-check-windows/debug/deps/libsiphasher-345e9d0d879105b4.rlib b/.tmp-check-windows/debug/deps/libsiphasher-345e9d0d879105b4.rlib new file mode 100644 index 000000000..5c3259a27 Binary files /dev/null and b/.tmp-check-windows/debug/deps/libsiphasher-345e9d0d879105b4.rlib differ diff --git a/.tmp-check-windows/debug/deps/libsiphasher-345e9d0d879105b4.rmeta b/.tmp-check-windows/debug/deps/libsiphasher-345e9d0d879105b4.rmeta new file mode 100644 index 000000000..da6b19ab3 Binary files /dev/null and b/.tmp-check-windows/debug/deps/libsiphasher-345e9d0d879105b4.rmeta differ diff --git a/.tmp-check-windows/debug/deps/libsmallvec-98f2f3c753ea1c31.rlib b/.tmp-check-windows/debug/deps/libsmallvec-98f2f3c753ea1c31.rlib new file mode 100644 index 000000000..513391212 Binary files /dev/null and b/.tmp-check-windows/debug/deps/libsmallvec-98f2f3c753ea1c31.rlib differ diff --git a/.tmp-check-windows/debug/deps/libsmallvec-98f2f3c753ea1c31.rmeta b/.tmp-check-windows/debug/deps/libsmallvec-98f2f3c753ea1c31.rmeta new file mode 100644 index 000000000..bf83bbeca Binary files /dev/null and b/.tmp-check-windows/debug/deps/libsmallvec-98f2f3c753ea1c31.rmeta differ diff --git a/.tmp-check-windows/debug/deps/libstable_deref_trait-079674d525393046.rlib b/.tmp-check-windows/debug/deps/libstable_deref_trait-079674d525393046.rlib new file mode 100644 index 000000000..8b64683af Binary files /dev/null and b/.tmp-check-windows/debug/deps/libstable_deref_trait-079674d525393046.rlib differ diff --git a/.tmp-check-windows/debug/deps/libstable_deref_trait-079674d525393046.rmeta b/.tmp-check-windows/debug/deps/libstable_deref_trait-079674d525393046.rmeta new file mode 100644 index 000000000..1078d7eeb Binary files /dev/null and b/.tmp-check-windows/debug/deps/libstable_deref_trait-079674d525393046.rmeta differ diff --git a/.tmp-check-windows/debug/deps/libstrsim-5ae94b339ebb4964.rlib b/.tmp-check-windows/debug/deps/libstrsim-5ae94b339ebb4964.rlib new file mode 100644 index 000000000..7045661da Binary files /dev/null and b/.tmp-check-windows/debug/deps/libstrsim-5ae94b339ebb4964.rlib differ diff --git a/.tmp-check-windows/debug/deps/libstrsim-5ae94b339ebb4964.rmeta b/.tmp-check-windows/debug/deps/libstrsim-5ae94b339ebb4964.rmeta new file mode 100644 index 000000000..576c998b1 Binary files /dev/null and b/.tmp-check-windows/debug/deps/libstrsim-5ae94b339ebb4964.rmeta differ diff --git a/.tmp-check-windows/debug/deps/libsyn-01a0fc01109b9e8a.rlib b/.tmp-check-windows/debug/deps/libsyn-01a0fc01109b9e8a.rlib new file mode 100644 index 000000000..52990c085 Binary files /dev/null and b/.tmp-check-windows/debug/deps/libsyn-01a0fc01109b9e8a.rlib differ diff --git a/.tmp-check-windows/debug/deps/libsyn-01a0fc01109b9e8a.rmeta b/.tmp-check-windows/debug/deps/libsyn-01a0fc01109b9e8a.rmeta new file mode 100644 index 000000000..97ce0377f Binary files /dev/null and b/.tmp-check-windows/debug/deps/libsyn-01a0fc01109b9e8a.rmeta differ diff --git a/.tmp-check-windows/debug/deps/libsynstructure-cd990b40b40e7322.rlib b/.tmp-check-windows/debug/deps/libsynstructure-cd990b40b40e7322.rlib new file mode 100644 index 000000000..f07ac7567 Binary files /dev/null and b/.tmp-check-windows/debug/deps/libsynstructure-cd990b40b40e7322.rlib differ diff --git a/.tmp-check-windows/debug/deps/libsynstructure-cd990b40b40e7322.rmeta b/.tmp-check-windows/debug/deps/libsynstructure-cd990b40b40e7322.rmeta new file mode 100644 index 000000000..d40aae301 Binary files /dev/null and b/.tmp-check-windows/debug/deps/libsynstructure-cd990b40b40e7322.rmeta differ diff --git a/.tmp-check-windows/debug/deps/libtime_core-bf187c8f94feacd5.rlib b/.tmp-check-windows/debug/deps/libtime_core-bf187c8f94feacd5.rlib new file mode 100644 index 000000000..6424ea075 Binary files /dev/null and b/.tmp-check-windows/debug/deps/libtime_core-bf187c8f94feacd5.rlib differ diff --git a/.tmp-check-windows/debug/deps/libtime_core-bf187c8f94feacd5.rmeta b/.tmp-check-windows/debug/deps/libtime_core-bf187c8f94feacd5.rmeta new file mode 100644 index 000000000..4fff08e9d Binary files /dev/null and b/.tmp-check-windows/debug/deps/libtime_core-bf187c8f94feacd5.rmeta differ diff --git a/.tmp-check-windows/debug/deps/libtime_macros-c4406bda9a40cce8.dylib b/.tmp-check-windows/debug/deps/libtime_macros-c4406bda9a40cce8.dylib new file mode 100755 index 000000000..58b629e2f Binary files /dev/null and b/.tmp-check-windows/debug/deps/libtime_macros-c4406bda9a40cce8.dylib differ diff --git a/.tmp-check-windows/debug/deps/libunicode_ident-be69b2baaa981aa6.rlib b/.tmp-check-windows/debug/deps/libunicode_ident-be69b2baaa981aa6.rlib new file mode 100644 index 000000000..5aa6c791b Binary files /dev/null and b/.tmp-check-windows/debug/deps/libunicode_ident-be69b2baaa981aa6.rlib differ diff --git a/.tmp-check-windows/debug/deps/libunicode_ident-be69b2baaa981aa6.rmeta b/.tmp-check-windows/debug/deps/libunicode_ident-be69b2baaa981aa6.rmeta new file mode 100644 index 000000000..7c5720fcb Binary files /dev/null and b/.tmp-check-windows/debug/deps/libunicode_ident-be69b2baaa981aa6.rmeta differ diff --git a/.tmp-check-windows/debug/deps/libversion_check-424b161a97c75473.rlib b/.tmp-check-windows/debug/deps/libversion_check-424b161a97c75473.rlib new file mode 100644 index 000000000..73bc23c47 Binary files /dev/null and b/.tmp-check-windows/debug/deps/libversion_check-424b161a97c75473.rlib differ diff --git a/.tmp-check-windows/debug/deps/libversion_check-424b161a97c75473.rmeta b/.tmp-check-windows/debug/deps/libversion_check-424b161a97c75473.rmeta new file mode 100644 index 000000000..cbaf48c30 Binary files /dev/null and b/.tmp-check-windows/debug/deps/libversion_check-424b161a97c75473.rmeta differ diff --git a/.tmp-check-windows/debug/deps/libwriteable-7e7c486cd9376f84.rlib b/.tmp-check-windows/debug/deps/libwriteable-7e7c486cd9376f84.rlib new file mode 100644 index 000000000..a5e8f83cf Binary files /dev/null and b/.tmp-check-windows/debug/deps/libwriteable-7e7c486cd9376f84.rlib differ diff --git a/.tmp-check-windows/debug/deps/libwriteable-7e7c486cd9376f84.rmeta b/.tmp-check-windows/debug/deps/libwriteable-7e7c486cd9376f84.rmeta new file mode 100644 index 000000000..ee8a8b454 Binary files /dev/null and b/.tmp-check-windows/debug/deps/libwriteable-7e7c486cd9376f84.rmeta differ diff --git a/.tmp-check-windows/debug/deps/libyoke_derive-1f91f6751dc2866d.dylib b/.tmp-check-windows/debug/deps/libyoke_derive-1f91f6751dc2866d.dylib new file mode 100755 index 000000000..ee62f23c1 Binary files /dev/null and b/.tmp-check-windows/debug/deps/libyoke_derive-1f91f6751dc2866d.dylib differ diff --git a/.tmp-check-windows/debug/deps/libzerocopy-a2b022916120892e.rlib b/.tmp-check-windows/debug/deps/libzerocopy-a2b022916120892e.rlib new file mode 100644 index 000000000..854765107 Binary files /dev/null and b/.tmp-check-windows/debug/deps/libzerocopy-a2b022916120892e.rlib differ diff --git a/.tmp-check-windows/debug/deps/libzerocopy-a2b022916120892e.rmeta b/.tmp-check-windows/debug/deps/libzerocopy-a2b022916120892e.rmeta new file mode 100644 index 000000000..4f04ec783 Binary files /dev/null and b/.tmp-check-windows/debug/deps/libzerocopy-a2b022916120892e.rmeta differ diff --git a/.tmp-check-windows/debug/deps/libzerofrom_derive-cc5732938083fb5d.dylib b/.tmp-check-windows/debug/deps/libzerofrom_derive-cc5732938083fb5d.dylib new file mode 100755 index 000000000..3527b86df Binary files /dev/null and b/.tmp-check-windows/debug/deps/libzerofrom_derive-cc5732938083fb5d.dylib differ diff --git a/.tmp-check-windows/debug/deps/libzerovec_derive-102b2341acf1be88.dylib b/.tmp-check-windows/debug/deps/libzerovec_derive-102b2341acf1be88.dylib new file mode 100755 index 000000000..b6c2420d3 Binary files /dev/null and b/.tmp-check-windows/debug/deps/libzerovec_derive-102b2341acf1be88.dylib differ diff --git a/.tmp-check-windows/debug/deps/libzmij-dcc967559ac11d96.rlib b/.tmp-check-windows/debug/deps/libzmij-dcc967559ac11d96.rlib new file mode 100644 index 000000000..b391078a9 Binary files /dev/null and b/.tmp-check-windows/debug/deps/libzmij-dcc967559ac11d96.rlib differ diff --git a/.tmp-check-windows/debug/deps/libzmij-dcc967559ac11d96.rmeta b/.tmp-check-windows/debug/deps/libzmij-dcc967559ac11d96.rmeta new file mode 100644 index 000000000..4bfe07097 Binary files /dev/null and b/.tmp-check-windows/debug/deps/libzmij-dcc967559ac11d96.rmeta differ diff --git a/.tmp-check-windows/debug/deps/memchr-e732e24e160394a1.d b/.tmp-check-windows/debug/deps/memchr-e732e24e160394a1.d new file mode 100644 index 000000000..1a4b3d310 --- /dev/null +++ b/.tmp-check-windows/debug/deps/memchr-e732e24e160394a1.d @@ -0,0 +1,30 @@ +/Users/coso/Documents/dev/ai/aiclientproxy/lime/.tmp-check-windows/debug/deps/memchr-e732e24e160394a1.d: /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/memchr-2.8.0/src/lib.rs /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/memchr-2.8.0/src/macros.rs /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/memchr-2.8.0/src/arch/mod.rs /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/memchr-2.8.0/src/arch/all/mod.rs /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/memchr-2.8.0/src/arch/all/memchr.rs /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/memchr-2.8.0/src/arch/all/packedpair/mod.rs /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/memchr-2.8.0/src/arch/all/packedpair/default_rank.rs /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/memchr-2.8.0/src/arch/all/rabinkarp.rs /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/memchr-2.8.0/src/arch/all/shiftor.rs /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/memchr-2.8.0/src/arch/all/twoway.rs /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/memchr-2.8.0/src/arch/generic/mod.rs /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/memchr-2.8.0/src/arch/generic/memchr.rs /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/memchr-2.8.0/src/arch/generic/packedpair.rs /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/memchr-2.8.0/src/arch/aarch64/mod.rs /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/memchr-2.8.0/src/arch/aarch64/neon/mod.rs /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/memchr-2.8.0/src/arch/aarch64/neon/memchr.rs /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/memchr-2.8.0/src/arch/aarch64/neon/packedpair.rs /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/memchr-2.8.0/src/arch/aarch64/memchr.rs /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/memchr-2.8.0/src/cow.rs /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/memchr-2.8.0/src/ext.rs /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/memchr-2.8.0/src/memchr.rs /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/memchr-2.8.0/src/memmem/mod.rs /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/memchr-2.8.0/src/memmem/searcher.rs /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/memchr-2.8.0/src/vector.rs + +/Users/coso/Documents/dev/ai/aiclientproxy/lime/.tmp-check-windows/debug/deps/libmemchr-e732e24e160394a1.rlib: /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/memchr-2.8.0/src/lib.rs /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/memchr-2.8.0/src/macros.rs /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/memchr-2.8.0/src/arch/mod.rs /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/memchr-2.8.0/src/arch/all/mod.rs /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/memchr-2.8.0/src/arch/all/memchr.rs /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/memchr-2.8.0/src/arch/all/packedpair/mod.rs /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/memchr-2.8.0/src/arch/all/packedpair/default_rank.rs /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/memchr-2.8.0/src/arch/all/rabinkarp.rs /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/memchr-2.8.0/src/arch/all/shiftor.rs /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/memchr-2.8.0/src/arch/all/twoway.rs /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/memchr-2.8.0/src/arch/generic/mod.rs /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/memchr-2.8.0/src/arch/generic/memchr.rs /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/memchr-2.8.0/src/arch/generic/packedpair.rs /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/memchr-2.8.0/src/arch/aarch64/mod.rs /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/memchr-2.8.0/src/arch/aarch64/neon/mod.rs /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/memchr-2.8.0/src/arch/aarch64/neon/memchr.rs /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/memchr-2.8.0/src/arch/aarch64/neon/packedpair.rs /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/memchr-2.8.0/src/arch/aarch64/memchr.rs /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/memchr-2.8.0/src/cow.rs /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/memchr-2.8.0/src/ext.rs /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/memchr-2.8.0/src/memchr.rs /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/memchr-2.8.0/src/memmem/mod.rs /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/memchr-2.8.0/src/memmem/searcher.rs /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/memchr-2.8.0/src/vector.rs + +/Users/coso/Documents/dev/ai/aiclientproxy/lime/.tmp-check-windows/debug/deps/libmemchr-e732e24e160394a1.rmeta: /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/memchr-2.8.0/src/lib.rs /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/memchr-2.8.0/src/macros.rs /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/memchr-2.8.0/src/arch/mod.rs /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/memchr-2.8.0/src/arch/all/mod.rs /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/memchr-2.8.0/src/arch/all/memchr.rs /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/memchr-2.8.0/src/arch/all/packedpair/mod.rs /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/memchr-2.8.0/src/arch/all/packedpair/default_rank.rs /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/memchr-2.8.0/src/arch/all/rabinkarp.rs /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/memchr-2.8.0/src/arch/all/shiftor.rs /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/memchr-2.8.0/src/arch/all/twoway.rs /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/memchr-2.8.0/src/arch/generic/mod.rs /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/memchr-2.8.0/src/arch/generic/memchr.rs /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/memchr-2.8.0/src/arch/generic/packedpair.rs /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/memchr-2.8.0/src/arch/aarch64/mod.rs /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/memchr-2.8.0/src/arch/aarch64/neon/mod.rs /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/memchr-2.8.0/src/arch/aarch64/neon/memchr.rs /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/memchr-2.8.0/src/arch/aarch64/neon/packedpair.rs /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/memchr-2.8.0/src/arch/aarch64/memchr.rs /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/memchr-2.8.0/src/cow.rs /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/memchr-2.8.0/src/ext.rs /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/memchr-2.8.0/src/memchr.rs /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/memchr-2.8.0/src/memmem/mod.rs /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/memchr-2.8.0/src/memmem/searcher.rs /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/memchr-2.8.0/src/vector.rs + +/Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/memchr-2.8.0/src/lib.rs: +/Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/memchr-2.8.0/src/macros.rs: +/Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/memchr-2.8.0/src/arch/mod.rs: +/Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/memchr-2.8.0/src/arch/all/mod.rs: +/Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/memchr-2.8.0/src/arch/all/memchr.rs: +/Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/memchr-2.8.0/src/arch/all/packedpair/mod.rs: +/Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/memchr-2.8.0/src/arch/all/packedpair/default_rank.rs: +/Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/memchr-2.8.0/src/arch/all/rabinkarp.rs: +/Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/memchr-2.8.0/src/arch/all/shiftor.rs: +/Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/memchr-2.8.0/src/arch/all/twoway.rs: +/Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/memchr-2.8.0/src/arch/generic/mod.rs: +/Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/memchr-2.8.0/src/arch/generic/memchr.rs: +/Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/memchr-2.8.0/src/arch/generic/packedpair.rs: +/Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/memchr-2.8.0/src/arch/aarch64/mod.rs: +/Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/memchr-2.8.0/src/arch/aarch64/neon/mod.rs: +/Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/memchr-2.8.0/src/arch/aarch64/neon/memchr.rs: +/Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/memchr-2.8.0/src/arch/aarch64/neon/packedpair.rs: +/Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/memchr-2.8.0/src/arch/aarch64/memchr.rs: +/Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/memchr-2.8.0/src/cow.rs: +/Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/memchr-2.8.0/src/ext.rs: +/Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/memchr-2.8.0/src/memchr.rs: +/Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/memchr-2.8.0/src/memmem/mod.rs: +/Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/memchr-2.8.0/src/memmem/searcher.rs: +/Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/memchr-2.8.0/src/vector.rs: diff --git a/.tmp-check-windows/debug/deps/memchr-e732e24e160394a1.memchr.225bcd6dec5c59eb-cgu.0.rcgu.o b/.tmp-check-windows/debug/deps/memchr-e732e24e160394a1.memchr.225bcd6dec5c59eb-cgu.0.rcgu.o new file mode 100644 index 000000000..6f83b9260 Binary files /dev/null and b/.tmp-check-windows/debug/deps/memchr-e732e24e160394a1.memchr.225bcd6dec5c59eb-cgu.0.rcgu.o differ diff --git a/.tmp-check-windows/debug/deps/num_conv-ec727463a6cce659.d b/.tmp-check-windows/debug/deps/num_conv-ec727463a6cce659.d new file mode 100644 index 000000000..c6afe780d --- /dev/null +++ b/.tmp-check-windows/debug/deps/num_conv-ec727463a6cce659.d @@ -0,0 +1,7 @@ +/Users/coso/Documents/dev/ai/aiclientproxy/lime/.tmp-check-windows/debug/deps/num_conv-ec727463a6cce659.d: /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/num-conv-0.2.0/src/lib.rs + +/Users/coso/Documents/dev/ai/aiclientproxy/lime/.tmp-check-windows/debug/deps/libnum_conv-ec727463a6cce659.rlib: /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/num-conv-0.2.0/src/lib.rs + +/Users/coso/Documents/dev/ai/aiclientproxy/lime/.tmp-check-windows/debug/deps/libnum_conv-ec727463a6cce659.rmeta: /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/num-conv-0.2.0/src/lib.rs + +/Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/num-conv-0.2.0/src/lib.rs: diff --git a/.tmp-check-windows/debug/deps/num_conv-ec727463a6cce659.num_conv.11ec570f30e077cf-cgu.0.rcgu.o b/.tmp-check-windows/debug/deps/num_conv-ec727463a6cce659.num_conv.11ec570f30e077cf-cgu.0.rcgu.o new file mode 100644 index 000000000..912c2d1ab Binary files /dev/null and b/.tmp-check-windows/debug/deps/num_conv-ec727463a6cce659.num_conv.11ec570f30e077cf-cgu.0.rcgu.o differ diff --git a/.tmp-check-windows/debug/deps/phf_generator-de8dc9c939e007cb.d b/.tmp-check-windows/debug/deps/phf_generator-de8dc9c939e007cb.d new file mode 100644 index 000000000..3f2c8c555 --- /dev/null +++ b/.tmp-check-windows/debug/deps/phf_generator-de8dc9c939e007cb.d @@ -0,0 +1,7 @@ +/Users/coso/Documents/dev/ai/aiclientproxy/lime/.tmp-check-windows/debug/deps/phf_generator-de8dc9c939e007cb.d: /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/phf_generator-0.11.3/src/lib.rs + +/Users/coso/Documents/dev/ai/aiclientproxy/lime/.tmp-check-windows/debug/deps/libphf_generator-de8dc9c939e007cb.rlib: /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/phf_generator-0.11.3/src/lib.rs + +/Users/coso/Documents/dev/ai/aiclientproxy/lime/.tmp-check-windows/debug/deps/libphf_generator-de8dc9c939e007cb.rmeta: /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/phf_generator-0.11.3/src/lib.rs + +/Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/phf_generator-0.11.3/src/lib.rs: diff --git a/.tmp-check-windows/debug/deps/phf_generator-de8dc9c939e007cb.phf_generator.52c1eaf345347ad1-cgu.0.rcgu.o b/.tmp-check-windows/debug/deps/phf_generator-de8dc9c939e007cb.phf_generator.52c1eaf345347ad1-cgu.0.rcgu.o new file mode 100644 index 000000000..27d39da01 Binary files /dev/null and b/.tmp-check-windows/debug/deps/phf_generator-de8dc9c939e007cb.phf_generator.52c1eaf345347ad1-cgu.0.rcgu.o differ diff --git a/.tmp-check-windows/debug/deps/phf_generator-de8dc9c939e007cb.phf_generator.52c1eaf345347ad1-cgu.1.rcgu.o b/.tmp-check-windows/debug/deps/phf_generator-de8dc9c939e007cb.phf_generator.52c1eaf345347ad1-cgu.1.rcgu.o new file mode 100644 index 000000000..64aa78977 Binary files /dev/null and b/.tmp-check-windows/debug/deps/phf_generator-de8dc9c939e007cb.phf_generator.52c1eaf345347ad1-cgu.1.rcgu.o differ diff --git a/.tmp-check-windows/debug/deps/phf_shared-00e4a9dbabd31b23.d b/.tmp-check-windows/debug/deps/phf_shared-00e4a9dbabd31b23.d new file mode 100644 index 000000000..16055538c --- /dev/null +++ b/.tmp-check-windows/debug/deps/phf_shared-00e4a9dbabd31b23.d @@ -0,0 +1,7 @@ +/Users/coso/Documents/dev/ai/aiclientproxy/lime/.tmp-check-windows/debug/deps/phf_shared-00e4a9dbabd31b23.d: /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/phf_shared-0.11.3/src/lib.rs + +/Users/coso/Documents/dev/ai/aiclientproxy/lime/.tmp-check-windows/debug/deps/libphf_shared-00e4a9dbabd31b23.rlib: /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/phf_shared-0.11.3/src/lib.rs + +/Users/coso/Documents/dev/ai/aiclientproxy/lime/.tmp-check-windows/debug/deps/libphf_shared-00e4a9dbabd31b23.rmeta: /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/phf_shared-0.11.3/src/lib.rs + +/Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/phf_shared-0.11.3/src/lib.rs: diff --git a/.tmp-check-windows/debug/deps/phf_shared-00e4a9dbabd31b23.phf_shared.bb3dfbda54b62802-cgu.0.rcgu.o b/.tmp-check-windows/debug/deps/phf_shared-00e4a9dbabd31b23.phf_shared.bb3dfbda54b62802-cgu.0.rcgu.o new file mode 100644 index 000000000..89970fa9c Binary files /dev/null and b/.tmp-check-windows/debug/deps/phf_shared-00e4a9dbabd31b23.phf_shared.bb3dfbda54b62802-cgu.0.rcgu.o differ diff --git a/.tmp-check-windows/debug/deps/pkg_config-01ec38c44c4edb5c.d b/.tmp-check-windows/debug/deps/pkg_config-01ec38c44c4edb5c.d new file mode 100644 index 000000000..1bbc5584f --- /dev/null +++ b/.tmp-check-windows/debug/deps/pkg_config-01ec38c44c4edb5c.d @@ -0,0 +1,7 @@ +/Users/coso/Documents/dev/ai/aiclientproxy/lime/.tmp-check-windows/debug/deps/pkg_config-01ec38c44c4edb5c.d: /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/pkg-config-0.3.32/src/lib.rs + +/Users/coso/Documents/dev/ai/aiclientproxy/lime/.tmp-check-windows/debug/deps/libpkg_config-01ec38c44c4edb5c.rlib: /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/pkg-config-0.3.32/src/lib.rs + +/Users/coso/Documents/dev/ai/aiclientproxy/lime/.tmp-check-windows/debug/deps/libpkg_config-01ec38c44c4edb5c.rmeta: /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/pkg-config-0.3.32/src/lib.rs + +/Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/pkg-config-0.3.32/src/lib.rs: diff --git a/.tmp-check-windows/debug/deps/pkg_config-01ec38c44c4edb5c.pkg_config.415c3486cadee549-cgu.00.rcgu.o b/.tmp-check-windows/debug/deps/pkg_config-01ec38c44c4edb5c.pkg_config.415c3486cadee549-cgu.00.rcgu.o new file mode 100644 index 000000000..eaa0edc50 Binary files /dev/null and b/.tmp-check-windows/debug/deps/pkg_config-01ec38c44c4edb5c.pkg_config.415c3486cadee549-cgu.00.rcgu.o differ diff --git a/.tmp-check-windows/debug/deps/pkg_config-01ec38c44c4edb5c.pkg_config.415c3486cadee549-cgu.01.rcgu.o b/.tmp-check-windows/debug/deps/pkg_config-01ec38c44c4edb5c.pkg_config.415c3486cadee549-cgu.01.rcgu.o new file mode 100644 index 000000000..936f9de40 Binary files /dev/null and b/.tmp-check-windows/debug/deps/pkg_config-01ec38c44c4edb5c.pkg_config.415c3486cadee549-cgu.01.rcgu.o differ diff --git a/.tmp-check-windows/debug/deps/pkg_config-01ec38c44c4edb5c.pkg_config.415c3486cadee549-cgu.02.rcgu.o b/.tmp-check-windows/debug/deps/pkg_config-01ec38c44c4edb5c.pkg_config.415c3486cadee549-cgu.02.rcgu.o new file mode 100644 index 000000000..3c937ce39 Binary files /dev/null and b/.tmp-check-windows/debug/deps/pkg_config-01ec38c44c4edb5c.pkg_config.415c3486cadee549-cgu.02.rcgu.o differ diff --git a/.tmp-check-windows/debug/deps/pkg_config-01ec38c44c4edb5c.pkg_config.415c3486cadee549-cgu.03.rcgu.o b/.tmp-check-windows/debug/deps/pkg_config-01ec38c44c4edb5c.pkg_config.415c3486cadee549-cgu.03.rcgu.o new file mode 100644 index 000000000..c43844963 Binary files /dev/null and b/.tmp-check-windows/debug/deps/pkg_config-01ec38c44c4edb5c.pkg_config.415c3486cadee549-cgu.03.rcgu.o differ diff --git a/.tmp-check-windows/debug/deps/pkg_config-01ec38c44c4edb5c.pkg_config.415c3486cadee549-cgu.04.rcgu.o b/.tmp-check-windows/debug/deps/pkg_config-01ec38c44c4edb5c.pkg_config.415c3486cadee549-cgu.04.rcgu.o new file mode 100644 index 000000000..3f56f3ca0 Binary files /dev/null and b/.tmp-check-windows/debug/deps/pkg_config-01ec38c44c4edb5c.pkg_config.415c3486cadee549-cgu.04.rcgu.o differ diff --git a/.tmp-check-windows/debug/deps/pkg_config-01ec38c44c4edb5c.pkg_config.415c3486cadee549-cgu.05.rcgu.o b/.tmp-check-windows/debug/deps/pkg_config-01ec38c44c4edb5c.pkg_config.415c3486cadee549-cgu.05.rcgu.o new file mode 100644 index 000000000..8bf13f9f7 Binary files /dev/null and b/.tmp-check-windows/debug/deps/pkg_config-01ec38c44c4edb5c.pkg_config.415c3486cadee549-cgu.05.rcgu.o differ diff --git a/.tmp-check-windows/debug/deps/pkg_config-01ec38c44c4edb5c.pkg_config.415c3486cadee549-cgu.06.rcgu.o b/.tmp-check-windows/debug/deps/pkg_config-01ec38c44c4edb5c.pkg_config.415c3486cadee549-cgu.06.rcgu.o new file mode 100644 index 000000000..2a51c78e4 Binary files /dev/null and b/.tmp-check-windows/debug/deps/pkg_config-01ec38c44c4edb5c.pkg_config.415c3486cadee549-cgu.06.rcgu.o differ diff --git a/.tmp-check-windows/debug/deps/pkg_config-01ec38c44c4edb5c.pkg_config.415c3486cadee549-cgu.07.rcgu.o b/.tmp-check-windows/debug/deps/pkg_config-01ec38c44c4edb5c.pkg_config.415c3486cadee549-cgu.07.rcgu.o new file mode 100644 index 000000000..52b80a2a4 Binary files /dev/null and b/.tmp-check-windows/debug/deps/pkg_config-01ec38c44c4edb5c.pkg_config.415c3486cadee549-cgu.07.rcgu.o differ diff --git a/.tmp-check-windows/debug/deps/pkg_config-01ec38c44c4edb5c.pkg_config.415c3486cadee549-cgu.08.rcgu.o b/.tmp-check-windows/debug/deps/pkg_config-01ec38c44c4edb5c.pkg_config.415c3486cadee549-cgu.08.rcgu.o new file mode 100644 index 000000000..125e1ea69 Binary files /dev/null and b/.tmp-check-windows/debug/deps/pkg_config-01ec38c44c4edb5c.pkg_config.415c3486cadee549-cgu.08.rcgu.o differ diff --git a/.tmp-check-windows/debug/deps/pkg_config-01ec38c44c4edb5c.pkg_config.415c3486cadee549-cgu.09.rcgu.o b/.tmp-check-windows/debug/deps/pkg_config-01ec38c44c4edb5c.pkg_config.415c3486cadee549-cgu.09.rcgu.o new file mode 100644 index 000000000..ac8de5f1d Binary files /dev/null and b/.tmp-check-windows/debug/deps/pkg_config-01ec38c44c4edb5c.pkg_config.415c3486cadee549-cgu.09.rcgu.o differ diff --git a/.tmp-check-windows/debug/deps/ppv_lite86-5efa42a78a5a0b06.d b/.tmp-check-windows/debug/deps/ppv_lite86-5efa42a78a5a0b06.d new file mode 100644 index 000000000..145e0bb81 --- /dev/null +++ b/.tmp-check-windows/debug/deps/ppv_lite86-5efa42a78a5a0b06.d @@ -0,0 +1,10 @@ +/Users/coso/Documents/dev/ai/aiclientproxy/lime/.tmp-check-windows/debug/deps/ppv_lite86-5efa42a78a5a0b06.d: /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/ppv-lite86-0.2.21/src/lib.rs /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/ppv-lite86-0.2.21/src/soft.rs /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/ppv-lite86-0.2.21/src/types.rs /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/ppv-lite86-0.2.21/src/generic.rs + +/Users/coso/Documents/dev/ai/aiclientproxy/lime/.tmp-check-windows/debug/deps/libppv_lite86-5efa42a78a5a0b06.rlib: /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/ppv-lite86-0.2.21/src/lib.rs /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/ppv-lite86-0.2.21/src/soft.rs /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/ppv-lite86-0.2.21/src/types.rs /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/ppv-lite86-0.2.21/src/generic.rs + +/Users/coso/Documents/dev/ai/aiclientproxy/lime/.tmp-check-windows/debug/deps/libppv_lite86-5efa42a78a5a0b06.rmeta: /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/ppv-lite86-0.2.21/src/lib.rs /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/ppv-lite86-0.2.21/src/soft.rs /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/ppv-lite86-0.2.21/src/types.rs /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/ppv-lite86-0.2.21/src/generic.rs + +/Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/ppv-lite86-0.2.21/src/lib.rs: +/Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/ppv-lite86-0.2.21/src/soft.rs: +/Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/ppv-lite86-0.2.21/src/types.rs: +/Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/ppv-lite86-0.2.21/src/generic.rs: diff --git a/.tmp-check-windows/debug/deps/ppv_lite86-5efa42a78a5a0b06.ppv_lite86.779edf26ec1016db-cgu.0.rcgu.o b/.tmp-check-windows/debug/deps/ppv_lite86-5efa42a78a5a0b06.ppv_lite86.779edf26ec1016db-cgu.0.rcgu.o new file mode 100644 index 000000000..121b586d1 Binary files /dev/null and b/.tmp-check-windows/debug/deps/ppv_lite86-5efa42a78a5a0b06.ppv_lite86.779edf26ec1016db-cgu.0.rcgu.o differ diff --git a/.tmp-check-windows/debug/deps/proc_macro2-05370ae8c5d6ee4d.d b/.tmp-check-windows/debug/deps/proc_macro2-05370ae8c5d6ee4d.d new file mode 100644 index 000000000..82d301f53 --- /dev/null +++ b/.tmp-check-windows/debug/deps/proc_macro2-05370ae8c5d6ee4d.d @@ -0,0 +1,18 @@ +/Users/coso/Documents/dev/ai/aiclientproxy/lime/.tmp-check-windows/debug/deps/proc_macro2-05370ae8c5d6ee4d.d: /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/proc-macro2-1.0.106/src/lib.rs /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/proc-macro2-1.0.106/src/marker.rs /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/proc-macro2-1.0.106/src/parse.rs /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/proc-macro2-1.0.106/src/probe.rs /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/proc-macro2-1.0.106/src/probe/proc_macro_span_file.rs /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/proc-macro2-1.0.106/src/probe/proc_macro_span_location.rs /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/proc-macro2-1.0.106/src/rcvec.rs /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/proc-macro2-1.0.106/src/detection.rs /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/proc-macro2-1.0.106/src/fallback.rs /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/proc-macro2-1.0.106/src/extra.rs /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/proc-macro2-1.0.106/src/wrapper.rs /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/proc-macro2-1.0.106/src/location.rs + +/Users/coso/Documents/dev/ai/aiclientproxy/lime/.tmp-check-windows/debug/deps/libproc_macro2-05370ae8c5d6ee4d.rlib: /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/proc-macro2-1.0.106/src/lib.rs /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/proc-macro2-1.0.106/src/marker.rs /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/proc-macro2-1.0.106/src/parse.rs /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/proc-macro2-1.0.106/src/probe.rs /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/proc-macro2-1.0.106/src/probe/proc_macro_span_file.rs /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/proc-macro2-1.0.106/src/probe/proc_macro_span_location.rs /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/proc-macro2-1.0.106/src/rcvec.rs /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/proc-macro2-1.0.106/src/detection.rs /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/proc-macro2-1.0.106/src/fallback.rs /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/proc-macro2-1.0.106/src/extra.rs /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/proc-macro2-1.0.106/src/wrapper.rs /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/proc-macro2-1.0.106/src/location.rs + +/Users/coso/Documents/dev/ai/aiclientproxy/lime/.tmp-check-windows/debug/deps/libproc_macro2-05370ae8c5d6ee4d.rmeta: /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/proc-macro2-1.0.106/src/lib.rs /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/proc-macro2-1.0.106/src/marker.rs /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/proc-macro2-1.0.106/src/parse.rs /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/proc-macro2-1.0.106/src/probe.rs /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/proc-macro2-1.0.106/src/probe/proc_macro_span_file.rs /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/proc-macro2-1.0.106/src/probe/proc_macro_span_location.rs /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/proc-macro2-1.0.106/src/rcvec.rs /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/proc-macro2-1.0.106/src/detection.rs /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/proc-macro2-1.0.106/src/fallback.rs /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/proc-macro2-1.0.106/src/extra.rs /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/proc-macro2-1.0.106/src/wrapper.rs /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/proc-macro2-1.0.106/src/location.rs + +/Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/proc-macro2-1.0.106/src/lib.rs: +/Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/proc-macro2-1.0.106/src/marker.rs: +/Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/proc-macro2-1.0.106/src/parse.rs: +/Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/proc-macro2-1.0.106/src/probe.rs: +/Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/proc-macro2-1.0.106/src/probe/proc_macro_span_file.rs: +/Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/proc-macro2-1.0.106/src/probe/proc_macro_span_location.rs: +/Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/proc-macro2-1.0.106/src/rcvec.rs: +/Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/proc-macro2-1.0.106/src/detection.rs: +/Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/proc-macro2-1.0.106/src/fallback.rs: +/Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/proc-macro2-1.0.106/src/extra.rs: +/Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/proc-macro2-1.0.106/src/wrapper.rs: +/Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/proc-macro2-1.0.106/src/location.rs: diff --git a/.tmp-check-windows/debug/deps/proc_macro2-05370ae8c5d6ee4d.proc_macro2.38305801a760b4d0-cgu.0.rcgu.o b/.tmp-check-windows/debug/deps/proc_macro2-05370ae8c5d6ee4d.proc_macro2.38305801a760b4d0-cgu.0.rcgu.o new file mode 100644 index 000000000..1faba9759 Binary files /dev/null and b/.tmp-check-windows/debug/deps/proc_macro2-05370ae8c5d6ee4d.proc_macro2.38305801a760b4d0-cgu.0.rcgu.o differ diff --git a/.tmp-check-windows/debug/deps/proc_macro2-05370ae8c5d6ee4d.proc_macro2.38305801a760b4d0-cgu.1.rcgu.o b/.tmp-check-windows/debug/deps/proc_macro2-05370ae8c5d6ee4d.proc_macro2.38305801a760b4d0-cgu.1.rcgu.o new file mode 100644 index 000000000..9ab913aab Binary files /dev/null and b/.tmp-check-windows/debug/deps/proc_macro2-05370ae8c5d6ee4d.proc_macro2.38305801a760b4d0-cgu.1.rcgu.o differ diff --git a/.tmp-check-windows/debug/deps/proc_macro2-05370ae8c5d6ee4d.proc_macro2.38305801a760b4d0-cgu.2.rcgu.o b/.tmp-check-windows/debug/deps/proc_macro2-05370ae8c5d6ee4d.proc_macro2.38305801a760b4d0-cgu.2.rcgu.o new file mode 100644 index 000000000..28b1774fe Binary files /dev/null and b/.tmp-check-windows/debug/deps/proc_macro2-05370ae8c5d6ee4d.proc_macro2.38305801a760b4d0-cgu.2.rcgu.o differ diff --git a/.tmp-check-windows/debug/deps/proc_macro2-05370ae8c5d6ee4d.proc_macro2.38305801a760b4d0-cgu.3.rcgu.o b/.tmp-check-windows/debug/deps/proc_macro2-05370ae8c5d6ee4d.proc_macro2.38305801a760b4d0-cgu.3.rcgu.o new file mode 100644 index 000000000..75d4d7ccc Binary files /dev/null and b/.tmp-check-windows/debug/deps/proc_macro2-05370ae8c5d6ee4d.proc_macro2.38305801a760b4d0-cgu.3.rcgu.o differ diff --git a/.tmp-check-windows/debug/deps/proc_macro2-05370ae8c5d6ee4d.proc_macro2.38305801a760b4d0-cgu.4.rcgu.o b/.tmp-check-windows/debug/deps/proc_macro2-05370ae8c5d6ee4d.proc_macro2.38305801a760b4d0-cgu.4.rcgu.o new file mode 100644 index 000000000..aea25e5a9 Binary files /dev/null and b/.tmp-check-windows/debug/deps/proc_macro2-05370ae8c5d6ee4d.proc_macro2.38305801a760b4d0-cgu.4.rcgu.o differ diff --git a/.tmp-check-windows/debug/deps/proc_macro2-05370ae8c5d6ee4d.proc_macro2.38305801a760b4d0-cgu.5.rcgu.o b/.tmp-check-windows/debug/deps/proc_macro2-05370ae8c5d6ee4d.proc_macro2.38305801a760b4d0-cgu.5.rcgu.o new file mode 100644 index 000000000..c70ad6c9e Binary files /dev/null and b/.tmp-check-windows/debug/deps/proc_macro2-05370ae8c5d6ee4d.proc_macro2.38305801a760b4d0-cgu.5.rcgu.o differ diff --git a/.tmp-check-windows/debug/deps/proc_macro2-05370ae8c5d6ee4d.proc_macro2.38305801a760b4d0-cgu.6.rcgu.o b/.tmp-check-windows/debug/deps/proc_macro2-05370ae8c5d6ee4d.proc_macro2.38305801a760b4d0-cgu.6.rcgu.o new file mode 100644 index 000000000..678cb7d32 Binary files /dev/null and b/.tmp-check-windows/debug/deps/proc_macro2-05370ae8c5d6ee4d.proc_macro2.38305801a760b4d0-cgu.6.rcgu.o differ diff --git a/.tmp-check-windows/debug/deps/proc_macro2-05370ae8c5d6ee4d.proc_macro2.38305801a760b4d0-cgu.7.rcgu.o b/.tmp-check-windows/debug/deps/proc_macro2-05370ae8c5d6ee4d.proc_macro2.38305801a760b4d0-cgu.7.rcgu.o new file mode 100644 index 000000000..88a4f5d21 Binary files /dev/null and b/.tmp-check-windows/debug/deps/proc_macro2-05370ae8c5d6ee4d.proc_macro2.38305801a760b4d0-cgu.7.rcgu.o differ diff --git a/.tmp-check-windows/debug/deps/proc_macro2-05370ae8c5d6ee4d.proc_macro2.38305801a760b4d0-cgu.8.rcgu.o b/.tmp-check-windows/debug/deps/proc_macro2-05370ae8c5d6ee4d.proc_macro2.38305801a760b4d0-cgu.8.rcgu.o new file mode 100644 index 000000000..67d817488 Binary files /dev/null and b/.tmp-check-windows/debug/deps/proc_macro2-05370ae8c5d6ee4d.proc_macro2.38305801a760b4d0-cgu.8.rcgu.o differ diff --git a/.tmp-check-windows/debug/deps/quote-5ab4e48c22bca86d.d b/.tmp-check-windows/debug/deps/quote-5ab4e48c22bca86d.d new file mode 100644 index 000000000..a99bf4bd7 --- /dev/null +++ b/.tmp-check-windows/debug/deps/quote-5ab4e48c22bca86d.d @@ -0,0 +1,13 @@ +/Users/coso/Documents/dev/ai/aiclientproxy/lime/.tmp-check-windows/debug/deps/quote-5ab4e48c22bca86d.d: /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/quote-1.0.44/src/lib.rs /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/quote-1.0.44/src/ext.rs /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/quote-1.0.44/src/format.rs /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/quote-1.0.44/src/ident_fragment.rs /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/quote-1.0.44/src/to_tokens.rs /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/quote-1.0.44/src/runtime.rs /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/quote-1.0.44/src/spanned.rs + +/Users/coso/Documents/dev/ai/aiclientproxy/lime/.tmp-check-windows/debug/deps/libquote-5ab4e48c22bca86d.rlib: /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/quote-1.0.44/src/lib.rs /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/quote-1.0.44/src/ext.rs /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/quote-1.0.44/src/format.rs /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/quote-1.0.44/src/ident_fragment.rs /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/quote-1.0.44/src/to_tokens.rs /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/quote-1.0.44/src/runtime.rs /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/quote-1.0.44/src/spanned.rs + +/Users/coso/Documents/dev/ai/aiclientproxy/lime/.tmp-check-windows/debug/deps/libquote-5ab4e48c22bca86d.rmeta: /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/quote-1.0.44/src/lib.rs /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/quote-1.0.44/src/ext.rs /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/quote-1.0.44/src/format.rs /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/quote-1.0.44/src/ident_fragment.rs /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/quote-1.0.44/src/to_tokens.rs /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/quote-1.0.44/src/runtime.rs /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/quote-1.0.44/src/spanned.rs + +/Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/quote-1.0.44/src/lib.rs: +/Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/quote-1.0.44/src/ext.rs: +/Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/quote-1.0.44/src/format.rs: +/Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/quote-1.0.44/src/ident_fragment.rs: +/Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/quote-1.0.44/src/to_tokens.rs: +/Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/quote-1.0.44/src/runtime.rs: +/Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/quote-1.0.44/src/spanned.rs: diff --git a/.tmp-check-windows/debug/deps/quote-5ab4e48c22bca86d.quote.28dfd2fd869eea9f-cgu.0.rcgu.o b/.tmp-check-windows/debug/deps/quote-5ab4e48c22bca86d.quote.28dfd2fd869eea9f-cgu.0.rcgu.o new file mode 100644 index 000000000..a3c1edf2b Binary files /dev/null and b/.tmp-check-windows/debug/deps/quote-5ab4e48c22bca86d.quote.28dfd2fd869eea9f-cgu.0.rcgu.o differ diff --git a/.tmp-check-windows/debug/deps/rand-ca8d7a8b1b4b6e91.d b/.tmp-check-windows/debug/deps/rand-ca8d7a8b1b4b6e91.d new file mode 100644 index 000000000..9cc0fa6d8 --- /dev/null +++ b/.tmp-check-windows/debug/deps/rand-ca8d7a8b1b4b6e91.d @@ -0,0 +1,31 @@ +/Users/coso/Documents/dev/ai/aiclientproxy/lime/.tmp-check-windows/debug/deps/rand-ca8d7a8b1b4b6e91.d: /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/rand-0.8.5/src/lib.rs /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/rand-0.8.5/src/distributions/mod.rs /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/rand-0.8.5/src/distributions/bernoulli.rs /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/rand-0.8.5/src/distributions/distribution.rs /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/rand-0.8.5/src/distributions/float.rs /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/rand-0.8.5/src/distributions/integer.rs /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/rand-0.8.5/src/distributions/other.rs /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/rand-0.8.5/src/distributions/slice.rs /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/rand-0.8.5/src/distributions/utils.rs /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/rand-0.8.5/src/distributions/weighted_index.rs /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/rand-0.8.5/src/distributions/uniform.rs /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/rand-0.8.5/src/distributions/weighted.rs /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/rand-0.8.5/src/prelude.rs /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/rand-0.8.5/src/rng.rs /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/rand-0.8.5/src/rngs/mod.rs /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/rand-0.8.5/src/rngs/adapter/mod.rs /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/rand-0.8.5/src/rngs/adapter/read.rs /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/rand-0.8.5/src/rngs/adapter/reseeding.rs /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/rand-0.8.5/src/rngs/mock.rs /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/rand-0.8.5/src/rngs/xoshiro256plusplus.rs /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/rand-0.8.5/src/rngs/small.rs /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/rand-0.8.5/src/rngs/std.rs /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/rand-0.8.5/src/rngs/thread.rs /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/rand-0.8.5/src/seq/mod.rs /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/rand-0.8.5/src/seq/index.rs + +/Users/coso/Documents/dev/ai/aiclientproxy/lime/.tmp-check-windows/debug/deps/librand-ca8d7a8b1b4b6e91.rlib: /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/rand-0.8.5/src/lib.rs /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/rand-0.8.5/src/distributions/mod.rs /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/rand-0.8.5/src/distributions/bernoulli.rs /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/rand-0.8.5/src/distributions/distribution.rs /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/rand-0.8.5/src/distributions/float.rs /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/rand-0.8.5/src/distributions/integer.rs /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/rand-0.8.5/src/distributions/other.rs /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/rand-0.8.5/src/distributions/slice.rs /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/rand-0.8.5/src/distributions/utils.rs /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/rand-0.8.5/src/distributions/weighted_index.rs /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/rand-0.8.5/src/distributions/uniform.rs /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/rand-0.8.5/src/distributions/weighted.rs /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/rand-0.8.5/src/prelude.rs /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/rand-0.8.5/src/rng.rs /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/rand-0.8.5/src/rngs/mod.rs /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/rand-0.8.5/src/rngs/adapter/mod.rs /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/rand-0.8.5/src/rngs/adapter/read.rs /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/rand-0.8.5/src/rngs/adapter/reseeding.rs /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/rand-0.8.5/src/rngs/mock.rs /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/rand-0.8.5/src/rngs/xoshiro256plusplus.rs /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/rand-0.8.5/src/rngs/small.rs /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/rand-0.8.5/src/rngs/std.rs /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/rand-0.8.5/src/rngs/thread.rs /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/rand-0.8.5/src/seq/mod.rs /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/rand-0.8.5/src/seq/index.rs + +/Users/coso/Documents/dev/ai/aiclientproxy/lime/.tmp-check-windows/debug/deps/librand-ca8d7a8b1b4b6e91.rmeta: /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/rand-0.8.5/src/lib.rs /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/rand-0.8.5/src/distributions/mod.rs /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/rand-0.8.5/src/distributions/bernoulli.rs /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/rand-0.8.5/src/distributions/distribution.rs /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/rand-0.8.5/src/distributions/float.rs /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/rand-0.8.5/src/distributions/integer.rs /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/rand-0.8.5/src/distributions/other.rs /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/rand-0.8.5/src/distributions/slice.rs /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/rand-0.8.5/src/distributions/utils.rs /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/rand-0.8.5/src/distributions/weighted_index.rs /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/rand-0.8.5/src/distributions/uniform.rs /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/rand-0.8.5/src/distributions/weighted.rs /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/rand-0.8.5/src/prelude.rs /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/rand-0.8.5/src/rng.rs /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/rand-0.8.5/src/rngs/mod.rs /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/rand-0.8.5/src/rngs/adapter/mod.rs /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/rand-0.8.5/src/rngs/adapter/read.rs /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/rand-0.8.5/src/rngs/adapter/reseeding.rs /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/rand-0.8.5/src/rngs/mock.rs /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/rand-0.8.5/src/rngs/xoshiro256plusplus.rs /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/rand-0.8.5/src/rngs/small.rs /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/rand-0.8.5/src/rngs/std.rs /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/rand-0.8.5/src/rngs/thread.rs /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/rand-0.8.5/src/seq/mod.rs /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/rand-0.8.5/src/seq/index.rs + +/Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/rand-0.8.5/src/lib.rs: +/Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/rand-0.8.5/src/distributions/mod.rs: +/Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/rand-0.8.5/src/distributions/bernoulli.rs: +/Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/rand-0.8.5/src/distributions/distribution.rs: +/Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/rand-0.8.5/src/distributions/float.rs: +/Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/rand-0.8.5/src/distributions/integer.rs: +/Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/rand-0.8.5/src/distributions/other.rs: +/Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/rand-0.8.5/src/distributions/slice.rs: +/Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/rand-0.8.5/src/distributions/utils.rs: +/Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/rand-0.8.5/src/distributions/weighted_index.rs: +/Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/rand-0.8.5/src/distributions/uniform.rs: +/Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/rand-0.8.5/src/distributions/weighted.rs: +/Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/rand-0.8.5/src/prelude.rs: +/Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/rand-0.8.5/src/rng.rs: +/Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/rand-0.8.5/src/rngs/mod.rs: +/Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/rand-0.8.5/src/rngs/adapter/mod.rs: +/Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/rand-0.8.5/src/rngs/adapter/read.rs: +/Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/rand-0.8.5/src/rngs/adapter/reseeding.rs: +/Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/rand-0.8.5/src/rngs/mock.rs: +/Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/rand-0.8.5/src/rngs/xoshiro256plusplus.rs: +/Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/rand-0.8.5/src/rngs/small.rs: +/Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/rand-0.8.5/src/rngs/std.rs: +/Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/rand-0.8.5/src/rngs/thread.rs: +/Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/rand-0.8.5/src/seq/mod.rs: +/Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/rand-0.8.5/src/seq/index.rs: diff --git a/.tmp-check-windows/debug/deps/rand-ca8d7a8b1b4b6e91.rand.306213964348feaf-cgu.0.rcgu.o b/.tmp-check-windows/debug/deps/rand-ca8d7a8b1b4b6e91.rand.306213964348feaf-cgu.0.rcgu.o new file mode 100644 index 000000000..16b4dd1db Binary files /dev/null and b/.tmp-check-windows/debug/deps/rand-ca8d7a8b1b4b6e91.rand.306213964348feaf-cgu.0.rcgu.o differ diff --git a/.tmp-check-windows/debug/deps/rand-ca8d7a8b1b4b6e91.rand.306213964348feaf-cgu.1.rcgu.o b/.tmp-check-windows/debug/deps/rand-ca8d7a8b1b4b6e91.rand.306213964348feaf-cgu.1.rcgu.o new file mode 100644 index 000000000..d8e42b88f Binary files /dev/null and b/.tmp-check-windows/debug/deps/rand-ca8d7a8b1b4b6e91.rand.306213964348feaf-cgu.1.rcgu.o differ diff --git a/.tmp-check-windows/debug/deps/rand_chacha-b996a58b86cd87f0.d b/.tmp-check-windows/debug/deps/rand_chacha-b996a58b86cd87f0.d new file mode 100644 index 000000000..2e9a3fa5b --- /dev/null +++ b/.tmp-check-windows/debug/deps/rand_chacha-b996a58b86cd87f0.d @@ -0,0 +1,9 @@ +/Users/coso/Documents/dev/ai/aiclientproxy/lime/.tmp-check-windows/debug/deps/rand_chacha-b996a58b86cd87f0.d: /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/rand_chacha-0.2.2/src/lib.rs /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/rand_chacha-0.2.2/src/chacha.rs /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/rand_chacha-0.2.2/src/guts.rs + +/Users/coso/Documents/dev/ai/aiclientproxy/lime/.tmp-check-windows/debug/deps/librand_chacha-b996a58b86cd87f0.rlib: /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/rand_chacha-0.2.2/src/lib.rs /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/rand_chacha-0.2.2/src/chacha.rs /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/rand_chacha-0.2.2/src/guts.rs + +/Users/coso/Documents/dev/ai/aiclientproxy/lime/.tmp-check-windows/debug/deps/librand_chacha-b996a58b86cd87f0.rmeta: /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/rand_chacha-0.2.2/src/lib.rs /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/rand_chacha-0.2.2/src/chacha.rs /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/rand_chacha-0.2.2/src/guts.rs + +/Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/rand_chacha-0.2.2/src/lib.rs: +/Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/rand_chacha-0.2.2/src/chacha.rs: +/Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/rand_chacha-0.2.2/src/guts.rs: diff --git a/.tmp-check-windows/debug/deps/rand_chacha-b996a58b86cd87f0.rand_chacha.48fa59046091fbc-cgu.0.rcgu.o b/.tmp-check-windows/debug/deps/rand_chacha-b996a58b86cd87f0.rand_chacha.48fa59046091fbc-cgu.0.rcgu.o new file mode 100644 index 000000000..ef588eb4a Binary files /dev/null and b/.tmp-check-windows/debug/deps/rand_chacha-b996a58b86cd87f0.rand_chacha.48fa59046091fbc-cgu.0.rcgu.o differ diff --git a/.tmp-check-windows/debug/deps/rand_chacha-df53c86858a7ab42.d b/.tmp-check-windows/debug/deps/rand_chacha-df53c86858a7ab42.d new file mode 100644 index 000000000..b5a57b973 --- /dev/null +++ b/.tmp-check-windows/debug/deps/rand_chacha-df53c86858a7ab42.d @@ -0,0 +1,9 @@ +/Users/coso/Documents/dev/ai/aiclientproxy/lime/.tmp-check-windows/debug/deps/rand_chacha-df53c86858a7ab42.d: /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/rand_chacha-0.3.1/src/lib.rs /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/rand_chacha-0.3.1/src/chacha.rs /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/rand_chacha-0.3.1/src/guts.rs + +/Users/coso/Documents/dev/ai/aiclientproxy/lime/.tmp-check-windows/debug/deps/librand_chacha-df53c86858a7ab42.rlib: /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/rand_chacha-0.3.1/src/lib.rs /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/rand_chacha-0.3.1/src/chacha.rs /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/rand_chacha-0.3.1/src/guts.rs + +/Users/coso/Documents/dev/ai/aiclientproxy/lime/.tmp-check-windows/debug/deps/librand_chacha-df53c86858a7ab42.rmeta: /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/rand_chacha-0.3.1/src/lib.rs /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/rand_chacha-0.3.1/src/chacha.rs /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/rand_chacha-0.3.1/src/guts.rs + +/Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/rand_chacha-0.3.1/src/lib.rs: +/Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/rand_chacha-0.3.1/src/chacha.rs: +/Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/rand_chacha-0.3.1/src/guts.rs: diff --git a/.tmp-check-windows/debug/deps/rand_chacha-df53c86858a7ab42.rand_chacha.b08426ccade524cf-cgu.0.rcgu.o b/.tmp-check-windows/debug/deps/rand_chacha-df53c86858a7ab42.rand_chacha.b08426ccade524cf-cgu.0.rcgu.o new file mode 100644 index 000000000..0e960923d Binary files /dev/null and b/.tmp-check-windows/debug/deps/rand_chacha-df53c86858a7ab42.rand_chacha.b08426ccade524cf-cgu.0.rcgu.o differ diff --git a/.tmp-check-windows/debug/deps/rand_core-051728e3b27028a4.d b/.tmp-check-windows/debug/deps/rand_core-051728e3b27028a4.d new file mode 100644 index 000000000..ebc5d9124 --- /dev/null +++ b/.tmp-check-windows/debug/deps/rand_core-051728e3b27028a4.d @@ -0,0 +1,12 @@ +/Users/coso/Documents/dev/ai/aiclientproxy/lime/.tmp-check-windows/debug/deps/rand_core-051728e3b27028a4.d: /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/rand_core-0.5.1/src/lib.rs /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/rand_core-0.5.1/src/error.rs /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/rand_core-0.5.1/src/block.rs /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/rand_core-0.5.1/src/impls.rs /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/rand_core-0.5.1/src/le.rs /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/rand_core-0.5.1/src/os.rs + +/Users/coso/Documents/dev/ai/aiclientproxy/lime/.tmp-check-windows/debug/deps/librand_core-051728e3b27028a4.rlib: /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/rand_core-0.5.1/src/lib.rs /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/rand_core-0.5.1/src/error.rs /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/rand_core-0.5.1/src/block.rs /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/rand_core-0.5.1/src/impls.rs /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/rand_core-0.5.1/src/le.rs /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/rand_core-0.5.1/src/os.rs + +/Users/coso/Documents/dev/ai/aiclientproxy/lime/.tmp-check-windows/debug/deps/librand_core-051728e3b27028a4.rmeta: /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/rand_core-0.5.1/src/lib.rs /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/rand_core-0.5.1/src/error.rs /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/rand_core-0.5.1/src/block.rs /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/rand_core-0.5.1/src/impls.rs /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/rand_core-0.5.1/src/le.rs /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/rand_core-0.5.1/src/os.rs + +/Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/rand_core-0.5.1/src/lib.rs: +/Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/rand_core-0.5.1/src/error.rs: +/Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/rand_core-0.5.1/src/block.rs: +/Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/rand_core-0.5.1/src/impls.rs: +/Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/rand_core-0.5.1/src/le.rs: +/Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/rand_core-0.5.1/src/os.rs: diff --git a/.tmp-check-windows/debug/deps/rand_core-051728e3b27028a4.rand_core.23eb89d08380e678-cgu.0.rcgu.o b/.tmp-check-windows/debug/deps/rand_core-051728e3b27028a4.rand_core.23eb89d08380e678-cgu.0.rcgu.o new file mode 100644 index 000000000..be67983ef Binary files /dev/null and b/.tmp-check-windows/debug/deps/rand_core-051728e3b27028a4.rand_core.23eb89d08380e678-cgu.0.rcgu.o differ diff --git a/.tmp-check-windows/debug/deps/rand_core-a8e35fcc86bce3df.d b/.tmp-check-windows/debug/deps/rand_core-a8e35fcc86bce3df.d new file mode 100644 index 000000000..e50b79560 --- /dev/null +++ b/.tmp-check-windows/debug/deps/rand_core-a8e35fcc86bce3df.d @@ -0,0 +1,12 @@ +/Users/coso/Documents/dev/ai/aiclientproxy/lime/.tmp-check-windows/debug/deps/rand_core-a8e35fcc86bce3df.d: /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/rand_core-0.6.4/src/lib.rs /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/rand_core-0.6.4/src/block.rs /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/rand_core-0.6.4/src/error.rs /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/rand_core-0.6.4/src/impls.rs /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/rand_core-0.6.4/src/le.rs /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/rand_core-0.6.4/src/os.rs + +/Users/coso/Documents/dev/ai/aiclientproxy/lime/.tmp-check-windows/debug/deps/librand_core-a8e35fcc86bce3df.rlib: /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/rand_core-0.6.4/src/lib.rs /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/rand_core-0.6.4/src/block.rs /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/rand_core-0.6.4/src/error.rs /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/rand_core-0.6.4/src/impls.rs /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/rand_core-0.6.4/src/le.rs /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/rand_core-0.6.4/src/os.rs + +/Users/coso/Documents/dev/ai/aiclientproxy/lime/.tmp-check-windows/debug/deps/librand_core-a8e35fcc86bce3df.rmeta: /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/rand_core-0.6.4/src/lib.rs /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/rand_core-0.6.4/src/block.rs /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/rand_core-0.6.4/src/error.rs /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/rand_core-0.6.4/src/impls.rs /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/rand_core-0.6.4/src/le.rs /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/rand_core-0.6.4/src/os.rs + +/Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/rand_core-0.6.4/src/lib.rs: +/Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/rand_core-0.6.4/src/block.rs: +/Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/rand_core-0.6.4/src/error.rs: +/Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/rand_core-0.6.4/src/impls.rs: +/Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/rand_core-0.6.4/src/le.rs: +/Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/rand_core-0.6.4/src/os.rs: diff --git a/.tmp-check-windows/debug/deps/rand_core-a8e35fcc86bce3df.rand_core.7d1ee5594d4c9b61-cgu.0.rcgu.o b/.tmp-check-windows/debug/deps/rand_core-a8e35fcc86bce3df.rand_core.7d1ee5594d4c9b61-cgu.0.rcgu.o new file mode 100644 index 000000000..e249ba22a Binary files /dev/null and b/.tmp-check-windows/debug/deps/rand_core-a8e35fcc86bce3df.rand_core.7d1ee5594d4c9b61-cgu.0.rcgu.o differ diff --git a/.tmp-check-windows/debug/deps/rand_pcg-40dcf86c8ec86296.d b/.tmp-check-windows/debug/deps/rand_pcg-40dcf86c8ec86296.d new file mode 100644 index 000000000..4cc007b6c --- /dev/null +++ b/.tmp-check-windows/debug/deps/rand_pcg-40dcf86c8ec86296.d @@ -0,0 +1,9 @@ +/Users/coso/Documents/dev/ai/aiclientproxy/lime/.tmp-check-windows/debug/deps/rand_pcg-40dcf86c8ec86296.d: /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/rand_pcg-0.2.1/src/lib.rs /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/rand_pcg-0.2.1/src/pcg64.rs /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/rand_pcg-0.2.1/src/pcg128.rs + +/Users/coso/Documents/dev/ai/aiclientproxy/lime/.tmp-check-windows/debug/deps/librand_pcg-40dcf86c8ec86296.rlib: /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/rand_pcg-0.2.1/src/lib.rs /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/rand_pcg-0.2.1/src/pcg64.rs /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/rand_pcg-0.2.1/src/pcg128.rs + +/Users/coso/Documents/dev/ai/aiclientproxy/lime/.tmp-check-windows/debug/deps/librand_pcg-40dcf86c8ec86296.rmeta: /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/rand_pcg-0.2.1/src/lib.rs /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/rand_pcg-0.2.1/src/pcg64.rs /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/rand_pcg-0.2.1/src/pcg128.rs + +/Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/rand_pcg-0.2.1/src/lib.rs: +/Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/rand_pcg-0.2.1/src/pcg64.rs: +/Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/rand_pcg-0.2.1/src/pcg128.rs: diff --git a/.tmp-check-windows/debug/deps/rand_pcg-40dcf86c8ec86296.rand_pcg.c4021a92915509e4-cgu.0.rcgu.o b/.tmp-check-windows/debug/deps/rand_pcg-40dcf86c8ec86296.rand_pcg.c4021a92915509e4-cgu.0.rcgu.o new file mode 100644 index 000000000..7f11edb79 Binary files /dev/null and b/.tmp-check-windows/debug/deps/rand_pcg-40dcf86c8ec86296.rand_pcg.c4021a92915509e4-cgu.0.rcgu.o differ diff --git a/.tmp-check-windows/debug/deps/semver-543345514cf43968.d b/.tmp-check-windows/debug/deps/semver-543345514cf43968.d new file mode 100644 index 000000000..e7ad59b82 --- /dev/null +++ b/.tmp-check-windows/debug/deps/semver-543345514cf43968.d @@ -0,0 +1,14 @@ +/Users/coso/Documents/dev/ai/aiclientproxy/lime/.tmp-check-windows/debug/deps/semver-543345514cf43968.d: /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/semver-1.0.27/src/lib.rs /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/semver-1.0.27/src/display.rs /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/semver-1.0.27/src/error.rs /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/semver-1.0.27/src/eval.rs /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/semver-1.0.27/src/identifier.rs /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/semver-1.0.27/src/impls.rs /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/semver-1.0.27/src/parse.rs /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/semver-1.0.27/src/serde.rs + +/Users/coso/Documents/dev/ai/aiclientproxy/lime/.tmp-check-windows/debug/deps/libsemver-543345514cf43968.rlib: /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/semver-1.0.27/src/lib.rs /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/semver-1.0.27/src/display.rs /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/semver-1.0.27/src/error.rs /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/semver-1.0.27/src/eval.rs /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/semver-1.0.27/src/identifier.rs /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/semver-1.0.27/src/impls.rs /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/semver-1.0.27/src/parse.rs /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/semver-1.0.27/src/serde.rs + +/Users/coso/Documents/dev/ai/aiclientproxy/lime/.tmp-check-windows/debug/deps/libsemver-543345514cf43968.rmeta: /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/semver-1.0.27/src/lib.rs /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/semver-1.0.27/src/display.rs /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/semver-1.0.27/src/error.rs /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/semver-1.0.27/src/eval.rs /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/semver-1.0.27/src/identifier.rs /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/semver-1.0.27/src/impls.rs /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/semver-1.0.27/src/parse.rs /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/semver-1.0.27/src/serde.rs + +/Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/semver-1.0.27/src/lib.rs: +/Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/semver-1.0.27/src/display.rs: +/Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/semver-1.0.27/src/error.rs: +/Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/semver-1.0.27/src/eval.rs: +/Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/semver-1.0.27/src/identifier.rs: +/Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/semver-1.0.27/src/impls.rs: +/Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/semver-1.0.27/src/parse.rs: +/Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/semver-1.0.27/src/serde.rs: diff --git a/.tmp-check-windows/debug/deps/semver-543345514cf43968.semver.bb83d06f047e0d55-cgu.0.rcgu.o b/.tmp-check-windows/debug/deps/semver-543345514cf43968.semver.bb83d06f047e0d55-cgu.0.rcgu.o new file mode 100644 index 000000000..d2deb7257 Binary files /dev/null and b/.tmp-check-windows/debug/deps/semver-543345514cf43968.semver.bb83d06f047e0d55-cgu.0.rcgu.o differ diff --git a/.tmp-check-windows/debug/deps/semver-543345514cf43968.semver.bb83d06f047e0d55-cgu.1.rcgu.o b/.tmp-check-windows/debug/deps/semver-543345514cf43968.semver.bb83d06f047e0d55-cgu.1.rcgu.o new file mode 100644 index 000000000..511fff251 Binary files /dev/null and b/.tmp-check-windows/debug/deps/semver-543345514cf43968.semver.bb83d06f047e0d55-cgu.1.rcgu.o differ diff --git a/.tmp-check-windows/debug/deps/serde_core-cefd6cbc7f95582d.d b/.tmp-check-windows/debug/deps/serde_core-cefd6cbc7f95582d.d new file mode 100644 index 000000000..fda00c83b --- /dev/null +++ b/.tmp-check-windows/debug/deps/serde_core-cefd6cbc7f95582d.d @@ -0,0 +1,27 @@ +/Users/coso/Documents/dev/ai/aiclientproxy/lime/.tmp-check-windows/debug/deps/serde_core-cefd6cbc7f95582d.d: /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/serde_core-1.0.228/src/lib.rs /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/serde_core-1.0.228/src/crate_root.rs /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/serde_core-1.0.228/src/macros.rs /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/serde_core-1.0.228/src/de/mod.rs /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/serde_core-1.0.228/src/de/value.rs /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/serde_core-1.0.228/src/de/ignored_any.rs /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/serde_core-1.0.228/src/de/impls.rs /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/serde_core-1.0.228/src/ser/mod.rs /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/serde_core-1.0.228/src/ser/fmt.rs /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/serde_core-1.0.228/src/ser/impls.rs /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/serde_core-1.0.228/src/ser/impossible.rs /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/serde_core-1.0.228/src/format.rs /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/serde_core-1.0.228/src/private/mod.rs /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/serde_core-1.0.228/src/private/content.rs /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/serde_core-1.0.228/src/private/seed.rs /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/serde_core-1.0.228/src/private/doc.rs /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/serde_core-1.0.228/src/private/size_hint.rs /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/serde_core-1.0.228/src/private/string.rs /Users/coso/Documents/dev/ai/aiclientproxy/lime/.tmp-check-windows/debug/build/serde_core-c794bec5d8a19735/out/private.rs + +/Users/coso/Documents/dev/ai/aiclientproxy/lime/.tmp-check-windows/debug/deps/libserde_core-cefd6cbc7f95582d.rlib: /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/serde_core-1.0.228/src/lib.rs /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/serde_core-1.0.228/src/crate_root.rs /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/serde_core-1.0.228/src/macros.rs /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/serde_core-1.0.228/src/de/mod.rs /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/serde_core-1.0.228/src/de/value.rs /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/serde_core-1.0.228/src/de/ignored_any.rs /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/serde_core-1.0.228/src/de/impls.rs /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/serde_core-1.0.228/src/ser/mod.rs /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/serde_core-1.0.228/src/ser/fmt.rs /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/serde_core-1.0.228/src/ser/impls.rs /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/serde_core-1.0.228/src/ser/impossible.rs /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/serde_core-1.0.228/src/format.rs /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/serde_core-1.0.228/src/private/mod.rs /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/serde_core-1.0.228/src/private/content.rs /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/serde_core-1.0.228/src/private/seed.rs /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/serde_core-1.0.228/src/private/doc.rs /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/serde_core-1.0.228/src/private/size_hint.rs /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/serde_core-1.0.228/src/private/string.rs /Users/coso/Documents/dev/ai/aiclientproxy/lime/.tmp-check-windows/debug/build/serde_core-c794bec5d8a19735/out/private.rs + +/Users/coso/Documents/dev/ai/aiclientproxy/lime/.tmp-check-windows/debug/deps/libserde_core-cefd6cbc7f95582d.rmeta: /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/serde_core-1.0.228/src/lib.rs /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/serde_core-1.0.228/src/crate_root.rs /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/serde_core-1.0.228/src/macros.rs /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/serde_core-1.0.228/src/de/mod.rs /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/serde_core-1.0.228/src/de/value.rs /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/serde_core-1.0.228/src/de/ignored_any.rs /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/serde_core-1.0.228/src/de/impls.rs /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/serde_core-1.0.228/src/ser/mod.rs /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/serde_core-1.0.228/src/ser/fmt.rs /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/serde_core-1.0.228/src/ser/impls.rs /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/serde_core-1.0.228/src/ser/impossible.rs /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/serde_core-1.0.228/src/format.rs /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/serde_core-1.0.228/src/private/mod.rs /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/serde_core-1.0.228/src/private/content.rs /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/serde_core-1.0.228/src/private/seed.rs /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/serde_core-1.0.228/src/private/doc.rs /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/serde_core-1.0.228/src/private/size_hint.rs /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/serde_core-1.0.228/src/private/string.rs /Users/coso/Documents/dev/ai/aiclientproxy/lime/.tmp-check-windows/debug/build/serde_core-c794bec5d8a19735/out/private.rs + +/Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/serde_core-1.0.228/src/lib.rs: +/Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/serde_core-1.0.228/src/crate_root.rs: +/Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/serde_core-1.0.228/src/macros.rs: +/Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/serde_core-1.0.228/src/de/mod.rs: +/Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/serde_core-1.0.228/src/de/value.rs: +/Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/serde_core-1.0.228/src/de/ignored_any.rs: +/Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/serde_core-1.0.228/src/de/impls.rs: +/Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/serde_core-1.0.228/src/ser/mod.rs: +/Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/serde_core-1.0.228/src/ser/fmt.rs: +/Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/serde_core-1.0.228/src/ser/impls.rs: +/Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/serde_core-1.0.228/src/ser/impossible.rs: +/Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/serde_core-1.0.228/src/format.rs: +/Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/serde_core-1.0.228/src/private/mod.rs: +/Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/serde_core-1.0.228/src/private/content.rs: +/Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/serde_core-1.0.228/src/private/seed.rs: +/Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/serde_core-1.0.228/src/private/doc.rs: +/Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/serde_core-1.0.228/src/private/size_hint.rs: +/Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/serde_core-1.0.228/src/private/string.rs: +/Users/coso/Documents/dev/ai/aiclientproxy/lime/.tmp-check-windows/debug/build/serde_core-c794bec5d8a19735/out/private.rs: + +# env-dep:OUT_DIR=/Users/coso/Documents/dev/ai/aiclientproxy/lime/.tmp-check-windows/debug/build/serde_core-c794bec5d8a19735/out diff --git a/.tmp-check-windows/debug/deps/serde_core-cefd6cbc7f95582d.serde_core.a7e6671567d05c63-cgu.0.rcgu.o b/.tmp-check-windows/debug/deps/serde_core-cefd6cbc7f95582d.serde_core.a7e6671567d05c63-cgu.0.rcgu.o new file mode 100644 index 000000000..60f0ad37f Binary files /dev/null and b/.tmp-check-windows/debug/deps/serde_core-cefd6cbc7f95582d.serde_core.a7e6671567d05c63-cgu.0.rcgu.o differ diff --git a/.tmp-check-windows/debug/deps/serde_derive-89ba98fc0a6b891c.d b/.tmp-check-windows/debug/deps/serde_derive-89ba98fc0a6b891c.d new file mode 100644 index 000000000..61751b250 --- /dev/null +++ b/.tmp-check-windows/debug/deps/serde_derive-89ba98fc0a6b891c.d @@ -0,0 +1,34 @@ +/Users/coso/Documents/dev/ai/aiclientproxy/lime/.tmp-check-windows/debug/deps/serde_derive-89ba98fc0a6b891c.d: /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/serde_derive-1.0.228/src/lib.rs /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/serde_derive-1.0.228/src/internals/mod.rs /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/serde_derive-1.0.228/src/internals/ast.rs /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/serde_derive-1.0.228/src/internals/attr.rs /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/serde_derive-1.0.228/src/internals/name.rs /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/serde_derive-1.0.228/src/internals/case.rs /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/serde_derive-1.0.228/src/internals/check.rs /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/serde_derive-1.0.228/src/internals/ctxt.rs /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/serde_derive-1.0.228/src/internals/receiver.rs /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/serde_derive-1.0.228/src/internals/respan.rs /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/serde_derive-1.0.228/src/internals/symbol.rs /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/serde_derive-1.0.228/src/bound.rs /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/serde_derive-1.0.228/src/fragment.rs /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/serde_derive-1.0.228/src/de.rs /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/serde_derive-1.0.228/src/de/enum_.rs /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/serde_derive-1.0.228/src/de/enum_adjacently.rs /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/serde_derive-1.0.228/src/de/enum_externally.rs /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/serde_derive-1.0.228/src/de/enum_internally.rs /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/serde_derive-1.0.228/src/de/enum_untagged.rs /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/serde_derive-1.0.228/src/de/identifier.rs /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/serde_derive-1.0.228/src/de/struct_.rs /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/serde_derive-1.0.228/src/de/tuple.rs /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/serde_derive-1.0.228/src/de/unit.rs /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/serde_derive-1.0.228/src/deprecated.rs /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/serde_derive-1.0.228/src/dummy.rs /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/serde_derive-1.0.228/src/pretend.rs /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/serde_derive-1.0.228/src/ser.rs /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/serde_derive-1.0.228/src/this.rs + +/Users/coso/Documents/dev/ai/aiclientproxy/lime/.tmp-check-windows/debug/deps/libserde_derive-89ba98fc0a6b891c.dylib: /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/serde_derive-1.0.228/src/lib.rs /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/serde_derive-1.0.228/src/internals/mod.rs /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/serde_derive-1.0.228/src/internals/ast.rs /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/serde_derive-1.0.228/src/internals/attr.rs /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/serde_derive-1.0.228/src/internals/name.rs /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/serde_derive-1.0.228/src/internals/case.rs /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/serde_derive-1.0.228/src/internals/check.rs /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/serde_derive-1.0.228/src/internals/ctxt.rs /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/serde_derive-1.0.228/src/internals/receiver.rs /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/serde_derive-1.0.228/src/internals/respan.rs /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/serde_derive-1.0.228/src/internals/symbol.rs /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/serde_derive-1.0.228/src/bound.rs /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/serde_derive-1.0.228/src/fragment.rs /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/serde_derive-1.0.228/src/de.rs /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/serde_derive-1.0.228/src/de/enum_.rs /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/serde_derive-1.0.228/src/de/enum_adjacently.rs /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/serde_derive-1.0.228/src/de/enum_externally.rs /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/serde_derive-1.0.228/src/de/enum_internally.rs /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/serde_derive-1.0.228/src/de/enum_untagged.rs /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/serde_derive-1.0.228/src/de/identifier.rs /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/serde_derive-1.0.228/src/de/struct_.rs /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/serde_derive-1.0.228/src/de/tuple.rs /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/serde_derive-1.0.228/src/de/unit.rs /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/serde_derive-1.0.228/src/deprecated.rs /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/serde_derive-1.0.228/src/dummy.rs /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/serde_derive-1.0.228/src/pretend.rs /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/serde_derive-1.0.228/src/ser.rs /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/serde_derive-1.0.228/src/this.rs + +/Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/serde_derive-1.0.228/src/lib.rs: +/Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/serde_derive-1.0.228/src/internals/mod.rs: +/Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/serde_derive-1.0.228/src/internals/ast.rs: +/Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/serde_derive-1.0.228/src/internals/attr.rs: +/Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/serde_derive-1.0.228/src/internals/name.rs: +/Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/serde_derive-1.0.228/src/internals/case.rs: +/Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/serde_derive-1.0.228/src/internals/check.rs: +/Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/serde_derive-1.0.228/src/internals/ctxt.rs: +/Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/serde_derive-1.0.228/src/internals/receiver.rs: +/Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/serde_derive-1.0.228/src/internals/respan.rs: +/Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/serde_derive-1.0.228/src/internals/symbol.rs: +/Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/serde_derive-1.0.228/src/bound.rs: +/Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/serde_derive-1.0.228/src/fragment.rs: +/Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/serde_derive-1.0.228/src/de.rs: +/Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/serde_derive-1.0.228/src/de/enum_.rs: +/Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/serde_derive-1.0.228/src/de/enum_adjacently.rs: +/Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/serde_derive-1.0.228/src/de/enum_externally.rs: +/Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/serde_derive-1.0.228/src/de/enum_internally.rs: +/Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/serde_derive-1.0.228/src/de/enum_untagged.rs: +/Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/serde_derive-1.0.228/src/de/identifier.rs: +/Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/serde_derive-1.0.228/src/de/struct_.rs: +/Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/serde_derive-1.0.228/src/de/tuple.rs: +/Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/serde_derive-1.0.228/src/de/unit.rs: +/Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/serde_derive-1.0.228/src/deprecated.rs: +/Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/serde_derive-1.0.228/src/dummy.rs: +/Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/serde_derive-1.0.228/src/pretend.rs: +/Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/serde_derive-1.0.228/src/ser.rs: +/Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/serde_derive-1.0.228/src/this.rs: + +# env-dep:CARGO_PKG_VERSION_PATCH=228 diff --git a/.tmp-check-windows/debug/deps/serde_derive-89ba98fc0a6b891c.serde_derive.3086bbb5cc5f29f6-cgu.00.rcgu.o b/.tmp-check-windows/debug/deps/serde_derive-89ba98fc0a6b891c.serde_derive.3086bbb5cc5f29f6-cgu.00.rcgu.o new file mode 100644 index 000000000..01b7b2920 Binary files /dev/null and b/.tmp-check-windows/debug/deps/serde_derive-89ba98fc0a6b891c.serde_derive.3086bbb5cc5f29f6-cgu.00.rcgu.o differ diff --git a/.tmp-check-windows/debug/deps/serde_derive-89ba98fc0a6b891c.serde_derive.3086bbb5cc5f29f6-cgu.01.rcgu.o b/.tmp-check-windows/debug/deps/serde_derive-89ba98fc0a6b891c.serde_derive.3086bbb5cc5f29f6-cgu.01.rcgu.o new file mode 100644 index 000000000..f45111cb8 Binary files /dev/null and b/.tmp-check-windows/debug/deps/serde_derive-89ba98fc0a6b891c.serde_derive.3086bbb5cc5f29f6-cgu.01.rcgu.o differ diff --git a/.tmp-check-windows/debug/deps/serde_derive-89ba98fc0a6b891c.serde_derive.3086bbb5cc5f29f6-cgu.02.rcgu.o b/.tmp-check-windows/debug/deps/serde_derive-89ba98fc0a6b891c.serde_derive.3086bbb5cc5f29f6-cgu.02.rcgu.o new file mode 100644 index 000000000..5fd9ff88a Binary files /dev/null and b/.tmp-check-windows/debug/deps/serde_derive-89ba98fc0a6b891c.serde_derive.3086bbb5cc5f29f6-cgu.02.rcgu.o differ diff --git a/.tmp-check-windows/debug/deps/serde_derive-89ba98fc0a6b891c.serde_derive.3086bbb5cc5f29f6-cgu.03.rcgu.o b/.tmp-check-windows/debug/deps/serde_derive-89ba98fc0a6b891c.serde_derive.3086bbb5cc5f29f6-cgu.03.rcgu.o new file mode 100644 index 000000000..f6e31da4a Binary files /dev/null and b/.tmp-check-windows/debug/deps/serde_derive-89ba98fc0a6b891c.serde_derive.3086bbb5cc5f29f6-cgu.03.rcgu.o differ diff --git a/.tmp-check-windows/debug/deps/serde_derive-89ba98fc0a6b891c.serde_derive.3086bbb5cc5f29f6-cgu.04.rcgu.o b/.tmp-check-windows/debug/deps/serde_derive-89ba98fc0a6b891c.serde_derive.3086bbb5cc5f29f6-cgu.04.rcgu.o new file mode 100644 index 000000000..8990a8395 Binary files /dev/null and b/.tmp-check-windows/debug/deps/serde_derive-89ba98fc0a6b891c.serde_derive.3086bbb5cc5f29f6-cgu.04.rcgu.o differ diff --git a/.tmp-check-windows/debug/deps/serde_derive-89ba98fc0a6b891c.serde_derive.3086bbb5cc5f29f6-cgu.05.rcgu.o b/.tmp-check-windows/debug/deps/serde_derive-89ba98fc0a6b891c.serde_derive.3086bbb5cc5f29f6-cgu.05.rcgu.o new file mode 100644 index 000000000..e66afc4b5 Binary files /dev/null and b/.tmp-check-windows/debug/deps/serde_derive-89ba98fc0a6b891c.serde_derive.3086bbb5cc5f29f6-cgu.05.rcgu.o differ diff --git a/.tmp-check-windows/debug/deps/serde_derive-89ba98fc0a6b891c.serde_derive.3086bbb5cc5f29f6-cgu.06.rcgu.o b/.tmp-check-windows/debug/deps/serde_derive-89ba98fc0a6b891c.serde_derive.3086bbb5cc5f29f6-cgu.06.rcgu.o new file mode 100644 index 000000000..b1af6727f Binary files /dev/null and b/.tmp-check-windows/debug/deps/serde_derive-89ba98fc0a6b891c.serde_derive.3086bbb5cc5f29f6-cgu.06.rcgu.o differ diff --git a/.tmp-check-windows/debug/deps/serde_derive-89ba98fc0a6b891c.serde_derive.3086bbb5cc5f29f6-cgu.07.rcgu.o b/.tmp-check-windows/debug/deps/serde_derive-89ba98fc0a6b891c.serde_derive.3086bbb5cc5f29f6-cgu.07.rcgu.o new file mode 100644 index 000000000..b8253781c Binary files /dev/null and b/.tmp-check-windows/debug/deps/serde_derive-89ba98fc0a6b891c.serde_derive.3086bbb5cc5f29f6-cgu.07.rcgu.o differ diff --git a/.tmp-check-windows/debug/deps/serde_derive-89ba98fc0a6b891c.serde_derive.3086bbb5cc5f29f6-cgu.08.rcgu.o b/.tmp-check-windows/debug/deps/serde_derive-89ba98fc0a6b891c.serde_derive.3086bbb5cc5f29f6-cgu.08.rcgu.o new file mode 100644 index 000000000..a4742699b Binary files /dev/null and b/.tmp-check-windows/debug/deps/serde_derive-89ba98fc0a6b891c.serde_derive.3086bbb5cc5f29f6-cgu.08.rcgu.o differ diff --git a/.tmp-check-windows/debug/deps/serde_derive-89ba98fc0a6b891c.serde_derive.3086bbb5cc5f29f6-cgu.09.rcgu.o b/.tmp-check-windows/debug/deps/serde_derive-89ba98fc0a6b891c.serde_derive.3086bbb5cc5f29f6-cgu.09.rcgu.o new file mode 100644 index 000000000..df62c2ecc Binary files /dev/null and b/.tmp-check-windows/debug/deps/serde_derive-89ba98fc0a6b891c.serde_derive.3086bbb5cc5f29f6-cgu.09.rcgu.o differ diff --git a/.tmp-check-windows/debug/deps/serde_derive-89ba98fc0a6b891c.serde_derive.3086bbb5cc5f29f6-cgu.10.rcgu.o b/.tmp-check-windows/debug/deps/serde_derive-89ba98fc0a6b891c.serde_derive.3086bbb5cc5f29f6-cgu.10.rcgu.o new file mode 100644 index 000000000..aef6732fb Binary files /dev/null and b/.tmp-check-windows/debug/deps/serde_derive-89ba98fc0a6b891c.serde_derive.3086bbb5cc5f29f6-cgu.10.rcgu.o differ diff --git a/.tmp-check-windows/debug/deps/serde_derive-89ba98fc0a6b891c.serde_derive.3086bbb5cc5f29f6-cgu.11.rcgu.o b/.tmp-check-windows/debug/deps/serde_derive-89ba98fc0a6b891c.serde_derive.3086bbb5cc5f29f6-cgu.11.rcgu.o new file mode 100644 index 000000000..67b456a72 Binary files /dev/null and b/.tmp-check-windows/debug/deps/serde_derive-89ba98fc0a6b891c.serde_derive.3086bbb5cc5f29f6-cgu.11.rcgu.o differ diff --git a/.tmp-check-windows/debug/deps/serde_derive-89ba98fc0a6b891c.serde_derive.3086bbb5cc5f29f6-cgu.12.rcgu.o b/.tmp-check-windows/debug/deps/serde_derive-89ba98fc0a6b891c.serde_derive.3086bbb5cc5f29f6-cgu.12.rcgu.o new file mode 100644 index 000000000..bef36fba5 Binary files /dev/null and b/.tmp-check-windows/debug/deps/serde_derive-89ba98fc0a6b891c.serde_derive.3086bbb5cc5f29f6-cgu.12.rcgu.o differ diff --git a/.tmp-check-windows/debug/deps/serde_derive-89ba98fc0a6b891c.serde_derive.3086bbb5cc5f29f6-cgu.13.rcgu.o b/.tmp-check-windows/debug/deps/serde_derive-89ba98fc0a6b891c.serde_derive.3086bbb5cc5f29f6-cgu.13.rcgu.o new file mode 100644 index 000000000..4cf205b56 Binary files /dev/null and b/.tmp-check-windows/debug/deps/serde_derive-89ba98fc0a6b891c.serde_derive.3086bbb5cc5f29f6-cgu.13.rcgu.o differ diff --git a/.tmp-check-windows/debug/deps/serde_derive-89ba98fc0a6b891c.serde_derive.3086bbb5cc5f29f6-cgu.14.rcgu.o b/.tmp-check-windows/debug/deps/serde_derive-89ba98fc0a6b891c.serde_derive.3086bbb5cc5f29f6-cgu.14.rcgu.o new file mode 100644 index 000000000..0adb885c8 Binary files /dev/null and b/.tmp-check-windows/debug/deps/serde_derive-89ba98fc0a6b891c.serde_derive.3086bbb5cc5f29f6-cgu.14.rcgu.o differ diff --git a/.tmp-check-windows/debug/deps/serde_derive-89ba98fc0a6b891c.serde_derive.3086bbb5cc5f29f6-cgu.15.rcgu.o b/.tmp-check-windows/debug/deps/serde_derive-89ba98fc0a6b891c.serde_derive.3086bbb5cc5f29f6-cgu.15.rcgu.o new file mode 100644 index 000000000..a5da33ff8 Binary files /dev/null and b/.tmp-check-windows/debug/deps/serde_derive-89ba98fc0a6b891c.serde_derive.3086bbb5cc5f29f6-cgu.15.rcgu.o differ diff --git a/.tmp-check-windows/debug/deps/serde_json-6c77cebf97b17baa.d b/.tmp-check-windows/debug/deps/serde_json-6c77cebf97b17baa.d new file mode 100644 index 000000000..cdf822604 --- /dev/null +++ b/.tmp-check-windows/debug/deps/serde_json-6c77cebf97b17baa.d @@ -0,0 +1,23 @@ +/Users/coso/Documents/dev/ai/aiclientproxy/lime/.tmp-check-windows/debug/deps/serde_json-6c77cebf97b17baa.d: /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/serde_json-1.0.149/src/lib.rs /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/serde_json-1.0.149/src/macros.rs /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/serde_json-1.0.149/src/de.rs /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/serde_json-1.0.149/src/error.rs /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/serde_json-1.0.149/src/map.rs /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/serde_json-1.0.149/src/ser.rs /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/serde_json-1.0.149/src/value/mod.rs /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/serde_json-1.0.149/src/value/de.rs /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/serde_json-1.0.149/src/value/from.rs /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/serde_json-1.0.149/src/value/index.rs /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/serde_json-1.0.149/src/value/partial_eq.rs /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/serde_json-1.0.149/src/value/ser.rs /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/serde_json-1.0.149/src/io/mod.rs /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/serde_json-1.0.149/src/iter.rs /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/serde_json-1.0.149/src/number.rs /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/serde_json-1.0.149/src/read.rs /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/serde_json-1.0.149/src/raw.rs + +/Users/coso/Documents/dev/ai/aiclientproxy/lime/.tmp-check-windows/debug/deps/libserde_json-6c77cebf97b17baa.rlib: /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/serde_json-1.0.149/src/lib.rs /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/serde_json-1.0.149/src/macros.rs /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/serde_json-1.0.149/src/de.rs /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/serde_json-1.0.149/src/error.rs /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/serde_json-1.0.149/src/map.rs /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/serde_json-1.0.149/src/ser.rs /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/serde_json-1.0.149/src/value/mod.rs /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/serde_json-1.0.149/src/value/de.rs /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/serde_json-1.0.149/src/value/from.rs /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/serde_json-1.0.149/src/value/index.rs /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/serde_json-1.0.149/src/value/partial_eq.rs /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/serde_json-1.0.149/src/value/ser.rs /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/serde_json-1.0.149/src/io/mod.rs /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/serde_json-1.0.149/src/iter.rs /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/serde_json-1.0.149/src/number.rs /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/serde_json-1.0.149/src/read.rs /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/serde_json-1.0.149/src/raw.rs + +/Users/coso/Documents/dev/ai/aiclientproxy/lime/.tmp-check-windows/debug/deps/libserde_json-6c77cebf97b17baa.rmeta: /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/serde_json-1.0.149/src/lib.rs /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/serde_json-1.0.149/src/macros.rs /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/serde_json-1.0.149/src/de.rs /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/serde_json-1.0.149/src/error.rs /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/serde_json-1.0.149/src/map.rs /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/serde_json-1.0.149/src/ser.rs /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/serde_json-1.0.149/src/value/mod.rs /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/serde_json-1.0.149/src/value/de.rs /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/serde_json-1.0.149/src/value/from.rs /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/serde_json-1.0.149/src/value/index.rs /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/serde_json-1.0.149/src/value/partial_eq.rs /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/serde_json-1.0.149/src/value/ser.rs /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/serde_json-1.0.149/src/io/mod.rs /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/serde_json-1.0.149/src/iter.rs /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/serde_json-1.0.149/src/number.rs /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/serde_json-1.0.149/src/read.rs /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/serde_json-1.0.149/src/raw.rs + +/Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/serde_json-1.0.149/src/lib.rs: +/Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/serde_json-1.0.149/src/macros.rs: +/Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/serde_json-1.0.149/src/de.rs: +/Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/serde_json-1.0.149/src/error.rs: +/Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/serde_json-1.0.149/src/map.rs: +/Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/serde_json-1.0.149/src/ser.rs: +/Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/serde_json-1.0.149/src/value/mod.rs: +/Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/serde_json-1.0.149/src/value/de.rs: +/Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/serde_json-1.0.149/src/value/from.rs: +/Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/serde_json-1.0.149/src/value/index.rs: +/Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/serde_json-1.0.149/src/value/partial_eq.rs: +/Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/serde_json-1.0.149/src/value/ser.rs: +/Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/serde_json-1.0.149/src/io/mod.rs: +/Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/serde_json-1.0.149/src/iter.rs: +/Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/serde_json-1.0.149/src/number.rs: +/Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/serde_json-1.0.149/src/read.rs: +/Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/serde_json-1.0.149/src/raw.rs: diff --git a/.tmp-check-windows/debug/deps/serde_json-6c77cebf97b17baa.serde_json.e92118fab6bffac6-cgu.0.rcgu.o b/.tmp-check-windows/debug/deps/serde_json-6c77cebf97b17baa.serde_json.e92118fab6bffac6-cgu.0.rcgu.o new file mode 100644 index 000000000..547a327ed Binary files /dev/null and b/.tmp-check-windows/debug/deps/serde_json-6c77cebf97b17baa.serde_json.e92118fab6bffac6-cgu.0.rcgu.o differ diff --git a/.tmp-check-windows/debug/deps/serde_json-6c77cebf97b17baa.serde_json.e92118fab6bffac6-cgu.1.rcgu.o b/.tmp-check-windows/debug/deps/serde_json-6c77cebf97b17baa.serde_json.e92118fab6bffac6-cgu.1.rcgu.o new file mode 100644 index 000000000..2db7a9797 Binary files /dev/null and b/.tmp-check-windows/debug/deps/serde_json-6c77cebf97b17baa.serde_json.e92118fab6bffac6-cgu.1.rcgu.o differ diff --git a/.tmp-check-windows/debug/deps/serde_json-6c77cebf97b17baa.serde_json.e92118fab6bffac6-cgu.2.rcgu.o b/.tmp-check-windows/debug/deps/serde_json-6c77cebf97b17baa.serde_json.e92118fab6bffac6-cgu.2.rcgu.o new file mode 100644 index 000000000..a93363eff Binary files /dev/null and b/.tmp-check-windows/debug/deps/serde_json-6c77cebf97b17baa.serde_json.e92118fab6bffac6-cgu.2.rcgu.o differ diff --git a/.tmp-check-windows/debug/deps/serde_json-6c77cebf97b17baa.serde_json.e92118fab6bffac6-cgu.3.rcgu.o b/.tmp-check-windows/debug/deps/serde_json-6c77cebf97b17baa.serde_json.e92118fab6bffac6-cgu.3.rcgu.o new file mode 100644 index 000000000..b7daeb68b Binary files /dev/null and b/.tmp-check-windows/debug/deps/serde_json-6c77cebf97b17baa.serde_json.e92118fab6bffac6-cgu.3.rcgu.o differ diff --git a/.tmp-check-windows/debug/deps/serde_json-6c77cebf97b17baa.serde_json.e92118fab6bffac6-cgu.4.rcgu.o b/.tmp-check-windows/debug/deps/serde_json-6c77cebf97b17baa.serde_json.e92118fab6bffac6-cgu.4.rcgu.o new file mode 100644 index 000000000..821fdc2fb Binary files /dev/null and b/.tmp-check-windows/debug/deps/serde_json-6c77cebf97b17baa.serde_json.e92118fab6bffac6-cgu.4.rcgu.o differ diff --git a/.tmp-check-windows/debug/deps/serde_json-6c77cebf97b17baa.serde_json.e92118fab6bffac6-cgu.5.rcgu.o b/.tmp-check-windows/debug/deps/serde_json-6c77cebf97b17baa.serde_json.e92118fab6bffac6-cgu.5.rcgu.o new file mode 100644 index 000000000..4bdf99480 Binary files /dev/null and b/.tmp-check-windows/debug/deps/serde_json-6c77cebf97b17baa.serde_json.e92118fab6bffac6-cgu.5.rcgu.o differ diff --git a/.tmp-check-windows/debug/deps/serde_json-6c77cebf97b17baa.serde_json.e92118fab6bffac6-cgu.6.rcgu.o b/.tmp-check-windows/debug/deps/serde_json-6c77cebf97b17baa.serde_json.e92118fab6bffac6-cgu.6.rcgu.o new file mode 100644 index 000000000..4e500843d Binary files /dev/null and b/.tmp-check-windows/debug/deps/serde_json-6c77cebf97b17baa.serde_json.e92118fab6bffac6-cgu.6.rcgu.o differ diff --git a/.tmp-check-windows/debug/deps/serde_json-6c77cebf97b17baa.serde_json.e92118fab6bffac6-cgu.7.rcgu.o b/.tmp-check-windows/debug/deps/serde_json-6c77cebf97b17baa.serde_json.e92118fab6bffac6-cgu.7.rcgu.o new file mode 100644 index 000000000..868604df3 Binary files /dev/null and b/.tmp-check-windows/debug/deps/serde_json-6c77cebf97b17baa.serde_json.e92118fab6bffac6-cgu.7.rcgu.o differ diff --git a/.tmp-check-windows/debug/deps/serde_json-6c77cebf97b17baa.serde_json.e92118fab6bffac6-cgu.8.rcgu.o b/.tmp-check-windows/debug/deps/serde_json-6c77cebf97b17baa.serde_json.e92118fab6bffac6-cgu.8.rcgu.o new file mode 100644 index 000000000..58c1323ad Binary files /dev/null and b/.tmp-check-windows/debug/deps/serde_json-6c77cebf97b17baa.serde_json.e92118fab6bffac6-cgu.8.rcgu.o differ diff --git a/.tmp-check-windows/debug/deps/shlex-7171638d6f63b0df.d b/.tmp-check-windows/debug/deps/shlex-7171638d6f63b0df.d new file mode 100644 index 000000000..ea23b4448 --- /dev/null +++ b/.tmp-check-windows/debug/deps/shlex-7171638d6f63b0df.d @@ -0,0 +1,8 @@ +/Users/coso/Documents/dev/ai/aiclientproxy/lime/.tmp-check-windows/debug/deps/shlex-7171638d6f63b0df.d: /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/shlex-1.3.0/src/lib.rs /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/shlex-1.3.0/src/bytes.rs + +/Users/coso/Documents/dev/ai/aiclientproxy/lime/.tmp-check-windows/debug/deps/libshlex-7171638d6f63b0df.rlib: /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/shlex-1.3.0/src/lib.rs /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/shlex-1.3.0/src/bytes.rs + +/Users/coso/Documents/dev/ai/aiclientproxy/lime/.tmp-check-windows/debug/deps/libshlex-7171638d6f63b0df.rmeta: /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/shlex-1.3.0/src/lib.rs /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/shlex-1.3.0/src/bytes.rs + +/Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/shlex-1.3.0/src/lib.rs: +/Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/shlex-1.3.0/src/bytes.rs: diff --git a/.tmp-check-windows/debug/deps/shlex-7171638d6f63b0df.shlex.f221bce32bd244b1-cgu.0.rcgu.o b/.tmp-check-windows/debug/deps/shlex-7171638d6f63b0df.shlex.f221bce32bd244b1-cgu.0.rcgu.o new file mode 100644 index 000000000..0109d005f Binary files /dev/null and b/.tmp-check-windows/debug/deps/shlex-7171638d6f63b0df.shlex.f221bce32bd244b1-cgu.0.rcgu.o differ diff --git a/.tmp-check-windows/debug/deps/siphasher-1009363a57ead995.d b/.tmp-check-windows/debug/deps/siphasher-1009363a57ead995.d new file mode 100644 index 000000000..3919d163f --- /dev/null +++ b/.tmp-check-windows/debug/deps/siphasher-1009363a57ead995.d @@ -0,0 +1,11 @@ +/Users/coso/Documents/dev/ai/aiclientproxy/lime/.tmp-check-windows/debug/deps/siphasher-1009363a57ead995.d: /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/siphasher-1.0.2/src/lib.rs /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/siphasher-1.0.2/src/common.rs /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/siphasher-1.0.2/src/sip.rs /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/siphasher-1.0.2/src/sip128.rs /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/siphasher-1.0.2/src/../README.md + +/Users/coso/Documents/dev/ai/aiclientproxy/lime/.tmp-check-windows/debug/deps/libsiphasher-1009363a57ead995.rlib: /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/siphasher-1.0.2/src/lib.rs /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/siphasher-1.0.2/src/common.rs /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/siphasher-1.0.2/src/sip.rs /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/siphasher-1.0.2/src/sip128.rs /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/siphasher-1.0.2/src/../README.md + +/Users/coso/Documents/dev/ai/aiclientproxy/lime/.tmp-check-windows/debug/deps/libsiphasher-1009363a57ead995.rmeta: /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/siphasher-1.0.2/src/lib.rs /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/siphasher-1.0.2/src/common.rs /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/siphasher-1.0.2/src/sip.rs /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/siphasher-1.0.2/src/sip128.rs /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/siphasher-1.0.2/src/../README.md + +/Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/siphasher-1.0.2/src/lib.rs: +/Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/siphasher-1.0.2/src/common.rs: +/Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/siphasher-1.0.2/src/sip.rs: +/Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/siphasher-1.0.2/src/sip128.rs: +/Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/siphasher-1.0.2/src/../README.md: diff --git a/.tmp-check-windows/debug/deps/siphasher-1009363a57ead995.siphasher.3c4a521022615219-cgu.0.rcgu.o b/.tmp-check-windows/debug/deps/siphasher-1009363a57ead995.siphasher.3c4a521022615219-cgu.0.rcgu.o new file mode 100644 index 000000000..ee63ac6f5 Binary files /dev/null and b/.tmp-check-windows/debug/deps/siphasher-1009363a57ead995.siphasher.3c4a521022615219-cgu.0.rcgu.o differ diff --git a/.tmp-check-windows/debug/deps/siphasher-345e9d0d879105b4.d b/.tmp-check-windows/debug/deps/siphasher-345e9d0d879105b4.d new file mode 100644 index 000000000..a089bb848 --- /dev/null +++ b/.tmp-check-windows/debug/deps/siphasher-345e9d0d879105b4.d @@ -0,0 +1,9 @@ +/Users/coso/Documents/dev/ai/aiclientproxy/lime/.tmp-check-windows/debug/deps/siphasher-345e9d0d879105b4.d: /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/siphasher-0.3.11/src/lib.rs /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/siphasher-0.3.11/src/sip.rs /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/siphasher-0.3.11/src/sip128.rs + +/Users/coso/Documents/dev/ai/aiclientproxy/lime/.tmp-check-windows/debug/deps/libsiphasher-345e9d0d879105b4.rlib: /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/siphasher-0.3.11/src/lib.rs /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/siphasher-0.3.11/src/sip.rs /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/siphasher-0.3.11/src/sip128.rs + +/Users/coso/Documents/dev/ai/aiclientproxy/lime/.tmp-check-windows/debug/deps/libsiphasher-345e9d0d879105b4.rmeta: /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/siphasher-0.3.11/src/lib.rs /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/siphasher-0.3.11/src/sip.rs /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/siphasher-0.3.11/src/sip128.rs + +/Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/siphasher-0.3.11/src/lib.rs: +/Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/siphasher-0.3.11/src/sip.rs: +/Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/siphasher-0.3.11/src/sip128.rs: diff --git a/.tmp-check-windows/debug/deps/siphasher-345e9d0d879105b4.siphasher.f154290b4b8bee52-cgu.0.rcgu.o b/.tmp-check-windows/debug/deps/siphasher-345e9d0d879105b4.siphasher.f154290b4b8bee52-cgu.0.rcgu.o new file mode 100644 index 000000000..ae72ef853 Binary files /dev/null and b/.tmp-check-windows/debug/deps/siphasher-345e9d0d879105b4.siphasher.f154290b4b8bee52-cgu.0.rcgu.o differ diff --git a/.tmp-check-windows/debug/deps/smallvec-98f2f3c753ea1c31.d b/.tmp-check-windows/debug/deps/smallvec-98f2f3c753ea1c31.d new file mode 100644 index 000000000..4bcfc5eae --- /dev/null +++ b/.tmp-check-windows/debug/deps/smallvec-98f2f3c753ea1c31.d @@ -0,0 +1,7 @@ +/Users/coso/Documents/dev/ai/aiclientproxy/lime/.tmp-check-windows/debug/deps/smallvec-98f2f3c753ea1c31.d: /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/smallvec-1.15.1/src/lib.rs + +/Users/coso/Documents/dev/ai/aiclientproxy/lime/.tmp-check-windows/debug/deps/libsmallvec-98f2f3c753ea1c31.rlib: /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/smallvec-1.15.1/src/lib.rs + +/Users/coso/Documents/dev/ai/aiclientproxy/lime/.tmp-check-windows/debug/deps/libsmallvec-98f2f3c753ea1c31.rmeta: /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/smallvec-1.15.1/src/lib.rs + +/Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/smallvec-1.15.1/src/lib.rs: diff --git a/.tmp-check-windows/debug/deps/smallvec-98f2f3c753ea1c31.smallvec.25e69b9e2e936840-cgu.0.rcgu.o b/.tmp-check-windows/debug/deps/smallvec-98f2f3c753ea1c31.smallvec.25e69b9e2e936840-cgu.0.rcgu.o new file mode 100644 index 000000000..4fb7fc355 Binary files /dev/null and b/.tmp-check-windows/debug/deps/smallvec-98f2f3c753ea1c31.smallvec.25e69b9e2e936840-cgu.0.rcgu.o differ diff --git a/.tmp-check-windows/debug/deps/stable_deref_trait-079674d525393046.d b/.tmp-check-windows/debug/deps/stable_deref_trait-079674d525393046.d new file mode 100644 index 000000000..ccdafb26a --- /dev/null +++ b/.tmp-check-windows/debug/deps/stable_deref_trait-079674d525393046.d @@ -0,0 +1,7 @@ +/Users/coso/Documents/dev/ai/aiclientproxy/lime/.tmp-check-windows/debug/deps/stable_deref_trait-079674d525393046.d: /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/stable_deref_trait-1.2.1/src/lib.rs + +/Users/coso/Documents/dev/ai/aiclientproxy/lime/.tmp-check-windows/debug/deps/libstable_deref_trait-079674d525393046.rlib: /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/stable_deref_trait-1.2.1/src/lib.rs + +/Users/coso/Documents/dev/ai/aiclientproxy/lime/.tmp-check-windows/debug/deps/libstable_deref_trait-079674d525393046.rmeta: /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/stable_deref_trait-1.2.1/src/lib.rs + +/Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/stable_deref_trait-1.2.1/src/lib.rs: diff --git a/.tmp-check-windows/debug/deps/stable_deref_trait-079674d525393046.stable_deref_trait.3a420d6d184ecea-cgu.0.rcgu.o b/.tmp-check-windows/debug/deps/stable_deref_trait-079674d525393046.stable_deref_trait.3a420d6d184ecea-cgu.0.rcgu.o new file mode 100644 index 000000000..44add98cb Binary files /dev/null and b/.tmp-check-windows/debug/deps/stable_deref_trait-079674d525393046.stable_deref_trait.3a420d6d184ecea-cgu.0.rcgu.o differ diff --git a/.tmp-check-windows/debug/deps/strsim-5ae94b339ebb4964.d b/.tmp-check-windows/debug/deps/strsim-5ae94b339ebb4964.d new file mode 100644 index 000000000..1c1287973 --- /dev/null +++ b/.tmp-check-windows/debug/deps/strsim-5ae94b339ebb4964.d @@ -0,0 +1,7 @@ +/Users/coso/Documents/dev/ai/aiclientproxy/lime/.tmp-check-windows/debug/deps/strsim-5ae94b339ebb4964.d: /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/strsim-0.11.1/src/lib.rs + +/Users/coso/Documents/dev/ai/aiclientproxy/lime/.tmp-check-windows/debug/deps/libstrsim-5ae94b339ebb4964.rlib: /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/strsim-0.11.1/src/lib.rs + +/Users/coso/Documents/dev/ai/aiclientproxy/lime/.tmp-check-windows/debug/deps/libstrsim-5ae94b339ebb4964.rmeta: /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/strsim-0.11.1/src/lib.rs + +/Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/strsim-0.11.1/src/lib.rs: diff --git a/.tmp-check-windows/debug/deps/strsim-5ae94b339ebb4964.strsim.89adc59b5035249b-cgu.0.rcgu.o b/.tmp-check-windows/debug/deps/strsim-5ae94b339ebb4964.strsim.89adc59b5035249b-cgu.0.rcgu.o new file mode 100644 index 000000000..6d8951e29 Binary files /dev/null and b/.tmp-check-windows/debug/deps/strsim-5ae94b339ebb4964.strsim.89adc59b5035249b-cgu.0.rcgu.o differ diff --git a/.tmp-check-windows/debug/deps/strsim-5ae94b339ebb4964.strsim.89adc59b5035249b-cgu.1.rcgu.o b/.tmp-check-windows/debug/deps/strsim-5ae94b339ebb4964.strsim.89adc59b5035249b-cgu.1.rcgu.o new file mode 100644 index 000000000..ce15812d2 Binary files /dev/null and b/.tmp-check-windows/debug/deps/strsim-5ae94b339ebb4964.strsim.89adc59b5035249b-cgu.1.rcgu.o differ diff --git a/.tmp-check-windows/debug/deps/strsim-5ae94b339ebb4964.strsim.89adc59b5035249b-cgu.2.rcgu.o b/.tmp-check-windows/debug/deps/strsim-5ae94b339ebb4964.strsim.89adc59b5035249b-cgu.2.rcgu.o new file mode 100644 index 000000000..478edba6c Binary files /dev/null and b/.tmp-check-windows/debug/deps/strsim-5ae94b339ebb4964.strsim.89adc59b5035249b-cgu.2.rcgu.o differ diff --git a/.tmp-check-windows/debug/deps/strsim-5ae94b339ebb4964.strsim.89adc59b5035249b-cgu.3.rcgu.o b/.tmp-check-windows/debug/deps/strsim-5ae94b339ebb4964.strsim.89adc59b5035249b-cgu.3.rcgu.o new file mode 100644 index 000000000..5b94b49ec Binary files /dev/null and b/.tmp-check-windows/debug/deps/strsim-5ae94b339ebb4964.strsim.89adc59b5035249b-cgu.3.rcgu.o differ diff --git a/.tmp-check-windows/debug/deps/strsim-5ae94b339ebb4964.strsim.89adc59b5035249b-cgu.4.rcgu.o b/.tmp-check-windows/debug/deps/strsim-5ae94b339ebb4964.strsim.89adc59b5035249b-cgu.4.rcgu.o new file mode 100644 index 000000000..91db06f52 Binary files /dev/null and b/.tmp-check-windows/debug/deps/strsim-5ae94b339ebb4964.strsim.89adc59b5035249b-cgu.4.rcgu.o differ diff --git a/.tmp-check-windows/debug/deps/syn-01a0fc01109b9e8a.d b/.tmp-check-windows/debug/deps/syn-01a0fc01109b9e8a.d new file mode 100644 index 000000000..c56095168 --- /dev/null +++ b/.tmp-check-windows/debug/deps/syn-01a0fc01109b9e8a.d @@ -0,0 +1,60 @@ +/Users/coso/Documents/dev/ai/aiclientproxy/lime/.tmp-check-windows/debug/deps/syn-01a0fc01109b9e8a.d: /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/syn-2.0.117/src/lib.rs /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/syn-2.0.117/src/macros.rs /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/syn-2.0.117/src/group.rs /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/syn-2.0.117/src/token.rs /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/syn-2.0.117/src/attr.rs /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/syn-2.0.117/src/bigint.rs /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/syn-2.0.117/src/buffer.rs /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/syn-2.0.117/src/classify.rs /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/syn-2.0.117/src/custom_keyword.rs /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/syn-2.0.117/src/custom_punctuation.rs /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/syn-2.0.117/src/data.rs /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/syn-2.0.117/src/derive.rs /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/syn-2.0.117/src/drops.rs /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/syn-2.0.117/src/error.rs /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/syn-2.0.117/src/expr.rs /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/syn-2.0.117/src/ext.rs /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/syn-2.0.117/src/file.rs /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/syn-2.0.117/src/fixup.rs /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/syn-2.0.117/src/generics.rs /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/syn-2.0.117/src/ident.rs /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/syn-2.0.117/src/item.rs /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/syn-2.0.117/src/lifetime.rs /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/syn-2.0.117/src/lit.rs /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/syn-2.0.117/src/lookahead.rs /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/syn-2.0.117/src/mac.rs /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/syn-2.0.117/src/meta.rs /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/syn-2.0.117/src/op.rs /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/syn-2.0.117/src/parse.rs /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/syn-2.0.117/src/discouraged.rs /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/syn-2.0.117/src/parse_macro_input.rs /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/syn-2.0.117/src/parse_quote.rs /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/syn-2.0.117/src/pat.rs /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/syn-2.0.117/src/path.rs /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/syn-2.0.117/src/precedence.rs /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/syn-2.0.117/src/print.rs /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/syn-2.0.117/src/punctuated.rs /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/syn-2.0.117/src/restriction.rs /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/syn-2.0.117/src/sealed.rs /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/syn-2.0.117/src/span.rs /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/syn-2.0.117/src/spanned.rs /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/syn-2.0.117/src/stmt.rs /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/syn-2.0.117/src/thread.rs /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/syn-2.0.117/src/tt.rs /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/syn-2.0.117/src/ty.rs /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/syn-2.0.117/src/verbatim.rs /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/syn-2.0.117/src/whitespace.rs /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/syn-2.0.117/src/export.rs /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/syn-2.0.117/src/gen/fold.rs /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/syn-2.0.117/src/gen/visit.rs /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/syn-2.0.117/src/gen/visit_mut.rs /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/syn-2.0.117/src/gen/clone.rs /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/syn-2.0.117/src/gen/debug.rs /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/syn-2.0.117/src/gen/eq.rs /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/syn-2.0.117/src/gen/hash.rs + +/Users/coso/Documents/dev/ai/aiclientproxy/lime/.tmp-check-windows/debug/deps/libsyn-01a0fc01109b9e8a.rlib: /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/syn-2.0.117/src/lib.rs /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/syn-2.0.117/src/macros.rs /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/syn-2.0.117/src/group.rs /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/syn-2.0.117/src/token.rs /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/syn-2.0.117/src/attr.rs /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/syn-2.0.117/src/bigint.rs /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/syn-2.0.117/src/buffer.rs /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/syn-2.0.117/src/classify.rs /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/syn-2.0.117/src/custom_keyword.rs /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/syn-2.0.117/src/custom_punctuation.rs /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/syn-2.0.117/src/data.rs /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/syn-2.0.117/src/derive.rs /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/syn-2.0.117/src/drops.rs /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/syn-2.0.117/src/error.rs /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/syn-2.0.117/src/expr.rs /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/syn-2.0.117/src/ext.rs /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/syn-2.0.117/src/file.rs /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/syn-2.0.117/src/fixup.rs /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/syn-2.0.117/src/generics.rs /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/syn-2.0.117/src/ident.rs /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/syn-2.0.117/src/item.rs /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/syn-2.0.117/src/lifetime.rs /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/syn-2.0.117/src/lit.rs /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/syn-2.0.117/src/lookahead.rs /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/syn-2.0.117/src/mac.rs /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/syn-2.0.117/src/meta.rs /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/syn-2.0.117/src/op.rs /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/syn-2.0.117/src/parse.rs /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/syn-2.0.117/src/discouraged.rs /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/syn-2.0.117/src/parse_macro_input.rs /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/syn-2.0.117/src/parse_quote.rs /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/syn-2.0.117/src/pat.rs /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/syn-2.0.117/src/path.rs /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/syn-2.0.117/src/precedence.rs /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/syn-2.0.117/src/print.rs /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/syn-2.0.117/src/punctuated.rs /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/syn-2.0.117/src/restriction.rs /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/syn-2.0.117/src/sealed.rs /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/syn-2.0.117/src/span.rs /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/syn-2.0.117/src/spanned.rs /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/syn-2.0.117/src/stmt.rs /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/syn-2.0.117/src/thread.rs /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/syn-2.0.117/src/tt.rs /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/syn-2.0.117/src/ty.rs /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/syn-2.0.117/src/verbatim.rs /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/syn-2.0.117/src/whitespace.rs /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/syn-2.0.117/src/export.rs /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/syn-2.0.117/src/gen/fold.rs /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/syn-2.0.117/src/gen/visit.rs /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/syn-2.0.117/src/gen/visit_mut.rs /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/syn-2.0.117/src/gen/clone.rs /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/syn-2.0.117/src/gen/debug.rs /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/syn-2.0.117/src/gen/eq.rs /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/syn-2.0.117/src/gen/hash.rs + +/Users/coso/Documents/dev/ai/aiclientproxy/lime/.tmp-check-windows/debug/deps/libsyn-01a0fc01109b9e8a.rmeta: /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/syn-2.0.117/src/lib.rs /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/syn-2.0.117/src/macros.rs /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/syn-2.0.117/src/group.rs /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/syn-2.0.117/src/token.rs /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/syn-2.0.117/src/attr.rs /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/syn-2.0.117/src/bigint.rs /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/syn-2.0.117/src/buffer.rs /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/syn-2.0.117/src/classify.rs /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/syn-2.0.117/src/custom_keyword.rs /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/syn-2.0.117/src/custom_punctuation.rs /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/syn-2.0.117/src/data.rs /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/syn-2.0.117/src/derive.rs /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/syn-2.0.117/src/drops.rs /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/syn-2.0.117/src/error.rs /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/syn-2.0.117/src/expr.rs /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/syn-2.0.117/src/ext.rs /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/syn-2.0.117/src/file.rs /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/syn-2.0.117/src/fixup.rs /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/syn-2.0.117/src/generics.rs /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/syn-2.0.117/src/ident.rs /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/syn-2.0.117/src/item.rs /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/syn-2.0.117/src/lifetime.rs /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/syn-2.0.117/src/lit.rs /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/syn-2.0.117/src/lookahead.rs /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/syn-2.0.117/src/mac.rs /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/syn-2.0.117/src/meta.rs /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/syn-2.0.117/src/op.rs /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/syn-2.0.117/src/parse.rs /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/syn-2.0.117/src/discouraged.rs /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/syn-2.0.117/src/parse_macro_input.rs /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/syn-2.0.117/src/parse_quote.rs /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/syn-2.0.117/src/pat.rs /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/syn-2.0.117/src/path.rs /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/syn-2.0.117/src/precedence.rs /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/syn-2.0.117/src/print.rs /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/syn-2.0.117/src/punctuated.rs /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/syn-2.0.117/src/restriction.rs /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/syn-2.0.117/src/sealed.rs /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/syn-2.0.117/src/span.rs /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/syn-2.0.117/src/spanned.rs /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/syn-2.0.117/src/stmt.rs /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/syn-2.0.117/src/thread.rs /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/syn-2.0.117/src/tt.rs /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/syn-2.0.117/src/ty.rs /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/syn-2.0.117/src/verbatim.rs /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/syn-2.0.117/src/whitespace.rs /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/syn-2.0.117/src/export.rs /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/syn-2.0.117/src/gen/fold.rs /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/syn-2.0.117/src/gen/visit.rs /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/syn-2.0.117/src/gen/visit_mut.rs /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/syn-2.0.117/src/gen/clone.rs /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/syn-2.0.117/src/gen/debug.rs /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/syn-2.0.117/src/gen/eq.rs /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/syn-2.0.117/src/gen/hash.rs + +/Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/syn-2.0.117/src/lib.rs: +/Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/syn-2.0.117/src/macros.rs: +/Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/syn-2.0.117/src/group.rs: +/Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/syn-2.0.117/src/token.rs: +/Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/syn-2.0.117/src/attr.rs: +/Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/syn-2.0.117/src/bigint.rs: +/Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/syn-2.0.117/src/buffer.rs: +/Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/syn-2.0.117/src/classify.rs: +/Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/syn-2.0.117/src/custom_keyword.rs: +/Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/syn-2.0.117/src/custom_punctuation.rs: +/Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/syn-2.0.117/src/data.rs: +/Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/syn-2.0.117/src/derive.rs: +/Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/syn-2.0.117/src/drops.rs: +/Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/syn-2.0.117/src/error.rs: +/Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/syn-2.0.117/src/expr.rs: +/Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/syn-2.0.117/src/ext.rs: +/Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/syn-2.0.117/src/file.rs: +/Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/syn-2.0.117/src/fixup.rs: +/Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/syn-2.0.117/src/generics.rs: +/Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/syn-2.0.117/src/ident.rs: +/Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/syn-2.0.117/src/item.rs: +/Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/syn-2.0.117/src/lifetime.rs: +/Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/syn-2.0.117/src/lit.rs: +/Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/syn-2.0.117/src/lookahead.rs: +/Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/syn-2.0.117/src/mac.rs: +/Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/syn-2.0.117/src/meta.rs: +/Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/syn-2.0.117/src/op.rs: +/Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/syn-2.0.117/src/parse.rs: +/Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/syn-2.0.117/src/discouraged.rs: +/Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/syn-2.0.117/src/parse_macro_input.rs: +/Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/syn-2.0.117/src/parse_quote.rs: +/Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/syn-2.0.117/src/pat.rs: +/Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/syn-2.0.117/src/path.rs: +/Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/syn-2.0.117/src/precedence.rs: +/Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/syn-2.0.117/src/print.rs: +/Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/syn-2.0.117/src/punctuated.rs: +/Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/syn-2.0.117/src/restriction.rs: +/Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/syn-2.0.117/src/sealed.rs: +/Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/syn-2.0.117/src/span.rs: +/Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/syn-2.0.117/src/spanned.rs: +/Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/syn-2.0.117/src/stmt.rs: +/Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/syn-2.0.117/src/thread.rs: +/Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/syn-2.0.117/src/tt.rs: +/Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/syn-2.0.117/src/ty.rs: +/Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/syn-2.0.117/src/verbatim.rs: +/Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/syn-2.0.117/src/whitespace.rs: +/Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/syn-2.0.117/src/export.rs: +/Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/syn-2.0.117/src/gen/fold.rs: +/Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/syn-2.0.117/src/gen/visit.rs: +/Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/syn-2.0.117/src/gen/visit_mut.rs: +/Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/syn-2.0.117/src/gen/clone.rs: +/Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/syn-2.0.117/src/gen/debug.rs: +/Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/syn-2.0.117/src/gen/eq.rs: +/Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/syn-2.0.117/src/gen/hash.rs: diff --git a/.tmp-check-windows/debug/deps/syn-01a0fc01109b9e8a.syn.d817b10e6f2ae6e8-cgu.00.rcgu.o b/.tmp-check-windows/debug/deps/syn-01a0fc01109b9e8a.syn.d817b10e6f2ae6e8-cgu.00.rcgu.o new file mode 100644 index 000000000..32d963a24 Binary files /dev/null and b/.tmp-check-windows/debug/deps/syn-01a0fc01109b9e8a.syn.d817b10e6f2ae6e8-cgu.00.rcgu.o differ diff --git a/.tmp-check-windows/debug/deps/syn-01a0fc01109b9e8a.syn.d817b10e6f2ae6e8-cgu.01.rcgu.o b/.tmp-check-windows/debug/deps/syn-01a0fc01109b9e8a.syn.d817b10e6f2ae6e8-cgu.01.rcgu.o new file mode 100644 index 000000000..7501bf246 Binary files /dev/null and b/.tmp-check-windows/debug/deps/syn-01a0fc01109b9e8a.syn.d817b10e6f2ae6e8-cgu.01.rcgu.o differ diff --git a/.tmp-check-windows/debug/deps/syn-01a0fc01109b9e8a.syn.d817b10e6f2ae6e8-cgu.02.rcgu.o b/.tmp-check-windows/debug/deps/syn-01a0fc01109b9e8a.syn.d817b10e6f2ae6e8-cgu.02.rcgu.o new file mode 100644 index 000000000..2f19e12a3 Binary files /dev/null and b/.tmp-check-windows/debug/deps/syn-01a0fc01109b9e8a.syn.d817b10e6f2ae6e8-cgu.02.rcgu.o differ diff --git a/.tmp-check-windows/debug/deps/syn-01a0fc01109b9e8a.syn.d817b10e6f2ae6e8-cgu.03.rcgu.o b/.tmp-check-windows/debug/deps/syn-01a0fc01109b9e8a.syn.d817b10e6f2ae6e8-cgu.03.rcgu.o new file mode 100644 index 000000000..6556bca34 Binary files /dev/null and b/.tmp-check-windows/debug/deps/syn-01a0fc01109b9e8a.syn.d817b10e6f2ae6e8-cgu.03.rcgu.o differ diff --git a/.tmp-check-windows/debug/deps/syn-01a0fc01109b9e8a.syn.d817b10e6f2ae6e8-cgu.04.rcgu.o b/.tmp-check-windows/debug/deps/syn-01a0fc01109b9e8a.syn.d817b10e6f2ae6e8-cgu.04.rcgu.o new file mode 100644 index 000000000..a379f97f5 Binary files /dev/null and b/.tmp-check-windows/debug/deps/syn-01a0fc01109b9e8a.syn.d817b10e6f2ae6e8-cgu.04.rcgu.o differ diff --git a/.tmp-check-windows/debug/deps/syn-01a0fc01109b9e8a.syn.d817b10e6f2ae6e8-cgu.05.rcgu.o b/.tmp-check-windows/debug/deps/syn-01a0fc01109b9e8a.syn.d817b10e6f2ae6e8-cgu.05.rcgu.o new file mode 100644 index 000000000..45c03f018 Binary files /dev/null and b/.tmp-check-windows/debug/deps/syn-01a0fc01109b9e8a.syn.d817b10e6f2ae6e8-cgu.05.rcgu.o differ diff --git a/.tmp-check-windows/debug/deps/syn-01a0fc01109b9e8a.syn.d817b10e6f2ae6e8-cgu.06.rcgu.o b/.tmp-check-windows/debug/deps/syn-01a0fc01109b9e8a.syn.d817b10e6f2ae6e8-cgu.06.rcgu.o new file mode 100644 index 000000000..2015be31b Binary files /dev/null and b/.tmp-check-windows/debug/deps/syn-01a0fc01109b9e8a.syn.d817b10e6f2ae6e8-cgu.06.rcgu.o differ diff --git a/.tmp-check-windows/debug/deps/syn-01a0fc01109b9e8a.syn.d817b10e6f2ae6e8-cgu.07.rcgu.o b/.tmp-check-windows/debug/deps/syn-01a0fc01109b9e8a.syn.d817b10e6f2ae6e8-cgu.07.rcgu.o new file mode 100644 index 000000000..352015584 Binary files /dev/null and b/.tmp-check-windows/debug/deps/syn-01a0fc01109b9e8a.syn.d817b10e6f2ae6e8-cgu.07.rcgu.o differ diff --git a/.tmp-check-windows/debug/deps/syn-01a0fc01109b9e8a.syn.d817b10e6f2ae6e8-cgu.08.rcgu.o b/.tmp-check-windows/debug/deps/syn-01a0fc01109b9e8a.syn.d817b10e6f2ae6e8-cgu.08.rcgu.o new file mode 100644 index 000000000..fca9b131c Binary files /dev/null and b/.tmp-check-windows/debug/deps/syn-01a0fc01109b9e8a.syn.d817b10e6f2ae6e8-cgu.08.rcgu.o differ diff --git a/.tmp-check-windows/debug/deps/syn-01a0fc01109b9e8a.syn.d817b10e6f2ae6e8-cgu.09.rcgu.o b/.tmp-check-windows/debug/deps/syn-01a0fc01109b9e8a.syn.d817b10e6f2ae6e8-cgu.09.rcgu.o new file mode 100644 index 000000000..d6dbcdfe1 Binary files /dev/null and b/.tmp-check-windows/debug/deps/syn-01a0fc01109b9e8a.syn.d817b10e6f2ae6e8-cgu.09.rcgu.o differ diff --git a/.tmp-check-windows/debug/deps/syn-01a0fc01109b9e8a.syn.d817b10e6f2ae6e8-cgu.10.rcgu.o b/.tmp-check-windows/debug/deps/syn-01a0fc01109b9e8a.syn.d817b10e6f2ae6e8-cgu.10.rcgu.o new file mode 100644 index 000000000..6446d994b Binary files /dev/null and b/.tmp-check-windows/debug/deps/syn-01a0fc01109b9e8a.syn.d817b10e6f2ae6e8-cgu.10.rcgu.o differ diff --git a/.tmp-check-windows/debug/deps/syn-01a0fc01109b9e8a.syn.d817b10e6f2ae6e8-cgu.11.rcgu.o b/.tmp-check-windows/debug/deps/syn-01a0fc01109b9e8a.syn.d817b10e6f2ae6e8-cgu.11.rcgu.o new file mode 100644 index 000000000..7d521b0bb Binary files /dev/null and b/.tmp-check-windows/debug/deps/syn-01a0fc01109b9e8a.syn.d817b10e6f2ae6e8-cgu.11.rcgu.o differ diff --git a/.tmp-check-windows/debug/deps/syn-01a0fc01109b9e8a.syn.d817b10e6f2ae6e8-cgu.12.rcgu.o b/.tmp-check-windows/debug/deps/syn-01a0fc01109b9e8a.syn.d817b10e6f2ae6e8-cgu.12.rcgu.o new file mode 100644 index 000000000..ec766dcba Binary files /dev/null and b/.tmp-check-windows/debug/deps/syn-01a0fc01109b9e8a.syn.d817b10e6f2ae6e8-cgu.12.rcgu.o differ diff --git a/.tmp-check-windows/debug/deps/syn-01a0fc01109b9e8a.syn.d817b10e6f2ae6e8-cgu.13.rcgu.o b/.tmp-check-windows/debug/deps/syn-01a0fc01109b9e8a.syn.d817b10e6f2ae6e8-cgu.13.rcgu.o new file mode 100644 index 000000000..523c3cf4d Binary files /dev/null and b/.tmp-check-windows/debug/deps/syn-01a0fc01109b9e8a.syn.d817b10e6f2ae6e8-cgu.13.rcgu.o differ diff --git a/.tmp-check-windows/debug/deps/syn-01a0fc01109b9e8a.syn.d817b10e6f2ae6e8-cgu.14.rcgu.o b/.tmp-check-windows/debug/deps/syn-01a0fc01109b9e8a.syn.d817b10e6f2ae6e8-cgu.14.rcgu.o new file mode 100644 index 000000000..add31ae89 Binary files /dev/null and b/.tmp-check-windows/debug/deps/syn-01a0fc01109b9e8a.syn.d817b10e6f2ae6e8-cgu.14.rcgu.o differ diff --git a/.tmp-check-windows/debug/deps/syn-01a0fc01109b9e8a.syn.d817b10e6f2ae6e8-cgu.15.rcgu.o b/.tmp-check-windows/debug/deps/syn-01a0fc01109b9e8a.syn.d817b10e6f2ae6e8-cgu.15.rcgu.o new file mode 100644 index 000000000..3ac998b8e Binary files /dev/null and b/.tmp-check-windows/debug/deps/syn-01a0fc01109b9e8a.syn.d817b10e6f2ae6e8-cgu.15.rcgu.o differ diff --git a/.tmp-check-windows/debug/deps/synstructure-cd990b40b40e7322.d b/.tmp-check-windows/debug/deps/synstructure-cd990b40b40e7322.d new file mode 100644 index 000000000..fe6fdb855 --- /dev/null +++ b/.tmp-check-windows/debug/deps/synstructure-cd990b40b40e7322.d @@ -0,0 +1,8 @@ +/Users/coso/Documents/dev/ai/aiclientproxy/lime/.tmp-check-windows/debug/deps/synstructure-cd990b40b40e7322.d: /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/synstructure-0.13.2/src/lib.rs /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/synstructure-0.13.2/src/macros.rs + +/Users/coso/Documents/dev/ai/aiclientproxy/lime/.tmp-check-windows/debug/deps/libsynstructure-cd990b40b40e7322.rlib: /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/synstructure-0.13.2/src/lib.rs /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/synstructure-0.13.2/src/macros.rs + +/Users/coso/Documents/dev/ai/aiclientproxy/lime/.tmp-check-windows/debug/deps/libsynstructure-cd990b40b40e7322.rmeta: /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/synstructure-0.13.2/src/lib.rs /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/synstructure-0.13.2/src/macros.rs + +/Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/synstructure-0.13.2/src/lib.rs: +/Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/synstructure-0.13.2/src/macros.rs: diff --git a/.tmp-check-windows/debug/deps/synstructure-cd990b40b40e7322.synstructure.7187c29828bd8b09-cgu.00.rcgu.o b/.tmp-check-windows/debug/deps/synstructure-cd990b40b40e7322.synstructure.7187c29828bd8b09-cgu.00.rcgu.o new file mode 100644 index 000000000..0b054601c Binary files /dev/null and b/.tmp-check-windows/debug/deps/synstructure-cd990b40b40e7322.synstructure.7187c29828bd8b09-cgu.00.rcgu.o differ diff --git a/.tmp-check-windows/debug/deps/synstructure-cd990b40b40e7322.synstructure.7187c29828bd8b09-cgu.01.rcgu.o b/.tmp-check-windows/debug/deps/synstructure-cd990b40b40e7322.synstructure.7187c29828bd8b09-cgu.01.rcgu.o new file mode 100644 index 000000000..a235a3e5b Binary files /dev/null and b/.tmp-check-windows/debug/deps/synstructure-cd990b40b40e7322.synstructure.7187c29828bd8b09-cgu.01.rcgu.o differ diff --git a/.tmp-check-windows/debug/deps/synstructure-cd990b40b40e7322.synstructure.7187c29828bd8b09-cgu.02.rcgu.o b/.tmp-check-windows/debug/deps/synstructure-cd990b40b40e7322.synstructure.7187c29828bd8b09-cgu.02.rcgu.o new file mode 100644 index 000000000..ca20888d3 Binary files /dev/null and b/.tmp-check-windows/debug/deps/synstructure-cd990b40b40e7322.synstructure.7187c29828bd8b09-cgu.02.rcgu.o differ diff --git a/.tmp-check-windows/debug/deps/synstructure-cd990b40b40e7322.synstructure.7187c29828bd8b09-cgu.03.rcgu.o b/.tmp-check-windows/debug/deps/synstructure-cd990b40b40e7322.synstructure.7187c29828bd8b09-cgu.03.rcgu.o new file mode 100644 index 000000000..20fab4768 Binary files /dev/null and b/.tmp-check-windows/debug/deps/synstructure-cd990b40b40e7322.synstructure.7187c29828bd8b09-cgu.03.rcgu.o differ diff --git a/.tmp-check-windows/debug/deps/synstructure-cd990b40b40e7322.synstructure.7187c29828bd8b09-cgu.04.rcgu.o b/.tmp-check-windows/debug/deps/synstructure-cd990b40b40e7322.synstructure.7187c29828bd8b09-cgu.04.rcgu.o new file mode 100644 index 000000000..bc54200bc Binary files /dev/null and b/.tmp-check-windows/debug/deps/synstructure-cd990b40b40e7322.synstructure.7187c29828bd8b09-cgu.04.rcgu.o differ diff --git a/.tmp-check-windows/debug/deps/synstructure-cd990b40b40e7322.synstructure.7187c29828bd8b09-cgu.05.rcgu.o b/.tmp-check-windows/debug/deps/synstructure-cd990b40b40e7322.synstructure.7187c29828bd8b09-cgu.05.rcgu.o new file mode 100644 index 000000000..977bf32f4 Binary files /dev/null and b/.tmp-check-windows/debug/deps/synstructure-cd990b40b40e7322.synstructure.7187c29828bd8b09-cgu.05.rcgu.o differ diff --git a/.tmp-check-windows/debug/deps/synstructure-cd990b40b40e7322.synstructure.7187c29828bd8b09-cgu.06.rcgu.o b/.tmp-check-windows/debug/deps/synstructure-cd990b40b40e7322.synstructure.7187c29828bd8b09-cgu.06.rcgu.o new file mode 100644 index 000000000..6c61f454f Binary files /dev/null and b/.tmp-check-windows/debug/deps/synstructure-cd990b40b40e7322.synstructure.7187c29828bd8b09-cgu.06.rcgu.o differ diff --git a/.tmp-check-windows/debug/deps/synstructure-cd990b40b40e7322.synstructure.7187c29828bd8b09-cgu.07.rcgu.o b/.tmp-check-windows/debug/deps/synstructure-cd990b40b40e7322.synstructure.7187c29828bd8b09-cgu.07.rcgu.o new file mode 100644 index 000000000..2f240a715 Binary files /dev/null and b/.tmp-check-windows/debug/deps/synstructure-cd990b40b40e7322.synstructure.7187c29828bd8b09-cgu.07.rcgu.o differ diff --git a/.tmp-check-windows/debug/deps/synstructure-cd990b40b40e7322.synstructure.7187c29828bd8b09-cgu.08.rcgu.o b/.tmp-check-windows/debug/deps/synstructure-cd990b40b40e7322.synstructure.7187c29828bd8b09-cgu.08.rcgu.o new file mode 100644 index 000000000..662c200a6 Binary files /dev/null and b/.tmp-check-windows/debug/deps/synstructure-cd990b40b40e7322.synstructure.7187c29828bd8b09-cgu.08.rcgu.o differ diff --git a/.tmp-check-windows/debug/deps/synstructure-cd990b40b40e7322.synstructure.7187c29828bd8b09-cgu.09.rcgu.o b/.tmp-check-windows/debug/deps/synstructure-cd990b40b40e7322.synstructure.7187c29828bd8b09-cgu.09.rcgu.o new file mode 100644 index 000000000..ad5c38106 Binary files /dev/null and b/.tmp-check-windows/debug/deps/synstructure-cd990b40b40e7322.synstructure.7187c29828bd8b09-cgu.09.rcgu.o differ diff --git a/.tmp-check-windows/debug/deps/time_core-bf187c8f94feacd5.d b/.tmp-check-windows/debug/deps/time_core-bf187c8f94feacd5.d new file mode 100644 index 000000000..f6383489a --- /dev/null +++ b/.tmp-check-windows/debug/deps/time_core-bf187c8f94feacd5.d @@ -0,0 +1,10 @@ +/Users/coso/Documents/dev/ai/aiclientproxy/lime/.tmp-check-windows/debug/deps/time_core-bf187c8f94feacd5.d: /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/time-core-0.1.8/src/lib.rs /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/time-core-0.1.8/src/convert.rs /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/time-core-0.1.8/src/hint.rs /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/time-core-0.1.8/src/util.rs + +/Users/coso/Documents/dev/ai/aiclientproxy/lime/.tmp-check-windows/debug/deps/libtime_core-bf187c8f94feacd5.rlib: /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/time-core-0.1.8/src/lib.rs /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/time-core-0.1.8/src/convert.rs /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/time-core-0.1.8/src/hint.rs /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/time-core-0.1.8/src/util.rs + +/Users/coso/Documents/dev/ai/aiclientproxy/lime/.tmp-check-windows/debug/deps/libtime_core-bf187c8f94feacd5.rmeta: /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/time-core-0.1.8/src/lib.rs /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/time-core-0.1.8/src/convert.rs /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/time-core-0.1.8/src/hint.rs /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/time-core-0.1.8/src/util.rs + +/Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/time-core-0.1.8/src/lib.rs: +/Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/time-core-0.1.8/src/convert.rs: +/Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/time-core-0.1.8/src/hint.rs: +/Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/time-core-0.1.8/src/util.rs: diff --git a/.tmp-check-windows/debug/deps/time_core-bf187c8f94feacd5.time_core.9b1dc9e14624cb45-cgu.0.rcgu.o b/.tmp-check-windows/debug/deps/time_core-bf187c8f94feacd5.time_core.9b1dc9e14624cb45-cgu.0.rcgu.o new file mode 100644 index 000000000..44add98cb Binary files /dev/null and b/.tmp-check-windows/debug/deps/time_core-bf187c8f94feacd5.time_core.9b1dc9e14624cb45-cgu.0.rcgu.o differ diff --git a/.tmp-check-windows/debug/deps/time_macros-c4406bda9a40cce8.d b/.tmp-check-windows/debug/deps/time_macros-c4406bda9a40cce8.d new file mode 100644 index 000000000..c6732f0ba --- /dev/null +++ b/.tmp-check-windows/debug/deps/time_macros-c4406bda9a40cce8.d @@ -0,0 +1,22 @@ +/Users/coso/Documents/dev/ai/aiclientproxy/lime/.tmp-check-windows/debug/deps/time_macros-c4406bda9a40cce8.d: /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/time-macros-0.2.27/src/lib.rs /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/time-macros-0.2.27/src/quote.rs /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/time-macros-0.2.27/src/date.rs /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/time-macros-0.2.27/src/datetime.rs /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/time-macros-0.2.27/src/error.rs /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/time-macros-0.2.27/src/format_description/mod.rs /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/time-macros-0.2.27/src/format_description/ast.rs /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/time-macros-0.2.27/src/format_description/format_item.rs /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/time-macros-0.2.27/src/format_description/lexer.rs /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/time-macros-0.2.27/src/format_description/public/mod.rs /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/time-macros-0.2.27/src/format_description/public/component.rs /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/time-macros-0.2.27/src/format_description/public/modifier.rs /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/time-macros-0.2.27/src/helpers/mod.rs /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/time-macros-0.2.27/src/helpers/string.rs /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/time-macros-0.2.27/src/offset.rs /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/time-macros-0.2.27/src/time.rs /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/time-macros-0.2.27/src/to_tokens.rs /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/time-macros-0.2.27/src/utc_datetime.rs + +/Users/coso/Documents/dev/ai/aiclientproxy/lime/.tmp-check-windows/debug/deps/libtime_macros-c4406bda9a40cce8.dylib: /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/time-macros-0.2.27/src/lib.rs /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/time-macros-0.2.27/src/quote.rs /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/time-macros-0.2.27/src/date.rs /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/time-macros-0.2.27/src/datetime.rs /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/time-macros-0.2.27/src/error.rs /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/time-macros-0.2.27/src/format_description/mod.rs /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/time-macros-0.2.27/src/format_description/ast.rs /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/time-macros-0.2.27/src/format_description/format_item.rs /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/time-macros-0.2.27/src/format_description/lexer.rs /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/time-macros-0.2.27/src/format_description/public/mod.rs /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/time-macros-0.2.27/src/format_description/public/component.rs /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/time-macros-0.2.27/src/format_description/public/modifier.rs /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/time-macros-0.2.27/src/helpers/mod.rs /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/time-macros-0.2.27/src/helpers/string.rs /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/time-macros-0.2.27/src/offset.rs /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/time-macros-0.2.27/src/time.rs /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/time-macros-0.2.27/src/to_tokens.rs /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/time-macros-0.2.27/src/utc_datetime.rs + +/Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/time-macros-0.2.27/src/lib.rs: +/Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/time-macros-0.2.27/src/quote.rs: +/Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/time-macros-0.2.27/src/date.rs: +/Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/time-macros-0.2.27/src/datetime.rs: +/Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/time-macros-0.2.27/src/error.rs: +/Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/time-macros-0.2.27/src/format_description/mod.rs: +/Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/time-macros-0.2.27/src/format_description/ast.rs: +/Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/time-macros-0.2.27/src/format_description/format_item.rs: +/Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/time-macros-0.2.27/src/format_description/lexer.rs: +/Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/time-macros-0.2.27/src/format_description/public/mod.rs: +/Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/time-macros-0.2.27/src/format_description/public/component.rs: +/Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/time-macros-0.2.27/src/format_description/public/modifier.rs: +/Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/time-macros-0.2.27/src/helpers/mod.rs: +/Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/time-macros-0.2.27/src/helpers/string.rs: +/Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/time-macros-0.2.27/src/offset.rs: +/Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/time-macros-0.2.27/src/time.rs: +/Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/time-macros-0.2.27/src/to_tokens.rs: +/Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/time-macros-0.2.27/src/utc_datetime.rs: diff --git a/.tmp-check-windows/debug/deps/time_macros-c4406bda9a40cce8.time_macros.51d3523cd6e988f4-cgu.00.rcgu.o b/.tmp-check-windows/debug/deps/time_macros-c4406bda9a40cce8.time_macros.51d3523cd6e988f4-cgu.00.rcgu.o new file mode 100644 index 000000000..5ddf88230 Binary files /dev/null and b/.tmp-check-windows/debug/deps/time_macros-c4406bda9a40cce8.time_macros.51d3523cd6e988f4-cgu.00.rcgu.o differ diff --git a/.tmp-check-windows/debug/deps/time_macros-c4406bda9a40cce8.time_macros.51d3523cd6e988f4-cgu.01.rcgu.o b/.tmp-check-windows/debug/deps/time_macros-c4406bda9a40cce8.time_macros.51d3523cd6e988f4-cgu.01.rcgu.o new file mode 100644 index 000000000..60e746f6f Binary files /dev/null and b/.tmp-check-windows/debug/deps/time_macros-c4406bda9a40cce8.time_macros.51d3523cd6e988f4-cgu.01.rcgu.o differ diff --git a/.tmp-check-windows/debug/deps/time_macros-c4406bda9a40cce8.time_macros.51d3523cd6e988f4-cgu.02.rcgu.o b/.tmp-check-windows/debug/deps/time_macros-c4406bda9a40cce8.time_macros.51d3523cd6e988f4-cgu.02.rcgu.o new file mode 100644 index 000000000..839ae9425 Binary files /dev/null and b/.tmp-check-windows/debug/deps/time_macros-c4406bda9a40cce8.time_macros.51d3523cd6e988f4-cgu.02.rcgu.o differ diff --git a/.tmp-check-windows/debug/deps/time_macros-c4406bda9a40cce8.time_macros.51d3523cd6e988f4-cgu.03.rcgu.o b/.tmp-check-windows/debug/deps/time_macros-c4406bda9a40cce8.time_macros.51d3523cd6e988f4-cgu.03.rcgu.o new file mode 100644 index 000000000..4c07b651e Binary files /dev/null and b/.tmp-check-windows/debug/deps/time_macros-c4406bda9a40cce8.time_macros.51d3523cd6e988f4-cgu.03.rcgu.o differ diff --git a/.tmp-check-windows/debug/deps/time_macros-c4406bda9a40cce8.time_macros.51d3523cd6e988f4-cgu.04.rcgu.o b/.tmp-check-windows/debug/deps/time_macros-c4406bda9a40cce8.time_macros.51d3523cd6e988f4-cgu.04.rcgu.o new file mode 100644 index 000000000..c8753d408 Binary files /dev/null and b/.tmp-check-windows/debug/deps/time_macros-c4406bda9a40cce8.time_macros.51d3523cd6e988f4-cgu.04.rcgu.o differ diff --git a/.tmp-check-windows/debug/deps/time_macros-c4406bda9a40cce8.time_macros.51d3523cd6e988f4-cgu.05.rcgu.o b/.tmp-check-windows/debug/deps/time_macros-c4406bda9a40cce8.time_macros.51d3523cd6e988f4-cgu.05.rcgu.o new file mode 100644 index 000000000..9eda6ac4a Binary files /dev/null and b/.tmp-check-windows/debug/deps/time_macros-c4406bda9a40cce8.time_macros.51d3523cd6e988f4-cgu.05.rcgu.o differ diff --git a/.tmp-check-windows/debug/deps/time_macros-c4406bda9a40cce8.time_macros.51d3523cd6e988f4-cgu.06.rcgu.o b/.tmp-check-windows/debug/deps/time_macros-c4406bda9a40cce8.time_macros.51d3523cd6e988f4-cgu.06.rcgu.o new file mode 100644 index 000000000..21b644e4b Binary files /dev/null and b/.tmp-check-windows/debug/deps/time_macros-c4406bda9a40cce8.time_macros.51d3523cd6e988f4-cgu.06.rcgu.o differ diff --git a/.tmp-check-windows/debug/deps/time_macros-c4406bda9a40cce8.time_macros.51d3523cd6e988f4-cgu.07.rcgu.o b/.tmp-check-windows/debug/deps/time_macros-c4406bda9a40cce8.time_macros.51d3523cd6e988f4-cgu.07.rcgu.o new file mode 100644 index 000000000..5e04932fc Binary files /dev/null and b/.tmp-check-windows/debug/deps/time_macros-c4406bda9a40cce8.time_macros.51d3523cd6e988f4-cgu.07.rcgu.o differ diff --git a/.tmp-check-windows/debug/deps/time_macros-c4406bda9a40cce8.time_macros.51d3523cd6e988f4-cgu.08.rcgu.o b/.tmp-check-windows/debug/deps/time_macros-c4406bda9a40cce8.time_macros.51d3523cd6e988f4-cgu.08.rcgu.o new file mode 100644 index 000000000..a7e9fc052 Binary files /dev/null and b/.tmp-check-windows/debug/deps/time_macros-c4406bda9a40cce8.time_macros.51d3523cd6e988f4-cgu.08.rcgu.o differ diff --git a/.tmp-check-windows/debug/deps/time_macros-c4406bda9a40cce8.time_macros.51d3523cd6e988f4-cgu.09.rcgu.o b/.tmp-check-windows/debug/deps/time_macros-c4406bda9a40cce8.time_macros.51d3523cd6e988f4-cgu.09.rcgu.o new file mode 100644 index 000000000..892432707 Binary files /dev/null and b/.tmp-check-windows/debug/deps/time_macros-c4406bda9a40cce8.time_macros.51d3523cd6e988f4-cgu.09.rcgu.o differ diff --git a/.tmp-check-windows/debug/deps/time_macros-c4406bda9a40cce8.time_macros.51d3523cd6e988f4-cgu.10.rcgu.o b/.tmp-check-windows/debug/deps/time_macros-c4406bda9a40cce8.time_macros.51d3523cd6e988f4-cgu.10.rcgu.o new file mode 100644 index 000000000..039cfb738 Binary files /dev/null and b/.tmp-check-windows/debug/deps/time_macros-c4406bda9a40cce8.time_macros.51d3523cd6e988f4-cgu.10.rcgu.o differ diff --git a/.tmp-check-windows/debug/deps/time_macros-c4406bda9a40cce8.time_macros.51d3523cd6e988f4-cgu.11.rcgu.o b/.tmp-check-windows/debug/deps/time_macros-c4406bda9a40cce8.time_macros.51d3523cd6e988f4-cgu.11.rcgu.o new file mode 100644 index 000000000..a652be37b Binary files /dev/null and b/.tmp-check-windows/debug/deps/time_macros-c4406bda9a40cce8.time_macros.51d3523cd6e988f4-cgu.11.rcgu.o differ diff --git a/.tmp-check-windows/debug/deps/time_macros-c4406bda9a40cce8.time_macros.51d3523cd6e988f4-cgu.12.rcgu.o b/.tmp-check-windows/debug/deps/time_macros-c4406bda9a40cce8.time_macros.51d3523cd6e988f4-cgu.12.rcgu.o new file mode 100644 index 000000000..abe482d70 Binary files /dev/null and b/.tmp-check-windows/debug/deps/time_macros-c4406bda9a40cce8.time_macros.51d3523cd6e988f4-cgu.12.rcgu.o differ diff --git a/.tmp-check-windows/debug/deps/time_macros-c4406bda9a40cce8.time_macros.51d3523cd6e988f4-cgu.13.rcgu.o b/.tmp-check-windows/debug/deps/time_macros-c4406bda9a40cce8.time_macros.51d3523cd6e988f4-cgu.13.rcgu.o new file mode 100644 index 000000000..ec2ec9840 Binary files /dev/null and b/.tmp-check-windows/debug/deps/time_macros-c4406bda9a40cce8.time_macros.51d3523cd6e988f4-cgu.13.rcgu.o differ diff --git a/.tmp-check-windows/debug/deps/time_macros-c4406bda9a40cce8.time_macros.51d3523cd6e988f4-cgu.14.rcgu.o b/.tmp-check-windows/debug/deps/time_macros-c4406bda9a40cce8.time_macros.51d3523cd6e988f4-cgu.14.rcgu.o new file mode 100644 index 000000000..337a8dee8 Binary files /dev/null and b/.tmp-check-windows/debug/deps/time_macros-c4406bda9a40cce8.time_macros.51d3523cd6e988f4-cgu.14.rcgu.o differ diff --git a/.tmp-check-windows/debug/deps/time_macros-c4406bda9a40cce8.time_macros.51d3523cd6e988f4-cgu.15.rcgu.o b/.tmp-check-windows/debug/deps/time_macros-c4406bda9a40cce8.time_macros.51d3523cd6e988f4-cgu.15.rcgu.o new file mode 100644 index 000000000..fcbf3f33d Binary files /dev/null and b/.tmp-check-windows/debug/deps/time_macros-c4406bda9a40cce8.time_macros.51d3523cd6e988f4-cgu.15.rcgu.o differ diff --git a/.tmp-check-windows/debug/deps/unicode_ident-be69b2baaa981aa6.d b/.tmp-check-windows/debug/deps/unicode_ident-be69b2baaa981aa6.d new file mode 100644 index 000000000..8bf8474f8 --- /dev/null +++ b/.tmp-check-windows/debug/deps/unicode_ident-be69b2baaa981aa6.d @@ -0,0 +1,8 @@ +/Users/coso/Documents/dev/ai/aiclientproxy/lime/.tmp-check-windows/debug/deps/unicode_ident-be69b2baaa981aa6.d: /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/unicode-ident-1.0.24/src/lib.rs /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/unicode-ident-1.0.24/src/tables.rs + +/Users/coso/Documents/dev/ai/aiclientproxy/lime/.tmp-check-windows/debug/deps/libunicode_ident-be69b2baaa981aa6.rlib: /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/unicode-ident-1.0.24/src/lib.rs /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/unicode-ident-1.0.24/src/tables.rs + +/Users/coso/Documents/dev/ai/aiclientproxy/lime/.tmp-check-windows/debug/deps/libunicode_ident-be69b2baaa981aa6.rmeta: /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/unicode-ident-1.0.24/src/lib.rs /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/unicode-ident-1.0.24/src/tables.rs + +/Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/unicode-ident-1.0.24/src/lib.rs: +/Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/unicode-ident-1.0.24/src/tables.rs: diff --git a/.tmp-check-windows/debug/deps/unicode_ident-be69b2baaa981aa6.unicode_ident.ada0ef42756c9f27-cgu.0.rcgu.o b/.tmp-check-windows/debug/deps/unicode_ident-be69b2baaa981aa6.unicode_ident.ada0ef42756c9f27-cgu.0.rcgu.o new file mode 100644 index 000000000..23c683487 Binary files /dev/null and b/.tmp-check-windows/debug/deps/unicode_ident-be69b2baaa981aa6.unicode_ident.ada0ef42756c9f27-cgu.0.rcgu.o differ diff --git a/.tmp-check-windows/debug/deps/version_check-424b161a97c75473.d b/.tmp-check-windows/debug/deps/version_check-424b161a97c75473.d new file mode 100644 index 000000000..696026365 --- /dev/null +++ b/.tmp-check-windows/debug/deps/version_check-424b161a97c75473.d @@ -0,0 +1,10 @@ +/Users/coso/Documents/dev/ai/aiclientproxy/lime/.tmp-check-windows/debug/deps/version_check-424b161a97c75473.d: /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/version_check-0.9.5/src/lib.rs /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/version_check-0.9.5/src/version.rs /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/version_check-0.9.5/src/channel.rs /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/version_check-0.9.5/src/date.rs + +/Users/coso/Documents/dev/ai/aiclientproxy/lime/.tmp-check-windows/debug/deps/libversion_check-424b161a97c75473.rlib: /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/version_check-0.9.5/src/lib.rs /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/version_check-0.9.5/src/version.rs /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/version_check-0.9.5/src/channel.rs /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/version_check-0.9.5/src/date.rs + +/Users/coso/Documents/dev/ai/aiclientproxy/lime/.tmp-check-windows/debug/deps/libversion_check-424b161a97c75473.rmeta: /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/version_check-0.9.5/src/lib.rs /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/version_check-0.9.5/src/version.rs /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/version_check-0.9.5/src/channel.rs /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/version_check-0.9.5/src/date.rs + +/Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/version_check-0.9.5/src/lib.rs: +/Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/version_check-0.9.5/src/version.rs: +/Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/version_check-0.9.5/src/channel.rs: +/Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/version_check-0.9.5/src/date.rs: diff --git a/.tmp-check-windows/debug/deps/version_check-424b161a97c75473.version_check.4cbdb98157756ce5-cgu.0.rcgu.o b/.tmp-check-windows/debug/deps/version_check-424b161a97c75473.version_check.4cbdb98157756ce5-cgu.0.rcgu.o new file mode 100644 index 000000000..40baa8b5f Binary files /dev/null and b/.tmp-check-windows/debug/deps/version_check-424b161a97c75473.version_check.4cbdb98157756ce5-cgu.0.rcgu.o differ diff --git a/.tmp-check-windows/debug/deps/version_check-424b161a97c75473.version_check.4cbdb98157756ce5-cgu.1.rcgu.o b/.tmp-check-windows/debug/deps/version_check-424b161a97c75473.version_check.4cbdb98157756ce5-cgu.1.rcgu.o new file mode 100644 index 000000000..6860308b8 Binary files /dev/null and b/.tmp-check-windows/debug/deps/version_check-424b161a97c75473.version_check.4cbdb98157756ce5-cgu.1.rcgu.o differ diff --git a/.tmp-check-windows/debug/deps/version_check-424b161a97c75473.version_check.4cbdb98157756ce5-cgu.2.rcgu.o b/.tmp-check-windows/debug/deps/version_check-424b161a97c75473.version_check.4cbdb98157756ce5-cgu.2.rcgu.o new file mode 100644 index 000000000..0f391e0d3 Binary files /dev/null and b/.tmp-check-windows/debug/deps/version_check-424b161a97c75473.version_check.4cbdb98157756ce5-cgu.2.rcgu.o differ diff --git a/.tmp-check-windows/debug/deps/version_check-424b161a97c75473.version_check.4cbdb98157756ce5-cgu.3.rcgu.o b/.tmp-check-windows/debug/deps/version_check-424b161a97c75473.version_check.4cbdb98157756ce5-cgu.3.rcgu.o new file mode 100644 index 000000000..547bc2da3 Binary files /dev/null and b/.tmp-check-windows/debug/deps/version_check-424b161a97c75473.version_check.4cbdb98157756ce5-cgu.3.rcgu.o differ diff --git a/.tmp-check-windows/debug/deps/version_check-424b161a97c75473.version_check.4cbdb98157756ce5-cgu.4.rcgu.o b/.tmp-check-windows/debug/deps/version_check-424b161a97c75473.version_check.4cbdb98157756ce5-cgu.4.rcgu.o new file mode 100644 index 000000000..173117223 Binary files /dev/null and b/.tmp-check-windows/debug/deps/version_check-424b161a97c75473.version_check.4cbdb98157756ce5-cgu.4.rcgu.o differ diff --git a/.tmp-check-windows/debug/deps/writeable-7e7c486cd9376f84.d b/.tmp-check-windows/debug/deps/writeable-7e7c486cd9376f84.d new file mode 100644 index 000000000..71d5bf98d --- /dev/null +++ b/.tmp-check-windows/debug/deps/writeable-7e7c486cd9376f84.d @@ -0,0 +1,14 @@ +/Users/coso/Documents/dev/ai/aiclientproxy/lime/.tmp-check-windows/debug/deps/writeable-7e7c486cd9376f84.d: /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/writeable-0.6.2/src/lib.rs /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/writeable-0.6.2/src/cmp.rs /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/writeable-0.6.2/src/impls.rs /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/writeable-0.6.2/src/ops.rs /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/writeable-0.6.2/src/parts_write_adapter.rs /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/writeable-0.6.2/src/testing.rs /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/writeable-0.6.2/src/to_string_or_borrow.rs /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/writeable-0.6.2/src/try_writeable.rs + +/Users/coso/Documents/dev/ai/aiclientproxy/lime/.tmp-check-windows/debug/deps/libwriteable-7e7c486cd9376f84.rlib: /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/writeable-0.6.2/src/lib.rs /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/writeable-0.6.2/src/cmp.rs /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/writeable-0.6.2/src/impls.rs /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/writeable-0.6.2/src/ops.rs /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/writeable-0.6.2/src/parts_write_adapter.rs /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/writeable-0.6.2/src/testing.rs /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/writeable-0.6.2/src/to_string_or_borrow.rs /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/writeable-0.6.2/src/try_writeable.rs + +/Users/coso/Documents/dev/ai/aiclientproxy/lime/.tmp-check-windows/debug/deps/libwriteable-7e7c486cd9376f84.rmeta: /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/writeable-0.6.2/src/lib.rs /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/writeable-0.6.2/src/cmp.rs /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/writeable-0.6.2/src/impls.rs /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/writeable-0.6.2/src/ops.rs /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/writeable-0.6.2/src/parts_write_adapter.rs /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/writeable-0.6.2/src/testing.rs /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/writeable-0.6.2/src/to_string_or_borrow.rs /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/writeable-0.6.2/src/try_writeable.rs + +/Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/writeable-0.6.2/src/lib.rs: +/Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/writeable-0.6.2/src/cmp.rs: +/Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/writeable-0.6.2/src/impls.rs: +/Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/writeable-0.6.2/src/ops.rs: +/Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/writeable-0.6.2/src/parts_write_adapter.rs: +/Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/writeable-0.6.2/src/testing.rs: +/Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/writeable-0.6.2/src/to_string_or_borrow.rs: +/Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/writeable-0.6.2/src/try_writeable.rs: diff --git a/.tmp-check-windows/debug/deps/writeable-7e7c486cd9376f84.writeable.89df6b4642ab3d39-cgu.0.rcgu.o b/.tmp-check-windows/debug/deps/writeable-7e7c486cd9376f84.writeable.89df6b4642ab3d39-cgu.0.rcgu.o new file mode 100644 index 000000000..e708a4850 Binary files /dev/null and b/.tmp-check-windows/debug/deps/writeable-7e7c486cd9376f84.writeable.89df6b4642ab3d39-cgu.0.rcgu.o differ diff --git a/.tmp-check-windows/debug/deps/writeable-7e7c486cd9376f84.writeable.89df6b4642ab3d39-cgu.1.rcgu.o b/.tmp-check-windows/debug/deps/writeable-7e7c486cd9376f84.writeable.89df6b4642ab3d39-cgu.1.rcgu.o new file mode 100644 index 000000000..bf3c88a2d Binary files /dev/null and b/.tmp-check-windows/debug/deps/writeable-7e7c486cd9376f84.writeable.89df6b4642ab3d39-cgu.1.rcgu.o differ diff --git a/.tmp-check-windows/debug/deps/yoke_derive-1f91f6751dc2866d.d b/.tmp-check-windows/debug/deps/yoke_derive-1f91f6751dc2866d.d new file mode 100644 index 000000000..d2529990b --- /dev/null +++ b/.tmp-check-windows/debug/deps/yoke_derive-1f91f6751dc2866d.d @@ -0,0 +1,6 @@ +/Users/coso/Documents/dev/ai/aiclientproxy/lime/.tmp-check-windows/debug/deps/yoke_derive-1f91f6751dc2866d.d: /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/yoke-derive-0.8.1/src/lib.rs /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/yoke-derive-0.8.1/src/visitor.rs + +/Users/coso/Documents/dev/ai/aiclientproxy/lime/.tmp-check-windows/debug/deps/libyoke_derive-1f91f6751dc2866d.dylib: /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/yoke-derive-0.8.1/src/lib.rs /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/yoke-derive-0.8.1/src/visitor.rs + +/Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/yoke-derive-0.8.1/src/lib.rs: +/Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/yoke-derive-0.8.1/src/visitor.rs: diff --git a/.tmp-check-windows/debug/deps/yoke_derive-1f91f6751dc2866d.yoke_derive.62ccb37df4881e6d-cgu.00.rcgu.o b/.tmp-check-windows/debug/deps/yoke_derive-1f91f6751dc2866d.yoke_derive.62ccb37df4881e6d-cgu.00.rcgu.o new file mode 100644 index 000000000..5557c4306 Binary files /dev/null and b/.tmp-check-windows/debug/deps/yoke_derive-1f91f6751dc2866d.yoke_derive.62ccb37df4881e6d-cgu.00.rcgu.o differ diff --git a/.tmp-check-windows/debug/deps/yoke_derive-1f91f6751dc2866d.yoke_derive.62ccb37df4881e6d-cgu.01.rcgu.o b/.tmp-check-windows/debug/deps/yoke_derive-1f91f6751dc2866d.yoke_derive.62ccb37df4881e6d-cgu.01.rcgu.o new file mode 100644 index 000000000..017b1c477 Binary files /dev/null and b/.tmp-check-windows/debug/deps/yoke_derive-1f91f6751dc2866d.yoke_derive.62ccb37df4881e6d-cgu.01.rcgu.o differ diff --git a/.tmp-check-windows/debug/deps/yoke_derive-1f91f6751dc2866d.yoke_derive.62ccb37df4881e6d-cgu.02.rcgu.o b/.tmp-check-windows/debug/deps/yoke_derive-1f91f6751dc2866d.yoke_derive.62ccb37df4881e6d-cgu.02.rcgu.o new file mode 100644 index 000000000..d94ad7a88 Binary files /dev/null and b/.tmp-check-windows/debug/deps/yoke_derive-1f91f6751dc2866d.yoke_derive.62ccb37df4881e6d-cgu.02.rcgu.o differ diff --git a/.tmp-check-windows/debug/deps/yoke_derive-1f91f6751dc2866d.yoke_derive.62ccb37df4881e6d-cgu.03.rcgu.o b/.tmp-check-windows/debug/deps/yoke_derive-1f91f6751dc2866d.yoke_derive.62ccb37df4881e6d-cgu.03.rcgu.o new file mode 100644 index 000000000..bd6b206eb Binary files /dev/null and b/.tmp-check-windows/debug/deps/yoke_derive-1f91f6751dc2866d.yoke_derive.62ccb37df4881e6d-cgu.03.rcgu.o differ diff --git a/.tmp-check-windows/debug/deps/yoke_derive-1f91f6751dc2866d.yoke_derive.62ccb37df4881e6d-cgu.04.rcgu.o b/.tmp-check-windows/debug/deps/yoke_derive-1f91f6751dc2866d.yoke_derive.62ccb37df4881e6d-cgu.04.rcgu.o new file mode 100644 index 000000000..cdcf82ffd Binary files /dev/null and b/.tmp-check-windows/debug/deps/yoke_derive-1f91f6751dc2866d.yoke_derive.62ccb37df4881e6d-cgu.04.rcgu.o differ diff --git a/.tmp-check-windows/debug/deps/yoke_derive-1f91f6751dc2866d.yoke_derive.62ccb37df4881e6d-cgu.05.rcgu.o b/.tmp-check-windows/debug/deps/yoke_derive-1f91f6751dc2866d.yoke_derive.62ccb37df4881e6d-cgu.05.rcgu.o new file mode 100644 index 000000000..9194ebe6d Binary files /dev/null and b/.tmp-check-windows/debug/deps/yoke_derive-1f91f6751dc2866d.yoke_derive.62ccb37df4881e6d-cgu.05.rcgu.o differ diff --git a/.tmp-check-windows/debug/deps/yoke_derive-1f91f6751dc2866d.yoke_derive.62ccb37df4881e6d-cgu.06.rcgu.o b/.tmp-check-windows/debug/deps/yoke_derive-1f91f6751dc2866d.yoke_derive.62ccb37df4881e6d-cgu.06.rcgu.o new file mode 100644 index 000000000..1f37bea33 Binary files /dev/null and b/.tmp-check-windows/debug/deps/yoke_derive-1f91f6751dc2866d.yoke_derive.62ccb37df4881e6d-cgu.06.rcgu.o differ diff --git a/.tmp-check-windows/debug/deps/yoke_derive-1f91f6751dc2866d.yoke_derive.62ccb37df4881e6d-cgu.07.rcgu.o b/.tmp-check-windows/debug/deps/yoke_derive-1f91f6751dc2866d.yoke_derive.62ccb37df4881e6d-cgu.07.rcgu.o new file mode 100644 index 000000000..376f2157c Binary files /dev/null and b/.tmp-check-windows/debug/deps/yoke_derive-1f91f6751dc2866d.yoke_derive.62ccb37df4881e6d-cgu.07.rcgu.o differ diff --git a/.tmp-check-windows/debug/deps/yoke_derive-1f91f6751dc2866d.yoke_derive.62ccb37df4881e6d-cgu.08.rcgu.o b/.tmp-check-windows/debug/deps/yoke_derive-1f91f6751dc2866d.yoke_derive.62ccb37df4881e6d-cgu.08.rcgu.o new file mode 100644 index 000000000..171ba0538 Binary files /dev/null and b/.tmp-check-windows/debug/deps/yoke_derive-1f91f6751dc2866d.yoke_derive.62ccb37df4881e6d-cgu.08.rcgu.o differ diff --git a/.tmp-check-windows/debug/deps/yoke_derive-1f91f6751dc2866d.yoke_derive.62ccb37df4881e6d-cgu.09.rcgu.o b/.tmp-check-windows/debug/deps/yoke_derive-1f91f6751dc2866d.yoke_derive.62ccb37df4881e6d-cgu.09.rcgu.o new file mode 100644 index 000000000..c9dd35a26 Binary files /dev/null and b/.tmp-check-windows/debug/deps/yoke_derive-1f91f6751dc2866d.yoke_derive.62ccb37df4881e6d-cgu.09.rcgu.o differ diff --git a/.tmp-check-windows/debug/deps/yoke_derive-1f91f6751dc2866d.yoke_derive.62ccb37df4881e6d-cgu.10.rcgu.o b/.tmp-check-windows/debug/deps/yoke_derive-1f91f6751dc2866d.yoke_derive.62ccb37df4881e6d-cgu.10.rcgu.o new file mode 100644 index 000000000..44360eb82 Binary files /dev/null and b/.tmp-check-windows/debug/deps/yoke_derive-1f91f6751dc2866d.yoke_derive.62ccb37df4881e6d-cgu.10.rcgu.o differ diff --git a/.tmp-check-windows/debug/deps/yoke_derive-1f91f6751dc2866d.yoke_derive.62ccb37df4881e6d-cgu.11.rcgu.o b/.tmp-check-windows/debug/deps/yoke_derive-1f91f6751dc2866d.yoke_derive.62ccb37df4881e6d-cgu.11.rcgu.o new file mode 100644 index 000000000..e5d57b657 Binary files /dev/null and b/.tmp-check-windows/debug/deps/yoke_derive-1f91f6751dc2866d.yoke_derive.62ccb37df4881e6d-cgu.11.rcgu.o differ diff --git a/.tmp-check-windows/debug/deps/zerocopy-a2b022916120892e.d b/.tmp-check-windows/debug/deps/zerocopy-a2b022916120892e.d new file mode 100644 index 000000000..a0aa1af20 --- /dev/null +++ b/.tmp-check-windows/debug/deps/zerocopy-a2b022916120892e.d @@ -0,0 +1,27 @@ +/Users/coso/Documents/dev/ai/aiclientproxy/lime/.tmp-check-windows/debug/deps/zerocopy-a2b022916120892e.d: /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/zerocopy-0.8.39/src/lib.rs /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/zerocopy-0.8.39/src/util/mod.rs /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/zerocopy-0.8.39/src/util/macros.rs /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/zerocopy-0.8.39/src/util/macro_util.rs /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/zerocopy-0.8.39/src/byte_slice.rs /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/zerocopy-0.8.39/src/byteorder.rs /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/zerocopy-0.8.39/src/deprecated.rs /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/zerocopy-0.8.39/src/error.rs /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/zerocopy-0.8.39/src/impls.rs /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/zerocopy-0.8.39/src/layout.rs /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/zerocopy-0.8.39/src/macros.rs /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/zerocopy-0.8.39/src/pointer/mod.rs /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/zerocopy-0.8.39/src/pointer/inner.rs /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/zerocopy-0.8.39/src/pointer/invariant.rs /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/zerocopy-0.8.39/src/pointer/ptr.rs /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/zerocopy-0.8.39/src/pointer/transmute.rs /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/zerocopy-0.8.39/src/ref.rs /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/zerocopy-0.8.39/src/split_at.rs /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/zerocopy-0.8.39/src/wrappers.rs + +/Users/coso/Documents/dev/ai/aiclientproxy/lime/.tmp-check-windows/debug/deps/libzerocopy-a2b022916120892e.rlib: /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/zerocopy-0.8.39/src/lib.rs /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/zerocopy-0.8.39/src/util/mod.rs /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/zerocopy-0.8.39/src/util/macros.rs /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/zerocopy-0.8.39/src/util/macro_util.rs /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/zerocopy-0.8.39/src/byte_slice.rs /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/zerocopy-0.8.39/src/byteorder.rs /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/zerocopy-0.8.39/src/deprecated.rs /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/zerocopy-0.8.39/src/error.rs /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/zerocopy-0.8.39/src/impls.rs /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/zerocopy-0.8.39/src/layout.rs /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/zerocopy-0.8.39/src/macros.rs /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/zerocopy-0.8.39/src/pointer/mod.rs /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/zerocopy-0.8.39/src/pointer/inner.rs /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/zerocopy-0.8.39/src/pointer/invariant.rs /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/zerocopy-0.8.39/src/pointer/ptr.rs /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/zerocopy-0.8.39/src/pointer/transmute.rs /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/zerocopy-0.8.39/src/ref.rs /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/zerocopy-0.8.39/src/split_at.rs /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/zerocopy-0.8.39/src/wrappers.rs + +/Users/coso/Documents/dev/ai/aiclientproxy/lime/.tmp-check-windows/debug/deps/libzerocopy-a2b022916120892e.rmeta: /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/zerocopy-0.8.39/src/lib.rs /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/zerocopy-0.8.39/src/util/mod.rs /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/zerocopy-0.8.39/src/util/macros.rs /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/zerocopy-0.8.39/src/util/macro_util.rs /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/zerocopy-0.8.39/src/byte_slice.rs /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/zerocopy-0.8.39/src/byteorder.rs /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/zerocopy-0.8.39/src/deprecated.rs /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/zerocopy-0.8.39/src/error.rs /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/zerocopy-0.8.39/src/impls.rs /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/zerocopy-0.8.39/src/layout.rs /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/zerocopy-0.8.39/src/macros.rs /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/zerocopy-0.8.39/src/pointer/mod.rs /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/zerocopy-0.8.39/src/pointer/inner.rs /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/zerocopy-0.8.39/src/pointer/invariant.rs /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/zerocopy-0.8.39/src/pointer/ptr.rs /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/zerocopy-0.8.39/src/pointer/transmute.rs /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/zerocopy-0.8.39/src/ref.rs /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/zerocopy-0.8.39/src/split_at.rs /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/zerocopy-0.8.39/src/wrappers.rs + +/Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/zerocopy-0.8.39/src/lib.rs: +/Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/zerocopy-0.8.39/src/util/mod.rs: +/Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/zerocopy-0.8.39/src/util/macros.rs: +/Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/zerocopy-0.8.39/src/util/macro_util.rs: +/Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/zerocopy-0.8.39/src/byte_slice.rs: +/Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/zerocopy-0.8.39/src/byteorder.rs: +/Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/zerocopy-0.8.39/src/deprecated.rs: +/Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/zerocopy-0.8.39/src/error.rs: +/Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/zerocopy-0.8.39/src/impls.rs: +/Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/zerocopy-0.8.39/src/layout.rs: +/Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/zerocopy-0.8.39/src/macros.rs: +/Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/zerocopy-0.8.39/src/pointer/mod.rs: +/Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/zerocopy-0.8.39/src/pointer/inner.rs: +/Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/zerocopy-0.8.39/src/pointer/invariant.rs: +/Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/zerocopy-0.8.39/src/pointer/ptr.rs: +/Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/zerocopy-0.8.39/src/pointer/transmute.rs: +/Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/zerocopy-0.8.39/src/ref.rs: +/Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/zerocopy-0.8.39/src/split_at.rs: +/Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/zerocopy-0.8.39/src/wrappers.rs: + +# env-dep:CARGO_PKG_VERSION=0.8.39 diff --git a/.tmp-check-windows/debug/deps/zerocopy-a2b022916120892e.zerocopy.b65052439ebae20a-cgu.0.rcgu.o b/.tmp-check-windows/debug/deps/zerocopy-a2b022916120892e.zerocopy.b65052439ebae20a-cgu.0.rcgu.o new file mode 100644 index 000000000..ac020a125 Binary files /dev/null and b/.tmp-check-windows/debug/deps/zerocopy-a2b022916120892e.zerocopy.b65052439ebae20a-cgu.0.rcgu.o differ diff --git a/.tmp-check-windows/debug/deps/zerofrom_derive-cc5732938083fb5d.d b/.tmp-check-windows/debug/deps/zerofrom_derive-cc5732938083fb5d.d new file mode 100644 index 000000000..806acff5d --- /dev/null +++ b/.tmp-check-windows/debug/deps/zerofrom_derive-cc5732938083fb5d.d @@ -0,0 +1,6 @@ +/Users/coso/Documents/dev/ai/aiclientproxy/lime/.tmp-check-windows/debug/deps/zerofrom_derive-cc5732938083fb5d.d: /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/zerofrom-derive-0.1.6/src/lib.rs /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/zerofrom-derive-0.1.6/src/visitor.rs + +/Users/coso/Documents/dev/ai/aiclientproxy/lime/.tmp-check-windows/debug/deps/libzerofrom_derive-cc5732938083fb5d.dylib: /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/zerofrom-derive-0.1.6/src/lib.rs /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/zerofrom-derive-0.1.6/src/visitor.rs + +/Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/zerofrom-derive-0.1.6/src/lib.rs: +/Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/zerofrom-derive-0.1.6/src/visitor.rs: diff --git a/.tmp-check-windows/debug/deps/zerofrom_derive-cc5732938083fb5d.zerofrom_derive.20b358d4682049b9-cgu.00.rcgu.o b/.tmp-check-windows/debug/deps/zerofrom_derive-cc5732938083fb5d.zerofrom_derive.20b358d4682049b9-cgu.00.rcgu.o new file mode 100644 index 000000000..e89072f20 Binary files /dev/null and b/.tmp-check-windows/debug/deps/zerofrom_derive-cc5732938083fb5d.zerofrom_derive.20b358d4682049b9-cgu.00.rcgu.o differ diff --git a/.tmp-check-windows/debug/deps/zerofrom_derive-cc5732938083fb5d.zerofrom_derive.20b358d4682049b9-cgu.01.rcgu.o b/.tmp-check-windows/debug/deps/zerofrom_derive-cc5732938083fb5d.zerofrom_derive.20b358d4682049b9-cgu.01.rcgu.o new file mode 100644 index 000000000..74ada3239 Binary files /dev/null and b/.tmp-check-windows/debug/deps/zerofrom_derive-cc5732938083fb5d.zerofrom_derive.20b358d4682049b9-cgu.01.rcgu.o differ diff --git a/.tmp-check-windows/debug/deps/zerofrom_derive-cc5732938083fb5d.zerofrom_derive.20b358d4682049b9-cgu.02.rcgu.o b/.tmp-check-windows/debug/deps/zerofrom_derive-cc5732938083fb5d.zerofrom_derive.20b358d4682049b9-cgu.02.rcgu.o new file mode 100644 index 000000000..86e360581 Binary files /dev/null and b/.tmp-check-windows/debug/deps/zerofrom_derive-cc5732938083fb5d.zerofrom_derive.20b358d4682049b9-cgu.02.rcgu.o differ diff --git a/.tmp-check-windows/debug/deps/zerofrom_derive-cc5732938083fb5d.zerofrom_derive.20b358d4682049b9-cgu.03.rcgu.o b/.tmp-check-windows/debug/deps/zerofrom_derive-cc5732938083fb5d.zerofrom_derive.20b358d4682049b9-cgu.03.rcgu.o new file mode 100644 index 000000000..534babd2e Binary files /dev/null and b/.tmp-check-windows/debug/deps/zerofrom_derive-cc5732938083fb5d.zerofrom_derive.20b358d4682049b9-cgu.03.rcgu.o differ diff --git a/.tmp-check-windows/debug/deps/zerofrom_derive-cc5732938083fb5d.zerofrom_derive.20b358d4682049b9-cgu.04.rcgu.o b/.tmp-check-windows/debug/deps/zerofrom_derive-cc5732938083fb5d.zerofrom_derive.20b358d4682049b9-cgu.04.rcgu.o new file mode 100644 index 000000000..e40df5e49 Binary files /dev/null and b/.tmp-check-windows/debug/deps/zerofrom_derive-cc5732938083fb5d.zerofrom_derive.20b358d4682049b9-cgu.04.rcgu.o differ diff --git a/.tmp-check-windows/debug/deps/zerofrom_derive-cc5732938083fb5d.zerofrom_derive.20b358d4682049b9-cgu.05.rcgu.o b/.tmp-check-windows/debug/deps/zerofrom_derive-cc5732938083fb5d.zerofrom_derive.20b358d4682049b9-cgu.05.rcgu.o new file mode 100644 index 000000000..9b5e7c297 Binary files /dev/null and b/.tmp-check-windows/debug/deps/zerofrom_derive-cc5732938083fb5d.zerofrom_derive.20b358d4682049b9-cgu.05.rcgu.o differ diff --git a/.tmp-check-windows/debug/deps/zerofrom_derive-cc5732938083fb5d.zerofrom_derive.20b358d4682049b9-cgu.06.rcgu.o b/.tmp-check-windows/debug/deps/zerofrom_derive-cc5732938083fb5d.zerofrom_derive.20b358d4682049b9-cgu.06.rcgu.o new file mode 100644 index 000000000..ea2931a58 Binary files /dev/null and b/.tmp-check-windows/debug/deps/zerofrom_derive-cc5732938083fb5d.zerofrom_derive.20b358d4682049b9-cgu.06.rcgu.o differ diff --git a/.tmp-check-windows/debug/deps/zerofrom_derive-cc5732938083fb5d.zerofrom_derive.20b358d4682049b9-cgu.07.rcgu.o b/.tmp-check-windows/debug/deps/zerofrom_derive-cc5732938083fb5d.zerofrom_derive.20b358d4682049b9-cgu.07.rcgu.o new file mode 100644 index 000000000..9178ccf9d Binary files /dev/null and b/.tmp-check-windows/debug/deps/zerofrom_derive-cc5732938083fb5d.zerofrom_derive.20b358d4682049b9-cgu.07.rcgu.o differ diff --git a/.tmp-check-windows/debug/deps/zerofrom_derive-cc5732938083fb5d.zerofrom_derive.20b358d4682049b9-cgu.08.rcgu.o b/.tmp-check-windows/debug/deps/zerofrom_derive-cc5732938083fb5d.zerofrom_derive.20b358d4682049b9-cgu.08.rcgu.o new file mode 100644 index 000000000..274b336c4 Binary files /dev/null and b/.tmp-check-windows/debug/deps/zerofrom_derive-cc5732938083fb5d.zerofrom_derive.20b358d4682049b9-cgu.08.rcgu.o differ diff --git a/.tmp-check-windows/debug/deps/zerofrom_derive-cc5732938083fb5d.zerofrom_derive.20b358d4682049b9-cgu.09.rcgu.o b/.tmp-check-windows/debug/deps/zerofrom_derive-cc5732938083fb5d.zerofrom_derive.20b358d4682049b9-cgu.09.rcgu.o new file mode 100644 index 000000000..7fc03ff67 Binary files /dev/null and b/.tmp-check-windows/debug/deps/zerofrom_derive-cc5732938083fb5d.zerofrom_derive.20b358d4682049b9-cgu.09.rcgu.o differ diff --git a/.tmp-check-windows/debug/deps/zerofrom_derive-cc5732938083fb5d.zerofrom_derive.20b358d4682049b9-cgu.10.rcgu.o b/.tmp-check-windows/debug/deps/zerofrom_derive-cc5732938083fb5d.zerofrom_derive.20b358d4682049b9-cgu.10.rcgu.o new file mode 100644 index 000000000..edfdb547f Binary files /dev/null and b/.tmp-check-windows/debug/deps/zerofrom_derive-cc5732938083fb5d.zerofrom_derive.20b358d4682049b9-cgu.10.rcgu.o differ diff --git a/.tmp-check-windows/debug/deps/zerofrom_derive-cc5732938083fb5d.zerofrom_derive.20b358d4682049b9-cgu.11.rcgu.o b/.tmp-check-windows/debug/deps/zerofrom_derive-cc5732938083fb5d.zerofrom_derive.20b358d4682049b9-cgu.11.rcgu.o new file mode 100644 index 000000000..69b81fbe2 Binary files /dev/null and b/.tmp-check-windows/debug/deps/zerofrom_derive-cc5732938083fb5d.zerofrom_derive.20b358d4682049b9-cgu.11.rcgu.o differ diff --git a/.tmp-check-windows/debug/deps/zerofrom_derive-cc5732938083fb5d.zerofrom_derive.20b358d4682049b9-cgu.12.rcgu.o b/.tmp-check-windows/debug/deps/zerofrom_derive-cc5732938083fb5d.zerofrom_derive.20b358d4682049b9-cgu.12.rcgu.o new file mode 100644 index 000000000..9c943837f Binary files /dev/null and b/.tmp-check-windows/debug/deps/zerofrom_derive-cc5732938083fb5d.zerofrom_derive.20b358d4682049b9-cgu.12.rcgu.o differ diff --git a/.tmp-check-windows/debug/deps/zerofrom_derive-cc5732938083fb5d.zerofrom_derive.20b358d4682049b9-cgu.13.rcgu.o b/.tmp-check-windows/debug/deps/zerofrom_derive-cc5732938083fb5d.zerofrom_derive.20b358d4682049b9-cgu.13.rcgu.o new file mode 100644 index 000000000..1d8495354 Binary files /dev/null and b/.tmp-check-windows/debug/deps/zerofrom_derive-cc5732938083fb5d.zerofrom_derive.20b358d4682049b9-cgu.13.rcgu.o differ diff --git a/.tmp-check-windows/debug/deps/zerofrom_derive-cc5732938083fb5d.zerofrom_derive.20b358d4682049b9-cgu.14.rcgu.o b/.tmp-check-windows/debug/deps/zerofrom_derive-cc5732938083fb5d.zerofrom_derive.20b358d4682049b9-cgu.14.rcgu.o new file mode 100644 index 000000000..7303d669a Binary files /dev/null and b/.tmp-check-windows/debug/deps/zerofrom_derive-cc5732938083fb5d.zerofrom_derive.20b358d4682049b9-cgu.14.rcgu.o differ diff --git a/.tmp-check-windows/debug/deps/zerofrom_derive-cc5732938083fb5d.zerofrom_derive.20b358d4682049b9-cgu.15.rcgu.o b/.tmp-check-windows/debug/deps/zerofrom_derive-cc5732938083fb5d.zerofrom_derive.20b358d4682049b9-cgu.15.rcgu.o new file mode 100644 index 000000000..f9cdd4d92 Binary files /dev/null and b/.tmp-check-windows/debug/deps/zerofrom_derive-cc5732938083fb5d.zerofrom_derive.20b358d4682049b9-cgu.15.rcgu.o differ diff --git a/.tmp-check-windows/debug/deps/zerovec_derive-102b2341acf1be88.d b/.tmp-check-windows/debug/deps/zerovec_derive-102b2341acf1be88.d new file mode 100644 index 000000000..f65c22882 --- /dev/null +++ b/.tmp-check-windows/debug/deps/zerovec_derive-102b2341acf1be88.d @@ -0,0 +1,10 @@ +/Users/coso/Documents/dev/ai/aiclientproxy/lime/.tmp-check-windows/debug/deps/zerovec_derive-102b2341acf1be88.d: /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/zerovec-derive-0.11.2/src/lib.rs /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/zerovec-derive-0.11.2/src/make_ule.rs /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/zerovec-derive-0.11.2/src/make_varule.rs /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/zerovec-derive-0.11.2/src/ule.rs /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/zerovec-derive-0.11.2/src/utils.rs /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/zerovec-derive-0.11.2/src/varule.rs + +/Users/coso/Documents/dev/ai/aiclientproxy/lime/.tmp-check-windows/debug/deps/libzerovec_derive-102b2341acf1be88.dylib: /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/zerovec-derive-0.11.2/src/lib.rs /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/zerovec-derive-0.11.2/src/make_ule.rs /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/zerovec-derive-0.11.2/src/make_varule.rs /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/zerovec-derive-0.11.2/src/ule.rs /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/zerovec-derive-0.11.2/src/utils.rs /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/zerovec-derive-0.11.2/src/varule.rs + +/Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/zerovec-derive-0.11.2/src/lib.rs: +/Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/zerovec-derive-0.11.2/src/make_ule.rs: +/Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/zerovec-derive-0.11.2/src/make_varule.rs: +/Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/zerovec-derive-0.11.2/src/ule.rs: +/Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/zerovec-derive-0.11.2/src/utils.rs: +/Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/zerovec-derive-0.11.2/src/varule.rs: diff --git a/.tmp-check-windows/debug/deps/zerovec_derive-102b2341acf1be88.zerovec_derive.dd1825339198c7f4-cgu.00.rcgu.o b/.tmp-check-windows/debug/deps/zerovec_derive-102b2341acf1be88.zerovec_derive.dd1825339198c7f4-cgu.00.rcgu.o new file mode 100644 index 000000000..450316c7b Binary files /dev/null and b/.tmp-check-windows/debug/deps/zerovec_derive-102b2341acf1be88.zerovec_derive.dd1825339198c7f4-cgu.00.rcgu.o differ diff --git a/.tmp-check-windows/debug/deps/zerovec_derive-102b2341acf1be88.zerovec_derive.dd1825339198c7f4-cgu.01.rcgu.o b/.tmp-check-windows/debug/deps/zerovec_derive-102b2341acf1be88.zerovec_derive.dd1825339198c7f4-cgu.01.rcgu.o new file mode 100644 index 000000000..95f412d95 Binary files /dev/null and b/.tmp-check-windows/debug/deps/zerovec_derive-102b2341acf1be88.zerovec_derive.dd1825339198c7f4-cgu.01.rcgu.o differ diff --git a/.tmp-check-windows/debug/deps/zerovec_derive-102b2341acf1be88.zerovec_derive.dd1825339198c7f4-cgu.02.rcgu.o b/.tmp-check-windows/debug/deps/zerovec_derive-102b2341acf1be88.zerovec_derive.dd1825339198c7f4-cgu.02.rcgu.o new file mode 100644 index 000000000..a3c446b86 Binary files /dev/null and b/.tmp-check-windows/debug/deps/zerovec_derive-102b2341acf1be88.zerovec_derive.dd1825339198c7f4-cgu.02.rcgu.o differ diff --git a/.tmp-check-windows/debug/deps/zerovec_derive-102b2341acf1be88.zerovec_derive.dd1825339198c7f4-cgu.03.rcgu.o b/.tmp-check-windows/debug/deps/zerovec_derive-102b2341acf1be88.zerovec_derive.dd1825339198c7f4-cgu.03.rcgu.o new file mode 100644 index 000000000..1f13b3412 Binary files /dev/null and b/.tmp-check-windows/debug/deps/zerovec_derive-102b2341acf1be88.zerovec_derive.dd1825339198c7f4-cgu.03.rcgu.o differ diff --git a/.tmp-check-windows/debug/deps/zerovec_derive-102b2341acf1be88.zerovec_derive.dd1825339198c7f4-cgu.04.rcgu.o b/.tmp-check-windows/debug/deps/zerovec_derive-102b2341acf1be88.zerovec_derive.dd1825339198c7f4-cgu.04.rcgu.o new file mode 100644 index 000000000..a48150062 Binary files /dev/null and b/.tmp-check-windows/debug/deps/zerovec_derive-102b2341acf1be88.zerovec_derive.dd1825339198c7f4-cgu.04.rcgu.o differ diff --git a/.tmp-check-windows/debug/deps/zerovec_derive-102b2341acf1be88.zerovec_derive.dd1825339198c7f4-cgu.05.rcgu.o b/.tmp-check-windows/debug/deps/zerovec_derive-102b2341acf1be88.zerovec_derive.dd1825339198c7f4-cgu.05.rcgu.o new file mode 100644 index 000000000..2053b99d5 Binary files /dev/null and b/.tmp-check-windows/debug/deps/zerovec_derive-102b2341acf1be88.zerovec_derive.dd1825339198c7f4-cgu.05.rcgu.o differ diff --git a/.tmp-check-windows/debug/deps/zerovec_derive-102b2341acf1be88.zerovec_derive.dd1825339198c7f4-cgu.06.rcgu.o b/.tmp-check-windows/debug/deps/zerovec_derive-102b2341acf1be88.zerovec_derive.dd1825339198c7f4-cgu.06.rcgu.o new file mode 100644 index 000000000..b07f12502 Binary files /dev/null and b/.tmp-check-windows/debug/deps/zerovec_derive-102b2341acf1be88.zerovec_derive.dd1825339198c7f4-cgu.06.rcgu.o differ diff --git a/.tmp-check-windows/debug/deps/zerovec_derive-102b2341acf1be88.zerovec_derive.dd1825339198c7f4-cgu.07.rcgu.o b/.tmp-check-windows/debug/deps/zerovec_derive-102b2341acf1be88.zerovec_derive.dd1825339198c7f4-cgu.07.rcgu.o new file mode 100644 index 000000000..2bb95d7ab Binary files /dev/null and b/.tmp-check-windows/debug/deps/zerovec_derive-102b2341acf1be88.zerovec_derive.dd1825339198c7f4-cgu.07.rcgu.o differ diff --git a/.tmp-check-windows/debug/deps/zerovec_derive-102b2341acf1be88.zerovec_derive.dd1825339198c7f4-cgu.08.rcgu.o b/.tmp-check-windows/debug/deps/zerovec_derive-102b2341acf1be88.zerovec_derive.dd1825339198c7f4-cgu.08.rcgu.o new file mode 100644 index 000000000..cdd2f63a1 Binary files /dev/null and b/.tmp-check-windows/debug/deps/zerovec_derive-102b2341acf1be88.zerovec_derive.dd1825339198c7f4-cgu.08.rcgu.o differ diff --git a/.tmp-check-windows/debug/deps/zerovec_derive-102b2341acf1be88.zerovec_derive.dd1825339198c7f4-cgu.09.rcgu.o b/.tmp-check-windows/debug/deps/zerovec_derive-102b2341acf1be88.zerovec_derive.dd1825339198c7f4-cgu.09.rcgu.o new file mode 100644 index 000000000..04f1ab9fe Binary files /dev/null and b/.tmp-check-windows/debug/deps/zerovec_derive-102b2341acf1be88.zerovec_derive.dd1825339198c7f4-cgu.09.rcgu.o differ diff --git a/.tmp-check-windows/debug/deps/zmij-dcc967559ac11d96.d b/.tmp-check-windows/debug/deps/zmij-dcc967559ac11d96.d new file mode 100644 index 000000000..6ba59f080 --- /dev/null +++ b/.tmp-check-windows/debug/deps/zmij-dcc967559ac11d96.d @@ -0,0 +1,8 @@ +/Users/coso/Documents/dev/ai/aiclientproxy/lime/.tmp-check-windows/debug/deps/zmij-dcc967559ac11d96.d: /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/zmij-1.0.21/src/lib.rs /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/zmij-1.0.21/src/traits.rs + +/Users/coso/Documents/dev/ai/aiclientproxy/lime/.tmp-check-windows/debug/deps/libzmij-dcc967559ac11d96.rlib: /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/zmij-1.0.21/src/lib.rs /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/zmij-1.0.21/src/traits.rs + +/Users/coso/Documents/dev/ai/aiclientproxy/lime/.tmp-check-windows/debug/deps/libzmij-dcc967559ac11d96.rmeta: /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/zmij-1.0.21/src/lib.rs /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/zmij-1.0.21/src/traits.rs + +/Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/zmij-1.0.21/src/lib.rs: +/Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/zmij-1.0.21/src/traits.rs: diff --git a/.tmp-check-windows/debug/deps/zmij-dcc967559ac11d96.zmij.b43b67082a5493aa-cgu.0.rcgu.o b/.tmp-check-windows/debug/deps/zmij-dcc967559ac11d96.zmij.b43b67082a5493aa-cgu.0.rcgu.o new file mode 100644 index 000000000..129073e65 Binary files /dev/null and b/.tmp-check-windows/debug/deps/zmij-dcc967559ac11d96.zmij.b43b67082a5493aa-cgu.0.rcgu.o differ diff --git a/.tmp-check-windows/x86_64-pc-windows-msvc/CACHEDIR.TAG b/.tmp-check-windows/x86_64-pc-windows-msvc/CACHEDIR.TAG new file mode 100644 index 000000000..20d7c319c --- /dev/null +++ b/.tmp-check-windows/x86_64-pc-windows-msvc/CACHEDIR.TAG @@ -0,0 +1,3 @@ +Signature: 8a477f597d28d172789f06886806bc55 +# This file is a cache directory tag created by cargo. +# For information about cache directory tags see https://bford.info/cachedir/ diff --git a/.tmp-check-windows/x86_64-pc-windows-msvc/debug/.cargo-lock b/.tmp-check-windows/x86_64-pc-windows-msvc/debug/.cargo-lock new file mode 100644 index 000000000..e69de29bb diff --git a/.tmp-check-windows/x86_64-pc-windows-msvc/debug/.fingerprint/allocator-api2-9124b3fecd321e72/dep-lib-allocator_api2 b/.tmp-check-windows/x86_64-pc-windows-msvc/debug/.fingerprint/allocator-api2-9124b3fecd321e72/dep-lib-allocator_api2 new file mode 100644 index 000000000..ec3cb8bfd Binary files /dev/null and b/.tmp-check-windows/x86_64-pc-windows-msvc/debug/.fingerprint/allocator-api2-9124b3fecd321e72/dep-lib-allocator_api2 differ diff --git a/.tmp-check-windows/x86_64-pc-windows-msvc/debug/.fingerprint/allocator-api2-9124b3fecd321e72/invoked.timestamp b/.tmp-check-windows/x86_64-pc-windows-msvc/debug/.fingerprint/allocator-api2-9124b3fecd321e72/invoked.timestamp new file mode 100644 index 000000000..e00328da5 --- /dev/null +++ b/.tmp-check-windows/x86_64-pc-windows-msvc/debug/.fingerprint/allocator-api2-9124b3fecd321e72/invoked.timestamp @@ -0,0 +1 @@ +This file has an mtime of when this was started. \ No newline at end of file diff --git a/.tmp-check-windows/x86_64-pc-windows-msvc/debug/.fingerprint/allocator-api2-9124b3fecd321e72/lib-allocator_api2 b/.tmp-check-windows/x86_64-pc-windows-msvc/debug/.fingerprint/allocator-api2-9124b3fecd321e72/lib-allocator_api2 new file mode 100644 index 000000000..7722f1513 --- /dev/null +++ b/.tmp-check-windows/x86_64-pc-windows-msvc/debug/.fingerprint/allocator-api2-9124b3fecd321e72/lib-allocator_api2 @@ -0,0 +1 @@ +e4f83bf28c2c60eb \ No newline at end of file diff --git a/.tmp-check-windows/x86_64-pc-windows-msvc/debug/.fingerprint/allocator-api2-9124b3fecd321e72/lib-allocator_api2.json b/.tmp-check-windows/x86_64-pc-windows-msvc/debug/.fingerprint/allocator-api2-9124b3fecd321e72/lib-allocator_api2.json new file mode 100644 index 000000000..f2792d263 --- /dev/null +++ b/.tmp-check-windows/x86_64-pc-windows-msvc/debug/.fingerprint/allocator-api2-9124b3fecd321e72/lib-allocator_api2.json @@ -0,0 +1 @@ +{"rustc":13850170861107434965,"features":"[\"alloc\"]","declared_features":"[\"alloc\", \"default\", \"fresh-rust\", \"nightly\", \"serde\", \"std\"]","target":5388200169723499962,"profile":187265481308423917,"path":6260461046996049124,"deps":[],"local":[{"CheckDepInfo":{"dep_info":"x86_64-pc-windows-msvc/debug/.fingerprint/allocator-api2-9124b3fecd321e72/dep-lib-allocator_api2","checksum":false}}],"rustflags":[],"config":2069994364910194474,"compile_kind":9161124489350129226} \ No newline at end of file diff --git a/.tmp-check-windows/x86_64-pc-windows-msvc/debug/.fingerprint/bitflags-c7e27940c9a4250d/dep-lib-bitflags b/.tmp-check-windows/x86_64-pc-windows-msvc/debug/.fingerprint/bitflags-c7e27940c9a4250d/dep-lib-bitflags new file mode 100644 index 000000000..ec3cb8bfd Binary files /dev/null and b/.tmp-check-windows/x86_64-pc-windows-msvc/debug/.fingerprint/bitflags-c7e27940c9a4250d/dep-lib-bitflags differ diff --git a/.tmp-check-windows/x86_64-pc-windows-msvc/debug/.fingerprint/bitflags-c7e27940c9a4250d/invoked.timestamp b/.tmp-check-windows/x86_64-pc-windows-msvc/debug/.fingerprint/bitflags-c7e27940c9a4250d/invoked.timestamp new file mode 100644 index 000000000..e00328da5 --- /dev/null +++ b/.tmp-check-windows/x86_64-pc-windows-msvc/debug/.fingerprint/bitflags-c7e27940c9a4250d/invoked.timestamp @@ -0,0 +1 @@ +This file has an mtime of when this was started. \ No newline at end of file diff --git a/.tmp-check-windows/x86_64-pc-windows-msvc/debug/.fingerprint/bitflags-c7e27940c9a4250d/lib-bitflags b/.tmp-check-windows/x86_64-pc-windows-msvc/debug/.fingerprint/bitflags-c7e27940c9a4250d/lib-bitflags new file mode 100644 index 000000000..4e0b4b5a9 --- /dev/null +++ b/.tmp-check-windows/x86_64-pc-windows-msvc/debug/.fingerprint/bitflags-c7e27940c9a4250d/lib-bitflags @@ -0,0 +1 @@ +09afdbe46fe0d2fb \ No newline at end of file diff --git a/.tmp-check-windows/x86_64-pc-windows-msvc/debug/.fingerprint/bitflags-c7e27940c9a4250d/lib-bitflags.json b/.tmp-check-windows/x86_64-pc-windows-msvc/debug/.fingerprint/bitflags-c7e27940c9a4250d/lib-bitflags.json new file mode 100644 index 000000000..3762e6628 --- /dev/null +++ b/.tmp-check-windows/x86_64-pc-windows-msvc/debug/.fingerprint/bitflags-c7e27940c9a4250d/lib-bitflags.json @@ -0,0 +1 @@ +{"rustc":13850170861107434965,"features":"[\"serde\", \"serde_core\"]","declared_features":"[\"arbitrary\", \"bytemuck\", \"example_generated\", \"serde\", \"serde_core\", \"std\"]","target":7691312148208718491,"profile":2241668132362809309,"path":1070115531455984576,"deps":[[11899261697793765154,"serde_core",false,13179642004848653973]],"local":[{"CheckDepInfo":{"dep_info":"x86_64-pc-windows-msvc/debug/.fingerprint/bitflags-c7e27940c9a4250d/dep-lib-bitflags","checksum":false}}],"rustflags":[],"config":2069994364910194474,"compile_kind":9161124489350129226} \ No newline at end of file diff --git a/.tmp-check-windows/x86_64-pc-windows-msvc/debug/.fingerprint/bytes-30e33214aee11dd5/dep-lib-bytes b/.tmp-check-windows/x86_64-pc-windows-msvc/debug/.fingerprint/bytes-30e33214aee11dd5/dep-lib-bytes new file mode 100644 index 000000000..ec3cb8bfd Binary files /dev/null and b/.tmp-check-windows/x86_64-pc-windows-msvc/debug/.fingerprint/bytes-30e33214aee11dd5/dep-lib-bytes differ diff --git a/.tmp-check-windows/x86_64-pc-windows-msvc/debug/.fingerprint/bytes-30e33214aee11dd5/invoked.timestamp b/.tmp-check-windows/x86_64-pc-windows-msvc/debug/.fingerprint/bytes-30e33214aee11dd5/invoked.timestamp new file mode 100644 index 000000000..e00328da5 --- /dev/null +++ b/.tmp-check-windows/x86_64-pc-windows-msvc/debug/.fingerprint/bytes-30e33214aee11dd5/invoked.timestamp @@ -0,0 +1 @@ +This file has an mtime of when this was started. \ No newline at end of file diff --git a/.tmp-check-windows/x86_64-pc-windows-msvc/debug/.fingerprint/bytes-30e33214aee11dd5/lib-bytes b/.tmp-check-windows/x86_64-pc-windows-msvc/debug/.fingerprint/bytes-30e33214aee11dd5/lib-bytes new file mode 100644 index 000000000..e926c1d41 --- /dev/null +++ b/.tmp-check-windows/x86_64-pc-windows-msvc/debug/.fingerprint/bytes-30e33214aee11dd5/lib-bytes @@ -0,0 +1 @@ +30ab52720112e99f \ No newline at end of file diff --git a/.tmp-check-windows/x86_64-pc-windows-msvc/debug/.fingerprint/bytes-30e33214aee11dd5/lib-bytes.json b/.tmp-check-windows/x86_64-pc-windows-msvc/debug/.fingerprint/bytes-30e33214aee11dd5/lib-bytes.json new file mode 100644 index 000000000..d8c02d3c0 --- /dev/null +++ b/.tmp-check-windows/x86_64-pc-windows-msvc/debug/.fingerprint/bytes-30e33214aee11dd5/lib-bytes.json @@ -0,0 +1 @@ +{"rustc":13850170861107434965,"features":"[\"default\", \"std\"]","declared_features":"[\"default\", \"extra-platforms\", \"serde\", \"std\"]","target":11402411492164584411,"profile":13827760451848848284,"path":10771240258428811772,"deps":[],"local":[{"CheckDepInfo":{"dep_info":"x86_64-pc-windows-msvc/debug/.fingerprint/bytes-30e33214aee11dd5/dep-lib-bytes","checksum":false}}],"rustflags":[],"config":2069994364910194474,"compile_kind":9161124489350129226} \ No newline at end of file diff --git a/.tmp-check-windows/x86_64-pc-windows-msvc/debug/.fingerprint/cfg-if-f818a7106a91bc57/dep-lib-cfg_if b/.tmp-check-windows/x86_64-pc-windows-msvc/debug/.fingerprint/cfg-if-f818a7106a91bc57/dep-lib-cfg_if new file mode 100644 index 000000000..ec3cb8bfd Binary files /dev/null and b/.tmp-check-windows/x86_64-pc-windows-msvc/debug/.fingerprint/cfg-if-f818a7106a91bc57/dep-lib-cfg_if differ diff --git a/.tmp-check-windows/x86_64-pc-windows-msvc/debug/.fingerprint/cfg-if-f818a7106a91bc57/invoked.timestamp b/.tmp-check-windows/x86_64-pc-windows-msvc/debug/.fingerprint/cfg-if-f818a7106a91bc57/invoked.timestamp new file mode 100644 index 000000000..e00328da5 --- /dev/null +++ b/.tmp-check-windows/x86_64-pc-windows-msvc/debug/.fingerprint/cfg-if-f818a7106a91bc57/invoked.timestamp @@ -0,0 +1 @@ +This file has an mtime of when this was started. \ No newline at end of file diff --git a/.tmp-check-windows/x86_64-pc-windows-msvc/debug/.fingerprint/cfg-if-f818a7106a91bc57/lib-cfg_if b/.tmp-check-windows/x86_64-pc-windows-msvc/debug/.fingerprint/cfg-if-f818a7106a91bc57/lib-cfg_if new file mode 100644 index 000000000..73cf17e1a --- /dev/null +++ b/.tmp-check-windows/x86_64-pc-windows-msvc/debug/.fingerprint/cfg-if-f818a7106a91bc57/lib-cfg_if @@ -0,0 +1 @@ +8caa403b23454536 \ No newline at end of file diff --git a/.tmp-check-windows/x86_64-pc-windows-msvc/debug/.fingerprint/cfg-if-f818a7106a91bc57/lib-cfg_if.json b/.tmp-check-windows/x86_64-pc-windows-msvc/debug/.fingerprint/cfg-if-f818a7106a91bc57/lib-cfg_if.json new file mode 100644 index 000000000..4b456522d --- /dev/null +++ b/.tmp-check-windows/x86_64-pc-windows-msvc/debug/.fingerprint/cfg-if-f818a7106a91bc57/lib-cfg_if.json @@ -0,0 +1 @@ +{"rustc":13850170861107434965,"features":"[]","declared_features":"[\"core\", \"rustc-dep-of-std\"]","target":13840298032947503755,"profile":2241668132362809309,"path":4021105622758704507,"deps":[],"local":[{"CheckDepInfo":{"dep_info":"x86_64-pc-windows-msvc/debug/.fingerprint/cfg-if-f818a7106a91bc57/dep-lib-cfg_if","checksum":false}}],"rustflags":[],"config":2069994364910194474,"compile_kind":9161124489350129226} \ No newline at end of file diff --git a/.tmp-check-windows/x86_64-pc-windows-msvc/debug/.fingerprint/crc32fast-6c8e3cbaf660e283/dep-lib-crc32fast b/.tmp-check-windows/x86_64-pc-windows-msvc/debug/.fingerprint/crc32fast-6c8e3cbaf660e283/dep-lib-crc32fast new file mode 100644 index 000000000..ec3cb8bfd Binary files /dev/null and b/.tmp-check-windows/x86_64-pc-windows-msvc/debug/.fingerprint/crc32fast-6c8e3cbaf660e283/dep-lib-crc32fast differ diff --git a/.tmp-check-windows/x86_64-pc-windows-msvc/debug/.fingerprint/crc32fast-6c8e3cbaf660e283/invoked.timestamp b/.tmp-check-windows/x86_64-pc-windows-msvc/debug/.fingerprint/crc32fast-6c8e3cbaf660e283/invoked.timestamp new file mode 100644 index 000000000..e00328da5 --- /dev/null +++ b/.tmp-check-windows/x86_64-pc-windows-msvc/debug/.fingerprint/crc32fast-6c8e3cbaf660e283/invoked.timestamp @@ -0,0 +1 @@ +This file has an mtime of when this was started. \ No newline at end of file diff --git a/.tmp-check-windows/x86_64-pc-windows-msvc/debug/.fingerprint/crc32fast-6c8e3cbaf660e283/lib-crc32fast b/.tmp-check-windows/x86_64-pc-windows-msvc/debug/.fingerprint/crc32fast-6c8e3cbaf660e283/lib-crc32fast new file mode 100644 index 000000000..0fe3fd1a2 --- /dev/null +++ b/.tmp-check-windows/x86_64-pc-windows-msvc/debug/.fingerprint/crc32fast-6c8e3cbaf660e283/lib-crc32fast @@ -0,0 +1 @@ +4dbf4ca6f3b8c33e \ No newline at end of file diff --git a/.tmp-check-windows/x86_64-pc-windows-msvc/debug/.fingerprint/crc32fast-6c8e3cbaf660e283/lib-crc32fast.json b/.tmp-check-windows/x86_64-pc-windows-msvc/debug/.fingerprint/crc32fast-6c8e3cbaf660e283/lib-crc32fast.json new file mode 100644 index 000000000..50ad7fccc --- /dev/null +++ b/.tmp-check-windows/x86_64-pc-windows-msvc/debug/.fingerprint/crc32fast-6c8e3cbaf660e283/lib-crc32fast.json @@ -0,0 +1 @@ +{"rustc":13850170861107434965,"features":"[\"default\", \"std\"]","declared_features":"[\"default\", \"nightly\", \"std\"]","target":10823605331999153028,"profile":2241668132362809309,"path":9021458747529928917,"deps":[[7312356825837975969,"build_script_build",false,8563720933089174222],[7667230146095136825,"cfg_if",false,3910607869061409420]],"local":[{"CheckDepInfo":{"dep_info":"x86_64-pc-windows-msvc/debug/.fingerprint/crc32fast-6c8e3cbaf660e283/dep-lib-crc32fast","checksum":false}}],"rustflags":[],"config":2069994364910194474,"compile_kind":9161124489350129226} \ No newline at end of file diff --git a/.tmp-check-windows/x86_64-pc-windows-msvc/debug/.fingerprint/crc32fast-f6f87bc31cc392b8/run-build-script-build-script-build b/.tmp-check-windows/x86_64-pc-windows-msvc/debug/.fingerprint/crc32fast-f6f87bc31cc392b8/run-build-script-build-script-build new file mode 100644 index 000000000..ac651dba9 --- /dev/null +++ b/.tmp-check-windows/x86_64-pc-windows-msvc/debug/.fingerprint/crc32fast-f6f87bc31cc392b8/run-build-script-build-script-build @@ -0,0 +1 @@ +ce625becd072d876 \ No newline at end of file diff --git a/.tmp-check-windows/x86_64-pc-windows-msvc/debug/.fingerprint/crc32fast-f6f87bc31cc392b8/run-build-script-build-script-build.json b/.tmp-check-windows/x86_64-pc-windows-msvc/debug/.fingerprint/crc32fast-f6f87bc31cc392b8/run-build-script-build-script-build.json new file mode 100644 index 000000000..51ecad5d4 --- /dev/null +++ b/.tmp-check-windows/x86_64-pc-windows-msvc/debug/.fingerprint/crc32fast-f6f87bc31cc392b8/run-build-script-build-script-build.json @@ -0,0 +1 @@ +{"rustc":13850170861107434965,"features":"","declared_features":"","target":0,"profile":0,"path":0,"deps":[[7312356825837975969,"build_script_build",false,16436082662560416133]],"local":[{"Precalculated":"1.5.0"}],"rustflags":[],"config":0,"compile_kind":0} \ No newline at end of file diff --git a/.tmp-check-windows/x86_64-pc-windows-msvc/debug/.fingerprint/deranged-86dd1b5614fe3d8b/dep-lib-deranged b/.tmp-check-windows/x86_64-pc-windows-msvc/debug/.fingerprint/deranged-86dd1b5614fe3d8b/dep-lib-deranged new file mode 100644 index 000000000..ec3cb8bfd Binary files /dev/null and b/.tmp-check-windows/x86_64-pc-windows-msvc/debug/.fingerprint/deranged-86dd1b5614fe3d8b/dep-lib-deranged differ diff --git a/.tmp-check-windows/x86_64-pc-windows-msvc/debug/.fingerprint/deranged-86dd1b5614fe3d8b/invoked.timestamp b/.tmp-check-windows/x86_64-pc-windows-msvc/debug/.fingerprint/deranged-86dd1b5614fe3d8b/invoked.timestamp new file mode 100644 index 000000000..e00328da5 --- /dev/null +++ b/.tmp-check-windows/x86_64-pc-windows-msvc/debug/.fingerprint/deranged-86dd1b5614fe3d8b/invoked.timestamp @@ -0,0 +1 @@ +This file has an mtime of when this was started. \ No newline at end of file diff --git a/.tmp-check-windows/x86_64-pc-windows-msvc/debug/.fingerprint/deranged-86dd1b5614fe3d8b/lib-deranged b/.tmp-check-windows/x86_64-pc-windows-msvc/debug/.fingerprint/deranged-86dd1b5614fe3d8b/lib-deranged new file mode 100644 index 000000000..cf2e6c98a --- /dev/null +++ b/.tmp-check-windows/x86_64-pc-windows-msvc/debug/.fingerprint/deranged-86dd1b5614fe3d8b/lib-deranged @@ -0,0 +1 @@ +87d74e62ffd44b8e \ No newline at end of file diff --git a/.tmp-check-windows/x86_64-pc-windows-msvc/debug/.fingerprint/deranged-86dd1b5614fe3d8b/lib-deranged.json b/.tmp-check-windows/x86_64-pc-windows-msvc/debug/.fingerprint/deranged-86dd1b5614fe3d8b/lib-deranged.json new file mode 100644 index 000000000..8e2e32057 --- /dev/null +++ b/.tmp-check-windows/x86_64-pc-windows-msvc/debug/.fingerprint/deranged-86dd1b5614fe3d8b/lib-deranged.json @@ -0,0 +1 @@ +{"rustc":13850170861107434965,"features":"[\"default\", \"powerfmt\"]","declared_features":"[\"alloc\", \"default\", \"macros\", \"num\", \"powerfmt\", \"quickcheck\", \"rand\", \"rand010\", \"rand08\", \"rand09\", \"serde\"]","target":17941053073926740948,"profile":7036901194185330745,"path":17152850895924517141,"deps":[[5901133744777009488,"powerfmt",false,16134764510929679998]],"local":[{"CheckDepInfo":{"dep_info":"x86_64-pc-windows-msvc/debug/.fingerprint/deranged-86dd1b5614fe3d8b/dep-lib-deranged","checksum":false}}],"rustflags":[],"config":2069994364910194474,"compile_kind":9161124489350129226} \ No newline at end of file diff --git a/.tmp-check-windows/x86_64-pc-windows-msvc/debug/.fingerprint/equivalent-e2699ea9df503f27/dep-lib-equivalent b/.tmp-check-windows/x86_64-pc-windows-msvc/debug/.fingerprint/equivalent-e2699ea9df503f27/dep-lib-equivalent new file mode 100644 index 000000000..ec3cb8bfd Binary files /dev/null and b/.tmp-check-windows/x86_64-pc-windows-msvc/debug/.fingerprint/equivalent-e2699ea9df503f27/dep-lib-equivalent differ diff --git a/.tmp-check-windows/x86_64-pc-windows-msvc/debug/.fingerprint/equivalent-e2699ea9df503f27/invoked.timestamp b/.tmp-check-windows/x86_64-pc-windows-msvc/debug/.fingerprint/equivalent-e2699ea9df503f27/invoked.timestamp new file mode 100644 index 000000000..e00328da5 --- /dev/null +++ b/.tmp-check-windows/x86_64-pc-windows-msvc/debug/.fingerprint/equivalent-e2699ea9df503f27/invoked.timestamp @@ -0,0 +1 @@ +This file has an mtime of when this was started. \ No newline at end of file diff --git a/.tmp-check-windows/x86_64-pc-windows-msvc/debug/.fingerprint/equivalent-e2699ea9df503f27/lib-equivalent b/.tmp-check-windows/x86_64-pc-windows-msvc/debug/.fingerprint/equivalent-e2699ea9df503f27/lib-equivalent new file mode 100644 index 000000000..fcf1d52b3 --- /dev/null +++ b/.tmp-check-windows/x86_64-pc-windows-msvc/debug/.fingerprint/equivalent-e2699ea9df503f27/lib-equivalent @@ -0,0 +1 @@ +ef5062681558bd55 \ No newline at end of file diff --git a/.tmp-check-windows/x86_64-pc-windows-msvc/debug/.fingerprint/equivalent-e2699ea9df503f27/lib-equivalent.json b/.tmp-check-windows/x86_64-pc-windows-msvc/debug/.fingerprint/equivalent-e2699ea9df503f27/lib-equivalent.json new file mode 100644 index 000000000..767110fcc --- /dev/null +++ b/.tmp-check-windows/x86_64-pc-windows-msvc/debug/.fingerprint/equivalent-e2699ea9df503f27/lib-equivalent.json @@ -0,0 +1 @@ +{"rustc":13850170861107434965,"features":"[]","declared_features":"[]","target":1524667692659508025,"profile":2241668132362809309,"path":3331454033065769275,"deps":[],"local":[{"CheckDepInfo":{"dep_info":"x86_64-pc-windows-msvc/debug/.fingerprint/equivalent-e2699ea9df503f27/dep-lib-equivalent","checksum":false}}],"rustflags":[],"config":2069994364910194474,"compile_kind":9161124489350129226} \ No newline at end of file diff --git a/.tmp-check-windows/x86_64-pc-windows-msvc/debug/.fingerprint/fnv-94a523e7e87df426/dep-lib-fnv b/.tmp-check-windows/x86_64-pc-windows-msvc/debug/.fingerprint/fnv-94a523e7e87df426/dep-lib-fnv new file mode 100644 index 000000000..ec3cb8bfd Binary files /dev/null and b/.tmp-check-windows/x86_64-pc-windows-msvc/debug/.fingerprint/fnv-94a523e7e87df426/dep-lib-fnv differ diff --git a/.tmp-check-windows/x86_64-pc-windows-msvc/debug/.fingerprint/fnv-94a523e7e87df426/invoked.timestamp b/.tmp-check-windows/x86_64-pc-windows-msvc/debug/.fingerprint/fnv-94a523e7e87df426/invoked.timestamp new file mode 100644 index 000000000..e00328da5 --- /dev/null +++ b/.tmp-check-windows/x86_64-pc-windows-msvc/debug/.fingerprint/fnv-94a523e7e87df426/invoked.timestamp @@ -0,0 +1 @@ +This file has an mtime of when this was started. \ No newline at end of file diff --git a/.tmp-check-windows/x86_64-pc-windows-msvc/debug/.fingerprint/fnv-94a523e7e87df426/lib-fnv b/.tmp-check-windows/x86_64-pc-windows-msvc/debug/.fingerprint/fnv-94a523e7e87df426/lib-fnv new file mode 100644 index 000000000..2e0089303 --- /dev/null +++ b/.tmp-check-windows/x86_64-pc-windows-msvc/debug/.fingerprint/fnv-94a523e7e87df426/lib-fnv @@ -0,0 +1 @@ +bb558a4382ac573d \ No newline at end of file diff --git a/.tmp-check-windows/x86_64-pc-windows-msvc/debug/.fingerprint/fnv-94a523e7e87df426/lib-fnv.json b/.tmp-check-windows/x86_64-pc-windows-msvc/debug/.fingerprint/fnv-94a523e7e87df426/lib-fnv.json new file mode 100644 index 000000000..c6e3714d1 --- /dev/null +++ b/.tmp-check-windows/x86_64-pc-windows-msvc/debug/.fingerprint/fnv-94a523e7e87df426/lib-fnv.json @@ -0,0 +1 @@ +{"rustc":13850170861107434965,"features":"[\"default\", \"std\"]","declared_features":"[\"default\", \"std\"]","target":10248144769085601448,"profile":2241668132362809309,"path":4135225049254930421,"deps":[],"local":[{"CheckDepInfo":{"dep_info":"x86_64-pc-windows-msvc/debug/.fingerprint/fnv-94a523e7e87df426/dep-lib-fnv","checksum":false}}],"rustflags":[],"config":2069994364910194474,"compile_kind":9161124489350129226} \ No newline at end of file diff --git a/.tmp-check-windows/x86_64-pc-windows-msvc/debug/.fingerprint/foldhash-f7563a03d8b1fc6b/dep-lib-foldhash b/.tmp-check-windows/x86_64-pc-windows-msvc/debug/.fingerprint/foldhash-f7563a03d8b1fc6b/dep-lib-foldhash new file mode 100644 index 000000000..ec3cb8bfd Binary files /dev/null and b/.tmp-check-windows/x86_64-pc-windows-msvc/debug/.fingerprint/foldhash-f7563a03d8b1fc6b/dep-lib-foldhash differ diff --git a/.tmp-check-windows/x86_64-pc-windows-msvc/debug/.fingerprint/foldhash-f7563a03d8b1fc6b/invoked.timestamp b/.tmp-check-windows/x86_64-pc-windows-msvc/debug/.fingerprint/foldhash-f7563a03d8b1fc6b/invoked.timestamp new file mode 100644 index 000000000..e00328da5 --- /dev/null +++ b/.tmp-check-windows/x86_64-pc-windows-msvc/debug/.fingerprint/foldhash-f7563a03d8b1fc6b/invoked.timestamp @@ -0,0 +1 @@ +This file has an mtime of when this was started. \ No newline at end of file diff --git a/.tmp-check-windows/x86_64-pc-windows-msvc/debug/.fingerprint/foldhash-f7563a03d8b1fc6b/lib-foldhash b/.tmp-check-windows/x86_64-pc-windows-msvc/debug/.fingerprint/foldhash-f7563a03d8b1fc6b/lib-foldhash new file mode 100644 index 000000000..ec37fd78a --- /dev/null +++ b/.tmp-check-windows/x86_64-pc-windows-msvc/debug/.fingerprint/foldhash-f7563a03d8b1fc6b/lib-foldhash @@ -0,0 +1 @@ +d8e97f44a1b46c24 \ No newline at end of file diff --git a/.tmp-check-windows/x86_64-pc-windows-msvc/debug/.fingerprint/foldhash-f7563a03d8b1fc6b/lib-foldhash.json b/.tmp-check-windows/x86_64-pc-windows-msvc/debug/.fingerprint/foldhash-f7563a03d8b1fc6b/lib-foldhash.json new file mode 100644 index 000000000..d8503e7fa --- /dev/null +++ b/.tmp-check-windows/x86_64-pc-windows-msvc/debug/.fingerprint/foldhash-f7563a03d8b1fc6b/lib-foldhash.json @@ -0,0 +1 @@ +{"rustc":13850170861107434965,"features":"[]","declared_features":"[\"default\", \"nightly\", \"std\"]","target":18077926938045032029,"profile":2241668132362809309,"path":8945562781868465886,"deps":[],"local":[{"CheckDepInfo":{"dep_info":"x86_64-pc-windows-msvc/debug/.fingerprint/foldhash-f7563a03d8b1fc6b/dep-lib-foldhash","checksum":false}}],"rustflags":[],"config":2069994364910194474,"compile_kind":9161124489350129226} \ No newline at end of file diff --git a/.tmp-check-windows/x86_64-pc-windows-msvc/debug/.fingerprint/form_urlencoded-a2acafc1ce458d8d/dep-lib-form_urlencoded b/.tmp-check-windows/x86_64-pc-windows-msvc/debug/.fingerprint/form_urlencoded-a2acafc1ce458d8d/dep-lib-form_urlencoded new file mode 100644 index 000000000..ec3cb8bfd Binary files /dev/null and b/.tmp-check-windows/x86_64-pc-windows-msvc/debug/.fingerprint/form_urlencoded-a2acafc1ce458d8d/dep-lib-form_urlencoded differ diff --git a/.tmp-check-windows/x86_64-pc-windows-msvc/debug/.fingerprint/form_urlencoded-a2acafc1ce458d8d/invoked.timestamp b/.tmp-check-windows/x86_64-pc-windows-msvc/debug/.fingerprint/form_urlencoded-a2acafc1ce458d8d/invoked.timestamp new file mode 100644 index 000000000..e00328da5 --- /dev/null +++ b/.tmp-check-windows/x86_64-pc-windows-msvc/debug/.fingerprint/form_urlencoded-a2acafc1ce458d8d/invoked.timestamp @@ -0,0 +1 @@ +This file has an mtime of when this was started. \ No newline at end of file diff --git a/.tmp-check-windows/x86_64-pc-windows-msvc/debug/.fingerprint/form_urlencoded-a2acafc1ce458d8d/lib-form_urlencoded b/.tmp-check-windows/x86_64-pc-windows-msvc/debug/.fingerprint/form_urlencoded-a2acafc1ce458d8d/lib-form_urlencoded new file mode 100644 index 000000000..362b59fa1 --- /dev/null +++ b/.tmp-check-windows/x86_64-pc-windows-msvc/debug/.fingerprint/form_urlencoded-a2acafc1ce458d8d/lib-form_urlencoded @@ -0,0 +1 @@ +d7fcfd91adc81e24 \ No newline at end of file diff --git a/.tmp-check-windows/x86_64-pc-windows-msvc/debug/.fingerprint/form_urlencoded-a2acafc1ce458d8d/lib-form_urlencoded.json b/.tmp-check-windows/x86_64-pc-windows-msvc/debug/.fingerprint/form_urlencoded-a2acafc1ce458d8d/lib-form_urlencoded.json new file mode 100644 index 000000000..466bff786 --- /dev/null +++ b/.tmp-check-windows/x86_64-pc-windows-msvc/debug/.fingerprint/form_urlencoded-a2acafc1ce458d8d/lib-form_urlencoded.json @@ -0,0 +1 @@ +{"rustc":13850170861107434965,"features":"[\"alloc\", \"default\", \"std\"]","declared_features":"[\"alloc\", \"default\", \"std\"]","target":6496257856677244489,"profile":2241668132362809309,"path":15890223522540898054,"deps":[[6803352382179706244,"percent_encoding",false,1405263763952604006]],"local":[{"CheckDepInfo":{"dep_info":"x86_64-pc-windows-msvc/debug/.fingerprint/form_urlencoded-a2acafc1ce458d8d/dep-lib-form_urlencoded","checksum":false}}],"rustflags":[],"config":2069994364910194474,"compile_kind":9161124489350129226} \ No newline at end of file diff --git a/.tmp-check-windows/x86_64-pc-windows-msvc/debug/.fingerprint/futures-channel-ca0e5e2b8233ef2e/dep-lib-futures_channel b/.tmp-check-windows/x86_64-pc-windows-msvc/debug/.fingerprint/futures-channel-ca0e5e2b8233ef2e/dep-lib-futures_channel new file mode 100644 index 000000000..ec3cb8bfd Binary files /dev/null and b/.tmp-check-windows/x86_64-pc-windows-msvc/debug/.fingerprint/futures-channel-ca0e5e2b8233ef2e/dep-lib-futures_channel differ diff --git a/.tmp-check-windows/x86_64-pc-windows-msvc/debug/.fingerprint/futures-channel-ca0e5e2b8233ef2e/invoked.timestamp b/.tmp-check-windows/x86_64-pc-windows-msvc/debug/.fingerprint/futures-channel-ca0e5e2b8233ef2e/invoked.timestamp new file mode 100644 index 000000000..e00328da5 --- /dev/null +++ b/.tmp-check-windows/x86_64-pc-windows-msvc/debug/.fingerprint/futures-channel-ca0e5e2b8233ef2e/invoked.timestamp @@ -0,0 +1 @@ +This file has an mtime of when this was started. \ No newline at end of file diff --git a/.tmp-check-windows/x86_64-pc-windows-msvc/debug/.fingerprint/futures-channel-ca0e5e2b8233ef2e/lib-futures_channel b/.tmp-check-windows/x86_64-pc-windows-msvc/debug/.fingerprint/futures-channel-ca0e5e2b8233ef2e/lib-futures_channel new file mode 100644 index 000000000..eac94cb85 --- /dev/null +++ b/.tmp-check-windows/x86_64-pc-windows-msvc/debug/.fingerprint/futures-channel-ca0e5e2b8233ef2e/lib-futures_channel @@ -0,0 +1 @@ +12ccfa870d017acf \ No newline at end of file diff --git a/.tmp-check-windows/x86_64-pc-windows-msvc/debug/.fingerprint/futures-channel-ca0e5e2b8233ef2e/lib-futures_channel.json b/.tmp-check-windows/x86_64-pc-windows-msvc/debug/.fingerprint/futures-channel-ca0e5e2b8233ef2e/lib-futures_channel.json new file mode 100644 index 000000000..e29e52635 --- /dev/null +++ b/.tmp-check-windows/x86_64-pc-windows-msvc/debug/.fingerprint/futures-channel-ca0e5e2b8233ef2e/lib-futures_channel.json @@ -0,0 +1 @@ +{"rustc":13850170861107434965,"features":"[\"alloc\", \"default\", \"futures-sink\", \"sink\", \"std\"]","declared_features":"[\"alloc\", \"cfg-target-has-atomic\", \"default\", \"futures-sink\", \"sink\", \"std\", \"unstable\"]","target":13634065851578929263,"profile":17467636112133979524,"path":18174427629034538214,"deps":[[270634688040536827,"futures_sink",false,931847451297379020],[302948626015856208,"futures_core",false,1712229565397205931]],"local":[{"CheckDepInfo":{"dep_info":"x86_64-pc-windows-msvc/debug/.fingerprint/futures-channel-ca0e5e2b8233ef2e/dep-lib-futures_channel","checksum":false}}],"rustflags":[],"config":2069994364910194474,"compile_kind":9161124489350129226} \ No newline at end of file diff --git a/.tmp-check-windows/x86_64-pc-windows-msvc/debug/.fingerprint/futures-core-4fd5c7d3cd623ea2/dep-lib-futures_core b/.tmp-check-windows/x86_64-pc-windows-msvc/debug/.fingerprint/futures-core-4fd5c7d3cd623ea2/dep-lib-futures_core new file mode 100644 index 000000000..ec3cb8bfd Binary files /dev/null and b/.tmp-check-windows/x86_64-pc-windows-msvc/debug/.fingerprint/futures-core-4fd5c7d3cd623ea2/dep-lib-futures_core differ diff --git a/.tmp-check-windows/x86_64-pc-windows-msvc/debug/.fingerprint/futures-core-4fd5c7d3cd623ea2/invoked.timestamp b/.tmp-check-windows/x86_64-pc-windows-msvc/debug/.fingerprint/futures-core-4fd5c7d3cd623ea2/invoked.timestamp new file mode 100644 index 000000000..e00328da5 --- /dev/null +++ b/.tmp-check-windows/x86_64-pc-windows-msvc/debug/.fingerprint/futures-core-4fd5c7d3cd623ea2/invoked.timestamp @@ -0,0 +1 @@ +This file has an mtime of when this was started. \ No newline at end of file diff --git a/.tmp-check-windows/x86_64-pc-windows-msvc/debug/.fingerprint/futures-core-4fd5c7d3cd623ea2/lib-futures_core b/.tmp-check-windows/x86_64-pc-windows-msvc/debug/.fingerprint/futures-core-4fd5c7d3cd623ea2/lib-futures_core new file mode 100644 index 000000000..5f9b1bee6 --- /dev/null +++ b/.tmp-check-windows/x86_64-pc-windows-msvc/debug/.fingerprint/futures-core-4fd5c7d3cd623ea2/lib-futures_core @@ -0,0 +1 @@ +ab036ccbb70fc317 \ No newline at end of file diff --git a/.tmp-check-windows/x86_64-pc-windows-msvc/debug/.fingerprint/futures-core-4fd5c7d3cd623ea2/lib-futures_core.json b/.tmp-check-windows/x86_64-pc-windows-msvc/debug/.fingerprint/futures-core-4fd5c7d3cd623ea2/lib-futures_core.json new file mode 100644 index 000000000..b4cdfb6eb --- /dev/null +++ b/.tmp-check-windows/x86_64-pc-windows-msvc/debug/.fingerprint/futures-core-4fd5c7d3cd623ea2/lib-futures_core.json @@ -0,0 +1 @@ +{"rustc":13850170861107434965,"features":"[\"alloc\", \"default\", \"std\"]","declared_features":"[\"alloc\", \"cfg-target-has-atomic\", \"default\", \"portable-atomic\", \"std\", \"unstable\"]","target":9453135960607436725,"profile":17467636112133979524,"path":9452828549271808247,"deps":[],"local":[{"CheckDepInfo":{"dep_info":"x86_64-pc-windows-msvc/debug/.fingerprint/futures-core-4fd5c7d3cd623ea2/dep-lib-futures_core","checksum":false}}],"rustflags":[],"config":2069994364910194474,"compile_kind":9161124489350129226} \ No newline at end of file diff --git a/.tmp-check-windows/x86_64-pc-windows-msvc/debug/.fingerprint/futures-io-ee0ea03f6d6f0209/dep-lib-futures_io b/.tmp-check-windows/x86_64-pc-windows-msvc/debug/.fingerprint/futures-io-ee0ea03f6d6f0209/dep-lib-futures_io new file mode 100644 index 000000000..ec3cb8bfd Binary files /dev/null and b/.tmp-check-windows/x86_64-pc-windows-msvc/debug/.fingerprint/futures-io-ee0ea03f6d6f0209/dep-lib-futures_io differ diff --git a/.tmp-check-windows/x86_64-pc-windows-msvc/debug/.fingerprint/futures-io-ee0ea03f6d6f0209/invoked.timestamp b/.tmp-check-windows/x86_64-pc-windows-msvc/debug/.fingerprint/futures-io-ee0ea03f6d6f0209/invoked.timestamp new file mode 100644 index 000000000..e00328da5 --- /dev/null +++ b/.tmp-check-windows/x86_64-pc-windows-msvc/debug/.fingerprint/futures-io-ee0ea03f6d6f0209/invoked.timestamp @@ -0,0 +1 @@ +This file has an mtime of when this was started. \ No newline at end of file diff --git a/.tmp-check-windows/x86_64-pc-windows-msvc/debug/.fingerprint/futures-io-ee0ea03f6d6f0209/lib-futures_io b/.tmp-check-windows/x86_64-pc-windows-msvc/debug/.fingerprint/futures-io-ee0ea03f6d6f0209/lib-futures_io new file mode 100644 index 000000000..5af998362 --- /dev/null +++ b/.tmp-check-windows/x86_64-pc-windows-msvc/debug/.fingerprint/futures-io-ee0ea03f6d6f0209/lib-futures_io @@ -0,0 +1 @@ +621e8e2c3248b2f5 \ No newline at end of file diff --git a/.tmp-check-windows/x86_64-pc-windows-msvc/debug/.fingerprint/futures-io-ee0ea03f6d6f0209/lib-futures_io.json b/.tmp-check-windows/x86_64-pc-windows-msvc/debug/.fingerprint/futures-io-ee0ea03f6d6f0209/lib-futures_io.json new file mode 100644 index 000000000..53de5d184 --- /dev/null +++ b/.tmp-check-windows/x86_64-pc-windows-msvc/debug/.fingerprint/futures-io-ee0ea03f6d6f0209/lib-futures_io.json @@ -0,0 +1 @@ +{"rustc":13850170861107434965,"features":"[\"default\", \"std\"]","declared_features":"[\"default\", \"std\", \"unstable\"]","target":5742820543410686210,"profile":17467636112133979524,"path":11118675999829625201,"deps":[],"local":[{"CheckDepInfo":{"dep_info":"x86_64-pc-windows-msvc/debug/.fingerprint/futures-io-ee0ea03f6d6f0209/dep-lib-futures_io","checksum":false}}],"rustflags":[],"config":2069994364910194474,"compile_kind":9161124489350129226} \ No newline at end of file diff --git a/.tmp-check-windows/x86_64-pc-windows-msvc/debug/.fingerprint/futures-sink-ae147c7b6744c683/dep-lib-futures_sink b/.tmp-check-windows/x86_64-pc-windows-msvc/debug/.fingerprint/futures-sink-ae147c7b6744c683/dep-lib-futures_sink new file mode 100644 index 000000000..ec3cb8bfd Binary files /dev/null and b/.tmp-check-windows/x86_64-pc-windows-msvc/debug/.fingerprint/futures-sink-ae147c7b6744c683/dep-lib-futures_sink differ diff --git a/.tmp-check-windows/x86_64-pc-windows-msvc/debug/.fingerprint/futures-sink-ae147c7b6744c683/invoked.timestamp b/.tmp-check-windows/x86_64-pc-windows-msvc/debug/.fingerprint/futures-sink-ae147c7b6744c683/invoked.timestamp new file mode 100644 index 000000000..e00328da5 --- /dev/null +++ b/.tmp-check-windows/x86_64-pc-windows-msvc/debug/.fingerprint/futures-sink-ae147c7b6744c683/invoked.timestamp @@ -0,0 +1 @@ +This file has an mtime of when this was started. \ No newline at end of file diff --git a/.tmp-check-windows/x86_64-pc-windows-msvc/debug/.fingerprint/futures-sink-ae147c7b6744c683/lib-futures_sink b/.tmp-check-windows/x86_64-pc-windows-msvc/debug/.fingerprint/futures-sink-ae147c7b6744c683/lib-futures_sink new file mode 100644 index 000000000..b0597e0fd --- /dev/null +++ b/.tmp-check-windows/x86_64-pc-windows-msvc/debug/.fingerprint/futures-sink-ae147c7b6744c683/lib-futures_sink @@ -0,0 +1 @@ +ccf26edf5196ee0c \ No newline at end of file diff --git a/.tmp-check-windows/x86_64-pc-windows-msvc/debug/.fingerprint/futures-sink-ae147c7b6744c683/lib-futures_sink.json b/.tmp-check-windows/x86_64-pc-windows-msvc/debug/.fingerprint/futures-sink-ae147c7b6744c683/lib-futures_sink.json new file mode 100644 index 000000000..b5c98b5fd --- /dev/null +++ b/.tmp-check-windows/x86_64-pc-windows-msvc/debug/.fingerprint/futures-sink-ae147c7b6744c683/lib-futures_sink.json @@ -0,0 +1 @@ +{"rustc":13850170861107434965,"features":"[\"alloc\", \"default\", \"std\"]","declared_features":"[\"alloc\", \"default\", \"std\"]","target":10827111567014737887,"profile":17467636112133979524,"path":10404831703277322125,"deps":[],"local":[{"CheckDepInfo":{"dep_info":"x86_64-pc-windows-msvc/debug/.fingerprint/futures-sink-ae147c7b6744c683/dep-lib-futures_sink","checksum":false}}],"rustflags":[],"config":2069994364910194474,"compile_kind":9161124489350129226} \ No newline at end of file diff --git a/.tmp-check-windows/x86_64-pc-windows-msvc/debug/.fingerprint/futures-task-dfddd0b6775e548b/dep-lib-futures_task b/.tmp-check-windows/x86_64-pc-windows-msvc/debug/.fingerprint/futures-task-dfddd0b6775e548b/dep-lib-futures_task new file mode 100644 index 000000000..ec3cb8bfd Binary files /dev/null and b/.tmp-check-windows/x86_64-pc-windows-msvc/debug/.fingerprint/futures-task-dfddd0b6775e548b/dep-lib-futures_task differ diff --git a/.tmp-check-windows/x86_64-pc-windows-msvc/debug/.fingerprint/futures-task-dfddd0b6775e548b/invoked.timestamp b/.tmp-check-windows/x86_64-pc-windows-msvc/debug/.fingerprint/futures-task-dfddd0b6775e548b/invoked.timestamp new file mode 100644 index 000000000..e00328da5 --- /dev/null +++ b/.tmp-check-windows/x86_64-pc-windows-msvc/debug/.fingerprint/futures-task-dfddd0b6775e548b/invoked.timestamp @@ -0,0 +1 @@ +This file has an mtime of when this was started. \ No newline at end of file diff --git a/.tmp-check-windows/x86_64-pc-windows-msvc/debug/.fingerprint/futures-task-dfddd0b6775e548b/lib-futures_task b/.tmp-check-windows/x86_64-pc-windows-msvc/debug/.fingerprint/futures-task-dfddd0b6775e548b/lib-futures_task new file mode 100644 index 000000000..d21fbb596 --- /dev/null +++ b/.tmp-check-windows/x86_64-pc-windows-msvc/debug/.fingerprint/futures-task-dfddd0b6775e548b/lib-futures_task @@ -0,0 +1 @@ +37562b62b07dc11a \ No newline at end of file diff --git a/.tmp-check-windows/x86_64-pc-windows-msvc/debug/.fingerprint/futures-task-dfddd0b6775e548b/lib-futures_task.json b/.tmp-check-windows/x86_64-pc-windows-msvc/debug/.fingerprint/futures-task-dfddd0b6775e548b/lib-futures_task.json new file mode 100644 index 000000000..8932b9980 --- /dev/null +++ b/.tmp-check-windows/x86_64-pc-windows-msvc/debug/.fingerprint/futures-task-dfddd0b6775e548b/lib-futures_task.json @@ -0,0 +1 @@ +{"rustc":13850170861107434965,"features":"[\"alloc\", \"std\"]","declared_features":"[\"alloc\", \"cfg-target-has-atomic\", \"default\", \"std\", \"unstable\"]","target":13518091470260541623,"profile":17467636112133979524,"path":9589633090298003242,"deps":[],"local":[{"CheckDepInfo":{"dep_info":"x86_64-pc-windows-msvc/debug/.fingerprint/futures-task-dfddd0b6775e548b/dep-lib-futures_task","checksum":false}}],"rustflags":[],"config":2069994364910194474,"compile_kind":9161124489350129226} \ No newline at end of file diff --git a/.tmp-check-windows/x86_64-pc-windows-msvc/debug/.fingerprint/generic-array-0119a9d8114f2ac8/run-build-script-build-script-build b/.tmp-check-windows/x86_64-pc-windows-msvc/debug/.fingerprint/generic-array-0119a9d8114f2ac8/run-build-script-build-script-build new file mode 100644 index 000000000..19fe6740a --- /dev/null +++ b/.tmp-check-windows/x86_64-pc-windows-msvc/debug/.fingerprint/generic-array-0119a9d8114f2ac8/run-build-script-build-script-build @@ -0,0 +1 @@ +e69089738f65598f \ No newline at end of file diff --git a/.tmp-check-windows/x86_64-pc-windows-msvc/debug/.fingerprint/generic-array-0119a9d8114f2ac8/run-build-script-build-script-build.json b/.tmp-check-windows/x86_64-pc-windows-msvc/debug/.fingerprint/generic-array-0119a9d8114f2ac8/run-build-script-build-script-build.json new file mode 100644 index 000000000..201701447 --- /dev/null +++ b/.tmp-check-windows/x86_64-pc-windows-msvc/debug/.fingerprint/generic-array-0119a9d8114f2ac8/run-build-script-build-script-build.json @@ -0,0 +1 @@ +{"rustc":13850170861107434965,"features":"","declared_features":"","target":0,"profile":0,"path":0,"deps":[[10520923840501062997,"build_script_build",false,12388102634913129001]],"local":[{"Precalculated":"0.14.7"}],"rustflags":[],"config":0,"compile_kind":0} \ No newline at end of file diff --git a/.tmp-check-windows/x86_64-pc-windows-msvc/debug/.fingerprint/generic-array-ef60f934cca98372/dep-lib-generic_array b/.tmp-check-windows/x86_64-pc-windows-msvc/debug/.fingerprint/generic-array-ef60f934cca98372/dep-lib-generic_array new file mode 100644 index 000000000..ec3cb8bfd Binary files /dev/null and b/.tmp-check-windows/x86_64-pc-windows-msvc/debug/.fingerprint/generic-array-ef60f934cca98372/dep-lib-generic_array differ diff --git a/.tmp-check-windows/x86_64-pc-windows-msvc/debug/.fingerprint/generic-array-ef60f934cca98372/invoked.timestamp b/.tmp-check-windows/x86_64-pc-windows-msvc/debug/.fingerprint/generic-array-ef60f934cca98372/invoked.timestamp new file mode 100644 index 000000000..e00328da5 --- /dev/null +++ b/.tmp-check-windows/x86_64-pc-windows-msvc/debug/.fingerprint/generic-array-ef60f934cca98372/invoked.timestamp @@ -0,0 +1 @@ +This file has an mtime of when this was started. \ No newline at end of file diff --git a/.tmp-check-windows/x86_64-pc-windows-msvc/debug/.fingerprint/generic-array-ef60f934cca98372/lib-generic_array b/.tmp-check-windows/x86_64-pc-windows-msvc/debug/.fingerprint/generic-array-ef60f934cca98372/lib-generic_array new file mode 100644 index 000000000..239ea5bee --- /dev/null +++ b/.tmp-check-windows/x86_64-pc-windows-msvc/debug/.fingerprint/generic-array-ef60f934cca98372/lib-generic_array @@ -0,0 +1 @@ +1c2e582963ee461f \ No newline at end of file diff --git a/.tmp-check-windows/x86_64-pc-windows-msvc/debug/.fingerprint/generic-array-ef60f934cca98372/lib-generic_array.json b/.tmp-check-windows/x86_64-pc-windows-msvc/debug/.fingerprint/generic-array-ef60f934cca98372/lib-generic_array.json new file mode 100644 index 000000000..6ba80d69b --- /dev/null +++ b/.tmp-check-windows/x86_64-pc-windows-msvc/debug/.fingerprint/generic-array-ef60f934cca98372/lib-generic_array.json @@ -0,0 +1 @@ +{"rustc":13850170861107434965,"features":"[\"more_lengths\"]","declared_features":"[\"more_lengths\", \"serde\", \"zeroize\"]","target":13084005262763373425,"profile":2241668132362809309,"path":17299412218581593544,"deps":[[857979250431893282,"typenum",false,7723158163539522642],[10520923840501062997,"build_script_build",false,10329398887144067302]],"local":[{"CheckDepInfo":{"dep_info":"x86_64-pc-windows-msvc/debug/.fingerprint/generic-array-ef60f934cca98372/dep-lib-generic_array","checksum":false}}],"rustflags":[],"config":2069994364910194474,"compile_kind":9161124489350129226} \ No newline at end of file diff --git a/.tmp-check-windows/x86_64-pc-windows-msvc/debug/.fingerprint/getrandom-0c62d8aacf5004ae/dep-lib-getrandom b/.tmp-check-windows/x86_64-pc-windows-msvc/debug/.fingerprint/getrandom-0c62d8aacf5004ae/dep-lib-getrandom new file mode 100644 index 000000000..ec3cb8bfd Binary files /dev/null and b/.tmp-check-windows/x86_64-pc-windows-msvc/debug/.fingerprint/getrandom-0c62d8aacf5004ae/dep-lib-getrandom differ diff --git a/.tmp-check-windows/x86_64-pc-windows-msvc/debug/.fingerprint/getrandom-0c62d8aacf5004ae/invoked.timestamp b/.tmp-check-windows/x86_64-pc-windows-msvc/debug/.fingerprint/getrandom-0c62d8aacf5004ae/invoked.timestamp new file mode 100644 index 000000000..e00328da5 --- /dev/null +++ b/.tmp-check-windows/x86_64-pc-windows-msvc/debug/.fingerprint/getrandom-0c62d8aacf5004ae/invoked.timestamp @@ -0,0 +1 @@ +This file has an mtime of when this was started. \ No newline at end of file diff --git a/.tmp-check-windows/x86_64-pc-windows-msvc/debug/.fingerprint/getrandom-0c62d8aacf5004ae/lib-getrandom b/.tmp-check-windows/x86_64-pc-windows-msvc/debug/.fingerprint/getrandom-0c62d8aacf5004ae/lib-getrandom new file mode 100644 index 000000000..bcf7c1df7 --- /dev/null +++ b/.tmp-check-windows/x86_64-pc-windows-msvc/debug/.fingerprint/getrandom-0c62d8aacf5004ae/lib-getrandom @@ -0,0 +1 @@ +c24c97e6884a6c82 \ No newline at end of file diff --git a/.tmp-check-windows/x86_64-pc-windows-msvc/debug/.fingerprint/getrandom-0c62d8aacf5004ae/lib-getrandom.json b/.tmp-check-windows/x86_64-pc-windows-msvc/debug/.fingerprint/getrandom-0c62d8aacf5004ae/lib-getrandom.json new file mode 100644 index 000000000..987041738 --- /dev/null +++ b/.tmp-check-windows/x86_64-pc-windows-msvc/debug/.fingerprint/getrandom-0c62d8aacf5004ae/lib-getrandom.json @@ -0,0 +1 @@ +{"rustc":13850170861107434965,"features":"[]","declared_features":"[\"std\", \"sys_rng\", \"wasm_js\"]","target":5479159445871601843,"profile":1675109806303236742,"path":2191417851071872046,"deps":[[2764386384280758697,"build_script_build",false,17906407289085779664],[7667230146095136825,"cfg_if",false,3910607869061409420]],"local":[{"CheckDepInfo":{"dep_info":"x86_64-pc-windows-msvc/debug/.fingerprint/getrandom-0c62d8aacf5004ae/dep-lib-getrandom","checksum":false}}],"rustflags":[],"config":2069994364910194474,"compile_kind":9161124489350129226} \ No newline at end of file diff --git a/.tmp-check-windows/x86_64-pc-windows-msvc/debug/.fingerprint/getrandom-258e9f886933aa75/run-build-script-build-script-build b/.tmp-check-windows/x86_64-pc-windows-msvc/debug/.fingerprint/getrandom-258e9f886933aa75/run-build-script-build-script-build new file mode 100644 index 000000000..70c219794 --- /dev/null +++ b/.tmp-check-windows/x86_64-pc-windows-msvc/debug/.fingerprint/getrandom-258e9f886933aa75/run-build-script-build-script-build @@ -0,0 +1 @@ +d05e6ca58e5680f8 \ No newline at end of file diff --git a/.tmp-check-windows/x86_64-pc-windows-msvc/debug/.fingerprint/getrandom-258e9f886933aa75/run-build-script-build-script-build.json b/.tmp-check-windows/x86_64-pc-windows-msvc/debug/.fingerprint/getrandom-258e9f886933aa75/run-build-script-build-script-build.json new file mode 100644 index 000000000..99a6ad7fc --- /dev/null +++ b/.tmp-check-windows/x86_64-pc-windows-msvc/debug/.fingerprint/getrandom-258e9f886933aa75/run-build-script-build-script-build.json @@ -0,0 +1 @@ +{"rustc":13850170861107434965,"features":"","declared_features":"","target":0,"profile":0,"path":0,"deps":[[2764386384280758697,"build_script_build",false,15882962656737793861]],"local":[{"RerunIfChanged":{"output":"x86_64-pc-windows-msvc/debug/build/getrandom-258e9f886933aa75/output","paths":["build.rs"]}}],"rustflags":[],"config":0,"compile_kind":0} \ No newline at end of file diff --git a/.tmp-check-windows/x86_64-pc-windows-msvc/debug/.fingerprint/getrandom-366beb8af7010b05/dep-lib-getrandom b/.tmp-check-windows/x86_64-pc-windows-msvc/debug/.fingerprint/getrandom-366beb8af7010b05/dep-lib-getrandom new file mode 100644 index 000000000..ec3cb8bfd Binary files /dev/null and b/.tmp-check-windows/x86_64-pc-windows-msvc/debug/.fingerprint/getrandom-366beb8af7010b05/dep-lib-getrandom differ diff --git a/.tmp-check-windows/x86_64-pc-windows-msvc/debug/.fingerprint/getrandom-366beb8af7010b05/invoked.timestamp b/.tmp-check-windows/x86_64-pc-windows-msvc/debug/.fingerprint/getrandom-366beb8af7010b05/invoked.timestamp new file mode 100644 index 000000000..e00328da5 --- /dev/null +++ b/.tmp-check-windows/x86_64-pc-windows-msvc/debug/.fingerprint/getrandom-366beb8af7010b05/invoked.timestamp @@ -0,0 +1 @@ +This file has an mtime of when this was started. \ No newline at end of file diff --git a/.tmp-check-windows/x86_64-pc-windows-msvc/debug/.fingerprint/getrandom-366beb8af7010b05/lib-getrandom b/.tmp-check-windows/x86_64-pc-windows-msvc/debug/.fingerprint/getrandom-366beb8af7010b05/lib-getrandom new file mode 100644 index 000000000..21e37e7b1 --- /dev/null +++ b/.tmp-check-windows/x86_64-pc-windows-msvc/debug/.fingerprint/getrandom-366beb8af7010b05/lib-getrandom @@ -0,0 +1 @@ +74d3c984f84a4aed \ No newline at end of file diff --git a/.tmp-check-windows/x86_64-pc-windows-msvc/debug/.fingerprint/getrandom-366beb8af7010b05/lib-getrandom.json b/.tmp-check-windows/x86_64-pc-windows-msvc/debug/.fingerprint/getrandom-366beb8af7010b05/lib-getrandom.json new file mode 100644 index 000000000..78267a5ef --- /dev/null +++ b/.tmp-check-windows/x86_64-pc-windows-msvc/debug/.fingerprint/getrandom-366beb8af7010b05/lib-getrandom.json @@ -0,0 +1 @@ +{"rustc":13850170861107434965,"features":"[\"std\"]","declared_features":"[\"compiler_builtins\", \"core\", \"custom\", \"js\", \"js-sys\", \"linux_disable_fallback\", \"rdrand\", \"rustc-dep-of-std\", \"std\", \"test-in-browser\", \"wasm-bindgen\"]","target":16244099637825074703,"profile":2241668132362809309,"path":1870863907584436639,"deps":[[7667230146095136825,"cfg_if",false,3910607869061409420]],"local":[{"CheckDepInfo":{"dep_info":"x86_64-pc-windows-msvc/debug/.fingerprint/getrandom-366beb8af7010b05/dep-lib-getrandom","checksum":false}}],"rustflags":[],"config":2069994364910194474,"compile_kind":9161124489350129226} \ No newline at end of file diff --git a/.tmp-check-windows/x86_64-pc-windows-msvc/debug/.fingerprint/hashbrown-12bcee8ae68ebba7/dep-lib-hashbrown b/.tmp-check-windows/x86_64-pc-windows-msvc/debug/.fingerprint/hashbrown-12bcee8ae68ebba7/dep-lib-hashbrown new file mode 100644 index 000000000..ec3cb8bfd Binary files /dev/null and b/.tmp-check-windows/x86_64-pc-windows-msvc/debug/.fingerprint/hashbrown-12bcee8ae68ebba7/dep-lib-hashbrown differ diff --git a/.tmp-check-windows/x86_64-pc-windows-msvc/debug/.fingerprint/hashbrown-12bcee8ae68ebba7/invoked.timestamp b/.tmp-check-windows/x86_64-pc-windows-msvc/debug/.fingerprint/hashbrown-12bcee8ae68ebba7/invoked.timestamp new file mode 100644 index 000000000..e00328da5 --- /dev/null +++ b/.tmp-check-windows/x86_64-pc-windows-msvc/debug/.fingerprint/hashbrown-12bcee8ae68ebba7/invoked.timestamp @@ -0,0 +1 @@ +This file has an mtime of when this was started. \ No newline at end of file diff --git a/.tmp-check-windows/x86_64-pc-windows-msvc/debug/.fingerprint/hashbrown-12bcee8ae68ebba7/lib-hashbrown b/.tmp-check-windows/x86_64-pc-windows-msvc/debug/.fingerprint/hashbrown-12bcee8ae68ebba7/lib-hashbrown new file mode 100644 index 000000000..6a1ac2c50 --- /dev/null +++ b/.tmp-check-windows/x86_64-pc-windows-msvc/debug/.fingerprint/hashbrown-12bcee8ae68ebba7/lib-hashbrown @@ -0,0 +1 @@ +8d59d385249d99f0 \ No newline at end of file diff --git a/.tmp-check-windows/x86_64-pc-windows-msvc/debug/.fingerprint/hashbrown-12bcee8ae68ebba7/lib-hashbrown.json b/.tmp-check-windows/x86_64-pc-windows-msvc/debug/.fingerprint/hashbrown-12bcee8ae68ebba7/lib-hashbrown.json new file mode 100644 index 000000000..7d3f25266 --- /dev/null +++ b/.tmp-check-windows/x86_64-pc-windows-msvc/debug/.fingerprint/hashbrown-12bcee8ae68ebba7/lib-hashbrown.json @@ -0,0 +1 @@ +{"rustc":13850170861107434965,"features":"[\"allocator-api2\", \"default\", \"default-hasher\", \"equivalent\", \"inline-more\", \"raw-entry\"]","declared_features":"[\"alloc\", \"allocator-api2\", \"core\", \"default\", \"default-hasher\", \"equivalent\", \"inline-more\", \"nightly\", \"raw-entry\", \"rayon\", \"rustc-dep-of-std\", \"rustc-internal-api\", \"serde\"]","target":13796197676120832388,"profile":2241668132362809309,"path":5796228788149869579,"deps":[[2981812677314478936,"foldhash",false,2624671287582124504],[5230392855116717286,"equivalent",false,6178191112791019759],[9150530836556604396,"allocator_api2",false,16960605180548348132]],"local":[{"CheckDepInfo":{"dep_info":"x86_64-pc-windows-msvc/debug/.fingerprint/hashbrown-12bcee8ae68ebba7/dep-lib-hashbrown","checksum":false}}],"rustflags":[],"config":2069994364910194474,"compile_kind":9161124489350129226} \ No newline at end of file diff --git a/.tmp-check-windows/x86_64-pc-windows-msvc/debug/.fingerprint/http-body-3b140a42245d940e/dep-lib-http_body b/.tmp-check-windows/x86_64-pc-windows-msvc/debug/.fingerprint/http-body-3b140a42245d940e/dep-lib-http_body new file mode 100644 index 000000000..ec3cb8bfd Binary files /dev/null and b/.tmp-check-windows/x86_64-pc-windows-msvc/debug/.fingerprint/http-body-3b140a42245d940e/dep-lib-http_body differ diff --git a/.tmp-check-windows/x86_64-pc-windows-msvc/debug/.fingerprint/http-body-3b140a42245d940e/invoked.timestamp b/.tmp-check-windows/x86_64-pc-windows-msvc/debug/.fingerprint/http-body-3b140a42245d940e/invoked.timestamp new file mode 100644 index 000000000..e00328da5 --- /dev/null +++ b/.tmp-check-windows/x86_64-pc-windows-msvc/debug/.fingerprint/http-body-3b140a42245d940e/invoked.timestamp @@ -0,0 +1 @@ +This file has an mtime of when this was started. \ No newline at end of file diff --git a/.tmp-check-windows/x86_64-pc-windows-msvc/debug/.fingerprint/http-body-3b140a42245d940e/lib-http_body b/.tmp-check-windows/x86_64-pc-windows-msvc/debug/.fingerprint/http-body-3b140a42245d940e/lib-http_body new file mode 100644 index 000000000..44ab4c1b9 --- /dev/null +++ b/.tmp-check-windows/x86_64-pc-windows-msvc/debug/.fingerprint/http-body-3b140a42245d940e/lib-http_body @@ -0,0 +1 @@ +bbbe2fc5a46ba224 \ No newline at end of file diff --git a/.tmp-check-windows/x86_64-pc-windows-msvc/debug/.fingerprint/http-body-3b140a42245d940e/lib-http_body.json b/.tmp-check-windows/x86_64-pc-windows-msvc/debug/.fingerprint/http-body-3b140a42245d940e/lib-http_body.json new file mode 100644 index 000000000..4653128de --- /dev/null +++ b/.tmp-check-windows/x86_64-pc-windows-msvc/debug/.fingerprint/http-body-3b140a42245d940e/lib-http_body.json @@ -0,0 +1 @@ +{"rustc":13850170861107434965,"features":"[]","declared_features":"[]","target":16652076073832724591,"profile":2241668132362809309,"path":2587514764818328744,"deps":[[2620434475832828286,"http",false,2685425903766585558],[3870702314125662939,"bytes",false,11522760919026412336]],"local":[{"CheckDepInfo":{"dep_info":"x86_64-pc-windows-msvc/debug/.fingerprint/http-body-3b140a42245d940e/dep-lib-http_body","checksum":false}}],"rustflags":[],"config":2069994364910194474,"compile_kind":9161124489350129226} \ No newline at end of file diff --git a/.tmp-check-windows/x86_64-pc-windows-msvc/debug/.fingerprint/http-body-util-332fc865dfc5f883/dep-lib-http_body_util b/.tmp-check-windows/x86_64-pc-windows-msvc/debug/.fingerprint/http-body-util-332fc865dfc5f883/dep-lib-http_body_util new file mode 100644 index 000000000..ec3cb8bfd Binary files /dev/null and b/.tmp-check-windows/x86_64-pc-windows-msvc/debug/.fingerprint/http-body-util-332fc865dfc5f883/dep-lib-http_body_util differ diff --git a/.tmp-check-windows/x86_64-pc-windows-msvc/debug/.fingerprint/http-body-util-332fc865dfc5f883/invoked.timestamp b/.tmp-check-windows/x86_64-pc-windows-msvc/debug/.fingerprint/http-body-util-332fc865dfc5f883/invoked.timestamp new file mode 100644 index 000000000..e00328da5 --- /dev/null +++ b/.tmp-check-windows/x86_64-pc-windows-msvc/debug/.fingerprint/http-body-util-332fc865dfc5f883/invoked.timestamp @@ -0,0 +1 @@ +This file has an mtime of when this was started. \ No newline at end of file diff --git a/.tmp-check-windows/x86_64-pc-windows-msvc/debug/.fingerprint/http-body-util-332fc865dfc5f883/lib-http_body_util b/.tmp-check-windows/x86_64-pc-windows-msvc/debug/.fingerprint/http-body-util-332fc865dfc5f883/lib-http_body_util new file mode 100644 index 000000000..5b8191ab3 --- /dev/null +++ b/.tmp-check-windows/x86_64-pc-windows-msvc/debug/.fingerprint/http-body-util-332fc865dfc5f883/lib-http_body_util @@ -0,0 +1 @@ +97a202b1d77739a7 \ No newline at end of file diff --git a/.tmp-check-windows/x86_64-pc-windows-msvc/debug/.fingerprint/http-body-util-332fc865dfc5f883/lib-http_body_util.json b/.tmp-check-windows/x86_64-pc-windows-msvc/debug/.fingerprint/http-body-util-332fc865dfc5f883/lib-http_body_util.json new file mode 100644 index 000000000..3e4821af7 --- /dev/null +++ b/.tmp-check-windows/x86_64-pc-windows-msvc/debug/.fingerprint/http-body-util-332fc865dfc5f883/lib-http_body_util.json @@ -0,0 +1 @@ +{"rustc":13850170861107434965,"features":"[\"default\"]","declared_features":"[\"channel\", \"default\", \"full\"]","target":7120517503662506348,"profile":2241668132362809309,"path":179609304917922994,"deps":[[302948626015856208,"futures_core",false,1712229565397205931],[1906322745568073236,"pin_project_lite",false,3201907295664658077],[2620434475832828286,"http",false,2685425903766585558],[3870702314125662939,"bytes",false,11522760919026412336],[14084095096285906100,"http_body",false,2639790687019581115]],"local":[{"CheckDepInfo":{"dep_info":"x86_64-pc-windows-msvc/debug/.fingerprint/http-body-util-332fc865dfc5f883/dep-lib-http_body_util","checksum":false}}],"rustflags":[],"config":2069994364910194474,"compile_kind":9161124489350129226} \ No newline at end of file diff --git a/.tmp-check-windows/x86_64-pc-windows-msvc/debug/.fingerprint/http-ea9c30f7d1865c99/dep-lib-http b/.tmp-check-windows/x86_64-pc-windows-msvc/debug/.fingerprint/http-ea9c30f7d1865c99/dep-lib-http new file mode 100644 index 000000000..ec3cb8bfd Binary files /dev/null and b/.tmp-check-windows/x86_64-pc-windows-msvc/debug/.fingerprint/http-ea9c30f7d1865c99/dep-lib-http differ diff --git a/.tmp-check-windows/x86_64-pc-windows-msvc/debug/.fingerprint/http-ea9c30f7d1865c99/invoked.timestamp b/.tmp-check-windows/x86_64-pc-windows-msvc/debug/.fingerprint/http-ea9c30f7d1865c99/invoked.timestamp new file mode 100644 index 000000000..e00328da5 --- /dev/null +++ b/.tmp-check-windows/x86_64-pc-windows-msvc/debug/.fingerprint/http-ea9c30f7d1865c99/invoked.timestamp @@ -0,0 +1 @@ +This file has an mtime of when this was started. \ No newline at end of file diff --git a/.tmp-check-windows/x86_64-pc-windows-msvc/debug/.fingerprint/http-ea9c30f7d1865c99/lib-http b/.tmp-check-windows/x86_64-pc-windows-msvc/debug/.fingerprint/http-ea9c30f7d1865c99/lib-http new file mode 100644 index 000000000..340a917be --- /dev/null +++ b/.tmp-check-windows/x86_64-pc-windows-msvc/debug/.fingerprint/http-ea9c30f7d1865c99/lib-http @@ -0,0 +1 @@ +d6c0a3a8a18c4425 \ No newline at end of file diff --git a/.tmp-check-windows/x86_64-pc-windows-msvc/debug/.fingerprint/http-ea9c30f7d1865c99/lib-http.json b/.tmp-check-windows/x86_64-pc-windows-msvc/debug/.fingerprint/http-ea9c30f7d1865c99/lib-http.json new file mode 100644 index 000000000..5daf70571 --- /dev/null +++ b/.tmp-check-windows/x86_64-pc-windows-msvc/debug/.fingerprint/http-ea9c30f7d1865c99/lib-http.json @@ -0,0 +1 @@ +{"rustc":13850170861107434965,"features":"[\"default\", \"std\"]","declared_features":"[\"default\", \"std\"]","target":4766512060560342653,"profile":2241668132362809309,"path":12044685434125521053,"deps":[[3870702314125662939,"bytes",false,11522760919026412336],[9938278000850417404,"itoa",false,10661938296198059562]],"local":[{"CheckDepInfo":{"dep_info":"x86_64-pc-windows-msvc/debug/.fingerprint/http-ea9c30f7d1865c99/dep-lib-http","checksum":false}}],"rustflags":[],"config":2069994364910194474,"compile_kind":9161124489350129226} \ No newline at end of file diff --git a/.tmp-check-windows/x86_64-pc-windows-msvc/debug/.fingerprint/httparse-4746fedd30ce7edc/dep-lib-httparse b/.tmp-check-windows/x86_64-pc-windows-msvc/debug/.fingerprint/httparse-4746fedd30ce7edc/dep-lib-httparse new file mode 100644 index 000000000..ec3cb8bfd Binary files /dev/null and b/.tmp-check-windows/x86_64-pc-windows-msvc/debug/.fingerprint/httparse-4746fedd30ce7edc/dep-lib-httparse differ diff --git a/.tmp-check-windows/x86_64-pc-windows-msvc/debug/.fingerprint/httparse-4746fedd30ce7edc/invoked.timestamp b/.tmp-check-windows/x86_64-pc-windows-msvc/debug/.fingerprint/httparse-4746fedd30ce7edc/invoked.timestamp new file mode 100644 index 000000000..e00328da5 --- /dev/null +++ b/.tmp-check-windows/x86_64-pc-windows-msvc/debug/.fingerprint/httparse-4746fedd30ce7edc/invoked.timestamp @@ -0,0 +1 @@ +This file has an mtime of when this was started. \ No newline at end of file diff --git a/.tmp-check-windows/x86_64-pc-windows-msvc/debug/.fingerprint/httparse-4746fedd30ce7edc/lib-httparse b/.tmp-check-windows/x86_64-pc-windows-msvc/debug/.fingerprint/httparse-4746fedd30ce7edc/lib-httparse new file mode 100644 index 000000000..27b4c3345 --- /dev/null +++ b/.tmp-check-windows/x86_64-pc-windows-msvc/debug/.fingerprint/httparse-4746fedd30ce7edc/lib-httparse @@ -0,0 +1 @@ +b8dd6544d85ac934 \ No newline at end of file diff --git a/.tmp-check-windows/x86_64-pc-windows-msvc/debug/.fingerprint/httparse-4746fedd30ce7edc/lib-httparse.json b/.tmp-check-windows/x86_64-pc-windows-msvc/debug/.fingerprint/httparse-4746fedd30ce7edc/lib-httparse.json new file mode 100644 index 000000000..d3dbd2bc0 --- /dev/null +++ b/.tmp-check-windows/x86_64-pc-windows-msvc/debug/.fingerprint/httparse-4746fedd30ce7edc/lib-httparse.json @@ -0,0 +1 @@ +{"rustc":13850170861107434965,"features":"[\"default\", \"std\"]","declared_features":"[\"default\", \"std\"]","target":2257539891522735522,"profile":6272744226771020950,"path":1319200207463728846,"deps":[[6163892036024256188,"build_script_build",false,10434973493648590544]],"local":[{"CheckDepInfo":{"dep_info":"x86_64-pc-windows-msvc/debug/.fingerprint/httparse-4746fedd30ce7edc/dep-lib-httparse","checksum":false}}],"rustflags":[],"config":2069994364910194474,"compile_kind":9161124489350129226} \ No newline at end of file diff --git a/.tmp-check-windows/x86_64-pc-windows-msvc/debug/.fingerprint/httparse-5264894e3d1ba2b1/run-build-script-build-script-build b/.tmp-check-windows/x86_64-pc-windows-msvc/debug/.fingerprint/httparse-5264894e3d1ba2b1/run-build-script-build-script-build new file mode 100644 index 000000000..37ec178fc --- /dev/null +++ b/.tmp-check-windows/x86_64-pc-windows-msvc/debug/.fingerprint/httparse-5264894e3d1ba2b1/run-build-script-build-script-build @@ -0,0 +1 @@ +d0868a091b79d090 \ No newline at end of file diff --git a/.tmp-check-windows/x86_64-pc-windows-msvc/debug/.fingerprint/httparse-5264894e3d1ba2b1/run-build-script-build-script-build.json b/.tmp-check-windows/x86_64-pc-windows-msvc/debug/.fingerprint/httparse-5264894e3d1ba2b1/run-build-script-build-script-build.json new file mode 100644 index 000000000..1dfa8529b --- /dev/null +++ b/.tmp-check-windows/x86_64-pc-windows-msvc/debug/.fingerprint/httparse-5264894e3d1ba2b1/run-build-script-build-script-build.json @@ -0,0 +1 @@ +{"rustc":13850170861107434965,"features":"","declared_features":"","target":0,"profile":0,"path":0,"deps":[[6163892036024256188,"build_script_build",false,675826869534424228]],"local":[{"Precalculated":"1.10.1"}],"rustflags":[],"config":0,"compile_kind":0} \ No newline at end of file diff --git a/.tmp-check-windows/x86_64-pc-windows-msvc/debug/.fingerprint/icu_normalizer_data-52549a9cc94ff528/run-build-script-build-script-build b/.tmp-check-windows/x86_64-pc-windows-msvc/debug/.fingerprint/icu_normalizer_data-52549a9cc94ff528/run-build-script-build-script-build new file mode 100644 index 000000000..228c46c5d --- /dev/null +++ b/.tmp-check-windows/x86_64-pc-windows-msvc/debug/.fingerprint/icu_normalizer_data-52549a9cc94ff528/run-build-script-build-script-build @@ -0,0 +1 @@ +c8adb4219176fbbf \ No newline at end of file diff --git a/.tmp-check-windows/x86_64-pc-windows-msvc/debug/.fingerprint/icu_normalizer_data-52549a9cc94ff528/run-build-script-build-script-build.json b/.tmp-check-windows/x86_64-pc-windows-msvc/debug/.fingerprint/icu_normalizer_data-52549a9cc94ff528/run-build-script-build-script-build.json new file mode 100644 index 000000000..984df092c --- /dev/null +++ b/.tmp-check-windows/x86_64-pc-windows-msvc/debug/.fingerprint/icu_normalizer_data-52549a9cc94ff528/run-build-script-build-script-build.json @@ -0,0 +1 @@ +{"rustc":13850170861107434965,"features":"","declared_features":"","target":0,"profile":0,"path":0,"deps":[[8760466819275915562,"build_script_build",false,8068599128570919926]],"local":[{"RerunIfEnvChanged":{"var":"ICU4X_DATA_DIR","val":null}}],"rustflags":[],"config":0,"compile_kind":0} \ No newline at end of file diff --git a/.tmp-check-windows/x86_64-pc-windows-msvc/debug/.fingerprint/icu_normalizer_data-5b0745ef3cf6717e/dep-lib-icu_normalizer_data b/.tmp-check-windows/x86_64-pc-windows-msvc/debug/.fingerprint/icu_normalizer_data-5b0745ef3cf6717e/dep-lib-icu_normalizer_data new file mode 100644 index 000000000..ec3cb8bfd Binary files /dev/null and b/.tmp-check-windows/x86_64-pc-windows-msvc/debug/.fingerprint/icu_normalizer_data-5b0745ef3cf6717e/dep-lib-icu_normalizer_data differ diff --git a/.tmp-check-windows/x86_64-pc-windows-msvc/debug/.fingerprint/icu_normalizer_data-5b0745ef3cf6717e/invoked.timestamp b/.tmp-check-windows/x86_64-pc-windows-msvc/debug/.fingerprint/icu_normalizer_data-5b0745ef3cf6717e/invoked.timestamp new file mode 100644 index 000000000..e00328da5 --- /dev/null +++ b/.tmp-check-windows/x86_64-pc-windows-msvc/debug/.fingerprint/icu_normalizer_data-5b0745ef3cf6717e/invoked.timestamp @@ -0,0 +1 @@ +This file has an mtime of when this was started. \ No newline at end of file diff --git a/.tmp-check-windows/x86_64-pc-windows-msvc/debug/.fingerprint/icu_normalizer_data-5b0745ef3cf6717e/lib-icu_normalizer_data b/.tmp-check-windows/x86_64-pc-windows-msvc/debug/.fingerprint/icu_normalizer_data-5b0745ef3cf6717e/lib-icu_normalizer_data new file mode 100644 index 000000000..cb2d9f543 --- /dev/null +++ b/.tmp-check-windows/x86_64-pc-windows-msvc/debug/.fingerprint/icu_normalizer_data-5b0745ef3cf6717e/lib-icu_normalizer_data @@ -0,0 +1 @@ +4575300b1548fd22 \ No newline at end of file diff --git a/.tmp-check-windows/x86_64-pc-windows-msvc/debug/.fingerprint/icu_normalizer_data-5b0745ef3cf6717e/lib-icu_normalizer_data.json b/.tmp-check-windows/x86_64-pc-windows-msvc/debug/.fingerprint/icu_normalizer_data-5b0745ef3cf6717e/lib-icu_normalizer_data.json new file mode 100644 index 000000000..a6fd7a0b1 --- /dev/null +++ b/.tmp-check-windows/x86_64-pc-windows-msvc/debug/.fingerprint/icu_normalizer_data-5b0745ef3cf6717e/lib-icu_normalizer_data.json @@ -0,0 +1 @@ +{"rustc":13850170861107434965,"features":"[]","declared_features":"[]","target":17980939898269686983,"profile":6379353384314970492,"path":17148381881222477013,"deps":[[8760466819275915562,"build_script_build",false,13833781046106435016]],"local":[{"CheckDepInfo":{"dep_info":"x86_64-pc-windows-msvc/debug/.fingerprint/icu_normalizer_data-5b0745ef3cf6717e/dep-lib-icu_normalizer_data","checksum":false}}],"rustflags":[],"config":2069994364910194474,"compile_kind":9161124489350129226} \ No newline at end of file diff --git a/.tmp-check-windows/x86_64-pc-windows-msvc/debug/.fingerprint/icu_properties_data-6605f5b613379fcd/run-build-script-build-script-build b/.tmp-check-windows/x86_64-pc-windows-msvc/debug/.fingerprint/icu_properties_data-6605f5b613379fcd/run-build-script-build-script-build new file mode 100644 index 000000000..026dcb727 --- /dev/null +++ b/.tmp-check-windows/x86_64-pc-windows-msvc/debug/.fingerprint/icu_properties_data-6605f5b613379fcd/run-build-script-build-script-build @@ -0,0 +1 @@ +45b269eb8f52c77d \ No newline at end of file diff --git a/.tmp-check-windows/x86_64-pc-windows-msvc/debug/.fingerprint/icu_properties_data-6605f5b613379fcd/run-build-script-build-script-build.json b/.tmp-check-windows/x86_64-pc-windows-msvc/debug/.fingerprint/icu_properties_data-6605f5b613379fcd/run-build-script-build-script-build.json new file mode 100644 index 000000000..0342c2e84 --- /dev/null +++ b/.tmp-check-windows/x86_64-pc-windows-msvc/debug/.fingerprint/icu_properties_data-6605f5b613379fcd/run-build-script-build-script-build.json @@ -0,0 +1 @@ +{"rustc":13850170861107434965,"features":"","declared_features":"","target":0,"profile":0,"path":0,"deps":[[5487088515017310606,"build_script_build",false,8495254649302479601]],"local":[{"RerunIfEnvChanged":{"var":"ICU4X_DATA_DIR","val":null}}],"rustflags":[],"config":0,"compile_kind":0} \ No newline at end of file diff --git a/.tmp-check-windows/x86_64-pc-windows-msvc/debug/.fingerprint/icu_properties_data-d0ec1de699ed3f37/dep-lib-icu_properties_data b/.tmp-check-windows/x86_64-pc-windows-msvc/debug/.fingerprint/icu_properties_data-d0ec1de699ed3f37/dep-lib-icu_properties_data new file mode 100644 index 000000000..ec3cb8bfd Binary files /dev/null and b/.tmp-check-windows/x86_64-pc-windows-msvc/debug/.fingerprint/icu_properties_data-d0ec1de699ed3f37/dep-lib-icu_properties_data differ diff --git a/.tmp-check-windows/x86_64-pc-windows-msvc/debug/.fingerprint/icu_properties_data-d0ec1de699ed3f37/invoked.timestamp b/.tmp-check-windows/x86_64-pc-windows-msvc/debug/.fingerprint/icu_properties_data-d0ec1de699ed3f37/invoked.timestamp new file mode 100644 index 000000000..e00328da5 --- /dev/null +++ b/.tmp-check-windows/x86_64-pc-windows-msvc/debug/.fingerprint/icu_properties_data-d0ec1de699ed3f37/invoked.timestamp @@ -0,0 +1 @@ +This file has an mtime of when this was started. \ No newline at end of file diff --git a/.tmp-check-windows/x86_64-pc-windows-msvc/debug/.fingerprint/icu_properties_data-d0ec1de699ed3f37/lib-icu_properties_data b/.tmp-check-windows/x86_64-pc-windows-msvc/debug/.fingerprint/icu_properties_data-d0ec1de699ed3f37/lib-icu_properties_data new file mode 100644 index 000000000..b38169af8 --- /dev/null +++ b/.tmp-check-windows/x86_64-pc-windows-msvc/debug/.fingerprint/icu_properties_data-d0ec1de699ed3f37/lib-icu_properties_data @@ -0,0 +1 @@ +7f74e7be88766208 \ No newline at end of file diff --git a/.tmp-check-windows/x86_64-pc-windows-msvc/debug/.fingerprint/icu_properties_data-d0ec1de699ed3f37/lib-icu_properties_data.json b/.tmp-check-windows/x86_64-pc-windows-msvc/debug/.fingerprint/icu_properties_data-d0ec1de699ed3f37/lib-icu_properties_data.json new file mode 100644 index 000000000..57765f53f --- /dev/null +++ b/.tmp-check-windows/x86_64-pc-windows-msvc/debug/.fingerprint/icu_properties_data-d0ec1de699ed3f37/lib-icu_properties_data.json @@ -0,0 +1 @@ +{"rustc":13850170861107434965,"features":"[]","declared_features":"[]","target":9037757742335137726,"profile":6379353384314970492,"path":7926235269924783510,"deps":[[5487088515017310606,"build_script_build",false,9063303553189786181]],"local":[{"CheckDepInfo":{"dep_info":"x86_64-pc-windows-msvc/debug/.fingerprint/icu_properties_data-d0ec1de699ed3f37/dep-lib-icu_properties_data","checksum":false}}],"rustflags":[],"config":2069994364910194474,"compile_kind":9161124489350129226} \ No newline at end of file diff --git a/.tmp-check-windows/x86_64-pc-windows-msvc/debug/.fingerprint/indexmap-a2531ec4a8b97add/dep-lib-indexmap b/.tmp-check-windows/x86_64-pc-windows-msvc/debug/.fingerprint/indexmap-a2531ec4a8b97add/dep-lib-indexmap new file mode 100644 index 000000000..ec3cb8bfd Binary files /dev/null and b/.tmp-check-windows/x86_64-pc-windows-msvc/debug/.fingerprint/indexmap-a2531ec4a8b97add/dep-lib-indexmap differ diff --git a/.tmp-check-windows/x86_64-pc-windows-msvc/debug/.fingerprint/indexmap-a2531ec4a8b97add/invoked.timestamp b/.tmp-check-windows/x86_64-pc-windows-msvc/debug/.fingerprint/indexmap-a2531ec4a8b97add/invoked.timestamp new file mode 100644 index 000000000..e00328da5 --- /dev/null +++ b/.tmp-check-windows/x86_64-pc-windows-msvc/debug/.fingerprint/indexmap-a2531ec4a8b97add/invoked.timestamp @@ -0,0 +1 @@ +This file has an mtime of when this was started. \ No newline at end of file diff --git a/.tmp-check-windows/x86_64-pc-windows-msvc/debug/.fingerprint/indexmap-a2531ec4a8b97add/lib-indexmap b/.tmp-check-windows/x86_64-pc-windows-msvc/debug/.fingerprint/indexmap-a2531ec4a8b97add/lib-indexmap new file mode 100644 index 000000000..c001d3276 --- /dev/null +++ b/.tmp-check-windows/x86_64-pc-windows-msvc/debug/.fingerprint/indexmap-a2531ec4a8b97add/lib-indexmap @@ -0,0 +1 @@ +34b4a6981856bb1f \ No newline at end of file diff --git a/.tmp-check-windows/x86_64-pc-windows-msvc/debug/.fingerprint/indexmap-a2531ec4a8b97add/lib-indexmap.json b/.tmp-check-windows/x86_64-pc-windows-msvc/debug/.fingerprint/indexmap-a2531ec4a8b97add/lib-indexmap.json new file mode 100644 index 000000000..01b681e24 --- /dev/null +++ b/.tmp-check-windows/x86_64-pc-windows-msvc/debug/.fingerprint/indexmap-a2531ec4a8b97add/lib-indexmap.json @@ -0,0 +1 @@ +{"rustc":13850170861107434965,"features":"[\"default\", \"serde\", \"std\"]","declared_features":"[\"arbitrary\", \"borsh\", \"default\", \"quickcheck\", \"rayon\", \"serde\", \"std\", \"sval\", \"test_debug\"]","target":10391229881554802429,"profile":17770749724986273341,"path":10046613269105962894,"deps":[[5230392855116717286,"equivalent",false,6178191112791019759],[11899261697793765154,"serde_core",false,13179642004848653973],[17037126617600641945,"hashbrown",false,17337061020729039245]],"local":[{"CheckDepInfo":{"dep_info":"x86_64-pc-windows-msvc/debug/.fingerprint/indexmap-a2531ec4a8b97add/dep-lib-indexmap","checksum":false}}],"rustflags":[],"config":2069994364910194474,"compile_kind":9161124489350129226} \ No newline at end of file diff --git a/.tmp-check-windows/x86_64-pc-windows-msvc/debug/.fingerprint/itoa-488e6eec9800bcda/dep-lib-itoa b/.tmp-check-windows/x86_64-pc-windows-msvc/debug/.fingerprint/itoa-488e6eec9800bcda/dep-lib-itoa new file mode 100644 index 000000000..ec3cb8bfd Binary files /dev/null and b/.tmp-check-windows/x86_64-pc-windows-msvc/debug/.fingerprint/itoa-488e6eec9800bcda/dep-lib-itoa differ diff --git a/.tmp-check-windows/x86_64-pc-windows-msvc/debug/.fingerprint/itoa-488e6eec9800bcda/invoked.timestamp b/.tmp-check-windows/x86_64-pc-windows-msvc/debug/.fingerprint/itoa-488e6eec9800bcda/invoked.timestamp new file mode 100644 index 000000000..e00328da5 --- /dev/null +++ b/.tmp-check-windows/x86_64-pc-windows-msvc/debug/.fingerprint/itoa-488e6eec9800bcda/invoked.timestamp @@ -0,0 +1 @@ +This file has an mtime of when this was started. \ No newline at end of file diff --git a/.tmp-check-windows/x86_64-pc-windows-msvc/debug/.fingerprint/itoa-488e6eec9800bcda/lib-itoa b/.tmp-check-windows/x86_64-pc-windows-msvc/debug/.fingerprint/itoa-488e6eec9800bcda/lib-itoa new file mode 100644 index 000000000..e70719ee6 --- /dev/null +++ b/.tmp-check-windows/x86_64-pc-windows-msvc/debug/.fingerprint/itoa-488e6eec9800bcda/lib-itoa @@ -0,0 +1 @@ +2ad6041a64d0f693 \ No newline at end of file diff --git a/.tmp-check-windows/x86_64-pc-windows-msvc/debug/.fingerprint/itoa-488e6eec9800bcda/lib-itoa.json b/.tmp-check-windows/x86_64-pc-windows-msvc/debug/.fingerprint/itoa-488e6eec9800bcda/lib-itoa.json new file mode 100644 index 000000000..e1038ebf6 --- /dev/null +++ b/.tmp-check-windows/x86_64-pc-windows-msvc/debug/.fingerprint/itoa-488e6eec9800bcda/lib-itoa.json @@ -0,0 +1 @@ +{"rustc":13850170861107434965,"features":"[]","declared_features":"[\"no-panic\"]","target":18426369533666673425,"profile":2241668132362809309,"path":502996512233140141,"deps":[],"local":[{"CheckDepInfo":{"dep_info":"x86_64-pc-windows-msvc/debug/.fingerprint/itoa-488e6eec9800bcda/dep-lib-itoa","checksum":false}}],"rustflags":[],"config":2069994364910194474,"compile_kind":9161124489350129226} \ No newline at end of file diff --git a/.tmp-check-windows/x86_64-pc-windows-msvc/debug/.fingerprint/libc-1defb07ea4562b86/run-build-script-build-script-build b/.tmp-check-windows/x86_64-pc-windows-msvc/debug/.fingerprint/libc-1defb07ea4562b86/run-build-script-build-script-build new file mode 100644 index 000000000..3ea21c79e --- /dev/null +++ b/.tmp-check-windows/x86_64-pc-windows-msvc/debug/.fingerprint/libc-1defb07ea4562b86/run-build-script-build-script-build @@ -0,0 +1 @@ +0e25fd44715aa739 \ No newline at end of file diff --git a/.tmp-check-windows/x86_64-pc-windows-msvc/debug/.fingerprint/libc-1defb07ea4562b86/run-build-script-build-script-build.json b/.tmp-check-windows/x86_64-pc-windows-msvc/debug/.fingerprint/libc-1defb07ea4562b86/run-build-script-build-script-build.json new file mode 100644 index 000000000..3c15201e3 --- /dev/null +++ b/.tmp-check-windows/x86_64-pc-windows-msvc/debug/.fingerprint/libc-1defb07ea4562b86/run-build-script-build-script-build.json @@ -0,0 +1 @@ +{"rustc":13850170861107434965,"features":"","declared_features":"","target":0,"profile":0,"path":0,"deps":[[203594543813181569,"build_script_build",false,16078374306114785313]],"local":[{"RerunIfChanged":{"output":"x86_64-pc-windows-msvc/debug/build/libc-1defb07ea4562b86/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} \ No newline at end of file diff --git a/.tmp-check-windows/x86_64-pc-windows-msvc/debug/.fingerprint/libc-2dcc1ef3a7720659/dep-lib-libc b/.tmp-check-windows/x86_64-pc-windows-msvc/debug/.fingerprint/libc-2dcc1ef3a7720659/dep-lib-libc new file mode 100644 index 000000000..ec3cb8bfd Binary files /dev/null and b/.tmp-check-windows/x86_64-pc-windows-msvc/debug/.fingerprint/libc-2dcc1ef3a7720659/dep-lib-libc differ diff --git a/.tmp-check-windows/x86_64-pc-windows-msvc/debug/.fingerprint/libc-2dcc1ef3a7720659/invoked.timestamp b/.tmp-check-windows/x86_64-pc-windows-msvc/debug/.fingerprint/libc-2dcc1ef3a7720659/invoked.timestamp new file mode 100644 index 000000000..e00328da5 --- /dev/null +++ b/.tmp-check-windows/x86_64-pc-windows-msvc/debug/.fingerprint/libc-2dcc1ef3a7720659/invoked.timestamp @@ -0,0 +1 @@ +This file has an mtime of when this was started. \ No newline at end of file diff --git a/.tmp-check-windows/x86_64-pc-windows-msvc/debug/.fingerprint/libc-2dcc1ef3a7720659/lib-libc b/.tmp-check-windows/x86_64-pc-windows-msvc/debug/.fingerprint/libc-2dcc1ef3a7720659/lib-libc new file mode 100644 index 000000000..eab0d104c --- /dev/null +++ b/.tmp-check-windows/x86_64-pc-windows-msvc/debug/.fingerprint/libc-2dcc1ef3a7720659/lib-libc @@ -0,0 +1 @@ +bf92cfd8a2513ee8 \ No newline at end of file diff --git a/.tmp-check-windows/x86_64-pc-windows-msvc/debug/.fingerprint/libc-2dcc1ef3a7720659/lib-libc.json b/.tmp-check-windows/x86_64-pc-windows-msvc/debug/.fingerprint/libc-2dcc1ef3a7720659/lib-libc.json new file mode 100644 index 000000000..214d9c699 --- /dev/null +++ b/.tmp-check-windows/x86_64-pc-windows-msvc/debug/.fingerprint/libc-2dcc1ef3a7720659/lib-libc.json @@ -0,0 +1 @@ +{"rustc":13850170861107434965,"features":"[\"default\", \"extra_traits\", \"std\"]","declared_features":"[\"align\", \"const-extern-fn\", \"default\", \"extra_traits\", \"rustc-dep-of-std\", \"rustc-std-workspace-core\", \"std\", \"use_std\"]","target":17682796336736096309,"profile":15222631470922254920,"path":5929996509444623387,"deps":[[203594543813181569,"build_script_build",false,4154388623807816974]],"local":[{"CheckDepInfo":{"dep_info":"x86_64-pc-windows-msvc/debug/.fingerprint/libc-2dcc1ef3a7720659/dep-lib-libc","checksum":false}}],"rustflags":[],"config":2069994364910194474,"compile_kind":9161124489350129226} \ No newline at end of file diff --git a/.tmp-check-windows/x86_64-pc-windows-msvc/debug/.fingerprint/litemap-14728d218a3086bc/dep-lib-litemap b/.tmp-check-windows/x86_64-pc-windows-msvc/debug/.fingerprint/litemap-14728d218a3086bc/dep-lib-litemap new file mode 100644 index 000000000..ec3cb8bfd Binary files /dev/null and b/.tmp-check-windows/x86_64-pc-windows-msvc/debug/.fingerprint/litemap-14728d218a3086bc/dep-lib-litemap differ diff --git a/.tmp-check-windows/x86_64-pc-windows-msvc/debug/.fingerprint/litemap-14728d218a3086bc/invoked.timestamp b/.tmp-check-windows/x86_64-pc-windows-msvc/debug/.fingerprint/litemap-14728d218a3086bc/invoked.timestamp new file mode 100644 index 000000000..e00328da5 --- /dev/null +++ b/.tmp-check-windows/x86_64-pc-windows-msvc/debug/.fingerprint/litemap-14728d218a3086bc/invoked.timestamp @@ -0,0 +1 @@ +This file has an mtime of when this was started. \ No newline at end of file diff --git a/.tmp-check-windows/x86_64-pc-windows-msvc/debug/.fingerprint/litemap-14728d218a3086bc/lib-litemap b/.tmp-check-windows/x86_64-pc-windows-msvc/debug/.fingerprint/litemap-14728d218a3086bc/lib-litemap new file mode 100644 index 000000000..9ceb69763 --- /dev/null +++ b/.tmp-check-windows/x86_64-pc-windows-msvc/debug/.fingerprint/litemap-14728d218a3086bc/lib-litemap @@ -0,0 +1 @@ +bb67c31870391320 \ No newline at end of file diff --git a/.tmp-check-windows/x86_64-pc-windows-msvc/debug/.fingerprint/litemap-14728d218a3086bc/lib-litemap.json b/.tmp-check-windows/x86_64-pc-windows-msvc/debug/.fingerprint/litemap-14728d218a3086bc/lib-litemap.json new file mode 100644 index 000000000..c35fccc00 --- /dev/null +++ b/.tmp-check-windows/x86_64-pc-windows-msvc/debug/.fingerprint/litemap-14728d218a3086bc/lib-litemap.json @@ -0,0 +1 @@ +{"rustc":13850170861107434965,"features":"[\"alloc\"]","declared_features":"[\"alloc\", \"databake\", \"default\", \"serde\", \"testing\", \"yoke\"]","target":6548088149557820361,"profile":2241668132362809309,"path":6546814396172069634,"deps":[],"local":[{"CheckDepInfo":{"dep_info":"x86_64-pc-windows-msvc/debug/.fingerprint/litemap-14728d218a3086bc/dep-lib-litemap","checksum":false}}],"rustflags":[],"config":2069994364910194474,"compile_kind":9161124489350129226} \ No newline at end of file diff --git a/.tmp-check-windows/x86_64-pc-windows-msvc/debug/.fingerprint/lock_api-1c00568f97fee2bd/dep-lib-lock_api b/.tmp-check-windows/x86_64-pc-windows-msvc/debug/.fingerprint/lock_api-1c00568f97fee2bd/dep-lib-lock_api new file mode 100644 index 000000000..ec3cb8bfd Binary files /dev/null and b/.tmp-check-windows/x86_64-pc-windows-msvc/debug/.fingerprint/lock_api-1c00568f97fee2bd/dep-lib-lock_api differ diff --git a/.tmp-check-windows/x86_64-pc-windows-msvc/debug/.fingerprint/lock_api-1c00568f97fee2bd/invoked.timestamp b/.tmp-check-windows/x86_64-pc-windows-msvc/debug/.fingerprint/lock_api-1c00568f97fee2bd/invoked.timestamp new file mode 100644 index 000000000..e00328da5 --- /dev/null +++ b/.tmp-check-windows/x86_64-pc-windows-msvc/debug/.fingerprint/lock_api-1c00568f97fee2bd/invoked.timestamp @@ -0,0 +1 @@ +This file has an mtime of when this was started. \ No newline at end of file diff --git a/.tmp-check-windows/x86_64-pc-windows-msvc/debug/.fingerprint/lock_api-1c00568f97fee2bd/lib-lock_api b/.tmp-check-windows/x86_64-pc-windows-msvc/debug/.fingerprint/lock_api-1c00568f97fee2bd/lib-lock_api new file mode 100644 index 000000000..6ea900a99 --- /dev/null +++ b/.tmp-check-windows/x86_64-pc-windows-msvc/debug/.fingerprint/lock_api-1c00568f97fee2bd/lib-lock_api @@ -0,0 +1 @@ +ddd0793e82bee68c \ No newline at end of file diff --git a/.tmp-check-windows/x86_64-pc-windows-msvc/debug/.fingerprint/lock_api-1c00568f97fee2bd/lib-lock_api.json b/.tmp-check-windows/x86_64-pc-windows-msvc/debug/.fingerprint/lock_api-1c00568f97fee2bd/lib-lock_api.json new file mode 100644 index 000000000..72796031b --- /dev/null +++ b/.tmp-check-windows/x86_64-pc-windows-msvc/debug/.fingerprint/lock_api-1c00568f97fee2bd/lib-lock_api.json @@ -0,0 +1 @@ +{"rustc":13850170861107434965,"features":"[\"atomic_usize\", \"default\"]","declared_features":"[\"arc_lock\", \"atomic_usize\", \"default\", \"nightly\", \"owning_ref\", \"serde\"]","target":16157403318809843794,"profile":2241668132362809309,"path":15682357241190891353,"deps":[[15358414700195712381,"scopeguard",false,14143413133900925305]],"local":[{"CheckDepInfo":{"dep_info":"x86_64-pc-windows-msvc/debug/.fingerprint/lock_api-1c00568f97fee2bd/dep-lib-lock_api","checksum":false}}],"rustflags":[],"config":2069994364910194474,"compile_kind":9161124489350129226} \ No newline at end of file diff --git a/.tmp-check-windows/x86_64-pc-windows-msvc/debug/.fingerprint/log-a7e3cdbdd3c1061c/dep-lib-log b/.tmp-check-windows/x86_64-pc-windows-msvc/debug/.fingerprint/log-a7e3cdbdd3c1061c/dep-lib-log new file mode 100644 index 000000000..ec3cb8bfd Binary files /dev/null and b/.tmp-check-windows/x86_64-pc-windows-msvc/debug/.fingerprint/log-a7e3cdbdd3c1061c/dep-lib-log differ diff --git a/.tmp-check-windows/x86_64-pc-windows-msvc/debug/.fingerprint/log-a7e3cdbdd3c1061c/invoked.timestamp b/.tmp-check-windows/x86_64-pc-windows-msvc/debug/.fingerprint/log-a7e3cdbdd3c1061c/invoked.timestamp new file mode 100644 index 000000000..e00328da5 --- /dev/null +++ b/.tmp-check-windows/x86_64-pc-windows-msvc/debug/.fingerprint/log-a7e3cdbdd3c1061c/invoked.timestamp @@ -0,0 +1 @@ +This file has an mtime of when this was started. \ No newline at end of file diff --git a/.tmp-check-windows/x86_64-pc-windows-msvc/debug/.fingerprint/log-a7e3cdbdd3c1061c/lib-log b/.tmp-check-windows/x86_64-pc-windows-msvc/debug/.fingerprint/log-a7e3cdbdd3c1061c/lib-log new file mode 100644 index 000000000..c1f64f4ae --- /dev/null +++ b/.tmp-check-windows/x86_64-pc-windows-msvc/debug/.fingerprint/log-a7e3cdbdd3c1061c/lib-log @@ -0,0 +1 @@ +9d34e0b23120d5de \ No newline at end of file diff --git a/.tmp-check-windows/x86_64-pc-windows-msvc/debug/.fingerprint/log-a7e3cdbdd3c1061c/lib-log.json b/.tmp-check-windows/x86_64-pc-windows-msvc/debug/.fingerprint/log-a7e3cdbdd3c1061c/lib-log.json new file mode 100644 index 000000000..b8a692a09 --- /dev/null +++ b/.tmp-check-windows/x86_64-pc-windows-msvc/debug/.fingerprint/log-a7e3cdbdd3c1061c/lib-log.json @@ -0,0 +1 @@ +{"rustc":13850170861107434965,"features":"[\"std\"]","declared_features":"[\"kv\", \"kv_serde\", \"kv_std\", \"kv_sval\", \"kv_unstable\", \"kv_unstable_serde\", \"kv_unstable_std\", \"kv_unstable_sval\", \"max_level_debug\", \"max_level_error\", \"max_level_info\", \"max_level_off\", \"max_level_trace\", \"max_level_warn\", \"release_max_level_debug\", \"release_max_level_error\", \"release_max_level_info\", \"release_max_level_off\", \"release_max_level_trace\", \"release_max_level_warn\", \"serde\", \"serde_core\", \"std\", \"sval\", \"sval_ref\", \"value-bag\"]","target":6550155848337067049,"profile":2241668132362809309,"path":6441920695984109805,"deps":[],"local":[{"CheckDepInfo":{"dep_info":"x86_64-pc-windows-msvc/debug/.fingerprint/log-a7e3cdbdd3c1061c/dep-lib-log","checksum":false}}],"rustflags":[],"config":2069994364910194474,"compile_kind":9161124489350129226} \ No newline at end of file diff --git a/.tmp-check-windows/x86_64-pc-windows-msvc/debug/.fingerprint/memchr-1b58cabf284e0709/dep-lib-memchr b/.tmp-check-windows/x86_64-pc-windows-msvc/debug/.fingerprint/memchr-1b58cabf284e0709/dep-lib-memchr new file mode 100644 index 000000000..ec3cb8bfd Binary files /dev/null and b/.tmp-check-windows/x86_64-pc-windows-msvc/debug/.fingerprint/memchr-1b58cabf284e0709/dep-lib-memchr differ diff --git a/.tmp-check-windows/x86_64-pc-windows-msvc/debug/.fingerprint/memchr-1b58cabf284e0709/invoked.timestamp b/.tmp-check-windows/x86_64-pc-windows-msvc/debug/.fingerprint/memchr-1b58cabf284e0709/invoked.timestamp new file mode 100644 index 000000000..e00328da5 --- /dev/null +++ b/.tmp-check-windows/x86_64-pc-windows-msvc/debug/.fingerprint/memchr-1b58cabf284e0709/invoked.timestamp @@ -0,0 +1 @@ +This file has an mtime of when this was started. \ No newline at end of file diff --git a/.tmp-check-windows/x86_64-pc-windows-msvc/debug/.fingerprint/memchr-1b58cabf284e0709/lib-memchr b/.tmp-check-windows/x86_64-pc-windows-msvc/debug/.fingerprint/memchr-1b58cabf284e0709/lib-memchr new file mode 100644 index 000000000..47d8b7e01 --- /dev/null +++ b/.tmp-check-windows/x86_64-pc-windows-msvc/debug/.fingerprint/memchr-1b58cabf284e0709/lib-memchr @@ -0,0 +1 @@ +3a473bec3d0d3b4b \ No newline at end of file diff --git a/.tmp-check-windows/x86_64-pc-windows-msvc/debug/.fingerprint/memchr-1b58cabf284e0709/lib-memchr.json b/.tmp-check-windows/x86_64-pc-windows-msvc/debug/.fingerprint/memchr-1b58cabf284e0709/lib-memchr.json new file mode 100644 index 000000000..b0802543e --- /dev/null +++ b/.tmp-check-windows/x86_64-pc-windows-msvc/debug/.fingerprint/memchr-1b58cabf284e0709/lib-memchr.json @@ -0,0 +1 @@ +{"rustc":13850170861107434965,"features":"[\"alloc\", \"default\", \"std\"]","declared_features":"[\"alloc\", \"core\", \"default\", \"libc\", \"logging\", \"rustc-dep-of-std\", \"std\", \"use_std\"]","target":11745930252914242013,"profile":2241668132362809309,"path":2588940523454892536,"deps":[],"local":[{"CheckDepInfo":{"dep_info":"x86_64-pc-windows-msvc/debug/.fingerprint/memchr-1b58cabf284e0709/dep-lib-memchr","checksum":false}}],"rustflags":[],"config":2069994364910194474,"compile_kind":9161124489350129226} \ No newline at end of file diff --git a/.tmp-check-windows/x86_64-pc-windows-msvc/debug/.fingerprint/num-conv-72f863fdde84cf03/dep-lib-num_conv b/.tmp-check-windows/x86_64-pc-windows-msvc/debug/.fingerprint/num-conv-72f863fdde84cf03/dep-lib-num_conv new file mode 100644 index 000000000..ec3cb8bfd Binary files /dev/null and b/.tmp-check-windows/x86_64-pc-windows-msvc/debug/.fingerprint/num-conv-72f863fdde84cf03/dep-lib-num_conv differ diff --git a/.tmp-check-windows/x86_64-pc-windows-msvc/debug/.fingerprint/num-conv-72f863fdde84cf03/invoked.timestamp b/.tmp-check-windows/x86_64-pc-windows-msvc/debug/.fingerprint/num-conv-72f863fdde84cf03/invoked.timestamp new file mode 100644 index 000000000..e00328da5 --- /dev/null +++ b/.tmp-check-windows/x86_64-pc-windows-msvc/debug/.fingerprint/num-conv-72f863fdde84cf03/invoked.timestamp @@ -0,0 +1 @@ +This file has an mtime of when this was started. \ No newline at end of file diff --git a/.tmp-check-windows/x86_64-pc-windows-msvc/debug/.fingerprint/num-conv-72f863fdde84cf03/lib-num_conv b/.tmp-check-windows/x86_64-pc-windows-msvc/debug/.fingerprint/num-conv-72f863fdde84cf03/lib-num_conv new file mode 100644 index 000000000..9d4adbb76 --- /dev/null +++ b/.tmp-check-windows/x86_64-pc-windows-msvc/debug/.fingerprint/num-conv-72f863fdde84cf03/lib-num_conv @@ -0,0 +1 @@ +b73527e96f920aae \ No newline at end of file diff --git a/.tmp-check-windows/x86_64-pc-windows-msvc/debug/.fingerprint/num-conv-72f863fdde84cf03/lib-num_conv.json b/.tmp-check-windows/x86_64-pc-windows-msvc/debug/.fingerprint/num-conv-72f863fdde84cf03/lib-num_conv.json new file mode 100644 index 000000000..76fd23cfd --- /dev/null +++ b/.tmp-check-windows/x86_64-pc-windows-msvc/debug/.fingerprint/num-conv-72f863fdde84cf03/lib-num_conv.json @@ -0,0 +1 @@ +{"rustc":13850170861107434965,"features":"[]","declared_features":"[]","target":8759765779269301280,"profile":11784300447023629780,"path":15908506251249466785,"deps":[],"local":[{"CheckDepInfo":{"dep_info":"x86_64-pc-windows-msvc/debug/.fingerprint/num-conv-72f863fdde84cf03/dep-lib-num_conv","checksum":false}}],"rustflags":[],"config":2069994364910194474,"compile_kind":9161124489350129226} \ No newline at end of file diff --git a/.tmp-check-windows/x86_64-pc-windows-msvc/debug/.fingerprint/num-traits-54a564be5702350f/run-build-script-build-script-build b/.tmp-check-windows/x86_64-pc-windows-msvc/debug/.fingerprint/num-traits-54a564be5702350f/run-build-script-build-script-build new file mode 100644 index 000000000..62384443f --- /dev/null +++ b/.tmp-check-windows/x86_64-pc-windows-msvc/debug/.fingerprint/num-traits-54a564be5702350f/run-build-script-build-script-build @@ -0,0 +1 @@ +b65a9c3a36dadd6c \ No newline at end of file diff --git a/.tmp-check-windows/x86_64-pc-windows-msvc/debug/.fingerprint/num-traits-54a564be5702350f/run-build-script-build-script-build.json b/.tmp-check-windows/x86_64-pc-windows-msvc/debug/.fingerprint/num-traits-54a564be5702350f/run-build-script-build-script-build.json new file mode 100644 index 000000000..e3a20f5c7 --- /dev/null +++ b/.tmp-check-windows/x86_64-pc-windows-msvc/debug/.fingerprint/num-traits-54a564be5702350f/run-build-script-build-script-build.json @@ -0,0 +1 @@ +{"rustc":13850170861107434965,"features":"","declared_features":"","target":0,"profile":0,"path":0,"deps":[[5157631553186200874,"build_script_build",false,13399528547378760110]],"local":[{"RerunIfChanged":{"output":"x86_64-pc-windows-msvc/debug/build/num-traits-54a564be5702350f/output","paths":["build.rs"]}}],"rustflags":[],"config":0,"compile_kind":0} \ No newline at end of file diff --git a/.tmp-check-windows/x86_64-pc-windows-msvc/debug/.fingerprint/num-traits-eecd31492af8a27c/dep-lib-num_traits b/.tmp-check-windows/x86_64-pc-windows-msvc/debug/.fingerprint/num-traits-eecd31492af8a27c/dep-lib-num_traits new file mode 100644 index 000000000..ec3cb8bfd Binary files /dev/null and b/.tmp-check-windows/x86_64-pc-windows-msvc/debug/.fingerprint/num-traits-eecd31492af8a27c/dep-lib-num_traits differ diff --git a/.tmp-check-windows/x86_64-pc-windows-msvc/debug/.fingerprint/num-traits-eecd31492af8a27c/invoked.timestamp b/.tmp-check-windows/x86_64-pc-windows-msvc/debug/.fingerprint/num-traits-eecd31492af8a27c/invoked.timestamp new file mode 100644 index 000000000..e00328da5 --- /dev/null +++ b/.tmp-check-windows/x86_64-pc-windows-msvc/debug/.fingerprint/num-traits-eecd31492af8a27c/invoked.timestamp @@ -0,0 +1 @@ +This file has an mtime of when this was started. \ No newline at end of file diff --git a/.tmp-check-windows/x86_64-pc-windows-msvc/debug/.fingerprint/num-traits-eecd31492af8a27c/lib-num_traits b/.tmp-check-windows/x86_64-pc-windows-msvc/debug/.fingerprint/num-traits-eecd31492af8a27c/lib-num_traits new file mode 100644 index 000000000..f294771c6 --- /dev/null +++ b/.tmp-check-windows/x86_64-pc-windows-msvc/debug/.fingerprint/num-traits-eecd31492af8a27c/lib-num_traits @@ -0,0 +1 @@ +6c7e0d1f34fef10f \ No newline at end of file diff --git a/.tmp-check-windows/x86_64-pc-windows-msvc/debug/.fingerprint/num-traits-eecd31492af8a27c/lib-num_traits.json b/.tmp-check-windows/x86_64-pc-windows-msvc/debug/.fingerprint/num-traits-eecd31492af8a27c/lib-num_traits.json new file mode 100644 index 000000000..df97c6bab --- /dev/null +++ b/.tmp-check-windows/x86_64-pc-windows-msvc/debug/.fingerprint/num-traits-eecd31492af8a27c/lib-num_traits.json @@ -0,0 +1 @@ +{"rustc":13850170861107434965,"features":"[\"default\", \"i128\", \"std\"]","declared_features":"[\"default\", \"i128\", \"libm\", \"std\"]","target":4278088450330190724,"profile":2241668132362809309,"path":12646530370437202726,"deps":[[5157631553186200874,"build_script_build",false,7844666052395686582]],"local":[{"CheckDepInfo":{"dep_info":"x86_64-pc-windows-msvc/debug/.fingerprint/num-traits-eecd31492af8a27c/dep-lib-num_traits","checksum":false}}],"rustflags":[],"config":2069994364910194474,"compile_kind":9161124489350129226} \ No newline at end of file diff --git a/.tmp-check-windows/x86_64-pc-windows-msvc/debug/.fingerprint/once_cell-23f8f2fae52687b1/dep-lib-once_cell b/.tmp-check-windows/x86_64-pc-windows-msvc/debug/.fingerprint/once_cell-23f8f2fae52687b1/dep-lib-once_cell new file mode 100644 index 000000000..ec3cb8bfd Binary files /dev/null and b/.tmp-check-windows/x86_64-pc-windows-msvc/debug/.fingerprint/once_cell-23f8f2fae52687b1/dep-lib-once_cell differ diff --git a/.tmp-check-windows/x86_64-pc-windows-msvc/debug/.fingerprint/once_cell-23f8f2fae52687b1/invoked.timestamp b/.tmp-check-windows/x86_64-pc-windows-msvc/debug/.fingerprint/once_cell-23f8f2fae52687b1/invoked.timestamp new file mode 100644 index 000000000..e00328da5 --- /dev/null +++ b/.tmp-check-windows/x86_64-pc-windows-msvc/debug/.fingerprint/once_cell-23f8f2fae52687b1/invoked.timestamp @@ -0,0 +1 @@ +This file has an mtime of when this was started. \ No newline at end of file diff --git a/.tmp-check-windows/x86_64-pc-windows-msvc/debug/.fingerprint/once_cell-23f8f2fae52687b1/lib-once_cell b/.tmp-check-windows/x86_64-pc-windows-msvc/debug/.fingerprint/once_cell-23f8f2fae52687b1/lib-once_cell new file mode 100644 index 000000000..2ed228b30 --- /dev/null +++ b/.tmp-check-windows/x86_64-pc-windows-msvc/debug/.fingerprint/once_cell-23f8f2fae52687b1/lib-once_cell @@ -0,0 +1 @@ +93ff9adbc959ac1a \ No newline at end of file diff --git a/.tmp-check-windows/x86_64-pc-windows-msvc/debug/.fingerprint/once_cell-23f8f2fae52687b1/lib-once_cell.json b/.tmp-check-windows/x86_64-pc-windows-msvc/debug/.fingerprint/once_cell-23f8f2fae52687b1/lib-once_cell.json new file mode 100644 index 000000000..faf9453f2 --- /dev/null +++ b/.tmp-check-windows/x86_64-pc-windows-msvc/debug/.fingerprint/once_cell-23f8f2fae52687b1/lib-once_cell.json @@ -0,0 +1 @@ +{"rustc":13850170861107434965,"features":"[\"alloc\", \"default\", \"race\", \"std\"]","declared_features":"[\"alloc\", \"atomic-polyfill\", \"critical-section\", \"default\", \"parking_lot\", \"portable-atomic\", \"race\", \"std\", \"unstable\"]","target":17524666916136250164,"profile":2241668132362809309,"path":12169114312051460382,"deps":[],"local":[{"CheckDepInfo":{"dep_info":"x86_64-pc-windows-msvc/debug/.fingerprint/once_cell-23f8f2fae52687b1/dep-lib-once_cell","checksum":false}}],"rustflags":[],"config":2069994364910194474,"compile_kind":9161124489350129226} \ No newline at end of file diff --git a/.tmp-check-windows/x86_64-pc-windows-msvc/debug/.fingerprint/parking_lot-ba860a093d33ef7b/dep-lib-parking_lot b/.tmp-check-windows/x86_64-pc-windows-msvc/debug/.fingerprint/parking_lot-ba860a093d33ef7b/dep-lib-parking_lot new file mode 100644 index 000000000..ec3cb8bfd Binary files /dev/null and b/.tmp-check-windows/x86_64-pc-windows-msvc/debug/.fingerprint/parking_lot-ba860a093d33ef7b/dep-lib-parking_lot differ diff --git a/.tmp-check-windows/x86_64-pc-windows-msvc/debug/.fingerprint/parking_lot-ba860a093d33ef7b/invoked.timestamp b/.tmp-check-windows/x86_64-pc-windows-msvc/debug/.fingerprint/parking_lot-ba860a093d33ef7b/invoked.timestamp new file mode 100644 index 000000000..e00328da5 --- /dev/null +++ b/.tmp-check-windows/x86_64-pc-windows-msvc/debug/.fingerprint/parking_lot-ba860a093d33ef7b/invoked.timestamp @@ -0,0 +1 @@ +This file has an mtime of when this was started. \ No newline at end of file diff --git a/.tmp-check-windows/x86_64-pc-windows-msvc/debug/.fingerprint/parking_lot-ba860a093d33ef7b/lib-parking_lot b/.tmp-check-windows/x86_64-pc-windows-msvc/debug/.fingerprint/parking_lot-ba860a093d33ef7b/lib-parking_lot new file mode 100644 index 000000000..f1dce418e --- /dev/null +++ b/.tmp-check-windows/x86_64-pc-windows-msvc/debug/.fingerprint/parking_lot-ba860a093d33ef7b/lib-parking_lot @@ -0,0 +1 @@ +89c028920c32b8c4 \ No newline at end of file diff --git a/.tmp-check-windows/x86_64-pc-windows-msvc/debug/.fingerprint/parking_lot-ba860a093d33ef7b/lib-parking_lot.json b/.tmp-check-windows/x86_64-pc-windows-msvc/debug/.fingerprint/parking_lot-ba860a093d33ef7b/lib-parking_lot.json new file mode 100644 index 000000000..0f38c182f --- /dev/null +++ b/.tmp-check-windows/x86_64-pc-windows-msvc/debug/.fingerprint/parking_lot-ba860a093d33ef7b/lib-parking_lot.json @@ -0,0 +1 @@ +{"rustc":13850170861107434965,"features":"[\"default\"]","declared_features":"[\"arc_lock\", \"deadlock_detection\", \"default\", \"hardware-lock-elision\", \"nightly\", \"owning_ref\", \"send_guard\", \"serde\"]","target":9887373948397848517,"profile":2241668132362809309,"path":17384219401825674561,"deps":[[2555121257709722468,"lock_api",false,10153011876556558557],[6545091685033313457,"parking_lot_core",false,10197597569329074028]],"local":[{"CheckDepInfo":{"dep_info":"x86_64-pc-windows-msvc/debug/.fingerprint/parking_lot-ba860a093d33ef7b/dep-lib-parking_lot","checksum":false}}],"rustflags":[],"config":2069994364910194474,"compile_kind":9161124489350129226} \ No newline at end of file diff --git a/.tmp-check-windows/x86_64-pc-windows-msvc/debug/.fingerprint/parking_lot_core-1515055616085f74/dep-lib-parking_lot_core b/.tmp-check-windows/x86_64-pc-windows-msvc/debug/.fingerprint/parking_lot_core-1515055616085f74/dep-lib-parking_lot_core new file mode 100644 index 000000000..ec3cb8bfd Binary files /dev/null and b/.tmp-check-windows/x86_64-pc-windows-msvc/debug/.fingerprint/parking_lot_core-1515055616085f74/dep-lib-parking_lot_core differ diff --git a/.tmp-check-windows/x86_64-pc-windows-msvc/debug/.fingerprint/parking_lot_core-1515055616085f74/invoked.timestamp b/.tmp-check-windows/x86_64-pc-windows-msvc/debug/.fingerprint/parking_lot_core-1515055616085f74/invoked.timestamp new file mode 100644 index 000000000..e00328da5 --- /dev/null +++ b/.tmp-check-windows/x86_64-pc-windows-msvc/debug/.fingerprint/parking_lot_core-1515055616085f74/invoked.timestamp @@ -0,0 +1 @@ +This file has an mtime of when this was started. \ No newline at end of file diff --git a/.tmp-check-windows/x86_64-pc-windows-msvc/debug/.fingerprint/parking_lot_core-1515055616085f74/lib-parking_lot_core b/.tmp-check-windows/x86_64-pc-windows-msvc/debug/.fingerprint/parking_lot_core-1515055616085f74/lib-parking_lot_core new file mode 100644 index 000000000..97851ffc8 --- /dev/null +++ b/.tmp-check-windows/x86_64-pc-windows-msvc/debug/.fingerprint/parking_lot_core-1515055616085f74/lib-parking_lot_core @@ -0,0 +1 @@ +6c0f3fcaf524858d \ No newline at end of file diff --git a/.tmp-check-windows/x86_64-pc-windows-msvc/debug/.fingerprint/parking_lot_core-1515055616085f74/lib-parking_lot_core.json b/.tmp-check-windows/x86_64-pc-windows-msvc/debug/.fingerprint/parking_lot_core-1515055616085f74/lib-parking_lot_core.json new file mode 100644 index 000000000..a0661e9e1 --- /dev/null +++ b/.tmp-check-windows/x86_64-pc-windows-msvc/debug/.fingerprint/parking_lot_core-1515055616085f74/lib-parking_lot_core.json @@ -0,0 +1 @@ +{"rustc":13850170861107434965,"features":"[]","declared_features":"[\"backtrace\", \"deadlock_detection\", \"nightly\", \"petgraph\"]","target":12558056885032795287,"profile":2241668132362809309,"path":14477283048173298917,"deps":[[3666196340704888985,"smallvec",false,322802508645398591],[6545091685033313457,"build_script_build",false,490786903108571648],[6959378045035346538,"windows_link",false,8811276941274132123],[7667230146095136825,"cfg_if",false,3910607869061409420]],"local":[{"CheckDepInfo":{"dep_info":"x86_64-pc-windows-msvc/debug/.fingerprint/parking_lot_core-1515055616085f74/dep-lib-parking_lot_core","checksum":false}}],"rustflags":[],"config":2069994364910194474,"compile_kind":9161124489350129226} \ No newline at end of file diff --git a/.tmp-check-windows/x86_64-pc-windows-msvc/debug/.fingerprint/parking_lot_core-c539c824d077feab/run-build-script-build-script-build b/.tmp-check-windows/x86_64-pc-windows-msvc/debug/.fingerprint/parking_lot_core-c539c824d077feab/run-build-script-build-script-build new file mode 100644 index 000000000..1561a69f3 --- /dev/null +++ b/.tmp-check-windows/x86_64-pc-windows-msvc/debug/.fingerprint/parking_lot_core-c539c824d077feab/run-build-script-build-script-build @@ -0,0 +1 @@ +0052338c16a0cf06 \ No newline at end of file diff --git a/.tmp-check-windows/x86_64-pc-windows-msvc/debug/.fingerprint/parking_lot_core-c539c824d077feab/run-build-script-build-script-build.json b/.tmp-check-windows/x86_64-pc-windows-msvc/debug/.fingerprint/parking_lot_core-c539c824d077feab/run-build-script-build-script-build.json new file mode 100644 index 000000000..78a92454e --- /dev/null +++ b/.tmp-check-windows/x86_64-pc-windows-msvc/debug/.fingerprint/parking_lot_core-c539c824d077feab/run-build-script-build-script-build.json @@ -0,0 +1 @@ +{"rustc":13850170861107434965,"features":"","declared_features":"","target":0,"profile":0,"path":0,"deps":[[6545091685033313457,"build_script_build",false,9503171433821406682]],"local":[{"RerunIfChanged":{"output":"x86_64-pc-windows-msvc/debug/build/parking_lot_core-c539c824d077feab/output","paths":["build.rs"]}}],"rustflags":[],"config":0,"compile_kind":0} \ No newline at end of file diff --git a/.tmp-check-windows/x86_64-pc-windows-msvc/debug/.fingerprint/percent-encoding-e35dd42ea1a2b4d6/dep-lib-percent_encoding b/.tmp-check-windows/x86_64-pc-windows-msvc/debug/.fingerprint/percent-encoding-e35dd42ea1a2b4d6/dep-lib-percent_encoding new file mode 100644 index 000000000..ec3cb8bfd Binary files /dev/null and b/.tmp-check-windows/x86_64-pc-windows-msvc/debug/.fingerprint/percent-encoding-e35dd42ea1a2b4d6/dep-lib-percent_encoding differ diff --git a/.tmp-check-windows/x86_64-pc-windows-msvc/debug/.fingerprint/percent-encoding-e35dd42ea1a2b4d6/invoked.timestamp b/.tmp-check-windows/x86_64-pc-windows-msvc/debug/.fingerprint/percent-encoding-e35dd42ea1a2b4d6/invoked.timestamp new file mode 100644 index 000000000..e00328da5 --- /dev/null +++ b/.tmp-check-windows/x86_64-pc-windows-msvc/debug/.fingerprint/percent-encoding-e35dd42ea1a2b4d6/invoked.timestamp @@ -0,0 +1 @@ +This file has an mtime of when this was started. \ No newline at end of file diff --git a/.tmp-check-windows/x86_64-pc-windows-msvc/debug/.fingerprint/percent-encoding-e35dd42ea1a2b4d6/lib-percent_encoding b/.tmp-check-windows/x86_64-pc-windows-msvc/debug/.fingerprint/percent-encoding-e35dd42ea1a2b4d6/lib-percent_encoding new file mode 100644 index 000000000..548e63ed8 --- /dev/null +++ b/.tmp-check-windows/x86_64-pc-windows-msvc/debug/.fingerprint/percent-encoding-e35dd42ea1a2b4d6/lib-percent_encoding @@ -0,0 +1 @@ +66931faaf27f8013 \ No newline at end of file diff --git a/.tmp-check-windows/x86_64-pc-windows-msvc/debug/.fingerprint/percent-encoding-e35dd42ea1a2b4d6/lib-percent_encoding.json b/.tmp-check-windows/x86_64-pc-windows-msvc/debug/.fingerprint/percent-encoding-e35dd42ea1a2b4d6/lib-percent_encoding.json new file mode 100644 index 000000000..65807d25a --- /dev/null +++ b/.tmp-check-windows/x86_64-pc-windows-msvc/debug/.fingerprint/percent-encoding-e35dd42ea1a2b4d6/lib-percent_encoding.json @@ -0,0 +1 @@ +{"rustc":13850170861107434965,"features":"[\"alloc\", \"default\", \"std\"]","declared_features":"[\"alloc\", \"default\", \"std\"]","target":6219969305134610909,"profile":2241668132362809309,"path":13657506271885191097,"deps":[],"local":[{"CheckDepInfo":{"dep_info":"x86_64-pc-windows-msvc/debug/.fingerprint/percent-encoding-e35dd42ea1a2b4d6/dep-lib-percent_encoding","checksum":false}}],"rustflags":[],"config":2069994364910194474,"compile_kind":9161124489350129226} \ No newline at end of file diff --git a/.tmp-check-windows/x86_64-pc-windows-msvc/debug/.fingerprint/pin-project-lite-fbf35e178affa77b/dep-lib-pin_project_lite b/.tmp-check-windows/x86_64-pc-windows-msvc/debug/.fingerprint/pin-project-lite-fbf35e178affa77b/dep-lib-pin_project_lite new file mode 100644 index 000000000..ec3cb8bfd Binary files /dev/null and b/.tmp-check-windows/x86_64-pc-windows-msvc/debug/.fingerprint/pin-project-lite-fbf35e178affa77b/dep-lib-pin_project_lite differ diff --git a/.tmp-check-windows/x86_64-pc-windows-msvc/debug/.fingerprint/pin-project-lite-fbf35e178affa77b/invoked.timestamp b/.tmp-check-windows/x86_64-pc-windows-msvc/debug/.fingerprint/pin-project-lite-fbf35e178affa77b/invoked.timestamp new file mode 100644 index 000000000..e00328da5 --- /dev/null +++ b/.tmp-check-windows/x86_64-pc-windows-msvc/debug/.fingerprint/pin-project-lite-fbf35e178affa77b/invoked.timestamp @@ -0,0 +1 @@ +This file has an mtime of when this was started. \ No newline at end of file diff --git a/.tmp-check-windows/x86_64-pc-windows-msvc/debug/.fingerprint/pin-project-lite-fbf35e178affa77b/lib-pin_project_lite b/.tmp-check-windows/x86_64-pc-windows-msvc/debug/.fingerprint/pin-project-lite-fbf35e178affa77b/lib-pin_project_lite new file mode 100644 index 000000000..eee8c4dda --- /dev/null +++ b/.tmp-check-windows/x86_64-pc-windows-msvc/debug/.fingerprint/pin-project-lite-fbf35e178affa77b/lib-pin_project_lite @@ -0,0 +1 @@ +9dd6d291b8756f2c \ No newline at end of file diff --git a/.tmp-check-windows/x86_64-pc-windows-msvc/debug/.fingerprint/pin-project-lite-fbf35e178affa77b/lib-pin_project_lite.json b/.tmp-check-windows/x86_64-pc-windows-msvc/debug/.fingerprint/pin-project-lite-fbf35e178affa77b/lib-pin_project_lite.json new file mode 100644 index 000000000..f017e7326 --- /dev/null +++ b/.tmp-check-windows/x86_64-pc-windows-msvc/debug/.fingerprint/pin-project-lite-fbf35e178affa77b/lib-pin_project_lite.json @@ -0,0 +1 @@ +{"rustc":13850170861107434965,"features":"[]","declared_features":"[]","target":7529200858990304138,"profile":11945150978823367295,"path":1759177079543300331,"deps":[],"local":[{"CheckDepInfo":{"dep_info":"x86_64-pc-windows-msvc/debug/.fingerprint/pin-project-lite-fbf35e178affa77b/dep-lib-pin_project_lite","checksum":false}}],"rustflags":[],"config":2069994364910194474,"compile_kind":9161124489350129226} \ No newline at end of file diff --git a/.tmp-check-windows/x86_64-pc-windows-msvc/debug/.fingerprint/pin-utils-8c959579c72b059b/dep-lib-pin_utils b/.tmp-check-windows/x86_64-pc-windows-msvc/debug/.fingerprint/pin-utils-8c959579c72b059b/dep-lib-pin_utils new file mode 100644 index 000000000..ec3cb8bfd Binary files /dev/null and b/.tmp-check-windows/x86_64-pc-windows-msvc/debug/.fingerprint/pin-utils-8c959579c72b059b/dep-lib-pin_utils differ diff --git a/.tmp-check-windows/x86_64-pc-windows-msvc/debug/.fingerprint/pin-utils-8c959579c72b059b/invoked.timestamp b/.tmp-check-windows/x86_64-pc-windows-msvc/debug/.fingerprint/pin-utils-8c959579c72b059b/invoked.timestamp new file mode 100644 index 000000000..e00328da5 --- /dev/null +++ b/.tmp-check-windows/x86_64-pc-windows-msvc/debug/.fingerprint/pin-utils-8c959579c72b059b/invoked.timestamp @@ -0,0 +1 @@ +This file has an mtime of when this was started. \ No newline at end of file diff --git a/.tmp-check-windows/x86_64-pc-windows-msvc/debug/.fingerprint/pin-utils-8c959579c72b059b/lib-pin_utils b/.tmp-check-windows/x86_64-pc-windows-msvc/debug/.fingerprint/pin-utils-8c959579c72b059b/lib-pin_utils new file mode 100644 index 000000000..1b26bca0f --- /dev/null +++ b/.tmp-check-windows/x86_64-pc-windows-msvc/debug/.fingerprint/pin-utils-8c959579c72b059b/lib-pin_utils @@ -0,0 +1 @@ +23ac2efc0a954640 \ No newline at end of file diff --git a/.tmp-check-windows/x86_64-pc-windows-msvc/debug/.fingerprint/pin-utils-8c959579c72b059b/lib-pin_utils.json b/.tmp-check-windows/x86_64-pc-windows-msvc/debug/.fingerprint/pin-utils-8c959579c72b059b/lib-pin_utils.json new file mode 100644 index 000000000..ea6ec7d2f --- /dev/null +++ b/.tmp-check-windows/x86_64-pc-windows-msvc/debug/.fingerprint/pin-utils-8c959579c72b059b/lib-pin_utils.json @@ -0,0 +1 @@ +{"rustc":13850170861107434965,"features":"[]","declared_features":"[]","target":6142422912982997569,"profile":2241668132362809309,"path":4101748030875980580,"deps":[],"local":[{"CheckDepInfo":{"dep_info":"x86_64-pc-windows-msvc/debug/.fingerprint/pin-utils-8c959579c72b059b/dep-lib-pin_utils","checksum":false}}],"rustflags":[],"config":2069994364910194474,"compile_kind":9161124489350129226} \ No newline at end of file diff --git a/.tmp-check-windows/x86_64-pc-windows-msvc/debug/.fingerprint/powerfmt-4add946197a93d53/dep-lib-powerfmt b/.tmp-check-windows/x86_64-pc-windows-msvc/debug/.fingerprint/powerfmt-4add946197a93d53/dep-lib-powerfmt new file mode 100644 index 000000000..ec3cb8bfd Binary files /dev/null and b/.tmp-check-windows/x86_64-pc-windows-msvc/debug/.fingerprint/powerfmt-4add946197a93d53/dep-lib-powerfmt differ diff --git a/.tmp-check-windows/x86_64-pc-windows-msvc/debug/.fingerprint/powerfmt-4add946197a93d53/invoked.timestamp b/.tmp-check-windows/x86_64-pc-windows-msvc/debug/.fingerprint/powerfmt-4add946197a93d53/invoked.timestamp new file mode 100644 index 000000000..e00328da5 --- /dev/null +++ b/.tmp-check-windows/x86_64-pc-windows-msvc/debug/.fingerprint/powerfmt-4add946197a93d53/invoked.timestamp @@ -0,0 +1 @@ +This file has an mtime of when this was started. \ No newline at end of file diff --git a/.tmp-check-windows/x86_64-pc-windows-msvc/debug/.fingerprint/powerfmt-4add946197a93d53/lib-powerfmt b/.tmp-check-windows/x86_64-pc-windows-msvc/debug/.fingerprint/powerfmt-4add946197a93d53/lib-powerfmt new file mode 100644 index 000000000..27137cd67 --- /dev/null +++ b/.tmp-check-windows/x86_64-pc-windows-msvc/debug/.fingerprint/powerfmt-4add946197a93d53/lib-powerfmt @@ -0,0 +1 @@ +7ef68a48d632eadf \ No newline at end of file diff --git a/.tmp-check-windows/x86_64-pc-windows-msvc/debug/.fingerprint/powerfmt-4add946197a93d53/lib-powerfmt.json b/.tmp-check-windows/x86_64-pc-windows-msvc/debug/.fingerprint/powerfmt-4add946197a93d53/lib-powerfmt.json new file mode 100644 index 000000000..b9bc5ae59 --- /dev/null +++ b/.tmp-check-windows/x86_64-pc-windows-msvc/debug/.fingerprint/powerfmt-4add946197a93d53/lib-powerfmt.json @@ -0,0 +1 @@ +{"rustc":13850170861107434965,"features":"[]","declared_features":"[\"alloc\", \"default\", \"macros\", \"std\"]","target":3190409771209632544,"profile":2241668132362809309,"path":5540537611248437242,"deps":[],"local":[{"CheckDepInfo":{"dep_info":"x86_64-pc-windows-msvc/debug/.fingerprint/powerfmt-4add946197a93d53/dep-lib-powerfmt","checksum":false}}],"rustflags":[],"config":2069994364910194474,"compile_kind":9161124489350129226} \ No newline at end of file diff --git a/.tmp-check-windows/x86_64-pc-windows-msvc/debug/.fingerprint/rand_core-d8053f433e650b94/dep-lib-rand_core b/.tmp-check-windows/x86_64-pc-windows-msvc/debug/.fingerprint/rand_core-d8053f433e650b94/dep-lib-rand_core new file mode 100644 index 000000000..ec3cb8bfd Binary files /dev/null and b/.tmp-check-windows/x86_64-pc-windows-msvc/debug/.fingerprint/rand_core-d8053f433e650b94/dep-lib-rand_core differ diff --git a/.tmp-check-windows/x86_64-pc-windows-msvc/debug/.fingerprint/rand_core-d8053f433e650b94/invoked.timestamp b/.tmp-check-windows/x86_64-pc-windows-msvc/debug/.fingerprint/rand_core-d8053f433e650b94/invoked.timestamp new file mode 100644 index 000000000..e00328da5 --- /dev/null +++ b/.tmp-check-windows/x86_64-pc-windows-msvc/debug/.fingerprint/rand_core-d8053f433e650b94/invoked.timestamp @@ -0,0 +1 @@ +This file has an mtime of when this was started. \ No newline at end of file diff --git a/.tmp-check-windows/x86_64-pc-windows-msvc/debug/.fingerprint/rand_core-d8053f433e650b94/lib-rand_core b/.tmp-check-windows/x86_64-pc-windows-msvc/debug/.fingerprint/rand_core-d8053f433e650b94/lib-rand_core new file mode 100644 index 000000000..65a425942 --- /dev/null +++ b/.tmp-check-windows/x86_64-pc-windows-msvc/debug/.fingerprint/rand_core-d8053f433e650b94/lib-rand_core @@ -0,0 +1 @@ +5b0dc26a1d641c9d \ No newline at end of file diff --git a/.tmp-check-windows/x86_64-pc-windows-msvc/debug/.fingerprint/rand_core-d8053f433e650b94/lib-rand_core.json b/.tmp-check-windows/x86_64-pc-windows-msvc/debug/.fingerprint/rand_core-d8053f433e650b94/lib-rand_core.json new file mode 100644 index 000000000..d5e440e8c --- /dev/null +++ b/.tmp-check-windows/x86_64-pc-windows-msvc/debug/.fingerprint/rand_core-d8053f433e650b94/lib-rand_core.json @@ -0,0 +1 @@ +{"rustc":13850170861107434965,"features":"[\"alloc\", \"getrandom\", \"std\"]","declared_features":"[\"alloc\", \"getrandom\", \"serde\", \"serde1\", \"std\"]","target":13770603672348587087,"profile":2241668132362809309,"path":16484890452860741293,"deps":[[11023519408959114924,"getrandom",false,17098561366505673588]],"local":[{"CheckDepInfo":{"dep_info":"x86_64-pc-windows-msvc/debug/.fingerprint/rand_core-d8053f433e650b94/dep-lib-rand_core","checksum":false}}],"rustflags":[],"config":2069994364910194474,"compile_kind":9161124489350129226} \ No newline at end of file diff --git a/.tmp-check-windows/x86_64-pc-windows-msvc/debug/.fingerprint/ryu-c06dec971409c7ba/dep-lib-ryu b/.tmp-check-windows/x86_64-pc-windows-msvc/debug/.fingerprint/ryu-c06dec971409c7ba/dep-lib-ryu new file mode 100644 index 000000000..ec3cb8bfd Binary files /dev/null and b/.tmp-check-windows/x86_64-pc-windows-msvc/debug/.fingerprint/ryu-c06dec971409c7ba/dep-lib-ryu differ diff --git a/.tmp-check-windows/x86_64-pc-windows-msvc/debug/.fingerprint/ryu-c06dec971409c7ba/invoked.timestamp b/.tmp-check-windows/x86_64-pc-windows-msvc/debug/.fingerprint/ryu-c06dec971409c7ba/invoked.timestamp new file mode 100644 index 000000000..e00328da5 --- /dev/null +++ b/.tmp-check-windows/x86_64-pc-windows-msvc/debug/.fingerprint/ryu-c06dec971409c7ba/invoked.timestamp @@ -0,0 +1 @@ +This file has an mtime of when this was started. \ No newline at end of file diff --git a/.tmp-check-windows/x86_64-pc-windows-msvc/debug/.fingerprint/ryu-c06dec971409c7ba/lib-ryu b/.tmp-check-windows/x86_64-pc-windows-msvc/debug/.fingerprint/ryu-c06dec971409c7ba/lib-ryu new file mode 100644 index 000000000..a38daca07 --- /dev/null +++ b/.tmp-check-windows/x86_64-pc-windows-msvc/debug/.fingerprint/ryu-c06dec971409c7ba/lib-ryu @@ -0,0 +1 @@ +325e658ef5c05c44 \ No newline at end of file diff --git a/.tmp-check-windows/x86_64-pc-windows-msvc/debug/.fingerprint/ryu-c06dec971409c7ba/lib-ryu.json b/.tmp-check-windows/x86_64-pc-windows-msvc/debug/.fingerprint/ryu-c06dec971409c7ba/lib-ryu.json new file mode 100644 index 000000000..4b6fac589 --- /dev/null +++ b/.tmp-check-windows/x86_64-pc-windows-msvc/debug/.fingerprint/ryu-c06dec971409c7ba/lib-ryu.json @@ -0,0 +1 @@ +{"rustc":13850170861107434965,"features":"[]","declared_features":"[\"no-panic\", \"small\"]","target":13763186580977333631,"profile":2241668132362809309,"path":7602156304750619676,"deps":[],"local":[{"CheckDepInfo":{"dep_info":"x86_64-pc-windows-msvc/debug/.fingerprint/ryu-c06dec971409c7ba/dep-lib-ryu","checksum":false}}],"rustflags":[],"config":2069994364910194474,"compile_kind":9161124489350129226} \ No newline at end of file diff --git a/.tmp-check-windows/x86_64-pc-windows-msvc/debug/.fingerprint/scopeguard-8eafdb6a52f0b313/dep-lib-scopeguard b/.tmp-check-windows/x86_64-pc-windows-msvc/debug/.fingerprint/scopeguard-8eafdb6a52f0b313/dep-lib-scopeguard new file mode 100644 index 000000000..ec3cb8bfd Binary files /dev/null and b/.tmp-check-windows/x86_64-pc-windows-msvc/debug/.fingerprint/scopeguard-8eafdb6a52f0b313/dep-lib-scopeguard differ diff --git a/.tmp-check-windows/x86_64-pc-windows-msvc/debug/.fingerprint/scopeguard-8eafdb6a52f0b313/invoked.timestamp b/.tmp-check-windows/x86_64-pc-windows-msvc/debug/.fingerprint/scopeguard-8eafdb6a52f0b313/invoked.timestamp new file mode 100644 index 000000000..e00328da5 --- /dev/null +++ b/.tmp-check-windows/x86_64-pc-windows-msvc/debug/.fingerprint/scopeguard-8eafdb6a52f0b313/invoked.timestamp @@ -0,0 +1 @@ +This file has an mtime of when this was started. \ No newline at end of file diff --git a/.tmp-check-windows/x86_64-pc-windows-msvc/debug/.fingerprint/scopeguard-8eafdb6a52f0b313/lib-scopeguard b/.tmp-check-windows/x86_64-pc-windows-msvc/debug/.fingerprint/scopeguard-8eafdb6a52f0b313/lib-scopeguard new file mode 100644 index 000000000..f285f166c --- /dev/null +++ b/.tmp-check-windows/x86_64-pc-windows-msvc/debug/.fingerprint/scopeguard-8eafdb6a52f0b313/lib-scopeguard @@ -0,0 +1 @@ +7949c26d4f7f47c4 \ No newline at end of file diff --git a/.tmp-check-windows/x86_64-pc-windows-msvc/debug/.fingerprint/scopeguard-8eafdb6a52f0b313/lib-scopeguard.json b/.tmp-check-windows/x86_64-pc-windows-msvc/debug/.fingerprint/scopeguard-8eafdb6a52f0b313/lib-scopeguard.json new file mode 100644 index 000000000..6afdaa428 --- /dev/null +++ b/.tmp-check-windows/x86_64-pc-windows-msvc/debug/.fingerprint/scopeguard-8eafdb6a52f0b313/lib-scopeguard.json @@ -0,0 +1 @@ +{"rustc":13850170861107434965,"features":"[\"default\", \"use_std\"]","declared_features":"[\"default\", \"use_std\"]","target":3556356971060988614,"profile":2241668132362809309,"path":5343893726425676455,"deps":[],"local":[{"CheckDepInfo":{"dep_info":"x86_64-pc-windows-msvc/debug/.fingerprint/scopeguard-8eafdb6a52f0b313/dep-lib-scopeguard","checksum":false}}],"rustflags":[],"config":2069994364910194474,"compile_kind":9161124489350129226} \ No newline at end of file diff --git a/.tmp-check-windows/x86_64-pc-windows-msvc/debug/.fingerprint/serde-fbf265fad39e354c/run-build-script-build-script-build b/.tmp-check-windows/x86_64-pc-windows-msvc/debug/.fingerprint/serde-fbf265fad39e354c/run-build-script-build-script-build new file mode 100644 index 000000000..0cf5439d3 --- /dev/null +++ b/.tmp-check-windows/x86_64-pc-windows-msvc/debug/.fingerprint/serde-fbf265fad39e354c/run-build-script-build-script-build @@ -0,0 +1 @@ +ab015ce3bff3e6b2 \ No newline at end of file diff --git a/.tmp-check-windows/x86_64-pc-windows-msvc/debug/.fingerprint/serde-fbf265fad39e354c/run-build-script-build-script-build.json b/.tmp-check-windows/x86_64-pc-windows-msvc/debug/.fingerprint/serde-fbf265fad39e354c/run-build-script-build-script-build.json new file mode 100644 index 000000000..36613bdb5 --- /dev/null +++ b/.tmp-check-windows/x86_64-pc-windows-msvc/debug/.fingerprint/serde-fbf265fad39e354c/run-build-script-build-script-build.json @@ -0,0 +1 @@ +{"rustc":13850170861107434965,"features":"","declared_features":"","target":0,"profile":0,"path":0,"deps":[[13548984313718623784,"build_script_build",false,7408066104854103118]],"local":[{"RerunIfChanged":{"output":"x86_64-pc-windows-msvc/debug/build/serde-fbf265fad39e354c/output","paths":["build.rs"]}}],"rustflags":[],"config":0,"compile_kind":0} \ No newline at end of file diff --git a/.tmp-check-windows/x86_64-pc-windows-msvc/debug/.fingerprint/serde_core-025a74d7fa54aa68/run-build-script-build-script-build b/.tmp-check-windows/x86_64-pc-windows-msvc/debug/.fingerprint/serde_core-025a74d7fa54aa68/run-build-script-build-script-build new file mode 100644 index 000000000..4093bbed3 --- /dev/null +++ b/.tmp-check-windows/x86_64-pc-windows-msvc/debug/.fingerprint/serde_core-025a74d7fa54aa68/run-build-script-build-script-build @@ -0,0 +1 @@ +4117552070002ee9 \ No newline at end of file diff --git a/.tmp-check-windows/x86_64-pc-windows-msvc/debug/.fingerprint/serde_core-025a74d7fa54aa68/run-build-script-build-script-build.json b/.tmp-check-windows/x86_64-pc-windows-msvc/debug/.fingerprint/serde_core-025a74d7fa54aa68/run-build-script-build-script-build.json new file mode 100644 index 000000000..372722021 --- /dev/null +++ b/.tmp-check-windows/x86_64-pc-windows-msvc/debug/.fingerprint/serde_core-025a74d7fa54aa68/run-build-script-build-script-build.json @@ -0,0 +1 @@ +{"rustc":13850170861107434965,"features":"","declared_features":"","target":0,"profile":0,"path":0,"deps":[[11899261697793765154,"build_script_build",false,6413009789838732267]],"local":[{"RerunIfChanged":{"output":"x86_64-pc-windows-msvc/debug/build/serde_core-025a74d7fa54aa68/output","paths":["build.rs"]}}],"rustflags":[],"config":0,"compile_kind":0} \ No newline at end of file diff --git a/.tmp-check-windows/x86_64-pc-windows-msvc/debug/.fingerprint/serde_core-68d7e1636b061fe9/dep-lib-serde_core b/.tmp-check-windows/x86_64-pc-windows-msvc/debug/.fingerprint/serde_core-68d7e1636b061fe9/dep-lib-serde_core new file mode 100644 index 000000000..cdec4e917 Binary files /dev/null and b/.tmp-check-windows/x86_64-pc-windows-msvc/debug/.fingerprint/serde_core-68d7e1636b061fe9/dep-lib-serde_core differ diff --git a/.tmp-check-windows/x86_64-pc-windows-msvc/debug/.fingerprint/serde_core-68d7e1636b061fe9/invoked.timestamp b/.tmp-check-windows/x86_64-pc-windows-msvc/debug/.fingerprint/serde_core-68d7e1636b061fe9/invoked.timestamp new file mode 100644 index 000000000..e00328da5 --- /dev/null +++ b/.tmp-check-windows/x86_64-pc-windows-msvc/debug/.fingerprint/serde_core-68d7e1636b061fe9/invoked.timestamp @@ -0,0 +1 @@ +This file has an mtime of when this was started. \ No newline at end of file diff --git a/.tmp-check-windows/x86_64-pc-windows-msvc/debug/.fingerprint/serde_core-68d7e1636b061fe9/lib-serde_core b/.tmp-check-windows/x86_64-pc-windows-msvc/debug/.fingerprint/serde_core-68d7e1636b061fe9/lib-serde_core new file mode 100644 index 000000000..3b558a65e --- /dev/null +++ b/.tmp-check-windows/x86_64-pc-windows-msvc/debug/.fingerprint/serde_core-68d7e1636b061fe9/lib-serde_core @@ -0,0 +1 @@ +9536d21d937ee7b6 \ No newline at end of file diff --git a/.tmp-check-windows/x86_64-pc-windows-msvc/debug/.fingerprint/serde_core-68d7e1636b061fe9/lib-serde_core.json b/.tmp-check-windows/x86_64-pc-windows-msvc/debug/.fingerprint/serde_core-68d7e1636b061fe9/lib-serde_core.json new file mode 100644 index 000000000..0ce762086 --- /dev/null +++ b/.tmp-check-windows/x86_64-pc-windows-msvc/debug/.fingerprint/serde_core-68d7e1636b061fe9/lib-serde_core.json @@ -0,0 +1 @@ +{"rustc":13850170861107434965,"features":"[\"alloc\", \"default\", \"rc\", \"result\", \"std\"]","declared_features":"[\"alloc\", \"default\", \"rc\", \"result\", \"std\", \"unstable\"]","target":6810695588070812737,"profile":2241668132362809309,"path":11251691794696939626,"deps":[[11899261697793765154,"build_script_build",false,16802367741344683841]],"local":[{"CheckDepInfo":{"dep_info":"x86_64-pc-windows-msvc/debug/.fingerprint/serde_core-68d7e1636b061fe9/dep-lib-serde_core","checksum":false}}],"rustflags":[],"config":2069994364910194474,"compile_kind":9161124489350129226} \ No newline at end of file diff --git a/.tmp-check-windows/x86_64-pc-windows-msvc/debug/.fingerprint/serde_json-003fd9a9d6f94e41/dep-lib-serde_json b/.tmp-check-windows/x86_64-pc-windows-msvc/debug/.fingerprint/serde_json-003fd9a9d6f94e41/dep-lib-serde_json new file mode 100644 index 000000000..ec3cb8bfd Binary files /dev/null and b/.tmp-check-windows/x86_64-pc-windows-msvc/debug/.fingerprint/serde_json-003fd9a9d6f94e41/dep-lib-serde_json differ diff --git a/.tmp-check-windows/x86_64-pc-windows-msvc/debug/.fingerprint/serde_json-003fd9a9d6f94e41/invoked.timestamp b/.tmp-check-windows/x86_64-pc-windows-msvc/debug/.fingerprint/serde_json-003fd9a9d6f94e41/invoked.timestamp new file mode 100644 index 000000000..e00328da5 --- /dev/null +++ b/.tmp-check-windows/x86_64-pc-windows-msvc/debug/.fingerprint/serde_json-003fd9a9d6f94e41/invoked.timestamp @@ -0,0 +1 @@ +This file has an mtime of when this was started. \ No newline at end of file diff --git a/.tmp-check-windows/x86_64-pc-windows-msvc/debug/.fingerprint/serde_json-003fd9a9d6f94e41/lib-serde_json b/.tmp-check-windows/x86_64-pc-windows-msvc/debug/.fingerprint/serde_json-003fd9a9d6f94e41/lib-serde_json new file mode 100644 index 000000000..8d1fc53dc --- /dev/null +++ b/.tmp-check-windows/x86_64-pc-windows-msvc/debug/.fingerprint/serde_json-003fd9a9d6f94e41/lib-serde_json @@ -0,0 +1 @@ +1724a697ecb7f4fe \ No newline at end of file diff --git a/.tmp-check-windows/x86_64-pc-windows-msvc/debug/.fingerprint/serde_json-003fd9a9d6f94e41/lib-serde_json.json b/.tmp-check-windows/x86_64-pc-windows-msvc/debug/.fingerprint/serde_json-003fd9a9d6f94e41/lib-serde_json.json new file mode 100644 index 000000000..25dddb66f --- /dev/null +++ b/.tmp-check-windows/x86_64-pc-windows-msvc/debug/.fingerprint/serde_json-003fd9a9d6f94e41/lib-serde_json.json @@ -0,0 +1 @@ +{"rustc":13850170861107434965,"features":"[\"alloc\", \"default\", \"raw_value\", \"std\"]","declared_features":"[\"alloc\", \"arbitrary_precision\", \"default\", \"float_roundtrip\", \"indexmap\", \"preserve_order\", \"raw_value\", \"std\", \"unbounded_depth\"]","target":9592559880233824070,"profile":2241668132362809309,"path":18292503061834243562,"deps":[[1363051979936526615,"memchr",false,5420941136077997882],[9938278000850417404,"itoa",false,10661938296198059562],[11899261697793765154,"serde_core",false,13179642004848653973],[12347024475581975995,"zmij",false,12527186306475004317],[13795362694956882968,"build_script_build",false,8548441403396813202]],"local":[{"CheckDepInfo":{"dep_info":"x86_64-pc-windows-msvc/debug/.fingerprint/serde_json-003fd9a9d6f94e41/dep-lib-serde_json","checksum":false}}],"rustflags":[],"config":2069994364910194474,"compile_kind":9161124489350129226} \ No newline at end of file diff --git a/.tmp-check-windows/x86_64-pc-windows-msvc/debug/.fingerprint/serde_json-6ca23f1161458259/run-build-script-build-script-build b/.tmp-check-windows/x86_64-pc-windows-msvc/debug/.fingerprint/serde_json-6ca23f1161458259/run-build-script-build-script-build new file mode 100644 index 000000000..bb0fdf1f4 --- /dev/null +++ b/.tmp-check-windows/x86_64-pc-windows-msvc/debug/.fingerprint/serde_json-6ca23f1161458259/run-build-script-build-script-build @@ -0,0 +1 @@ +9271b5302a2aa276 \ No newline at end of file diff --git a/.tmp-check-windows/x86_64-pc-windows-msvc/debug/.fingerprint/serde_json-6ca23f1161458259/run-build-script-build-script-build.json b/.tmp-check-windows/x86_64-pc-windows-msvc/debug/.fingerprint/serde_json-6ca23f1161458259/run-build-script-build-script-build.json new file mode 100644 index 000000000..7daf014c6 --- /dev/null +++ b/.tmp-check-windows/x86_64-pc-windows-msvc/debug/.fingerprint/serde_json-6ca23f1161458259/run-build-script-build-script-build.json @@ -0,0 +1 @@ +{"rustc":13850170861107434965,"features":"","declared_features":"","target":0,"profile":0,"path":0,"deps":[[13795362694956882968,"build_script_build",false,1902526982654299816]],"local":[{"RerunIfChanged":{"output":"x86_64-pc-windows-msvc/debug/build/serde_json-6ca23f1161458259/output","paths":["build.rs"]}}],"rustflags":[],"config":0,"compile_kind":0} \ No newline at end of file diff --git a/.tmp-check-windows/x86_64-pc-windows-msvc/debug/.fingerprint/slab-f5b6997ae8b4f72e/dep-lib-slab b/.tmp-check-windows/x86_64-pc-windows-msvc/debug/.fingerprint/slab-f5b6997ae8b4f72e/dep-lib-slab new file mode 100644 index 000000000..ec3cb8bfd Binary files /dev/null and b/.tmp-check-windows/x86_64-pc-windows-msvc/debug/.fingerprint/slab-f5b6997ae8b4f72e/dep-lib-slab differ diff --git a/.tmp-check-windows/x86_64-pc-windows-msvc/debug/.fingerprint/slab-f5b6997ae8b4f72e/invoked.timestamp b/.tmp-check-windows/x86_64-pc-windows-msvc/debug/.fingerprint/slab-f5b6997ae8b4f72e/invoked.timestamp new file mode 100644 index 000000000..e00328da5 --- /dev/null +++ b/.tmp-check-windows/x86_64-pc-windows-msvc/debug/.fingerprint/slab-f5b6997ae8b4f72e/invoked.timestamp @@ -0,0 +1 @@ +This file has an mtime of when this was started. \ No newline at end of file diff --git a/.tmp-check-windows/x86_64-pc-windows-msvc/debug/.fingerprint/slab-f5b6997ae8b4f72e/lib-slab b/.tmp-check-windows/x86_64-pc-windows-msvc/debug/.fingerprint/slab-f5b6997ae8b4f72e/lib-slab new file mode 100644 index 000000000..f981ad3bc --- /dev/null +++ b/.tmp-check-windows/x86_64-pc-windows-msvc/debug/.fingerprint/slab-f5b6997ae8b4f72e/lib-slab @@ -0,0 +1 @@ +d1603ee0d2f3e81f \ No newline at end of file diff --git a/.tmp-check-windows/x86_64-pc-windows-msvc/debug/.fingerprint/slab-f5b6997ae8b4f72e/lib-slab.json b/.tmp-check-windows/x86_64-pc-windows-msvc/debug/.fingerprint/slab-f5b6997ae8b4f72e/lib-slab.json new file mode 100644 index 000000000..2fd5912a4 --- /dev/null +++ b/.tmp-check-windows/x86_64-pc-windows-msvc/debug/.fingerprint/slab-f5b6997ae8b4f72e/lib-slab.json @@ -0,0 +1 @@ +{"rustc":13850170861107434965,"features":"[\"default\", \"std\"]","declared_features":"[\"default\", \"serde\", \"std\"]","target":7798044754532116308,"profile":2241668132362809309,"path":8615002239463764922,"deps":[],"local":[{"CheckDepInfo":{"dep_info":"x86_64-pc-windows-msvc/debug/.fingerprint/slab-f5b6997ae8b4f72e/dep-lib-slab","checksum":false}}],"rustflags":[],"config":2069994364910194474,"compile_kind":9161124489350129226} \ No newline at end of file diff --git a/.tmp-check-windows/x86_64-pc-windows-msvc/debug/.fingerprint/smallvec-7621bb04b0d0ac7f/dep-lib-smallvec b/.tmp-check-windows/x86_64-pc-windows-msvc/debug/.fingerprint/smallvec-7621bb04b0d0ac7f/dep-lib-smallvec new file mode 100644 index 000000000..ec3cb8bfd Binary files /dev/null and b/.tmp-check-windows/x86_64-pc-windows-msvc/debug/.fingerprint/smallvec-7621bb04b0d0ac7f/dep-lib-smallvec differ diff --git a/.tmp-check-windows/x86_64-pc-windows-msvc/debug/.fingerprint/smallvec-7621bb04b0d0ac7f/invoked.timestamp b/.tmp-check-windows/x86_64-pc-windows-msvc/debug/.fingerprint/smallvec-7621bb04b0d0ac7f/invoked.timestamp new file mode 100644 index 000000000..e00328da5 --- /dev/null +++ b/.tmp-check-windows/x86_64-pc-windows-msvc/debug/.fingerprint/smallvec-7621bb04b0d0ac7f/invoked.timestamp @@ -0,0 +1 @@ +This file has an mtime of when this was started. \ No newline at end of file diff --git a/.tmp-check-windows/x86_64-pc-windows-msvc/debug/.fingerprint/smallvec-7621bb04b0d0ac7f/lib-smallvec b/.tmp-check-windows/x86_64-pc-windows-msvc/debug/.fingerprint/smallvec-7621bb04b0d0ac7f/lib-smallvec new file mode 100644 index 000000000..e541921e3 --- /dev/null +++ b/.tmp-check-windows/x86_64-pc-windows-msvc/debug/.fingerprint/smallvec-7621bb04b0d0ac7f/lib-smallvec @@ -0,0 +1 @@ +3ff869dc2bd37a04 \ No newline at end of file diff --git a/.tmp-check-windows/x86_64-pc-windows-msvc/debug/.fingerprint/smallvec-7621bb04b0d0ac7f/lib-smallvec.json b/.tmp-check-windows/x86_64-pc-windows-msvc/debug/.fingerprint/smallvec-7621bb04b0d0ac7f/lib-smallvec.json new file mode 100644 index 000000000..31a0ad855 --- /dev/null +++ b/.tmp-check-windows/x86_64-pc-windows-msvc/debug/.fingerprint/smallvec-7621bb04b0d0ac7f/lib-smallvec.json @@ -0,0 +1 @@ +{"rustc":13850170861107434965,"features":"[\"const_generics\", \"const_new\"]","declared_features":"[\"arbitrary\", \"bincode\", \"const_generics\", \"const_new\", \"debugger_visualizer\", \"drain_filter\", \"drain_keep_rest\", \"impl_bincode\", \"malloc_size_of\", \"may_dangle\", \"serde\", \"specialization\", \"union\", \"unty\", \"write\"]","target":9091769176333489034,"profile":2241668132362809309,"path":898322672860480210,"deps":[],"local":[{"CheckDepInfo":{"dep_info":"x86_64-pc-windows-msvc/debug/.fingerprint/smallvec-7621bb04b0d0ac7f/dep-lib-smallvec","checksum":false}}],"rustflags":[],"config":2069994364910194474,"compile_kind":9161124489350129226} \ No newline at end of file diff --git a/.tmp-check-windows/x86_64-pc-windows-msvc/debug/.fingerprint/socket2-ce777d24433f6fb0/dep-lib-socket2 b/.tmp-check-windows/x86_64-pc-windows-msvc/debug/.fingerprint/socket2-ce777d24433f6fb0/dep-lib-socket2 new file mode 100644 index 000000000..ec3cb8bfd Binary files /dev/null and b/.tmp-check-windows/x86_64-pc-windows-msvc/debug/.fingerprint/socket2-ce777d24433f6fb0/dep-lib-socket2 differ diff --git a/.tmp-check-windows/x86_64-pc-windows-msvc/debug/.fingerprint/socket2-ce777d24433f6fb0/invoked.timestamp b/.tmp-check-windows/x86_64-pc-windows-msvc/debug/.fingerprint/socket2-ce777d24433f6fb0/invoked.timestamp new file mode 100644 index 000000000..e00328da5 --- /dev/null +++ b/.tmp-check-windows/x86_64-pc-windows-msvc/debug/.fingerprint/socket2-ce777d24433f6fb0/invoked.timestamp @@ -0,0 +1 @@ +This file has an mtime of when this was started. \ No newline at end of file diff --git a/.tmp-check-windows/x86_64-pc-windows-msvc/debug/.fingerprint/socket2-ce777d24433f6fb0/lib-socket2 b/.tmp-check-windows/x86_64-pc-windows-msvc/debug/.fingerprint/socket2-ce777d24433f6fb0/lib-socket2 new file mode 100644 index 000000000..6a88f7607 --- /dev/null +++ b/.tmp-check-windows/x86_64-pc-windows-msvc/debug/.fingerprint/socket2-ce777d24433f6fb0/lib-socket2 @@ -0,0 +1 @@ +192d2043e156676d \ No newline at end of file diff --git a/.tmp-check-windows/x86_64-pc-windows-msvc/debug/.fingerprint/socket2-ce777d24433f6fb0/lib-socket2.json b/.tmp-check-windows/x86_64-pc-windows-msvc/debug/.fingerprint/socket2-ce777d24433f6fb0/lib-socket2.json new file mode 100644 index 000000000..9cc8ee1e2 --- /dev/null +++ b/.tmp-check-windows/x86_64-pc-windows-msvc/debug/.fingerprint/socket2-ce777d24433f6fb0/lib-socket2.json @@ -0,0 +1 @@ +{"rustc":13850170861107434965,"features":"[\"all\"]","declared_features":"[\"all\"]","target":2270514485357617025,"profile":2241668132362809309,"path":16613017467344516245,"deps":[[7263319592666514104,"windows_sys",false,7831137317787186097]],"local":[{"CheckDepInfo":{"dep_info":"x86_64-pc-windows-msvc/debug/.fingerprint/socket2-ce777d24433f6fb0/dep-lib-socket2","checksum":false}}],"rustflags":[],"config":2069994364910194474,"compile_kind":9161124489350129226} \ No newline at end of file diff --git a/.tmp-check-windows/x86_64-pc-windows-msvc/debug/.fingerprint/stable_deref_trait-3c5b002665830fa0/dep-lib-stable_deref_trait b/.tmp-check-windows/x86_64-pc-windows-msvc/debug/.fingerprint/stable_deref_trait-3c5b002665830fa0/dep-lib-stable_deref_trait new file mode 100644 index 000000000..ec3cb8bfd Binary files /dev/null and b/.tmp-check-windows/x86_64-pc-windows-msvc/debug/.fingerprint/stable_deref_trait-3c5b002665830fa0/dep-lib-stable_deref_trait differ diff --git a/.tmp-check-windows/x86_64-pc-windows-msvc/debug/.fingerprint/stable_deref_trait-3c5b002665830fa0/invoked.timestamp b/.tmp-check-windows/x86_64-pc-windows-msvc/debug/.fingerprint/stable_deref_trait-3c5b002665830fa0/invoked.timestamp new file mode 100644 index 000000000..e00328da5 --- /dev/null +++ b/.tmp-check-windows/x86_64-pc-windows-msvc/debug/.fingerprint/stable_deref_trait-3c5b002665830fa0/invoked.timestamp @@ -0,0 +1 @@ +This file has an mtime of when this was started. \ No newline at end of file diff --git a/.tmp-check-windows/x86_64-pc-windows-msvc/debug/.fingerprint/stable_deref_trait-3c5b002665830fa0/lib-stable_deref_trait b/.tmp-check-windows/x86_64-pc-windows-msvc/debug/.fingerprint/stable_deref_trait-3c5b002665830fa0/lib-stable_deref_trait new file mode 100644 index 000000000..05570e653 --- /dev/null +++ b/.tmp-check-windows/x86_64-pc-windows-msvc/debug/.fingerprint/stable_deref_trait-3c5b002665830fa0/lib-stable_deref_trait @@ -0,0 +1 @@ +964b6f3979d73df4 \ No newline at end of file diff --git a/.tmp-check-windows/x86_64-pc-windows-msvc/debug/.fingerprint/stable_deref_trait-3c5b002665830fa0/lib-stable_deref_trait.json b/.tmp-check-windows/x86_64-pc-windows-msvc/debug/.fingerprint/stable_deref_trait-3c5b002665830fa0/lib-stable_deref_trait.json new file mode 100644 index 000000000..703147925 --- /dev/null +++ b/.tmp-check-windows/x86_64-pc-windows-msvc/debug/.fingerprint/stable_deref_trait-3c5b002665830fa0/lib-stable_deref_trait.json @@ -0,0 +1 @@ +{"rustc":13850170861107434965,"features":"[\"alloc\", \"default\", \"std\"]","declared_features":"[\"alloc\", \"default\", \"std\"]","target":5616890217583455155,"profile":2241668132362809309,"path":6768685854453472276,"deps":[],"local":[{"CheckDepInfo":{"dep_info":"x86_64-pc-windows-msvc/debug/.fingerprint/stable_deref_trait-3c5b002665830fa0/dep-lib-stable_deref_trait","checksum":false}}],"rustflags":[],"config":2069994364910194474,"compile_kind":9161124489350129226} \ No newline at end of file diff --git a/.tmp-check-windows/x86_64-pc-windows-msvc/debug/.fingerprint/subtle-93ef9b8880b3a020/dep-lib-subtle b/.tmp-check-windows/x86_64-pc-windows-msvc/debug/.fingerprint/subtle-93ef9b8880b3a020/dep-lib-subtle new file mode 100644 index 000000000..ec3cb8bfd Binary files /dev/null and b/.tmp-check-windows/x86_64-pc-windows-msvc/debug/.fingerprint/subtle-93ef9b8880b3a020/dep-lib-subtle differ diff --git a/.tmp-check-windows/x86_64-pc-windows-msvc/debug/.fingerprint/subtle-93ef9b8880b3a020/invoked.timestamp b/.tmp-check-windows/x86_64-pc-windows-msvc/debug/.fingerprint/subtle-93ef9b8880b3a020/invoked.timestamp new file mode 100644 index 000000000..e00328da5 --- /dev/null +++ b/.tmp-check-windows/x86_64-pc-windows-msvc/debug/.fingerprint/subtle-93ef9b8880b3a020/invoked.timestamp @@ -0,0 +1 @@ +This file has an mtime of when this was started. \ No newline at end of file diff --git a/.tmp-check-windows/x86_64-pc-windows-msvc/debug/.fingerprint/subtle-93ef9b8880b3a020/lib-subtle b/.tmp-check-windows/x86_64-pc-windows-msvc/debug/.fingerprint/subtle-93ef9b8880b3a020/lib-subtle new file mode 100644 index 000000000..8cf90dd79 --- /dev/null +++ b/.tmp-check-windows/x86_64-pc-windows-msvc/debug/.fingerprint/subtle-93ef9b8880b3a020/lib-subtle @@ -0,0 +1 @@ +cd606cd534f8a01b \ No newline at end of file diff --git a/.tmp-check-windows/x86_64-pc-windows-msvc/debug/.fingerprint/subtle-93ef9b8880b3a020/lib-subtle.json b/.tmp-check-windows/x86_64-pc-windows-msvc/debug/.fingerprint/subtle-93ef9b8880b3a020/lib-subtle.json new file mode 100644 index 000000000..5bf300157 --- /dev/null +++ b/.tmp-check-windows/x86_64-pc-windows-msvc/debug/.fingerprint/subtle-93ef9b8880b3a020/lib-subtle.json @@ -0,0 +1 @@ +{"rustc":13850170861107434965,"features":"[\"default\", \"i128\", \"std\"]","declared_features":"[\"const-generics\", \"core_hint_black_box\", \"default\", \"i128\", \"nightly\", \"std\"]","target":13005322332938347306,"profile":2241668132362809309,"path":9272218470507989388,"deps":[],"local":[{"CheckDepInfo":{"dep_info":"x86_64-pc-windows-msvc/debug/.fingerprint/subtle-93ef9b8880b3a020/dep-lib-subtle","checksum":false}}],"rustflags":[],"config":2069994364910194474,"compile_kind":9161124489350129226} \ No newline at end of file diff --git a/.tmp-check-windows/x86_64-pc-windows-msvc/debug/.fingerprint/thiserror-ad9f2fd3119bc1f9/run-build-script-build-script-build b/.tmp-check-windows/x86_64-pc-windows-msvc/debug/.fingerprint/thiserror-ad9f2fd3119bc1f9/run-build-script-build-script-build new file mode 100644 index 000000000..aa8566ab0 --- /dev/null +++ b/.tmp-check-windows/x86_64-pc-windows-msvc/debug/.fingerprint/thiserror-ad9f2fd3119bc1f9/run-build-script-build-script-build @@ -0,0 +1 @@ +335c67e4a73eaa47 \ No newline at end of file diff --git a/.tmp-check-windows/x86_64-pc-windows-msvc/debug/.fingerprint/thiserror-ad9f2fd3119bc1f9/run-build-script-build-script-build.json b/.tmp-check-windows/x86_64-pc-windows-msvc/debug/.fingerprint/thiserror-ad9f2fd3119bc1f9/run-build-script-build-script-build.json new file mode 100644 index 000000000..85fd474f7 --- /dev/null +++ b/.tmp-check-windows/x86_64-pc-windows-msvc/debug/.fingerprint/thiserror-ad9f2fd3119bc1f9/run-build-script-build-script-build.json @@ -0,0 +1 @@ +{"rustc":13850170861107434965,"features":"","declared_features":"","target":0,"profile":0,"path":0,"deps":[[8008191657135824715,"build_script_build",false,14372920851078861336]],"local":[{"RerunIfChanged":{"output":"x86_64-pc-windows-msvc/debug/build/thiserror-ad9f2fd3119bc1f9/output","paths":["build/probe.rs"]}},{"RerunIfEnvChanged":{"var":"RUSTC_BOOTSTRAP","val":null}}],"rustflags":[],"config":0,"compile_kind":0} \ No newline at end of file diff --git a/.tmp-check-windows/x86_64-pc-windows-msvc/debug/.fingerprint/time-0e83d7eadd1b29f8/dep-lib-time b/.tmp-check-windows/x86_64-pc-windows-msvc/debug/.fingerprint/time-0e83d7eadd1b29f8/dep-lib-time new file mode 100644 index 000000000..ec3cb8bfd Binary files /dev/null and b/.tmp-check-windows/x86_64-pc-windows-msvc/debug/.fingerprint/time-0e83d7eadd1b29f8/dep-lib-time differ diff --git a/.tmp-check-windows/x86_64-pc-windows-msvc/debug/.fingerprint/time-0e83d7eadd1b29f8/invoked.timestamp b/.tmp-check-windows/x86_64-pc-windows-msvc/debug/.fingerprint/time-0e83d7eadd1b29f8/invoked.timestamp new file mode 100644 index 000000000..e00328da5 --- /dev/null +++ b/.tmp-check-windows/x86_64-pc-windows-msvc/debug/.fingerprint/time-0e83d7eadd1b29f8/invoked.timestamp @@ -0,0 +1 @@ +This file has an mtime of when this was started. \ No newline at end of file diff --git a/.tmp-check-windows/x86_64-pc-windows-msvc/debug/.fingerprint/time-0e83d7eadd1b29f8/lib-time b/.tmp-check-windows/x86_64-pc-windows-msvc/debug/.fingerprint/time-0e83d7eadd1b29f8/lib-time new file mode 100644 index 000000000..3f22d248b --- /dev/null +++ b/.tmp-check-windows/x86_64-pc-windows-msvc/debug/.fingerprint/time-0e83d7eadd1b29f8/lib-time @@ -0,0 +1 @@ +9f0ab54f611391b0 \ No newline at end of file diff --git a/.tmp-check-windows/x86_64-pc-windows-msvc/debug/.fingerprint/time-0e83d7eadd1b29f8/lib-time.json b/.tmp-check-windows/x86_64-pc-windows-msvc/debug/.fingerprint/time-0e83d7eadd1b29f8/lib-time.json new file mode 100644 index 000000000..913b055e7 --- /dev/null +++ b/.tmp-check-windows/x86_64-pc-windows-msvc/debug/.fingerprint/time-0e83d7eadd1b29f8/lib-time.json @@ -0,0 +1 @@ +{"rustc":13850170861107434965,"features":"[\"alloc\", \"default\", \"formatting\", \"large-dates\", \"local-offset\", \"macros\", \"parsing\", \"std\", \"wasm-bindgen\"]","declared_features":"[\"alloc\", \"default\", \"formatting\", \"large-dates\", \"local-offset\", \"macros\", \"parsing\", \"quickcheck\", \"rand\", \"rand08\", \"rand09\", \"serde\", \"serde-human-readable\", \"serde-well-known\", \"std\", \"wasm-bindgen\"]","target":8476133839300368761,"profile":2263997393868540911,"path":12779318920129463643,"deps":[[5901133744777009488,"powerfmt",false,16134764510929679998],[9889232103266058129,"time_macros",false,9831067596120901415],[9938278000850417404,"itoa",false,10661938296198059562],[15572560757901793625,"time_core",false,18067288431621203820],[15673264339717225619,"num_conv",false,12540997121717253559],[17634244132575000293,"deranged",false,10253523169970149255]],"local":[{"CheckDepInfo":{"dep_info":"x86_64-pc-windows-msvc/debug/.fingerprint/time-0e83d7eadd1b29f8/dep-lib-time","checksum":false}}],"rustflags":[],"config":2069994364910194474,"compile_kind":9161124489350129226} \ No newline at end of file diff --git a/.tmp-check-windows/x86_64-pc-windows-msvc/debug/.fingerprint/time-core-17b148b2e499200f/dep-lib-time_core b/.tmp-check-windows/x86_64-pc-windows-msvc/debug/.fingerprint/time-core-17b148b2e499200f/dep-lib-time_core new file mode 100644 index 000000000..ec3cb8bfd Binary files /dev/null and b/.tmp-check-windows/x86_64-pc-windows-msvc/debug/.fingerprint/time-core-17b148b2e499200f/dep-lib-time_core differ diff --git a/.tmp-check-windows/x86_64-pc-windows-msvc/debug/.fingerprint/time-core-17b148b2e499200f/invoked.timestamp b/.tmp-check-windows/x86_64-pc-windows-msvc/debug/.fingerprint/time-core-17b148b2e499200f/invoked.timestamp new file mode 100644 index 000000000..e00328da5 --- /dev/null +++ b/.tmp-check-windows/x86_64-pc-windows-msvc/debug/.fingerprint/time-core-17b148b2e499200f/invoked.timestamp @@ -0,0 +1 @@ +This file has an mtime of when this was started. \ No newline at end of file diff --git a/.tmp-check-windows/x86_64-pc-windows-msvc/debug/.fingerprint/time-core-17b148b2e499200f/lib-time_core b/.tmp-check-windows/x86_64-pc-windows-msvc/debug/.fingerprint/time-core-17b148b2e499200f/lib-time_core new file mode 100644 index 000000000..62babfbd6 --- /dev/null +++ b/.tmp-check-windows/x86_64-pc-windows-msvc/debug/.fingerprint/time-core-17b148b2e499200f/lib-time_core @@ -0,0 +1 @@ +6c674e9d1ae7bbfa \ No newline at end of file diff --git a/.tmp-check-windows/x86_64-pc-windows-msvc/debug/.fingerprint/time-core-17b148b2e499200f/lib-time_core.json b/.tmp-check-windows/x86_64-pc-windows-msvc/debug/.fingerprint/time-core-17b148b2e499200f/lib-time_core.json new file mode 100644 index 000000000..64b466dfa --- /dev/null +++ b/.tmp-check-windows/x86_64-pc-windows-msvc/debug/.fingerprint/time-core-17b148b2e499200f/lib-time_core.json @@ -0,0 +1 @@ +{"rustc":13850170861107434965,"features":"[\"large-dates\"]","declared_features":"[\"large-dates\"]","target":10582047573009931897,"profile":2263997393868540911,"path":11150084072982371776,"deps":[],"local":[{"CheckDepInfo":{"dep_info":"x86_64-pc-windows-msvc/debug/.fingerprint/time-core-17b148b2e499200f/dep-lib-time_core","checksum":false}}],"rustflags":[],"config":2069994364910194474,"compile_kind":9161124489350129226} \ No newline at end of file diff --git a/.tmp-check-windows/x86_64-pc-windows-msvc/debug/.fingerprint/tower-service-24c5a499258b1f52/dep-lib-tower_service b/.tmp-check-windows/x86_64-pc-windows-msvc/debug/.fingerprint/tower-service-24c5a499258b1f52/dep-lib-tower_service new file mode 100644 index 000000000..ec3cb8bfd Binary files /dev/null and b/.tmp-check-windows/x86_64-pc-windows-msvc/debug/.fingerprint/tower-service-24c5a499258b1f52/dep-lib-tower_service differ diff --git a/.tmp-check-windows/x86_64-pc-windows-msvc/debug/.fingerprint/tower-service-24c5a499258b1f52/invoked.timestamp b/.tmp-check-windows/x86_64-pc-windows-msvc/debug/.fingerprint/tower-service-24c5a499258b1f52/invoked.timestamp new file mode 100644 index 000000000..e00328da5 --- /dev/null +++ b/.tmp-check-windows/x86_64-pc-windows-msvc/debug/.fingerprint/tower-service-24c5a499258b1f52/invoked.timestamp @@ -0,0 +1 @@ +This file has an mtime of when this was started. \ No newline at end of file diff --git a/.tmp-check-windows/x86_64-pc-windows-msvc/debug/.fingerprint/tower-service-24c5a499258b1f52/lib-tower_service b/.tmp-check-windows/x86_64-pc-windows-msvc/debug/.fingerprint/tower-service-24c5a499258b1f52/lib-tower_service new file mode 100644 index 000000000..71309477e --- /dev/null +++ b/.tmp-check-windows/x86_64-pc-windows-msvc/debug/.fingerprint/tower-service-24c5a499258b1f52/lib-tower_service @@ -0,0 +1 @@ +937c79153b051d79 \ No newline at end of file diff --git a/.tmp-check-windows/x86_64-pc-windows-msvc/debug/.fingerprint/tower-service-24c5a499258b1f52/lib-tower_service.json b/.tmp-check-windows/x86_64-pc-windows-msvc/debug/.fingerprint/tower-service-24c5a499258b1f52/lib-tower_service.json new file mode 100644 index 000000000..93c3f2b0b --- /dev/null +++ b/.tmp-check-windows/x86_64-pc-windows-msvc/debug/.fingerprint/tower-service-24c5a499258b1f52/lib-tower_service.json @@ -0,0 +1 @@ +{"rustc":13850170861107434965,"features":"[]","declared_features":"[]","target":4262671303997282168,"profile":2241668132362809309,"path":6038762627850197210,"deps":[],"local":[{"CheckDepInfo":{"dep_info":"x86_64-pc-windows-msvc/debug/.fingerprint/tower-service-24c5a499258b1f52/dep-lib-tower_service","checksum":false}}],"rustflags":[],"config":2069994364910194474,"compile_kind":9161124489350129226} \ No newline at end of file diff --git a/.tmp-check-windows/x86_64-pc-windows-msvc/debug/.fingerprint/tracing-core-f90da36bb76f6319/dep-lib-tracing_core b/.tmp-check-windows/x86_64-pc-windows-msvc/debug/.fingerprint/tracing-core-f90da36bb76f6319/dep-lib-tracing_core new file mode 100644 index 000000000..ec3cb8bfd Binary files /dev/null and b/.tmp-check-windows/x86_64-pc-windows-msvc/debug/.fingerprint/tracing-core-f90da36bb76f6319/dep-lib-tracing_core differ diff --git a/.tmp-check-windows/x86_64-pc-windows-msvc/debug/.fingerprint/tracing-core-f90da36bb76f6319/invoked.timestamp b/.tmp-check-windows/x86_64-pc-windows-msvc/debug/.fingerprint/tracing-core-f90da36bb76f6319/invoked.timestamp new file mode 100644 index 000000000..e00328da5 --- /dev/null +++ b/.tmp-check-windows/x86_64-pc-windows-msvc/debug/.fingerprint/tracing-core-f90da36bb76f6319/invoked.timestamp @@ -0,0 +1 @@ +This file has an mtime of when this was started. \ No newline at end of file diff --git a/.tmp-check-windows/x86_64-pc-windows-msvc/debug/.fingerprint/tracing-core-f90da36bb76f6319/lib-tracing_core b/.tmp-check-windows/x86_64-pc-windows-msvc/debug/.fingerprint/tracing-core-f90da36bb76f6319/lib-tracing_core new file mode 100644 index 000000000..1c235cb20 --- /dev/null +++ b/.tmp-check-windows/x86_64-pc-windows-msvc/debug/.fingerprint/tracing-core-f90da36bb76f6319/lib-tracing_core @@ -0,0 +1 @@ +34f25828709c40a2 \ No newline at end of file diff --git a/.tmp-check-windows/x86_64-pc-windows-msvc/debug/.fingerprint/tracing-core-f90da36bb76f6319/lib-tracing_core.json b/.tmp-check-windows/x86_64-pc-windows-msvc/debug/.fingerprint/tracing-core-f90da36bb76f6319/lib-tracing_core.json new file mode 100644 index 000000000..710af54c4 --- /dev/null +++ b/.tmp-check-windows/x86_64-pc-windows-msvc/debug/.fingerprint/tracing-core-f90da36bb76f6319/lib-tracing_core.json @@ -0,0 +1 @@ +{"rustc":13850170861107434965,"features":"[\"default\", \"once_cell\", \"std\"]","declared_features":"[\"default\", \"once_cell\", \"std\", \"valuable\"]","target":14276081467424924844,"profile":15960269462403795582,"path":9715815495537680519,"deps":[[3722963349756955755,"once_cell",false,1922009864488026003]],"local":[{"CheckDepInfo":{"dep_info":"x86_64-pc-windows-msvc/debug/.fingerprint/tracing-core-f90da36bb76f6319/dep-lib-tracing_core","checksum":false}}],"rustflags":[],"config":2069994364910194474,"compile_kind":9161124489350129226} \ No newline at end of file diff --git a/.tmp-check-windows/x86_64-pc-windows-msvc/debug/.fingerprint/typenum-1c5a60fd73ab5557/run-build-script-build-script-build b/.tmp-check-windows/x86_64-pc-windows-msvc/debug/.fingerprint/typenum-1c5a60fd73ab5557/run-build-script-build-script-build new file mode 100644 index 000000000..e6172b1ba --- /dev/null +++ b/.tmp-check-windows/x86_64-pc-windows-msvc/debug/.fingerprint/typenum-1c5a60fd73ab5557/run-build-script-build-script-build @@ -0,0 +1 @@ +8d91103b0c653ab1 \ No newline at end of file diff --git a/.tmp-check-windows/x86_64-pc-windows-msvc/debug/.fingerprint/typenum-1c5a60fd73ab5557/run-build-script-build-script-build.json b/.tmp-check-windows/x86_64-pc-windows-msvc/debug/.fingerprint/typenum-1c5a60fd73ab5557/run-build-script-build-script-build.json new file mode 100644 index 000000000..c7de4327e --- /dev/null +++ b/.tmp-check-windows/x86_64-pc-windows-msvc/debug/.fingerprint/typenum-1c5a60fd73ab5557/run-build-script-build-script-build.json @@ -0,0 +1 @@ +{"rustc":13850170861107434965,"features":"","declared_features":"","target":0,"profile":0,"path":0,"deps":[[857979250431893282,"build_script_build",false,12539826903319902867]],"local":[{"RerunIfChanged":{"output":"x86_64-pc-windows-msvc/debug/build/typenum-1c5a60fd73ab5557/output","paths":["tests"]}}],"rustflags":[],"config":0,"compile_kind":0} \ No newline at end of file diff --git a/.tmp-check-windows/x86_64-pc-windows-msvc/debug/.fingerprint/typenum-a0883a424d17bffd/dep-lib-typenum b/.tmp-check-windows/x86_64-pc-windows-msvc/debug/.fingerprint/typenum-a0883a424d17bffd/dep-lib-typenum new file mode 100644 index 000000000..ec3cb8bfd Binary files /dev/null and b/.tmp-check-windows/x86_64-pc-windows-msvc/debug/.fingerprint/typenum-a0883a424d17bffd/dep-lib-typenum differ diff --git a/.tmp-check-windows/x86_64-pc-windows-msvc/debug/.fingerprint/typenum-a0883a424d17bffd/invoked.timestamp b/.tmp-check-windows/x86_64-pc-windows-msvc/debug/.fingerprint/typenum-a0883a424d17bffd/invoked.timestamp new file mode 100644 index 000000000..e00328da5 --- /dev/null +++ b/.tmp-check-windows/x86_64-pc-windows-msvc/debug/.fingerprint/typenum-a0883a424d17bffd/invoked.timestamp @@ -0,0 +1 @@ +This file has an mtime of when this was started. \ No newline at end of file diff --git a/.tmp-check-windows/x86_64-pc-windows-msvc/debug/.fingerprint/typenum-a0883a424d17bffd/lib-typenum b/.tmp-check-windows/x86_64-pc-windows-msvc/debug/.fingerprint/typenum-a0883a424d17bffd/lib-typenum new file mode 100644 index 000000000..00dbc2f96 --- /dev/null +++ b/.tmp-check-windows/x86_64-pc-windows-msvc/debug/.fingerprint/typenum-a0883a424d17bffd/lib-typenum @@ -0,0 +1 @@ +5274ee416e2b2e6b \ No newline at end of file diff --git a/.tmp-check-windows/x86_64-pc-windows-msvc/debug/.fingerprint/typenum-a0883a424d17bffd/lib-typenum.json b/.tmp-check-windows/x86_64-pc-windows-msvc/debug/.fingerprint/typenum-a0883a424d17bffd/lib-typenum.json new file mode 100644 index 000000000..9b5ef32fa --- /dev/null +++ b/.tmp-check-windows/x86_64-pc-windows-msvc/debug/.fingerprint/typenum-a0883a424d17bffd/lib-typenum.json @@ -0,0 +1 @@ +{"rustc":13850170861107434965,"features":"[]","declared_features":"[\"const-generics\", \"force_unix_path_separator\", \"i128\", \"no_std\", \"scale-info\", \"scale_info\", \"strict\"]","target":2349969882102649915,"profile":2241668132362809309,"path":14412297019541357903,"deps":[[857979250431893282,"build_script_build",false,12770630796567417229]],"local":[{"CheckDepInfo":{"dep_info":"x86_64-pc-windows-msvc/debug/.fingerprint/typenum-a0883a424d17bffd/dep-lib-typenum","checksum":false}}],"rustflags":[],"config":2069994364910194474,"compile_kind":9161124489350129226} \ No newline at end of file diff --git a/.tmp-check-windows/x86_64-pc-windows-msvc/debug/.fingerprint/untrusted-e2c8cbe29abdff55/dep-lib-untrusted b/.tmp-check-windows/x86_64-pc-windows-msvc/debug/.fingerprint/untrusted-e2c8cbe29abdff55/dep-lib-untrusted new file mode 100644 index 000000000..ec3cb8bfd Binary files /dev/null and b/.tmp-check-windows/x86_64-pc-windows-msvc/debug/.fingerprint/untrusted-e2c8cbe29abdff55/dep-lib-untrusted differ diff --git a/.tmp-check-windows/x86_64-pc-windows-msvc/debug/.fingerprint/untrusted-e2c8cbe29abdff55/invoked.timestamp b/.tmp-check-windows/x86_64-pc-windows-msvc/debug/.fingerprint/untrusted-e2c8cbe29abdff55/invoked.timestamp new file mode 100644 index 000000000..e00328da5 --- /dev/null +++ b/.tmp-check-windows/x86_64-pc-windows-msvc/debug/.fingerprint/untrusted-e2c8cbe29abdff55/invoked.timestamp @@ -0,0 +1 @@ +This file has an mtime of when this was started. \ No newline at end of file diff --git a/.tmp-check-windows/x86_64-pc-windows-msvc/debug/.fingerprint/untrusted-e2c8cbe29abdff55/lib-untrusted b/.tmp-check-windows/x86_64-pc-windows-msvc/debug/.fingerprint/untrusted-e2c8cbe29abdff55/lib-untrusted new file mode 100644 index 000000000..086fed5e6 --- /dev/null +++ b/.tmp-check-windows/x86_64-pc-windows-msvc/debug/.fingerprint/untrusted-e2c8cbe29abdff55/lib-untrusted @@ -0,0 +1 @@ +ffb6cf5304659af7 \ No newline at end of file diff --git a/.tmp-check-windows/x86_64-pc-windows-msvc/debug/.fingerprint/untrusted-e2c8cbe29abdff55/lib-untrusted.json b/.tmp-check-windows/x86_64-pc-windows-msvc/debug/.fingerprint/untrusted-e2c8cbe29abdff55/lib-untrusted.json new file mode 100644 index 000000000..9aca541ba --- /dev/null +++ b/.tmp-check-windows/x86_64-pc-windows-msvc/debug/.fingerprint/untrusted-e2c8cbe29abdff55/lib-untrusted.json @@ -0,0 +1 @@ +{"rustc":13850170861107434965,"features":"[]","declared_features":"[]","target":13950522111565505587,"profile":2241668132362809309,"path":989500510939922010,"deps":[],"local":[{"CheckDepInfo":{"dep_info":"x86_64-pc-windows-msvc/debug/.fingerprint/untrusted-e2c8cbe29abdff55/dep-lib-untrusted","checksum":false}}],"rustflags":[],"config":2069994364910194474,"compile_kind":9161124489350129226} \ No newline at end of file diff --git a/.tmp-check-windows/x86_64-pc-windows-msvc/debug/.fingerprint/utf16_iter-411badac6ceaeb85/dep-lib-utf16_iter b/.tmp-check-windows/x86_64-pc-windows-msvc/debug/.fingerprint/utf16_iter-411badac6ceaeb85/dep-lib-utf16_iter new file mode 100644 index 000000000..ec3cb8bfd Binary files /dev/null and b/.tmp-check-windows/x86_64-pc-windows-msvc/debug/.fingerprint/utf16_iter-411badac6ceaeb85/dep-lib-utf16_iter differ diff --git a/.tmp-check-windows/x86_64-pc-windows-msvc/debug/.fingerprint/utf16_iter-411badac6ceaeb85/invoked.timestamp b/.tmp-check-windows/x86_64-pc-windows-msvc/debug/.fingerprint/utf16_iter-411badac6ceaeb85/invoked.timestamp new file mode 100644 index 000000000..e00328da5 --- /dev/null +++ b/.tmp-check-windows/x86_64-pc-windows-msvc/debug/.fingerprint/utf16_iter-411badac6ceaeb85/invoked.timestamp @@ -0,0 +1 @@ +This file has an mtime of when this was started. \ No newline at end of file diff --git a/.tmp-check-windows/x86_64-pc-windows-msvc/debug/.fingerprint/utf16_iter-411badac6ceaeb85/lib-utf16_iter b/.tmp-check-windows/x86_64-pc-windows-msvc/debug/.fingerprint/utf16_iter-411badac6ceaeb85/lib-utf16_iter new file mode 100644 index 000000000..38e8f7e3b --- /dev/null +++ b/.tmp-check-windows/x86_64-pc-windows-msvc/debug/.fingerprint/utf16_iter-411badac6ceaeb85/lib-utf16_iter @@ -0,0 +1 @@ +3ef6c57c4ff1e4ec \ No newline at end of file diff --git a/.tmp-check-windows/x86_64-pc-windows-msvc/debug/.fingerprint/utf16_iter-411badac6ceaeb85/lib-utf16_iter.json b/.tmp-check-windows/x86_64-pc-windows-msvc/debug/.fingerprint/utf16_iter-411badac6ceaeb85/lib-utf16_iter.json new file mode 100644 index 000000000..9f7eff869 --- /dev/null +++ b/.tmp-check-windows/x86_64-pc-windows-msvc/debug/.fingerprint/utf16_iter-411badac6ceaeb85/lib-utf16_iter.json @@ -0,0 +1 @@ +{"rustc":13850170861107434965,"features":"[]","declared_features":"[]","target":9006113137700540147,"profile":2241668132362809309,"path":9384936226776063517,"deps":[],"local":[{"CheckDepInfo":{"dep_info":"x86_64-pc-windows-msvc/debug/.fingerprint/utf16_iter-411badac6ceaeb85/dep-lib-utf16_iter","checksum":false}}],"rustflags":[],"config":2069994364910194474,"compile_kind":9161124489350129226} \ No newline at end of file diff --git a/.tmp-check-windows/x86_64-pc-windows-msvc/debug/.fingerprint/utf8_iter-52b07de95ec095ba/dep-lib-utf8_iter b/.tmp-check-windows/x86_64-pc-windows-msvc/debug/.fingerprint/utf8_iter-52b07de95ec095ba/dep-lib-utf8_iter new file mode 100644 index 000000000..ec3cb8bfd Binary files /dev/null and b/.tmp-check-windows/x86_64-pc-windows-msvc/debug/.fingerprint/utf8_iter-52b07de95ec095ba/dep-lib-utf8_iter differ diff --git a/.tmp-check-windows/x86_64-pc-windows-msvc/debug/.fingerprint/utf8_iter-52b07de95ec095ba/invoked.timestamp b/.tmp-check-windows/x86_64-pc-windows-msvc/debug/.fingerprint/utf8_iter-52b07de95ec095ba/invoked.timestamp new file mode 100644 index 000000000..e00328da5 --- /dev/null +++ b/.tmp-check-windows/x86_64-pc-windows-msvc/debug/.fingerprint/utf8_iter-52b07de95ec095ba/invoked.timestamp @@ -0,0 +1 @@ +This file has an mtime of when this was started. \ No newline at end of file diff --git a/.tmp-check-windows/x86_64-pc-windows-msvc/debug/.fingerprint/utf8_iter-52b07de95ec095ba/lib-utf8_iter b/.tmp-check-windows/x86_64-pc-windows-msvc/debug/.fingerprint/utf8_iter-52b07de95ec095ba/lib-utf8_iter new file mode 100644 index 000000000..ca555d3cb --- /dev/null +++ b/.tmp-check-windows/x86_64-pc-windows-msvc/debug/.fingerprint/utf8_iter-52b07de95ec095ba/lib-utf8_iter @@ -0,0 +1 @@ +3a7b85e7c316b1cb \ No newline at end of file diff --git a/.tmp-check-windows/x86_64-pc-windows-msvc/debug/.fingerprint/utf8_iter-52b07de95ec095ba/lib-utf8_iter.json b/.tmp-check-windows/x86_64-pc-windows-msvc/debug/.fingerprint/utf8_iter-52b07de95ec095ba/lib-utf8_iter.json new file mode 100644 index 000000000..3b7f3f0af --- /dev/null +++ b/.tmp-check-windows/x86_64-pc-windows-msvc/debug/.fingerprint/utf8_iter-52b07de95ec095ba/lib-utf8_iter.json @@ -0,0 +1 @@ +{"rustc":13850170861107434965,"features":"[]","declared_features":"[]","target":6216520282702351879,"profile":2241668132362809309,"path":8137891484702525803,"deps":[],"local":[{"CheckDepInfo":{"dep_info":"x86_64-pc-windows-msvc/debug/.fingerprint/utf8_iter-52b07de95ec095ba/dep-lib-utf8_iter","checksum":false}}],"rustflags":[],"config":2069994364910194474,"compile_kind":9161124489350129226} \ No newline at end of file diff --git a/.tmp-check-windows/x86_64-pc-windows-msvc/debug/.fingerprint/windows-link-a27f7050f0a20c5f/dep-lib-windows_link b/.tmp-check-windows/x86_64-pc-windows-msvc/debug/.fingerprint/windows-link-a27f7050f0a20c5f/dep-lib-windows_link new file mode 100644 index 000000000..ec3cb8bfd Binary files /dev/null and b/.tmp-check-windows/x86_64-pc-windows-msvc/debug/.fingerprint/windows-link-a27f7050f0a20c5f/dep-lib-windows_link differ diff --git a/.tmp-check-windows/x86_64-pc-windows-msvc/debug/.fingerprint/windows-link-a27f7050f0a20c5f/invoked.timestamp b/.tmp-check-windows/x86_64-pc-windows-msvc/debug/.fingerprint/windows-link-a27f7050f0a20c5f/invoked.timestamp new file mode 100644 index 000000000..e00328da5 --- /dev/null +++ b/.tmp-check-windows/x86_64-pc-windows-msvc/debug/.fingerprint/windows-link-a27f7050f0a20c5f/invoked.timestamp @@ -0,0 +1 @@ +This file has an mtime of when this was started. \ No newline at end of file diff --git a/.tmp-check-windows/x86_64-pc-windows-msvc/debug/.fingerprint/windows-link-a27f7050f0a20c5f/lib-windows_link b/.tmp-check-windows/x86_64-pc-windows-msvc/debug/.fingerprint/windows-link-a27f7050f0a20c5f/lib-windows_link new file mode 100644 index 000000000..ea37c4852 --- /dev/null +++ b/.tmp-check-windows/x86_64-pc-windows-msvc/debug/.fingerprint/windows-link-a27f7050f0a20c5f/lib-windows_link @@ -0,0 +1 @@ +6d9c8992cd1c734c \ No newline at end of file diff --git a/.tmp-check-windows/x86_64-pc-windows-msvc/debug/.fingerprint/windows-link-a27f7050f0a20c5f/lib-windows_link.json b/.tmp-check-windows/x86_64-pc-windows-msvc/debug/.fingerprint/windows-link-a27f7050f0a20c5f/lib-windows_link.json new file mode 100644 index 000000000..469df6b14 --- /dev/null +++ b/.tmp-check-windows/x86_64-pc-windows-msvc/debug/.fingerprint/windows-link-a27f7050f0a20c5f/lib-windows_link.json @@ -0,0 +1 @@ +{"rustc":13850170861107434965,"features":"[]","declared_features":"[]","target":2558631941022679061,"profile":14106498895327635846,"path":12852811779784490133,"deps":[],"local":[{"CheckDepInfo":{"dep_info":"x86_64-pc-windows-msvc/debug/.fingerprint/windows-link-a27f7050f0a20c5f/dep-lib-windows_link","checksum":false}}],"rustflags":[],"config":2069994364910194474,"compile_kind":9161124489350129226} \ No newline at end of file diff --git a/.tmp-check-windows/x86_64-pc-windows-msvc/debug/.fingerprint/windows-link-f6430f731f37844c/dep-lib-windows_link b/.tmp-check-windows/x86_64-pc-windows-msvc/debug/.fingerprint/windows-link-f6430f731f37844c/dep-lib-windows_link new file mode 100644 index 000000000..ec3cb8bfd Binary files /dev/null and b/.tmp-check-windows/x86_64-pc-windows-msvc/debug/.fingerprint/windows-link-f6430f731f37844c/dep-lib-windows_link differ diff --git a/.tmp-check-windows/x86_64-pc-windows-msvc/debug/.fingerprint/windows-link-f6430f731f37844c/invoked.timestamp b/.tmp-check-windows/x86_64-pc-windows-msvc/debug/.fingerprint/windows-link-f6430f731f37844c/invoked.timestamp new file mode 100644 index 000000000..e00328da5 --- /dev/null +++ b/.tmp-check-windows/x86_64-pc-windows-msvc/debug/.fingerprint/windows-link-f6430f731f37844c/invoked.timestamp @@ -0,0 +1 @@ +This file has an mtime of when this was started. \ No newline at end of file diff --git a/.tmp-check-windows/x86_64-pc-windows-msvc/debug/.fingerprint/windows-link-f6430f731f37844c/lib-windows_link b/.tmp-check-windows/x86_64-pc-windows-msvc/debug/.fingerprint/windows-link-f6430f731f37844c/lib-windows_link new file mode 100644 index 000000000..225eb07d6 --- /dev/null +++ b/.tmp-check-windows/x86_64-pc-windows-msvc/debug/.fingerprint/windows-link-f6430f731f37844c/lib-windows_link @@ -0,0 +1 @@ +9b2e3ca6b1f1477a \ No newline at end of file diff --git a/.tmp-check-windows/x86_64-pc-windows-msvc/debug/.fingerprint/windows-link-f6430f731f37844c/lib-windows_link.json b/.tmp-check-windows/x86_64-pc-windows-msvc/debug/.fingerprint/windows-link-f6430f731f37844c/lib-windows_link.json new file mode 100644 index 000000000..9a804832b --- /dev/null +++ b/.tmp-check-windows/x86_64-pc-windows-msvc/debug/.fingerprint/windows-link-f6430f731f37844c/lib-windows_link.json @@ -0,0 +1 @@ +{"rustc":13850170861107434965,"features":"[]","declared_features":"[]","target":2558631941022679061,"profile":4015858038592323303,"path":8028965191426308228,"deps":[],"local":[{"CheckDepInfo":{"dep_info":"x86_64-pc-windows-msvc/debug/.fingerprint/windows-link-f6430f731f37844c/dep-lib-windows_link","checksum":false}}],"rustflags":[],"config":2069994364910194474,"compile_kind":9161124489350129226} \ No newline at end of file diff --git a/.tmp-check-windows/x86_64-pc-windows-msvc/debug/.fingerprint/windows-result-21a720bcba341419/dep-lib-windows_result b/.tmp-check-windows/x86_64-pc-windows-msvc/debug/.fingerprint/windows-result-21a720bcba341419/dep-lib-windows_result new file mode 100644 index 000000000..ec3cb8bfd Binary files /dev/null and b/.tmp-check-windows/x86_64-pc-windows-msvc/debug/.fingerprint/windows-result-21a720bcba341419/dep-lib-windows_result differ diff --git a/.tmp-check-windows/x86_64-pc-windows-msvc/debug/.fingerprint/windows-result-21a720bcba341419/invoked.timestamp b/.tmp-check-windows/x86_64-pc-windows-msvc/debug/.fingerprint/windows-result-21a720bcba341419/invoked.timestamp new file mode 100644 index 000000000..e00328da5 --- /dev/null +++ b/.tmp-check-windows/x86_64-pc-windows-msvc/debug/.fingerprint/windows-result-21a720bcba341419/invoked.timestamp @@ -0,0 +1 @@ +This file has an mtime of when this was started. \ No newline at end of file diff --git a/.tmp-check-windows/x86_64-pc-windows-msvc/debug/.fingerprint/windows-result-21a720bcba341419/lib-windows_result b/.tmp-check-windows/x86_64-pc-windows-msvc/debug/.fingerprint/windows-result-21a720bcba341419/lib-windows_result new file mode 100644 index 000000000..d198deb0e --- /dev/null +++ b/.tmp-check-windows/x86_64-pc-windows-msvc/debug/.fingerprint/windows-result-21a720bcba341419/lib-windows_result @@ -0,0 +1 @@ +d7a6ae47a0b9e9e0 \ No newline at end of file diff --git a/.tmp-check-windows/x86_64-pc-windows-msvc/debug/.fingerprint/windows-result-21a720bcba341419/lib-windows_result.json b/.tmp-check-windows/x86_64-pc-windows-msvc/debug/.fingerprint/windows-result-21a720bcba341419/lib-windows_result.json new file mode 100644 index 000000000..3c914bb30 --- /dev/null +++ b/.tmp-check-windows/x86_64-pc-windows-msvc/debug/.fingerprint/windows-result-21a720bcba341419/lib-windows_result.json @@ -0,0 +1 @@ +{"rustc":13850170861107434965,"features":"[\"default\", \"std\"]","declared_features":"[\"default\", \"std\"]","target":4443055816520199735,"profile":14106498895327635846,"path":16874201443911781853,"deps":[[11505586985402185701,"windows_link",false,5508778438456613997]],"local":[{"CheckDepInfo":{"dep_info":"x86_64-pc-windows-msvc/debug/.fingerprint/windows-result-21a720bcba341419/dep-lib-windows_result","checksum":false}}],"rustflags":[],"config":2069994364910194474,"compile_kind":9161124489350129226} \ No newline at end of file diff --git a/.tmp-check-windows/x86_64-pc-windows-msvc/debug/.fingerprint/windows-strings-48f931985cbdbaeb/dep-lib-windows_strings b/.tmp-check-windows/x86_64-pc-windows-msvc/debug/.fingerprint/windows-strings-48f931985cbdbaeb/dep-lib-windows_strings new file mode 100644 index 000000000..ec3cb8bfd Binary files /dev/null and b/.tmp-check-windows/x86_64-pc-windows-msvc/debug/.fingerprint/windows-strings-48f931985cbdbaeb/dep-lib-windows_strings differ diff --git a/.tmp-check-windows/x86_64-pc-windows-msvc/debug/.fingerprint/windows-strings-48f931985cbdbaeb/invoked.timestamp b/.tmp-check-windows/x86_64-pc-windows-msvc/debug/.fingerprint/windows-strings-48f931985cbdbaeb/invoked.timestamp new file mode 100644 index 000000000..e00328da5 --- /dev/null +++ b/.tmp-check-windows/x86_64-pc-windows-msvc/debug/.fingerprint/windows-strings-48f931985cbdbaeb/invoked.timestamp @@ -0,0 +1 @@ +This file has an mtime of when this was started. \ No newline at end of file diff --git a/.tmp-check-windows/x86_64-pc-windows-msvc/debug/.fingerprint/windows-strings-48f931985cbdbaeb/lib-windows_strings b/.tmp-check-windows/x86_64-pc-windows-msvc/debug/.fingerprint/windows-strings-48f931985cbdbaeb/lib-windows_strings new file mode 100644 index 000000000..24402e0a7 --- /dev/null +++ b/.tmp-check-windows/x86_64-pc-windows-msvc/debug/.fingerprint/windows-strings-48f931985cbdbaeb/lib-windows_strings @@ -0,0 +1 @@ +6f4b90488ca0b512 \ No newline at end of file diff --git a/.tmp-check-windows/x86_64-pc-windows-msvc/debug/.fingerprint/windows-strings-48f931985cbdbaeb/lib-windows_strings.json b/.tmp-check-windows/x86_64-pc-windows-msvc/debug/.fingerprint/windows-strings-48f931985cbdbaeb/lib-windows_strings.json new file mode 100644 index 000000000..88efcedce --- /dev/null +++ b/.tmp-check-windows/x86_64-pc-windows-msvc/debug/.fingerprint/windows-strings-48f931985cbdbaeb/lib-windows_strings.json @@ -0,0 +1 @@ +{"rustc":13850170861107434965,"features":"[\"std\"]","declared_features":"[\"default\", \"std\"]","target":11654750369304489667,"profile":14106498895327635846,"path":10018484057965701201,"deps":[[11505586985402185701,"windows_link",false,5508778438456613997]],"local":[{"CheckDepInfo":{"dep_info":"x86_64-pc-windows-msvc/debug/.fingerprint/windows-strings-48f931985cbdbaeb/dep-lib-windows_strings","checksum":false}}],"rustflags":[],"config":2069994364910194474,"compile_kind":9161124489350129226} \ No newline at end of file diff --git a/.tmp-check-windows/x86_64-pc-windows-msvc/debug/.fingerprint/windows-sys-350b46e9a7ff3f21/dep-lib-windows_sys b/.tmp-check-windows/x86_64-pc-windows-msvc/debug/.fingerprint/windows-sys-350b46e9a7ff3f21/dep-lib-windows_sys new file mode 100644 index 000000000..ec3cb8bfd Binary files /dev/null and b/.tmp-check-windows/x86_64-pc-windows-msvc/debug/.fingerprint/windows-sys-350b46e9a7ff3f21/dep-lib-windows_sys differ diff --git a/.tmp-check-windows/x86_64-pc-windows-msvc/debug/.fingerprint/windows-sys-350b46e9a7ff3f21/invoked.timestamp b/.tmp-check-windows/x86_64-pc-windows-msvc/debug/.fingerprint/windows-sys-350b46e9a7ff3f21/invoked.timestamp new file mode 100644 index 000000000..e00328da5 --- /dev/null +++ b/.tmp-check-windows/x86_64-pc-windows-msvc/debug/.fingerprint/windows-sys-350b46e9a7ff3f21/invoked.timestamp @@ -0,0 +1 @@ +This file has an mtime of when this was started. \ No newline at end of file diff --git a/.tmp-check-windows/x86_64-pc-windows-msvc/debug/.fingerprint/windows-sys-350b46e9a7ff3f21/lib-windows_sys b/.tmp-check-windows/x86_64-pc-windows-msvc/debug/.fingerprint/windows-sys-350b46e9a7ff3f21/lib-windows_sys new file mode 100644 index 000000000..f4841efd6 --- /dev/null +++ b/.tmp-check-windows/x86_64-pc-windows-msvc/debug/.fingerprint/windows-sys-350b46e9a7ff3f21/lib-windows_sys @@ -0,0 +1 @@ +ebcc5b6117a8f4c0 \ No newline at end of file diff --git a/.tmp-check-windows/x86_64-pc-windows-msvc/debug/.fingerprint/windows-sys-350b46e9a7ff3f21/lib-windows_sys.json b/.tmp-check-windows/x86_64-pc-windows-msvc/debug/.fingerprint/windows-sys-350b46e9a7ff3f21/lib-windows_sys.json new file mode 100644 index 000000000..beaf2eab7 --- /dev/null +++ b/.tmp-check-windows/x86_64-pc-windows-msvc/debug/.fingerprint/windows-sys-350b46e9a7ff3f21/lib-windows_sys.json @@ -0,0 +1 @@ +{"rustc":13850170861107434965,"features":"[\"Wdk\", \"Wdk_Foundation\", \"Wdk_Storage\", \"Wdk_Storage_FileSystem\", \"Wdk_System\", \"Wdk_System_IO\", \"Win32\", \"Win32_Foundation\", \"Win32_Globalization\", \"Win32_Graphics\", \"Win32_Graphics_Gdi\", \"Win32_Networking\", \"Win32_Networking_WinSock\", \"Win32_Security\", \"Win32_Security_Authentication\", \"Win32_Security_Authentication_Identity\", \"Win32_Security_Credentials\", \"Win32_Security_Cryptography\", \"Win32_Storage\", \"Win32_Storage_FileSystem\", \"Win32_System\", \"Win32_System_Com\", \"Win32_System_Console\", \"Win32_System_IO\", \"Win32_System_LibraryLoader\", \"Win32_System_Memory\", \"Win32_System_Pipes\", \"Win32_System_Registry\", \"Win32_System_SystemInformation\", \"Win32_System_SystemServices\", \"Win32_System_Threading\", \"Win32_System_WindowsProgramming\", \"Win32_UI\", \"Win32_UI_Shell\", \"Win32_UI_WindowsAndMessaging\", \"default\"]","declared_features":"[\"Wdk\", \"Wdk_Devices\", \"Wdk_Devices_Bluetooth\", \"Wdk_Devices_HumanInterfaceDevice\", \"Wdk_Foundation\", \"Wdk_Graphics\", \"Wdk_Graphics_Direct3D\", \"Wdk_NetworkManagement\", \"Wdk_NetworkManagement_Ndis\", \"Wdk_NetworkManagement_WindowsFilteringPlatform\", \"Wdk_Storage\", \"Wdk_Storage_FileSystem\", \"Wdk_Storage_FileSystem_Minifilters\", \"Wdk_System\", \"Wdk_System_IO\", \"Wdk_System_Memory\", \"Wdk_System_OfflineRegistry\", \"Wdk_System_Registry\", \"Wdk_System_SystemInformation\", \"Wdk_System_SystemServices\", \"Wdk_System_Threading\", \"Win32\", \"Win32_Data\", \"Win32_Data_HtmlHelp\", \"Win32_Data_RightsManagement\", \"Win32_Devices\", \"Win32_Devices_AllJoyn\", \"Win32_Devices_Beep\", \"Win32_Devices_BiometricFramework\", \"Win32_Devices_Bluetooth\", \"Win32_Devices_Cdrom\", \"Win32_Devices_Communication\", \"Win32_Devices_DeviceAndDriverInstallation\", \"Win32_Devices_DeviceQuery\", \"Win32_Devices_Display\", \"Win32_Devices_Dvd\", \"Win32_Devices_Enumeration\", \"Win32_Devices_Enumeration_Pnp\", \"Win32_Devices_Fax\", \"Win32_Devices_HumanInterfaceDevice\", \"Win32_Devices_Nfc\", \"Win32_Devices_Nfp\", \"Win32_Devices_PortableDevices\", \"Win32_Devices_Properties\", \"Win32_Devices_Pwm\", \"Win32_Devices_Sensors\", \"Win32_Devices_SerialCommunication\", \"Win32_Devices_Tapi\", \"Win32_Devices_Usb\", \"Win32_Devices_WebServicesOnDevices\", \"Win32_Foundation\", \"Win32_Gaming\", \"Win32_Globalization\", \"Win32_Graphics\", \"Win32_Graphics_Dwm\", \"Win32_Graphics_Gdi\", \"Win32_Graphics_GdiPlus\", \"Win32_Graphics_Hlsl\", \"Win32_Graphics_OpenGL\", \"Win32_Graphics_Printing\", \"Win32_Graphics_Printing_PrintTicket\", \"Win32_Management\", \"Win32_Management_MobileDeviceManagementRegistration\", \"Win32_Media\", \"Win32_Media_Audio\", \"Win32_Media_DxMediaObjects\", \"Win32_Media_KernelStreaming\", \"Win32_Media_Multimedia\", \"Win32_Media_Streaming\", \"Win32_Media_WindowsMediaFormat\", \"Win32_NetworkManagement\", \"Win32_NetworkManagement_Dhcp\", \"Win32_NetworkManagement_Dns\", \"Win32_NetworkManagement_InternetConnectionWizard\", \"Win32_NetworkManagement_IpHelper\", \"Win32_NetworkManagement_Multicast\", \"Win32_NetworkManagement_Ndis\", \"Win32_NetworkManagement_NetBios\", \"Win32_NetworkManagement_NetManagement\", \"Win32_NetworkManagement_NetShell\", \"Win32_NetworkManagement_NetworkDiagnosticsFramework\", \"Win32_NetworkManagement_P2P\", \"Win32_NetworkManagement_QoS\", \"Win32_NetworkManagement_Rras\", \"Win32_NetworkManagement_Snmp\", \"Win32_NetworkManagement_WNet\", \"Win32_NetworkManagement_WebDav\", \"Win32_NetworkManagement_WiFi\", \"Win32_NetworkManagement_WindowsConnectionManager\", \"Win32_NetworkManagement_WindowsFilteringPlatform\", \"Win32_NetworkManagement_WindowsFirewall\", \"Win32_NetworkManagement_WindowsNetworkVirtualization\", \"Win32_Networking\", \"Win32_Networking_ActiveDirectory\", \"Win32_Networking_Clustering\", \"Win32_Networking_HttpServer\", \"Win32_Networking_Ldap\", \"Win32_Networking_WebSocket\", \"Win32_Networking_WinHttp\", \"Win32_Networking_WinInet\", \"Win32_Networking_WinSock\", \"Win32_Networking_WindowsWebServices\", \"Win32_Security\", \"Win32_Security_AppLocker\", \"Win32_Security_Authentication\", \"Win32_Security_Authentication_Identity\", \"Win32_Security_Authorization\", \"Win32_Security_Credentials\", \"Win32_Security_Cryptography\", \"Win32_Security_Cryptography_Catalog\", \"Win32_Security_Cryptography_Certificates\", \"Win32_Security_Cryptography_Sip\", \"Win32_Security_Cryptography_UI\", \"Win32_Security_DiagnosticDataQuery\", \"Win32_Security_DirectoryServices\", \"Win32_Security_EnterpriseData\", \"Win32_Security_ExtensibleAuthenticationProtocol\", \"Win32_Security_Isolation\", \"Win32_Security_LicenseProtection\", \"Win32_Security_NetworkAccessProtection\", \"Win32_Security_WinTrust\", \"Win32_Security_WinWlx\", \"Win32_Storage\", \"Win32_Storage_Cabinets\", \"Win32_Storage_CloudFilters\", \"Win32_Storage_Compression\", \"Win32_Storage_DistributedFileSystem\", \"Win32_Storage_FileHistory\", \"Win32_Storage_FileSystem\", \"Win32_Storage_Imapi\", \"Win32_Storage_IndexServer\", \"Win32_Storage_InstallableFileSystems\", \"Win32_Storage_IscsiDisc\", \"Win32_Storage_Jet\", \"Win32_Storage_Nvme\", \"Win32_Storage_OfflineFiles\", \"Win32_Storage_OperationRecorder\", \"Win32_Storage_Packaging\", \"Win32_Storage_Packaging_Appx\", \"Win32_Storage_ProjectedFileSystem\", \"Win32_Storage_StructuredStorage\", \"Win32_Storage_Vhd\", \"Win32_Storage_Xps\", \"Win32_System\", \"Win32_System_AddressBook\", \"Win32_System_Antimalware\", \"Win32_System_ApplicationInstallationAndServicing\", \"Win32_System_ApplicationVerifier\", \"Win32_System_ClrHosting\", \"Win32_System_Com\", \"Win32_System_Com_Marshal\", \"Win32_System_Com_StructuredStorage\", \"Win32_System_Com_Urlmon\", \"Win32_System_ComponentServices\", \"Win32_System_Console\", \"Win32_System_CorrelationVector\", \"Win32_System_DataExchange\", \"Win32_System_DeploymentServices\", \"Win32_System_DeveloperLicensing\", \"Win32_System_Diagnostics\", \"Win32_System_Diagnostics_Ceip\", \"Win32_System_Diagnostics_Debug\", \"Win32_System_Diagnostics_Debug_Extensions\", \"Win32_System_Diagnostics_Etw\", \"Win32_System_Diagnostics_ProcessSnapshotting\", \"Win32_System_Diagnostics_ToolHelp\", \"Win32_System_Diagnostics_TraceLogging\", \"Win32_System_DistributedTransactionCoordinator\", \"Win32_System_Environment\", \"Win32_System_ErrorReporting\", \"Win32_System_EventCollector\", \"Win32_System_EventLog\", \"Win32_System_EventNotificationService\", \"Win32_System_GroupPolicy\", \"Win32_System_HostCompute\", \"Win32_System_HostComputeNetwork\", \"Win32_System_HostComputeSystem\", \"Win32_System_Hypervisor\", \"Win32_System_IO\", \"Win32_System_Iis\", \"Win32_System_Ioctl\", \"Win32_System_JobObjects\", \"Win32_System_Js\", \"Win32_System_Kernel\", \"Win32_System_LibraryLoader\", \"Win32_System_Mailslots\", \"Win32_System_Mapi\", \"Win32_System_Memory\", \"Win32_System_Memory_NonVolatile\", \"Win32_System_MessageQueuing\", \"Win32_System_MixedReality\", \"Win32_System_Ole\", \"Win32_System_PasswordManagement\", \"Win32_System_Performance\", \"Win32_System_Performance_HardwareCounterProfiling\", \"Win32_System_Pipes\", \"Win32_System_Power\", \"Win32_System_ProcessStatus\", \"Win32_System_Recovery\", \"Win32_System_Registry\", \"Win32_System_RemoteDesktop\", \"Win32_System_RemoteManagement\", \"Win32_System_RestartManager\", \"Win32_System_Restore\", \"Win32_System_Rpc\", \"Win32_System_Search\", \"Win32_System_Search_Common\", \"Win32_System_SecurityCenter\", \"Win32_System_Services\", \"Win32_System_SetupAndMigration\", \"Win32_System_Shutdown\", \"Win32_System_StationsAndDesktops\", \"Win32_System_SubsystemForLinux\", \"Win32_System_SystemInformation\", \"Win32_System_SystemServices\", \"Win32_System_Threading\", \"Win32_System_Time\", \"Win32_System_TpmBaseServices\", \"Win32_System_UserAccessLogging\", \"Win32_System_Variant\", \"Win32_System_VirtualDosMachines\", \"Win32_System_WindowsProgramming\", \"Win32_System_Wmi\", \"Win32_UI\", \"Win32_UI_Accessibility\", \"Win32_UI_ColorSystem\", \"Win32_UI_Controls\", \"Win32_UI_Controls_Dialogs\", \"Win32_UI_HiDpi\", \"Win32_UI_Input\", \"Win32_UI_Input_Ime\", \"Win32_UI_Input_KeyboardAndMouse\", \"Win32_UI_Input_Pointer\", \"Win32_UI_Input_Touch\", \"Win32_UI_Input_XboxController\", \"Win32_UI_InteractionContext\", \"Win32_UI_Magnification\", \"Win32_UI_Shell\", \"Win32_UI_Shell_Common\", \"Win32_UI_Shell_PropertiesSystem\", \"Win32_UI_TabletPC\", \"Win32_UI_TextServices\", \"Win32_UI_WindowsAndMessaging\", \"Win32_Web\", \"Win32_Web_InternetExplorer\", \"default\", \"docs\"]","target":7306158158326771440,"profile":4015858038592323303,"path":7256382573897381744,"deps":[[6959378045035346538,"windows_link",false,8811276941274132123]],"local":[{"CheckDepInfo":{"dep_info":"x86_64-pc-windows-msvc/debug/.fingerprint/windows-sys-350b46e9a7ff3f21/dep-lib-windows_sys","checksum":false}}],"rustflags":[],"config":2069994364910194474,"compile_kind":9161124489350129226} \ No newline at end of file diff --git a/.tmp-check-windows/x86_64-pc-windows-msvc/debug/.fingerprint/windows-sys-e1498cb96446f0e4/dep-lib-windows_sys b/.tmp-check-windows/x86_64-pc-windows-msvc/debug/.fingerprint/windows-sys-e1498cb96446f0e4/dep-lib-windows_sys new file mode 100644 index 000000000..ec3cb8bfd Binary files /dev/null and b/.tmp-check-windows/x86_64-pc-windows-msvc/debug/.fingerprint/windows-sys-e1498cb96446f0e4/dep-lib-windows_sys differ diff --git a/.tmp-check-windows/x86_64-pc-windows-msvc/debug/.fingerprint/windows-sys-e1498cb96446f0e4/invoked.timestamp b/.tmp-check-windows/x86_64-pc-windows-msvc/debug/.fingerprint/windows-sys-e1498cb96446f0e4/invoked.timestamp new file mode 100644 index 000000000..e00328da5 --- /dev/null +++ b/.tmp-check-windows/x86_64-pc-windows-msvc/debug/.fingerprint/windows-sys-e1498cb96446f0e4/invoked.timestamp @@ -0,0 +1 @@ +This file has an mtime of when this was started. \ No newline at end of file diff --git a/.tmp-check-windows/x86_64-pc-windows-msvc/debug/.fingerprint/windows-sys-e1498cb96446f0e4/lib-windows_sys b/.tmp-check-windows/x86_64-pc-windows-msvc/debug/.fingerprint/windows-sys-e1498cb96446f0e4/lib-windows_sys new file mode 100644 index 000000000..a1fa09f2b --- /dev/null +++ b/.tmp-check-windows/x86_64-pc-windows-msvc/debug/.fingerprint/windows-sys-e1498cb96446f0e4/lib-windows_sys @@ -0,0 +1 @@ +b1b3023ee6c9ad6c \ No newline at end of file diff --git a/.tmp-check-windows/x86_64-pc-windows-msvc/debug/.fingerprint/windows-sys-e1498cb96446f0e4/lib-windows_sys.json b/.tmp-check-windows/x86_64-pc-windows-msvc/debug/.fingerprint/windows-sys-e1498cb96446f0e4/lib-windows_sys.json new file mode 100644 index 000000000..9792390b7 --- /dev/null +++ b/.tmp-check-windows/x86_64-pc-windows-msvc/debug/.fingerprint/windows-sys-e1498cb96446f0e4/lib-windows_sys.json @@ -0,0 +1 @@ +{"rustc":13850170861107434965,"features":"[\"Win32\", \"Win32_Foundation\", \"Win32_Globalization\", \"Win32_Graphics\", \"Win32_Graphics_Dwm\", \"Win32_Graphics_Gdi\", \"Win32_Networking\", \"Win32_Networking_WinSock\", \"Win32_Security\", \"Win32_Security_Credentials\", \"Win32_Storage\", \"Win32_Storage_FileSystem\", \"Win32_System\", \"Win32_System_Com\", \"Win32_System_DataExchange\", \"Win32_System_IO\", \"Win32_System_LibraryLoader\", \"Win32_System_Memory\", \"Win32_System_Ole\", \"Win32_System_SystemInformation\", \"Win32_System_SystemServices\", \"Win32_System_Threading\", \"Win32_System_WindowsProgramming\", \"Win32_UI\", \"Win32_UI_Accessibility\", \"Win32_UI_Controls\", \"Win32_UI_HiDpi\", \"Win32_UI_Input\", \"Win32_UI_Input_KeyboardAndMouse\", \"Win32_UI_Shell\", \"Win32_UI_Shell_Common\", \"Win32_UI_WindowsAndMessaging\", \"default\"]","declared_features":"[\"Wdk\", \"Wdk_Devices\", \"Wdk_Devices_Bluetooth\", \"Wdk_Devices_HumanInterfaceDevice\", \"Wdk_Foundation\", \"Wdk_Graphics\", \"Wdk_Graphics_Direct3D\", \"Wdk_NetworkManagement\", \"Wdk_NetworkManagement_Ndis\", \"Wdk_NetworkManagement_WindowsFilteringPlatform\", \"Wdk_Storage\", \"Wdk_Storage_FileSystem\", \"Wdk_Storage_FileSystem_Minifilters\", \"Wdk_System\", \"Wdk_System_IO\", \"Wdk_System_Memory\", \"Wdk_System_OfflineRegistry\", \"Wdk_System_Registry\", \"Wdk_System_SystemInformation\", \"Wdk_System_SystemServices\", \"Wdk_System_Threading\", \"Win32\", \"Win32_Data\", \"Win32_Data_HtmlHelp\", \"Win32_Data_RightsManagement\", \"Win32_Devices\", \"Win32_Devices_AllJoyn\", \"Win32_Devices_Beep\", \"Win32_Devices_BiometricFramework\", \"Win32_Devices_Bluetooth\", \"Win32_Devices_Cdrom\", \"Win32_Devices_Communication\", \"Win32_Devices_DeviceAndDriverInstallation\", \"Win32_Devices_DeviceQuery\", \"Win32_Devices_Display\", \"Win32_Devices_Dvd\", \"Win32_Devices_Enumeration\", \"Win32_Devices_Enumeration_Pnp\", \"Win32_Devices_Fax\", \"Win32_Devices_HumanInterfaceDevice\", \"Win32_Devices_Nfc\", \"Win32_Devices_Nfp\", \"Win32_Devices_PortableDevices\", \"Win32_Devices_Properties\", \"Win32_Devices_Pwm\", \"Win32_Devices_Sensors\", \"Win32_Devices_SerialCommunication\", \"Win32_Devices_Tapi\", \"Win32_Devices_Usb\", \"Win32_Devices_WebServicesOnDevices\", \"Win32_Foundation\", \"Win32_Gaming\", \"Win32_Globalization\", \"Win32_Graphics\", \"Win32_Graphics_Dwm\", \"Win32_Graphics_Gdi\", \"Win32_Graphics_GdiPlus\", \"Win32_Graphics_Hlsl\", \"Win32_Graphics_OpenGL\", \"Win32_Graphics_Printing\", \"Win32_Graphics_Printing_PrintTicket\", \"Win32_Management\", \"Win32_Management_MobileDeviceManagementRegistration\", \"Win32_Media\", \"Win32_Media_Audio\", \"Win32_Media_DxMediaObjects\", \"Win32_Media_KernelStreaming\", \"Win32_Media_Multimedia\", \"Win32_Media_Streaming\", \"Win32_Media_WindowsMediaFormat\", \"Win32_NetworkManagement\", \"Win32_NetworkManagement_Dhcp\", \"Win32_NetworkManagement_Dns\", \"Win32_NetworkManagement_InternetConnectionWizard\", \"Win32_NetworkManagement_IpHelper\", \"Win32_NetworkManagement_Multicast\", \"Win32_NetworkManagement_Ndis\", \"Win32_NetworkManagement_NetBios\", \"Win32_NetworkManagement_NetManagement\", \"Win32_NetworkManagement_NetShell\", \"Win32_NetworkManagement_NetworkDiagnosticsFramework\", \"Win32_NetworkManagement_P2P\", \"Win32_NetworkManagement_QoS\", \"Win32_NetworkManagement_Rras\", \"Win32_NetworkManagement_Snmp\", \"Win32_NetworkManagement_WNet\", \"Win32_NetworkManagement_WebDav\", \"Win32_NetworkManagement_WiFi\", \"Win32_NetworkManagement_WindowsConnectionManager\", \"Win32_NetworkManagement_WindowsFilteringPlatform\", \"Win32_NetworkManagement_WindowsFirewall\", \"Win32_NetworkManagement_WindowsNetworkVirtualization\", \"Win32_Networking\", \"Win32_Networking_ActiveDirectory\", \"Win32_Networking_Clustering\", \"Win32_Networking_HttpServer\", \"Win32_Networking_Ldap\", \"Win32_Networking_WebSocket\", \"Win32_Networking_WinHttp\", \"Win32_Networking_WinInet\", \"Win32_Networking_WinSock\", \"Win32_Networking_WindowsWebServices\", \"Win32_Security\", \"Win32_Security_AppLocker\", \"Win32_Security_Authentication\", \"Win32_Security_Authentication_Identity\", \"Win32_Security_Authorization\", \"Win32_Security_Credentials\", \"Win32_Security_Cryptography\", \"Win32_Security_Cryptography_Catalog\", \"Win32_Security_Cryptography_Certificates\", \"Win32_Security_Cryptography_Sip\", \"Win32_Security_Cryptography_UI\", \"Win32_Security_DiagnosticDataQuery\", \"Win32_Security_DirectoryServices\", \"Win32_Security_EnterpriseData\", \"Win32_Security_ExtensibleAuthenticationProtocol\", \"Win32_Security_Isolation\", \"Win32_Security_LicenseProtection\", \"Win32_Security_NetworkAccessProtection\", \"Win32_Security_WinTrust\", \"Win32_Security_WinWlx\", \"Win32_Storage\", \"Win32_Storage_Cabinets\", \"Win32_Storage_CloudFilters\", \"Win32_Storage_Compression\", \"Win32_Storage_DistributedFileSystem\", \"Win32_Storage_FileHistory\", \"Win32_Storage_FileSystem\", \"Win32_Storage_Imapi\", \"Win32_Storage_IndexServer\", \"Win32_Storage_InstallableFileSystems\", \"Win32_Storage_IscsiDisc\", \"Win32_Storage_Jet\", \"Win32_Storage_Nvme\", \"Win32_Storage_OfflineFiles\", \"Win32_Storage_OperationRecorder\", \"Win32_Storage_Packaging\", \"Win32_Storage_Packaging_Appx\", \"Win32_Storage_ProjectedFileSystem\", \"Win32_Storage_StructuredStorage\", \"Win32_Storage_Vhd\", \"Win32_Storage_Xps\", \"Win32_System\", \"Win32_System_AddressBook\", \"Win32_System_Antimalware\", \"Win32_System_ApplicationInstallationAndServicing\", \"Win32_System_ApplicationVerifier\", \"Win32_System_ClrHosting\", \"Win32_System_Com\", \"Win32_System_Com_Marshal\", \"Win32_System_Com_StructuredStorage\", \"Win32_System_Com_Urlmon\", \"Win32_System_ComponentServices\", \"Win32_System_Console\", \"Win32_System_CorrelationVector\", \"Win32_System_DataExchange\", \"Win32_System_DeploymentServices\", \"Win32_System_DeveloperLicensing\", \"Win32_System_Diagnostics\", \"Win32_System_Diagnostics_Ceip\", \"Win32_System_Diagnostics_Debug\", \"Win32_System_Diagnostics_Debug_Extensions\", \"Win32_System_Diagnostics_Etw\", \"Win32_System_Diagnostics_ProcessSnapshotting\", \"Win32_System_Diagnostics_ToolHelp\", \"Win32_System_Diagnostics_TraceLogging\", \"Win32_System_DistributedTransactionCoordinator\", \"Win32_System_Environment\", \"Win32_System_ErrorReporting\", \"Win32_System_EventCollector\", \"Win32_System_EventLog\", \"Win32_System_EventNotificationService\", \"Win32_System_GroupPolicy\", \"Win32_System_HostCompute\", \"Win32_System_HostComputeNetwork\", \"Win32_System_HostComputeSystem\", \"Win32_System_Hypervisor\", \"Win32_System_IO\", \"Win32_System_Iis\", \"Win32_System_Ioctl\", \"Win32_System_JobObjects\", \"Win32_System_Js\", \"Win32_System_Kernel\", \"Win32_System_LibraryLoader\", \"Win32_System_Mailslots\", \"Win32_System_Mapi\", \"Win32_System_Memory\", \"Win32_System_Memory_NonVolatile\", \"Win32_System_MessageQueuing\", \"Win32_System_MixedReality\", \"Win32_System_Ole\", \"Win32_System_PasswordManagement\", \"Win32_System_Performance\", \"Win32_System_Performance_HardwareCounterProfiling\", \"Win32_System_Pipes\", \"Win32_System_Power\", \"Win32_System_ProcessStatus\", \"Win32_System_Recovery\", \"Win32_System_Registry\", \"Win32_System_RemoteDesktop\", \"Win32_System_RemoteManagement\", \"Win32_System_RestartManager\", \"Win32_System_Restore\", \"Win32_System_Rpc\", \"Win32_System_Search\", \"Win32_System_Search_Common\", \"Win32_System_SecurityCenter\", \"Win32_System_Services\", \"Win32_System_SetupAndMigration\", \"Win32_System_Shutdown\", \"Win32_System_StationsAndDesktops\", \"Win32_System_SubsystemForLinux\", \"Win32_System_SystemInformation\", \"Win32_System_SystemServices\", \"Win32_System_Threading\", \"Win32_System_Time\", \"Win32_System_TpmBaseServices\", \"Win32_System_UserAccessLogging\", \"Win32_System_Variant\", \"Win32_System_VirtualDosMachines\", \"Win32_System_WindowsProgramming\", \"Win32_System_Wmi\", \"Win32_UI\", \"Win32_UI_Accessibility\", \"Win32_UI_ColorSystem\", \"Win32_UI_Controls\", \"Win32_UI_Controls_Dialogs\", \"Win32_UI_HiDpi\", \"Win32_UI_Input\", \"Win32_UI_Input_Ime\", \"Win32_UI_Input_KeyboardAndMouse\", \"Win32_UI_Input_Pointer\", \"Win32_UI_Input_Touch\", \"Win32_UI_Input_XboxController\", \"Win32_UI_InteractionContext\", \"Win32_UI_Magnification\", \"Win32_UI_Shell\", \"Win32_UI_Shell_Common\", \"Win32_UI_Shell_PropertiesSystem\", \"Win32_UI_TabletPC\", \"Win32_UI_TextServices\", \"Win32_UI_WindowsAndMessaging\", \"Win32_Web\", \"Win32_Web_InternetExplorer\", \"default\", \"docs\"]","target":7306158158326771440,"profile":14106498895327635846,"path":16546198242035050998,"deps":[[758057172878111074,"windows_targets",false,7566343764986467001]],"local":[{"CheckDepInfo":{"dep_info":"x86_64-pc-windows-msvc/debug/.fingerprint/windows-sys-e1498cb96446f0e4/dep-lib-windows_sys","checksum":false}}],"rustflags":[],"config":2069994364910194474,"compile_kind":9161124489350129226} \ No newline at end of file diff --git a/.tmp-check-windows/x86_64-pc-windows-msvc/debug/.fingerprint/windows-targets-599f14682482add4/dep-lib-windows_targets b/.tmp-check-windows/x86_64-pc-windows-msvc/debug/.fingerprint/windows-targets-599f14682482add4/dep-lib-windows_targets new file mode 100644 index 000000000..ec3cb8bfd Binary files /dev/null and b/.tmp-check-windows/x86_64-pc-windows-msvc/debug/.fingerprint/windows-targets-599f14682482add4/dep-lib-windows_targets differ diff --git a/.tmp-check-windows/x86_64-pc-windows-msvc/debug/.fingerprint/windows-targets-599f14682482add4/invoked.timestamp b/.tmp-check-windows/x86_64-pc-windows-msvc/debug/.fingerprint/windows-targets-599f14682482add4/invoked.timestamp new file mode 100644 index 000000000..e00328da5 --- /dev/null +++ b/.tmp-check-windows/x86_64-pc-windows-msvc/debug/.fingerprint/windows-targets-599f14682482add4/invoked.timestamp @@ -0,0 +1 @@ +This file has an mtime of when this was started. \ No newline at end of file diff --git a/.tmp-check-windows/x86_64-pc-windows-msvc/debug/.fingerprint/windows-targets-599f14682482add4/lib-windows_targets b/.tmp-check-windows/x86_64-pc-windows-msvc/debug/.fingerprint/windows-targets-599f14682482add4/lib-windows_targets new file mode 100644 index 000000000..10fe654df --- /dev/null +++ b/.tmp-check-windows/x86_64-pc-windows-msvc/debug/.fingerprint/windows-targets-599f14682482add4/lib-windows_targets @@ -0,0 +1 @@ +b99282e8900d0169 \ No newline at end of file diff --git a/.tmp-check-windows/x86_64-pc-windows-msvc/debug/.fingerprint/windows-targets-599f14682482add4/lib-windows_targets.json b/.tmp-check-windows/x86_64-pc-windows-msvc/debug/.fingerprint/windows-targets-599f14682482add4/lib-windows_targets.json new file mode 100644 index 000000000..18f5268f4 --- /dev/null +++ b/.tmp-check-windows/x86_64-pc-windows-msvc/debug/.fingerprint/windows-targets-599f14682482add4/lib-windows_targets.json @@ -0,0 +1 @@ +{"rustc":13850170861107434965,"features":"[]","declared_features":"[]","target":12110220207092481134,"profile":4015858038592323303,"path":1246559642453917609,"deps":[[4937765985372346599,"windows_x86_64_msvc",false,5290746923764437801]],"local":[{"CheckDepInfo":{"dep_info":"x86_64-pc-windows-msvc/debug/.fingerprint/windows-targets-599f14682482add4/dep-lib-windows_targets","checksum":false}}],"rustflags":[],"config":2069994364910194474,"compile_kind":9161124489350129226} \ No newline at end of file diff --git a/.tmp-check-windows/x86_64-pc-windows-msvc/debug/.fingerprint/windows-targets-8045cca9d729b55e/dep-lib-windows_targets b/.tmp-check-windows/x86_64-pc-windows-msvc/debug/.fingerprint/windows-targets-8045cca9d729b55e/dep-lib-windows_targets new file mode 100644 index 000000000..ec3cb8bfd Binary files /dev/null and b/.tmp-check-windows/x86_64-pc-windows-msvc/debug/.fingerprint/windows-targets-8045cca9d729b55e/dep-lib-windows_targets differ diff --git a/.tmp-check-windows/x86_64-pc-windows-msvc/debug/.fingerprint/windows-targets-8045cca9d729b55e/invoked.timestamp b/.tmp-check-windows/x86_64-pc-windows-msvc/debug/.fingerprint/windows-targets-8045cca9d729b55e/invoked.timestamp new file mode 100644 index 000000000..e00328da5 --- /dev/null +++ b/.tmp-check-windows/x86_64-pc-windows-msvc/debug/.fingerprint/windows-targets-8045cca9d729b55e/invoked.timestamp @@ -0,0 +1 @@ +This file has an mtime of when this was started. \ No newline at end of file diff --git a/.tmp-check-windows/x86_64-pc-windows-msvc/debug/.fingerprint/windows-targets-8045cca9d729b55e/lib-windows_targets b/.tmp-check-windows/x86_64-pc-windows-msvc/debug/.fingerprint/windows-targets-8045cca9d729b55e/lib-windows_targets new file mode 100644 index 000000000..8db891c49 --- /dev/null +++ b/.tmp-check-windows/x86_64-pc-windows-msvc/debug/.fingerprint/windows-targets-8045cca9d729b55e/lib-windows_targets @@ -0,0 +1 @@ +af5c128b9f5df2d3 \ No newline at end of file diff --git a/.tmp-check-windows/x86_64-pc-windows-msvc/debug/.fingerprint/windows-targets-8045cca9d729b55e/lib-windows_targets.json b/.tmp-check-windows/x86_64-pc-windows-msvc/debug/.fingerprint/windows-targets-8045cca9d729b55e/lib-windows_targets.json new file mode 100644 index 000000000..e3d7e5da7 --- /dev/null +++ b/.tmp-check-windows/x86_64-pc-windows-msvc/debug/.fingerprint/windows-targets-8045cca9d729b55e/lib-windows_targets.json @@ -0,0 +1 @@ +{"rustc":13850170861107434965,"features":"[]","declared_features":"[]","target":12110220207092481134,"profile":1458419625204861421,"path":17151241112225586481,"deps":[[6520462792382062950,"windows_x86_64_msvc",false,3840996430213354984]],"local":[{"CheckDepInfo":{"dep_info":"x86_64-pc-windows-msvc/debug/.fingerprint/windows-targets-8045cca9d729b55e/dep-lib-windows_targets","checksum":false}}],"rustflags":[],"config":2069994364910194474,"compile_kind":9161124489350129226} \ No newline at end of file diff --git a/.tmp-check-windows/x86_64-pc-windows-msvc/debug/.fingerprint/windows_x86_64_msvc-995ce0beecadde94/run-build-script-build-script-build b/.tmp-check-windows/x86_64-pc-windows-msvc/debug/.fingerprint/windows_x86_64_msvc-995ce0beecadde94/run-build-script-build-script-build new file mode 100644 index 000000000..ac6d887ea --- /dev/null +++ b/.tmp-check-windows/x86_64-pc-windows-msvc/debug/.fingerprint/windows_x86_64_msvc-995ce0beecadde94/run-build-script-build-script-build @@ -0,0 +1 @@ +f9835b92c98ac658 \ No newline at end of file diff --git a/.tmp-check-windows/x86_64-pc-windows-msvc/debug/.fingerprint/windows_x86_64_msvc-995ce0beecadde94/run-build-script-build-script-build.json b/.tmp-check-windows/x86_64-pc-windows-msvc/debug/.fingerprint/windows_x86_64_msvc-995ce0beecadde94/run-build-script-build-script-build.json new file mode 100644 index 000000000..9f6ea8c02 --- /dev/null +++ b/.tmp-check-windows/x86_64-pc-windows-msvc/debug/.fingerprint/windows_x86_64_msvc-995ce0beecadde94/run-build-script-build-script-build.json @@ -0,0 +1 @@ +{"rustc":13850170861107434965,"features":"","declared_features":"","target":0,"profile":0,"path":0,"deps":[[4937765985372346599,"build_script_build",false,1580166628892205862]],"local":[{"Precalculated":"0.53.1"}],"rustflags":[],"config":0,"compile_kind":0} \ No newline at end of file diff --git a/.tmp-check-windows/x86_64-pc-windows-msvc/debug/.fingerprint/windows_x86_64_msvc-b8d0ed6d1d2d1861/dep-lib-windows_x86_64_msvc b/.tmp-check-windows/x86_64-pc-windows-msvc/debug/.fingerprint/windows_x86_64_msvc-b8d0ed6d1d2d1861/dep-lib-windows_x86_64_msvc new file mode 100644 index 000000000..ec3cb8bfd Binary files /dev/null and b/.tmp-check-windows/x86_64-pc-windows-msvc/debug/.fingerprint/windows_x86_64_msvc-b8d0ed6d1d2d1861/dep-lib-windows_x86_64_msvc differ diff --git a/.tmp-check-windows/x86_64-pc-windows-msvc/debug/.fingerprint/windows_x86_64_msvc-b8d0ed6d1d2d1861/invoked.timestamp b/.tmp-check-windows/x86_64-pc-windows-msvc/debug/.fingerprint/windows_x86_64_msvc-b8d0ed6d1d2d1861/invoked.timestamp new file mode 100644 index 000000000..e00328da5 --- /dev/null +++ b/.tmp-check-windows/x86_64-pc-windows-msvc/debug/.fingerprint/windows_x86_64_msvc-b8d0ed6d1d2d1861/invoked.timestamp @@ -0,0 +1 @@ +This file has an mtime of when this was started. \ No newline at end of file diff --git a/.tmp-check-windows/x86_64-pc-windows-msvc/debug/.fingerprint/windows_x86_64_msvc-b8d0ed6d1d2d1861/lib-windows_x86_64_msvc b/.tmp-check-windows/x86_64-pc-windows-msvc/debug/.fingerprint/windows_x86_64_msvc-b8d0ed6d1d2d1861/lib-windows_x86_64_msvc new file mode 100644 index 000000000..f869f0df9 --- /dev/null +++ b/.tmp-check-windows/x86_64-pc-windows-msvc/debug/.fingerprint/windows_x86_64_msvc-b8d0ed6d1d2d1861/lib-windows_x86_64_msvc @@ -0,0 +1 @@ +295378ab4b826c49 \ No newline at end of file diff --git a/.tmp-check-windows/x86_64-pc-windows-msvc/debug/.fingerprint/windows_x86_64_msvc-b8d0ed6d1d2d1861/lib-windows_x86_64_msvc.json b/.tmp-check-windows/x86_64-pc-windows-msvc/debug/.fingerprint/windows_x86_64_msvc-b8d0ed6d1d2d1861/lib-windows_x86_64_msvc.json new file mode 100644 index 000000000..ef08c5497 --- /dev/null +++ b/.tmp-check-windows/x86_64-pc-windows-msvc/debug/.fingerprint/windows_x86_64_msvc-b8d0ed6d1d2d1861/lib-windows_x86_64_msvc.json @@ -0,0 +1 @@ +{"rustc":13850170861107434965,"features":"[]","declared_features":"[]","target":3306771437825829530,"profile":4015858038592323303,"path":2961388561474918070,"deps":[[4937765985372346599,"build_script_build",false,6396952919074898937]],"local":[{"CheckDepInfo":{"dep_info":"x86_64-pc-windows-msvc/debug/.fingerprint/windows_x86_64_msvc-b8d0ed6d1d2d1861/dep-lib-windows_x86_64_msvc","checksum":false}}],"rustflags":[],"config":2069994364910194474,"compile_kind":9161124489350129226} \ No newline at end of file diff --git a/.tmp-check-windows/x86_64-pc-windows-msvc/debug/.fingerprint/windows_x86_64_msvc-c5b3a5a0346e0fe7/run-build-script-build-script-build b/.tmp-check-windows/x86_64-pc-windows-msvc/debug/.fingerprint/windows_x86_64_msvc-c5b3a5a0346e0fe7/run-build-script-build-script-build new file mode 100644 index 000000000..115be06c6 --- /dev/null +++ b/.tmp-check-windows/x86_64-pc-windows-msvc/debug/.fingerprint/windows_x86_64_msvc-c5b3a5a0346e0fe7/run-build-script-build-script-build @@ -0,0 +1 @@ +9df9fb189d5d3466 \ No newline at end of file diff --git a/.tmp-check-windows/x86_64-pc-windows-msvc/debug/.fingerprint/windows_x86_64_msvc-c5b3a5a0346e0fe7/run-build-script-build-script-build.json b/.tmp-check-windows/x86_64-pc-windows-msvc/debug/.fingerprint/windows_x86_64_msvc-c5b3a5a0346e0fe7/run-build-script-build-script-build.json new file mode 100644 index 000000000..96dc3fbeb --- /dev/null +++ b/.tmp-check-windows/x86_64-pc-windows-msvc/debug/.fingerprint/windows_x86_64_msvc-c5b3a5a0346e0fe7/run-build-script-build-script-build.json @@ -0,0 +1 @@ +{"rustc":13850170861107434965,"features":"","declared_features":"","target":0,"profile":0,"path":0,"deps":[[6520462792382062950,"build_script_build",false,9583169797583284397]],"local":[{"Precalculated":"0.52.6"}],"rustflags":[],"config":0,"compile_kind":0} \ No newline at end of file diff --git a/.tmp-check-windows/x86_64-pc-windows-msvc/debug/.fingerprint/windows_x86_64_msvc-f72ea594af6116cf/dep-lib-windows_x86_64_msvc b/.tmp-check-windows/x86_64-pc-windows-msvc/debug/.fingerprint/windows_x86_64_msvc-f72ea594af6116cf/dep-lib-windows_x86_64_msvc new file mode 100644 index 000000000..ec3cb8bfd Binary files /dev/null and b/.tmp-check-windows/x86_64-pc-windows-msvc/debug/.fingerprint/windows_x86_64_msvc-f72ea594af6116cf/dep-lib-windows_x86_64_msvc differ diff --git a/.tmp-check-windows/x86_64-pc-windows-msvc/debug/.fingerprint/windows_x86_64_msvc-f72ea594af6116cf/invoked.timestamp b/.tmp-check-windows/x86_64-pc-windows-msvc/debug/.fingerprint/windows_x86_64_msvc-f72ea594af6116cf/invoked.timestamp new file mode 100644 index 000000000..e00328da5 --- /dev/null +++ b/.tmp-check-windows/x86_64-pc-windows-msvc/debug/.fingerprint/windows_x86_64_msvc-f72ea594af6116cf/invoked.timestamp @@ -0,0 +1 @@ +This file has an mtime of when this was started. \ No newline at end of file diff --git a/.tmp-check-windows/x86_64-pc-windows-msvc/debug/.fingerprint/windows_x86_64_msvc-f72ea594af6116cf/lib-windows_x86_64_msvc b/.tmp-check-windows/x86_64-pc-windows-msvc/debug/.fingerprint/windows_x86_64_msvc-f72ea594af6116cf/lib-windows_x86_64_msvc new file mode 100644 index 000000000..7c72ccc77 --- /dev/null +++ b/.tmp-check-windows/x86_64-pc-windows-msvc/debug/.fingerprint/windows_x86_64_msvc-f72ea594af6116cf/lib-windows_x86_64_msvc @@ -0,0 +1 @@ +e815691ee7f54d35 \ No newline at end of file diff --git a/.tmp-check-windows/x86_64-pc-windows-msvc/debug/.fingerprint/windows_x86_64_msvc-f72ea594af6116cf/lib-windows_x86_64_msvc.json b/.tmp-check-windows/x86_64-pc-windows-msvc/debug/.fingerprint/windows_x86_64_msvc-f72ea594af6116cf/lib-windows_x86_64_msvc.json new file mode 100644 index 000000000..635033c1a --- /dev/null +++ b/.tmp-check-windows/x86_64-pc-windows-msvc/debug/.fingerprint/windows_x86_64_msvc-f72ea594af6116cf/lib-windows_x86_64_msvc.json @@ -0,0 +1 @@ +{"rustc":13850170861107434965,"features":"[]","declared_features":"[]","target":3306771437825829530,"profile":2241668132362809309,"path":9001337562139759863,"deps":[[6520462792382062950,"build_script_build",false,7364614219968018845]],"local":[{"CheckDepInfo":{"dep_info":"x86_64-pc-windows-msvc/debug/.fingerprint/windows_x86_64_msvc-f72ea594af6116cf/dep-lib-windows_x86_64_msvc","checksum":false}}],"rustflags":[],"config":2069994364910194474,"compile_kind":9161124489350129226} \ No newline at end of file diff --git a/.tmp-check-windows/x86_64-pc-windows-msvc/debug/.fingerprint/write16-61eb410e7bee75d5/dep-lib-write16 b/.tmp-check-windows/x86_64-pc-windows-msvc/debug/.fingerprint/write16-61eb410e7bee75d5/dep-lib-write16 new file mode 100644 index 000000000..ec3cb8bfd Binary files /dev/null and b/.tmp-check-windows/x86_64-pc-windows-msvc/debug/.fingerprint/write16-61eb410e7bee75d5/dep-lib-write16 differ diff --git a/.tmp-check-windows/x86_64-pc-windows-msvc/debug/.fingerprint/write16-61eb410e7bee75d5/invoked.timestamp b/.tmp-check-windows/x86_64-pc-windows-msvc/debug/.fingerprint/write16-61eb410e7bee75d5/invoked.timestamp new file mode 100644 index 000000000..e00328da5 --- /dev/null +++ b/.tmp-check-windows/x86_64-pc-windows-msvc/debug/.fingerprint/write16-61eb410e7bee75d5/invoked.timestamp @@ -0,0 +1 @@ +This file has an mtime of when this was started. \ No newline at end of file diff --git a/.tmp-check-windows/x86_64-pc-windows-msvc/debug/.fingerprint/write16-61eb410e7bee75d5/lib-write16 b/.tmp-check-windows/x86_64-pc-windows-msvc/debug/.fingerprint/write16-61eb410e7bee75d5/lib-write16 new file mode 100644 index 000000000..7ccdeb4a1 --- /dev/null +++ b/.tmp-check-windows/x86_64-pc-windows-msvc/debug/.fingerprint/write16-61eb410e7bee75d5/lib-write16 @@ -0,0 +1 @@ +fc61ccfc72852ef8 \ No newline at end of file diff --git a/.tmp-check-windows/x86_64-pc-windows-msvc/debug/.fingerprint/write16-61eb410e7bee75d5/lib-write16.json b/.tmp-check-windows/x86_64-pc-windows-msvc/debug/.fingerprint/write16-61eb410e7bee75d5/lib-write16.json new file mode 100644 index 000000000..b84cbe2c4 --- /dev/null +++ b/.tmp-check-windows/x86_64-pc-windows-msvc/debug/.fingerprint/write16-61eb410e7bee75d5/lib-write16.json @@ -0,0 +1 @@ +{"rustc":13850170861107434965,"features":"[\"alloc\"]","declared_features":"[\"alloc\", \"arrayvec\", \"smallvec\"]","target":978619995687283540,"profile":2241668132362809309,"path":7120525237533557792,"deps":[],"local":[{"CheckDepInfo":{"dep_info":"x86_64-pc-windows-msvc/debug/.fingerprint/write16-61eb410e7bee75d5/dep-lib-write16","checksum":false}}],"rustflags":[],"config":2069994364910194474,"compile_kind":9161124489350129226} \ No newline at end of file diff --git a/.tmp-check-windows/x86_64-pc-windows-msvc/debug/.fingerprint/writeable-e9e67b9743be3a74/dep-lib-writeable b/.tmp-check-windows/x86_64-pc-windows-msvc/debug/.fingerprint/writeable-e9e67b9743be3a74/dep-lib-writeable new file mode 100644 index 000000000..ec3cb8bfd Binary files /dev/null and b/.tmp-check-windows/x86_64-pc-windows-msvc/debug/.fingerprint/writeable-e9e67b9743be3a74/dep-lib-writeable differ diff --git a/.tmp-check-windows/x86_64-pc-windows-msvc/debug/.fingerprint/writeable-e9e67b9743be3a74/invoked.timestamp b/.tmp-check-windows/x86_64-pc-windows-msvc/debug/.fingerprint/writeable-e9e67b9743be3a74/invoked.timestamp new file mode 100644 index 000000000..e00328da5 --- /dev/null +++ b/.tmp-check-windows/x86_64-pc-windows-msvc/debug/.fingerprint/writeable-e9e67b9743be3a74/invoked.timestamp @@ -0,0 +1 @@ +This file has an mtime of when this was started. \ No newline at end of file diff --git a/.tmp-check-windows/x86_64-pc-windows-msvc/debug/.fingerprint/writeable-e9e67b9743be3a74/lib-writeable b/.tmp-check-windows/x86_64-pc-windows-msvc/debug/.fingerprint/writeable-e9e67b9743be3a74/lib-writeable new file mode 100644 index 000000000..d4e56fb35 --- /dev/null +++ b/.tmp-check-windows/x86_64-pc-windows-msvc/debug/.fingerprint/writeable-e9e67b9743be3a74/lib-writeable @@ -0,0 +1 @@ +56ad3abf76c38f0b \ No newline at end of file diff --git a/.tmp-check-windows/x86_64-pc-windows-msvc/debug/.fingerprint/writeable-e9e67b9743be3a74/lib-writeable.json b/.tmp-check-windows/x86_64-pc-windows-msvc/debug/.fingerprint/writeable-e9e67b9743be3a74/lib-writeable.json new file mode 100644 index 000000000..c484362dd --- /dev/null +++ b/.tmp-check-windows/x86_64-pc-windows-msvc/debug/.fingerprint/writeable-e9e67b9743be3a74/lib-writeable.json @@ -0,0 +1 @@ +{"rustc":13850170861107434965,"features":"[\"alloc\"]","declared_features":"[\"alloc\", \"default\", \"either\"]","target":6209224040855486982,"profile":2241668132362809309,"path":8085662737133398328,"deps":[],"local":[{"CheckDepInfo":{"dep_info":"x86_64-pc-windows-msvc/debug/.fingerprint/writeable-e9e67b9743be3a74/dep-lib-writeable","checksum":false}}],"rustflags":[],"config":2069994364910194474,"compile_kind":9161124489350129226} \ No newline at end of file diff --git a/.tmp-check-windows/x86_64-pc-windows-msvc/debug/.fingerprint/zerocopy-14fc192b4b0dd1d9/dep-lib-zerocopy b/.tmp-check-windows/x86_64-pc-windows-msvc/debug/.fingerprint/zerocopy-14fc192b4b0dd1d9/dep-lib-zerocopy new file mode 100644 index 000000000..ec3cb8bfd Binary files /dev/null and b/.tmp-check-windows/x86_64-pc-windows-msvc/debug/.fingerprint/zerocopy-14fc192b4b0dd1d9/dep-lib-zerocopy differ diff --git a/.tmp-check-windows/x86_64-pc-windows-msvc/debug/.fingerprint/zerocopy-14fc192b4b0dd1d9/invoked.timestamp b/.tmp-check-windows/x86_64-pc-windows-msvc/debug/.fingerprint/zerocopy-14fc192b4b0dd1d9/invoked.timestamp new file mode 100644 index 000000000..e00328da5 --- /dev/null +++ b/.tmp-check-windows/x86_64-pc-windows-msvc/debug/.fingerprint/zerocopy-14fc192b4b0dd1d9/invoked.timestamp @@ -0,0 +1 @@ +This file has an mtime of when this was started. \ No newline at end of file diff --git a/.tmp-check-windows/x86_64-pc-windows-msvc/debug/.fingerprint/zerocopy-14fc192b4b0dd1d9/lib-zerocopy b/.tmp-check-windows/x86_64-pc-windows-msvc/debug/.fingerprint/zerocopy-14fc192b4b0dd1d9/lib-zerocopy new file mode 100644 index 000000000..753d4ee64 --- /dev/null +++ b/.tmp-check-windows/x86_64-pc-windows-msvc/debug/.fingerprint/zerocopy-14fc192b4b0dd1d9/lib-zerocopy @@ -0,0 +1 @@ +a9439d8c7600f9ae \ No newline at end of file diff --git a/.tmp-check-windows/x86_64-pc-windows-msvc/debug/.fingerprint/zerocopy-14fc192b4b0dd1d9/lib-zerocopy.json b/.tmp-check-windows/x86_64-pc-windows-msvc/debug/.fingerprint/zerocopy-14fc192b4b0dd1d9/lib-zerocopy.json new file mode 100644 index 000000000..0fdb04dd2 --- /dev/null +++ b/.tmp-check-windows/x86_64-pc-windows-msvc/debug/.fingerprint/zerocopy-14fc192b4b0dd1d9/lib-zerocopy.json @@ -0,0 +1 @@ +{"rustc":13850170861107434965,"features":"[\"simd\"]","declared_features":"[\"__internal_use_only_features_that_work_on_stable\", \"alloc\", \"derive\", \"float-nightly\", \"simd\", \"simd-nightly\", \"std\", \"zerocopy-derive\"]","target":3084901215544504908,"profile":2241668132362809309,"path":16575134283669177744,"deps":[[4878717189156408352,"build_script_build",false,8561256280736978106]],"local":[{"CheckDepInfo":{"dep_info":"x86_64-pc-windows-msvc/debug/.fingerprint/zerocopy-14fc192b4b0dd1d9/dep-lib-zerocopy","checksum":false}}],"rustflags":[],"config":2069994364910194474,"compile_kind":9161124489350129226} \ No newline at end of file diff --git a/.tmp-check-windows/x86_64-pc-windows-msvc/debug/.fingerprint/zerocopy-aab0c00b4914f297/run-build-script-build-script-build b/.tmp-check-windows/x86_64-pc-windows-msvc/debug/.fingerprint/zerocopy-aab0c00b4914f297/run-build-script-build-script-build new file mode 100644 index 000000000..df0f84802 --- /dev/null +++ b/.tmp-check-windows/x86_64-pc-windows-msvc/debug/.fingerprint/zerocopy-aab0c00b4914f297/run-build-script-build-script-build @@ -0,0 +1 @@ +bad468543ab1cf76 \ No newline at end of file diff --git a/.tmp-check-windows/x86_64-pc-windows-msvc/debug/.fingerprint/zerocopy-aab0c00b4914f297/run-build-script-build-script-build.json b/.tmp-check-windows/x86_64-pc-windows-msvc/debug/.fingerprint/zerocopy-aab0c00b4914f297/run-build-script-build-script-build.json new file mode 100644 index 000000000..35c048061 --- /dev/null +++ b/.tmp-check-windows/x86_64-pc-windows-msvc/debug/.fingerprint/zerocopy-aab0c00b4914f297/run-build-script-build-script-build.json @@ -0,0 +1 @@ +{"rustc":13850170861107434965,"features":"","declared_features":"","target":0,"profile":0,"path":0,"deps":[[4878717189156408352,"build_script_build",false,12609339611077374058]],"local":[{"RerunIfChanged":{"output":"x86_64-pc-windows-msvc/debug/build/zerocopy-aab0c00b4914f297/output","paths":["build.rs","Cargo.toml"]}}],"rustflags":[],"config":0,"compile_kind":0} \ No newline at end of file diff --git a/.tmp-check-windows/x86_64-pc-windows-msvc/debug/.fingerprint/zeroize-f5ce34c3eee9e52c/dep-lib-zeroize b/.tmp-check-windows/x86_64-pc-windows-msvc/debug/.fingerprint/zeroize-f5ce34c3eee9e52c/dep-lib-zeroize new file mode 100644 index 000000000..ec3cb8bfd Binary files /dev/null and b/.tmp-check-windows/x86_64-pc-windows-msvc/debug/.fingerprint/zeroize-f5ce34c3eee9e52c/dep-lib-zeroize differ diff --git a/.tmp-check-windows/x86_64-pc-windows-msvc/debug/.fingerprint/zeroize-f5ce34c3eee9e52c/invoked.timestamp b/.tmp-check-windows/x86_64-pc-windows-msvc/debug/.fingerprint/zeroize-f5ce34c3eee9e52c/invoked.timestamp new file mode 100644 index 000000000..e00328da5 --- /dev/null +++ b/.tmp-check-windows/x86_64-pc-windows-msvc/debug/.fingerprint/zeroize-f5ce34c3eee9e52c/invoked.timestamp @@ -0,0 +1 @@ +This file has an mtime of when this was started. \ No newline at end of file diff --git a/.tmp-check-windows/x86_64-pc-windows-msvc/debug/.fingerprint/zeroize-f5ce34c3eee9e52c/lib-zeroize b/.tmp-check-windows/x86_64-pc-windows-msvc/debug/.fingerprint/zeroize-f5ce34c3eee9e52c/lib-zeroize new file mode 100644 index 000000000..3b8762376 --- /dev/null +++ b/.tmp-check-windows/x86_64-pc-windows-msvc/debug/.fingerprint/zeroize-f5ce34c3eee9e52c/lib-zeroize @@ -0,0 +1 @@ +a579f8881d0e175d \ No newline at end of file diff --git a/.tmp-check-windows/x86_64-pc-windows-msvc/debug/.fingerprint/zeroize-f5ce34c3eee9e52c/lib-zeroize.json b/.tmp-check-windows/x86_64-pc-windows-msvc/debug/.fingerprint/zeroize-f5ce34c3eee9e52c/lib-zeroize.json new file mode 100644 index 000000000..4340ec473 --- /dev/null +++ b/.tmp-check-windows/x86_64-pc-windows-msvc/debug/.fingerprint/zeroize-f5ce34c3eee9e52c/lib-zeroize.json @@ -0,0 +1 @@ +{"rustc":13850170861107434965,"features":"[\"alloc\", \"default\"]","declared_features":"[\"aarch64\", \"alloc\", \"default\", \"derive\", \"serde\", \"simd\", \"std\", \"zeroize_derive\"]","target":12859466896652407160,"profile":2241668132362809309,"path":1800808744175042647,"deps":[],"local":[{"CheckDepInfo":{"dep_info":"x86_64-pc-windows-msvc/debug/.fingerprint/zeroize-f5ce34c3eee9e52c/dep-lib-zeroize","checksum":false}}],"rustflags":[],"config":2069994364910194474,"compile_kind":9161124489350129226} \ No newline at end of file diff --git a/.tmp-check-windows/x86_64-pc-windows-msvc/debug/.fingerprint/zmij-c5fdde5403450856/dep-lib-zmij b/.tmp-check-windows/x86_64-pc-windows-msvc/debug/.fingerprint/zmij-c5fdde5403450856/dep-lib-zmij new file mode 100644 index 000000000..ec3cb8bfd Binary files /dev/null and b/.tmp-check-windows/x86_64-pc-windows-msvc/debug/.fingerprint/zmij-c5fdde5403450856/dep-lib-zmij differ diff --git a/.tmp-check-windows/x86_64-pc-windows-msvc/debug/.fingerprint/zmij-c5fdde5403450856/invoked.timestamp b/.tmp-check-windows/x86_64-pc-windows-msvc/debug/.fingerprint/zmij-c5fdde5403450856/invoked.timestamp new file mode 100644 index 000000000..e00328da5 --- /dev/null +++ b/.tmp-check-windows/x86_64-pc-windows-msvc/debug/.fingerprint/zmij-c5fdde5403450856/invoked.timestamp @@ -0,0 +1 @@ +This file has an mtime of when this was started. \ No newline at end of file diff --git a/.tmp-check-windows/x86_64-pc-windows-msvc/debug/.fingerprint/zmij-c5fdde5403450856/lib-zmij b/.tmp-check-windows/x86_64-pc-windows-msvc/debug/.fingerprint/zmij-c5fdde5403450856/lib-zmij new file mode 100644 index 000000000..c0dd4a96b --- /dev/null +++ b/.tmp-check-windows/x86_64-pc-windows-msvc/debug/.fingerprint/zmij-c5fdde5403450856/lib-zmij @@ -0,0 +1 @@ +9d9194e89281d9ad \ No newline at end of file diff --git a/.tmp-check-windows/x86_64-pc-windows-msvc/debug/.fingerprint/zmij-c5fdde5403450856/lib-zmij.json b/.tmp-check-windows/x86_64-pc-windows-msvc/debug/.fingerprint/zmij-c5fdde5403450856/lib-zmij.json new file mode 100644 index 000000000..3cbb3f19c --- /dev/null +++ b/.tmp-check-windows/x86_64-pc-windows-msvc/debug/.fingerprint/zmij-c5fdde5403450856/lib-zmij.json @@ -0,0 +1 @@ +{"rustc":13850170861107434965,"features":"[]","declared_features":"[\"no-panic\"]","target":16603507647234574737,"profile":2241668132362809309,"path":5884773658754602411,"deps":[[12347024475581975995,"build_script_build",false,8153254284796207429]],"local":[{"CheckDepInfo":{"dep_info":"x86_64-pc-windows-msvc/debug/.fingerprint/zmij-c5fdde5403450856/dep-lib-zmij","checksum":false}}],"rustflags":[],"config":2069994364910194474,"compile_kind":9161124489350129226} \ No newline at end of file diff --git a/.tmp-check-windows/x86_64-pc-windows-msvc/debug/.fingerprint/zmij-cc4a98facfe6d33c/run-build-script-build-script-build b/.tmp-check-windows/x86_64-pc-windows-msvc/debug/.fingerprint/zmij-cc4a98facfe6d33c/run-build-script-build-script-build new file mode 100644 index 000000000..28a2d7ccd --- /dev/null +++ b/.tmp-check-windows/x86_64-pc-windows-msvc/debug/.fingerprint/zmij-cc4a98facfe6d33c/run-build-script-build-script-build @@ -0,0 +1 @@ +45a1b500932d2671 \ No newline at end of file diff --git a/.tmp-check-windows/x86_64-pc-windows-msvc/debug/.fingerprint/zmij-cc4a98facfe6d33c/run-build-script-build-script-build.json b/.tmp-check-windows/x86_64-pc-windows-msvc/debug/.fingerprint/zmij-cc4a98facfe6d33c/run-build-script-build-script-build.json new file mode 100644 index 000000000..dd3573c40 --- /dev/null +++ b/.tmp-check-windows/x86_64-pc-windows-msvc/debug/.fingerprint/zmij-cc4a98facfe6d33c/run-build-script-build-script-build.json @@ -0,0 +1 @@ +{"rustc":13850170861107434965,"features":"","declared_features":"","target":0,"profile":0,"path":0,"deps":[[12347024475581975995,"build_script_build",false,11261839570347122083]],"local":[{"RerunIfChanged":{"output":"x86_64-pc-windows-msvc/debug/build/zmij-cc4a98facfe6d33c/output","paths":["build.rs"]}}],"rustflags":[],"config":0,"compile_kind":0} \ No newline at end of file diff --git a/.tmp-check-windows/x86_64-pc-windows-msvc/debug/build/crc32fast-f6f87bc31cc392b8/invoked.timestamp b/.tmp-check-windows/x86_64-pc-windows-msvc/debug/build/crc32fast-f6f87bc31cc392b8/invoked.timestamp new file mode 100644 index 000000000..e00328da5 --- /dev/null +++ b/.tmp-check-windows/x86_64-pc-windows-msvc/debug/build/crc32fast-f6f87bc31cc392b8/invoked.timestamp @@ -0,0 +1 @@ +This file has an mtime of when this was started. \ No newline at end of file diff --git a/.tmp-check-windows/x86_64-pc-windows-msvc/debug/build/crc32fast-f6f87bc31cc392b8/output b/.tmp-check-windows/x86_64-pc-windows-msvc/debug/build/crc32fast-f6f87bc31cc392b8/output new file mode 100644 index 000000000..a21ae73b4 --- /dev/null +++ b/.tmp-check-windows/x86_64-pc-windows-msvc/debug/build/crc32fast-f6f87bc31cc392b8/output @@ -0,0 +1,2 @@ +cargo:rustc-cfg=stable_arm_crc32_intrinsics +cargo:rustc-check-cfg=cfg(stable_arm_crc32_intrinsics) diff --git a/.tmp-check-windows/x86_64-pc-windows-msvc/debug/build/crc32fast-f6f87bc31cc392b8/root-output b/.tmp-check-windows/x86_64-pc-windows-msvc/debug/build/crc32fast-f6f87bc31cc392b8/root-output new file mode 100644 index 000000000..5227b1c37 --- /dev/null +++ b/.tmp-check-windows/x86_64-pc-windows-msvc/debug/build/crc32fast-f6f87bc31cc392b8/root-output @@ -0,0 +1 @@ +/Users/coso/Documents/dev/ai/aiclientproxy/lime/.tmp-check-windows/x86_64-pc-windows-msvc/debug/build/crc32fast-f6f87bc31cc392b8/out \ No newline at end of file diff --git a/.tmp-check-windows/x86_64-pc-windows-msvc/debug/build/crc32fast-f6f87bc31cc392b8/stderr b/.tmp-check-windows/x86_64-pc-windows-msvc/debug/build/crc32fast-f6f87bc31cc392b8/stderr new file mode 100644 index 000000000..e69de29bb diff --git a/.tmp-check-windows/x86_64-pc-windows-msvc/debug/build/generic-array-0119a9d8114f2ac8/invoked.timestamp b/.tmp-check-windows/x86_64-pc-windows-msvc/debug/build/generic-array-0119a9d8114f2ac8/invoked.timestamp new file mode 100644 index 000000000..e00328da5 --- /dev/null +++ b/.tmp-check-windows/x86_64-pc-windows-msvc/debug/build/generic-array-0119a9d8114f2ac8/invoked.timestamp @@ -0,0 +1 @@ +This file has an mtime of when this was started. \ No newline at end of file diff --git a/.tmp-check-windows/x86_64-pc-windows-msvc/debug/build/generic-array-0119a9d8114f2ac8/output b/.tmp-check-windows/x86_64-pc-windows-msvc/debug/build/generic-array-0119a9d8114f2ac8/output new file mode 100644 index 000000000..a67c3a810 --- /dev/null +++ b/.tmp-check-windows/x86_64-pc-windows-msvc/debug/build/generic-array-0119a9d8114f2ac8/output @@ -0,0 +1 @@ +cargo:rustc-cfg=relaxed_coherence diff --git a/.tmp-check-windows/x86_64-pc-windows-msvc/debug/build/generic-array-0119a9d8114f2ac8/root-output b/.tmp-check-windows/x86_64-pc-windows-msvc/debug/build/generic-array-0119a9d8114f2ac8/root-output new file mode 100644 index 000000000..e49db6d5e --- /dev/null +++ b/.tmp-check-windows/x86_64-pc-windows-msvc/debug/build/generic-array-0119a9d8114f2ac8/root-output @@ -0,0 +1 @@ +/Users/coso/Documents/dev/ai/aiclientproxy/lime/.tmp-check-windows/x86_64-pc-windows-msvc/debug/build/generic-array-0119a9d8114f2ac8/out \ No newline at end of file diff --git a/.tmp-check-windows/x86_64-pc-windows-msvc/debug/build/generic-array-0119a9d8114f2ac8/stderr b/.tmp-check-windows/x86_64-pc-windows-msvc/debug/build/generic-array-0119a9d8114f2ac8/stderr new file mode 100644 index 000000000..e69de29bb diff --git a/.tmp-check-windows/x86_64-pc-windows-msvc/debug/build/getrandom-258e9f886933aa75/invoked.timestamp b/.tmp-check-windows/x86_64-pc-windows-msvc/debug/build/getrandom-258e9f886933aa75/invoked.timestamp new file mode 100644 index 000000000..e00328da5 --- /dev/null +++ b/.tmp-check-windows/x86_64-pc-windows-msvc/debug/build/getrandom-258e9f886933aa75/invoked.timestamp @@ -0,0 +1 @@ +This file has an mtime of when this was started. \ No newline at end of file diff --git a/.tmp-check-windows/x86_64-pc-windows-msvc/debug/build/getrandom-258e9f886933aa75/output b/.tmp-check-windows/x86_64-pc-windows-msvc/debug/build/getrandom-258e9f886933aa75/output new file mode 100644 index 000000000..d15ba9ab7 --- /dev/null +++ b/.tmp-check-windows/x86_64-pc-windows-msvc/debug/build/getrandom-258e9f886933aa75/output @@ -0,0 +1 @@ +cargo:rerun-if-changed=build.rs diff --git a/.tmp-check-windows/x86_64-pc-windows-msvc/debug/build/getrandom-258e9f886933aa75/root-output b/.tmp-check-windows/x86_64-pc-windows-msvc/debug/build/getrandom-258e9f886933aa75/root-output new file mode 100644 index 000000000..366ed4a0b --- /dev/null +++ b/.tmp-check-windows/x86_64-pc-windows-msvc/debug/build/getrandom-258e9f886933aa75/root-output @@ -0,0 +1 @@ +/Users/coso/Documents/dev/ai/aiclientproxy/lime/.tmp-check-windows/x86_64-pc-windows-msvc/debug/build/getrandom-258e9f886933aa75/out \ No newline at end of file diff --git a/.tmp-check-windows/x86_64-pc-windows-msvc/debug/build/getrandom-258e9f886933aa75/stderr b/.tmp-check-windows/x86_64-pc-windows-msvc/debug/build/getrandom-258e9f886933aa75/stderr new file mode 100644 index 000000000..e69de29bb diff --git a/.tmp-check-windows/x86_64-pc-windows-msvc/debug/build/httparse-5264894e3d1ba2b1/invoked.timestamp b/.tmp-check-windows/x86_64-pc-windows-msvc/debug/build/httparse-5264894e3d1ba2b1/invoked.timestamp new file mode 100644 index 000000000..e00328da5 --- /dev/null +++ b/.tmp-check-windows/x86_64-pc-windows-msvc/debug/build/httparse-5264894e3d1ba2b1/invoked.timestamp @@ -0,0 +1 @@ +This file has an mtime of when this was started. \ No newline at end of file diff --git a/.tmp-check-windows/x86_64-pc-windows-msvc/debug/build/httparse-5264894e3d1ba2b1/output b/.tmp-check-windows/x86_64-pc-windows-msvc/debug/build/httparse-5264894e3d1ba2b1/output new file mode 100644 index 000000000..aac2d6a81 --- /dev/null +++ b/.tmp-check-windows/x86_64-pc-windows-msvc/debug/build/httparse-5264894e3d1ba2b1/output @@ -0,0 +1,2 @@ +cargo:rustc-cfg=httparse_simd_neon_intrinsics +cargo:rustc-cfg=httparse_simd diff --git a/.tmp-check-windows/x86_64-pc-windows-msvc/debug/build/httparse-5264894e3d1ba2b1/root-output b/.tmp-check-windows/x86_64-pc-windows-msvc/debug/build/httparse-5264894e3d1ba2b1/root-output new file mode 100644 index 000000000..2d9709efb --- /dev/null +++ b/.tmp-check-windows/x86_64-pc-windows-msvc/debug/build/httparse-5264894e3d1ba2b1/root-output @@ -0,0 +1 @@ +/Users/coso/Documents/dev/ai/aiclientproxy/lime/.tmp-check-windows/x86_64-pc-windows-msvc/debug/build/httparse-5264894e3d1ba2b1/out \ No newline at end of file diff --git a/.tmp-check-windows/x86_64-pc-windows-msvc/debug/build/httparse-5264894e3d1ba2b1/stderr b/.tmp-check-windows/x86_64-pc-windows-msvc/debug/build/httparse-5264894e3d1ba2b1/stderr new file mode 100644 index 000000000..e69de29bb diff --git a/.tmp-check-windows/x86_64-pc-windows-msvc/debug/build/icu_normalizer_data-52549a9cc94ff528/invoked.timestamp b/.tmp-check-windows/x86_64-pc-windows-msvc/debug/build/icu_normalizer_data-52549a9cc94ff528/invoked.timestamp new file mode 100644 index 000000000..e00328da5 --- /dev/null +++ b/.tmp-check-windows/x86_64-pc-windows-msvc/debug/build/icu_normalizer_data-52549a9cc94ff528/invoked.timestamp @@ -0,0 +1 @@ +This file has an mtime of when this was started. \ No newline at end of file diff --git a/.tmp-check-windows/x86_64-pc-windows-msvc/debug/build/icu_normalizer_data-52549a9cc94ff528/output b/.tmp-check-windows/x86_64-pc-windows-msvc/debug/build/icu_normalizer_data-52549a9cc94ff528/output new file mode 100644 index 000000000..30ced5292 --- /dev/null +++ b/.tmp-check-windows/x86_64-pc-windows-msvc/debug/build/icu_normalizer_data-52549a9cc94ff528/output @@ -0,0 +1,2 @@ +cargo:rerun-if-env-changed=ICU4X_DATA_DIR +cargo:rustc-check-cfg=cfg(icu4c_enable_renaming) diff --git a/.tmp-check-windows/x86_64-pc-windows-msvc/debug/build/icu_normalizer_data-52549a9cc94ff528/root-output b/.tmp-check-windows/x86_64-pc-windows-msvc/debug/build/icu_normalizer_data-52549a9cc94ff528/root-output new file mode 100644 index 000000000..4db7a77fb --- /dev/null +++ b/.tmp-check-windows/x86_64-pc-windows-msvc/debug/build/icu_normalizer_data-52549a9cc94ff528/root-output @@ -0,0 +1 @@ +/Users/coso/Documents/dev/ai/aiclientproxy/lime/.tmp-check-windows/x86_64-pc-windows-msvc/debug/build/icu_normalizer_data-52549a9cc94ff528/out \ No newline at end of file diff --git a/.tmp-check-windows/x86_64-pc-windows-msvc/debug/build/icu_normalizer_data-52549a9cc94ff528/stderr b/.tmp-check-windows/x86_64-pc-windows-msvc/debug/build/icu_normalizer_data-52549a9cc94ff528/stderr new file mode 100644 index 000000000..e69de29bb diff --git a/.tmp-check-windows/x86_64-pc-windows-msvc/debug/build/icu_properties_data-6605f5b613379fcd/invoked.timestamp b/.tmp-check-windows/x86_64-pc-windows-msvc/debug/build/icu_properties_data-6605f5b613379fcd/invoked.timestamp new file mode 100644 index 000000000..e00328da5 --- /dev/null +++ b/.tmp-check-windows/x86_64-pc-windows-msvc/debug/build/icu_properties_data-6605f5b613379fcd/invoked.timestamp @@ -0,0 +1 @@ +This file has an mtime of when this was started. \ No newline at end of file diff --git a/.tmp-check-windows/x86_64-pc-windows-msvc/debug/build/icu_properties_data-6605f5b613379fcd/output b/.tmp-check-windows/x86_64-pc-windows-msvc/debug/build/icu_properties_data-6605f5b613379fcd/output new file mode 100644 index 000000000..30ced5292 --- /dev/null +++ b/.tmp-check-windows/x86_64-pc-windows-msvc/debug/build/icu_properties_data-6605f5b613379fcd/output @@ -0,0 +1,2 @@ +cargo:rerun-if-env-changed=ICU4X_DATA_DIR +cargo:rustc-check-cfg=cfg(icu4c_enable_renaming) diff --git a/.tmp-check-windows/x86_64-pc-windows-msvc/debug/build/icu_properties_data-6605f5b613379fcd/root-output b/.tmp-check-windows/x86_64-pc-windows-msvc/debug/build/icu_properties_data-6605f5b613379fcd/root-output new file mode 100644 index 000000000..02e8c56d8 --- /dev/null +++ b/.tmp-check-windows/x86_64-pc-windows-msvc/debug/build/icu_properties_data-6605f5b613379fcd/root-output @@ -0,0 +1 @@ +/Users/coso/Documents/dev/ai/aiclientproxy/lime/.tmp-check-windows/x86_64-pc-windows-msvc/debug/build/icu_properties_data-6605f5b613379fcd/out \ No newline at end of file diff --git a/.tmp-check-windows/x86_64-pc-windows-msvc/debug/build/icu_properties_data-6605f5b613379fcd/stderr b/.tmp-check-windows/x86_64-pc-windows-msvc/debug/build/icu_properties_data-6605f5b613379fcd/stderr new file mode 100644 index 000000000..e69de29bb diff --git a/.tmp-check-windows/x86_64-pc-windows-msvc/debug/build/libc-1defb07ea4562b86/invoked.timestamp b/.tmp-check-windows/x86_64-pc-windows-msvc/debug/build/libc-1defb07ea4562b86/invoked.timestamp new file mode 100644 index 000000000..e00328da5 --- /dev/null +++ b/.tmp-check-windows/x86_64-pc-windows-msvc/debug/build/libc-1defb07ea4562b86/invoked.timestamp @@ -0,0 +1 @@ +This file has an mtime of when this was started. \ No newline at end of file diff --git a/.tmp-check-windows/x86_64-pc-windows-msvc/debug/build/libc-1defb07ea4562b86/output b/.tmp-check-windows/x86_64-pc-windows-msvc/debug/build/libc-1defb07ea4562b86/output new file mode 100644 index 000000000..89a43b576 --- /dev/null +++ b/.tmp-check-windows/x86_64-pc-windows-msvc/debug/build/libc-1defb07ea4562b86/output @@ -0,0 +1,25 @@ +cargo:rerun-if-changed=build.rs +cargo:rerun-if-env-changed=RUST_LIBC_UNSTABLE_FREEBSD_VERSION +cargo:rustc-cfg=freebsd12 +cargo:rerun-if-env-changed=RUST_LIBC_UNSTABLE_MUSL_V1_2_3 +cargo:rerun-if-env-changed=RUST_LIBC_UNSTABLE_LINUX_TIME_BITS64 +cargo:rerun-if-env-changed=RUST_LIBC_UNSTABLE_GNU_FILE_OFFSET_BITS +cargo:rerun-if-env-changed=RUST_LIBC_UNSTABLE_GNU_TIME_BITS +cargo:rustc-check-cfg=cfg(emscripten_old_stat_abi) +cargo:rustc-check-cfg=cfg(espidf_time32) +cargo:rustc-check-cfg=cfg(freebsd10) +cargo:rustc-check-cfg=cfg(freebsd11) +cargo:rustc-check-cfg=cfg(freebsd12) +cargo:rustc-check-cfg=cfg(freebsd13) +cargo:rustc-check-cfg=cfg(freebsd14) +cargo:rustc-check-cfg=cfg(freebsd15) +cargo:rustc-check-cfg=cfg(gnu_file_offset_bits64) +cargo:rustc-check-cfg=cfg(gnu_time_bits64) +cargo:rustc-check-cfg=cfg(libc_deny_warnings) +cargo:rustc-check-cfg=cfg(linux_time_bits64) +cargo:rustc-check-cfg=cfg(musl_v1_2_3) +cargo:rustc-check-cfg=cfg(musl32_time64) +cargo:rustc-check-cfg=cfg(vxworks_lt_25_09) +cargo:rustc-check-cfg=cfg(target_os,values("switch","aix","ohos","hurd","rtems","visionos","nuttx","cygwin","qurt")) +cargo:rustc-check-cfg=cfg(target_env,values("illumos","wasi","aix","ohos","nto71_iosock","nto80")) +cargo:rustc-check-cfg=cfg(target_arch,values("loongarch64","mips32r6","mips64r6","csky")) diff --git a/.tmp-check-windows/x86_64-pc-windows-msvc/debug/build/libc-1defb07ea4562b86/root-output b/.tmp-check-windows/x86_64-pc-windows-msvc/debug/build/libc-1defb07ea4562b86/root-output new file mode 100644 index 000000000..956189330 --- /dev/null +++ b/.tmp-check-windows/x86_64-pc-windows-msvc/debug/build/libc-1defb07ea4562b86/root-output @@ -0,0 +1 @@ +/Users/coso/Documents/dev/ai/aiclientproxy/lime/.tmp-check-windows/x86_64-pc-windows-msvc/debug/build/libc-1defb07ea4562b86/out \ No newline at end of file diff --git a/.tmp-check-windows/x86_64-pc-windows-msvc/debug/build/libc-1defb07ea4562b86/stderr b/.tmp-check-windows/x86_64-pc-windows-msvc/debug/build/libc-1defb07ea4562b86/stderr new file mode 100644 index 000000000..e69de29bb diff --git a/.tmp-check-windows/x86_64-pc-windows-msvc/debug/build/num-traits-54a564be5702350f/invoked.timestamp b/.tmp-check-windows/x86_64-pc-windows-msvc/debug/build/num-traits-54a564be5702350f/invoked.timestamp new file mode 100644 index 000000000..e00328da5 --- /dev/null +++ b/.tmp-check-windows/x86_64-pc-windows-msvc/debug/build/num-traits-54a564be5702350f/invoked.timestamp @@ -0,0 +1 @@ +This file has an mtime of when this was started. \ No newline at end of file diff --git a/.tmp-check-windows/x86_64-pc-windows-msvc/debug/build/num-traits-54a564be5702350f/output b/.tmp-check-windows/x86_64-pc-windows-msvc/debug/build/num-traits-54a564be5702350f/output new file mode 100644 index 000000000..5acddfea1 --- /dev/null +++ b/.tmp-check-windows/x86_64-pc-windows-msvc/debug/build/num-traits-54a564be5702350f/output @@ -0,0 +1,3 @@ +cargo:rustc-check-cfg=cfg(has_total_cmp) +cargo:rustc-cfg=has_total_cmp +cargo:rerun-if-changed=build.rs diff --git a/.tmp-check-windows/x86_64-pc-windows-msvc/debug/build/num-traits-54a564be5702350f/root-output b/.tmp-check-windows/x86_64-pc-windows-msvc/debug/build/num-traits-54a564be5702350f/root-output new file mode 100644 index 000000000..b0c83920f --- /dev/null +++ b/.tmp-check-windows/x86_64-pc-windows-msvc/debug/build/num-traits-54a564be5702350f/root-output @@ -0,0 +1 @@ +/Users/coso/Documents/dev/ai/aiclientproxy/lime/.tmp-check-windows/x86_64-pc-windows-msvc/debug/build/num-traits-54a564be5702350f/out \ No newline at end of file diff --git a/.tmp-check-windows/x86_64-pc-windows-msvc/debug/build/num-traits-54a564be5702350f/stderr b/.tmp-check-windows/x86_64-pc-windows-msvc/debug/build/num-traits-54a564be5702350f/stderr new file mode 100644 index 000000000..e69de29bb diff --git a/.tmp-check-windows/x86_64-pc-windows-msvc/debug/build/parking_lot_core-c539c824d077feab/invoked.timestamp b/.tmp-check-windows/x86_64-pc-windows-msvc/debug/build/parking_lot_core-c539c824d077feab/invoked.timestamp new file mode 100644 index 000000000..e00328da5 --- /dev/null +++ b/.tmp-check-windows/x86_64-pc-windows-msvc/debug/build/parking_lot_core-c539c824d077feab/invoked.timestamp @@ -0,0 +1 @@ +This file has an mtime of when this was started. \ No newline at end of file diff --git a/.tmp-check-windows/x86_64-pc-windows-msvc/debug/build/parking_lot_core-c539c824d077feab/output b/.tmp-check-windows/x86_64-pc-windows-msvc/debug/build/parking_lot_core-c539c824d077feab/output new file mode 100644 index 000000000..e4a87f2b1 --- /dev/null +++ b/.tmp-check-windows/x86_64-pc-windows-msvc/debug/build/parking_lot_core-c539c824d077feab/output @@ -0,0 +1,2 @@ +cargo:rerun-if-changed=build.rs +cargo:rustc-check-cfg=cfg(tsan_enabled) diff --git a/.tmp-check-windows/x86_64-pc-windows-msvc/debug/build/parking_lot_core-c539c824d077feab/root-output b/.tmp-check-windows/x86_64-pc-windows-msvc/debug/build/parking_lot_core-c539c824d077feab/root-output new file mode 100644 index 000000000..5ed555ba7 --- /dev/null +++ b/.tmp-check-windows/x86_64-pc-windows-msvc/debug/build/parking_lot_core-c539c824d077feab/root-output @@ -0,0 +1 @@ +/Users/coso/Documents/dev/ai/aiclientproxy/lime/.tmp-check-windows/x86_64-pc-windows-msvc/debug/build/parking_lot_core-c539c824d077feab/out \ No newline at end of file diff --git a/.tmp-check-windows/x86_64-pc-windows-msvc/debug/build/parking_lot_core-c539c824d077feab/stderr b/.tmp-check-windows/x86_64-pc-windows-msvc/debug/build/parking_lot_core-c539c824d077feab/stderr new file mode 100644 index 000000000..e69de29bb diff --git a/.tmp-check-windows/x86_64-pc-windows-msvc/debug/build/ring-63367283c225f279/invoked.timestamp b/.tmp-check-windows/x86_64-pc-windows-msvc/debug/build/ring-63367283c225f279/invoked.timestamp new file mode 100644 index 000000000..e00328da5 --- /dev/null +++ b/.tmp-check-windows/x86_64-pc-windows-msvc/debug/build/ring-63367283c225f279/invoked.timestamp @@ -0,0 +1 @@ +This file has an mtime of when this was started. \ No newline at end of file diff --git a/.tmp-check-windows/x86_64-pc-windows-msvc/debug/build/ring-63367283c225f279/out/a4019cc0736b0423-crypto.o b/.tmp-check-windows/x86_64-pc-windows-msvc/debug/build/ring-63367283c225f279/out/a4019cc0736b0423-crypto.o new file mode 100644 index 000000000..f610a3bb8 Binary files /dev/null and b/.tmp-check-windows/x86_64-pc-windows-msvc/debug/build/ring-63367283c225f279/out/a4019cc0736b0423-crypto.o differ diff --git a/.tmp-check-windows/x86_64-pc-windows-msvc/debug/build/serde-fbf265fad39e354c/invoked.timestamp b/.tmp-check-windows/x86_64-pc-windows-msvc/debug/build/serde-fbf265fad39e354c/invoked.timestamp new file mode 100644 index 000000000..e00328da5 --- /dev/null +++ b/.tmp-check-windows/x86_64-pc-windows-msvc/debug/build/serde-fbf265fad39e354c/invoked.timestamp @@ -0,0 +1 @@ +This file has an mtime of when this was started. \ No newline at end of file diff --git a/.tmp-check-windows/x86_64-pc-windows-msvc/debug/build/serde-fbf265fad39e354c/out/private.rs b/.tmp-check-windows/x86_64-pc-windows-msvc/debug/build/serde-fbf265fad39e354c/out/private.rs new file mode 100644 index 000000000..ed2927ea1 --- /dev/null +++ b/.tmp-check-windows/x86_64-pc-windows-msvc/debug/build/serde-fbf265fad39e354c/out/private.rs @@ -0,0 +1,6 @@ +#[doc(hidden)] +pub mod __private228 { + #[doc(hidden)] + pub use crate::private::*; +} +use serde_core::__private228 as serde_core_private; diff --git a/.tmp-check-windows/x86_64-pc-windows-msvc/debug/build/serde-fbf265fad39e354c/output b/.tmp-check-windows/x86_64-pc-windows-msvc/debug/build/serde-fbf265fad39e354c/output new file mode 100644 index 000000000..854cb5387 --- /dev/null +++ b/.tmp-check-windows/x86_64-pc-windows-msvc/debug/build/serde-fbf265fad39e354c/output @@ -0,0 +1,13 @@ +cargo:rerun-if-changed=build.rs +cargo:rustc-cfg=if_docsrs_then_no_serde_core +cargo:rustc-check-cfg=cfg(feature, values("result")) +cargo:rustc-check-cfg=cfg(if_docsrs_then_no_serde_core) +cargo:rustc-check-cfg=cfg(no_core_cstr) +cargo:rustc-check-cfg=cfg(no_core_error) +cargo:rustc-check-cfg=cfg(no_core_net) +cargo:rustc-check-cfg=cfg(no_core_num_saturating) +cargo:rustc-check-cfg=cfg(no_diagnostic_namespace) +cargo:rustc-check-cfg=cfg(no_serde_derive) +cargo:rustc-check-cfg=cfg(no_std_atomic) +cargo:rustc-check-cfg=cfg(no_std_atomic64) +cargo:rustc-check-cfg=cfg(no_target_has_atomic) diff --git a/.tmp-check-windows/x86_64-pc-windows-msvc/debug/build/serde-fbf265fad39e354c/root-output b/.tmp-check-windows/x86_64-pc-windows-msvc/debug/build/serde-fbf265fad39e354c/root-output new file mode 100644 index 000000000..89fb9b631 --- /dev/null +++ b/.tmp-check-windows/x86_64-pc-windows-msvc/debug/build/serde-fbf265fad39e354c/root-output @@ -0,0 +1 @@ +/Users/coso/Documents/dev/ai/aiclientproxy/lime/.tmp-check-windows/x86_64-pc-windows-msvc/debug/build/serde-fbf265fad39e354c/out \ No newline at end of file diff --git a/.tmp-check-windows/x86_64-pc-windows-msvc/debug/build/serde-fbf265fad39e354c/stderr b/.tmp-check-windows/x86_64-pc-windows-msvc/debug/build/serde-fbf265fad39e354c/stderr new file mode 100644 index 000000000..e69de29bb diff --git a/.tmp-check-windows/x86_64-pc-windows-msvc/debug/build/serde_core-025a74d7fa54aa68/invoked.timestamp b/.tmp-check-windows/x86_64-pc-windows-msvc/debug/build/serde_core-025a74d7fa54aa68/invoked.timestamp new file mode 100644 index 000000000..e00328da5 --- /dev/null +++ b/.tmp-check-windows/x86_64-pc-windows-msvc/debug/build/serde_core-025a74d7fa54aa68/invoked.timestamp @@ -0,0 +1 @@ +This file has an mtime of when this was started. \ No newline at end of file diff --git a/.tmp-check-windows/x86_64-pc-windows-msvc/debug/build/serde_core-025a74d7fa54aa68/out/private.rs b/.tmp-check-windows/x86_64-pc-windows-msvc/debug/build/serde_core-025a74d7fa54aa68/out/private.rs new file mode 100644 index 000000000..08f232bbd --- /dev/null +++ b/.tmp-check-windows/x86_64-pc-windows-msvc/debug/build/serde_core-025a74d7fa54aa68/out/private.rs @@ -0,0 +1,5 @@ +#[doc(hidden)] +pub mod __private228 { + #[doc(hidden)] + pub use crate::private::*; +} diff --git a/.tmp-check-windows/x86_64-pc-windows-msvc/debug/build/serde_core-025a74d7fa54aa68/output b/.tmp-check-windows/x86_64-pc-windows-msvc/debug/build/serde_core-025a74d7fa54aa68/output new file mode 100644 index 000000000..98a6653d1 --- /dev/null +++ b/.tmp-check-windows/x86_64-pc-windows-msvc/debug/build/serde_core-025a74d7fa54aa68/output @@ -0,0 +1,11 @@ +cargo:rerun-if-changed=build.rs +cargo:rustc-check-cfg=cfg(if_docsrs_then_no_serde_core) +cargo:rustc-check-cfg=cfg(no_core_cstr) +cargo:rustc-check-cfg=cfg(no_core_error) +cargo:rustc-check-cfg=cfg(no_core_net) +cargo:rustc-check-cfg=cfg(no_core_num_saturating) +cargo:rustc-check-cfg=cfg(no_diagnostic_namespace) +cargo:rustc-check-cfg=cfg(no_serde_derive) +cargo:rustc-check-cfg=cfg(no_std_atomic) +cargo:rustc-check-cfg=cfg(no_std_atomic64) +cargo:rustc-check-cfg=cfg(no_target_has_atomic) diff --git a/.tmp-check-windows/x86_64-pc-windows-msvc/debug/build/serde_core-025a74d7fa54aa68/root-output b/.tmp-check-windows/x86_64-pc-windows-msvc/debug/build/serde_core-025a74d7fa54aa68/root-output new file mode 100644 index 000000000..597973eaf --- /dev/null +++ b/.tmp-check-windows/x86_64-pc-windows-msvc/debug/build/serde_core-025a74d7fa54aa68/root-output @@ -0,0 +1 @@ +/Users/coso/Documents/dev/ai/aiclientproxy/lime/.tmp-check-windows/x86_64-pc-windows-msvc/debug/build/serde_core-025a74d7fa54aa68/out \ No newline at end of file diff --git a/.tmp-check-windows/x86_64-pc-windows-msvc/debug/build/serde_core-025a74d7fa54aa68/stderr b/.tmp-check-windows/x86_64-pc-windows-msvc/debug/build/serde_core-025a74d7fa54aa68/stderr new file mode 100644 index 000000000..e69de29bb diff --git a/.tmp-check-windows/x86_64-pc-windows-msvc/debug/build/serde_json-6ca23f1161458259/invoked.timestamp b/.tmp-check-windows/x86_64-pc-windows-msvc/debug/build/serde_json-6ca23f1161458259/invoked.timestamp new file mode 100644 index 000000000..e00328da5 --- /dev/null +++ b/.tmp-check-windows/x86_64-pc-windows-msvc/debug/build/serde_json-6ca23f1161458259/invoked.timestamp @@ -0,0 +1 @@ +This file has an mtime of when this was started. \ No newline at end of file diff --git a/.tmp-check-windows/x86_64-pc-windows-msvc/debug/build/serde_json-6ca23f1161458259/output b/.tmp-check-windows/x86_64-pc-windows-msvc/debug/build/serde_json-6ca23f1161458259/output new file mode 100644 index 000000000..32010770d --- /dev/null +++ b/.tmp-check-windows/x86_64-pc-windows-msvc/debug/build/serde_json-6ca23f1161458259/output @@ -0,0 +1,3 @@ +cargo:rerun-if-changed=build.rs +cargo:rustc-check-cfg=cfg(fast_arithmetic, values("32", "64")) +cargo:rustc-cfg=fast_arithmetic="64" diff --git a/.tmp-check-windows/x86_64-pc-windows-msvc/debug/build/serde_json-6ca23f1161458259/root-output b/.tmp-check-windows/x86_64-pc-windows-msvc/debug/build/serde_json-6ca23f1161458259/root-output new file mode 100644 index 000000000..70d94d564 --- /dev/null +++ b/.tmp-check-windows/x86_64-pc-windows-msvc/debug/build/serde_json-6ca23f1161458259/root-output @@ -0,0 +1 @@ +/Users/coso/Documents/dev/ai/aiclientproxy/lime/.tmp-check-windows/x86_64-pc-windows-msvc/debug/build/serde_json-6ca23f1161458259/out \ No newline at end of file diff --git a/.tmp-check-windows/x86_64-pc-windows-msvc/debug/build/serde_json-6ca23f1161458259/stderr b/.tmp-check-windows/x86_64-pc-windows-msvc/debug/build/serde_json-6ca23f1161458259/stderr new file mode 100644 index 000000000..e69de29bb diff --git a/.tmp-check-windows/x86_64-pc-windows-msvc/debug/build/thiserror-ad9f2fd3119bc1f9/invoked.timestamp b/.tmp-check-windows/x86_64-pc-windows-msvc/debug/build/thiserror-ad9f2fd3119bc1f9/invoked.timestamp new file mode 100644 index 000000000..e00328da5 --- /dev/null +++ b/.tmp-check-windows/x86_64-pc-windows-msvc/debug/build/thiserror-ad9f2fd3119bc1f9/invoked.timestamp @@ -0,0 +1 @@ +This file has an mtime of when this was started. \ No newline at end of file diff --git a/.tmp-check-windows/x86_64-pc-windows-msvc/debug/build/thiserror-ad9f2fd3119bc1f9/output b/.tmp-check-windows/x86_64-pc-windows-msvc/debug/build/thiserror-ad9f2fd3119bc1f9/output new file mode 100644 index 000000000..3b23df4e1 --- /dev/null +++ b/.tmp-check-windows/x86_64-pc-windows-msvc/debug/build/thiserror-ad9f2fd3119bc1f9/output @@ -0,0 +1,4 @@ +cargo:rerun-if-changed=build/probe.rs +cargo:rustc-check-cfg=cfg(error_generic_member_access) +cargo:rustc-check-cfg=cfg(thiserror_nightly_testing) +cargo:rerun-if-env-changed=RUSTC_BOOTSTRAP diff --git a/.tmp-check-windows/x86_64-pc-windows-msvc/debug/build/thiserror-ad9f2fd3119bc1f9/root-output b/.tmp-check-windows/x86_64-pc-windows-msvc/debug/build/thiserror-ad9f2fd3119bc1f9/root-output new file mode 100644 index 000000000..8a1efd42d --- /dev/null +++ b/.tmp-check-windows/x86_64-pc-windows-msvc/debug/build/thiserror-ad9f2fd3119bc1f9/root-output @@ -0,0 +1 @@ +/Users/coso/Documents/dev/ai/aiclientproxy/lime/.tmp-check-windows/x86_64-pc-windows-msvc/debug/build/thiserror-ad9f2fd3119bc1f9/out \ No newline at end of file diff --git a/.tmp-check-windows/x86_64-pc-windows-msvc/debug/build/thiserror-ad9f2fd3119bc1f9/stderr b/.tmp-check-windows/x86_64-pc-windows-msvc/debug/build/thiserror-ad9f2fd3119bc1f9/stderr new file mode 100644 index 000000000..e69de29bb diff --git a/.tmp-check-windows/x86_64-pc-windows-msvc/debug/build/typenum-1c5a60fd73ab5557/invoked.timestamp b/.tmp-check-windows/x86_64-pc-windows-msvc/debug/build/typenum-1c5a60fd73ab5557/invoked.timestamp new file mode 100644 index 000000000..e00328da5 --- /dev/null +++ b/.tmp-check-windows/x86_64-pc-windows-msvc/debug/build/typenum-1c5a60fd73ab5557/invoked.timestamp @@ -0,0 +1 @@ +This file has an mtime of when this was started. \ No newline at end of file diff --git a/.tmp-check-windows/x86_64-pc-windows-msvc/debug/build/typenum-1c5a60fd73ab5557/out/tests.rs b/.tmp-check-windows/x86_64-pc-windows-msvc/debug/build/typenum-1c5a60fd73ab5557/out/tests.rs new file mode 100644 index 000000000..eadb2d61f --- /dev/null +++ b/.tmp-check-windows/x86_64-pc-windows-msvc/debug/build/typenum-1c5a60fd73ab5557/out/tests.rs @@ -0,0 +1,20563 @@ + +use typenum::*; +use core::ops::*; +use core::cmp::Ordering; + +#[test] +#[allow(non_snake_case)] +fn test_0_BitAnd_0() { + type A = UTerm; + type B = UTerm; + type U0 = UTerm; + + #[allow(non_camel_case_types)] + type U0BitAndU0 = <>::Output as Same>::Output; + + assert_eq!(::to_u64(), ::to_u64()); +} +#[test] +#[allow(non_snake_case)] +fn test_0_BitOr_0() { + type A = UTerm; + type B = UTerm; + type U0 = UTerm; + + #[allow(non_camel_case_types)] + type U0BitOrU0 = <>::Output as Same>::Output; + + assert_eq!(::to_u64(), ::to_u64()); +} +#[test] +#[allow(non_snake_case)] +fn test_0_BitXor_0() { + type A = UTerm; + type B = UTerm; + type U0 = UTerm; + + #[allow(non_camel_case_types)] + type U0BitXorU0 = <>::Output as Same>::Output; + + assert_eq!(::to_u64(), ::to_u64()); +} +#[test] +#[allow(non_snake_case)] +fn test_0_Shl_0() { + type A = UTerm; + type B = UTerm; + type U0 = UTerm; + + #[allow(non_camel_case_types)] + type U0ShlU0 = <>::Output as Same>::Output; + + assert_eq!(::to_u64(), ::to_u64()); +} +#[test] +#[allow(non_snake_case)] +fn test_0_Shr_0() { + type A = UTerm; + type B = UTerm; + type U0 = UTerm; + + #[allow(non_camel_case_types)] + type U0ShrU0 = <>::Output as Same>::Output; + + assert_eq!(::to_u64(), ::to_u64()); +} +#[test] +#[allow(non_snake_case)] +fn test_0_Add_0() { + type A = UTerm; + type B = UTerm; + type U0 = UTerm; + + #[allow(non_camel_case_types)] + type U0AddU0 = <>::Output as Same>::Output; + + assert_eq!(::to_u64(), ::to_u64()); +} +#[test] +#[allow(non_snake_case)] +fn test_0_Mul_0() { + type A = UTerm; + type B = UTerm; + type U0 = UTerm; + + #[allow(non_camel_case_types)] + type U0MulU0 = <>::Output as Same>::Output; + + assert_eq!(::to_u64(), ::to_u64()); +} +#[test] +#[allow(non_snake_case)] +fn test_0_Pow_0() { + type A = UTerm; + type B = UTerm; + type U1 = UInt; + + #[allow(non_camel_case_types)] + type U0PowU0 = <>::Output as Same>::Output; + + assert_eq!(::to_u64(), ::to_u64()); +} +#[test] +#[allow(non_snake_case)] +fn test_0_Min_0() { + type A = UTerm; + type B = UTerm; + type U0 = UTerm; + + #[allow(non_camel_case_types)] + type U0MinU0 = <>::Output as Same>::Output; + + assert_eq!(::to_u64(), ::to_u64()); +} +#[test] +#[allow(non_snake_case)] +fn test_0_Max_0() { + type A = UTerm; + type B = UTerm; + type U0 = UTerm; + + #[allow(non_camel_case_types)] + type U0MaxU0 = <>::Output as Same>::Output; + + assert_eq!(::to_u64(), ::to_u64()); +} +#[test] +#[allow(non_snake_case)] +fn test_0_Gcd_0() { + type A = UTerm; + type B = UTerm; + type U0 = UTerm; + + #[allow(non_camel_case_types)] + type U0GcdU0 = <>::Output as Same>::Output; + + assert_eq!(::to_u64(), ::to_u64()); +} +#[test] +#[allow(non_snake_case)] +fn test_0_Sub_0() { + type A = UTerm; + type B = UTerm; + type U0 = UTerm; + + #[allow(non_camel_case_types)] + type U0SubU0 = <>::Output as Same>::Output; + + assert_eq!(::to_u64(), ::to_u64()); +} +#[test] +#[allow(non_snake_case)] +fn test_0_Cmp_0() { + type A = UTerm; + type B = UTerm; + + #[allow(non_camel_case_types)] + type U0CmpU0 = >::Output; + assert_eq!(::to_ordering(), Ordering::Equal); +} +#[test] +#[allow(non_snake_case)] +fn test_0_BitAnd_1() { + type A = UTerm; + type B = UInt; + type U0 = UTerm; + + #[allow(non_camel_case_types)] + type U0BitAndU1 = <>::Output as Same>::Output; + + assert_eq!(::to_u64(), ::to_u64()); +} +#[test] +#[allow(non_snake_case)] +fn test_0_BitOr_1() { + type A = UTerm; + type B = UInt; + type U1 = UInt; + + #[allow(non_camel_case_types)] + type U0BitOrU1 = <>::Output as Same>::Output; + + assert_eq!(::to_u64(), ::to_u64()); +} +#[test] +#[allow(non_snake_case)] +fn test_0_BitXor_1() { + type A = UTerm; + type B = UInt; + type U1 = UInt; + + #[allow(non_camel_case_types)] + type U0BitXorU1 = <>::Output as Same>::Output; + + assert_eq!(::to_u64(), ::to_u64()); +} +#[test] +#[allow(non_snake_case)] +fn test_0_Shl_1() { + type A = UTerm; + type B = UInt; + type U0 = UTerm; + + #[allow(non_camel_case_types)] + type U0ShlU1 = <>::Output as Same>::Output; + + assert_eq!(::to_u64(), ::to_u64()); +} +#[test] +#[allow(non_snake_case)] +fn test_0_Shr_1() { + type A = UTerm; + type B = UInt; + type U0 = UTerm; + + #[allow(non_camel_case_types)] + type U0ShrU1 = <>::Output as Same>::Output; + + assert_eq!(::to_u64(), ::to_u64()); +} +#[test] +#[allow(non_snake_case)] +fn test_0_Add_1() { + type A = UTerm; + type B = UInt; + type U1 = UInt; + + #[allow(non_camel_case_types)] + type U0AddU1 = <>::Output as Same>::Output; + + assert_eq!(::to_u64(), ::to_u64()); +} +#[test] +#[allow(non_snake_case)] +fn test_0_Mul_1() { + type A = UTerm; + type B = UInt; + type U0 = UTerm; + + #[allow(non_camel_case_types)] + type U0MulU1 = <>::Output as Same>::Output; + + assert_eq!(::to_u64(), ::to_u64()); +} +#[test] +#[allow(non_snake_case)] +fn test_0_Pow_1() { + type A = UTerm; + type B = UInt; + type U0 = UTerm; + + #[allow(non_camel_case_types)] + type U0PowU1 = <>::Output as Same>::Output; + + assert_eq!(::to_u64(), ::to_u64()); +} +#[test] +#[allow(non_snake_case)] +fn test_0_Min_1() { + type A = UTerm; + type B = UInt; + type U0 = UTerm; + + #[allow(non_camel_case_types)] + type U0MinU1 = <>::Output as Same>::Output; + + assert_eq!(::to_u64(), ::to_u64()); +} +#[test] +#[allow(non_snake_case)] +fn test_0_Max_1() { + type A = UTerm; + type B = UInt; + type U1 = UInt; + + #[allow(non_camel_case_types)] + type U0MaxU1 = <>::Output as Same>::Output; + + assert_eq!(::to_u64(), ::to_u64()); +} +#[test] +#[allow(non_snake_case)] +fn test_0_Gcd_1() { + type A = UTerm; + type B = UInt; + type U1 = UInt; + + #[allow(non_camel_case_types)] + type U0GcdU1 = <>::Output as Same>::Output; + + assert_eq!(::to_u64(), ::to_u64()); +} +#[test] +#[allow(non_snake_case)] +fn test_0_Div_1() { + type A = UTerm; + type B = UInt; + type U0 = UTerm; + + #[allow(non_camel_case_types)] + type U0DivU1 = <>::Output as Same>::Output; + + assert_eq!(::to_u64(), ::to_u64()); +} +#[test] +#[allow(non_snake_case)] +fn test_0_Rem_1() { + type A = UTerm; + type B = UInt; + type U0 = UTerm; + + #[allow(non_camel_case_types)] + type U0RemU1 = <>::Output as Same>::Output; + + assert_eq!(::to_u64(), ::to_u64()); +} +#[test] +#[allow(non_snake_case)] +fn test_0_PartialDiv_1() { + type A = UTerm; + type B = UInt; + type U0 = UTerm; + + #[allow(non_camel_case_types)] + type U0PartialDivU1 = <>::Output as Same>::Output; + + assert_eq!(::to_u64(), ::to_u64()); +} +#[test] +#[allow(non_snake_case)] +fn test_0_Cmp_1() { + type A = UTerm; + type B = UInt; + + #[allow(non_camel_case_types)] + type U0CmpU1 = >::Output; + assert_eq!(::to_ordering(), Ordering::Less); +} +#[test] +#[allow(non_snake_case)] +fn test_0_BitAnd_2() { + type A = UTerm; + type B = UInt, B0>; + type U0 = UTerm; + + #[allow(non_camel_case_types)] + type U0BitAndU2 = <>::Output as Same>::Output; + + assert_eq!(::to_u64(), ::to_u64()); +} +#[test] +#[allow(non_snake_case)] +fn test_0_BitOr_2() { + type A = UTerm; + type B = UInt, B0>; + type U2 = UInt, B0>; + + #[allow(non_camel_case_types)] + type U0BitOrU2 = <>::Output as Same>::Output; + + assert_eq!(::to_u64(), ::to_u64()); +} +#[test] +#[allow(non_snake_case)] +fn test_0_BitXor_2() { + type A = UTerm; + type B = UInt, B0>; + type U2 = UInt, B0>; + + #[allow(non_camel_case_types)] + type U0BitXorU2 = <>::Output as Same>::Output; + + assert_eq!(::to_u64(), ::to_u64()); +} +#[test] +#[allow(non_snake_case)] +fn test_0_Shl_2() { + type A = UTerm; + type B = UInt, B0>; + type U0 = UTerm; + + #[allow(non_camel_case_types)] + type U0ShlU2 = <>::Output as Same>::Output; + + assert_eq!(::to_u64(), ::to_u64()); +} +#[test] +#[allow(non_snake_case)] +fn test_0_Shr_2() { + type A = UTerm; + type B = UInt, B0>; + type U0 = UTerm; + + #[allow(non_camel_case_types)] + type U0ShrU2 = <>::Output as Same>::Output; + + assert_eq!(::to_u64(), ::to_u64()); +} +#[test] +#[allow(non_snake_case)] +fn test_0_Add_2() { + type A = UTerm; + type B = UInt, B0>; + type U2 = UInt, B0>; + + #[allow(non_camel_case_types)] + type U0AddU2 = <>::Output as Same>::Output; + + assert_eq!(::to_u64(), ::to_u64()); +} +#[test] +#[allow(non_snake_case)] +fn test_0_Mul_2() { + type A = UTerm; + type B = UInt, B0>; + type U0 = UTerm; + + #[allow(non_camel_case_types)] + type U0MulU2 = <>::Output as Same>::Output; + + assert_eq!(::to_u64(), ::to_u64()); +} +#[test] +#[allow(non_snake_case)] +fn test_0_Pow_2() { + type A = UTerm; + type B = UInt, B0>; + type U0 = UTerm; + + #[allow(non_camel_case_types)] + type U0PowU2 = <>::Output as Same>::Output; + + assert_eq!(::to_u64(), ::to_u64()); +} +#[test] +#[allow(non_snake_case)] +fn test_0_Min_2() { + type A = UTerm; + type B = UInt, B0>; + type U0 = UTerm; + + #[allow(non_camel_case_types)] + type U0MinU2 = <>::Output as Same>::Output; + + assert_eq!(::to_u64(), ::to_u64()); +} +#[test] +#[allow(non_snake_case)] +fn test_0_Max_2() { + type A = UTerm; + type B = UInt, B0>; + type U2 = UInt, B0>; + + #[allow(non_camel_case_types)] + type U0MaxU2 = <>::Output as Same>::Output; + + assert_eq!(::to_u64(), ::to_u64()); +} +#[test] +#[allow(non_snake_case)] +fn test_0_Gcd_2() { + type A = UTerm; + type B = UInt, B0>; + type U2 = UInt, B0>; + + #[allow(non_camel_case_types)] + type U0GcdU2 = <>::Output as Same>::Output; + + assert_eq!(::to_u64(), ::to_u64()); +} +#[test] +#[allow(non_snake_case)] +fn test_0_Div_2() { + type A = UTerm; + type B = UInt, B0>; + type U0 = UTerm; + + #[allow(non_camel_case_types)] + type U0DivU2 = <>::Output as Same>::Output; + + assert_eq!(::to_u64(), ::to_u64()); +} +#[test] +#[allow(non_snake_case)] +fn test_0_Rem_2() { + type A = UTerm; + type B = UInt, B0>; + type U0 = UTerm; + + #[allow(non_camel_case_types)] + type U0RemU2 = <>::Output as Same>::Output; + + assert_eq!(::to_u64(), ::to_u64()); +} +#[test] +#[allow(non_snake_case)] +fn test_0_PartialDiv_2() { + type A = UTerm; + type B = UInt, B0>; + type U0 = UTerm; + + #[allow(non_camel_case_types)] + type U0PartialDivU2 = <>::Output as Same>::Output; + + assert_eq!(::to_u64(), ::to_u64()); +} +#[test] +#[allow(non_snake_case)] +fn test_0_Cmp_2() { + type A = UTerm; + type B = UInt, B0>; + + #[allow(non_camel_case_types)] + type U0CmpU2 = >::Output; + assert_eq!(::to_ordering(), Ordering::Less); +} +#[test] +#[allow(non_snake_case)] +fn test_0_BitAnd_3() { + type A = UTerm; + type B = UInt, B1>; + type U0 = UTerm; + + #[allow(non_camel_case_types)] + type U0BitAndU3 = <>::Output as Same>::Output; + + assert_eq!(::to_u64(), ::to_u64()); +} +#[test] +#[allow(non_snake_case)] +fn test_0_BitOr_3() { + type A = UTerm; + type B = UInt, B1>; + type U3 = UInt, B1>; + + #[allow(non_camel_case_types)] + type U0BitOrU3 = <>::Output as Same>::Output; + + assert_eq!(::to_u64(), ::to_u64()); +} +#[test] +#[allow(non_snake_case)] +fn test_0_BitXor_3() { + type A = UTerm; + type B = UInt, B1>; + type U3 = UInt, B1>; + + #[allow(non_camel_case_types)] + type U0BitXorU3 = <>::Output as Same>::Output; + + assert_eq!(::to_u64(), ::to_u64()); +} +#[test] +#[allow(non_snake_case)] +fn test_0_Shl_3() { + type A = UTerm; + type B = UInt, B1>; + type U0 = UTerm; + + #[allow(non_camel_case_types)] + type U0ShlU3 = <>::Output as Same>::Output; + + assert_eq!(::to_u64(), ::to_u64()); +} +#[test] +#[allow(non_snake_case)] +fn test_0_Shr_3() { + type A = UTerm; + type B = UInt, B1>; + type U0 = UTerm; + + #[allow(non_camel_case_types)] + type U0ShrU3 = <>::Output as Same>::Output; + + assert_eq!(::to_u64(), ::to_u64()); +} +#[test] +#[allow(non_snake_case)] +fn test_0_Add_3() { + type A = UTerm; + type B = UInt, B1>; + type U3 = UInt, B1>; + + #[allow(non_camel_case_types)] + type U0AddU3 = <>::Output as Same>::Output; + + assert_eq!(::to_u64(), ::to_u64()); +} +#[test] +#[allow(non_snake_case)] +fn test_0_Mul_3() { + type A = UTerm; + type B = UInt, B1>; + type U0 = UTerm; + + #[allow(non_camel_case_types)] + type U0MulU3 = <>::Output as Same>::Output; + + assert_eq!(::to_u64(), ::to_u64()); +} +#[test] +#[allow(non_snake_case)] +fn test_0_Pow_3() { + type A = UTerm; + type B = UInt, B1>; + type U0 = UTerm; + + #[allow(non_camel_case_types)] + type U0PowU3 = <>::Output as Same>::Output; + + assert_eq!(::to_u64(), ::to_u64()); +} +#[test] +#[allow(non_snake_case)] +fn test_0_Min_3() { + type A = UTerm; + type B = UInt, B1>; + type U0 = UTerm; + + #[allow(non_camel_case_types)] + type U0MinU3 = <>::Output as Same>::Output; + + assert_eq!(::to_u64(), ::to_u64()); +} +#[test] +#[allow(non_snake_case)] +fn test_0_Max_3() { + type A = UTerm; + type B = UInt, B1>; + type U3 = UInt, B1>; + + #[allow(non_camel_case_types)] + type U0MaxU3 = <>::Output as Same>::Output; + + assert_eq!(::to_u64(), ::to_u64()); +} +#[test] +#[allow(non_snake_case)] +fn test_0_Gcd_3() { + type A = UTerm; + type B = UInt, B1>; + type U3 = UInt, B1>; + + #[allow(non_camel_case_types)] + type U0GcdU3 = <>::Output as Same>::Output; + + assert_eq!(::to_u64(), ::to_u64()); +} +#[test] +#[allow(non_snake_case)] +fn test_0_Div_3() { + type A = UTerm; + type B = UInt, B1>; + type U0 = UTerm; + + #[allow(non_camel_case_types)] + type U0DivU3 = <>::Output as Same>::Output; + + assert_eq!(::to_u64(), ::to_u64()); +} +#[test] +#[allow(non_snake_case)] +fn test_0_Rem_3() { + type A = UTerm; + type B = UInt, B1>; + type U0 = UTerm; + + #[allow(non_camel_case_types)] + type U0RemU3 = <>::Output as Same>::Output; + + assert_eq!(::to_u64(), ::to_u64()); +} +#[test] +#[allow(non_snake_case)] +fn test_0_PartialDiv_3() { + type A = UTerm; + type B = UInt, B1>; + type U0 = UTerm; + + #[allow(non_camel_case_types)] + type U0PartialDivU3 = <>::Output as Same>::Output; + + assert_eq!(::to_u64(), ::to_u64()); +} +#[test] +#[allow(non_snake_case)] +fn test_0_Cmp_3() { + type A = UTerm; + type B = UInt, B1>; + + #[allow(non_camel_case_types)] + type U0CmpU3 = >::Output; + assert_eq!(::to_ordering(), Ordering::Less); +} +#[test] +#[allow(non_snake_case)] +fn test_0_BitAnd_4() { + type A = UTerm; + type B = UInt, B0>, B0>; + type U0 = UTerm; + + #[allow(non_camel_case_types)] + type U0BitAndU4 = <>::Output as Same>::Output; + + assert_eq!(::to_u64(), ::to_u64()); +} +#[test] +#[allow(non_snake_case)] +fn test_0_BitOr_4() { + type A = UTerm; + type B = UInt, B0>, B0>; + type U4 = UInt, B0>, B0>; + + #[allow(non_camel_case_types)] + type U0BitOrU4 = <>::Output as Same>::Output; + + assert_eq!(::to_u64(), ::to_u64()); +} +#[test] +#[allow(non_snake_case)] +fn test_0_BitXor_4() { + type A = UTerm; + type B = UInt, B0>, B0>; + type U4 = UInt, B0>, B0>; + + #[allow(non_camel_case_types)] + type U0BitXorU4 = <>::Output as Same>::Output; + + assert_eq!(::to_u64(), ::to_u64()); +} +#[test] +#[allow(non_snake_case)] +fn test_0_Shl_4() { + type A = UTerm; + type B = UInt, B0>, B0>; + type U0 = UTerm; + + #[allow(non_camel_case_types)] + type U0ShlU4 = <>::Output as Same>::Output; + + assert_eq!(::to_u64(), ::to_u64()); +} +#[test] +#[allow(non_snake_case)] +fn test_0_Shr_4() { + type A = UTerm; + type B = UInt, B0>, B0>; + type U0 = UTerm; + + #[allow(non_camel_case_types)] + type U0ShrU4 = <>::Output as Same>::Output; + + assert_eq!(::to_u64(), ::to_u64()); +} +#[test] +#[allow(non_snake_case)] +fn test_0_Add_4() { + type A = UTerm; + type B = UInt, B0>, B0>; + type U4 = UInt, B0>, B0>; + + #[allow(non_camel_case_types)] + type U0AddU4 = <>::Output as Same>::Output; + + assert_eq!(::to_u64(), ::to_u64()); +} +#[test] +#[allow(non_snake_case)] +fn test_0_Mul_4() { + type A = UTerm; + type B = UInt, B0>, B0>; + type U0 = UTerm; + + #[allow(non_camel_case_types)] + type U0MulU4 = <>::Output as Same>::Output; + + assert_eq!(::to_u64(), ::to_u64()); +} +#[test] +#[allow(non_snake_case)] +fn test_0_Pow_4() { + type A = UTerm; + type B = UInt, B0>, B0>; + type U0 = UTerm; + + #[allow(non_camel_case_types)] + type U0PowU4 = <>::Output as Same>::Output; + + assert_eq!(::to_u64(), ::to_u64()); +} +#[test] +#[allow(non_snake_case)] +fn test_0_Min_4() { + type A = UTerm; + type B = UInt, B0>, B0>; + type U0 = UTerm; + + #[allow(non_camel_case_types)] + type U0MinU4 = <>::Output as Same>::Output; + + assert_eq!(::to_u64(), ::to_u64()); +} +#[test] +#[allow(non_snake_case)] +fn test_0_Max_4() { + type A = UTerm; + type B = UInt, B0>, B0>; + type U4 = UInt, B0>, B0>; + + #[allow(non_camel_case_types)] + type U0MaxU4 = <>::Output as Same>::Output; + + assert_eq!(::to_u64(), ::to_u64()); +} +#[test] +#[allow(non_snake_case)] +fn test_0_Gcd_4() { + type A = UTerm; + type B = UInt, B0>, B0>; + type U4 = UInt, B0>, B0>; + + #[allow(non_camel_case_types)] + type U0GcdU4 = <>::Output as Same>::Output; + + assert_eq!(::to_u64(), ::to_u64()); +} +#[test] +#[allow(non_snake_case)] +fn test_0_Div_4() { + type A = UTerm; + type B = UInt, B0>, B0>; + type U0 = UTerm; + + #[allow(non_camel_case_types)] + type U0DivU4 = <>::Output as Same>::Output; + + assert_eq!(::to_u64(), ::to_u64()); +} +#[test] +#[allow(non_snake_case)] +fn test_0_Rem_4() { + type A = UTerm; + type B = UInt, B0>, B0>; + type U0 = UTerm; + + #[allow(non_camel_case_types)] + type U0RemU4 = <>::Output as Same>::Output; + + assert_eq!(::to_u64(), ::to_u64()); +} +#[test] +#[allow(non_snake_case)] +fn test_0_PartialDiv_4() { + type A = UTerm; + type B = UInt, B0>, B0>; + type U0 = UTerm; + + #[allow(non_camel_case_types)] + type U0PartialDivU4 = <>::Output as Same>::Output; + + assert_eq!(::to_u64(), ::to_u64()); +} +#[test] +#[allow(non_snake_case)] +fn test_0_Cmp_4() { + type A = UTerm; + type B = UInt, B0>, B0>; + + #[allow(non_camel_case_types)] + type U0CmpU4 = >::Output; + assert_eq!(::to_ordering(), Ordering::Less); +} +#[test] +#[allow(non_snake_case)] +fn test_0_BitAnd_5() { + type A = UTerm; + type B = UInt, B0>, B1>; + type U0 = UTerm; + + #[allow(non_camel_case_types)] + type U0BitAndU5 = <>::Output as Same>::Output; + + assert_eq!(::to_u64(), ::to_u64()); +} +#[test] +#[allow(non_snake_case)] +fn test_0_BitOr_5() { + type A = UTerm; + type B = UInt, B0>, B1>; + type U5 = UInt, B0>, B1>; + + #[allow(non_camel_case_types)] + type U0BitOrU5 = <>::Output as Same>::Output; + + assert_eq!(::to_u64(), ::to_u64()); +} +#[test] +#[allow(non_snake_case)] +fn test_0_BitXor_5() { + type A = UTerm; + type B = UInt, B0>, B1>; + type U5 = UInt, B0>, B1>; + + #[allow(non_camel_case_types)] + type U0BitXorU5 = <>::Output as Same>::Output; + + assert_eq!(::to_u64(), ::to_u64()); +} +#[test] +#[allow(non_snake_case)] +fn test_0_Shl_5() { + type A = UTerm; + type B = UInt, B0>, B1>; + type U0 = UTerm; + + #[allow(non_camel_case_types)] + type U0ShlU5 = <>::Output as Same>::Output; + + assert_eq!(::to_u64(), ::to_u64()); +} +#[test] +#[allow(non_snake_case)] +fn test_0_Shr_5() { + type A = UTerm; + type B = UInt, B0>, B1>; + type U0 = UTerm; + + #[allow(non_camel_case_types)] + type U0ShrU5 = <>::Output as Same>::Output; + + assert_eq!(::to_u64(), ::to_u64()); +} +#[test] +#[allow(non_snake_case)] +fn test_0_Add_5() { + type A = UTerm; + type B = UInt, B0>, B1>; + type U5 = UInt, B0>, B1>; + + #[allow(non_camel_case_types)] + type U0AddU5 = <>::Output as Same>::Output; + + assert_eq!(::to_u64(), ::to_u64()); +} +#[test] +#[allow(non_snake_case)] +fn test_0_Mul_5() { + type A = UTerm; + type B = UInt, B0>, B1>; + type U0 = UTerm; + + #[allow(non_camel_case_types)] + type U0MulU5 = <>::Output as Same>::Output; + + assert_eq!(::to_u64(), ::to_u64()); +} +#[test] +#[allow(non_snake_case)] +fn test_0_Pow_5() { + type A = UTerm; + type B = UInt, B0>, B1>; + type U0 = UTerm; + + #[allow(non_camel_case_types)] + type U0PowU5 = <>::Output as Same>::Output; + + assert_eq!(::to_u64(), ::to_u64()); +} +#[test] +#[allow(non_snake_case)] +fn test_0_Min_5() { + type A = UTerm; + type B = UInt, B0>, B1>; + type U0 = UTerm; + + #[allow(non_camel_case_types)] + type U0MinU5 = <>::Output as Same>::Output; + + assert_eq!(::to_u64(), ::to_u64()); +} +#[test] +#[allow(non_snake_case)] +fn test_0_Max_5() { + type A = UTerm; + type B = UInt, B0>, B1>; + type U5 = UInt, B0>, B1>; + + #[allow(non_camel_case_types)] + type U0MaxU5 = <>::Output as Same>::Output; + + assert_eq!(::to_u64(), ::to_u64()); +} +#[test] +#[allow(non_snake_case)] +fn test_0_Gcd_5() { + type A = UTerm; + type B = UInt, B0>, B1>; + type U5 = UInt, B0>, B1>; + + #[allow(non_camel_case_types)] + type U0GcdU5 = <>::Output as Same>::Output; + + assert_eq!(::to_u64(), ::to_u64()); +} +#[test] +#[allow(non_snake_case)] +fn test_0_Div_5() { + type A = UTerm; + type B = UInt, B0>, B1>; + type U0 = UTerm; + + #[allow(non_camel_case_types)] + type U0DivU5 = <>::Output as Same>::Output; + + assert_eq!(::to_u64(), ::to_u64()); +} +#[test] +#[allow(non_snake_case)] +fn test_0_Rem_5() { + type A = UTerm; + type B = UInt, B0>, B1>; + type U0 = UTerm; + + #[allow(non_camel_case_types)] + type U0RemU5 = <>::Output as Same>::Output; + + assert_eq!(::to_u64(), ::to_u64()); +} +#[test] +#[allow(non_snake_case)] +fn test_0_PartialDiv_5() { + type A = UTerm; + type B = UInt, B0>, B1>; + type U0 = UTerm; + + #[allow(non_camel_case_types)] + type U0PartialDivU5 = <>::Output as Same>::Output; + + assert_eq!(::to_u64(), ::to_u64()); +} +#[test] +#[allow(non_snake_case)] +fn test_0_Cmp_5() { + type A = UTerm; + type B = UInt, B0>, B1>; + + #[allow(non_camel_case_types)] + type U0CmpU5 = >::Output; + assert_eq!(::to_ordering(), Ordering::Less); +} +#[test] +#[allow(non_snake_case)] +fn test_1_BitAnd_0() { + type A = UInt; + type B = UTerm; + type U0 = UTerm; + + #[allow(non_camel_case_types)] + type U1BitAndU0 = <>::Output as Same>::Output; + + assert_eq!(::to_u64(), ::to_u64()); +} +#[test] +#[allow(non_snake_case)] +fn test_1_BitOr_0() { + type A = UInt; + type B = UTerm; + type U1 = UInt; + + #[allow(non_camel_case_types)] + type U1BitOrU0 = <>::Output as Same>::Output; + + assert_eq!(::to_u64(), ::to_u64()); +} +#[test] +#[allow(non_snake_case)] +fn test_1_BitXor_0() { + type A = UInt; + type B = UTerm; + type U1 = UInt; + + #[allow(non_camel_case_types)] + type U1BitXorU0 = <>::Output as Same>::Output; + + assert_eq!(::to_u64(), ::to_u64()); +} +#[test] +#[allow(non_snake_case)] +fn test_1_Shl_0() { + type A = UInt; + type B = UTerm; + type U1 = UInt; + + #[allow(non_camel_case_types)] + type U1ShlU0 = <>::Output as Same>::Output; + + assert_eq!(::to_u64(), ::to_u64()); +} +#[test] +#[allow(non_snake_case)] +fn test_1_Shr_0() { + type A = UInt; + type B = UTerm; + type U1 = UInt; + + #[allow(non_camel_case_types)] + type U1ShrU0 = <>::Output as Same>::Output; + + assert_eq!(::to_u64(), ::to_u64()); +} +#[test] +#[allow(non_snake_case)] +fn test_1_Add_0() { + type A = UInt; + type B = UTerm; + type U1 = UInt; + + #[allow(non_camel_case_types)] + type U1AddU0 = <>::Output as Same>::Output; + + assert_eq!(::to_u64(), ::to_u64()); +} +#[test] +#[allow(non_snake_case)] +fn test_1_Mul_0() { + type A = UInt; + type B = UTerm; + type U0 = UTerm; + + #[allow(non_camel_case_types)] + type U1MulU0 = <>::Output as Same>::Output; + + assert_eq!(::to_u64(), ::to_u64()); +} +#[test] +#[allow(non_snake_case)] +fn test_1_Pow_0() { + type A = UInt; + type B = UTerm; + type U1 = UInt; + + #[allow(non_camel_case_types)] + type U1PowU0 = <>::Output as Same>::Output; + + assert_eq!(::to_u64(), ::to_u64()); +} +#[test] +#[allow(non_snake_case)] +fn test_1_Min_0() { + type A = UInt; + type B = UTerm; + type U0 = UTerm; + + #[allow(non_camel_case_types)] + type U1MinU0 = <>::Output as Same>::Output; + + assert_eq!(::to_u64(), ::to_u64()); +} +#[test] +#[allow(non_snake_case)] +fn test_1_Max_0() { + type A = UInt; + type B = UTerm; + type U1 = UInt; + + #[allow(non_camel_case_types)] + type U1MaxU0 = <>::Output as Same>::Output; + + assert_eq!(::to_u64(), ::to_u64()); +} +#[test] +#[allow(non_snake_case)] +fn test_1_Gcd_0() { + type A = UInt; + type B = UTerm; + type U1 = UInt; + + #[allow(non_camel_case_types)] + type U1GcdU0 = <>::Output as Same>::Output; + + assert_eq!(::to_u64(), ::to_u64()); +} +#[test] +#[allow(non_snake_case)] +fn test_1_Sub_0() { + type A = UInt; + type B = UTerm; + type U1 = UInt; + + #[allow(non_camel_case_types)] + type U1SubU0 = <>::Output as Same>::Output; + + assert_eq!(::to_u64(), ::to_u64()); +} +#[test] +#[allow(non_snake_case)] +fn test_1_Cmp_0() { + type A = UInt; + type B = UTerm; + + #[allow(non_camel_case_types)] + type U1CmpU0 = >::Output; + assert_eq!(::to_ordering(), Ordering::Greater); +} +#[test] +#[allow(non_snake_case)] +fn test_1_BitAnd_1() { + type A = UInt; + type B = UInt; + type U1 = UInt; + + #[allow(non_camel_case_types)] + type U1BitAndU1 = <>::Output as Same>::Output; + + assert_eq!(::to_u64(), ::to_u64()); +} +#[test] +#[allow(non_snake_case)] +fn test_1_BitOr_1() { + type A = UInt; + type B = UInt; + type U1 = UInt; + + #[allow(non_camel_case_types)] + type U1BitOrU1 = <>::Output as Same>::Output; + + assert_eq!(::to_u64(), ::to_u64()); +} +#[test] +#[allow(non_snake_case)] +fn test_1_BitXor_1() { + type A = UInt; + type B = UInt; + type U0 = UTerm; + + #[allow(non_camel_case_types)] + type U1BitXorU1 = <>::Output as Same>::Output; + + assert_eq!(::to_u64(), ::to_u64()); +} +#[test] +#[allow(non_snake_case)] +fn test_1_Shl_1() { + type A = UInt; + type B = UInt; + type U2 = UInt, B0>; + + #[allow(non_camel_case_types)] + type U1ShlU1 = <>::Output as Same>::Output; + + assert_eq!(::to_u64(), ::to_u64()); +} +#[test] +#[allow(non_snake_case)] +fn test_1_Shr_1() { + type A = UInt; + type B = UInt; + type U0 = UTerm; + + #[allow(non_camel_case_types)] + type U1ShrU1 = <>::Output as Same>::Output; + + assert_eq!(::to_u64(), ::to_u64()); +} +#[test] +#[allow(non_snake_case)] +fn test_1_Add_1() { + type A = UInt; + type B = UInt; + type U2 = UInt, B0>; + + #[allow(non_camel_case_types)] + type U1AddU1 = <>::Output as Same>::Output; + + assert_eq!(::to_u64(), ::to_u64()); +} +#[test] +#[allow(non_snake_case)] +fn test_1_Mul_1() { + type A = UInt; + type B = UInt; + type U1 = UInt; + + #[allow(non_camel_case_types)] + type U1MulU1 = <>::Output as Same>::Output; + + assert_eq!(::to_u64(), ::to_u64()); +} +#[test] +#[allow(non_snake_case)] +fn test_1_Pow_1() { + type A = UInt; + type B = UInt; + type U1 = UInt; + + #[allow(non_camel_case_types)] + type U1PowU1 = <>::Output as Same>::Output; + + assert_eq!(::to_u64(), ::to_u64()); +} +#[test] +#[allow(non_snake_case)] +fn test_1_Min_1() { + type A = UInt; + type B = UInt; + type U1 = UInt; + + #[allow(non_camel_case_types)] + type U1MinU1 = <>::Output as Same>::Output; + + assert_eq!(::to_u64(), ::to_u64()); +} +#[test] +#[allow(non_snake_case)] +fn test_1_Max_1() { + type A = UInt; + type B = UInt; + type U1 = UInt; + + #[allow(non_camel_case_types)] + type U1MaxU1 = <>::Output as Same>::Output; + + assert_eq!(::to_u64(), ::to_u64()); +} +#[test] +#[allow(non_snake_case)] +fn test_1_Gcd_1() { + type A = UInt; + type B = UInt; + type U1 = UInt; + + #[allow(non_camel_case_types)] + type U1GcdU1 = <>::Output as Same>::Output; + + assert_eq!(::to_u64(), ::to_u64()); +} +#[test] +#[allow(non_snake_case)] +fn test_1_Sub_1() { + type A = UInt; + type B = UInt; + type U0 = UTerm; + + #[allow(non_camel_case_types)] + type U1SubU1 = <>::Output as Same>::Output; + + assert_eq!(::to_u64(), ::to_u64()); +} +#[test] +#[allow(non_snake_case)] +fn test_1_Div_1() { + type A = UInt; + type B = UInt; + type U1 = UInt; + + #[allow(non_camel_case_types)] + type U1DivU1 = <>::Output as Same>::Output; + + assert_eq!(::to_u64(), ::to_u64()); +} +#[test] +#[allow(non_snake_case)] +fn test_1_Rem_1() { + type A = UInt; + type B = UInt; + type U0 = UTerm; + + #[allow(non_camel_case_types)] + type U1RemU1 = <>::Output as Same>::Output; + + assert_eq!(::to_u64(), ::to_u64()); +} +#[test] +#[allow(non_snake_case)] +fn test_1_PartialDiv_1() { + type A = UInt; + type B = UInt; + type U1 = UInt; + + #[allow(non_camel_case_types)] + type U1PartialDivU1 = <>::Output as Same>::Output; + + assert_eq!(::to_u64(), ::to_u64()); +} +#[test] +#[allow(non_snake_case)] +fn test_1_Cmp_1() { + type A = UInt; + type B = UInt; + + #[allow(non_camel_case_types)] + type U1CmpU1 = >::Output; + assert_eq!(::to_ordering(), Ordering::Equal); +} +#[test] +#[allow(non_snake_case)] +fn test_1_BitAnd_2() { + type A = UInt; + type B = UInt, B0>; + type U0 = UTerm; + + #[allow(non_camel_case_types)] + type U1BitAndU2 = <>::Output as Same>::Output; + + assert_eq!(::to_u64(), ::to_u64()); +} +#[test] +#[allow(non_snake_case)] +fn test_1_BitOr_2() { + type A = UInt; + type B = UInt, B0>; + type U3 = UInt, B1>; + + #[allow(non_camel_case_types)] + type U1BitOrU2 = <>::Output as Same>::Output; + + assert_eq!(::to_u64(), ::to_u64()); +} +#[test] +#[allow(non_snake_case)] +fn test_1_BitXor_2() { + type A = UInt; + type B = UInt, B0>; + type U3 = UInt, B1>; + + #[allow(non_camel_case_types)] + type U1BitXorU2 = <>::Output as Same>::Output; + + assert_eq!(::to_u64(), ::to_u64()); +} +#[test] +#[allow(non_snake_case)] +fn test_1_Shl_2() { + type A = UInt; + type B = UInt, B0>; + type U4 = UInt, B0>, B0>; + + #[allow(non_camel_case_types)] + type U1ShlU2 = <>::Output as Same>::Output; + + assert_eq!(::to_u64(), ::to_u64()); +} +#[test] +#[allow(non_snake_case)] +fn test_1_Shr_2() { + type A = UInt; + type B = UInt, B0>; + type U0 = UTerm; + + #[allow(non_camel_case_types)] + type U1ShrU2 = <>::Output as Same>::Output; + + assert_eq!(::to_u64(), ::to_u64()); +} +#[test] +#[allow(non_snake_case)] +fn test_1_Add_2() { + type A = UInt; + type B = UInt, B0>; + type U3 = UInt, B1>; + + #[allow(non_camel_case_types)] + type U1AddU2 = <>::Output as Same>::Output; + + assert_eq!(::to_u64(), ::to_u64()); +} +#[test] +#[allow(non_snake_case)] +fn test_1_Mul_2() { + type A = UInt; + type B = UInt, B0>; + type U2 = UInt, B0>; + + #[allow(non_camel_case_types)] + type U1MulU2 = <>::Output as Same>::Output; + + assert_eq!(::to_u64(), ::to_u64()); +} +#[test] +#[allow(non_snake_case)] +fn test_1_Pow_2() { + type A = UInt; + type B = UInt, B0>; + type U1 = UInt; + + #[allow(non_camel_case_types)] + type U1PowU2 = <>::Output as Same>::Output; + + assert_eq!(::to_u64(), ::to_u64()); +} +#[test] +#[allow(non_snake_case)] +fn test_1_Min_2() { + type A = UInt; + type B = UInt, B0>; + type U1 = UInt; + + #[allow(non_camel_case_types)] + type U1MinU2 = <>::Output as Same>::Output; + + assert_eq!(::to_u64(), ::to_u64()); +} +#[test] +#[allow(non_snake_case)] +fn test_1_Max_2() { + type A = UInt; + type B = UInt, B0>; + type U2 = UInt, B0>; + + #[allow(non_camel_case_types)] + type U1MaxU2 = <>::Output as Same>::Output; + + assert_eq!(::to_u64(), ::to_u64()); +} +#[test] +#[allow(non_snake_case)] +fn test_1_Gcd_2() { + type A = UInt; + type B = UInt, B0>; + type U1 = UInt; + + #[allow(non_camel_case_types)] + type U1GcdU2 = <>::Output as Same>::Output; + + assert_eq!(::to_u64(), ::to_u64()); +} +#[test] +#[allow(non_snake_case)] +fn test_1_Div_2() { + type A = UInt; + type B = UInt, B0>; + type U0 = UTerm; + + #[allow(non_camel_case_types)] + type U1DivU2 = <>::Output as Same>::Output; + + assert_eq!(::to_u64(), ::to_u64()); +} +#[test] +#[allow(non_snake_case)] +fn test_1_Rem_2() { + type A = UInt; + type B = UInt, B0>; + type U1 = UInt; + + #[allow(non_camel_case_types)] + type U1RemU2 = <>::Output as Same>::Output; + + assert_eq!(::to_u64(), ::to_u64()); +} +#[test] +#[allow(non_snake_case)] +fn test_1_Cmp_2() { + type A = UInt; + type B = UInt, B0>; + + #[allow(non_camel_case_types)] + type U1CmpU2 = >::Output; + assert_eq!(::to_ordering(), Ordering::Less); +} +#[test] +#[allow(non_snake_case)] +fn test_1_BitAnd_3() { + type A = UInt; + type B = UInt, B1>; + type U1 = UInt; + + #[allow(non_camel_case_types)] + type U1BitAndU3 = <>::Output as Same>::Output; + + assert_eq!(::to_u64(), ::to_u64()); +} +#[test] +#[allow(non_snake_case)] +fn test_1_BitOr_3() { + type A = UInt; + type B = UInt, B1>; + type U3 = UInt, B1>; + + #[allow(non_camel_case_types)] + type U1BitOrU3 = <>::Output as Same>::Output; + + assert_eq!(::to_u64(), ::to_u64()); +} +#[test] +#[allow(non_snake_case)] +fn test_1_BitXor_3() { + type A = UInt; + type B = UInt, B1>; + type U2 = UInt, B0>; + + #[allow(non_camel_case_types)] + type U1BitXorU3 = <>::Output as Same>::Output; + + assert_eq!(::to_u64(), ::to_u64()); +} +#[test] +#[allow(non_snake_case)] +fn test_1_Shl_3() { + type A = UInt; + type B = UInt, B1>; + type U8 = UInt, B0>, B0>, B0>; + + #[allow(non_camel_case_types)] + type U1ShlU3 = <>::Output as Same>::Output; + + assert_eq!(::to_u64(), ::to_u64()); +} +#[test] +#[allow(non_snake_case)] +fn test_1_Shr_3() { + type A = UInt; + type B = UInt, B1>; + type U0 = UTerm; + + #[allow(non_camel_case_types)] + type U1ShrU3 = <>::Output as Same>::Output; + + assert_eq!(::to_u64(), ::to_u64()); +} +#[test] +#[allow(non_snake_case)] +fn test_1_Add_3() { + type A = UInt; + type B = UInt, B1>; + type U4 = UInt, B0>, B0>; + + #[allow(non_camel_case_types)] + type U1AddU3 = <>::Output as Same>::Output; + + assert_eq!(::to_u64(), ::to_u64()); +} +#[test] +#[allow(non_snake_case)] +fn test_1_Mul_3() { + type A = UInt; + type B = UInt, B1>; + type U3 = UInt, B1>; + + #[allow(non_camel_case_types)] + type U1MulU3 = <>::Output as Same>::Output; + + assert_eq!(::to_u64(), ::to_u64()); +} +#[test] +#[allow(non_snake_case)] +fn test_1_Pow_3() { + type A = UInt; + type B = UInt, B1>; + type U1 = UInt; + + #[allow(non_camel_case_types)] + type U1PowU3 = <>::Output as Same>::Output; + + assert_eq!(::to_u64(), ::to_u64()); +} +#[test] +#[allow(non_snake_case)] +fn test_1_Min_3() { + type A = UInt; + type B = UInt, B1>; + type U1 = UInt; + + #[allow(non_camel_case_types)] + type U1MinU3 = <>::Output as Same>::Output; + + assert_eq!(::to_u64(), ::to_u64()); +} +#[test] +#[allow(non_snake_case)] +fn test_1_Max_3() { + type A = UInt; + type B = UInt, B1>; + type U3 = UInt, B1>; + + #[allow(non_camel_case_types)] + type U1MaxU3 = <>::Output as Same>::Output; + + assert_eq!(::to_u64(), ::to_u64()); +} +#[test] +#[allow(non_snake_case)] +fn test_1_Gcd_3() { + type A = UInt; + type B = UInt, B1>; + type U1 = UInt; + + #[allow(non_camel_case_types)] + type U1GcdU3 = <>::Output as Same>::Output; + + assert_eq!(::to_u64(), ::to_u64()); +} +#[test] +#[allow(non_snake_case)] +fn test_1_Div_3() { + type A = UInt; + type B = UInt, B1>; + type U0 = UTerm; + + #[allow(non_camel_case_types)] + type U1DivU3 = <>::Output as Same>::Output; + + assert_eq!(::to_u64(), ::to_u64()); +} +#[test] +#[allow(non_snake_case)] +fn test_1_Rem_3() { + type A = UInt; + type B = UInt, B1>; + type U1 = UInt; + + #[allow(non_camel_case_types)] + type U1RemU3 = <>::Output as Same>::Output; + + assert_eq!(::to_u64(), ::to_u64()); +} +#[test] +#[allow(non_snake_case)] +fn test_1_Cmp_3() { + type A = UInt; + type B = UInt, B1>; + + #[allow(non_camel_case_types)] + type U1CmpU3 = >::Output; + assert_eq!(::to_ordering(), Ordering::Less); +} +#[test] +#[allow(non_snake_case)] +fn test_1_BitAnd_4() { + type A = UInt; + type B = UInt, B0>, B0>; + type U0 = UTerm; + + #[allow(non_camel_case_types)] + type U1BitAndU4 = <>::Output as Same>::Output; + + assert_eq!(::to_u64(), ::to_u64()); +} +#[test] +#[allow(non_snake_case)] +fn test_1_BitOr_4() { + type A = UInt; + type B = UInt, B0>, B0>; + type U5 = UInt, B0>, B1>; + + #[allow(non_camel_case_types)] + type U1BitOrU4 = <>::Output as Same>::Output; + + assert_eq!(::to_u64(), ::to_u64()); +} +#[test] +#[allow(non_snake_case)] +fn test_1_BitXor_4() { + type A = UInt; + type B = UInt, B0>, B0>; + type U5 = UInt, B0>, B1>; + + #[allow(non_camel_case_types)] + type U1BitXorU4 = <>::Output as Same>::Output; + + assert_eq!(::to_u64(), ::to_u64()); +} +#[test] +#[allow(non_snake_case)] +fn test_1_Shl_4() { + type A = UInt; + type B = UInt, B0>, B0>; + type U16 = UInt, B0>, B0>, B0>, B0>; + + #[allow(non_camel_case_types)] + type U1ShlU4 = <>::Output as Same>::Output; + + assert_eq!(::to_u64(), ::to_u64()); +} +#[test] +#[allow(non_snake_case)] +fn test_1_Shr_4() { + type A = UInt; + type B = UInt, B0>, B0>; + type U0 = UTerm; + + #[allow(non_camel_case_types)] + type U1ShrU4 = <>::Output as Same>::Output; + + assert_eq!(::to_u64(), ::to_u64()); +} +#[test] +#[allow(non_snake_case)] +fn test_1_Add_4() { + type A = UInt; + type B = UInt, B0>, B0>; + type U5 = UInt, B0>, B1>; + + #[allow(non_camel_case_types)] + type U1AddU4 = <>::Output as Same>::Output; + + assert_eq!(::to_u64(), ::to_u64()); +} +#[test] +#[allow(non_snake_case)] +fn test_1_Mul_4() { + type A = UInt; + type B = UInt, B0>, B0>; + type U4 = UInt, B0>, B0>; + + #[allow(non_camel_case_types)] + type U1MulU4 = <>::Output as Same>::Output; + + assert_eq!(::to_u64(), ::to_u64()); +} +#[test] +#[allow(non_snake_case)] +fn test_1_Pow_4() { + type A = UInt; + type B = UInt, B0>, B0>; + type U1 = UInt; + + #[allow(non_camel_case_types)] + type U1PowU4 = <>::Output as Same>::Output; + + assert_eq!(::to_u64(), ::to_u64()); +} +#[test] +#[allow(non_snake_case)] +fn test_1_Min_4() { + type A = UInt; + type B = UInt, B0>, B0>; + type U1 = UInt; + + #[allow(non_camel_case_types)] + type U1MinU4 = <>::Output as Same>::Output; + + assert_eq!(::to_u64(), ::to_u64()); +} +#[test] +#[allow(non_snake_case)] +fn test_1_Max_4() { + type A = UInt; + type B = UInt, B0>, B0>; + type U4 = UInt, B0>, B0>; + + #[allow(non_camel_case_types)] + type U1MaxU4 = <>::Output as Same>::Output; + + assert_eq!(::to_u64(), ::to_u64()); +} +#[test] +#[allow(non_snake_case)] +fn test_1_Gcd_4() { + type A = UInt; + type B = UInt, B0>, B0>; + type U1 = UInt; + + #[allow(non_camel_case_types)] + type U1GcdU4 = <>::Output as Same>::Output; + + assert_eq!(::to_u64(), ::to_u64()); +} +#[test] +#[allow(non_snake_case)] +fn test_1_Div_4() { + type A = UInt; + type B = UInt, B0>, B0>; + type U0 = UTerm; + + #[allow(non_camel_case_types)] + type U1DivU4 = <>::Output as Same>::Output; + + assert_eq!(::to_u64(), ::to_u64()); +} +#[test] +#[allow(non_snake_case)] +fn test_1_Rem_4() { + type A = UInt; + type B = UInt, B0>, B0>; + type U1 = UInt; + + #[allow(non_camel_case_types)] + type U1RemU4 = <>::Output as Same>::Output; + + assert_eq!(::to_u64(), ::to_u64()); +} +#[test] +#[allow(non_snake_case)] +fn test_1_Cmp_4() { + type A = UInt; + type B = UInt, B0>, B0>; + + #[allow(non_camel_case_types)] + type U1CmpU4 = >::Output; + assert_eq!(::to_ordering(), Ordering::Less); +} +#[test] +#[allow(non_snake_case)] +fn test_1_BitAnd_5() { + type A = UInt; + type B = UInt, B0>, B1>; + type U1 = UInt; + + #[allow(non_camel_case_types)] + type U1BitAndU5 = <>::Output as Same>::Output; + + assert_eq!(::to_u64(), ::to_u64()); +} +#[test] +#[allow(non_snake_case)] +fn test_1_BitOr_5() { + type A = UInt; + type B = UInt, B0>, B1>; + type U5 = UInt, B0>, B1>; + + #[allow(non_camel_case_types)] + type U1BitOrU5 = <>::Output as Same>::Output; + + assert_eq!(::to_u64(), ::to_u64()); +} +#[test] +#[allow(non_snake_case)] +fn test_1_BitXor_5() { + type A = UInt; + type B = UInt, B0>, B1>; + type U4 = UInt, B0>, B0>; + + #[allow(non_camel_case_types)] + type U1BitXorU5 = <>::Output as Same>::Output; + + assert_eq!(::to_u64(), ::to_u64()); +} +#[test] +#[allow(non_snake_case)] +fn test_1_Shl_5() { + type A = UInt; + type B = UInt, B0>, B1>; + type U32 = UInt, B0>, B0>, B0>, B0>, B0>; + + #[allow(non_camel_case_types)] + type U1ShlU5 = <>::Output as Same>::Output; + + assert_eq!(::to_u64(), ::to_u64()); +} +#[test] +#[allow(non_snake_case)] +fn test_1_Shr_5() { + type A = UInt; + type B = UInt, B0>, B1>; + type U0 = UTerm; + + #[allow(non_camel_case_types)] + type U1ShrU5 = <>::Output as Same>::Output; + + assert_eq!(::to_u64(), ::to_u64()); +} +#[test] +#[allow(non_snake_case)] +fn test_1_Add_5() { + type A = UInt; + type B = UInt, B0>, B1>; + type U6 = UInt, B1>, B0>; + + #[allow(non_camel_case_types)] + type U1AddU5 = <>::Output as Same>::Output; + + assert_eq!(::to_u64(), ::to_u64()); +} +#[test] +#[allow(non_snake_case)] +fn test_1_Mul_5() { + type A = UInt; + type B = UInt, B0>, B1>; + type U5 = UInt, B0>, B1>; + + #[allow(non_camel_case_types)] + type U1MulU5 = <>::Output as Same>::Output; + + assert_eq!(::to_u64(), ::to_u64()); +} +#[test] +#[allow(non_snake_case)] +fn test_1_Pow_5() { + type A = UInt; + type B = UInt, B0>, B1>; + type U1 = UInt; + + #[allow(non_camel_case_types)] + type U1PowU5 = <>::Output as Same>::Output; + + assert_eq!(::to_u64(), ::to_u64()); +} +#[test] +#[allow(non_snake_case)] +fn test_1_Min_5() { + type A = UInt; + type B = UInt, B0>, B1>; + type U1 = UInt; + + #[allow(non_camel_case_types)] + type U1MinU5 = <>::Output as Same>::Output; + + assert_eq!(::to_u64(), ::to_u64()); +} +#[test] +#[allow(non_snake_case)] +fn test_1_Max_5() { + type A = UInt; + type B = UInt, B0>, B1>; + type U5 = UInt, B0>, B1>; + + #[allow(non_camel_case_types)] + type U1MaxU5 = <>::Output as Same>::Output; + + assert_eq!(::to_u64(), ::to_u64()); +} +#[test] +#[allow(non_snake_case)] +fn test_1_Gcd_5() { + type A = UInt; + type B = UInt, B0>, B1>; + type U1 = UInt; + + #[allow(non_camel_case_types)] + type U1GcdU5 = <>::Output as Same>::Output; + + assert_eq!(::to_u64(), ::to_u64()); +} +#[test] +#[allow(non_snake_case)] +fn test_1_Div_5() { + type A = UInt; + type B = UInt, B0>, B1>; + type U0 = UTerm; + + #[allow(non_camel_case_types)] + type U1DivU5 = <>::Output as Same>::Output; + + assert_eq!(::to_u64(), ::to_u64()); +} +#[test] +#[allow(non_snake_case)] +fn test_1_Rem_5() { + type A = UInt; + type B = UInt, B0>, B1>; + type U1 = UInt; + + #[allow(non_camel_case_types)] + type U1RemU5 = <>::Output as Same>::Output; + + assert_eq!(::to_u64(), ::to_u64()); +} +#[test] +#[allow(non_snake_case)] +fn test_1_Cmp_5() { + type A = UInt; + type B = UInt, B0>, B1>; + + #[allow(non_camel_case_types)] + type U1CmpU5 = >::Output; + assert_eq!(::to_ordering(), Ordering::Less); +} +#[test] +#[allow(non_snake_case)] +fn test_2_BitAnd_0() { + type A = UInt, B0>; + type B = UTerm; + type U0 = UTerm; + + #[allow(non_camel_case_types)] + type U2BitAndU0 = <>::Output as Same>::Output; + + assert_eq!(::to_u64(), ::to_u64()); +} +#[test] +#[allow(non_snake_case)] +fn test_2_BitOr_0() { + type A = UInt, B0>; + type B = UTerm; + type U2 = UInt, B0>; + + #[allow(non_camel_case_types)] + type U2BitOrU0 = <>::Output as Same>::Output; + + assert_eq!(::to_u64(), ::to_u64()); +} +#[test] +#[allow(non_snake_case)] +fn test_2_BitXor_0() { + type A = UInt, B0>; + type B = UTerm; + type U2 = UInt, B0>; + + #[allow(non_camel_case_types)] + type U2BitXorU0 = <>::Output as Same>::Output; + + assert_eq!(::to_u64(), ::to_u64()); +} +#[test] +#[allow(non_snake_case)] +fn test_2_Shl_0() { + type A = UInt, B0>; + type B = UTerm; + type U2 = UInt, B0>; + + #[allow(non_camel_case_types)] + type U2ShlU0 = <>::Output as Same>::Output; + + assert_eq!(::to_u64(), ::to_u64()); +} +#[test] +#[allow(non_snake_case)] +fn test_2_Shr_0() { + type A = UInt, B0>; + type B = UTerm; + type U2 = UInt, B0>; + + #[allow(non_camel_case_types)] + type U2ShrU0 = <>::Output as Same>::Output; + + assert_eq!(::to_u64(), ::to_u64()); +} +#[test] +#[allow(non_snake_case)] +fn test_2_Add_0() { + type A = UInt, B0>; + type B = UTerm; + type U2 = UInt, B0>; + + #[allow(non_camel_case_types)] + type U2AddU0 = <>::Output as Same>::Output; + + assert_eq!(::to_u64(), ::to_u64()); +} +#[test] +#[allow(non_snake_case)] +fn test_2_Mul_0() { + type A = UInt, B0>; + type B = UTerm; + type U0 = UTerm; + + #[allow(non_camel_case_types)] + type U2MulU0 = <>::Output as Same>::Output; + + assert_eq!(::to_u64(), ::to_u64()); +} +#[test] +#[allow(non_snake_case)] +fn test_2_Pow_0() { + type A = UInt, B0>; + type B = UTerm; + type U1 = UInt; + + #[allow(non_camel_case_types)] + type U2PowU0 = <>::Output as Same>::Output; + + assert_eq!(::to_u64(), ::to_u64()); +} +#[test] +#[allow(non_snake_case)] +fn test_2_Min_0() { + type A = UInt, B0>; + type B = UTerm; + type U0 = UTerm; + + #[allow(non_camel_case_types)] + type U2MinU0 = <>::Output as Same>::Output; + + assert_eq!(::to_u64(), ::to_u64()); +} +#[test] +#[allow(non_snake_case)] +fn test_2_Max_0() { + type A = UInt, B0>; + type B = UTerm; + type U2 = UInt, B0>; + + #[allow(non_camel_case_types)] + type U2MaxU0 = <>::Output as Same>::Output; + + assert_eq!(::to_u64(), ::to_u64()); +} +#[test] +#[allow(non_snake_case)] +fn test_2_Gcd_0() { + type A = UInt, B0>; + type B = UTerm; + type U2 = UInt, B0>; + + #[allow(non_camel_case_types)] + type U2GcdU0 = <>::Output as Same>::Output; + + assert_eq!(::to_u64(), ::to_u64()); +} +#[test] +#[allow(non_snake_case)] +fn test_2_Sub_0() { + type A = UInt, B0>; + type B = UTerm; + type U2 = UInt, B0>; + + #[allow(non_camel_case_types)] + type U2SubU0 = <>::Output as Same>::Output; + + assert_eq!(::to_u64(), ::to_u64()); +} +#[test] +#[allow(non_snake_case)] +fn test_2_Cmp_0() { + type A = UInt, B0>; + type B = UTerm; + + #[allow(non_camel_case_types)] + type U2CmpU0 = >::Output; + assert_eq!(::to_ordering(), Ordering::Greater); +} +#[test] +#[allow(non_snake_case)] +fn test_2_BitAnd_1() { + type A = UInt, B0>; + type B = UInt; + type U0 = UTerm; + + #[allow(non_camel_case_types)] + type U2BitAndU1 = <>::Output as Same>::Output; + + assert_eq!(::to_u64(), ::to_u64()); +} +#[test] +#[allow(non_snake_case)] +fn test_2_BitOr_1() { + type A = UInt, B0>; + type B = UInt; + type U3 = UInt, B1>; + + #[allow(non_camel_case_types)] + type U2BitOrU1 = <>::Output as Same>::Output; + + assert_eq!(::to_u64(), ::to_u64()); +} +#[test] +#[allow(non_snake_case)] +fn test_2_BitXor_1() { + type A = UInt, B0>; + type B = UInt; + type U3 = UInt, B1>; + + #[allow(non_camel_case_types)] + type U2BitXorU1 = <>::Output as Same>::Output; + + assert_eq!(::to_u64(), ::to_u64()); +} +#[test] +#[allow(non_snake_case)] +fn test_2_Shl_1() { + type A = UInt, B0>; + type B = UInt; + type U4 = UInt, B0>, B0>; + + #[allow(non_camel_case_types)] + type U2ShlU1 = <>::Output as Same>::Output; + + assert_eq!(::to_u64(), ::to_u64()); +} +#[test] +#[allow(non_snake_case)] +fn test_2_Shr_1() { + type A = UInt, B0>; + type B = UInt; + type U1 = UInt; + + #[allow(non_camel_case_types)] + type U2ShrU1 = <>::Output as Same>::Output; + + assert_eq!(::to_u64(), ::to_u64()); +} +#[test] +#[allow(non_snake_case)] +fn test_2_Add_1() { + type A = UInt, B0>; + type B = UInt; + type U3 = UInt, B1>; + + #[allow(non_camel_case_types)] + type U2AddU1 = <>::Output as Same>::Output; + + assert_eq!(::to_u64(), ::to_u64()); +} +#[test] +#[allow(non_snake_case)] +fn test_2_Mul_1() { + type A = UInt, B0>; + type B = UInt; + type U2 = UInt, B0>; + + #[allow(non_camel_case_types)] + type U2MulU1 = <>::Output as Same>::Output; + + assert_eq!(::to_u64(), ::to_u64()); +} +#[test] +#[allow(non_snake_case)] +fn test_2_Pow_1() { + type A = UInt, B0>; + type B = UInt; + type U2 = UInt, B0>; + + #[allow(non_camel_case_types)] + type U2PowU1 = <>::Output as Same>::Output; + + assert_eq!(::to_u64(), ::to_u64()); +} +#[test] +#[allow(non_snake_case)] +fn test_2_Min_1() { + type A = UInt, B0>; + type B = UInt; + type U1 = UInt; + + #[allow(non_camel_case_types)] + type U2MinU1 = <>::Output as Same>::Output; + + assert_eq!(::to_u64(), ::to_u64()); +} +#[test] +#[allow(non_snake_case)] +fn test_2_Max_1() { + type A = UInt, B0>; + type B = UInt; + type U2 = UInt, B0>; + + #[allow(non_camel_case_types)] + type U2MaxU1 = <>::Output as Same>::Output; + + assert_eq!(::to_u64(), ::to_u64()); +} +#[test] +#[allow(non_snake_case)] +fn test_2_Gcd_1() { + type A = UInt, B0>; + type B = UInt; + type U1 = UInt; + + #[allow(non_camel_case_types)] + type U2GcdU1 = <>::Output as Same>::Output; + + assert_eq!(::to_u64(), ::to_u64()); +} +#[test] +#[allow(non_snake_case)] +fn test_2_Sub_1() { + type A = UInt, B0>; + type B = UInt; + type U1 = UInt; + + #[allow(non_camel_case_types)] + type U2SubU1 = <>::Output as Same>::Output; + + assert_eq!(::to_u64(), ::to_u64()); +} +#[test] +#[allow(non_snake_case)] +fn test_2_Div_1() { + type A = UInt, B0>; + type B = UInt; + type U2 = UInt, B0>; + + #[allow(non_camel_case_types)] + type U2DivU1 = <>::Output as Same>::Output; + + assert_eq!(::to_u64(), ::to_u64()); +} +#[test] +#[allow(non_snake_case)] +fn test_2_Rem_1() { + type A = UInt, B0>; + type B = UInt; + type U0 = UTerm; + + #[allow(non_camel_case_types)] + type U2RemU1 = <>::Output as Same>::Output; + + assert_eq!(::to_u64(), ::to_u64()); +} +#[test] +#[allow(non_snake_case)] +fn test_2_PartialDiv_1() { + type A = UInt, B0>; + type B = UInt; + type U2 = UInt, B0>; + + #[allow(non_camel_case_types)] + type U2PartialDivU1 = <>::Output as Same>::Output; + + assert_eq!(::to_u64(), ::to_u64()); +} +#[test] +#[allow(non_snake_case)] +fn test_2_Cmp_1() { + type A = UInt, B0>; + type B = UInt; + + #[allow(non_camel_case_types)] + type U2CmpU1 = >::Output; + assert_eq!(::to_ordering(), Ordering::Greater); +} +#[test] +#[allow(non_snake_case)] +fn test_2_BitAnd_2() { + type A = UInt, B0>; + type B = UInt, B0>; + type U2 = UInt, B0>; + + #[allow(non_camel_case_types)] + type U2BitAndU2 = <>::Output as Same>::Output; + + assert_eq!(::to_u64(), ::to_u64()); +} +#[test] +#[allow(non_snake_case)] +fn test_2_BitOr_2() { + type A = UInt, B0>; + type B = UInt, B0>; + type U2 = UInt, B0>; + + #[allow(non_camel_case_types)] + type U2BitOrU2 = <>::Output as Same>::Output; + + assert_eq!(::to_u64(), ::to_u64()); +} +#[test] +#[allow(non_snake_case)] +fn test_2_BitXor_2() { + type A = UInt, B0>; + type B = UInt, B0>; + type U0 = UTerm; + + #[allow(non_camel_case_types)] + type U2BitXorU2 = <>::Output as Same>::Output; + + assert_eq!(::to_u64(), ::to_u64()); +} +#[test] +#[allow(non_snake_case)] +fn test_2_Shl_2() { + type A = UInt, B0>; + type B = UInt, B0>; + type U8 = UInt, B0>, B0>, B0>; + + #[allow(non_camel_case_types)] + type U2ShlU2 = <>::Output as Same>::Output; + + assert_eq!(::to_u64(), ::to_u64()); +} +#[test] +#[allow(non_snake_case)] +fn test_2_Shr_2() { + type A = UInt, B0>; + type B = UInt, B0>; + type U0 = UTerm; + + #[allow(non_camel_case_types)] + type U2ShrU2 = <>::Output as Same>::Output; + + assert_eq!(::to_u64(), ::to_u64()); +} +#[test] +#[allow(non_snake_case)] +fn test_2_Add_2() { + type A = UInt, B0>; + type B = UInt, B0>; + type U4 = UInt, B0>, B0>; + + #[allow(non_camel_case_types)] + type U2AddU2 = <>::Output as Same>::Output; + + assert_eq!(::to_u64(), ::to_u64()); +} +#[test] +#[allow(non_snake_case)] +fn test_2_Mul_2() { + type A = UInt, B0>; + type B = UInt, B0>; + type U4 = UInt, B0>, B0>; + + #[allow(non_camel_case_types)] + type U2MulU2 = <>::Output as Same>::Output; + + assert_eq!(::to_u64(), ::to_u64()); +} +#[test] +#[allow(non_snake_case)] +fn test_2_Pow_2() { + type A = UInt, B0>; + type B = UInt, B0>; + type U4 = UInt, B0>, B0>; + + #[allow(non_camel_case_types)] + type U2PowU2 = <>::Output as Same>::Output; + + assert_eq!(::to_u64(), ::to_u64()); +} +#[test] +#[allow(non_snake_case)] +fn test_2_Min_2() { + type A = UInt, B0>; + type B = UInt, B0>; + type U2 = UInt, B0>; + + #[allow(non_camel_case_types)] + type U2MinU2 = <>::Output as Same>::Output; + + assert_eq!(::to_u64(), ::to_u64()); +} +#[test] +#[allow(non_snake_case)] +fn test_2_Max_2() { + type A = UInt, B0>; + type B = UInt, B0>; + type U2 = UInt, B0>; + + #[allow(non_camel_case_types)] + type U2MaxU2 = <>::Output as Same>::Output; + + assert_eq!(::to_u64(), ::to_u64()); +} +#[test] +#[allow(non_snake_case)] +fn test_2_Gcd_2() { + type A = UInt, B0>; + type B = UInt, B0>; + type U2 = UInt, B0>; + + #[allow(non_camel_case_types)] + type U2GcdU2 = <>::Output as Same>::Output; + + assert_eq!(::to_u64(), ::to_u64()); +} +#[test] +#[allow(non_snake_case)] +fn test_2_Sub_2() { + type A = UInt, B0>; + type B = UInt, B0>; + type U0 = UTerm; + + #[allow(non_camel_case_types)] + type U2SubU2 = <>::Output as Same>::Output; + + assert_eq!(::to_u64(), ::to_u64()); +} +#[test] +#[allow(non_snake_case)] +fn test_2_Div_2() { + type A = UInt, B0>; + type B = UInt, B0>; + type U1 = UInt; + + #[allow(non_camel_case_types)] + type U2DivU2 = <>::Output as Same>::Output; + + assert_eq!(::to_u64(), ::to_u64()); +} +#[test] +#[allow(non_snake_case)] +fn test_2_Rem_2() { + type A = UInt, B0>; + type B = UInt, B0>; + type U0 = UTerm; + + #[allow(non_camel_case_types)] + type U2RemU2 = <>::Output as Same>::Output; + + assert_eq!(::to_u64(), ::to_u64()); +} +#[test] +#[allow(non_snake_case)] +fn test_2_PartialDiv_2() { + type A = UInt, B0>; + type B = UInt, B0>; + type U1 = UInt; + + #[allow(non_camel_case_types)] + type U2PartialDivU2 = <>::Output as Same>::Output; + + assert_eq!(::to_u64(), ::to_u64()); +} +#[test] +#[allow(non_snake_case)] +fn test_2_Cmp_2() { + type A = UInt, B0>; + type B = UInt, B0>; + + #[allow(non_camel_case_types)] + type U2CmpU2 = >::Output; + assert_eq!(::to_ordering(), Ordering::Equal); +} +#[test] +#[allow(non_snake_case)] +fn test_2_BitAnd_3() { + type A = UInt, B0>; + type B = UInt, B1>; + type U2 = UInt, B0>; + + #[allow(non_camel_case_types)] + type U2BitAndU3 = <>::Output as Same>::Output; + + assert_eq!(::to_u64(), ::to_u64()); +} +#[test] +#[allow(non_snake_case)] +fn test_2_BitOr_3() { + type A = UInt, B0>; + type B = UInt, B1>; + type U3 = UInt, B1>; + + #[allow(non_camel_case_types)] + type U2BitOrU3 = <>::Output as Same>::Output; + + assert_eq!(::to_u64(), ::to_u64()); +} +#[test] +#[allow(non_snake_case)] +fn test_2_BitXor_3() { + type A = UInt, B0>; + type B = UInt, B1>; + type U1 = UInt; + + #[allow(non_camel_case_types)] + type U2BitXorU3 = <>::Output as Same>::Output; + + assert_eq!(::to_u64(), ::to_u64()); +} +#[test] +#[allow(non_snake_case)] +fn test_2_Shl_3() { + type A = UInt, B0>; + type B = UInt, B1>; + type U16 = UInt, B0>, B0>, B0>, B0>; + + #[allow(non_camel_case_types)] + type U2ShlU3 = <>::Output as Same>::Output; + + assert_eq!(::to_u64(), ::to_u64()); +} +#[test] +#[allow(non_snake_case)] +fn test_2_Shr_3() { + type A = UInt, B0>; + type B = UInt, B1>; + type U0 = UTerm; + + #[allow(non_camel_case_types)] + type U2ShrU3 = <>::Output as Same>::Output; + + assert_eq!(::to_u64(), ::to_u64()); +} +#[test] +#[allow(non_snake_case)] +fn test_2_Add_3() { + type A = UInt, B0>; + type B = UInt, B1>; + type U5 = UInt, B0>, B1>; + + #[allow(non_camel_case_types)] + type U2AddU3 = <>::Output as Same>::Output; + + assert_eq!(::to_u64(), ::to_u64()); +} +#[test] +#[allow(non_snake_case)] +fn test_2_Mul_3() { + type A = UInt, B0>; + type B = UInt, B1>; + type U6 = UInt, B1>, B0>; + + #[allow(non_camel_case_types)] + type U2MulU3 = <>::Output as Same>::Output; + + assert_eq!(::to_u64(), ::to_u64()); +} +#[test] +#[allow(non_snake_case)] +fn test_2_Pow_3() { + type A = UInt, B0>; + type B = UInt, B1>; + type U8 = UInt, B0>, B0>, B0>; + + #[allow(non_camel_case_types)] + type U2PowU3 = <>::Output as Same>::Output; + + assert_eq!(::to_u64(), ::to_u64()); +} +#[test] +#[allow(non_snake_case)] +fn test_2_Min_3() { + type A = UInt, B0>; + type B = UInt, B1>; + type U2 = UInt, B0>; + + #[allow(non_camel_case_types)] + type U2MinU3 = <>::Output as Same>::Output; + + assert_eq!(::to_u64(), ::to_u64()); +} +#[test] +#[allow(non_snake_case)] +fn test_2_Max_3() { + type A = UInt, B0>; + type B = UInt, B1>; + type U3 = UInt, B1>; + + #[allow(non_camel_case_types)] + type U2MaxU3 = <>::Output as Same>::Output; + + assert_eq!(::to_u64(), ::to_u64()); +} +#[test] +#[allow(non_snake_case)] +fn test_2_Gcd_3() { + type A = UInt, B0>; + type B = UInt, B1>; + type U1 = UInt; + + #[allow(non_camel_case_types)] + type U2GcdU3 = <>::Output as Same>::Output; + + assert_eq!(::to_u64(), ::to_u64()); +} +#[test] +#[allow(non_snake_case)] +fn test_2_Div_3() { + type A = UInt, B0>; + type B = UInt, B1>; + type U0 = UTerm; + + #[allow(non_camel_case_types)] + type U2DivU3 = <>::Output as Same>::Output; + + assert_eq!(::to_u64(), ::to_u64()); +} +#[test] +#[allow(non_snake_case)] +fn test_2_Rem_3() { + type A = UInt, B0>; + type B = UInt, B1>; + type U2 = UInt, B0>; + + #[allow(non_camel_case_types)] + type U2RemU3 = <>::Output as Same>::Output; + + assert_eq!(::to_u64(), ::to_u64()); +} +#[test] +#[allow(non_snake_case)] +fn test_2_Cmp_3() { + type A = UInt, B0>; + type B = UInt, B1>; + + #[allow(non_camel_case_types)] + type U2CmpU3 = >::Output; + assert_eq!(::to_ordering(), Ordering::Less); +} +#[test] +#[allow(non_snake_case)] +fn test_2_BitAnd_4() { + type A = UInt, B0>; + type B = UInt, B0>, B0>; + type U0 = UTerm; + + #[allow(non_camel_case_types)] + type U2BitAndU4 = <>::Output as Same>::Output; + + assert_eq!(::to_u64(), ::to_u64()); +} +#[test] +#[allow(non_snake_case)] +fn test_2_BitOr_4() { + type A = UInt, B0>; + type B = UInt, B0>, B0>; + type U6 = UInt, B1>, B0>; + + #[allow(non_camel_case_types)] + type U2BitOrU4 = <>::Output as Same>::Output; + + assert_eq!(::to_u64(), ::to_u64()); +} +#[test] +#[allow(non_snake_case)] +fn test_2_BitXor_4() { + type A = UInt, B0>; + type B = UInt, B0>, B0>; + type U6 = UInt, B1>, B0>; + + #[allow(non_camel_case_types)] + type U2BitXorU4 = <>::Output as Same>::Output; + + assert_eq!(::to_u64(), ::to_u64()); +} +#[test] +#[allow(non_snake_case)] +fn test_2_Shl_4() { + type A = UInt, B0>; + type B = UInt, B0>, B0>; + type U32 = UInt, B0>, B0>, B0>, B0>, B0>; + + #[allow(non_camel_case_types)] + type U2ShlU4 = <>::Output as Same>::Output; + + assert_eq!(::to_u64(), ::to_u64()); +} +#[test] +#[allow(non_snake_case)] +fn test_2_Shr_4() { + type A = UInt, B0>; + type B = UInt, B0>, B0>; + type U0 = UTerm; + + #[allow(non_camel_case_types)] + type U2ShrU4 = <>::Output as Same>::Output; + + assert_eq!(::to_u64(), ::to_u64()); +} +#[test] +#[allow(non_snake_case)] +fn test_2_Add_4() { + type A = UInt, B0>; + type B = UInt, B0>, B0>; + type U6 = UInt, B1>, B0>; + + #[allow(non_camel_case_types)] + type U2AddU4 = <>::Output as Same>::Output; + + assert_eq!(::to_u64(), ::to_u64()); +} +#[test] +#[allow(non_snake_case)] +fn test_2_Mul_4() { + type A = UInt, B0>; + type B = UInt, B0>, B0>; + type U8 = UInt, B0>, B0>, B0>; + + #[allow(non_camel_case_types)] + type U2MulU4 = <>::Output as Same>::Output; + + assert_eq!(::to_u64(), ::to_u64()); +} +#[test] +#[allow(non_snake_case)] +fn test_2_Pow_4() { + type A = UInt, B0>; + type B = UInt, B0>, B0>; + type U16 = UInt, B0>, B0>, B0>, B0>; + + #[allow(non_camel_case_types)] + type U2PowU4 = <>::Output as Same>::Output; + + assert_eq!(::to_u64(), ::to_u64()); +} +#[test] +#[allow(non_snake_case)] +fn test_2_Min_4() { + type A = UInt, B0>; + type B = UInt, B0>, B0>; + type U2 = UInt, B0>; + + #[allow(non_camel_case_types)] + type U2MinU4 = <>::Output as Same>::Output; + + assert_eq!(::to_u64(), ::to_u64()); +} +#[test] +#[allow(non_snake_case)] +fn test_2_Max_4() { + type A = UInt, B0>; + type B = UInt, B0>, B0>; + type U4 = UInt, B0>, B0>; + + #[allow(non_camel_case_types)] + type U2MaxU4 = <>::Output as Same>::Output; + + assert_eq!(::to_u64(), ::to_u64()); +} +#[test] +#[allow(non_snake_case)] +fn test_2_Gcd_4() { + type A = UInt, B0>; + type B = UInt, B0>, B0>; + type U2 = UInt, B0>; + + #[allow(non_camel_case_types)] + type U2GcdU4 = <>::Output as Same>::Output; + + assert_eq!(::to_u64(), ::to_u64()); +} +#[test] +#[allow(non_snake_case)] +fn test_2_Div_4() { + type A = UInt, B0>; + type B = UInt, B0>, B0>; + type U0 = UTerm; + + #[allow(non_camel_case_types)] + type U2DivU4 = <>::Output as Same>::Output; + + assert_eq!(::to_u64(), ::to_u64()); +} +#[test] +#[allow(non_snake_case)] +fn test_2_Rem_4() { + type A = UInt, B0>; + type B = UInt, B0>, B0>; + type U2 = UInt, B0>; + + #[allow(non_camel_case_types)] + type U2RemU4 = <>::Output as Same>::Output; + + assert_eq!(::to_u64(), ::to_u64()); +} +#[test] +#[allow(non_snake_case)] +fn test_2_Cmp_4() { + type A = UInt, B0>; + type B = UInt, B0>, B0>; + + #[allow(non_camel_case_types)] + type U2CmpU4 = >::Output; + assert_eq!(::to_ordering(), Ordering::Less); +} +#[test] +#[allow(non_snake_case)] +fn test_2_BitAnd_5() { + type A = UInt, B0>; + type B = UInt, B0>, B1>; + type U0 = UTerm; + + #[allow(non_camel_case_types)] + type U2BitAndU5 = <>::Output as Same>::Output; + + assert_eq!(::to_u64(), ::to_u64()); +} +#[test] +#[allow(non_snake_case)] +fn test_2_BitOr_5() { + type A = UInt, B0>; + type B = UInt, B0>, B1>; + type U7 = UInt, B1>, B1>; + + #[allow(non_camel_case_types)] + type U2BitOrU5 = <>::Output as Same>::Output; + + assert_eq!(::to_u64(), ::to_u64()); +} +#[test] +#[allow(non_snake_case)] +fn test_2_BitXor_5() { + type A = UInt, B0>; + type B = UInt, B0>, B1>; + type U7 = UInt, B1>, B1>; + + #[allow(non_camel_case_types)] + type U2BitXorU5 = <>::Output as Same>::Output; + + assert_eq!(::to_u64(), ::to_u64()); +} +#[test] +#[allow(non_snake_case)] +fn test_2_Shl_5() { + type A = UInt, B0>; + type B = UInt, B0>, B1>; + type U64 = UInt, B0>, B0>, B0>, B0>, B0>, B0>; + + #[allow(non_camel_case_types)] + type U2ShlU5 = <>::Output as Same>::Output; + + assert_eq!(::to_u64(), ::to_u64()); +} +#[test] +#[allow(non_snake_case)] +fn test_2_Shr_5() { + type A = UInt, B0>; + type B = UInt, B0>, B1>; + type U0 = UTerm; + + #[allow(non_camel_case_types)] + type U2ShrU5 = <>::Output as Same>::Output; + + assert_eq!(::to_u64(), ::to_u64()); +} +#[test] +#[allow(non_snake_case)] +fn test_2_Add_5() { + type A = UInt, B0>; + type B = UInt, B0>, B1>; + type U7 = UInt, B1>, B1>; + + #[allow(non_camel_case_types)] + type U2AddU5 = <>::Output as Same>::Output; + + assert_eq!(::to_u64(), ::to_u64()); +} +#[test] +#[allow(non_snake_case)] +fn test_2_Mul_5() { + type A = UInt, B0>; + type B = UInt, B0>, B1>; + type U10 = UInt, B0>, B1>, B0>; + + #[allow(non_camel_case_types)] + type U2MulU5 = <>::Output as Same>::Output; + + assert_eq!(::to_u64(), ::to_u64()); +} +#[test] +#[allow(non_snake_case)] +fn test_2_Pow_5() { + type A = UInt, B0>; + type B = UInt, B0>, B1>; + type U32 = UInt, B0>, B0>, B0>, B0>, B0>; + + #[allow(non_camel_case_types)] + type U2PowU5 = <>::Output as Same>::Output; + + assert_eq!(::to_u64(), ::to_u64()); +} +#[test] +#[allow(non_snake_case)] +fn test_2_Min_5() { + type A = UInt, B0>; + type B = UInt, B0>, B1>; + type U2 = UInt, B0>; + + #[allow(non_camel_case_types)] + type U2MinU5 = <>::Output as Same>::Output; + + assert_eq!(::to_u64(), ::to_u64()); +} +#[test] +#[allow(non_snake_case)] +fn test_2_Max_5() { + type A = UInt, B0>; + type B = UInt, B0>, B1>; + type U5 = UInt, B0>, B1>; + + #[allow(non_camel_case_types)] + type U2MaxU5 = <>::Output as Same>::Output; + + assert_eq!(::to_u64(), ::to_u64()); +} +#[test] +#[allow(non_snake_case)] +fn test_2_Gcd_5() { + type A = UInt, B0>; + type B = UInt, B0>, B1>; + type U1 = UInt; + + #[allow(non_camel_case_types)] + type U2GcdU5 = <>::Output as Same>::Output; + + assert_eq!(::to_u64(), ::to_u64()); +} +#[test] +#[allow(non_snake_case)] +fn test_2_Div_5() { + type A = UInt, B0>; + type B = UInt, B0>, B1>; + type U0 = UTerm; + + #[allow(non_camel_case_types)] + type U2DivU5 = <>::Output as Same>::Output; + + assert_eq!(::to_u64(), ::to_u64()); +} +#[test] +#[allow(non_snake_case)] +fn test_2_Rem_5() { + type A = UInt, B0>; + type B = UInt, B0>, B1>; + type U2 = UInt, B0>; + + #[allow(non_camel_case_types)] + type U2RemU5 = <>::Output as Same>::Output; + + assert_eq!(::to_u64(), ::to_u64()); +} +#[test] +#[allow(non_snake_case)] +fn test_2_Cmp_5() { + type A = UInt, B0>; + type B = UInt, B0>, B1>; + + #[allow(non_camel_case_types)] + type U2CmpU5 = >::Output; + assert_eq!(::to_ordering(), Ordering::Less); +} +#[test] +#[allow(non_snake_case)] +fn test_3_BitAnd_0() { + type A = UInt, B1>; + type B = UTerm; + type U0 = UTerm; + + #[allow(non_camel_case_types)] + type U3BitAndU0 = <>::Output as Same>::Output; + + assert_eq!(::to_u64(), ::to_u64()); +} +#[test] +#[allow(non_snake_case)] +fn test_3_BitOr_0() { + type A = UInt, B1>; + type B = UTerm; + type U3 = UInt, B1>; + + #[allow(non_camel_case_types)] + type U3BitOrU0 = <>::Output as Same>::Output; + + assert_eq!(::to_u64(), ::to_u64()); +} +#[test] +#[allow(non_snake_case)] +fn test_3_BitXor_0() { + type A = UInt, B1>; + type B = UTerm; + type U3 = UInt, B1>; + + #[allow(non_camel_case_types)] + type U3BitXorU0 = <>::Output as Same>::Output; + + assert_eq!(::to_u64(), ::to_u64()); +} +#[test] +#[allow(non_snake_case)] +fn test_3_Shl_0() { + type A = UInt, B1>; + type B = UTerm; + type U3 = UInt, B1>; + + #[allow(non_camel_case_types)] + type U3ShlU0 = <>::Output as Same>::Output; + + assert_eq!(::to_u64(), ::to_u64()); +} +#[test] +#[allow(non_snake_case)] +fn test_3_Shr_0() { + type A = UInt, B1>; + type B = UTerm; + type U3 = UInt, B1>; + + #[allow(non_camel_case_types)] + type U3ShrU0 = <>::Output as Same>::Output; + + assert_eq!(::to_u64(), ::to_u64()); +} +#[test] +#[allow(non_snake_case)] +fn test_3_Add_0() { + type A = UInt, B1>; + type B = UTerm; + type U3 = UInt, B1>; + + #[allow(non_camel_case_types)] + type U3AddU0 = <>::Output as Same>::Output; + + assert_eq!(::to_u64(), ::to_u64()); +} +#[test] +#[allow(non_snake_case)] +fn test_3_Mul_0() { + type A = UInt, B1>; + type B = UTerm; + type U0 = UTerm; + + #[allow(non_camel_case_types)] + type U3MulU0 = <>::Output as Same>::Output; + + assert_eq!(::to_u64(), ::to_u64()); +} +#[test] +#[allow(non_snake_case)] +fn test_3_Pow_0() { + type A = UInt, B1>; + type B = UTerm; + type U1 = UInt; + + #[allow(non_camel_case_types)] + type U3PowU0 = <>::Output as Same>::Output; + + assert_eq!(::to_u64(), ::to_u64()); +} +#[test] +#[allow(non_snake_case)] +fn test_3_Min_0() { + type A = UInt, B1>; + type B = UTerm; + type U0 = UTerm; + + #[allow(non_camel_case_types)] + type U3MinU0 = <>::Output as Same>::Output; + + assert_eq!(::to_u64(), ::to_u64()); +} +#[test] +#[allow(non_snake_case)] +fn test_3_Max_0() { + type A = UInt, B1>; + type B = UTerm; + type U3 = UInt, B1>; + + #[allow(non_camel_case_types)] + type U3MaxU0 = <>::Output as Same>::Output; + + assert_eq!(::to_u64(), ::to_u64()); +} +#[test] +#[allow(non_snake_case)] +fn test_3_Gcd_0() { + type A = UInt, B1>; + type B = UTerm; + type U3 = UInt, B1>; + + #[allow(non_camel_case_types)] + type U3GcdU0 = <>::Output as Same>::Output; + + assert_eq!(::to_u64(), ::to_u64()); +} +#[test] +#[allow(non_snake_case)] +fn test_3_Sub_0() { + type A = UInt, B1>; + type B = UTerm; + type U3 = UInt, B1>; + + #[allow(non_camel_case_types)] + type U3SubU0 = <>::Output as Same>::Output; + + assert_eq!(::to_u64(), ::to_u64()); +} +#[test] +#[allow(non_snake_case)] +fn test_3_Cmp_0() { + type A = UInt, B1>; + type B = UTerm; + + #[allow(non_camel_case_types)] + type U3CmpU0 = >::Output; + assert_eq!(::to_ordering(), Ordering::Greater); +} +#[test] +#[allow(non_snake_case)] +fn test_3_BitAnd_1() { + type A = UInt, B1>; + type B = UInt; + type U1 = UInt; + + #[allow(non_camel_case_types)] + type U3BitAndU1 = <>::Output as Same>::Output; + + assert_eq!(::to_u64(), ::to_u64()); +} +#[test] +#[allow(non_snake_case)] +fn test_3_BitOr_1() { + type A = UInt, B1>; + type B = UInt; + type U3 = UInt, B1>; + + #[allow(non_camel_case_types)] + type U3BitOrU1 = <>::Output as Same>::Output; + + assert_eq!(::to_u64(), ::to_u64()); +} +#[test] +#[allow(non_snake_case)] +fn test_3_BitXor_1() { + type A = UInt, B1>; + type B = UInt; + type U2 = UInt, B0>; + + #[allow(non_camel_case_types)] + type U3BitXorU1 = <>::Output as Same>::Output; + + assert_eq!(::to_u64(), ::to_u64()); +} +#[test] +#[allow(non_snake_case)] +fn test_3_Shl_1() { + type A = UInt, B1>; + type B = UInt; + type U6 = UInt, B1>, B0>; + + #[allow(non_camel_case_types)] + type U3ShlU1 = <>::Output as Same>::Output; + + assert_eq!(::to_u64(), ::to_u64()); +} +#[test] +#[allow(non_snake_case)] +fn test_3_Shr_1() { + type A = UInt, B1>; + type B = UInt; + type U1 = UInt; + + #[allow(non_camel_case_types)] + type U3ShrU1 = <>::Output as Same>::Output; + + assert_eq!(::to_u64(), ::to_u64()); +} +#[test] +#[allow(non_snake_case)] +fn test_3_Add_1() { + type A = UInt, B1>; + type B = UInt; + type U4 = UInt, B0>, B0>; + + #[allow(non_camel_case_types)] + type U3AddU1 = <>::Output as Same>::Output; + + assert_eq!(::to_u64(), ::to_u64()); +} +#[test] +#[allow(non_snake_case)] +fn test_3_Mul_1() { + type A = UInt, B1>; + type B = UInt; + type U3 = UInt, B1>; + + #[allow(non_camel_case_types)] + type U3MulU1 = <>::Output as Same>::Output; + + assert_eq!(::to_u64(), ::to_u64()); +} +#[test] +#[allow(non_snake_case)] +fn test_3_Pow_1() { + type A = UInt, B1>; + type B = UInt; + type U3 = UInt, B1>; + + #[allow(non_camel_case_types)] + type U3PowU1 = <>::Output as Same>::Output; + + assert_eq!(::to_u64(), ::to_u64()); +} +#[test] +#[allow(non_snake_case)] +fn test_3_Min_1() { + type A = UInt, B1>; + type B = UInt; + type U1 = UInt; + + #[allow(non_camel_case_types)] + type U3MinU1 = <>::Output as Same>::Output; + + assert_eq!(::to_u64(), ::to_u64()); +} +#[test] +#[allow(non_snake_case)] +fn test_3_Max_1() { + type A = UInt, B1>; + type B = UInt; + type U3 = UInt, B1>; + + #[allow(non_camel_case_types)] + type U3MaxU1 = <>::Output as Same>::Output; + + assert_eq!(::to_u64(), ::to_u64()); +} +#[test] +#[allow(non_snake_case)] +fn test_3_Gcd_1() { + type A = UInt, B1>; + type B = UInt; + type U1 = UInt; + + #[allow(non_camel_case_types)] + type U3GcdU1 = <>::Output as Same>::Output; + + assert_eq!(::to_u64(), ::to_u64()); +} +#[test] +#[allow(non_snake_case)] +fn test_3_Sub_1() { + type A = UInt, B1>; + type B = UInt; + type U2 = UInt, B0>; + + #[allow(non_camel_case_types)] + type U3SubU1 = <>::Output as Same>::Output; + + assert_eq!(::to_u64(), ::to_u64()); +} +#[test] +#[allow(non_snake_case)] +fn test_3_Div_1() { + type A = UInt, B1>; + type B = UInt; + type U3 = UInt, B1>; + + #[allow(non_camel_case_types)] + type U3DivU1 = <>::Output as Same>::Output; + + assert_eq!(::to_u64(), ::to_u64()); +} +#[test] +#[allow(non_snake_case)] +fn test_3_Rem_1() { + type A = UInt, B1>; + type B = UInt; + type U0 = UTerm; + + #[allow(non_camel_case_types)] + type U3RemU1 = <>::Output as Same>::Output; + + assert_eq!(::to_u64(), ::to_u64()); +} +#[test] +#[allow(non_snake_case)] +fn test_3_PartialDiv_1() { + type A = UInt, B1>; + type B = UInt; + type U3 = UInt, B1>; + + #[allow(non_camel_case_types)] + type U3PartialDivU1 = <>::Output as Same>::Output; + + assert_eq!(::to_u64(), ::to_u64()); +} +#[test] +#[allow(non_snake_case)] +fn test_3_Cmp_1() { + type A = UInt, B1>; + type B = UInt; + + #[allow(non_camel_case_types)] + type U3CmpU1 = >::Output; + assert_eq!(::to_ordering(), Ordering::Greater); +} +#[test] +#[allow(non_snake_case)] +fn test_3_BitAnd_2() { + type A = UInt, B1>; + type B = UInt, B0>; + type U2 = UInt, B0>; + + #[allow(non_camel_case_types)] + type U3BitAndU2 = <>::Output as Same>::Output; + + assert_eq!(::to_u64(), ::to_u64()); +} +#[test] +#[allow(non_snake_case)] +fn test_3_BitOr_2() { + type A = UInt, B1>; + type B = UInt, B0>; + type U3 = UInt, B1>; + + #[allow(non_camel_case_types)] + type U3BitOrU2 = <>::Output as Same>::Output; + + assert_eq!(::to_u64(), ::to_u64()); +} +#[test] +#[allow(non_snake_case)] +fn test_3_BitXor_2() { + type A = UInt, B1>; + type B = UInt, B0>; + type U1 = UInt; + + #[allow(non_camel_case_types)] + type U3BitXorU2 = <>::Output as Same>::Output; + + assert_eq!(::to_u64(), ::to_u64()); +} +#[test] +#[allow(non_snake_case)] +fn test_3_Shl_2() { + type A = UInt, B1>; + type B = UInt, B0>; + type U12 = UInt, B1>, B0>, B0>; + + #[allow(non_camel_case_types)] + type U3ShlU2 = <>::Output as Same>::Output; + + assert_eq!(::to_u64(), ::to_u64()); +} +#[test] +#[allow(non_snake_case)] +fn test_3_Shr_2() { + type A = UInt, B1>; + type B = UInt, B0>; + type U0 = UTerm; + + #[allow(non_camel_case_types)] + type U3ShrU2 = <>::Output as Same>::Output; + + assert_eq!(::to_u64(), ::to_u64()); +} +#[test] +#[allow(non_snake_case)] +fn test_3_Add_2() { + type A = UInt, B1>; + type B = UInt, B0>; + type U5 = UInt, B0>, B1>; + + #[allow(non_camel_case_types)] + type U3AddU2 = <>::Output as Same>::Output; + + assert_eq!(::to_u64(), ::to_u64()); +} +#[test] +#[allow(non_snake_case)] +fn test_3_Mul_2() { + type A = UInt, B1>; + type B = UInt, B0>; + type U6 = UInt, B1>, B0>; + + #[allow(non_camel_case_types)] + type U3MulU2 = <>::Output as Same>::Output; + + assert_eq!(::to_u64(), ::to_u64()); +} +#[test] +#[allow(non_snake_case)] +fn test_3_Pow_2() { + type A = UInt, B1>; + type B = UInt, B0>; + type U9 = UInt, B0>, B0>, B1>; + + #[allow(non_camel_case_types)] + type U3PowU2 = <>::Output as Same>::Output; + + assert_eq!(::to_u64(), ::to_u64()); +} +#[test] +#[allow(non_snake_case)] +fn test_3_Min_2() { + type A = UInt, B1>; + type B = UInt, B0>; + type U2 = UInt, B0>; + + #[allow(non_camel_case_types)] + type U3MinU2 = <>::Output as Same>::Output; + + assert_eq!(::to_u64(), ::to_u64()); +} +#[test] +#[allow(non_snake_case)] +fn test_3_Max_2() { + type A = UInt, B1>; + type B = UInt, B0>; + type U3 = UInt, B1>; + + #[allow(non_camel_case_types)] + type U3MaxU2 = <>::Output as Same>::Output; + + assert_eq!(::to_u64(), ::to_u64()); +} +#[test] +#[allow(non_snake_case)] +fn test_3_Gcd_2() { + type A = UInt, B1>; + type B = UInt, B0>; + type U1 = UInt; + + #[allow(non_camel_case_types)] + type U3GcdU2 = <>::Output as Same>::Output; + + assert_eq!(::to_u64(), ::to_u64()); +} +#[test] +#[allow(non_snake_case)] +fn test_3_Sub_2() { + type A = UInt, B1>; + type B = UInt, B0>; + type U1 = UInt; + + #[allow(non_camel_case_types)] + type U3SubU2 = <>::Output as Same>::Output; + + assert_eq!(::to_u64(), ::to_u64()); +} +#[test] +#[allow(non_snake_case)] +fn test_3_Div_2() { + type A = UInt, B1>; + type B = UInt, B0>; + type U1 = UInt; + + #[allow(non_camel_case_types)] + type U3DivU2 = <>::Output as Same>::Output; + + assert_eq!(::to_u64(), ::to_u64()); +} +#[test] +#[allow(non_snake_case)] +fn test_3_Rem_2() { + type A = UInt, B1>; + type B = UInt, B0>; + type U1 = UInt; + + #[allow(non_camel_case_types)] + type U3RemU2 = <>::Output as Same>::Output; + + assert_eq!(::to_u64(), ::to_u64()); +} +#[test] +#[allow(non_snake_case)] +fn test_3_Cmp_2() { + type A = UInt, B1>; + type B = UInt, B0>; + + #[allow(non_camel_case_types)] + type U3CmpU2 = >::Output; + assert_eq!(::to_ordering(), Ordering::Greater); +} +#[test] +#[allow(non_snake_case)] +fn test_3_BitAnd_3() { + type A = UInt, B1>; + type B = UInt, B1>; + type U3 = UInt, B1>; + + #[allow(non_camel_case_types)] + type U3BitAndU3 = <>::Output as Same>::Output; + + assert_eq!(::to_u64(), ::to_u64()); +} +#[test] +#[allow(non_snake_case)] +fn test_3_BitOr_3() { + type A = UInt, B1>; + type B = UInt, B1>; + type U3 = UInt, B1>; + + #[allow(non_camel_case_types)] + type U3BitOrU3 = <>::Output as Same>::Output; + + assert_eq!(::to_u64(), ::to_u64()); +} +#[test] +#[allow(non_snake_case)] +fn test_3_BitXor_3() { + type A = UInt, B1>; + type B = UInt, B1>; + type U0 = UTerm; + + #[allow(non_camel_case_types)] + type U3BitXorU3 = <>::Output as Same>::Output; + + assert_eq!(::to_u64(), ::to_u64()); +} +#[test] +#[allow(non_snake_case)] +fn test_3_Shl_3() { + type A = UInt, B1>; + type B = UInt, B1>; + type U24 = UInt, B1>, B0>, B0>, B0>; + + #[allow(non_camel_case_types)] + type U3ShlU3 = <>::Output as Same>::Output; + + assert_eq!(::to_u64(), ::to_u64()); +} +#[test] +#[allow(non_snake_case)] +fn test_3_Shr_3() { + type A = UInt, B1>; + type B = UInt, B1>; + type U0 = UTerm; + + #[allow(non_camel_case_types)] + type U3ShrU3 = <>::Output as Same>::Output; + + assert_eq!(::to_u64(), ::to_u64()); +} +#[test] +#[allow(non_snake_case)] +fn test_3_Add_3() { + type A = UInt, B1>; + type B = UInt, B1>; + type U6 = UInt, B1>, B0>; + + #[allow(non_camel_case_types)] + type U3AddU3 = <>::Output as Same>::Output; + + assert_eq!(::to_u64(), ::to_u64()); +} +#[test] +#[allow(non_snake_case)] +fn test_3_Mul_3() { + type A = UInt, B1>; + type B = UInt, B1>; + type U9 = UInt, B0>, B0>, B1>; + + #[allow(non_camel_case_types)] + type U3MulU3 = <>::Output as Same>::Output; + + assert_eq!(::to_u64(), ::to_u64()); +} +#[test] +#[allow(non_snake_case)] +fn test_3_Pow_3() { + type A = UInt, B1>; + type B = UInt, B1>; + type U27 = UInt, B1>, B0>, B1>, B1>; + + #[allow(non_camel_case_types)] + type U3PowU3 = <>::Output as Same>::Output; + + assert_eq!(::to_u64(), ::to_u64()); +} +#[test] +#[allow(non_snake_case)] +fn test_3_Min_3() { + type A = UInt, B1>; + type B = UInt, B1>; + type U3 = UInt, B1>; + + #[allow(non_camel_case_types)] + type U3MinU3 = <>::Output as Same>::Output; + + assert_eq!(::to_u64(), ::to_u64()); +} +#[test] +#[allow(non_snake_case)] +fn test_3_Max_3() { + type A = UInt, B1>; + type B = UInt, B1>; + type U3 = UInt, B1>; + + #[allow(non_camel_case_types)] + type U3MaxU3 = <>::Output as Same>::Output; + + assert_eq!(::to_u64(), ::to_u64()); +} +#[test] +#[allow(non_snake_case)] +fn test_3_Gcd_3() { + type A = UInt, B1>; + type B = UInt, B1>; + type U3 = UInt, B1>; + + #[allow(non_camel_case_types)] + type U3GcdU3 = <>::Output as Same>::Output; + + assert_eq!(::to_u64(), ::to_u64()); +} +#[test] +#[allow(non_snake_case)] +fn test_3_Sub_3() { + type A = UInt, B1>; + type B = UInt, B1>; + type U0 = UTerm; + + #[allow(non_camel_case_types)] + type U3SubU3 = <>::Output as Same>::Output; + + assert_eq!(::to_u64(), ::to_u64()); +} +#[test] +#[allow(non_snake_case)] +fn test_3_Div_3() { + type A = UInt, B1>; + type B = UInt, B1>; + type U1 = UInt; + + #[allow(non_camel_case_types)] + type U3DivU3 = <>::Output as Same>::Output; + + assert_eq!(::to_u64(), ::to_u64()); +} +#[test] +#[allow(non_snake_case)] +fn test_3_Rem_3() { + type A = UInt, B1>; + type B = UInt, B1>; + type U0 = UTerm; + + #[allow(non_camel_case_types)] + type U3RemU3 = <>::Output as Same>::Output; + + assert_eq!(::to_u64(), ::to_u64()); +} +#[test] +#[allow(non_snake_case)] +fn test_3_PartialDiv_3() { + type A = UInt, B1>; + type B = UInt, B1>; + type U1 = UInt; + + #[allow(non_camel_case_types)] + type U3PartialDivU3 = <>::Output as Same>::Output; + + assert_eq!(::to_u64(), ::to_u64()); +} +#[test] +#[allow(non_snake_case)] +fn test_3_Cmp_3() { + type A = UInt, B1>; + type B = UInt, B1>; + + #[allow(non_camel_case_types)] + type U3CmpU3 = >::Output; + assert_eq!(::to_ordering(), Ordering::Equal); +} +#[test] +#[allow(non_snake_case)] +fn test_3_BitAnd_4() { + type A = UInt, B1>; + type B = UInt, B0>, B0>; + type U0 = UTerm; + + #[allow(non_camel_case_types)] + type U3BitAndU4 = <>::Output as Same>::Output; + + assert_eq!(::to_u64(), ::to_u64()); +} +#[test] +#[allow(non_snake_case)] +fn test_3_BitOr_4() { + type A = UInt, B1>; + type B = UInt, B0>, B0>; + type U7 = UInt, B1>, B1>; + + #[allow(non_camel_case_types)] + type U3BitOrU4 = <>::Output as Same>::Output; + + assert_eq!(::to_u64(), ::to_u64()); +} +#[test] +#[allow(non_snake_case)] +fn test_3_BitXor_4() { + type A = UInt, B1>; + type B = UInt, B0>, B0>; + type U7 = UInt, B1>, B1>; + + #[allow(non_camel_case_types)] + type U3BitXorU4 = <>::Output as Same>::Output; + + assert_eq!(::to_u64(), ::to_u64()); +} +#[test] +#[allow(non_snake_case)] +fn test_3_Shl_4() { + type A = UInt, B1>; + type B = UInt, B0>, B0>; + type U48 = UInt, B1>, B0>, B0>, B0>, B0>; + + #[allow(non_camel_case_types)] + type U3ShlU4 = <>::Output as Same>::Output; + + assert_eq!(::to_u64(), ::to_u64()); +} +#[test] +#[allow(non_snake_case)] +fn test_3_Shr_4() { + type A = UInt, B1>; + type B = UInt, B0>, B0>; + type U0 = UTerm; + + #[allow(non_camel_case_types)] + type U3ShrU4 = <>::Output as Same>::Output; + + assert_eq!(::to_u64(), ::to_u64()); +} +#[test] +#[allow(non_snake_case)] +fn test_3_Add_4() { + type A = UInt, B1>; + type B = UInt, B0>, B0>; + type U7 = UInt, B1>, B1>; + + #[allow(non_camel_case_types)] + type U3AddU4 = <>::Output as Same>::Output; + + assert_eq!(::to_u64(), ::to_u64()); +} +#[test] +#[allow(non_snake_case)] +fn test_3_Mul_4() { + type A = UInt, B1>; + type B = UInt, B0>, B0>; + type U12 = UInt, B1>, B0>, B0>; + + #[allow(non_camel_case_types)] + type U3MulU4 = <>::Output as Same>::Output; + + assert_eq!(::to_u64(), ::to_u64()); +} +#[test] +#[allow(non_snake_case)] +fn test_3_Pow_4() { + type A = UInt, B1>; + type B = UInt, B0>, B0>; + type U81 = UInt, B0>, B1>, B0>, B0>, B0>, B1>; + + #[allow(non_camel_case_types)] + type U3PowU4 = <>::Output as Same>::Output; + + assert_eq!(::to_u64(), ::to_u64()); +} +#[test] +#[allow(non_snake_case)] +fn test_3_Min_4() { + type A = UInt, B1>; + type B = UInt, B0>, B0>; + type U3 = UInt, B1>; + + #[allow(non_camel_case_types)] + type U3MinU4 = <>::Output as Same>::Output; + + assert_eq!(::to_u64(), ::to_u64()); +} +#[test] +#[allow(non_snake_case)] +fn test_3_Max_4() { + type A = UInt, B1>; + type B = UInt, B0>, B0>; + type U4 = UInt, B0>, B0>; + + #[allow(non_camel_case_types)] + type U3MaxU4 = <>::Output as Same>::Output; + + assert_eq!(::to_u64(), ::to_u64()); +} +#[test] +#[allow(non_snake_case)] +fn test_3_Gcd_4() { + type A = UInt, B1>; + type B = UInt, B0>, B0>; + type U1 = UInt; + + #[allow(non_camel_case_types)] + type U3GcdU4 = <>::Output as Same>::Output; + + assert_eq!(::to_u64(), ::to_u64()); +} +#[test] +#[allow(non_snake_case)] +fn test_3_Div_4() { + type A = UInt, B1>; + type B = UInt, B0>, B0>; + type U0 = UTerm; + + #[allow(non_camel_case_types)] + type U3DivU4 = <>::Output as Same>::Output; + + assert_eq!(::to_u64(), ::to_u64()); +} +#[test] +#[allow(non_snake_case)] +fn test_3_Rem_4() { + type A = UInt, B1>; + type B = UInt, B0>, B0>; + type U3 = UInt, B1>; + + #[allow(non_camel_case_types)] + type U3RemU4 = <>::Output as Same>::Output; + + assert_eq!(::to_u64(), ::to_u64()); +} +#[test] +#[allow(non_snake_case)] +fn test_3_Cmp_4() { + type A = UInt, B1>; + type B = UInt, B0>, B0>; + + #[allow(non_camel_case_types)] + type U3CmpU4 = >::Output; + assert_eq!(::to_ordering(), Ordering::Less); +} +#[test] +#[allow(non_snake_case)] +fn test_3_BitAnd_5() { + type A = UInt, B1>; + type B = UInt, B0>, B1>; + type U1 = UInt; + + #[allow(non_camel_case_types)] + type U3BitAndU5 = <>::Output as Same>::Output; + + assert_eq!(::to_u64(), ::to_u64()); +} +#[test] +#[allow(non_snake_case)] +fn test_3_BitOr_5() { + type A = UInt, B1>; + type B = UInt, B0>, B1>; + type U7 = UInt, B1>, B1>; + + #[allow(non_camel_case_types)] + type U3BitOrU5 = <>::Output as Same>::Output; + + assert_eq!(::to_u64(), ::to_u64()); +} +#[test] +#[allow(non_snake_case)] +fn test_3_BitXor_5() { + type A = UInt, B1>; + type B = UInt, B0>, B1>; + type U6 = UInt, B1>, B0>; + + #[allow(non_camel_case_types)] + type U3BitXorU5 = <>::Output as Same>::Output; + + assert_eq!(::to_u64(), ::to_u64()); +} +#[test] +#[allow(non_snake_case)] +fn test_3_Shl_5() { + type A = UInt, B1>; + type B = UInt, B0>, B1>; + type U96 = UInt, B1>, B0>, B0>, B0>, B0>, B0>; + + #[allow(non_camel_case_types)] + type U3ShlU5 = <>::Output as Same>::Output; + + assert_eq!(::to_u64(), ::to_u64()); +} +#[test] +#[allow(non_snake_case)] +fn test_3_Shr_5() { + type A = UInt, B1>; + type B = UInt, B0>, B1>; + type U0 = UTerm; + + #[allow(non_camel_case_types)] + type U3ShrU5 = <>::Output as Same>::Output; + + assert_eq!(::to_u64(), ::to_u64()); +} +#[test] +#[allow(non_snake_case)] +fn test_3_Add_5() { + type A = UInt, B1>; + type B = UInt, B0>, B1>; + type U8 = UInt, B0>, B0>, B0>; + + #[allow(non_camel_case_types)] + type U3AddU5 = <>::Output as Same>::Output; + + assert_eq!(::to_u64(), ::to_u64()); +} +#[test] +#[allow(non_snake_case)] +fn test_3_Mul_5() { + type A = UInt, B1>; + type B = UInt, B0>, B1>; + type U15 = UInt, B1>, B1>, B1>; + + #[allow(non_camel_case_types)] + type U3MulU5 = <>::Output as Same>::Output; + + assert_eq!(::to_u64(), ::to_u64()); +} +#[test] +#[allow(non_snake_case)] +fn test_3_Pow_5() { + type A = UInt, B1>; + type B = UInt, B0>, B1>; + type U243 = UInt, B1>, B1>, B1>, B0>, B0>, B1>, B1>; + + #[allow(non_camel_case_types)] + type U3PowU5 = <>::Output as Same>::Output; + + assert_eq!(::to_u64(), ::to_u64()); +} +#[test] +#[allow(non_snake_case)] +fn test_3_Min_5() { + type A = UInt, B1>; + type B = UInt, B0>, B1>; + type U3 = UInt, B1>; + + #[allow(non_camel_case_types)] + type U3MinU5 = <>::Output as Same>::Output; + + assert_eq!(::to_u64(), ::to_u64()); +} +#[test] +#[allow(non_snake_case)] +fn test_3_Max_5() { + type A = UInt, B1>; + type B = UInt, B0>, B1>; + type U5 = UInt, B0>, B1>; + + #[allow(non_camel_case_types)] + type U3MaxU5 = <>::Output as Same>::Output; + + assert_eq!(::to_u64(), ::to_u64()); +} +#[test] +#[allow(non_snake_case)] +fn test_3_Gcd_5() { + type A = UInt, B1>; + type B = UInt, B0>, B1>; + type U1 = UInt; + + #[allow(non_camel_case_types)] + type U3GcdU5 = <>::Output as Same>::Output; + + assert_eq!(::to_u64(), ::to_u64()); +} +#[test] +#[allow(non_snake_case)] +fn test_3_Div_5() { + type A = UInt, B1>; + type B = UInt, B0>, B1>; + type U0 = UTerm; + + #[allow(non_camel_case_types)] + type U3DivU5 = <>::Output as Same>::Output; + + assert_eq!(::to_u64(), ::to_u64()); +} +#[test] +#[allow(non_snake_case)] +fn test_3_Rem_5() { + type A = UInt, B1>; + type B = UInt, B0>, B1>; + type U3 = UInt, B1>; + + #[allow(non_camel_case_types)] + type U3RemU5 = <>::Output as Same>::Output; + + assert_eq!(::to_u64(), ::to_u64()); +} +#[test] +#[allow(non_snake_case)] +fn test_3_Cmp_5() { + type A = UInt, B1>; + type B = UInt, B0>, B1>; + + #[allow(non_camel_case_types)] + type U3CmpU5 = >::Output; + assert_eq!(::to_ordering(), Ordering::Less); +} +#[test] +#[allow(non_snake_case)] +fn test_4_BitAnd_0() { + type A = UInt, B0>, B0>; + type B = UTerm; + type U0 = UTerm; + + #[allow(non_camel_case_types)] + type U4BitAndU0 = <>::Output as Same>::Output; + + assert_eq!(::to_u64(), ::to_u64()); +} +#[test] +#[allow(non_snake_case)] +fn test_4_BitOr_0() { + type A = UInt, B0>, B0>; + type B = UTerm; + type U4 = UInt, B0>, B0>; + + #[allow(non_camel_case_types)] + type U4BitOrU0 = <>::Output as Same>::Output; + + assert_eq!(::to_u64(), ::to_u64()); +} +#[test] +#[allow(non_snake_case)] +fn test_4_BitXor_0() { + type A = UInt, B0>, B0>; + type B = UTerm; + type U4 = UInt, B0>, B0>; + + #[allow(non_camel_case_types)] + type U4BitXorU0 = <>::Output as Same>::Output; + + assert_eq!(::to_u64(), ::to_u64()); +} +#[test] +#[allow(non_snake_case)] +fn test_4_Shl_0() { + type A = UInt, B0>, B0>; + type B = UTerm; + type U4 = UInt, B0>, B0>; + + #[allow(non_camel_case_types)] + type U4ShlU0 = <>::Output as Same>::Output; + + assert_eq!(::to_u64(), ::to_u64()); +} +#[test] +#[allow(non_snake_case)] +fn test_4_Shr_0() { + type A = UInt, B0>, B0>; + type B = UTerm; + type U4 = UInt, B0>, B0>; + + #[allow(non_camel_case_types)] + type U4ShrU0 = <>::Output as Same>::Output; + + assert_eq!(::to_u64(), ::to_u64()); +} +#[test] +#[allow(non_snake_case)] +fn test_4_Add_0() { + type A = UInt, B0>, B0>; + type B = UTerm; + type U4 = UInt, B0>, B0>; + + #[allow(non_camel_case_types)] + type U4AddU0 = <>::Output as Same>::Output; + + assert_eq!(::to_u64(), ::to_u64()); +} +#[test] +#[allow(non_snake_case)] +fn test_4_Mul_0() { + type A = UInt, B0>, B0>; + type B = UTerm; + type U0 = UTerm; + + #[allow(non_camel_case_types)] + type U4MulU0 = <>::Output as Same>::Output; + + assert_eq!(::to_u64(), ::to_u64()); +} +#[test] +#[allow(non_snake_case)] +fn test_4_Pow_0() { + type A = UInt, B0>, B0>; + type B = UTerm; + type U1 = UInt; + + #[allow(non_camel_case_types)] + type U4PowU0 = <>::Output as Same>::Output; + + assert_eq!(::to_u64(), ::to_u64()); +} +#[test] +#[allow(non_snake_case)] +fn test_4_Min_0() { + type A = UInt, B0>, B0>; + type B = UTerm; + type U0 = UTerm; + + #[allow(non_camel_case_types)] + type U4MinU0 = <>::Output as Same>::Output; + + assert_eq!(::to_u64(), ::to_u64()); +} +#[test] +#[allow(non_snake_case)] +fn test_4_Max_0() { + type A = UInt, B0>, B0>; + type B = UTerm; + type U4 = UInt, B0>, B0>; + + #[allow(non_camel_case_types)] + type U4MaxU0 = <>::Output as Same>::Output; + + assert_eq!(::to_u64(), ::to_u64()); +} +#[test] +#[allow(non_snake_case)] +fn test_4_Gcd_0() { + type A = UInt, B0>, B0>; + type B = UTerm; + type U4 = UInt, B0>, B0>; + + #[allow(non_camel_case_types)] + type U4GcdU0 = <>::Output as Same>::Output; + + assert_eq!(::to_u64(), ::to_u64()); +} +#[test] +#[allow(non_snake_case)] +fn test_4_Sub_0() { + type A = UInt, B0>, B0>; + type B = UTerm; + type U4 = UInt, B0>, B0>; + + #[allow(non_camel_case_types)] + type U4SubU0 = <>::Output as Same>::Output; + + assert_eq!(::to_u64(), ::to_u64()); +} +#[test] +#[allow(non_snake_case)] +fn test_4_Cmp_0() { + type A = UInt, B0>, B0>; + type B = UTerm; + + #[allow(non_camel_case_types)] + type U4CmpU0 = >::Output; + assert_eq!(::to_ordering(), Ordering::Greater); +} +#[test] +#[allow(non_snake_case)] +fn test_4_BitAnd_1() { + type A = UInt, B0>, B0>; + type B = UInt; + type U0 = UTerm; + + #[allow(non_camel_case_types)] + type U4BitAndU1 = <>::Output as Same>::Output; + + assert_eq!(::to_u64(), ::to_u64()); +} +#[test] +#[allow(non_snake_case)] +fn test_4_BitOr_1() { + type A = UInt, B0>, B0>; + type B = UInt; + type U5 = UInt, B0>, B1>; + + #[allow(non_camel_case_types)] + type U4BitOrU1 = <>::Output as Same>::Output; + + assert_eq!(::to_u64(), ::to_u64()); +} +#[test] +#[allow(non_snake_case)] +fn test_4_BitXor_1() { + type A = UInt, B0>, B0>; + type B = UInt; + type U5 = UInt, B0>, B1>; + + #[allow(non_camel_case_types)] + type U4BitXorU1 = <>::Output as Same>::Output; + + assert_eq!(::to_u64(), ::to_u64()); +} +#[test] +#[allow(non_snake_case)] +fn test_4_Shl_1() { + type A = UInt, B0>, B0>; + type B = UInt; + type U8 = UInt, B0>, B0>, B0>; + + #[allow(non_camel_case_types)] + type U4ShlU1 = <>::Output as Same>::Output; + + assert_eq!(::to_u64(), ::to_u64()); +} +#[test] +#[allow(non_snake_case)] +fn test_4_Shr_1() { + type A = UInt, B0>, B0>; + type B = UInt; + type U2 = UInt, B0>; + + #[allow(non_camel_case_types)] + type U4ShrU1 = <>::Output as Same>::Output; + + assert_eq!(::to_u64(), ::to_u64()); +} +#[test] +#[allow(non_snake_case)] +fn test_4_Add_1() { + type A = UInt, B0>, B0>; + type B = UInt; + type U5 = UInt, B0>, B1>; + + #[allow(non_camel_case_types)] + type U4AddU1 = <>::Output as Same>::Output; + + assert_eq!(::to_u64(), ::to_u64()); +} +#[test] +#[allow(non_snake_case)] +fn test_4_Mul_1() { + type A = UInt, B0>, B0>; + type B = UInt; + type U4 = UInt, B0>, B0>; + + #[allow(non_camel_case_types)] + type U4MulU1 = <>::Output as Same>::Output; + + assert_eq!(::to_u64(), ::to_u64()); +} +#[test] +#[allow(non_snake_case)] +fn test_4_Pow_1() { + type A = UInt, B0>, B0>; + type B = UInt; + type U4 = UInt, B0>, B0>; + + #[allow(non_camel_case_types)] + type U4PowU1 = <>::Output as Same>::Output; + + assert_eq!(::to_u64(), ::to_u64()); +} +#[test] +#[allow(non_snake_case)] +fn test_4_Min_1() { + type A = UInt, B0>, B0>; + type B = UInt; + type U1 = UInt; + + #[allow(non_camel_case_types)] + type U4MinU1 = <>::Output as Same>::Output; + + assert_eq!(::to_u64(), ::to_u64()); +} +#[test] +#[allow(non_snake_case)] +fn test_4_Max_1() { + type A = UInt, B0>, B0>; + type B = UInt; + type U4 = UInt, B0>, B0>; + + #[allow(non_camel_case_types)] + type U4MaxU1 = <>::Output as Same>::Output; + + assert_eq!(::to_u64(), ::to_u64()); +} +#[test] +#[allow(non_snake_case)] +fn test_4_Gcd_1() { + type A = UInt, B0>, B0>; + type B = UInt; + type U1 = UInt; + + #[allow(non_camel_case_types)] + type U4GcdU1 = <>::Output as Same>::Output; + + assert_eq!(::to_u64(), ::to_u64()); +} +#[test] +#[allow(non_snake_case)] +fn test_4_Sub_1() { + type A = UInt, B0>, B0>; + type B = UInt; + type U3 = UInt, B1>; + + #[allow(non_camel_case_types)] + type U4SubU1 = <>::Output as Same>::Output; + + assert_eq!(::to_u64(), ::to_u64()); +} +#[test] +#[allow(non_snake_case)] +fn test_4_Div_1() { + type A = UInt, B0>, B0>; + type B = UInt; + type U4 = UInt, B0>, B0>; + + #[allow(non_camel_case_types)] + type U4DivU1 = <>::Output as Same>::Output; + + assert_eq!(::to_u64(), ::to_u64()); +} +#[test] +#[allow(non_snake_case)] +fn test_4_Rem_1() { + type A = UInt, B0>, B0>; + type B = UInt; + type U0 = UTerm; + + #[allow(non_camel_case_types)] + type U4RemU1 = <>::Output as Same>::Output; + + assert_eq!(::to_u64(), ::to_u64()); +} +#[test] +#[allow(non_snake_case)] +fn test_4_PartialDiv_1() { + type A = UInt, B0>, B0>; + type B = UInt; + type U4 = UInt, B0>, B0>; + + #[allow(non_camel_case_types)] + type U4PartialDivU1 = <>::Output as Same>::Output; + + assert_eq!(::to_u64(), ::to_u64()); +} +#[test] +#[allow(non_snake_case)] +fn test_4_Cmp_1() { + type A = UInt, B0>, B0>; + type B = UInt; + + #[allow(non_camel_case_types)] + type U4CmpU1 = >::Output; + assert_eq!(::to_ordering(), Ordering::Greater); +} +#[test] +#[allow(non_snake_case)] +fn test_4_BitAnd_2() { + type A = UInt, B0>, B0>; + type B = UInt, B0>; + type U0 = UTerm; + + #[allow(non_camel_case_types)] + type U4BitAndU2 = <>::Output as Same>::Output; + + assert_eq!(::to_u64(), ::to_u64()); +} +#[test] +#[allow(non_snake_case)] +fn test_4_BitOr_2() { + type A = UInt, B0>, B0>; + type B = UInt, B0>; + type U6 = UInt, B1>, B0>; + + #[allow(non_camel_case_types)] + type U4BitOrU2 = <>::Output as Same>::Output; + + assert_eq!(::to_u64(), ::to_u64()); +} +#[test] +#[allow(non_snake_case)] +fn test_4_BitXor_2() { + type A = UInt, B0>, B0>; + type B = UInt, B0>; + type U6 = UInt, B1>, B0>; + + #[allow(non_camel_case_types)] + type U4BitXorU2 = <>::Output as Same>::Output; + + assert_eq!(::to_u64(), ::to_u64()); +} +#[test] +#[allow(non_snake_case)] +fn test_4_Shl_2() { + type A = UInt, B0>, B0>; + type B = UInt, B0>; + type U16 = UInt, B0>, B0>, B0>, B0>; + + #[allow(non_camel_case_types)] + type U4ShlU2 = <>::Output as Same>::Output; + + assert_eq!(::to_u64(), ::to_u64()); +} +#[test] +#[allow(non_snake_case)] +fn test_4_Shr_2() { + type A = UInt, B0>, B0>; + type B = UInt, B0>; + type U1 = UInt; + + #[allow(non_camel_case_types)] + type U4ShrU2 = <>::Output as Same>::Output; + + assert_eq!(::to_u64(), ::to_u64()); +} +#[test] +#[allow(non_snake_case)] +fn test_4_Add_2() { + type A = UInt, B0>, B0>; + type B = UInt, B0>; + type U6 = UInt, B1>, B0>; + + #[allow(non_camel_case_types)] + type U4AddU2 = <>::Output as Same>::Output; + + assert_eq!(::to_u64(), ::to_u64()); +} +#[test] +#[allow(non_snake_case)] +fn test_4_Mul_2() { + type A = UInt, B0>, B0>; + type B = UInt, B0>; + type U8 = UInt, B0>, B0>, B0>; + + #[allow(non_camel_case_types)] + type U4MulU2 = <>::Output as Same>::Output; + + assert_eq!(::to_u64(), ::to_u64()); +} +#[test] +#[allow(non_snake_case)] +fn test_4_Pow_2() { + type A = UInt, B0>, B0>; + type B = UInt, B0>; + type U16 = UInt, B0>, B0>, B0>, B0>; + + #[allow(non_camel_case_types)] + type U4PowU2 = <>::Output as Same>::Output; + + assert_eq!(::to_u64(), ::to_u64()); +} +#[test] +#[allow(non_snake_case)] +fn test_4_Min_2() { + type A = UInt, B0>, B0>; + type B = UInt, B0>; + type U2 = UInt, B0>; + + #[allow(non_camel_case_types)] + type U4MinU2 = <>::Output as Same>::Output; + + assert_eq!(::to_u64(), ::to_u64()); +} +#[test] +#[allow(non_snake_case)] +fn test_4_Max_2() { + type A = UInt, B0>, B0>; + type B = UInt, B0>; + type U4 = UInt, B0>, B0>; + + #[allow(non_camel_case_types)] + type U4MaxU2 = <>::Output as Same>::Output; + + assert_eq!(::to_u64(), ::to_u64()); +} +#[test] +#[allow(non_snake_case)] +fn test_4_Gcd_2() { + type A = UInt, B0>, B0>; + type B = UInt, B0>; + type U2 = UInt, B0>; + + #[allow(non_camel_case_types)] + type U4GcdU2 = <>::Output as Same>::Output; + + assert_eq!(::to_u64(), ::to_u64()); +} +#[test] +#[allow(non_snake_case)] +fn test_4_Sub_2() { + type A = UInt, B0>, B0>; + type B = UInt, B0>; + type U2 = UInt, B0>; + + #[allow(non_camel_case_types)] + type U4SubU2 = <>::Output as Same>::Output; + + assert_eq!(::to_u64(), ::to_u64()); +} +#[test] +#[allow(non_snake_case)] +fn test_4_Div_2() { + type A = UInt, B0>, B0>; + type B = UInt, B0>; + type U2 = UInt, B0>; + + #[allow(non_camel_case_types)] + type U4DivU2 = <>::Output as Same>::Output; + + assert_eq!(::to_u64(), ::to_u64()); +} +#[test] +#[allow(non_snake_case)] +fn test_4_Rem_2() { + type A = UInt, B0>, B0>; + type B = UInt, B0>; + type U0 = UTerm; + + #[allow(non_camel_case_types)] + type U4RemU2 = <>::Output as Same>::Output; + + assert_eq!(::to_u64(), ::to_u64()); +} +#[test] +#[allow(non_snake_case)] +fn test_4_PartialDiv_2() { + type A = UInt, B0>, B0>; + type B = UInt, B0>; + type U2 = UInt, B0>; + + #[allow(non_camel_case_types)] + type U4PartialDivU2 = <>::Output as Same>::Output; + + assert_eq!(::to_u64(), ::to_u64()); +} +#[test] +#[allow(non_snake_case)] +fn test_4_Cmp_2() { + type A = UInt, B0>, B0>; + type B = UInt, B0>; + + #[allow(non_camel_case_types)] + type U4CmpU2 = >::Output; + assert_eq!(::to_ordering(), Ordering::Greater); +} +#[test] +#[allow(non_snake_case)] +fn test_4_BitAnd_3() { + type A = UInt, B0>, B0>; + type B = UInt, B1>; + type U0 = UTerm; + + #[allow(non_camel_case_types)] + type U4BitAndU3 = <>::Output as Same>::Output; + + assert_eq!(::to_u64(), ::to_u64()); +} +#[test] +#[allow(non_snake_case)] +fn test_4_BitOr_3() { + type A = UInt, B0>, B0>; + type B = UInt, B1>; + type U7 = UInt, B1>, B1>; + + #[allow(non_camel_case_types)] + type U4BitOrU3 = <>::Output as Same>::Output; + + assert_eq!(::to_u64(), ::to_u64()); +} +#[test] +#[allow(non_snake_case)] +fn test_4_BitXor_3() { + type A = UInt, B0>, B0>; + type B = UInt, B1>; + type U7 = UInt, B1>, B1>; + + #[allow(non_camel_case_types)] + type U4BitXorU3 = <>::Output as Same>::Output; + + assert_eq!(::to_u64(), ::to_u64()); +} +#[test] +#[allow(non_snake_case)] +fn test_4_Shl_3() { + type A = UInt, B0>, B0>; + type B = UInt, B1>; + type U32 = UInt, B0>, B0>, B0>, B0>, B0>; + + #[allow(non_camel_case_types)] + type U4ShlU3 = <>::Output as Same>::Output; + + assert_eq!(::to_u64(), ::to_u64()); +} +#[test] +#[allow(non_snake_case)] +fn test_4_Shr_3() { + type A = UInt, B0>, B0>; + type B = UInt, B1>; + type U0 = UTerm; + + #[allow(non_camel_case_types)] + type U4ShrU3 = <>::Output as Same>::Output; + + assert_eq!(::to_u64(), ::to_u64()); +} +#[test] +#[allow(non_snake_case)] +fn test_4_Add_3() { + type A = UInt, B0>, B0>; + type B = UInt, B1>; + type U7 = UInt, B1>, B1>; + + #[allow(non_camel_case_types)] + type U4AddU3 = <>::Output as Same>::Output; + + assert_eq!(::to_u64(), ::to_u64()); +} +#[test] +#[allow(non_snake_case)] +fn test_4_Mul_3() { + type A = UInt, B0>, B0>; + type B = UInt, B1>; + type U12 = UInt, B1>, B0>, B0>; + + #[allow(non_camel_case_types)] + type U4MulU3 = <>::Output as Same>::Output; + + assert_eq!(::to_u64(), ::to_u64()); +} +#[test] +#[allow(non_snake_case)] +fn test_4_Pow_3() { + type A = UInt, B0>, B0>; + type B = UInt, B1>; + type U64 = UInt, B0>, B0>, B0>, B0>, B0>, B0>; + + #[allow(non_camel_case_types)] + type U4PowU3 = <>::Output as Same>::Output; + + assert_eq!(::to_u64(), ::to_u64()); +} +#[test] +#[allow(non_snake_case)] +fn test_4_Min_3() { + type A = UInt, B0>, B0>; + type B = UInt, B1>; + type U3 = UInt, B1>; + + #[allow(non_camel_case_types)] + type U4MinU3 = <>::Output as Same>::Output; + + assert_eq!(::to_u64(), ::to_u64()); +} +#[test] +#[allow(non_snake_case)] +fn test_4_Max_3() { + type A = UInt, B0>, B0>; + type B = UInt, B1>; + type U4 = UInt, B0>, B0>; + + #[allow(non_camel_case_types)] + type U4MaxU3 = <>::Output as Same>::Output; + + assert_eq!(::to_u64(), ::to_u64()); +} +#[test] +#[allow(non_snake_case)] +fn test_4_Gcd_3() { + type A = UInt, B0>, B0>; + type B = UInt, B1>; + type U1 = UInt; + + #[allow(non_camel_case_types)] + type U4GcdU3 = <>::Output as Same>::Output; + + assert_eq!(::to_u64(), ::to_u64()); +} +#[test] +#[allow(non_snake_case)] +fn test_4_Sub_3() { + type A = UInt, B0>, B0>; + type B = UInt, B1>; + type U1 = UInt; + + #[allow(non_camel_case_types)] + type U4SubU3 = <>::Output as Same>::Output; + + assert_eq!(::to_u64(), ::to_u64()); +} +#[test] +#[allow(non_snake_case)] +fn test_4_Div_3() { + type A = UInt, B0>, B0>; + type B = UInt, B1>; + type U1 = UInt; + + #[allow(non_camel_case_types)] + type U4DivU3 = <>::Output as Same>::Output; + + assert_eq!(::to_u64(), ::to_u64()); +} +#[test] +#[allow(non_snake_case)] +fn test_4_Rem_3() { + type A = UInt, B0>, B0>; + type B = UInt, B1>; + type U1 = UInt; + + #[allow(non_camel_case_types)] + type U4RemU3 = <>::Output as Same>::Output; + + assert_eq!(::to_u64(), ::to_u64()); +} +#[test] +#[allow(non_snake_case)] +fn test_4_Cmp_3() { + type A = UInt, B0>, B0>; + type B = UInt, B1>; + + #[allow(non_camel_case_types)] + type U4CmpU3 = >::Output; + assert_eq!(::to_ordering(), Ordering::Greater); +} +#[test] +#[allow(non_snake_case)] +fn test_4_BitAnd_4() { + type A = UInt, B0>, B0>; + type B = UInt, B0>, B0>; + type U4 = UInt, B0>, B0>; + + #[allow(non_camel_case_types)] + type U4BitAndU4 = <>::Output as Same>::Output; + + assert_eq!(::to_u64(), ::to_u64()); +} +#[test] +#[allow(non_snake_case)] +fn test_4_BitOr_4() { + type A = UInt, B0>, B0>; + type B = UInt, B0>, B0>; + type U4 = UInt, B0>, B0>; + + #[allow(non_camel_case_types)] + type U4BitOrU4 = <>::Output as Same>::Output; + + assert_eq!(::to_u64(), ::to_u64()); +} +#[test] +#[allow(non_snake_case)] +fn test_4_BitXor_4() { + type A = UInt, B0>, B0>; + type B = UInt, B0>, B0>; + type U0 = UTerm; + + #[allow(non_camel_case_types)] + type U4BitXorU4 = <>::Output as Same>::Output; + + assert_eq!(::to_u64(), ::to_u64()); +} +#[test] +#[allow(non_snake_case)] +fn test_4_Shl_4() { + type A = UInt, B0>, B0>; + type B = UInt, B0>, B0>; + type U64 = UInt, B0>, B0>, B0>, B0>, B0>, B0>; + + #[allow(non_camel_case_types)] + type U4ShlU4 = <>::Output as Same>::Output; + + assert_eq!(::to_u64(), ::to_u64()); +} +#[test] +#[allow(non_snake_case)] +fn test_4_Shr_4() { + type A = UInt, B0>, B0>; + type B = UInt, B0>, B0>; + type U0 = UTerm; + + #[allow(non_camel_case_types)] + type U4ShrU4 = <>::Output as Same>::Output; + + assert_eq!(::to_u64(), ::to_u64()); +} +#[test] +#[allow(non_snake_case)] +fn test_4_Add_4() { + type A = UInt, B0>, B0>; + type B = UInt, B0>, B0>; + type U8 = UInt, B0>, B0>, B0>; + + #[allow(non_camel_case_types)] + type U4AddU4 = <>::Output as Same>::Output; + + assert_eq!(::to_u64(), ::to_u64()); +} +#[test] +#[allow(non_snake_case)] +fn test_4_Mul_4() { + type A = UInt, B0>, B0>; + type B = UInt, B0>, B0>; + type U16 = UInt, B0>, B0>, B0>, B0>; + + #[allow(non_camel_case_types)] + type U4MulU4 = <>::Output as Same>::Output; + + assert_eq!(::to_u64(), ::to_u64()); +} +#[test] +#[allow(non_snake_case)] +fn test_4_Pow_4() { + type A = UInt, B0>, B0>; + type B = UInt, B0>, B0>; + type U256 = UInt, B0>, B0>, B0>, B0>, B0>, B0>, B0>, B0>; + + #[allow(non_camel_case_types)] + type U4PowU4 = <>::Output as Same>::Output; + + assert_eq!(::to_u64(), ::to_u64()); +} +#[test] +#[allow(non_snake_case)] +fn test_4_Min_4() { + type A = UInt, B0>, B0>; + type B = UInt, B0>, B0>; + type U4 = UInt, B0>, B0>; + + #[allow(non_camel_case_types)] + type U4MinU4 = <>::Output as Same>::Output; + + assert_eq!(::to_u64(), ::to_u64()); +} +#[test] +#[allow(non_snake_case)] +fn test_4_Max_4() { + type A = UInt, B0>, B0>; + type B = UInt, B0>, B0>; + type U4 = UInt, B0>, B0>; + + #[allow(non_camel_case_types)] + type U4MaxU4 = <>::Output as Same>::Output; + + assert_eq!(::to_u64(), ::to_u64()); +} +#[test] +#[allow(non_snake_case)] +fn test_4_Gcd_4() { + type A = UInt, B0>, B0>; + type B = UInt, B0>, B0>; + type U4 = UInt, B0>, B0>; + + #[allow(non_camel_case_types)] + type U4GcdU4 = <>::Output as Same>::Output; + + assert_eq!(::to_u64(), ::to_u64()); +} +#[test] +#[allow(non_snake_case)] +fn test_4_Sub_4() { + type A = UInt, B0>, B0>; + type B = UInt, B0>, B0>; + type U0 = UTerm; + + #[allow(non_camel_case_types)] + type U4SubU4 = <>::Output as Same>::Output; + + assert_eq!(::to_u64(), ::to_u64()); +} +#[test] +#[allow(non_snake_case)] +fn test_4_Div_4() { + type A = UInt, B0>, B0>; + type B = UInt, B0>, B0>; + type U1 = UInt; + + #[allow(non_camel_case_types)] + type U4DivU4 = <>::Output as Same>::Output; + + assert_eq!(::to_u64(), ::to_u64()); +} +#[test] +#[allow(non_snake_case)] +fn test_4_Rem_4() { + type A = UInt, B0>, B0>; + type B = UInt, B0>, B0>; + type U0 = UTerm; + + #[allow(non_camel_case_types)] + type U4RemU4 = <>::Output as Same>::Output; + + assert_eq!(::to_u64(), ::to_u64()); +} +#[test] +#[allow(non_snake_case)] +fn test_4_PartialDiv_4() { + type A = UInt, B0>, B0>; + type B = UInt, B0>, B0>; + type U1 = UInt; + + #[allow(non_camel_case_types)] + type U4PartialDivU4 = <>::Output as Same>::Output; + + assert_eq!(::to_u64(), ::to_u64()); +} +#[test] +#[allow(non_snake_case)] +fn test_4_Cmp_4() { + type A = UInt, B0>, B0>; + type B = UInt, B0>, B0>; + + #[allow(non_camel_case_types)] + type U4CmpU4 = >::Output; + assert_eq!(::to_ordering(), Ordering::Equal); +} +#[test] +#[allow(non_snake_case)] +fn test_4_BitAnd_5() { + type A = UInt, B0>, B0>; + type B = UInt, B0>, B1>; + type U4 = UInt, B0>, B0>; + + #[allow(non_camel_case_types)] + type U4BitAndU5 = <>::Output as Same>::Output; + + assert_eq!(::to_u64(), ::to_u64()); +} +#[test] +#[allow(non_snake_case)] +fn test_4_BitOr_5() { + type A = UInt, B0>, B0>; + type B = UInt, B0>, B1>; + type U5 = UInt, B0>, B1>; + + #[allow(non_camel_case_types)] + type U4BitOrU5 = <>::Output as Same>::Output; + + assert_eq!(::to_u64(), ::to_u64()); +} +#[test] +#[allow(non_snake_case)] +fn test_4_BitXor_5() { + type A = UInt, B0>, B0>; + type B = UInt, B0>, B1>; + type U1 = UInt; + + #[allow(non_camel_case_types)] + type U4BitXorU5 = <>::Output as Same>::Output; + + assert_eq!(::to_u64(), ::to_u64()); +} +#[test] +#[allow(non_snake_case)] +fn test_4_Shl_5() { + type A = UInt, B0>, B0>; + type B = UInt, B0>, B1>; + type U128 = UInt, B0>, B0>, B0>, B0>, B0>, B0>, B0>; + + #[allow(non_camel_case_types)] + type U4ShlU5 = <>::Output as Same>::Output; + + assert_eq!(::to_u64(), ::to_u64()); +} +#[test] +#[allow(non_snake_case)] +fn test_4_Shr_5() { + type A = UInt, B0>, B0>; + type B = UInt, B0>, B1>; + type U0 = UTerm; + + #[allow(non_camel_case_types)] + type U4ShrU5 = <>::Output as Same>::Output; + + assert_eq!(::to_u64(), ::to_u64()); +} +#[test] +#[allow(non_snake_case)] +fn test_4_Add_5() { + type A = UInt, B0>, B0>; + type B = UInt, B0>, B1>; + type U9 = UInt, B0>, B0>, B1>; + + #[allow(non_camel_case_types)] + type U4AddU5 = <>::Output as Same>::Output; + + assert_eq!(::to_u64(), ::to_u64()); +} +#[test] +#[allow(non_snake_case)] +fn test_4_Mul_5() { + type A = UInt, B0>, B0>; + type B = UInt, B0>, B1>; + type U20 = UInt, B0>, B1>, B0>, B0>; + + #[allow(non_camel_case_types)] + type U4MulU5 = <>::Output as Same>::Output; + + assert_eq!(::to_u64(), ::to_u64()); +} +#[test] +#[allow(non_snake_case)] +fn test_4_Pow_5() { + type A = UInt, B0>, B0>; + type B = UInt, B0>, B1>; + type U1024 = UInt, B0>, B0>, B0>, B0>, B0>, B0>, B0>, B0>, B0>, B0>; + + #[allow(non_camel_case_types)] + type U4PowU5 = <>::Output as Same>::Output; + + assert_eq!(::to_u64(), ::to_u64()); +} +#[test] +#[allow(non_snake_case)] +fn test_4_Min_5() { + type A = UInt, B0>, B0>; + type B = UInt, B0>, B1>; + type U4 = UInt, B0>, B0>; + + #[allow(non_camel_case_types)] + type U4MinU5 = <>::Output as Same>::Output; + + assert_eq!(::to_u64(), ::to_u64()); +} +#[test] +#[allow(non_snake_case)] +fn test_4_Max_5() { + type A = UInt, B0>, B0>; + type B = UInt, B0>, B1>; + type U5 = UInt, B0>, B1>; + + #[allow(non_camel_case_types)] + type U4MaxU5 = <>::Output as Same>::Output; + + assert_eq!(::to_u64(), ::to_u64()); +} +#[test] +#[allow(non_snake_case)] +fn test_4_Gcd_5() { + type A = UInt, B0>, B0>; + type B = UInt, B0>, B1>; + type U1 = UInt; + + #[allow(non_camel_case_types)] + type U4GcdU5 = <>::Output as Same>::Output; + + assert_eq!(::to_u64(), ::to_u64()); +} +#[test] +#[allow(non_snake_case)] +fn test_4_Div_5() { + type A = UInt, B0>, B0>; + type B = UInt, B0>, B1>; + type U0 = UTerm; + + #[allow(non_camel_case_types)] + type U4DivU5 = <>::Output as Same>::Output; + + assert_eq!(::to_u64(), ::to_u64()); +} +#[test] +#[allow(non_snake_case)] +fn test_4_Rem_5() { + type A = UInt, B0>, B0>; + type B = UInt, B0>, B1>; + type U4 = UInt, B0>, B0>; + + #[allow(non_camel_case_types)] + type U4RemU5 = <>::Output as Same>::Output; + + assert_eq!(::to_u64(), ::to_u64()); +} +#[test] +#[allow(non_snake_case)] +fn test_4_Cmp_5() { + type A = UInt, B0>, B0>; + type B = UInt, B0>, B1>; + + #[allow(non_camel_case_types)] + type U4CmpU5 = >::Output; + assert_eq!(::to_ordering(), Ordering::Less); +} +#[test] +#[allow(non_snake_case)] +fn test_5_BitAnd_0() { + type A = UInt, B0>, B1>; + type B = UTerm; + type U0 = UTerm; + + #[allow(non_camel_case_types)] + type U5BitAndU0 = <>::Output as Same>::Output; + + assert_eq!(::to_u64(), ::to_u64()); +} +#[test] +#[allow(non_snake_case)] +fn test_5_BitOr_0() { + type A = UInt, B0>, B1>; + type B = UTerm; + type U5 = UInt, B0>, B1>; + + #[allow(non_camel_case_types)] + type U5BitOrU0 = <>::Output as Same>::Output; + + assert_eq!(::to_u64(), ::to_u64()); +} +#[test] +#[allow(non_snake_case)] +fn test_5_BitXor_0() { + type A = UInt, B0>, B1>; + type B = UTerm; + type U5 = UInt, B0>, B1>; + + #[allow(non_camel_case_types)] + type U5BitXorU0 = <>::Output as Same>::Output; + + assert_eq!(::to_u64(), ::to_u64()); +} +#[test] +#[allow(non_snake_case)] +fn test_5_Shl_0() { + type A = UInt, B0>, B1>; + type B = UTerm; + type U5 = UInt, B0>, B1>; + + #[allow(non_camel_case_types)] + type U5ShlU0 = <>::Output as Same>::Output; + + assert_eq!(::to_u64(), ::to_u64()); +} +#[test] +#[allow(non_snake_case)] +fn test_5_Shr_0() { + type A = UInt, B0>, B1>; + type B = UTerm; + type U5 = UInt, B0>, B1>; + + #[allow(non_camel_case_types)] + type U5ShrU0 = <>::Output as Same>::Output; + + assert_eq!(::to_u64(), ::to_u64()); +} +#[test] +#[allow(non_snake_case)] +fn test_5_Add_0() { + type A = UInt, B0>, B1>; + type B = UTerm; + type U5 = UInt, B0>, B1>; + + #[allow(non_camel_case_types)] + type U5AddU0 = <>::Output as Same>::Output; + + assert_eq!(::to_u64(), ::to_u64()); +} +#[test] +#[allow(non_snake_case)] +fn test_5_Mul_0() { + type A = UInt, B0>, B1>; + type B = UTerm; + type U0 = UTerm; + + #[allow(non_camel_case_types)] + type U5MulU0 = <>::Output as Same>::Output; + + assert_eq!(::to_u64(), ::to_u64()); +} +#[test] +#[allow(non_snake_case)] +fn test_5_Pow_0() { + type A = UInt, B0>, B1>; + type B = UTerm; + type U1 = UInt; + + #[allow(non_camel_case_types)] + type U5PowU0 = <>::Output as Same>::Output; + + assert_eq!(::to_u64(), ::to_u64()); +} +#[test] +#[allow(non_snake_case)] +fn test_5_Min_0() { + type A = UInt, B0>, B1>; + type B = UTerm; + type U0 = UTerm; + + #[allow(non_camel_case_types)] + type U5MinU0 = <>::Output as Same>::Output; + + assert_eq!(::to_u64(), ::to_u64()); +} +#[test] +#[allow(non_snake_case)] +fn test_5_Max_0() { + type A = UInt, B0>, B1>; + type B = UTerm; + type U5 = UInt, B0>, B1>; + + #[allow(non_camel_case_types)] + type U5MaxU0 = <>::Output as Same>::Output; + + assert_eq!(::to_u64(), ::to_u64()); +} +#[test] +#[allow(non_snake_case)] +fn test_5_Gcd_0() { + type A = UInt, B0>, B1>; + type B = UTerm; + type U5 = UInt, B0>, B1>; + + #[allow(non_camel_case_types)] + type U5GcdU0 = <>::Output as Same>::Output; + + assert_eq!(::to_u64(), ::to_u64()); +} +#[test] +#[allow(non_snake_case)] +fn test_5_Sub_0() { + type A = UInt, B0>, B1>; + type B = UTerm; + type U5 = UInt, B0>, B1>; + + #[allow(non_camel_case_types)] + type U5SubU0 = <>::Output as Same>::Output; + + assert_eq!(::to_u64(), ::to_u64()); +} +#[test] +#[allow(non_snake_case)] +fn test_5_Cmp_0() { + type A = UInt, B0>, B1>; + type B = UTerm; + + #[allow(non_camel_case_types)] + type U5CmpU0 = >::Output; + assert_eq!(::to_ordering(), Ordering::Greater); +} +#[test] +#[allow(non_snake_case)] +fn test_5_BitAnd_1() { + type A = UInt, B0>, B1>; + type B = UInt; + type U1 = UInt; + + #[allow(non_camel_case_types)] + type U5BitAndU1 = <>::Output as Same>::Output; + + assert_eq!(::to_u64(), ::to_u64()); +} +#[test] +#[allow(non_snake_case)] +fn test_5_BitOr_1() { + type A = UInt, B0>, B1>; + type B = UInt; + type U5 = UInt, B0>, B1>; + + #[allow(non_camel_case_types)] + type U5BitOrU1 = <>::Output as Same>::Output; + + assert_eq!(::to_u64(), ::to_u64()); +} +#[test] +#[allow(non_snake_case)] +fn test_5_BitXor_1() { + type A = UInt, B0>, B1>; + type B = UInt; + type U4 = UInt, B0>, B0>; + + #[allow(non_camel_case_types)] + type U5BitXorU1 = <>::Output as Same>::Output; + + assert_eq!(::to_u64(), ::to_u64()); +} +#[test] +#[allow(non_snake_case)] +fn test_5_Shl_1() { + type A = UInt, B0>, B1>; + type B = UInt; + type U10 = UInt, B0>, B1>, B0>; + + #[allow(non_camel_case_types)] + type U5ShlU1 = <>::Output as Same>::Output; + + assert_eq!(::to_u64(), ::to_u64()); +} +#[test] +#[allow(non_snake_case)] +fn test_5_Shr_1() { + type A = UInt, B0>, B1>; + type B = UInt; + type U2 = UInt, B0>; + + #[allow(non_camel_case_types)] + type U5ShrU1 = <>::Output as Same>::Output; + + assert_eq!(::to_u64(), ::to_u64()); +} +#[test] +#[allow(non_snake_case)] +fn test_5_Add_1() { + type A = UInt, B0>, B1>; + type B = UInt; + type U6 = UInt, B1>, B0>; + + #[allow(non_camel_case_types)] + type U5AddU1 = <>::Output as Same>::Output; + + assert_eq!(::to_u64(), ::to_u64()); +} +#[test] +#[allow(non_snake_case)] +fn test_5_Mul_1() { + type A = UInt, B0>, B1>; + type B = UInt; + type U5 = UInt, B0>, B1>; + + #[allow(non_camel_case_types)] + type U5MulU1 = <>::Output as Same>::Output; + + assert_eq!(::to_u64(), ::to_u64()); +} +#[test] +#[allow(non_snake_case)] +fn test_5_Pow_1() { + type A = UInt, B0>, B1>; + type B = UInt; + type U5 = UInt, B0>, B1>; + + #[allow(non_camel_case_types)] + type U5PowU1 = <>::Output as Same>::Output; + + assert_eq!(::to_u64(), ::to_u64()); +} +#[test] +#[allow(non_snake_case)] +fn test_5_Min_1() { + type A = UInt, B0>, B1>; + type B = UInt; + type U1 = UInt; + + #[allow(non_camel_case_types)] + type U5MinU1 = <>::Output as Same>::Output; + + assert_eq!(::to_u64(), ::to_u64()); +} +#[test] +#[allow(non_snake_case)] +fn test_5_Max_1() { + type A = UInt, B0>, B1>; + type B = UInt; + type U5 = UInt, B0>, B1>; + + #[allow(non_camel_case_types)] + type U5MaxU1 = <>::Output as Same>::Output; + + assert_eq!(::to_u64(), ::to_u64()); +} +#[test] +#[allow(non_snake_case)] +fn test_5_Gcd_1() { + type A = UInt, B0>, B1>; + type B = UInt; + type U1 = UInt; + + #[allow(non_camel_case_types)] + type U5GcdU1 = <>::Output as Same>::Output; + + assert_eq!(::to_u64(), ::to_u64()); +} +#[test] +#[allow(non_snake_case)] +fn test_5_Sub_1() { + type A = UInt, B0>, B1>; + type B = UInt; + type U4 = UInt, B0>, B0>; + + #[allow(non_camel_case_types)] + type U5SubU1 = <>::Output as Same>::Output; + + assert_eq!(::to_u64(), ::to_u64()); +} +#[test] +#[allow(non_snake_case)] +fn test_5_Div_1() { + type A = UInt, B0>, B1>; + type B = UInt; + type U5 = UInt, B0>, B1>; + + #[allow(non_camel_case_types)] + type U5DivU1 = <>::Output as Same>::Output; + + assert_eq!(::to_u64(), ::to_u64()); +} +#[test] +#[allow(non_snake_case)] +fn test_5_Rem_1() { + type A = UInt, B0>, B1>; + type B = UInt; + type U0 = UTerm; + + #[allow(non_camel_case_types)] + type U5RemU1 = <>::Output as Same>::Output; + + assert_eq!(::to_u64(), ::to_u64()); +} +#[test] +#[allow(non_snake_case)] +fn test_5_PartialDiv_1() { + type A = UInt, B0>, B1>; + type B = UInt; + type U5 = UInt, B0>, B1>; + + #[allow(non_camel_case_types)] + type U5PartialDivU1 = <>::Output as Same>::Output; + + assert_eq!(::to_u64(), ::to_u64()); +} +#[test] +#[allow(non_snake_case)] +fn test_5_Cmp_1() { + type A = UInt, B0>, B1>; + type B = UInt; + + #[allow(non_camel_case_types)] + type U5CmpU1 = >::Output; + assert_eq!(::to_ordering(), Ordering::Greater); +} +#[test] +#[allow(non_snake_case)] +fn test_5_BitAnd_2() { + type A = UInt, B0>, B1>; + type B = UInt, B0>; + type U0 = UTerm; + + #[allow(non_camel_case_types)] + type U5BitAndU2 = <>::Output as Same>::Output; + + assert_eq!(::to_u64(), ::to_u64()); +} +#[test] +#[allow(non_snake_case)] +fn test_5_BitOr_2() { + type A = UInt, B0>, B1>; + type B = UInt, B0>; + type U7 = UInt, B1>, B1>; + + #[allow(non_camel_case_types)] + type U5BitOrU2 = <>::Output as Same>::Output; + + assert_eq!(::to_u64(), ::to_u64()); +} +#[test] +#[allow(non_snake_case)] +fn test_5_BitXor_2() { + type A = UInt, B0>, B1>; + type B = UInt, B0>; + type U7 = UInt, B1>, B1>; + + #[allow(non_camel_case_types)] + type U5BitXorU2 = <>::Output as Same>::Output; + + assert_eq!(::to_u64(), ::to_u64()); +} +#[test] +#[allow(non_snake_case)] +fn test_5_Shl_2() { + type A = UInt, B0>, B1>; + type B = UInt, B0>; + type U20 = UInt, B0>, B1>, B0>, B0>; + + #[allow(non_camel_case_types)] + type U5ShlU2 = <>::Output as Same>::Output; + + assert_eq!(::to_u64(), ::to_u64()); +} +#[test] +#[allow(non_snake_case)] +fn test_5_Shr_2() { + type A = UInt, B0>, B1>; + type B = UInt, B0>; + type U1 = UInt; + + #[allow(non_camel_case_types)] + type U5ShrU2 = <>::Output as Same>::Output; + + assert_eq!(::to_u64(), ::to_u64()); +} +#[test] +#[allow(non_snake_case)] +fn test_5_Add_2() { + type A = UInt, B0>, B1>; + type B = UInt, B0>; + type U7 = UInt, B1>, B1>; + + #[allow(non_camel_case_types)] + type U5AddU2 = <>::Output as Same>::Output; + + assert_eq!(::to_u64(), ::to_u64()); +} +#[test] +#[allow(non_snake_case)] +fn test_5_Mul_2() { + type A = UInt, B0>, B1>; + type B = UInt, B0>; + type U10 = UInt, B0>, B1>, B0>; + + #[allow(non_camel_case_types)] + type U5MulU2 = <>::Output as Same>::Output; + + assert_eq!(::to_u64(), ::to_u64()); +} +#[test] +#[allow(non_snake_case)] +fn test_5_Pow_2() { + type A = UInt, B0>, B1>; + type B = UInt, B0>; + type U25 = UInt, B1>, B0>, B0>, B1>; + + #[allow(non_camel_case_types)] + type U5PowU2 = <>::Output as Same>::Output; + + assert_eq!(::to_u64(), ::to_u64()); +} +#[test] +#[allow(non_snake_case)] +fn test_5_Min_2() { + type A = UInt, B0>, B1>; + type B = UInt, B0>; + type U2 = UInt, B0>; + + #[allow(non_camel_case_types)] + type U5MinU2 = <>::Output as Same>::Output; + + assert_eq!(::to_u64(), ::to_u64()); +} +#[test] +#[allow(non_snake_case)] +fn test_5_Max_2() { + type A = UInt, B0>, B1>; + type B = UInt, B0>; + type U5 = UInt, B0>, B1>; + + #[allow(non_camel_case_types)] + type U5MaxU2 = <>::Output as Same>::Output; + + assert_eq!(::to_u64(), ::to_u64()); +} +#[test] +#[allow(non_snake_case)] +fn test_5_Gcd_2() { + type A = UInt, B0>, B1>; + type B = UInt, B0>; + type U1 = UInt; + + #[allow(non_camel_case_types)] + type U5GcdU2 = <>::Output as Same>::Output; + + assert_eq!(::to_u64(), ::to_u64()); +} +#[test] +#[allow(non_snake_case)] +fn test_5_Sub_2() { + type A = UInt, B0>, B1>; + type B = UInt, B0>; + type U3 = UInt, B1>; + + #[allow(non_camel_case_types)] + type U5SubU2 = <>::Output as Same>::Output; + + assert_eq!(::to_u64(), ::to_u64()); +} +#[test] +#[allow(non_snake_case)] +fn test_5_Div_2() { + type A = UInt, B0>, B1>; + type B = UInt, B0>; + type U2 = UInt, B0>; + + #[allow(non_camel_case_types)] + type U5DivU2 = <>::Output as Same>::Output; + + assert_eq!(::to_u64(), ::to_u64()); +} +#[test] +#[allow(non_snake_case)] +fn test_5_Rem_2() { + type A = UInt, B0>, B1>; + type B = UInt, B0>; + type U1 = UInt; + + #[allow(non_camel_case_types)] + type U5RemU2 = <>::Output as Same>::Output; + + assert_eq!(::to_u64(), ::to_u64()); +} +#[test] +#[allow(non_snake_case)] +fn test_5_Cmp_2() { + type A = UInt, B0>, B1>; + type B = UInt, B0>; + + #[allow(non_camel_case_types)] + type U5CmpU2 = >::Output; + assert_eq!(::to_ordering(), Ordering::Greater); +} +#[test] +#[allow(non_snake_case)] +fn test_5_BitAnd_3() { + type A = UInt, B0>, B1>; + type B = UInt, B1>; + type U1 = UInt; + + #[allow(non_camel_case_types)] + type U5BitAndU3 = <>::Output as Same>::Output; + + assert_eq!(::to_u64(), ::to_u64()); +} +#[test] +#[allow(non_snake_case)] +fn test_5_BitOr_3() { + type A = UInt, B0>, B1>; + type B = UInt, B1>; + type U7 = UInt, B1>, B1>; + + #[allow(non_camel_case_types)] + type U5BitOrU3 = <>::Output as Same>::Output; + + assert_eq!(::to_u64(), ::to_u64()); +} +#[test] +#[allow(non_snake_case)] +fn test_5_BitXor_3() { + type A = UInt, B0>, B1>; + type B = UInt, B1>; + type U6 = UInt, B1>, B0>; + + #[allow(non_camel_case_types)] + type U5BitXorU3 = <>::Output as Same>::Output; + + assert_eq!(::to_u64(), ::to_u64()); +} +#[test] +#[allow(non_snake_case)] +fn test_5_Shl_3() { + type A = UInt, B0>, B1>; + type B = UInt, B1>; + type U40 = UInt, B0>, B1>, B0>, B0>, B0>; + + #[allow(non_camel_case_types)] + type U5ShlU3 = <>::Output as Same>::Output; + + assert_eq!(::to_u64(), ::to_u64()); +} +#[test] +#[allow(non_snake_case)] +fn test_5_Shr_3() { + type A = UInt, B0>, B1>; + type B = UInt, B1>; + type U0 = UTerm; + + #[allow(non_camel_case_types)] + type U5ShrU3 = <>::Output as Same>::Output; + + assert_eq!(::to_u64(), ::to_u64()); +} +#[test] +#[allow(non_snake_case)] +fn test_5_Add_3() { + type A = UInt, B0>, B1>; + type B = UInt, B1>; + type U8 = UInt, B0>, B0>, B0>; + + #[allow(non_camel_case_types)] + type U5AddU3 = <>::Output as Same>::Output; + + assert_eq!(::to_u64(), ::to_u64()); +} +#[test] +#[allow(non_snake_case)] +fn test_5_Mul_3() { + type A = UInt, B0>, B1>; + type B = UInt, B1>; + type U15 = UInt, B1>, B1>, B1>; + + #[allow(non_camel_case_types)] + type U5MulU3 = <>::Output as Same>::Output; + + assert_eq!(::to_u64(), ::to_u64()); +} +#[test] +#[allow(non_snake_case)] +fn test_5_Pow_3() { + type A = UInt, B0>, B1>; + type B = UInt, B1>; + type U125 = UInt, B1>, B1>, B1>, B1>, B0>, B1>; + + #[allow(non_camel_case_types)] + type U5PowU3 = <>::Output as Same>::Output; + + assert_eq!(::to_u64(), ::to_u64()); +} +#[test] +#[allow(non_snake_case)] +fn test_5_Min_3() { + type A = UInt, B0>, B1>; + type B = UInt, B1>; + type U3 = UInt, B1>; + + #[allow(non_camel_case_types)] + type U5MinU3 = <>::Output as Same>::Output; + + assert_eq!(::to_u64(), ::to_u64()); +} +#[test] +#[allow(non_snake_case)] +fn test_5_Max_3() { + type A = UInt, B0>, B1>; + type B = UInt, B1>; + type U5 = UInt, B0>, B1>; + + #[allow(non_camel_case_types)] + type U5MaxU3 = <>::Output as Same>::Output; + + assert_eq!(::to_u64(), ::to_u64()); +} +#[test] +#[allow(non_snake_case)] +fn test_5_Gcd_3() { + type A = UInt, B0>, B1>; + type B = UInt, B1>; + type U1 = UInt; + + #[allow(non_camel_case_types)] + type U5GcdU3 = <>::Output as Same>::Output; + + assert_eq!(::to_u64(), ::to_u64()); +} +#[test] +#[allow(non_snake_case)] +fn test_5_Sub_3() { + type A = UInt, B0>, B1>; + type B = UInt, B1>; + type U2 = UInt, B0>; + + #[allow(non_camel_case_types)] + type U5SubU3 = <>::Output as Same>::Output; + + assert_eq!(::to_u64(), ::to_u64()); +} +#[test] +#[allow(non_snake_case)] +fn test_5_Div_3() { + type A = UInt, B0>, B1>; + type B = UInt, B1>; + type U1 = UInt; + + #[allow(non_camel_case_types)] + type U5DivU3 = <>::Output as Same>::Output; + + assert_eq!(::to_u64(), ::to_u64()); +} +#[test] +#[allow(non_snake_case)] +fn test_5_Rem_3() { + type A = UInt, B0>, B1>; + type B = UInt, B1>; + type U2 = UInt, B0>; + + #[allow(non_camel_case_types)] + type U5RemU3 = <>::Output as Same>::Output; + + assert_eq!(::to_u64(), ::to_u64()); +} +#[test] +#[allow(non_snake_case)] +fn test_5_Cmp_3() { + type A = UInt, B0>, B1>; + type B = UInt, B1>; + + #[allow(non_camel_case_types)] + type U5CmpU3 = >::Output; + assert_eq!(::to_ordering(), Ordering::Greater); +} +#[test] +#[allow(non_snake_case)] +fn test_5_BitAnd_4() { + type A = UInt, B0>, B1>; + type B = UInt, B0>, B0>; + type U4 = UInt, B0>, B0>; + + #[allow(non_camel_case_types)] + type U5BitAndU4 = <>::Output as Same>::Output; + + assert_eq!(::to_u64(), ::to_u64()); +} +#[test] +#[allow(non_snake_case)] +fn test_5_BitOr_4() { + type A = UInt, B0>, B1>; + type B = UInt, B0>, B0>; + type U5 = UInt, B0>, B1>; + + #[allow(non_camel_case_types)] + type U5BitOrU4 = <>::Output as Same>::Output; + + assert_eq!(::to_u64(), ::to_u64()); +} +#[test] +#[allow(non_snake_case)] +fn test_5_BitXor_4() { + type A = UInt, B0>, B1>; + type B = UInt, B0>, B0>; + type U1 = UInt; + + #[allow(non_camel_case_types)] + type U5BitXorU4 = <>::Output as Same>::Output; + + assert_eq!(::to_u64(), ::to_u64()); +} +#[test] +#[allow(non_snake_case)] +fn test_5_Shl_4() { + type A = UInt, B0>, B1>; + type B = UInt, B0>, B0>; + type U80 = UInt, B0>, B1>, B0>, B0>, B0>, B0>; + + #[allow(non_camel_case_types)] + type U5ShlU4 = <>::Output as Same>::Output; + + assert_eq!(::to_u64(), ::to_u64()); +} +#[test] +#[allow(non_snake_case)] +fn test_5_Shr_4() { + type A = UInt, B0>, B1>; + type B = UInt, B0>, B0>; + type U0 = UTerm; + + #[allow(non_camel_case_types)] + type U5ShrU4 = <>::Output as Same>::Output; + + assert_eq!(::to_u64(), ::to_u64()); +} +#[test] +#[allow(non_snake_case)] +fn test_5_Add_4() { + type A = UInt, B0>, B1>; + type B = UInt, B0>, B0>; + type U9 = UInt, B0>, B0>, B1>; + + #[allow(non_camel_case_types)] + type U5AddU4 = <>::Output as Same>::Output; + + assert_eq!(::to_u64(), ::to_u64()); +} +#[test] +#[allow(non_snake_case)] +fn test_5_Mul_4() { + type A = UInt, B0>, B1>; + type B = UInt, B0>, B0>; + type U20 = UInt, B0>, B1>, B0>, B0>; + + #[allow(non_camel_case_types)] + type U5MulU4 = <>::Output as Same>::Output; + + assert_eq!(::to_u64(), ::to_u64()); +} +#[test] +#[allow(non_snake_case)] +fn test_5_Pow_4() { + type A = UInt, B0>, B1>; + type B = UInt, B0>, B0>; + type U625 = UInt, B0>, B0>, B1>, B1>, B1>, B0>, B0>, B0>, B1>; + + #[allow(non_camel_case_types)] + type U5PowU4 = <>::Output as Same>::Output; + + assert_eq!(::to_u64(), ::to_u64()); +} +#[test] +#[allow(non_snake_case)] +fn test_5_Min_4() { + type A = UInt, B0>, B1>; + type B = UInt, B0>, B0>; + type U4 = UInt, B0>, B0>; + + #[allow(non_camel_case_types)] + type U5MinU4 = <>::Output as Same>::Output; + + assert_eq!(::to_u64(), ::to_u64()); +} +#[test] +#[allow(non_snake_case)] +fn test_5_Max_4() { + type A = UInt, B0>, B1>; + type B = UInt, B0>, B0>; + type U5 = UInt, B0>, B1>; + + #[allow(non_camel_case_types)] + type U5MaxU4 = <>::Output as Same>::Output; + + assert_eq!(::to_u64(), ::to_u64()); +} +#[test] +#[allow(non_snake_case)] +fn test_5_Gcd_4() { + type A = UInt, B0>, B1>; + type B = UInt, B0>, B0>; + type U1 = UInt; + + #[allow(non_camel_case_types)] + type U5GcdU4 = <>::Output as Same>::Output; + + assert_eq!(::to_u64(), ::to_u64()); +} +#[test] +#[allow(non_snake_case)] +fn test_5_Sub_4() { + type A = UInt, B0>, B1>; + type B = UInt, B0>, B0>; + type U1 = UInt; + + #[allow(non_camel_case_types)] + type U5SubU4 = <>::Output as Same>::Output; + + assert_eq!(::to_u64(), ::to_u64()); +} +#[test] +#[allow(non_snake_case)] +fn test_5_Div_4() { + type A = UInt, B0>, B1>; + type B = UInt, B0>, B0>; + type U1 = UInt; + + #[allow(non_camel_case_types)] + type U5DivU4 = <>::Output as Same>::Output; + + assert_eq!(::to_u64(), ::to_u64()); +} +#[test] +#[allow(non_snake_case)] +fn test_5_Rem_4() { + type A = UInt, B0>, B1>; + type B = UInt, B0>, B0>; + type U1 = UInt; + + #[allow(non_camel_case_types)] + type U5RemU4 = <>::Output as Same>::Output; + + assert_eq!(::to_u64(), ::to_u64()); +} +#[test] +#[allow(non_snake_case)] +fn test_5_Cmp_4() { + type A = UInt, B0>, B1>; + type B = UInt, B0>, B0>; + + #[allow(non_camel_case_types)] + type U5CmpU4 = >::Output; + assert_eq!(::to_ordering(), Ordering::Greater); +} +#[test] +#[allow(non_snake_case)] +fn test_5_BitAnd_5() { + type A = UInt, B0>, B1>; + type B = UInt, B0>, B1>; + type U5 = UInt, B0>, B1>; + + #[allow(non_camel_case_types)] + type U5BitAndU5 = <>::Output as Same>::Output; + + assert_eq!(::to_u64(), ::to_u64()); +} +#[test] +#[allow(non_snake_case)] +fn test_5_BitOr_5() { + type A = UInt, B0>, B1>; + type B = UInt, B0>, B1>; + type U5 = UInt, B0>, B1>; + + #[allow(non_camel_case_types)] + type U5BitOrU5 = <>::Output as Same>::Output; + + assert_eq!(::to_u64(), ::to_u64()); +} +#[test] +#[allow(non_snake_case)] +fn test_5_BitXor_5() { + type A = UInt, B0>, B1>; + type B = UInt, B0>, B1>; + type U0 = UTerm; + + #[allow(non_camel_case_types)] + type U5BitXorU5 = <>::Output as Same>::Output; + + assert_eq!(::to_u64(), ::to_u64()); +} +#[test] +#[allow(non_snake_case)] +fn test_5_Shl_5() { + type A = UInt, B0>, B1>; + type B = UInt, B0>, B1>; + type U160 = UInt, B0>, B1>, B0>, B0>, B0>, B0>, B0>; + + #[allow(non_camel_case_types)] + type U5ShlU5 = <>::Output as Same>::Output; + + assert_eq!(::to_u64(), ::to_u64()); +} +#[test] +#[allow(non_snake_case)] +fn test_5_Shr_5() { + type A = UInt, B0>, B1>; + type B = UInt, B0>, B1>; + type U0 = UTerm; + + #[allow(non_camel_case_types)] + type U5ShrU5 = <>::Output as Same>::Output; + + assert_eq!(::to_u64(), ::to_u64()); +} +#[test] +#[allow(non_snake_case)] +fn test_5_Add_5() { + type A = UInt, B0>, B1>; + type B = UInt, B0>, B1>; + type U10 = UInt, B0>, B1>, B0>; + + #[allow(non_camel_case_types)] + type U5AddU5 = <>::Output as Same>::Output; + + assert_eq!(::to_u64(), ::to_u64()); +} +#[test] +#[allow(non_snake_case)] +fn test_5_Mul_5() { + type A = UInt, B0>, B1>; + type B = UInt, B0>, B1>; + type U25 = UInt, B1>, B0>, B0>, B1>; + + #[allow(non_camel_case_types)] + type U5MulU5 = <>::Output as Same>::Output; + + assert_eq!(::to_u64(), ::to_u64()); +} +#[test] +#[allow(non_snake_case)] +fn test_5_Pow_5() { + type A = UInt, B0>, B1>; + type B = UInt, B0>, B1>; + type U3125 = UInt, B1>, B0>, B0>, B0>, B0>, B1>, B1>, B0>, B1>, B0>, B1>; + + #[allow(non_camel_case_types)] + type U5PowU5 = <>::Output as Same>::Output; + + assert_eq!(::to_u64(), ::to_u64()); +} +#[test] +#[allow(non_snake_case)] +fn test_5_Min_5() { + type A = UInt, B0>, B1>; + type B = UInt, B0>, B1>; + type U5 = UInt, B0>, B1>; + + #[allow(non_camel_case_types)] + type U5MinU5 = <>::Output as Same>::Output; + + assert_eq!(::to_u64(), ::to_u64()); +} +#[test] +#[allow(non_snake_case)] +fn test_5_Max_5() { + type A = UInt, B0>, B1>; + type B = UInt, B0>, B1>; + type U5 = UInt, B0>, B1>; + + #[allow(non_camel_case_types)] + type U5MaxU5 = <>::Output as Same>::Output; + + assert_eq!(::to_u64(), ::to_u64()); +} +#[test] +#[allow(non_snake_case)] +fn test_5_Gcd_5() { + type A = UInt, B0>, B1>; + type B = UInt, B0>, B1>; + type U5 = UInt, B0>, B1>; + + #[allow(non_camel_case_types)] + type U5GcdU5 = <>::Output as Same>::Output; + + assert_eq!(::to_u64(), ::to_u64()); +} +#[test] +#[allow(non_snake_case)] +fn test_5_Sub_5() { + type A = UInt, B0>, B1>; + type B = UInt, B0>, B1>; + type U0 = UTerm; + + #[allow(non_camel_case_types)] + type U5SubU5 = <>::Output as Same>::Output; + + assert_eq!(::to_u64(), ::to_u64()); +} +#[test] +#[allow(non_snake_case)] +fn test_5_Div_5() { + type A = UInt, B0>, B1>; + type B = UInt, B0>, B1>; + type U1 = UInt; + + #[allow(non_camel_case_types)] + type U5DivU5 = <>::Output as Same>::Output; + + assert_eq!(::to_u64(), ::to_u64()); +} +#[test] +#[allow(non_snake_case)] +fn test_5_Rem_5() { + type A = UInt, B0>, B1>; + type B = UInt, B0>, B1>; + type U0 = UTerm; + + #[allow(non_camel_case_types)] + type U5RemU5 = <>::Output as Same>::Output; + + assert_eq!(::to_u64(), ::to_u64()); +} +#[test] +#[allow(non_snake_case)] +fn test_5_PartialDiv_5() { + type A = UInt, B0>, B1>; + type B = UInt, B0>, B1>; + type U1 = UInt; + + #[allow(non_camel_case_types)] + type U5PartialDivU5 = <>::Output as Same>::Output; + + assert_eq!(::to_u64(), ::to_u64()); +} +#[test] +#[allow(non_snake_case)] +fn test_5_Cmp_5() { + type A = UInt, B0>, B1>; + type B = UInt, B0>, B1>; + + #[allow(non_camel_case_types)] + type U5CmpU5 = >::Output; + assert_eq!(::to_ordering(), Ordering::Equal); +} +#[test] +#[allow(non_snake_case)] +fn test_N5_Add_N5() { + type A = NInt, B0>, B1>>; + type B = NInt, B0>, B1>>; + type N10 = NInt, B0>, B1>, B0>>; + + #[allow(non_camel_case_types)] + type N5AddN5 = <>::Output as Same>::Output; + + assert_eq!(::to_i64(), ::to_i64()); +} +#[test] +#[allow(non_snake_case)] +fn test_N5_Sub_N5() { + type A = NInt, B0>, B1>>; + type B = NInt, B0>, B1>>; + type _0 = Z0; + + #[allow(non_camel_case_types)] + type N5SubN5 = <>::Output as Same<_0>>::Output; + + assert_eq!(::to_i64(), <_0 as Integer>::to_i64()); +} +#[test] +#[allow(non_snake_case)] +fn test_N5_Mul_N5() { + type A = NInt, B0>, B1>>; + type B = NInt, B0>, B1>>; + type P25 = PInt, B1>, B0>, B0>, B1>>; + + #[allow(non_camel_case_types)] + type N5MulN5 = <>::Output as Same>::Output; + + assert_eq!(::to_i64(), ::to_i64()); +} +#[test] +#[allow(non_snake_case)] +fn test_N5_Min_N5() { + type A = NInt, B0>, B1>>; + type B = NInt, B0>, B1>>; + type N5 = NInt, B0>, B1>>; + + #[allow(non_camel_case_types)] + type N5MinN5 = <>::Output as Same>::Output; + + assert_eq!(::to_i64(), ::to_i64()); +} +#[test] +#[allow(non_snake_case)] +fn test_N5_Max_N5() { + type A = NInt, B0>, B1>>; + type B = NInt, B0>, B1>>; + type N5 = NInt, B0>, B1>>; + + #[allow(non_camel_case_types)] + type N5MaxN5 = <>::Output as Same>::Output; + + assert_eq!(::to_i64(), ::to_i64()); +} +#[test] +#[allow(non_snake_case)] +fn test_N5_Gcd_N5() { + type A = NInt, B0>, B1>>; + type B = NInt, B0>, B1>>; + type P5 = PInt, B0>, B1>>; + + #[allow(non_camel_case_types)] + type N5GcdN5 = <>::Output as Same>::Output; + + assert_eq!(::to_i64(), ::to_i64()); +} +#[test] +#[allow(non_snake_case)] +fn test_N5_Div_N5() { + type A = NInt, B0>, B1>>; + type B = NInt, B0>, B1>>; + type P1 = PInt>; + + #[allow(non_camel_case_types)] + type N5DivN5 = <>::Output as Same>::Output; + + assert_eq!(::to_i64(), ::to_i64()); +} +#[test] +#[allow(non_snake_case)] +fn test_N5_Rem_N5() { + type A = NInt, B0>, B1>>; + type B = NInt, B0>, B1>>; + type _0 = Z0; + + #[allow(non_camel_case_types)] + type N5RemN5 = <>::Output as Same<_0>>::Output; + + assert_eq!(::to_i64(), <_0 as Integer>::to_i64()); +} +#[test] +#[allow(non_snake_case)] +fn test_N5_PartialDiv_N5() { + type A = NInt, B0>, B1>>; + type B = NInt, B0>, B1>>; + type P1 = PInt>; + + #[allow(non_camel_case_types)] + type N5PartialDivN5 = <>::Output as Same>::Output; + + assert_eq!(::to_i64(), ::to_i64()); +} +#[test] +#[allow(non_snake_case)] +fn test_N5_Cmp_N5() { + type A = NInt, B0>, B1>>; + type B = NInt, B0>, B1>>; + + #[allow(non_camel_case_types)] + type N5CmpN5 = >::Output; + assert_eq!(::to_ordering(), Ordering::Equal); +} +#[test] +#[allow(non_snake_case)] +fn test_N5_Add_N4() { + type A = NInt, B0>, B1>>; + type B = NInt, B0>, B0>>; + type N9 = NInt, B0>, B0>, B1>>; + + #[allow(non_camel_case_types)] + type N5AddN4 = <>::Output as Same>::Output; + + assert_eq!(::to_i64(), ::to_i64()); +} +#[test] +#[allow(non_snake_case)] +fn test_N5_Sub_N4() { + type A = NInt, B0>, B1>>; + type B = NInt, B0>, B0>>; + type N1 = NInt>; + + #[allow(non_camel_case_types)] + type N5SubN4 = <>::Output as Same>::Output; + + assert_eq!(::to_i64(), ::to_i64()); +} +#[test] +#[allow(non_snake_case)] +fn test_N5_Mul_N4() { + type A = NInt, B0>, B1>>; + type B = NInt, B0>, B0>>; + type P20 = PInt, B0>, B1>, B0>, B0>>; + + #[allow(non_camel_case_types)] + type N5MulN4 = <>::Output as Same>::Output; + + assert_eq!(::to_i64(), ::to_i64()); +} +#[test] +#[allow(non_snake_case)] +fn test_N5_Min_N4() { + type A = NInt, B0>, B1>>; + type B = NInt, B0>, B0>>; + type N5 = NInt, B0>, B1>>; + + #[allow(non_camel_case_types)] + type N5MinN4 = <>::Output as Same>::Output; + + assert_eq!(::to_i64(), ::to_i64()); +} +#[test] +#[allow(non_snake_case)] +fn test_N5_Max_N4() { + type A = NInt, B0>, B1>>; + type B = NInt, B0>, B0>>; + type N4 = NInt, B0>, B0>>; + + #[allow(non_camel_case_types)] + type N5MaxN4 = <>::Output as Same>::Output; + + assert_eq!(::to_i64(), ::to_i64()); +} +#[test] +#[allow(non_snake_case)] +fn test_N5_Gcd_N4() { + type A = NInt, B0>, B1>>; + type B = NInt, B0>, B0>>; + type P1 = PInt>; + + #[allow(non_camel_case_types)] + type N5GcdN4 = <>::Output as Same>::Output; + + assert_eq!(::to_i64(), ::to_i64()); +} +#[test] +#[allow(non_snake_case)] +fn test_N5_Div_N4() { + type A = NInt, B0>, B1>>; + type B = NInt, B0>, B0>>; + type P1 = PInt>; + + #[allow(non_camel_case_types)] + type N5DivN4 = <>::Output as Same>::Output; + + assert_eq!(::to_i64(), ::to_i64()); +} +#[test] +#[allow(non_snake_case)] +fn test_N5_Rem_N4() { + type A = NInt, B0>, B1>>; + type B = NInt, B0>, B0>>; + type N1 = NInt>; + + #[allow(non_camel_case_types)] + type N5RemN4 = <>::Output as Same>::Output; + + assert_eq!(::to_i64(), ::to_i64()); +} +#[test] +#[allow(non_snake_case)] +fn test_N5_Cmp_N4() { + type A = NInt, B0>, B1>>; + type B = NInt, B0>, B0>>; + + #[allow(non_camel_case_types)] + type N5CmpN4 = >::Output; + assert_eq!(::to_ordering(), Ordering::Less); +} +#[test] +#[allow(non_snake_case)] +fn test_N5_Add_N3() { + type A = NInt, B0>, B1>>; + type B = NInt, B1>>; + type N8 = NInt, B0>, B0>, B0>>; + + #[allow(non_camel_case_types)] + type N5AddN3 = <>::Output as Same>::Output; + + assert_eq!(::to_i64(), ::to_i64()); +} +#[test] +#[allow(non_snake_case)] +fn test_N5_Sub_N3() { + type A = NInt, B0>, B1>>; + type B = NInt, B1>>; + type N2 = NInt, B0>>; + + #[allow(non_camel_case_types)] + type N5SubN3 = <>::Output as Same>::Output; + + assert_eq!(::to_i64(), ::to_i64()); +} +#[test] +#[allow(non_snake_case)] +fn test_N5_Mul_N3() { + type A = NInt, B0>, B1>>; + type B = NInt, B1>>; + type P15 = PInt, B1>, B1>, B1>>; + + #[allow(non_camel_case_types)] + type N5MulN3 = <>::Output as Same>::Output; + + assert_eq!(::to_i64(), ::to_i64()); +} +#[test] +#[allow(non_snake_case)] +fn test_N5_Min_N3() { + type A = NInt, B0>, B1>>; + type B = NInt, B1>>; + type N5 = NInt, B0>, B1>>; + + #[allow(non_camel_case_types)] + type N5MinN3 = <>::Output as Same>::Output; + + assert_eq!(::to_i64(), ::to_i64()); +} +#[test] +#[allow(non_snake_case)] +fn test_N5_Max_N3() { + type A = NInt, B0>, B1>>; + type B = NInt, B1>>; + type N3 = NInt, B1>>; + + #[allow(non_camel_case_types)] + type N5MaxN3 = <>::Output as Same>::Output; + + assert_eq!(::to_i64(), ::to_i64()); +} +#[test] +#[allow(non_snake_case)] +fn test_N5_Gcd_N3() { + type A = NInt, B0>, B1>>; + type B = NInt, B1>>; + type P1 = PInt>; + + #[allow(non_camel_case_types)] + type N5GcdN3 = <>::Output as Same>::Output; + + assert_eq!(::to_i64(), ::to_i64()); +} +#[test] +#[allow(non_snake_case)] +fn test_N5_Div_N3() { + type A = NInt, B0>, B1>>; + type B = NInt, B1>>; + type P1 = PInt>; + + #[allow(non_camel_case_types)] + type N5DivN3 = <>::Output as Same>::Output; + + assert_eq!(::to_i64(), ::to_i64()); +} +#[test] +#[allow(non_snake_case)] +fn test_N5_Rem_N3() { + type A = NInt, B0>, B1>>; + type B = NInt, B1>>; + type N2 = NInt, B0>>; + + #[allow(non_camel_case_types)] + type N5RemN3 = <>::Output as Same>::Output; + + assert_eq!(::to_i64(), ::to_i64()); +} +#[test] +#[allow(non_snake_case)] +fn test_N5_Cmp_N3() { + type A = NInt, B0>, B1>>; + type B = NInt, B1>>; + + #[allow(non_camel_case_types)] + type N5CmpN3 = >::Output; + assert_eq!(::to_ordering(), Ordering::Less); +} +#[test] +#[allow(non_snake_case)] +fn test_N5_Add_N2() { + type A = NInt, B0>, B1>>; + type B = NInt, B0>>; + type N7 = NInt, B1>, B1>>; + + #[allow(non_camel_case_types)] + type N5AddN2 = <>::Output as Same>::Output; + + assert_eq!(::to_i64(), ::to_i64()); +} +#[test] +#[allow(non_snake_case)] +fn test_N5_Sub_N2() { + type A = NInt, B0>, B1>>; + type B = NInt, B0>>; + type N3 = NInt, B1>>; + + #[allow(non_camel_case_types)] + type N5SubN2 = <>::Output as Same>::Output; + + assert_eq!(::to_i64(), ::to_i64()); +} +#[test] +#[allow(non_snake_case)] +fn test_N5_Mul_N2() { + type A = NInt, B0>, B1>>; + type B = NInt, B0>>; + type P10 = PInt, B0>, B1>, B0>>; + + #[allow(non_camel_case_types)] + type N5MulN2 = <>::Output as Same>::Output; + + assert_eq!(::to_i64(), ::to_i64()); +} +#[test] +#[allow(non_snake_case)] +fn test_N5_Min_N2() { + type A = NInt, B0>, B1>>; + type B = NInt, B0>>; + type N5 = NInt, B0>, B1>>; + + #[allow(non_camel_case_types)] + type N5MinN2 = <>::Output as Same>::Output; + + assert_eq!(::to_i64(), ::to_i64()); +} +#[test] +#[allow(non_snake_case)] +fn test_N5_Max_N2() { + type A = NInt, B0>, B1>>; + type B = NInt, B0>>; + type N2 = NInt, B0>>; + + #[allow(non_camel_case_types)] + type N5MaxN2 = <>::Output as Same>::Output; + + assert_eq!(::to_i64(), ::to_i64()); +} +#[test] +#[allow(non_snake_case)] +fn test_N5_Gcd_N2() { + type A = NInt, B0>, B1>>; + type B = NInt, B0>>; + type P1 = PInt>; + + #[allow(non_camel_case_types)] + type N5GcdN2 = <>::Output as Same>::Output; + + assert_eq!(::to_i64(), ::to_i64()); +} +#[test] +#[allow(non_snake_case)] +fn test_N5_Div_N2() { + type A = NInt, B0>, B1>>; + type B = NInt, B0>>; + type P2 = PInt, B0>>; + + #[allow(non_camel_case_types)] + type N5DivN2 = <>::Output as Same>::Output; + + assert_eq!(::to_i64(), ::to_i64()); +} +#[test] +#[allow(non_snake_case)] +fn test_N5_Rem_N2() { + type A = NInt, B0>, B1>>; + type B = NInt, B0>>; + type N1 = NInt>; + + #[allow(non_camel_case_types)] + type N5RemN2 = <>::Output as Same>::Output; + + assert_eq!(::to_i64(), ::to_i64()); +} +#[test] +#[allow(non_snake_case)] +fn test_N5_Cmp_N2() { + type A = NInt, B0>, B1>>; + type B = NInt, B0>>; + + #[allow(non_camel_case_types)] + type N5CmpN2 = >::Output; + assert_eq!(::to_ordering(), Ordering::Less); +} +#[test] +#[allow(non_snake_case)] +fn test_N5_Add_N1() { + type A = NInt, B0>, B1>>; + type B = NInt>; + type N6 = NInt, B1>, B0>>; + + #[allow(non_camel_case_types)] + type N5AddN1 = <>::Output as Same>::Output; + + assert_eq!(::to_i64(), ::to_i64()); +} +#[test] +#[allow(non_snake_case)] +fn test_N5_Sub_N1() { + type A = NInt, B0>, B1>>; + type B = NInt>; + type N4 = NInt, B0>, B0>>; + + #[allow(non_camel_case_types)] + type N5SubN1 = <>::Output as Same>::Output; + + assert_eq!(::to_i64(), ::to_i64()); +} +#[test] +#[allow(non_snake_case)] +fn test_N5_Mul_N1() { + type A = NInt, B0>, B1>>; + type B = NInt>; + type P5 = PInt, B0>, B1>>; + + #[allow(non_camel_case_types)] + type N5MulN1 = <>::Output as Same>::Output; + + assert_eq!(::to_i64(), ::to_i64()); +} +#[test] +#[allow(non_snake_case)] +fn test_N5_Min_N1() { + type A = NInt, B0>, B1>>; + type B = NInt>; + type N5 = NInt, B0>, B1>>; + + #[allow(non_camel_case_types)] + type N5MinN1 = <>::Output as Same>::Output; + + assert_eq!(::to_i64(), ::to_i64()); +} +#[test] +#[allow(non_snake_case)] +fn test_N5_Max_N1() { + type A = NInt, B0>, B1>>; + type B = NInt>; + type N1 = NInt>; + + #[allow(non_camel_case_types)] + type N5MaxN1 = <>::Output as Same>::Output; + + assert_eq!(::to_i64(), ::to_i64()); +} +#[test] +#[allow(non_snake_case)] +fn test_N5_Gcd_N1() { + type A = NInt, B0>, B1>>; + type B = NInt>; + type P1 = PInt>; + + #[allow(non_camel_case_types)] + type N5GcdN1 = <>::Output as Same>::Output; + + assert_eq!(::to_i64(), ::to_i64()); +} +#[test] +#[allow(non_snake_case)] +fn test_N5_Div_N1() { + type A = NInt, B0>, B1>>; + type B = NInt>; + type P5 = PInt, B0>, B1>>; + + #[allow(non_camel_case_types)] + type N5DivN1 = <>::Output as Same>::Output; + + assert_eq!(::to_i64(), ::to_i64()); +} +#[test] +#[allow(non_snake_case)] +fn test_N5_Rem_N1() { + type A = NInt, B0>, B1>>; + type B = NInt>; + type _0 = Z0; + + #[allow(non_camel_case_types)] + type N5RemN1 = <>::Output as Same<_0>>::Output; + + assert_eq!(::to_i64(), <_0 as Integer>::to_i64()); +} +#[test] +#[allow(non_snake_case)] +fn test_N5_PartialDiv_N1() { + type A = NInt, B0>, B1>>; + type B = NInt>; + type P5 = PInt, B0>, B1>>; + + #[allow(non_camel_case_types)] + type N5PartialDivN1 = <>::Output as Same>::Output; + + assert_eq!(::to_i64(), ::to_i64()); +} +#[test] +#[allow(non_snake_case)] +fn test_N5_Cmp_N1() { + type A = NInt, B0>, B1>>; + type B = NInt>; + + #[allow(non_camel_case_types)] + type N5CmpN1 = >::Output; + assert_eq!(::to_ordering(), Ordering::Less); +} +#[test] +#[allow(non_snake_case)] +fn test_N5_Add__0() { + type A = NInt, B0>, B1>>; + type B = Z0; + type N5 = NInt, B0>, B1>>; + + #[allow(non_camel_case_types)] + type N5Add_0 = <>::Output as Same>::Output; + + assert_eq!(::to_i64(), ::to_i64()); +} +#[test] +#[allow(non_snake_case)] +fn test_N5_Sub__0() { + type A = NInt, B0>, B1>>; + type B = Z0; + type N5 = NInt, B0>, B1>>; + + #[allow(non_camel_case_types)] + type N5Sub_0 = <>::Output as Same>::Output; + + assert_eq!(::to_i64(), ::to_i64()); +} +#[test] +#[allow(non_snake_case)] +fn test_N5_Mul__0() { + type A = NInt, B0>, B1>>; + type B = Z0; + type _0 = Z0; + + #[allow(non_camel_case_types)] + type N5Mul_0 = <>::Output as Same<_0>>::Output; + + assert_eq!(::to_i64(), <_0 as Integer>::to_i64()); +} +#[test] +#[allow(non_snake_case)] +fn test_N5_Min__0() { + type A = NInt, B0>, B1>>; + type B = Z0; + type N5 = NInt, B0>, B1>>; + + #[allow(non_camel_case_types)] + type N5Min_0 = <>::Output as Same>::Output; + + assert_eq!(::to_i64(), ::to_i64()); +} +#[test] +#[allow(non_snake_case)] +fn test_N5_Max__0() { + type A = NInt, B0>, B1>>; + type B = Z0; + type _0 = Z0; + + #[allow(non_camel_case_types)] + type N5Max_0 = <>::Output as Same<_0>>::Output; + + assert_eq!(::to_i64(), <_0 as Integer>::to_i64()); +} +#[test] +#[allow(non_snake_case)] +fn test_N5_Gcd__0() { + type A = NInt, B0>, B1>>; + type B = Z0; + type P5 = PInt, B0>, B1>>; + + #[allow(non_camel_case_types)] + type N5Gcd_0 = <>::Output as Same>::Output; + + assert_eq!(::to_i64(), ::to_i64()); +} +#[test] +#[allow(non_snake_case)] +fn test_N5_Pow__0() { + type A = NInt, B0>, B1>>; + type B = Z0; + type P1 = PInt>; + + #[allow(non_camel_case_types)] + type N5Pow_0 = <>::Output as Same>::Output; + + assert_eq!(::to_i64(), ::to_i64()); +} +#[test] +#[allow(non_snake_case)] +fn test_N5_Cmp__0() { + type A = NInt, B0>, B1>>; + type B = Z0; + + #[allow(non_camel_case_types)] + type N5Cmp_0 = >::Output; + assert_eq!(::to_ordering(), Ordering::Less); +} +#[test] +#[allow(non_snake_case)] +fn test_N5_Add_P1() { + type A = NInt, B0>, B1>>; + type B = PInt>; + type N4 = NInt, B0>, B0>>; + + #[allow(non_camel_case_types)] + type N5AddP1 = <>::Output as Same>::Output; + + assert_eq!(::to_i64(), ::to_i64()); +} +#[test] +#[allow(non_snake_case)] +fn test_N5_Sub_P1() { + type A = NInt, B0>, B1>>; + type B = PInt>; + type N6 = NInt, B1>, B0>>; + + #[allow(non_camel_case_types)] + type N5SubP1 = <>::Output as Same>::Output; + + assert_eq!(::to_i64(), ::to_i64()); +} +#[test] +#[allow(non_snake_case)] +fn test_N5_Mul_P1() { + type A = NInt, B0>, B1>>; + type B = PInt>; + type N5 = NInt, B0>, B1>>; + + #[allow(non_camel_case_types)] + type N5MulP1 = <>::Output as Same>::Output; + + assert_eq!(::to_i64(), ::to_i64()); +} +#[test] +#[allow(non_snake_case)] +fn test_N5_Min_P1() { + type A = NInt, B0>, B1>>; + type B = PInt>; + type N5 = NInt, B0>, B1>>; + + #[allow(non_camel_case_types)] + type N5MinP1 = <>::Output as Same>::Output; + + assert_eq!(::to_i64(), ::to_i64()); +} +#[test] +#[allow(non_snake_case)] +fn test_N5_Max_P1() { + type A = NInt, B0>, B1>>; + type B = PInt>; + type P1 = PInt>; + + #[allow(non_camel_case_types)] + type N5MaxP1 = <>::Output as Same>::Output; + + assert_eq!(::to_i64(), ::to_i64()); +} +#[test] +#[allow(non_snake_case)] +fn test_N5_Gcd_P1() { + type A = NInt, B0>, B1>>; + type B = PInt>; + type P1 = PInt>; + + #[allow(non_camel_case_types)] + type N5GcdP1 = <>::Output as Same>::Output; + + assert_eq!(::to_i64(), ::to_i64()); +} +#[test] +#[allow(non_snake_case)] +fn test_N5_Div_P1() { + type A = NInt, B0>, B1>>; + type B = PInt>; + type N5 = NInt, B0>, B1>>; + + #[allow(non_camel_case_types)] + type N5DivP1 = <>::Output as Same>::Output; + + assert_eq!(::to_i64(), ::to_i64()); +} +#[test] +#[allow(non_snake_case)] +fn test_N5_Rem_P1() { + type A = NInt, B0>, B1>>; + type B = PInt>; + type _0 = Z0; + + #[allow(non_camel_case_types)] + type N5RemP1 = <>::Output as Same<_0>>::Output; + + assert_eq!(::to_i64(), <_0 as Integer>::to_i64()); +} +#[test] +#[allow(non_snake_case)] +fn test_N5_PartialDiv_P1() { + type A = NInt, B0>, B1>>; + type B = PInt>; + type N5 = NInt, B0>, B1>>; + + #[allow(non_camel_case_types)] + type N5PartialDivP1 = <>::Output as Same>::Output; + + assert_eq!(::to_i64(), ::to_i64()); +} +#[test] +#[allow(non_snake_case)] +fn test_N5_Pow_P1() { + type A = NInt, B0>, B1>>; + type B = PInt>; + type N5 = NInt, B0>, B1>>; + + #[allow(non_camel_case_types)] + type N5PowP1 = <>::Output as Same>::Output; + + assert_eq!(::to_i64(), ::to_i64()); +} +#[test] +#[allow(non_snake_case)] +fn test_N5_Cmp_P1() { + type A = NInt, B0>, B1>>; + type B = PInt>; + + #[allow(non_camel_case_types)] + type N5CmpP1 = >::Output; + assert_eq!(::to_ordering(), Ordering::Less); +} +#[test] +#[allow(non_snake_case)] +fn test_N5_Add_P2() { + type A = NInt, B0>, B1>>; + type B = PInt, B0>>; + type N3 = NInt, B1>>; + + #[allow(non_camel_case_types)] + type N5AddP2 = <>::Output as Same>::Output; + + assert_eq!(::to_i64(), ::to_i64()); +} +#[test] +#[allow(non_snake_case)] +fn test_N5_Sub_P2() { + type A = NInt, B0>, B1>>; + type B = PInt, B0>>; + type N7 = NInt, B1>, B1>>; + + #[allow(non_camel_case_types)] + type N5SubP2 = <>::Output as Same>::Output; + + assert_eq!(::to_i64(), ::to_i64()); +} +#[test] +#[allow(non_snake_case)] +fn test_N5_Mul_P2() { + type A = NInt, B0>, B1>>; + type B = PInt, B0>>; + type N10 = NInt, B0>, B1>, B0>>; + + #[allow(non_camel_case_types)] + type N5MulP2 = <>::Output as Same>::Output; + + assert_eq!(::to_i64(), ::to_i64()); +} +#[test] +#[allow(non_snake_case)] +fn test_N5_Min_P2() { + type A = NInt, B0>, B1>>; + type B = PInt, B0>>; + type N5 = NInt, B0>, B1>>; + + #[allow(non_camel_case_types)] + type N5MinP2 = <>::Output as Same>::Output; + + assert_eq!(::to_i64(), ::to_i64()); +} +#[test] +#[allow(non_snake_case)] +fn test_N5_Max_P2() { + type A = NInt, B0>, B1>>; + type B = PInt, B0>>; + type P2 = PInt, B0>>; + + #[allow(non_camel_case_types)] + type N5MaxP2 = <>::Output as Same>::Output; + + assert_eq!(::to_i64(), ::to_i64()); +} +#[test] +#[allow(non_snake_case)] +fn test_N5_Gcd_P2() { + type A = NInt, B0>, B1>>; + type B = PInt, B0>>; + type P1 = PInt>; + + #[allow(non_camel_case_types)] + type N5GcdP2 = <>::Output as Same>::Output; + + assert_eq!(::to_i64(), ::to_i64()); +} +#[test] +#[allow(non_snake_case)] +fn test_N5_Div_P2() { + type A = NInt, B0>, B1>>; + type B = PInt, B0>>; + type N2 = NInt, B0>>; + + #[allow(non_camel_case_types)] + type N5DivP2 = <>::Output as Same>::Output; + + assert_eq!(::to_i64(), ::to_i64()); +} +#[test] +#[allow(non_snake_case)] +fn test_N5_Rem_P2() { + type A = NInt, B0>, B1>>; + type B = PInt, B0>>; + type N1 = NInt>; + + #[allow(non_camel_case_types)] + type N5RemP2 = <>::Output as Same>::Output; + + assert_eq!(::to_i64(), ::to_i64()); +} +#[test] +#[allow(non_snake_case)] +fn test_N5_Pow_P2() { + type A = NInt, B0>, B1>>; + type B = PInt, B0>>; + type P25 = PInt, B1>, B0>, B0>, B1>>; + + #[allow(non_camel_case_types)] + type N5PowP2 = <>::Output as Same>::Output; + + assert_eq!(::to_i64(), ::to_i64()); +} +#[test] +#[allow(non_snake_case)] +fn test_N5_Cmp_P2() { + type A = NInt, B0>, B1>>; + type B = PInt, B0>>; + + #[allow(non_camel_case_types)] + type N5CmpP2 = >::Output; + assert_eq!(::to_ordering(), Ordering::Less); +} +#[test] +#[allow(non_snake_case)] +fn test_N5_Add_P3() { + type A = NInt, B0>, B1>>; + type B = PInt, B1>>; + type N2 = NInt, B0>>; + + #[allow(non_camel_case_types)] + type N5AddP3 = <>::Output as Same>::Output; + + assert_eq!(::to_i64(), ::to_i64()); +} +#[test] +#[allow(non_snake_case)] +fn test_N5_Sub_P3() { + type A = NInt, B0>, B1>>; + type B = PInt, B1>>; + type N8 = NInt, B0>, B0>, B0>>; + + #[allow(non_camel_case_types)] + type N5SubP3 = <>::Output as Same>::Output; + + assert_eq!(::to_i64(), ::to_i64()); +} +#[test] +#[allow(non_snake_case)] +fn test_N5_Mul_P3() { + type A = NInt, B0>, B1>>; + type B = PInt, B1>>; + type N15 = NInt, B1>, B1>, B1>>; + + #[allow(non_camel_case_types)] + type N5MulP3 = <>::Output as Same>::Output; + + assert_eq!(::to_i64(), ::to_i64()); +} +#[test] +#[allow(non_snake_case)] +fn test_N5_Min_P3() { + type A = NInt, B0>, B1>>; + type B = PInt, B1>>; + type N5 = NInt, B0>, B1>>; + + #[allow(non_camel_case_types)] + type N5MinP3 = <>::Output as Same>::Output; + + assert_eq!(::to_i64(), ::to_i64()); +} +#[test] +#[allow(non_snake_case)] +fn test_N5_Max_P3() { + type A = NInt, B0>, B1>>; + type B = PInt, B1>>; + type P3 = PInt, B1>>; + + #[allow(non_camel_case_types)] + type N5MaxP3 = <>::Output as Same>::Output; + + assert_eq!(::to_i64(), ::to_i64()); +} +#[test] +#[allow(non_snake_case)] +fn test_N5_Gcd_P3() { + type A = NInt, B0>, B1>>; + type B = PInt, B1>>; + type P1 = PInt>; + + #[allow(non_camel_case_types)] + type N5GcdP3 = <>::Output as Same>::Output; + + assert_eq!(::to_i64(), ::to_i64()); +} +#[test] +#[allow(non_snake_case)] +fn test_N5_Div_P3() { + type A = NInt, B0>, B1>>; + type B = PInt, B1>>; + type N1 = NInt>; + + #[allow(non_camel_case_types)] + type N5DivP3 = <>::Output as Same>::Output; + + assert_eq!(::to_i64(), ::to_i64()); +} +#[test] +#[allow(non_snake_case)] +fn test_N5_Rem_P3() { + type A = NInt, B0>, B1>>; + type B = PInt, B1>>; + type N2 = NInt, B0>>; + + #[allow(non_camel_case_types)] + type N5RemP3 = <>::Output as Same>::Output; + + assert_eq!(::to_i64(), ::to_i64()); +} +#[test] +#[allow(non_snake_case)] +fn test_N5_Pow_P3() { + type A = NInt, B0>, B1>>; + type B = PInt, B1>>; + type N125 = NInt, B1>, B1>, B1>, B1>, B0>, B1>>; + + #[allow(non_camel_case_types)] + type N5PowP3 = <>::Output as Same>::Output; + + assert_eq!(::to_i64(), ::to_i64()); +} +#[test] +#[allow(non_snake_case)] +fn test_N5_Cmp_P3() { + type A = NInt, B0>, B1>>; + type B = PInt, B1>>; + + #[allow(non_camel_case_types)] + type N5CmpP3 = >::Output; + assert_eq!(::to_ordering(), Ordering::Less); +} +#[test] +#[allow(non_snake_case)] +fn test_N5_Add_P4() { + type A = NInt, B0>, B1>>; + type B = PInt, B0>, B0>>; + type N1 = NInt>; + + #[allow(non_camel_case_types)] + type N5AddP4 = <>::Output as Same>::Output; + + assert_eq!(::to_i64(), ::to_i64()); +} +#[test] +#[allow(non_snake_case)] +fn test_N5_Sub_P4() { + type A = NInt, B0>, B1>>; + type B = PInt, B0>, B0>>; + type N9 = NInt, B0>, B0>, B1>>; + + #[allow(non_camel_case_types)] + type N5SubP4 = <>::Output as Same>::Output; + + assert_eq!(::to_i64(), ::to_i64()); +} +#[test] +#[allow(non_snake_case)] +fn test_N5_Mul_P4() { + type A = NInt, B0>, B1>>; + type B = PInt, B0>, B0>>; + type N20 = NInt, B0>, B1>, B0>, B0>>; + + #[allow(non_camel_case_types)] + type N5MulP4 = <>::Output as Same>::Output; + + assert_eq!(::to_i64(), ::to_i64()); +} +#[test] +#[allow(non_snake_case)] +fn test_N5_Min_P4() { + type A = NInt, B0>, B1>>; + type B = PInt, B0>, B0>>; + type N5 = NInt, B0>, B1>>; + + #[allow(non_camel_case_types)] + type N5MinP4 = <>::Output as Same>::Output; + + assert_eq!(::to_i64(), ::to_i64()); +} +#[test] +#[allow(non_snake_case)] +fn test_N5_Max_P4() { + type A = NInt, B0>, B1>>; + type B = PInt, B0>, B0>>; + type P4 = PInt, B0>, B0>>; + + #[allow(non_camel_case_types)] + type N5MaxP4 = <>::Output as Same>::Output; + + assert_eq!(::to_i64(), ::to_i64()); +} +#[test] +#[allow(non_snake_case)] +fn test_N5_Gcd_P4() { + type A = NInt, B0>, B1>>; + type B = PInt, B0>, B0>>; + type P1 = PInt>; + + #[allow(non_camel_case_types)] + type N5GcdP4 = <>::Output as Same>::Output; + + assert_eq!(::to_i64(), ::to_i64()); +} +#[test] +#[allow(non_snake_case)] +fn test_N5_Div_P4() { + type A = NInt, B0>, B1>>; + type B = PInt, B0>, B0>>; + type N1 = NInt>; + + #[allow(non_camel_case_types)] + type N5DivP4 = <>::Output as Same>::Output; + + assert_eq!(::to_i64(), ::to_i64()); +} +#[test] +#[allow(non_snake_case)] +fn test_N5_Rem_P4() { + type A = NInt, B0>, B1>>; + type B = PInt, B0>, B0>>; + type N1 = NInt>; + + #[allow(non_camel_case_types)] + type N5RemP4 = <>::Output as Same>::Output; + + assert_eq!(::to_i64(), ::to_i64()); +} +#[test] +#[allow(non_snake_case)] +fn test_N5_Pow_P4() { + type A = NInt, B0>, B1>>; + type B = PInt, B0>, B0>>; + type P625 = PInt, B0>, B0>, B1>, B1>, B1>, B0>, B0>, B0>, B1>>; + + #[allow(non_camel_case_types)] + type N5PowP4 = <>::Output as Same>::Output; + + assert_eq!(::to_i64(), ::to_i64()); +} +#[test] +#[allow(non_snake_case)] +fn test_N5_Cmp_P4() { + type A = NInt, B0>, B1>>; + type B = PInt, B0>, B0>>; + + #[allow(non_camel_case_types)] + type N5CmpP4 = >::Output; + assert_eq!(::to_ordering(), Ordering::Less); +} +#[test] +#[allow(non_snake_case)] +fn test_N5_Add_P5() { + type A = NInt, B0>, B1>>; + type B = PInt, B0>, B1>>; + type _0 = Z0; + + #[allow(non_camel_case_types)] + type N5AddP5 = <>::Output as Same<_0>>::Output; + + assert_eq!(::to_i64(), <_0 as Integer>::to_i64()); +} +#[test] +#[allow(non_snake_case)] +fn test_N5_Sub_P5() { + type A = NInt, B0>, B1>>; + type B = PInt, B0>, B1>>; + type N10 = NInt, B0>, B1>, B0>>; + + #[allow(non_camel_case_types)] + type N5SubP5 = <>::Output as Same>::Output; + + assert_eq!(::to_i64(), ::to_i64()); +} +#[test] +#[allow(non_snake_case)] +fn test_N5_Mul_P5() { + type A = NInt, B0>, B1>>; + type B = PInt, B0>, B1>>; + type N25 = NInt, B1>, B0>, B0>, B1>>; + + #[allow(non_camel_case_types)] + type N5MulP5 = <>::Output as Same>::Output; + + assert_eq!(::to_i64(), ::to_i64()); +} +#[test] +#[allow(non_snake_case)] +fn test_N5_Min_P5() { + type A = NInt, B0>, B1>>; + type B = PInt, B0>, B1>>; + type N5 = NInt, B0>, B1>>; + + #[allow(non_camel_case_types)] + type N5MinP5 = <>::Output as Same>::Output; + + assert_eq!(::to_i64(), ::to_i64()); +} +#[test] +#[allow(non_snake_case)] +fn test_N5_Max_P5() { + type A = NInt, B0>, B1>>; + type B = PInt, B0>, B1>>; + type P5 = PInt, B0>, B1>>; + + #[allow(non_camel_case_types)] + type N5MaxP5 = <>::Output as Same>::Output; + + assert_eq!(::to_i64(), ::to_i64()); +} +#[test] +#[allow(non_snake_case)] +fn test_N5_Gcd_P5() { + type A = NInt, B0>, B1>>; + type B = PInt, B0>, B1>>; + type P5 = PInt, B0>, B1>>; + + #[allow(non_camel_case_types)] + type N5GcdP5 = <>::Output as Same>::Output; + + assert_eq!(::to_i64(), ::to_i64()); +} +#[test] +#[allow(non_snake_case)] +fn test_N5_Div_P5() { + type A = NInt, B0>, B1>>; + type B = PInt, B0>, B1>>; + type N1 = NInt>; + + #[allow(non_camel_case_types)] + type N5DivP5 = <>::Output as Same>::Output; + + assert_eq!(::to_i64(), ::to_i64()); +} +#[test] +#[allow(non_snake_case)] +fn test_N5_Rem_P5() { + type A = NInt, B0>, B1>>; + type B = PInt, B0>, B1>>; + type _0 = Z0; + + #[allow(non_camel_case_types)] + type N5RemP5 = <>::Output as Same<_0>>::Output; + + assert_eq!(::to_i64(), <_0 as Integer>::to_i64()); +} +#[test] +#[allow(non_snake_case)] +fn test_N5_PartialDiv_P5() { + type A = NInt, B0>, B1>>; + type B = PInt, B0>, B1>>; + type N1 = NInt>; + + #[allow(non_camel_case_types)] + type N5PartialDivP5 = <>::Output as Same>::Output; + + assert_eq!(::to_i64(), ::to_i64()); +} +#[test] +#[allow(non_snake_case)] +fn test_N5_Pow_P5() { + type A = NInt, B0>, B1>>; + type B = PInt, B0>, B1>>; + type N3125 = NInt, B1>, B0>, B0>, B0>, B0>, B1>, B1>, B0>, B1>, B0>, B1>>; + + #[allow(non_camel_case_types)] + type N5PowP5 = <>::Output as Same>::Output; + + assert_eq!(::to_i64(), ::to_i64()); +} +#[test] +#[allow(non_snake_case)] +fn test_N5_Cmp_P5() { + type A = NInt, B0>, B1>>; + type B = PInt, B0>, B1>>; + + #[allow(non_camel_case_types)] + type N5CmpP5 = >::Output; + assert_eq!(::to_ordering(), Ordering::Less); +} +#[test] +#[allow(non_snake_case)] +fn test_N4_Add_N5() { + type A = NInt, B0>, B0>>; + type B = NInt, B0>, B1>>; + type N9 = NInt, B0>, B0>, B1>>; + + #[allow(non_camel_case_types)] + type N4AddN5 = <>::Output as Same>::Output; + + assert_eq!(::to_i64(), ::to_i64()); +} +#[test] +#[allow(non_snake_case)] +fn test_N4_Sub_N5() { + type A = NInt, B0>, B0>>; + type B = NInt, B0>, B1>>; + type P1 = PInt>; + + #[allow(non_camel_case_types)] + type N4SubN5 = <>::Output as Same>::Output; + + assert_eq!(::to_i64(), ::to_i64()); +} +#[test] +#[allow(non_snake_case)] +fn test_N4_Mul_N5() { + type A = NInt, B0>, B0>>; + type B = NInt, B0>, B1>>; + type P20 = PInt, B0>, B1>, B0>, B0>>; + + #[allow(non_camel_case_types)] + type N4MulN5 = <>::Output as Same>::Output; + + assert_eq!(::to_i64(), ::to_i64()); +} +#[test] +#[allow(non_snake_case)] +fn test_N4_Min_N5() { + type A = NInt, B0>, B0>>; + type B = NInt, B0>, B1>>; + type N5 = NInt, B0>, B1>>; + + #[allow(non_camel_case_types)] + type N4MinN5 = <>::Output as Same>::Output; + + assert_eq!(::to_i64(), ::to_i64()); +} +#[test] +#[allow(non_snake_case)] +fn test_N4_Max_N5() { + type A = NInt, B0>, B0>>; + type B = NInt, B0>, B1>>; + type N4 = NInt, B0>, B0>>; + + #[allow(non_camel_case_types)] + type N4MaxN5 = <>::Output as Same>::Output; + + assert_eq!(::to_i64(), ::to_i64()); +} +#[test] +#[allow(non_snake_case)] +fn test_N4_Gcd_N5() { + type A = NInt, B0>, B0>>; + type B = NInt, B0>, B1>>; + type P1 = PInt>; + + #[allow(non_camel_case_types)] + type N4GcdN5 = <>::Output as Same>::Output; + + assert_eq!(::to_i64(), ::to_i64()); +} +#[test] +#[allow(non_snake_case)] +fn test_N4_Div_N5() { + type A = NInt, B0>, B0>>; + type B = NInt, B0>, B1>>; + type _0 = Z0; + + #[allow(non_camel_case_types)] + type N4DivN5 = <>::Output as Same<_0>>::Output; + + assert_eq!(::to_i64(), <_0 as Integer>::to_i64()); +} +#[test] +#[allow(non_snake_case)] +fn test_N4_Rem_N5() { + type A = NInt, B0>, B0>>; + type B = NInt, B0>, B1>>; + type N4 = NInt, B0>, B0>>; + + #[allow(non_camel_case_types)] + type N4RemN5 = <>::Output as Same>::Output; + + assert_eq!(::to_i64(), ::to_i64()); +} +#[test] +#[allow(non_snake_case)] +fn test_N4_Cmp_N5() { + type A = NInt, B0>, B0>>; + type B = NInt, B0>, B1>>; + + #[allow(non_camel_case_types)] + type N4CmpN5 = >::Output; + assert_eq!(::to_ordering(), Ordering::Greater); +} +#[test] +#[allow(non_snake_case)] +fn test_N4_Add_N4() { + type A = NInt, B0>, B0>>; + type B = NInt, B0>, B0>>; + type N8 = NInt, B0>, B0>, B0>>; + + #[allow(non_camel_case_types)] + type N4AddN4 = <>::Output as Same>::Output; + + assert_eq!(::to_i64(), ::to_i64()); +} +#[test] +#[allow(non_snake_case)] +fn test_N4_Sub_N4() { + type A = NInt, B0>, B0>>; + type B = NInt, B0>, B0>>; + type _0 = Z0; + + #[allow(non_camel_case_types)] + type N4SubN4 = <>::Output as Same<_0>>::Output; + + assert_eq!(::to_i64(), <_0 as Integer>::to_i64()); +} +#[test] +#[allow(non_snake_case)] +fn test_N4_Mul_N4() { + type A = NInt, B0>, B0>>; + type B = NInt, B0>, B0>>; + type P16 = PInt, B0>, B0>, B0>, B0>>; + + #[allow(non_camel_case_types)] + type N4MulN4 = <>::Output as Same>::Output; + + assert_eq!(::to_i64(), ::to_i64()); +} +#[test] +#[allow(non_snake_case)] +fn test_N4_Min_N4() { + type A = NInt, B0>, B0>>; + type B = NInt, B0>, B0>>; + type N4 = NInt, B0>, B0>>; + + #[allow(non_camel_case_types)] + type N4MinN4 = <>::Output as Same>::Output; + + assert_eq!(::to_i64(), ::to_i64()); +} +#[test] +#[allow(non_snake_case)] +fn test_N4_Max_N4() { + type A = NInt, B0>, B0>>; + type B = NInt, B0>, B0>>; + type N4 = NInt, B0>, B0>>; + + #[allow(non_camel_case_types)] + type N4MaxN4 = <>::Output as Same>::Output; + + assert_eq!(::to_i64(), ::to_i64()); +} +#[test] +#[allow(non_snake_case)] +fn test_N4_Gcd_N4() { + type A = NInt, B0>, B0>>; + type B = NInt, B0>, B0>>; + type P4 = PInt, B0>, B0>>; + + #[allow(non_camel_case_types)] + type N4GcdN4 = <>::Output as Same>::Output; + + assert_eq!(::to_i64(), ::to_i64()); +} +#[test] +#[allow(non_snake_case)] +fn test_N4_Div_N4() { + type A = NInt, B0>, B0>>; + type B = NInt, B0>, B0>>; + type P1 = PInt>; + + #[allow(non_camel_case_types)] + type N4DivN4 = <>::Output as Same>::Output; + + assert_eq!(::to_i64(), ::to_i64()); +} +#[test] +#[allow(non_snake_case)] +fn test_N4_Rem_N4() { + type A = NInt, B0>, B0>>; + type B = NInt, B0>, B0>>; + type _0 = Z0; + + #[allow(non_camel_case_types)] + type N4RemN4 = <>::Output as Same<_0>>::Output; + + assert_eq!(::to_i64(), <_0 as Integer>::to_i64()); +} +#[test] +#[allow(non_snake_case)] +fn test_N4_PartialDiv_N4() { + type A = NInt, B0>, B0>>; + type B = NInt, B0>, B0>>; + type P1 = PInt>; + + #[allow(non_camel_case_types)] + type N4PartialDivN4 = <>::Output as Same>::Output; + + assert_eq!(::to_i64(), ::to_i64()); +} +#[test] +#[allow(non_snake_case)] +fn test_N4_Cmp_N4() { + type A = NInt, B0>, B0>>; + type B = NInt, B0>, B0>>; + + #[allow(non_camel_case_types)] + type N4CmpN4 = >::Output; + assert_eq!(::to_ordering(), Ordering::Equal); +} +#[test] +#[allow(non_snake_case)] +fn test_N4_Add_N3() { + type A = NInt, B0>, B0>>; + type B = NInt, B1>>; + type N7 = NInt, B1>, B1>>; + + #[allow(non_camel_case_types)] + type N4AddN3 = <>::Output as Same>::Output; + + assert_eq!(::to_i64(), ::to_i64()); +} +#[test] +#[allow(non_snake_case)] +fn test_N4_Sub_N3() { + type A = NInt, B0>, B0>>; + type B = NInt, B1>>; + type N1 = NInt>; + + #[allow(non_camel_case_types)] + type N4SubN3 = <>::Output as Same>::Output; + + assert_eq!(::to_i64(), ::to_i64()); +} +#[test] +#[allow(non_snake_case)] +fn test_N4_Mul_N3() { + type A = NInt, B0>, B0>>; + type B = NInt, B1>>; + type P12 = PInt, B1>, B0>, B0>>; + + #[allow(non_camel_case_types)] + type N4MulN3 = <>::Output as Same>::Output; + + assert_eq!(::to_i64(), ::to_i64()); +} +#[test] +#[allow(non_snake_case)] +fn test_N4_Min_N3() { + type A = NInt, B0>, B0>>; + type B = NInt, B1>>; + type N4 = NInt, B0>, B0>>; + + #[allow(non_camel_case_types)] + type N4MinN3 = <>::Output as Same>::Output; + + assert_eq!(::to_i64(), ::to_i64()); +} +#[test] +#[allow(non_snake_case)] +fn test_N4_Max_N3() { + type A = NInt, B0>, B0>>; + type B = NInt, B1>>; + type N3 = NInt, B1>>; + + #[allow(non_camel_case_types)] + type N4MaxN3 = <>::Output as Same>::Output; + + assert_eq!(::to_i64(), ::to_i64()); +} +#[test] +#[allow(non_snake_case)] +fn test_N4_Gcd_N3() { + type A = NInt, B0>, B0>>; + type B = NInt, B1>>; + type P1 = PInt>; + + #[allow(non_camel_case_types)] + type N4GcdN3 = <>::Output as Same>::Output; + + assert_eq!(::to_i64(), ::to_i64()); +} +#[test] +#[allow(non_snake_case)] +fn test_N4_Div_N3() { + type A = NInt, B0>, B0>>; + type B = NInt, B1>>; + type P1 = PInt>; + + #[allow(non_camel_case_types)] + type N4DivN3 = <>::Output as Same>::Output; + + assert_eq!(::to_i64(), ::to_i64()); +} +#[test] +#[allow(non_snake_case)] +fn test_N4_Rem_N3() { + type A = NInt, B0>, B0>>; + type B = NInt, B1>>; + type N1 = NInt>; + + #[allow(non_camel_case_types)] + type N4RemN3 = <>::Output as Same>::Output; + + assert_eq!(::to_i64(), ::to_i64()); +} +#[test] +#[allow(non_snake_case)] +fn test_N4_Cmp_N3() { + type A = NInt, B0>, B0>>; + type B = NInt, B1>>; + + #[allow(non_camel_case_types)] + type N4CmpN3 = >::Output; + assert_eq!(::to_ordering(), Ordering::Less); +} +#[test] +#[allow(non_snake_case)] +fn test_N4_Add_N2() { + type A = NInt, B0>, B0>>; + type B = NInt, B0>>; + type N6 = NInt, B1>, B0>>; + + #[allow(non_camel_case_types)] + type N4AddN2 = <>::Output as Same>::Output; + + assert_eq!(::to_i64(), ::to_i64()); +} +#[test] +#[allow(non_snake_case)] +fn test_N4_Sub_N2() { + type A = NInt, B0>, B0>>; + type B = NInt, B0>>; + type N2 = NInt, B0>>; + + #[allow(non_camel_case_types)] + type N4SubN2 = <>::Output as Same>::Output; + + assert_eq!(::to_i64(), ::to_i64()); +} +#[test] +#[allow(non_snake_case)] +fn test_N4_Mul_N2() { + type A = NInt, B0>, B0>>; + type B = NInt, B0>>; + type P8 = PInt, B0>, B0>, B0>>; + + #[allow(non_camel_case_types)] + type N4MulN2 = <>::Output as Same>::Output; + + assert_eq!(::to_i64(), ::to_i64()); +} +#[test] +#[allow(non_snake_case)] +fn test_N4_Min_N2() { + type A = NInt, B0>, B0>>; + type B = NInt, B0>>; + type N4 = NInt, B0>, B0>>; + + #[allow(non_camel_case_types)] + type N4MinN2 = <>::Output as Same>::Output; + + assert_eq!(::to_i64(), ::to_i64()); +} +#[test] +#[allow(non_snake_case)] +fn test_N4_Max_N2() { + type A = NInt, B0>, B0>>; + type B = NInt, B0>>; + type N2 = NInt, B0>>; + + #[allow(non_camel_case_types)] + type N4MaxN2 = <>::Output as Same>::Output; + + assert_eq!(::to_i64(), ::to_i64()); +} +#[test] +#[allow(non_snake_case)] +fn test_N4_Gcd_N2() { + type A = NInt, B0>, B0>>; + type B = NInt, B0>>; + type P2 = PInt, B0>>; + + #[allow(non_camel_case_types)] + type N4GcdN2 = <>::Output as Same>::Output; + + assert_eq!(::to_i64(), ::to_i64()); +} +#[test] +#[allow(non_snake_case)] +fn test_N4_Div_N2() { + type A = NInt, B0>, B0>>; + type B = NInt, B0>>; + type P2 = PInt, B0>>; + + #[allow(non_camel_case_types)] + type N4DivN2 = <>::Output as Same>::Output; + + assert_eq!(::to_i64(), ::to_i64()); +} +#[test] +#[allow(non_snake_case)] +fn test_N4_Rem_N2() { + type A = NInt, B0>, B0>>; + type B = NInt, B0>>; + type _0 = Z0; + + #[allow(non_camel_case_types)] + type N4RemN2 = <>::Output as Same<_0>>::Output; + + assert_eq!(::to_i64(), <_0 as Integer>::to_i64()); +} +#[test] +#[allow(non_snake_case)] +fn test_N4_PartialDiv_N2() { + type A = NInt, B0>, B0>>; + type B = NInt, B0>>; + type P2 = PInt, B0>>; + + #[allow(non_camel_case_types)] + type N4PartialDivN2 = <>::Output as Same>::Output; + + assert_eq!(::to_i64(), ::to_i64()); +} +#[test] +#[allow(non_snake_case)] +fn test_N4_Cmp_N2() { + type A = NInt, B0>, B0>>; + type B = NInt, B0>>; + + #[allow(non_camel_case_types)] + type N4CmpN2 = >::Output; + assert_eq!(::to_ordering(), Ordering::Less); +} +#[test] +#[allow(non_snake_case)] +fn test_N4_Add_N1() { + type A = NInt, B0>, B0>>; + type B = NInt>; + type N5 = NInt, B0>, B1>>; + + #[allow(non_camel_case_types)] + type N4AddN1 = <>::Output as Same>::Output; + + assert_eq!(::to_i64(), ::to_i64()); +} +#[test] +#[allow(non_snake_case)] +fn test_N4_Sub_N1() { + type A = NInt, B0>, B0>>; + type B = NInt>; + type N3 = NInt, B1>>; + + #[allow(non_camel_case_types)] + type N4SubN1 = <>::Output as Same>::Output; + + assert_eq!(::to_i64(), ::to_i64()); +} +#[test] +#[allow(non_snake_case)] +fn test_N4_Mul_N1() { + type A = NInt, B0>, B0>>; + type B = NInt>; + type P4 = PInt, B0>, B0>>; + + #[allow(non_camel_case_types)] + type N4MulN1 = <>::Output as Same>::Output; + + assert_eq!(::to_i64(), ::to_i64()); +} +#[test] +#[allow(non_snake_case)] +fn test_N4_Min_N1() { + type A = NInt, B0>, B0>>; + type B = NInt>; + type N4 = NInt, B0>, B0>>; + + #[allow(non_camel_case_types)] + type N4MinN1 = <>::Output as Same>::Output; + + assert_eq!(::to_i64(), ::to_i64()); +} +#[test] +#[allow(non_snake_case)] +fn test_N4_Max_N1() { + type A = NInt, B0>, B0>>; + type B = NInt>; + type N1 = NInt>; + + #[allow(non_camel_case_types)] + type N4MaxN1 = <>::Output as Same>::Output; + + assert_eq!(::to_i64(), ::to_i64()); +} +#[test] +#[allow(non_snake_case)] +fn test_N4_Gcd_N1() { + type A = NInt, B0>, B0>>; + type B = NInt>; + type P1 = PInt>; + + #[allow(non_camel_case_types)] + type N4GcdN1 = <>::Output as Same>::Output; + + assert_eq!(::to_i64(), ::to_i64()); +} +#[test] +#[allow(non_snake_case)] +fn test_N4_Div_N1() { + type A = NInt, B0>, B0>>; + type B = NInt>; + type P4 = PInt, B0>, B0>>; + + #[allow(non_camel_case_types)] + type N4DivN1 = <>::Output as Same>::Output; + + assert_eq!(::to_i64(), ::to_i64()); +} +#[test] +#[allow(non_snake_case)] +fn test_N4_Rem_N1() { + type A = NInt, B0>, B0>>; + type B = NInt>; + type _0 = Z0; + + #[allow(non_camel_case_types)] + type N4RemN1 = <>::Output as Same<_0>>::Output; + + assert_eq!(::to_i64(), <_0 as Integer>::to_i64()); +} +#[test] +#[allow(non_snake_case)] +fn test_N4_PartialDiv_N1() { + type A = NInt, B0>, B0>>; + type B = NInt>; + type P4 = PInt, B0>, B0>>; + + #[allow(non_camel_case_types)] + type N4PartialDivN1 = <>::Output as Same>::Output; + + assert_eq!(::to_i64(), ::to_i64()); +} +#[test] +#[allow(non_snake_case)] +fn test_N4_Cmp_N1() { + type A = NInt, B0>, B0>>; + type B = NInt>; + + #[allow(non_camel_case_types)] + type N4CmpN1 = >::Output; + assert_eq!(::to_ordering(), Ordering::Less); +} +#[test] +#[allow(non_snake_case)] +fn test_N4_Add__0() { + type A = NInt, B0>, B0>>; + type B = Z0; + type N4 = NInt, B0>, B0>>; + + #[allow(non_camel_case_types)] + type N4Add_0 = <>::Output as Same>::Output; + + assert_eq!(::to_i64(), ::to_i64()); +} +#[test] +#[allow(non_snake_case)] +fn test_N4_Sub__0() { + type A = NInt, B0>, B0>>; + type B = Z0; + type N4 = NInt, B0>, B0>>; + + #[allow(non_camel_case_types)] + type N4Sub_0 = <>::Output as Same>::Output; + + assert_eq!(::to_i64(), ::to_i64()); +} +#[test] +#[allow(non_snake_case)] +fn test_N4_Mul__0() { + type A = NInt, B0>, B0>>; + type B = Z0; + type _0 = Z0; + + #[allow(non_camel_case_types)] + type N4Mul_0 = <>::Output as Same<_0>>::Output; + + assert_eq!(::to_i64(), <_0 as Integer>::to_i64()); +} +#[test] +#[allow(non_snake_case)] +fn test_N4_Min__0() { + type A = NInt, B0>, B0>>; + type B = Z0; + type N4 = NInt, B0>, B0>>; + + #[allow(non_camel_case_types)] + type N4Min_0 = <>::Output as Same>::Output; + + assert_eq!(::to_i64(), ::to_i64()); +} +#[test] +#[allow(non_snake_case)] +fn test_N4_Max__0() { + type A = NInt, B0>, B0>>; + type B = Z0; + type _0 = Z0; + + #[allow(non_camel_case_types)] + type N4Max_0 = <>::Output as Same<_0>>::Output; + + assert_eq!(::to_i64(), <_0 as Integer>::to_i64()); +} +#[test] +#[allow(non_snake_case)] +fn test_N4_Gcd__0() { + type A = NInt, B0>, B0>>; + type B = Z0; + type P4 = PInt, B0>, B0>>; + + #[allow(non_camel_case_types)] + type N4Gcd_0 = <>::Output as Same>::Output; + + assert_eq!(::to_i64(), ::to_i64()); +} +#[test] +#[allow(non_snake_case)] +fn test_N4_Pow__0() { + type A = NInt, B0>, B0>>; + type B = Z0; + type P1 = PInt>; + + #[allow(non_camel_case_types)] + type N4Pow_0 = <>::Output as Same>::Output; + + assert_eq!(::to_i64(), ::to_i64()); +} +#[test] +#[allow(non_snake_case)] +fn test_N4_Cmp__0() { + type A = NInt, B0>, B0>>; + type B = Z0; + + #[allow(non_camel_case_types)] + type N4Cmp_0 = >::Output; + assert_eq!(::to_ordering(), Ordering::Less); +} +#[test] +#[allow(non_snake_case)] +fn test_N4_Add_P1() { + type A = NInt, B0>, B0>>; + type B = PInt>; + type N3 = NInt, B1>>; + + #[allow(non_camel_case_types)] + type N4AddP1 = <>::Output as Same>::Output; + + assert_eq!(::to_i64(), ::to_i64()); +} +#[test] +#[allow(non_snake_case)] +fn test_N4_Sub_P1() { + type A = NInt, B0>, B0>>; + type B = PInt>; + type N5 = NInt, B0>, B1>>; + + #[allow(non_camel_case_types)] + type N4SubP1 = <>::Output as Same>::Output; + + assert_eq!(::to_i64(), ::to_i64()); +} +#[test] +#[allow(non_snake_case)] +fn test_N4_Mul_P1() { + type A = NInt, B0>, B0>>; + type B = PInt>; + type N4 = NInt, B0>, B0>>; + + #[allow(non_camel_case_types)] + type N4MulP1 = <>::Output as Same>::Output; + + assert_eq!(::to_i64(), ::to_i64()); +} +#[test] +#[allow(non_snake_case)] +fn test_N4_Min_P1() { + type A = NInt, B0>, B0>>; + type B = PInt>; + type N4 = NInt, B0>, B0>>; + + #[allow(non_camel_case_types)] + type N4MinP1 = <>::Output as Same>::Output; + + assert_eq!(::to_i64(), ::to_i64()); +} +#[test] +#[allow(non_snake_case)] +fn test_N4_Max_P1() { + type A = NInt, B0>, B0>>; + type B = PInt>; + type P1 = PInt>; + + #[allow(non_camel_case_types)] + type N4MaxP1 = <>::Output as Same>::Output; + + assert_eq!(::to_i64(), ::to_i64()); +} +#[test] +#[allow(non_snake_case)] +fn test_N4_Gcd_P1() { + type A = NInt, B0>, B0>>; + type B = PInt>; + type P1 = PInt>; + + #[allow(non_camel_case_types)] + type N4GcdP1 = <>::Output as Same>::Output; + + assert_eq!(::to_i64(), ::to_i64()); +} +#[test] +#[allow(non_snake_case)] +fn test_N4_Div_P1() { + type A = NInt, B0>, B0>>; + type B = PInt>; + type N4 = NInt, B0>, B0>>; + + #[allow(non_camel_case_types)] + type N4DivP1 = <>::Output as Same>::Output; + + assert_eq!(::to_i64(), ::to_i64()); +} +#[test] +#[allow(non_snake_case)] +fn test_N4_Rem_P1() { + type A = NInt, B0>, B0>>; + type B = PInt>; + type _0 = Z0; + + #[allow(non_camel_case_types)] + type N4RemP1 = <>::Output as Same<_0>>::Output; + + assert_eq!(::to_i64(), <_0 as Integer>::to_i64()); +} +#[test] +#[allow(non_snake_case)] +fn test_N4_PartialDiv_P1() { + type A = NInt, B0>, B0>>; + type B = PInt>; + type N4 = NInt, B0>, B0>>; + + #[allow(non_camel_case_types)] + type N4PartialDivP1 = <>::Output as Same>::Output; + + assert_eq!(::to_i64(), ::to_i64()); +} +#[test] +#[allow(non_snake_case)] +fn test_N4_Pow_P1() { + type A = NInt, B0>, B0>>; + type B = PInt>; + type N4 = NInt, B0>, B0>>; + + #[allow(non_camel_case_types)] + type N4PowP1 = <>::Output as Same>::Output; + + assert_eq!(::to_i64(), ::to_i64()); +} +#[test] +#[allow(non_snake_case)] +fn test_N4_Cmp_P1() { + type A = NInt, B0>, B0>>; + type B = PInt>; + + #[allow(non_camel_case_types)] + type N4CmpP1 = >::Output; + assert_eq!(::to_ordering(), Ordering::Less); +} +#[test] +#[allow(non_snake_case)] +fn test_N4_Add_P2() { + type A = NInt, B0>, B0>>; + type B = PInt, B0>>; + type N2 = NInt, B0>>; + + #[allow(non_camel_case_types)] + type N4AddP2 = <>::Output as Same>::Output; + + assert_eq!(::to_i64(), ::to_i64()); +} +#[test] +#[allow(non_snake_case)] +fn test_N4_Sub_P2() { + type A = NInt, B0>, B0>>; + type B = PInt, B0>>; + type N6 = NInt, B1>, B0>>; + + #[allow(non_camel_case_types)] + type N4SubP2 = <>::Output as Same>::Output; + + assert_eq!(::to_i64(), ::to_i64()); +} +#[test] +#[allow(non_snake_case)] +fn test_N4_Mul_P2() { + type A = NInt, B0>, B0>>; + type B = PInt, B0>>; + type N8 = NInt, B0>, B0>, B0>>; + + #[allow(non_camel_case_types)] + type N4MulP2 = <>::Output as Same>::Output; + + assert_eq!(::to_i64(), ::to_i64()); +} +#[test] +#[allow(non_snake_case)] +fn test_N4_Min_P2() { + type A = NInt, B0>, B0>>; + type B = PInt, B0>>; + type N4 = NInt, B0>, B0>>; + + #[allow(non_camel_case_types)] + type N4MinP2 = <>::Output as Same>::Output; + + assert_eq!(::to_i64(), ::to_i64()); +} +#[test] +#[allow(non_snake_case)] +fn test_N4_Max_P2() { + type A = NInt, B0>, B0>>; + type B = PInt, B0>>; + type P2 = PInt, B0>>; + + #[allow(non_camel_case_types)] + type N4MaxP2 = <>::Output as Same>::Output; + + assert_eq!(::to_i64(), ::to_i64()); +} +#[test] +#[allow(non_snake_case)] +fn test_N4_Gcd_P2() { + type A = NInt, B0>, B0>>; + type B = PInt, B0>>; + type P2 = PInt, B0>>; + + #[allow(non_camel_case_types)] + type N4GcdP2 = <>::Output as Same>::Output; + + assert_eq!(::to_i64(), ::to_i64()); +} +#[test] +#[allow(non_snake_case)] +fn test_N4_Div_P2() { + type A = NInt, B0>, B0>>; + type B = PInt, B0>>; + type N2 = NInt, B0>>; + + #[allow(non_camel_case_types)] + type N4DivP2 = <>::Output as Same>::Output; + + assert_eq!(::to_i64(), ::to_i64()); +} +#[test] +#[allow(non_snake_case)] +fn test_N4_Rem_P2() { + type A = NInt, B0>, B0>>; + type B = PInt, B0>>; + type _0 = Z0; + + #[allow(non_camel_case_types)] + type N4RemP2 = <>::Output as Same<_0>>::Output; + + assert_eq!(::to_i64(), <_0 as Integer>::to_i64()); +} +#[test] +#[allow(non_snake_case)] +fn test_N4_PartialDiv_P2() { + type A = NInt, B0>, B0>>; + type B = PInt, B0>>; + type N2 = NInt, B0>>; + + #[allow(non_camel_case_types)] + type N4PartialDivP2 = <>::Output as Same>::Output; + + assert_eq!(::to_i64(), ::to_i64()); +} +#[test] +#[allow(non_snake_case)] +fn test_N4_Pow_P2() { + type A = NInt, B0>, B0>>; + type B = PInt, B0>>; + type P16 = PInt, B0>, B0>, B0>, B0>>; + + #[allow(non_camel_case_types)] + type N4PowP2 = <>::Output as Same>::Output; + + assert_eq!(::to_i64(), ::to_i64()); +} +#[test] +#[allow(non_snake_case)] +fn test_N4_Cmp_P2() { + type A = NInt, B0>, B0>>; + type B = PInt, B0>>; + + #[allow(non_camel_case_types)] + type N4CmpP2 = >::Output; + assert_eq!(::to_ordering(), Ordering::Less); +} +#[test] +#[allow(non_snake_case)] +fn test_N4_Add_P3() { + type A = NInt, B0>, B0>>; + type B = PInt, B1>>; + type N1 = NInt>; + + #[allow(non_camel_case_types)] + type N4AddP3 = <>::Output as Same>::Output; + + assert_eq!(::to_i64(), ::to_i64()); +} +#[test] +#[allow(non_snake_case)] +fn test_N4_Sub_P3() { + type A = NInt, B0>, B0>>; + type B = PInt, B1>>; + type N7 = NInt, B1>, B1>>; + + #[allow(non_camel_case_types)] + type N4SubP3 = <>::Output as Same>::Output; + + assert_eq!(::to_i64(), ::to_i64()); +} +#[test] +#[allow(non_snake_case)] +fn test_N4_Mul_P3() { + type A = NInt, B0>, B0>>; + type B = PInt, B1>>; + type N12 = NInt, B1>, B0>, B0>>; + + #[allow(non_camel_case_types)] + type N4MulP3 = <>::Output as Same>::Output; + + assert_eq!(::to_i64(), ::to_i64()); +} +#[test] +#[allow(non_snake_case)] +fn test_N4_Min_P3() { + type A = NInt, B0>, B0>>; + type B = PInt, B1>>; + type N4 = NInt, B0>, B0>>; + + #[allow(non_camel_case_types)] + type N4MinP3 = <>::Output as Same>::Output; + + assert_eq!(::to_i64(), ::to_i64()); +} +#[test] +#[allow(non_snake_case)] +fn test_N4_Max_P3() { + type A = NInt, B0>, B0>>; + type B = PInt, B1>>; + type P3 = PInt, B1>>; + + #[allow(non_camel_case_types)] + type N4MaxP3 = <>::Output as Same>::Output; + + assert_eq!(::to_i64(), ::to_i64()); +} +#[test] +#[allow(non_snake_case)] +fn test_N4_Gcd_P3() { + type A = NInt, B0>, B0>>; + type B = PInt, B1>>; + type P1 = PInt>; + + #[allow(non_camel_case_types)] + type N4GcdP3 = <>::Output as Same>::Output; + + assert_eq!(::to_i64(), ::to_i64()); +} +#[test] +#[allow(non_snake_case)] +fn test_N4_Div_P3() { + type A = NInt, B0>, B0>>; + type B = PInt, B1>>; + type N1 = NInt>; + + #[allow(non_camel_case_types)] + type N4DivP3 = <>::Output as Same>::Output; + + assert_eq!(::to_i64(), ::to_i64()); +} +#[test] +#[allow(non_snake_case)] +fn test_N4_Rem_P3() { + type A = NInt, B0>, B0>>; + type B = PInt, B1>>; + type N1 = NInt>; + + #[allow(non_camel_case_types)] + type N4RemP3 = <>::Output as Same>::Output; + + assert_eq!(::to_i64(), ::to_i64()); +} +#[test] +#[allow(non_snake_case)] +fn test_N4_Pow_P3() { + type A = NInt, B0>, B0>>; + type B = PInt, B1>>; + type N64 = NInt, B0>, B0>, B0>, B0>, B0>, B0>>; + + #[allow(non_camel_case_types)] + type N4PowP3 = <>::Output as Same>::Output; + + assert_eq!(::to_i64(), ::to_i64()); +} +#[test] +#[allow(non_snake_case)] +fn test_N4_Cmp_P3() { + type A = NInt, B0>, B0>>; + type B = PInt, B1>>; + + #[allow(non_camel_case_types)] + type N4CmpP3 = >::Output; + assert_eq!(::to_ordering(), Ordering::Less); +} +#[test] +#[allow(non_snake_case)] +fn test_N4_Add_P4() { + type A = NInt, B0>, B0>>; + type B = PInt, B0>, B0>>; + type _0 = Z0; + + #[allow(non_camel_case_types)] + type N4AddP4 = <>::Output as Same<_0>>::Output; + + assert_eq!(::to_i64(), <_0 as Integer>::to_i64()); +} +#[test] +#[allow(non_snake_case)] +fn test_N4_Sub_P4() { + type A = NInt, B0>, B0>>; + type B = PInt, B0>, B0>>; + type N8 = NInt, B0>, B0>, B0>>; + + #[allow(non_camel_case_types)] + type N4SubP4 = <>::Output as Same>::Output; + + assert_eq!(::to_i64(), ::to_i64()); +} +#[test] +#[allow(non_snake_case)] +fn test_N4_Mul_P4() { + type A = NInt, B0>, B0>>; + type B = PInt, B0>, B0>>; + type N16 = NInt, B0>, B0>, B0>, B0>>; + + #[allow(non_camel_case_types)] + type N4MulP4 = <>::Output as Same>::Output; + + assert_eq!(::to_i64(), ::to_i64()); +} +#[test] +#[allow(non_snake_case)] +fn test_N4_Min_P4() { + type A = NInt, B0>, B0>>; + type B = PInt, B0>, B0>>; + type N4 = NInt, B0>, B0>>; + + #[allow(non_camel_case_types)] + type N4MinP4 = <>::Output as Same>::Output; + + assert_eq!(::to_i64(), ::to_i64()); +} +#[test] +#[allow(non_snake_case)] +fn test_N4_Max_P4() { + type A = NInt, B0>, B0>>; + type B = PInt, B0>, B0>>; + type P4 = PInt, B0>, B0>>; + + #[allow(non_camel_case_types)] + type N4MaxP4 = <>::Output as Same>::Output; + + assert_eq!(::to_i64(), ::to_i64()); +} +#[test] +#[allow(non_snake_case)] +fn test_N4_Gcd_P4() { + type A = NInt, B0>, B0>>; + type B = PInt, B0>, B0>>; + type P4 = PInt, B0>, B0>>; + + #[allow(non_camel_case_types)] + type N4GcdP4 = <>::Output as Same>::Output; + + assert_eq!(::to_i64(), ::to_i64()); +} +#[test] +#[allow(non_snake_case)] +fn test_N4_Div_P4() { + type A = NInt, B0>, B0>>; + type B = PInt, B0>, B0>>; + type N1 = NInt>; + + #[allow(non_camel_case_types)] + type N4DivP4 = <>::Output as Same>::Output; + + assert_eq!(::to_i64(), ::to_i64()); +} +#[test] +#[allow(non_snake_case)] +fn test_N4_Rem_P4() { + type A = NInt, B0>, B0>>; + type B = PInt, B0>, B0>>; + type _0 = Z0; + + #[allow(non_camel_case_types)] + type N4RemP4 = <>::Output as Same<_0>>::Output; + + assert_eq!(::to_i64(), <_0 as Integer>::to_i64()); +} +#[test] +#[allow(non_snake_case)] +fn test_N4_PartialDiv_P4() { + type A = NInt, B0>, B0>>; + type B = PInt, B0>, B0>>; + type N1 = NInt>; + + #[allow(non_camel_case_types)] + type N4PartialDivP4 = <>::Output as Same>::Output; + + assert_eq!(::to_i64(), ::to_i64()); +} +#[test] +#[allow(non_snake_case)] +fn test_N4_Pow_P4() { + type A = NInt, B0>, B0>>; + type B = PInt, B0>, B0>>; + type P256 = PInt, B0>, B0>, B0>, B0>, B0>, B0>, B0>, B0>>; + + #[allow(non_camel_case_types)] + type N4PowP4 = <>::Output as Same>::Output; + + assert_eq!(::to_i64(), ::to_i64()); +} +#[test] +#[allow(non_snake_case)] +fn test_N4_Cmp_P4() { + type A = NInt, B0>, B0>>; + type B = PInt, B0>, B0>>; + + #[allow(non_camel_case_types)] + type N4CmpP4 = >::Output; + assert_eq!(::to_ordering(), Ordering::Less); +} +#[test] +#[allow(non_snake_case)] +fn test_N4_Add_P5() { + type A = NInt, B0>, B0>>; + type B = PInt, B0>, B1>>; + type P1 = PInt>; + + #[allow(non_camel_case_types)] + type N4AddP5 = <>::Output as Same>::Output; + + assert_eq!(::to_i64(), ::to_i64()); +} +#[test] +#[allow(non_snake_case)] +fn test_N4_Sub_P5() { + type A = NInt, B0>, B0>>; + type B = PInt, B0>, B1>>; + type N9 = NInt, B0>, B0>, B1>>; + + #[allow(non_camel_case_types)] + type N4SubP5 = <>::Output as Same>::Output; + + assert_eq!(::to_i64(), ::to_i64()); +} +#[test] +#[allow(non_snake_case)] +fn test_N4_Mul_P5() { + type A = NInt, B0>, B0>>; + type B = PInt, B0>, B1>>; + type N20 = NInt, B0>, B1>, B0>, B0>>; + + #[allow(non_camel_case_types)] + type N4MulP5 = <>::Output as Same>::Output; + + assert_eq!(::to_i64(), ::to_i64()); +} +#[test] +#[allow(non_snake_case)] +fn test_N4_Min_P5() { + type A = NInt, B0>, B0>>; + type B = PInt, B0>, B1>>; + type N4 = NInt, B0>, B0>>; + + #[allow(non_camel_case_types)] + type N4MinP5 = <>::Output as Same>::Output; + + assert_eq!(::to_i64(), ::to_i64()); +} +#[test] +#[allow(non_snake_case)] +fn test_N4_Max_P5() { + type A = NInt, B0>, B0>>; + type B = PInt, B0>, B1>>; + type P5 = PInt, B0>, B1>>; + + #[allow(non_camel_case_types)] + type N4MaxP5 = <>::Output as Same>::Output; + + assert_eq!(::to_i64(), ::to_i64()); +} +#[test] +#[allow(non_snake_case)] +fn test_N4_Gcd_P5() { + type A = NInt, B0>, B0>>; + type B = PInt, B0>, B1>>; + type P1 = PInt>; + + #[allow(non_camel_case_types)] + type N4GcdP5 = <>::Output as Same>::Output; + + assert_eq!(::to_i64(), ::to_i64()); +} +#[test] +#[allow(non_snake_case)] +fn test_N4_Div_P5() { + type A = NInt, B0>, B0>>; + type B = PInt, B0>, B1>>; + type _0 = Z0; + + #[allow(non_camel_case_types)] + type N4DivP5 = <>::Output as Same<_0>>::Output; + + assert_eq!(::to_i64(), <_0 as Integer>::to_i64()); +} +#[test] +#[allow(non_snake_case)] +fn test_N4_Rem_P5() { + type A = NInt, B0>, B0>>; + type B = PInt, B0>, B1>>; + type N4 = NInt, B0>, B0>>; + + #[allow(non_camel_case_types)] + type N4RemP5 = <>::Output as Same>::Output; + + assert_eq!(::to_i64(), ::to_i64()); +} +#[test] +#[allow(non_snake_case)] +fn test_N4_Pow_P5() { + type A = NInt, B0>, B0>>; + type B = PInt, B0>, B1>>; + type N1024 = NInt, B0>, B0>, B0>, B0>, B0>, B0>, B0>, B0>, B0>, B0>>; + + #[allow(non_camel_case_types)] + type N4PowP5 = <>::Output as Same>::Output; + + assert_eq!(::to_i64(), ::to_i64()); +} +#[test] +#[allow(non_snake_case)] +fn test_N4_Cmp_P5() { + type A = NInt, B0>, B0>>; + type B = PInt, B0>, B1>>; + + #[allow(non_camel_case_types)] + type N4CmpP5 = >::Output; + assert_eq!(::to_ordering(), Ordering::Less); +} +#[test] +#[allow(non_snake_case)] +fn test_N3_Add_N5() { + type A = NInt, B1>>; + type B = NInt, B0>, B1>>; + type N8 = NInt, B0>, B0>, B0>>; + + #[allow(non_camel_case_types)] + type N3AddN5 = <>::Output as Same>::Output; + + assert_eq!(::to_i64(), ::to_i64()); +} +#[test] +#[allow(non_snake_case)] +fn test_N3_Sub_N5() { + type A = NInt, B1>>; + type B = NInt, B0>, B1>>; + type P2 = PInt, B0>>; + + #[allow(non_camel_case_types)] + type N3SubN5 = <>::Output as Same>::Output; + + assert_eq!(::to_i64(), ::to_i64()); +} +#[test] +#[allow(non_snake_case)] +fn test_N3_Mul_N5() { + type A = NInt, B1>>; + type B = NInt, B0>, B1>>; + type P15 = PInt, B1>, B1>, B1>>; + + #[allow(non_camel_case_types)] + type N3MulN5 = <>::Output as Same>::Output; + + assert_eq!(::to_i64(), ::to_i64()); +} +#[test] +#[allow(non_snake_case)] +fn test_N3_Min_N5() { + type A = NInt, B1>>; + type B = NInt, B0>, B1>>; + type N5 = NInt, B0>, B1>>; + + #[allow(non_camel_case_types)] + type N3MinN5 = <>::Output as Same>::Output; + + assert_eq!(::to_i64(), ::to_i64()); +} +#[test] +#[allow(non_snake_case)] +fn test_N3_Max_N5() { + type A = NInt, B1>>; + type B = NInt, B0>, B1>>; + type N3 = NInt, B1>>; + + #[allow(non_camel_case_types)] + type N3MaxN5 = <>::Output as Same>::Output; + + assert_eq!(::to_i64(), ::to_i64()); +} +#[test] +#[allow(non_snake_case)] +fn test_N3_Gcd_N5() { + type A = NInt, B1>>; + type B = NInt, B0>, B1>>; + type P1 = PInt>; + + #[allow(non_camel_case_types)] + type N3GcdN5 = <>::Output as Same>::Output; + + assert_eq!(::to_i64(), ::to_i64()); +} +#[test] +#[allow(non_snake_case)] +fn test_N3_Div_N5() { + type A = NInt, B1>>; + type B = NInt, B0>, B1>>; + type _0 = Z0; + + #[allow(non_camel_case_types)] + type N3DivN5 = <>::Output as Same<_0>>::Output; + + assert_eq!(::to_i64(), <_0 as Integer>::to_i64()); +} +#[test] +#[allow(non_snake_case)] +fn test_N3_Rem_N5() { + type A = NInt, B1>>; + type B = NInt, B0>, B1>>; + type N3 = NInt, B1>>; + + #[allow(non_camel_case_types)] + type N3RemN5 = <>::Output as Same>::Output; + + assert_eq!(::to_i64(), ::to_i64()); +} +#[test] +#[allow(non_snake_case)] +fn test_N3_Cmp_N5() { + type A = NInt, B1>>; + type B = NInt, B0>, B1>>; + + #[allow(non_camel_case_types)] + type N3CmpN5 = >::Output; + assert_eq!(::to_ordering(), Ordering::Greater); +} +#[test] +#[allow(non_snake_case)] +fn test_N3_Add_N4() { + type A = NInt, B1>>; + type B = NInt, B0>, B0>>; + type N7 = NInt, B1>, B1>>; + + #[allow(non_camel_case_types)] + type N3AddN4 = <>::Output as Same>::Output; + + assert_eq!(::to_i64(), ::to_i64()); +} +#[test] +#[allow(non_snake_case)] +fn test_N3_Sub_N4() { + type A = NInt, B1>>; + type B = NInt, B0>, B0>>; + type P1 = PInt>; + + #[allow(non_camel_case_types)] + type N3SubN4 = <>::Output as Same>::Output; + + assert_eq!(::to_i64(), ::to_i64()); +} +#[test] +#[allow(non_snake_case)] +fn test_N3_Mul_N4() { + type A = NInt, B1>>; + type B = NInt, B0>, B0>>; + type P12 = PInt, B1>, B0>, B0>>; + + #[allow(non_camel_case_types)] + type N3MulN4 = <>::Output as Same>::Output; + + assert_eq!(::to_i64(), ::to_i64()); +} +#[test] +#[allow(non_snake_case)] +fn test_N3_Min_N4() { + type A = NInt, B1>>; + type B = NInt, B0>, B0>>; + type N4 = NInt, B0>, B0>>; + + #[allow(non_camel_case_types)] + type N3MinN4 = <>::Output as Same>::Output; + + assert_eq!(::to_i64(), ::to_i64()); +} +#[test] +#[allow(non_snake_case)] +fn test_N3_Max_N4() { + type A = NInt, B1>>; + type B = NInt, B0>, B0>>; + type N3 = NInt, B1>>; + + #[allow(non_camel_case_types)] + type N3MaxN4 = <>::Output as Same>::Output; + + assert_eq!(::to_i64(), ::to_i64()); +} +#[test] +#[allow(non_snake_case)] +fn test_N3_Gcd_N4() { + type A = NInt, B1>>; + type B = NInt, B0>, B0>>; + type P1 = PInt>; + + #[allow(non_camel_case_types)] + type N3GcdN4 = <>::Output as Same>::Output; + + assert_eq!(::to_i64(), ::to_i64()); +} +#[test] +#[allow(non_snake_case)] +fn test_N3_Div_N4() { + type A = NInt, B1>>; + type B = NInt, B0>, B0>>; + type _0 = Z0; + + #[allow(non_camel_case_types)] + type N3DivN4 = <>::Output as Same<_0>>::Output; + + assert_eq!(::to_i64(), <_0 as Integer>::to_i64()); +} +#[test] +#[allow(non_snake_case)] +fn test_N3_Rem_N4() { + type A = NInt, B1>>; + type B = NInt, B0>, B0>>; + type N3 = NInt, B1>>; + + #[allow(non_camel_case_types)] + type N3RemN4 = <>::Output as Same>::Output; + + assert_eq!(::to_i64(), ::to_i64()); +} +#[test] +#[allow(non_snake_case)] +fn test_N3_Cmp_N4() { + type A = NInt, B1>>; + type B = NInt, B0>, B0>>; + + #[allow(non_camel_case_types)] + type N3CmpN4 = >::Output; + assert_eq!(::to_ordering(), Ordering::Greater); +} +#[test] +#[allow(non_snake_case)] +fn test_N3_Add_N3() { + type A = NInt, B1>>; + type B = NInt, B1>>; + type N6 = NInt, B1>, B0>>; + + #[allow(non_camel_case_types)] + type N3AddN3 = <>::Output as Same>::Output; + + assert_eq!(::to_i64(), ::to_i64()); +} +#[test] +#[allow(non_snake_case)] +fn test_N3_Sub_N3() { + type A = NInt, B1>>; + type B = NInt, B1>>; + type _0 = Z0; + + #[allow(non_camel_case_types)] + type N3SubN3 = <>::Output as Same<_0>>::Output; + + assert_eq!(::to_i64(), <_0 as Integer>::to_i64()); +} +#[test] +#[allow(non_snake_case)] +fn test_N3_Mul_N3() { + type A = NInt, B1>>; + type B = NInt, B1>>; + type P9 = PInt, B0>, B0>, B1>>; + + #[allow(non_camel_case_types)] + type N3MulN3 = <>::Output as Same>::Output; + + assert_eq!(::to_i64(), ::to_i64()); +} +#[test] +#[allow(non_snake_case)] +fn test_N3_Min_N3() { + type A = NInt, B1>>; + type B = NInt, B1>>; + type N3 = NInt, B1>>; + + #[allow(non_camel_case_types)] + type N3MinN3 = <>::Output as Same>::Output; + + assert_eq!(::to_i64(), ::to_i64()); +} +#[test] +#[allow(non_snake_case)] +fn test_N3_Max_N3() { + type A = NInt, B1>>; + type B = NInt, B1>>; + type N3 = NInt, B1>>; + + #[allow(non_camel_case_types)] + type N3MaxN3 = <>::Output as Same>::Output; + + assert_eq!(::to_i64(), ::to_i64()); +} +#[test] +#[allow(non_snake_case)] +fn test_N3_Gcd_N3() { + type A = NInt, B1>>; + type B = NInt, B1>>; + type P3 = PInt, B1>>; + + #[allow(non_camel_case_types)] + type N3GcdN3 = <>::Output as Same>::Output; + + assert_eq!(::to_i64(), ::to_i64()); +} +#[test] +#[allow(non_snake_case)] +fn test_N3_Div_N3() { + type A = NInt, B1>>; + type B = NInt, B1>>; + type P1 = PInt>; + + #[allow(non_camel_case_types)] + type N3DivN3 = <>::Output as Same>::Output; + + assert_eq!(::to_i64(), ::to_i64()); +} +#[test] +#[allow(non_snake_case)] +fn test_N3_Rem_N3() { + type A = NInt, B1>>; + type B = NInt, B1>>; + type _0 = Z0; + + #[allow(non_camel_case_types)] + type N3RemN3 = <>::Output as Same<_0>>::Output; + + assert_eq!(::to_i64(), <_0 as Integer>::to_i64()); +} +#[test] +#[allow(non_snake_case)] +fn test_N3_PartialDiv_N3() { + type A = NInt, B1>>; + type B = NInt, B1>>; + type P1 = PInt>; + + #[allow(non_camel_case_types)] + type N3PartialDivN3 = <>::Output as Same>::Output; + + assert_eq!(::to_i64(), ::to_i64()); +} +#[test] +#[allow(non_snake_case)] +fn test_N3_Cmp_N3() { + type A = NInt, B1>>; + type B = NInt, B1>>; + + #[allow(non_camel_case_types)] + type N3CmpN3 = >::Output; + assert_eq!(::to_ordering(), Ordering::Equal); +} +#[test] +#[allow(non_snake_case)] +fn test_N3_Add_N2() { + type A = NInt, B1>>; + type B = NInt, B0>>; + type N5 = NInt, B0>, B1>>; + + #[allow(non_camel_case_types)] + type N3AddN2 = <>::Output as Same>::Output; + + assert_eq!(::to_i64(), ::to_i64()); +} +#[test] +#[allow(non_snake_case)] +fn test_N3_Sub_N2() { + type A = NInt, B1>>; + type B = NInt, B0>>; + type N1 = NInt>; + + #[allow(non_camel_case_types)] + type N3SubN2 = <>::Output as Same>::Output; + + assert_eq!(::to_i64(), ::to_i64()); +} +#[test] +#[allow(non_snake_case)] +fn test_N3_Mul_N2() { + type A = NInt, B1>>; + type B = NInt, B0>>; + type P6 = PInt, B1>, B0>>; + + #[allow(non_camel_case_types)] + type N3MulN2 = <>::Output as Same>::Output; + + assert_eq!(::to_i64(), ::to_i64()); +} +#[test] +#[allow(non_snake_case)] +fn test_N3_Min_N2() { + type A = NInt, B1>>; + type B = NInt, B0>>; + type N3 = NInt, B1>>; + + #[allow(non_camel_case_types)] + type N3MinN2 = <>::Output as Same>::Output; + + assert_eq!(::to_i64(), ::to_i64()); +} +#[test] +#[allow(non_snake_case)] +fn test_N3_Max_N2() { + type A = NInt, B1>>; + type B = NInt, B0>>; + type N2 = NInt, B0>>; + + #[allow(non_camel_case_types)] + type N3MaxN2 = <>::Output as Same>::Output; + + assert_eq!(::to_i64(), ::to_i64()); +} +#[test] +#[allow(non_snake_case)] +fn test_N3_Gcd_N2() { + type A = NInt, B1>>; + type B = NInt, B0>>; + type P1 = PInt>; + + #[allow(non_camel_case_types)] + type N3GcdN2 = <>::Output as Same>::Output; + + assert_eq!(::to_i64(), ::to_i64()); +} +#[test] +#[allow(non_snake_case)] +fn test_N3_Div_N2() { + type A = NInt, B1>>; + type B = NInt, B0>>; + type P1 = PInt>; + + #[allow(non_camel_case_types)] + type N3DivN2 = <>::Output as Same>::Output; + + assert_eq!(::to_i64(), ::to_i64()); +} +#[test] +#[allow(non_snake_case)] +fn test_N3_Rem_N2() { + type A = NInt, B1>>; + type B = NInt, B0>>; + type N1 = NInt>; + + #[allow(non_camel_case_types)] + type N3RemN2 = <>::Output as Same>::Output; + + assert_eq!(::to_i64(), ::to_i64()); +} +#[test] +#[allow(non_snake_case)] +fn test_N3_Cmp_N2() { + type A = NInt, B1>>; + type B = NInt, B0>>; + + #[allow(non_camel_case_types)] + type N3CmpN2 = >::Output; + assert_eq!(::to_ordering(), Ordering::Less); +} +#[test] +#[allow(non_snake_case)] +fn test_N3_Add_N1() { + type A = NInt, B1>>; + type B = NInt>; + type N4 = NInt, B0>, B0>>; + + #[allow(non_camel_case_types)] + type N3AddN1 = <>::Output as Same>::Output; + + assert_eq!(::to_i64(), ::to_i64()); +} +#[test] +#[allow(non_snake_case)] +fn test_N3_Sub_N1() { + type A = NInt, B1>>; + type B = NInt>; + type N2 = NInt, B0>>; + + #[allow(non_camel_case_types)] + type N3SubN1 = <>::Output as Same>::Output; + + assert_eq!(::to_i64(), ::to_i64()); +} +#[test] +#[allow(non_snake_case)] +fn test_N3_Mul_N1() { + type A = NInt, B1>>; + type B = NInt>; + type P3 = PInt, B1>>; + + #[allow(non_camel_case_types)] + type N3MulN1 = <>::Output as Same>::Output; + + assert_eq!(::to_i64(), ::to_i64()); +} +#[test] +#[allow(non_snake_case)] +fn test_N3_Min_N1() { + type A = NInt, B1>>; + type B = NInt>; + type N3 = NInt, B1>>; + + #[allow(non_camel_case_types)] + type N3MinN1 = <>::Output as Same>::Output; + + assert_eq!(::to_i64(), ::to_i64()); +} +#[test] +#[allow(non_snake_case)] +fn test_N3_Max_N1() { + type A = NInt, B1>>; + type B = NInt>; + type N1 = NInt>; + + #[allow(non_camel_case_types)] + type N3MaxN1 = <>::Output as Same>::Output; + + assert_eq!(::to_i64(), ::to_i64()); +} +#[test] +#[allow(non_snake_case)] +fn test_N3_Gcd_N1() { + type A = NInt, B1>>; + type B = NInt>; + type P1 = PInt>; + + #[allow(non_camel_case_types)] + type N3GcdN1 = <>::Output as Same>::Output; + + assert_eq!(::to_i64(), ::to_i64()); +} +#[test] +#[allow(non_snake_case)] +fn test_N3_Div_N1() { + type A = NInt, B1>>; + type B = NInt>; + type P3 = PInt, B1>>; + + #[allow(non_camel_case_types)] + type N3DivN1 = <>::Output as Same>::Output; + + assert_eq!(::to_i64(), ::to_i64()); +} +#[test] +#[allow(non_snake_case)] +fn test_N3_Rem_N1() { + type A = NInt, B1>>; + type B = NInt>; + type _0 = Z0; + + #[allow(non_camel_case_types)] + type N3RemN1 = <>::Output as Same<_0>>::Output; + + assert_eq!(::to_i64(), <_0 as Integer>::to_i64()); +} +#[test] +#[allow(non_snake_case)] +fn test_N3_PartialDiv_N1() { + type A = NInt, B1>>; + type B = NInt>; + type P3 = PInt, B1>>; + + #[allow(non_camel_case_types)] + type N3PartialDivN1 = <>::Output as Same>::Output; + + assert_eq!(::to_i64(), ::to_i64()); +} +#[test] +#[allow(non_snake_case)] +fn test_N3_Cmp_N1() { + type A = NInt, B1>>; + type B = NInt>; + + #[allow(non_camel_case_types)] + type N3CmpN1 = >::Output; + assert_eq!(::to_ordering(), Ordering::Less); +} +#[test] +#[allow(non_snake_case)] +fn test_N3_Add__0() { + type A = NInt, B1>>; + type B = Z0; + type N3 = NInt, B1>>; + + #[allow(non_camel_case_types)] + type N3Add_0 = <>::Output as Same>::Output; + + assert_eq!(::to_i64(), ::to_i64()); +} +#[test] +#[allow(non_snake_case)] +fn test_N3_Sub__0() { + type A = NInt, B1>>; + type B = Z0; + type N3 = NInt, B1>>; + + #[allow(non_camel_case_types)] + type N3Sub_0 = <>::Output as Same>::Output; + + assert_eq!(::to_i64(), ::to_i64()); +} +#[test] +#[allow(non_snake_case)] +fn test_N3_Mul__0() { + type A = NInt, B1>>; + type B = Z0; + type _0 = Z0; + + #[allow(non_camel_case_types)] + type N3Mul_0 = <>::Output as Same<_0>>::Output; + + assert_eq!(::to_i64(), <_0 as Integer>::to_i64()); +} +#[test] +#[allow(non_snake_case)] +fn test_N3_Min__0() { + type A = NInt, B1>>; + type B = Z0; + type N3 = NInt, B1>>; + + #[allow(non_camel_case_types)] + type N3Min_0 = <>::Output as Same>::Output; + + assert_eq!(::to_i64(), ::to_i64()); +} +#[test] +#[allow(non_snake_case)] +fn test_N3_Max__0() { + type A = NInt, B1>>; + type B = Z0; + type _0 = Z0; + + #[allow(non_camel_case_types)] + type N3Max_0 = <>::Output as Same<_0>>::Output; + + assert_eq!(::to_i64(), <_0 as Integer>::to_i64()); +} +#[test] +#[allow(non_snake_case)] +fn test_N3_Gcd__0() { + type A = NInt, B1>>; + type B = Z0; + type P3 = PInt, B1>>; + + #[allow(non_camel_case_types)] + type N3Gcd_0 = <>::Output as Same>::Output; + + assert_eq!(::to_i64(), ::to_i64()); +} +#[test] +#[allow(non_snake_case)] +fn test_N3_Pow__0() { + type A = NInt, B1>>; + type B = Z0; + type P1 = PInt>; + + #[allow(non_camel_case_types)] + type N3Pow_0 = <>::Output as Same>::Output; + + assert_eq!(::to_i64(), ::to_i64()); +} +#[test] +#[allow(non_snake_case)] +fn test_N3_Cmp__0() { + type A = NInt, B1>>; + type B = Z0; + + #[allow(non_camel_case_types)] + type N3Cmp_0 = >::Output; + assert_eq!(::to_ordering(), Ordering::Less); +} +#[test] +#[allow(non_snake_case)] +fn test_N3_Add_P1() { + type A = NInt, B1>>; + type B = PInt>; + type N2 = NInt, B0>>; + + #[allow(non_camel_case_types)] + type N3AddP1 = <>::Output as Same>::Output; + + assert_eq!(::to_i64(), ::to_i64()); +} +#[test] +#[allow(non_snake_case)] +fn test_N3_Sub_P1() { + type A = NInt, B1>>; + type B = PInt>; + type N4 = NInt, B0>, B0>>; + + #[allow(non_camel_case_types)] + type N3SubP1 = <>::Output as Same>::Output; + + assert_eq!(::to_i64(), ::to_i64()); +} +#[test] +#[allow(non_snake_case)] +fn test_N3_Mul_P1() { + type A = NInt, B1>>; + type B = PInt>; + type N3 = NInt, B1>>; + + #[allow(non_camel_case_types)] + type N3MulP1 = <>::Output as Same>::Output; + + assert_eq!(::to_i64(), ::to_i64()); +} +#[test] +#[allow(non_snake_case)] +fn test_N3_Min_P1() { + type A = NInt, B1>>; + type B = PInt>; + type N3 = NInt, B1>>; + + #[allow(non_camel_case_types)] + type N3MinP1 = <>::Output as Same>::Output; + + assert_eq!(::to_i64(), ::to_i64()); +} +#[test] +#[allow(non_snake_case)] +fn test_N3_Max_P1() { + type A = NInt, B1>>; + type B = PInt>; + type P1 = PInt>; + + #[allow(non_camel_case_types)] + type N3MaxP1 = <>::Output as Same>::Output; + + assert_eq!(::to_i64(), ::to_i64()); +} +#[test] +#[allow(non_snake_case)] +fn test_N3_Gcd_P1() { + type A = NInt, B1>>; + type B = PInt>; + type P1 = PInt>; + + #[allow(non_camel_case_types)] + type N3GcdP1 = <>::Output as Same>::Output; + + assert_eq!(::to_i64(), ::to_i64()); +} +#[test] +#[allow(non_snake_case)] +fn test_N3_Div_P1() { + type A = NInt, B1>>; + type B = PInt>; + type N3 = NInt, B1>>; + + #[allow(non_camel_case_types)] + type N3DivP1 = <>::Output as Same>::Output; + + assert_eq!(::to_i64(), ::to_i64()); +} +#[test] +#[allow(non_snake_case)] +fn test_N3_Rem_P1() { + type A = NInt, B1>>; + type B = PInt>; + type _0 = Z0; + + #[allow(non_camel_case_types)] + type N3RemP1 = <>::Output as Same<_0>>::Output; + + assert_eq!(::to_i64(), <_0 as Integer>::to_i64()); +} +#[test] +#[allow(non_snake_case)] +fn test_N3_PartialDiv_P1() { + type A = NInt, B1>>; + type B = PInt>; + type N3 = NInt, B1>>; + + #[allow(non_camel_case_types)] + type N3PartialDivP1 = <>::Output as Same>::Output; + + assert_eq!(::to_i64(), ::to_i64()); +} +#[test] +#[allow(non_snake_case)] +fn test_N3_Pow_P1() { + type A = NInt, B1>>; + type B = PInt>; + type N3 = NInt, B1>>; + + #[allow(non_camel_case_types)] + type N3PowP1 = <>::Output as Same>::Output; + + assert_eq!(::to_i64(), ::to_i64()); +} +#[test] +#[allow(non_snake_case)] +fn test_N3_Cmp_P1() { + type A = NInt, B1>>; + type B = PInt>; + + #[allow(non_camel_case_types)] + type N3CmpP1 = >::Output; + assert_eq!(::to_ordering(), Ordering::Less); +} +#[test] +#[allow(non_snake_case)] +fn test_N3_Add_P2() { + type A = NInt, B1>>; + type B = PInt, B0>>; + type N1 = NInt>; + + #[allow(non_camel_case_types)] + type N3AddP2 = <>::Output as Same>::Output; + + assert_eq!(::to_i64(), ::to_i64()); +} +#[test] +#[allow(non_snake_case)] +fn test_N3_Sub_P2() { + type A = NInt, B1>>; + type B = PInt, B0>>; + type N5 = NInt, B0>, B1>>; + + #[allow(non_camel_case_types)] + type N3SubP2 = <>::Output as Same>::Output; + + assert_eq!(::to_i64(), ::to_i64()); +} +#[test] +#[allow(non_snake_case)] +fn test_N3_Mul_P2() { + type A = NInt, B1>>; + type B = PInt, B0>>; + type N6 = NInt, B1>, B0>>; + + #[allow(non_camel_case_types)] + type N3MulP2 = <>::Output as Same>::Output; + + assert_eq!(::to_i64(), ::to_i64()); +} +#[test] +#[allow(non_snake_case)] +fn test_N3_Min_P2() { + type A = NInt, B1>>; + type B = PInt, B0>>; + type N3 = NInt, B1>>; + + #[allow(non_camel_case_types)] + type N3MinP2 = <>::Output as Same>::Output; + + assert_eq!(::to_i64(), ::to_i64()); +} +#[test] +#[allow(non_snake_case)] +fn test_N3_Max_P2() { + type A = NInt, B1>>; + type B = PInt, B0>>; + type P2 = PInt, B0>>; + + #[allow(non_camel_case_types)] + type N3MaxP2 = <>::Output as Same>::Output; + + assert_eq!(::to_i64(), ::to_i64()); +} +#[test] +#[allow(non_snake_case)] +fn test_N3_Gcd_P2() { + type A = NInt, B1>>; + type B = PInt, B0>>; + type P1 = PInt>; + + #[allow(non_camel_case_types)] + type N3GcdP2 = <>::Output as Same>::Output; + + assert_eq!(::to_i64(), ::to_i64()); +} +#[test] +#[allow(non_snake_case)] +fn test_N3_Div_P2() { + type A = NInt, B1>>; + type B = PInt, B0>>; + type N1 = NInt>; + + #[allow(non_camel_case_types)] + type N3DivP2 = <>::Output as Same>::Output; + + assert_eq!(::to_i64(), ::to_i64()); +} +#[test] +#[allow(non_snake_case)] +fn test_N3_Rem_P2() { + type A = NInt, B1>>; + type B = PInt, B0>>; + type N1 = NInt>; + + #[allow(non_camel_case_types)] + type N3RemP2 = <>::Output as Same>::Output; + + assert_eq!(::to_i64(), ::to_i64()); +} +#[test] +#[allow(non_snake_case)] +fn test_N3_Pow_P2() { + type A = NInt, B1>>; + type B = PInt, B0>>; + type P9 = PInt, B0>, B0>, B1>>; + + #[allow(non_camel_case_types)] + type N3PowP2 = <>::Output as Same>::Output; + + assert_eq!(::to_i64(), ::to_i64()); +} +#[test] +#[allow(non_snake_case)] +fn test_N3_Cmp_P2() { + type A = NInt, B1>>; + type B = PInt, B0>>; + + #[allow(non_camel_case_types)] + type N3CmpP2 = >::Output; + assert_eq!(::to_ordering(), Ordering::Less); +} +#[test] +#[allow(non_snake_case)] +fn test_N3_Add_P3() { + type A = NInt, B1>>; + type B = PInt, B1>>; + type _0 = Z0; + + #[allow(non_camel_case_types)] + type N3AddP3 = <>::Output as Same<_0>>::Output; + + assert_eq!(::to_i64(), <_0 as Integer>::to_i64()); +} +#[test] +#[allow(non_snake_case)] +fn test_N3_Sub_P3() { + type A = NInt, B1>>; + type B = PInt, B1>>; + type N6 = NInt, B1>, B0>>; + + #[allow(non_camel_case_types)] + type N3SubP3 = <>::Output as Same>::Output; + + assert_eq!(::to_i64(), ::to_i64()); +} +#[test] +#[allow(non_snake_case)] +fn test_N3_Mul_P3() { + type A = NInt, B1>>; + type B = PInt, B1>>; + type N9 = NInt, B0>, B0>, B1>>; + + #[allow(non_camel_case_types)] + type N3MulP3 = <>::Output as Same>::Output; + + assert_eq!(::to_i64(), ::to_i64()); +} +#[test] +#[allow(non_snake_case)] +fn test_N3_Min_P3() { + type A = NInt, B1>>; + type B = PInt, B1>>; + type N3 = NInt, B1>>; + + #[allow(non_camel_case_types)] + type N3MinP3 = <>::Output as Same>::Output; + + assert_eq!(::to_i64(), ::to_i64()); +} +#[test] +#[allow(non_snake_case)] +fn test_N3_Max_P3() { + type A = NInt, B1>>; + type B = PInt, B1>>; + type P3 = PInt, B1>>; + + #[allow(non_camel_case_types)] + type N3MaxP3 = <>::Output as Same>::Output; + + assert_eq!(::to_i64(), ::to_i64()); +} +#[test] +#[allow(non_snake_case)] +fn test_N3_Gcd_P3() { + type A = NInt, B1>>; + type B = PInt, B1>>; + type P3 = PInt, B1>>; + + #[allow(non_camel_case_types)] + type N3GcdP3 = <>::Output as Same>::Output; + + assert_eq!(::to_i64(), ::to_i64()); +} +#[test] +#[allow(non_snake_case)] +fn test_N3_Div_P3() { + type A = NInt, B1>>; + type B = PInt, B1>>; + type N1 = NInt>; + + #[allow(non_camel_case_types)] + type N3DivP3 = <>::Output as Same>::Output; + + assert_eq!(::to_i64(), ::to_i64()); +} +#[test] +#[allow(non_snake_case)] +fn test_N3_Rem_P3() { + type A = NInt, B1>>; + type B = PInt, B1>>; + type _0 = Z0; + + #[allow(non_camel_case_types)] + type N3RemP3 = <>::Output as Same<_0>>::Output; + + assert_eq!(::to_i64(), <_0 as Integer>::to_i64()); +} +#[test] +#[allow(non_snake_case)] +fn test_N3_PartialDiv_P3() { + type A = NInt, B1>>; + type B = PInt, B1>>; + type N1 = NInt>; + + #[allow(non_camel_case_types)] + type N3PartialDivP3 = <>::Output as Same>::Output; + + assert_eq!(::to_i64(), ::to_i64()); +} +#[test] +#[allow(non_snake_case)] +fn test_N3_Pow_P3() { + type A = NInt, B1>>; + type B = PInt, B1>>; + type N27 = NInt, B1>, B0>, B1>, B1>>; + + #[allow(non_camel_case_types)] + type N3PowP3 = <>::Output as Same>::Output; + + assert_eq!(::to_i64(), ::to_i64()); +} +#[test] +#[allow(non_snake_case)] +fn test_N3_Cmp_P3() { + type A = NInt, B1>>; + type B = PInt, B1>>; + + #[allow(non_camel_case_types)] + type N3CmpP3 = >::Output; + assert_eq!(::to_ordering(), Ordering::Less); +} +#[test] +#[allow(non_snake_case)] +fn test_N3_Add_P4() { + type A = NInt, B1>>; + type B = PInt, B0>, B0>>; + type P1 = PInt>; + + #[allow(non_camel_case_types)] + type N3AddP4 = <>::Output as Same>::Output; + + assert_eq!(::to_i64(), ::to_i64()); +} +#[test] +#[allow(non_snake_case)] +fn test_N3_Sub_P4() { + type A = NInt, B1>>; + type B = PInt, B0>, B0>>; + type N7 = NInt, B1>, B1>>; + + #[allow(non_camel_case_types)] + type N3SubP4 = <>::Output as Same>::Output; + + assert_eq!(::to_i64(), ::to_i64()); +} +#[test] +#[allow(non_snake_case)] +fn test_N3_Mul_P4() { + type A = NInt, B1>>; + type B = PInt, B0>, B0>>; + type N12 = NInt, B1>, B0>, B0>>; + + #[allow(non_camel_case_types)] + type N3MulP4 = <>::Output as Same>::Output; + + assert_eq!(::to_i64(), ::to_i64()); +} +#[test] +#[allow(non_snake_case)] +fn test_N3_Min_P4() { + type A = NInt, B1>>; + type B = PInt, B0>, B0>>; + type N3 = NInt, B1>>; + + #[allow(non_camel_case_types)] + type N3MinP4 = <>::Output as Same>::Output; + + assert_eq!(::to_i64(), ::to_i64()); +} +#[test] +#[allow(non_snake_case)] +fn test_N3_Max_P4() { + type A = NInt, B1>>; + type B = PInt, B0>, B0>>; + type P4 = PInt, B0>, B0>>; + + #[allow(non_camel_case_types)] + type N3MaxP4 = <>::Output as Same>::Output; + + assert_eq!(::to_i64(), ::to_i64()); +} +#[test] +#[allow(non_snake_case)] +fn test_N3_Gcd_P4() { + type A = NInt, B1>>; + type B = PInt, B0>, B0>>; + type P1 = PInt>; + + #[allow(non_camel_case_types)] + type N3GcdP4 = <>::Output as Same>::Output; + + assert_eq!(::to_i64(), ::to_i64()); +} +#[test] +#[allow(non_snake_case)] +fn test_N3_Div_P4() { + type A = NInt, B1>>; + type B = PInt, B0>, B0>>; + type _0 = Z0; + + #[allow(non_camel_case_types)] + type N3DivP4 = <>::Output as Same<_0>>::Output; + + assert_eq!(::to_i64(), <_0 as Integer>::to_i64()); +} +#[test] +#[allow(non_snake_case)] +fn test_N3_Rem_P4() { + type A = NInt, B1>>; + type B = PInt, B0>, B0>>; + type N3 = NInt, B1>>; + + #[allow(non_camel_case_types)] + type N3RemP4 = <>::Output as Same>::Output; + + assert_eq!(::to_i64(), ::to_i64()); +} +#[test] +#[allow(non_snake_case)] +fn test_N3_Pow_P4() { + type A = NInt, B1>>; + type B = PInt, B0>, B0>>; + type P81 = PInt, B0>, B1>, B0>, B0>, B0>, B1>>; + + #[allow(non_camel_case_types)] + type N3PowP4 = <>::Output as Same>::Output; + + assert_eq!(::to_i64(), ::to_i64()); +} +#[test] +#[allow(non_snake_case)] +fn test_N3_Cmp_P4() { + type A = NInt, B1>>; + type B = PInt, B0>, B0>>; + + #[allow(non_camel_case_types)] + type N3CmpP4 = >::Output; + assert_eq!(::to_ordering(), Ordering::Less); +} +#[test] +#[allow(non_snake_case)] +fn test_N3_Add_P5() { + type A = NInt, B1>>; + type B = PInt, B0>, B1>>; + type P2 = PInt, B0>>; + + #[allow(non_camel_case_types)] + type N3AddP5 = <>::Output as Same>::Output; + + assert_eq!(::to_i64(), ::to_i64()); +} +#[test] +#[allow(non_snake_case)] +fn test_N3_Sub_P5() { + type A = NInt, B1>>; + type B = PInt, B0>, B1>>; + type N8 = NInt, B0>, B0>, B0>>; + + #[allow(non_camel_case_types)] + type N3SubP5 = <>::Output as Same>::Output; + + assert_eq!(::to_i64(), ::to_i64()); +} +#[test] +#[allow(non_snake_case)] +fn test_N3_Mul_P5() { + type A = NInt, B1>>; + type B = PInt, B0>, B1>>; + type N15 = NInt, B1>, B1>, B1>>; + + #[allow(non_camel_case_types)] + type N3MulP5 = <>::Output as Same>::Output; + + assert_eq!(::to_i64(), ::to_i64()); +} +#[test] +#[allow(non_snake_case)] +fn test_N3_Min_P5() { + type A = NInt, B1>>; + type B = PInt, B0>, B1>>; + type N3 = NInt, B1>>; + + #[allow(non_camel_case_types)] + type N3MinP5 = <>::Output as Same>::Output; + + assert_eq!(::to_i64(), ::to_i64()); +} +#[test] +#[allow(non_snake_case)] +fn test_N3_Max_P5() { + type A = NInt, B1>>; + type B = PInt, B0>, B1>>; + type P5 = PInt, B0>, B1>>; + + #[allow(non_camel_case_types)] + type N3MaxP5 = <>::Output as Same>::Output; + + assert_eq!(::to_i64(), ::to_i64()); +} +#[test] +#[allow(non_snake_case)] +fn test_N3_Gcd_P5() { + type A = NInt, B1>>; + type B = PInt, B0>, B1>>; + type P1 = PInt>; + + #[allow(non_camel_case_types)] + type N3GcdP5 = <>::Output as Same>::Output; + + assert_eq!(::to_i64(), ::to_i64()); +} +#[test] +#[allow(non_snake_case)] +fn test_N3_Div_P5() { + type A = NInt, B1>>; + type B = PInt, B0>, B1>>; + type _0 = Z0; + + #[allow(non_camel_case_types)] + type N3DivP5 = <>::Output as Same<_0>>::Output; + + assert_eq!(::to_i64(), <_0 as Integer>::to_i64()); +} +#[test] +#[allow(non_snake_case)] +fn test_N3_Rem_P5() { + type A = NInt, B1>>; + type B = PInt, B0>, B1>>; + type N3 = NInt, B1>>; + + #[allow(non_camel_case_types)] + type N3RemP5 = <>::Output as Same>::Output; + + assert_eq!(::to_i64(), ::to_i64()); +} +#[test] +#[allow(non_snake_case)] +fn test_N3_Pow_P5() { + type A = NInt, B1>>; + type B = PInt, B0>, B1>>; + type N243 = NInt, B1>, B1>, B1>, B0>, B0>, B1>, B1>>; + + #[allow(non_camel_case_types)] + type N3PowP5 = <>::Output as Same>::Output; + + assert_eq!(::to_i64(), ::to_i64()); +} +#[test] +#[allow(non_snake_case)] +fn test_N3_Cmp_P5() { + type A = NInt, B1>>; + type B = PInt, B0>, B1>>; + + #[allow(non_camel_case_types)] + type N3CmpP5 = >::Output; + assert_eq!(::to_ordering(), Ordering::Less); +} +#[test] +#[allow(non_snake_case)] +fn test_N2_Add_N5() { + type A = NInt, B0>>; + type B = NInt, B0>, B1>>; + type N7 = NInt, B1>, B1>>; + + #[allow(non_camel_case_types)] + type N2AddN5 = <>::Output as Same>::Output; + + assert_eq!(::to_i64(), ::to_i64()); +} +#[test] +#[allow(non_snake_case)] +fn test_N2_Sub_N5() { + type A = NInt, B0>>; + type B = NInt, B0>, B1>>; + type P3 = PInt, B1>>; + + #[allow(non_camel_case_types)] + type N2SubN5 = <>::Output as Same>::Output; + + assert_eq!(::to_i64(), ::to_i64()); +} +#[test] +#[allow(non_snake_case)] +fn test_N2_Mul_N5() { + type A = NInt, B0>>; + type B = NInt, B0>, B1>>; + type P10 = PInt, B0>, B1>, B0>>; + + #[allow(non_camel_case_types)] + type N2MulN5 = <>::Output as Same>::Output; + + assert_eq!(::to_i64(), ::to_i64()); +} +#[test] +#[allow(non_snake_case)] +fn test_N2_Min_N5() { + type A = NInt, B0>>; + type B = NInt, B0>, B1>>; + type N5 = NInt, B0>, B1>>; + + #[allow(non_camel_case_types)] + type N2MinN5 = <>::Output as Same>::Output; + + assert_eq!(::to_i64(), ::to_i64()); +} +#[test] +#[allow(non_snake_case)] +fn test_N2_Max_N5() { + type A = NInt, B0>>; + type B = NInt, B0>, B1>>; + type N2 = NInt, B0>>; + + #[allow(non_camel_case_types)] + type N2MaxN5 = <>::Output as Same>::Output; + + assert_eq!(::to_i64(), ::to_i64()); +} +#[test] +#[allow(non_snake_case)] +fn test_N2_Gcd_N5() { + type A = NInt, B0>>; + type B = NInt, B0>, B1>>; + type P1 = PInt>; + + #[allow(non_camel_case_types)] + type N2GcdN5 = <>::Output as Same>::Output; + + assert_eq!(::to_i64(), ::to_i64()); +} +#[test] +#[allow(non_snake_case)] +fn test_N2_Div_N5() { + type A = NInt, B0>>; + type B = NInt, B0>, B1>>; + type _0 = Z0; + + #[allow(non_camel_case_types)] + type N2DivN5 = <>::Output as Same<_0>>::Output; + + assert_eq!(::to_i64(), <_0 as Integer>::to_i64()); +} +#[test] +#[allow(non_snake_case)] +fn test_N2_Rem_N5() { + type A = NInt, B0>>; + type B = NInt, B0>, B1>>; + type N2 = NInt, B0>>; + + #[allow(non_camel_case_types)] + type N2RemN5 = <>::Output as Same>::Output; + + assert_eq!(::to_i64(), ::to_i64()); +} +#[test] +#[allow(non_snake_case)] +fn test_N2_Cmp_N5() { + type A = NInt, B0>>; + type B = NInt, B0>, B1>>; + + #[allow(non_camel_case_types)] + type N2CmpN5 = >::Output; + assert_eq!(::to_ordering(), Ordering::Greater); +} +#[test] +#[allow(non_snake_case)] +fn test_N2_Add_N4() { + type A = NInt, B0>>; + type B = NInt, B0>, B0>>; + type N6 = NInt, B1>, B0>>; + + #[allow(non_camel_case_types)] + type N2AddN4 = <>::Output as Same>::Output; + + assert_eq!(::to_i64(), ::to_i64()); +} +#[test] +#[allow(non_snake_case)] +fn test_N2_Sub_N4() { + type A = NInt, B0>>; + type B = NInt, B0>, B0>>; + type P2 = PInt, B0>>; + + #[allow(non_camel_case_types)] + type N2SubN4 = <>::Output as Same>::Output; + + assert_eq!(::to_i64(), ::to_i64()); +} +#[test] +#[allow(non_snake_case)] +fn test_N2_Mul_N4() { + type A = NInt, B0>>; + type B = NInt, B0>, B0>>; + type P8 = PInt, B0>, B0>, B0>>; + + #[allow(non_camel_case_types)] + type N2MulN4 = <>::Output as Same>::Output; + + assert_eq!(::to_i64(), ::to_i64()); +} +#[test] +#[allow(non_snake_case)] +fn test_N2_Min_N4() { + type A = NInt, B0>>; + type B = NInt, B0>, B0>>; + type N4 = NInt, B0>, B0>>; + + #[allow(non_camel_case_types)] + type N2MinN4 = <>::Output as Same>::Output; + + assert_eq!(::to_i64(), ::to_i64()); +} +#[test] +#[allow(non_snake_case)] +fn test_N2_Max_N4() { + type A = NInt, B0>>; + type B = NInt, B0>, B0>>; + type N2 = NInt, B0>>; + + #[allow(non_camel_case_types)] + type N2MaxN4 = <>::Output as Same>::Output; + + assert_eq!(::to_i64(), ::to_i64()); +} +#[test] +#[allow(non_snake_case)] +fn test_N2_Gcd_N4() { + type A = NInt, B0>>; + type B = NInt, B0>, B0>>; + type P2 = PInt, B0>>; + + #[allow(non_camel_case_types)] + type N2GcdN4 = <>::Output as Same>::Output; + + assert_eq!(::to_i64(), ::to_i64()); +} +#[test] +#[allow(non_snake_case)] +fn test_N2_Div_N4() { + type A = NInt, B0>>; + type B = NInt, B0>, B0>>; + type _0 = Z0; + + #[allow(non_camel_case_types)] + type N2DivN4 = <>::Output as Same<_0>>::Output; + + assert_eq!(::to_i64(), <_0 as Integer>::to_i64()); +} +#[test] +#[allow(non_snake_case)] +fn test_N2_Rem_N4() { + type A = NInt, B0>>; + type B = NInt, B0>, B0>>; + type N2 = NInt, B0>>; + + #[allow(non_camel_case_types)] + type N2RemN4 = <>::Output as Same>::Output; + + assert_eq!(::to_i64(), ::to_i64()); +} +#[test] +#[allow(non_snake_case)] +fn test_N2_Cmp_N4() { + type A = NInt, B0>>; + type B = NInt, B0>, B0>>; + + #[allow(non_camel_case_types)] + type N2CmpN4 = >::Output; + assert_eq!(::to_ordering(), Ordering::Greater); +} +#[test] +#[allow(non_snake_case)] +fn test_N2_Add_N3() { + type A = NInt, B0>>; + type B = NInt, B1>>; + type N5 = NInt, B0>, B1>>; + + #[allow(non_camel_case_types)] + type N2AddN3 = <>::Output as Same>::Output; + + assert_eq!(::to_i64(), ::to_i64()); +} +#[test] +#[allow(non_snake_case)] +fn test_N2_Sub_N3() { + type A = NInt, B0>>; + type B = NInt, B1>>; + type P1 = PInt>; + + #[allow(non_camel_case_types)] + type N2SubN3 = <>::Output as Same>::Output; + + assert_eq!(::to_i64(), ::to_i64()); +} +#[test] +#[allow(non_snake_case)] +fn test_N2_Mul_N3() { + type A = NInt, B0>>; + type B = NInt, B1>>; + type P6 = PInt, B1>, B0>>; + + #[allow(non_camel_case_types)] + type N2MulN3 = <>::Output as Same>::Output; + + assert_eq!(::to_i64(), ::to_i64()); +} +#[test] +#[allow(non_snake_case)] +fn test_N2_Min_N3() { + type A = NInt, B0>>; + type B = NInt, B1>>; + type N3 = NInt, B1>>; + + #[allow(non_camel_case_types)] + type N2MinN3 = <>::Output as Same>::Output; + + assert_eq!(::to_i64(), ::to_i64()); +} +#[test] +#[allow(non_snake_case)] +fn test_N2_Max_N3() { + type A = NInt, B0>>; + type B = NInt, B1>>; + type N2 = NInt, B0>>; + + #[allow(non_camel_case_types)] + type N2MaxN3 = <>::Output as Same>::Output; + + assert_eq!(::to_i64(), ::to_i64()); +} +#[test] +#[allow(non_snake_case)] +fn test_N2_Gcd_N3() { + type A = NInt, B0>>; + type B = NInt, B1>>; + type P1 = PInt>; + + #[allow(non_camel_case_types)] + type N2GcdN3 = <>::Output as Same>::Output; + + assert_eq!(::to_i64(), ::to_i64()); +} +#[test] +#[allow(non_snake_case)] +fn test_N2_Div_N3() { + type A = NInt, B0>>; + type B = NInt, B1>>; + type _0 = Z0; + + #[allow(non_camel_case_types)] + type N2DivN3 = <>::Output as Same<_0>>::Output; + + assert_eq!(::to_i64(), <_0 as Integer>::to_i64()); +} +#[test] +#[allow(non_snake_case)] +fn test_N2_Rem_N3() { + type A = NInt, B0>>; + type B = NInt, B1>>; + type N2 = NInt, B0>>; + + #[allow(non_camel_case_types)] + type N2RemN3 = <>::Output as Same>::Output; + + assert_eq!(::to_i64(), ::to_i64()); +} +#[test] +#[allow(non_snake_case)] +fn test_N2_Cmp_N3() { + type A = NInt, B0>>; + type B = NInt, B1>>; + + #[allow(non_camel_case_types)] + type N2CmpN3 = >::Output; + assert_eq!(::to_ordering(), Ordering::Greater); +} +#[test] +#[allow(non_snake_case)] +fn test_N2_Add_N2() { + type A = NInt, B0>>; + type B = NInt, B0>>; + type N4 = NInt, B0>, B0>>; + + #[allow(non_camel_case_types)] + type N2AddN2 = <>::Output as Same>::Output; + + assert_eq!(::to_i64(), ::to_i64()); +} +#[test] +#[allow(non_snake_case)] +fn test_N2_Sub_N2() { + type A = NInt, B0>>; + type B = NInt, B0>>; + type _0 = Z0; + + #[allow(non_camel_case_types)] + type N2SubN2 = <>::Output as Same<_0>>::Output; + + assert_eq!(::to_i64(), <_0 as Integer>::to_i64()); +} +#[test] +#[allow(non_snake_case)] +fn test_N2_Mul_N2() { + type A = NInt, B0>>; + type B = NInt, B0>>; + type P4 = PInt, B0>, B0>>; + + #[allow(non_camel_case_types)] + type N2MulN2 = <>::Output as Same>::Output; + + assert_eq!(::to_i64(), ::to_i64()); +} +#[test] +#[allow(non_snake_case)] +fn test_N2_Min_N2() { + type A = NInt, B0>>; + type B = NInt, B0>>; + type N2 = NInt, B0>>; + + #[allow(non_camel_case_types)] + type N2MinN2 = <>::Output as Same>::Output; + + assert_eq!(::to_i64(), ::to_i64()); +} +#[test] +#[allow(non_snake_case)] +fn test_N2_Max_N2() { + type A = NInt, B0>>; + type B = NInt, B0>>; + type N2 = NInt, B0>>; + + #[allow(non_camel_case_types)] + type N2MaxN2 = <>::Output as Same>::Output; + + assert_eq!(::to_i64(), ::to_i64()); +} +#[test] +#[allow(non_snake_case)] +fn test_N2_Gcd_N2() { + type A = NInt, B0>>; + type B = NInt, B0>>; + type P2 = PInt, B0>>; + + #[allow(non_camel_case_types)] + type N2GcdN2 = <>::Output as Same>::Output; + + assert_eq!(::to_i64(), ::to_i64()); +} +#[test] +#[allow(non_snake_case)] +fn test_N2_Div_N2() { + type A = NInt, B0>>; + type B = NInt, B0>>; + type P1 = PInt>; + + #[allow(non_camel_case_types)] + type N2DivN2 = <>::Output as Same>::Output; + + assert_eq!(::to_i64(), ::to_i64()); +} +#[test] +#[allow(non_snake_case)] +fn test_N2_Rem_N2() { + type A = NInt, B0>>; + type B = NInt, B0>>; + type _0 = Z0; + + #[allow(non_camel_case_types)] + type N2RemN2 = <>::Output as Same<_0>>::Output; + + assert_eq!(::to_i64(), <_0 as Integer>::to_i64()); +} +#[test] +#[allow(non_snake_case)] +fn test_N2_PartialDiv_N2() { + type A = NInt, B0>>; + type B = NInt, B0>>; + type P1 = PInt>; + + #[allow(non_camel_case_types)] + type N2PartialDivN2 = <>::Output as Same>::Output; + + assert_eq!(::to_i64(), ::to_i64()); +} +#[test] +#[allow(non_snake_case)] +fn test_N2_Cmp_N2() { + type A = NInt, B0>>; + type B = NInt, B0>>; + + #[allow(non_camel_case_types)] + type N2CmpN2 = >::Output; + assert_eq!(::to_ordering(), Ordering::Equal); +} +#[test] +#[allow(non_snake_case)] +fn test_N2_Add_N1() { + type A = NInt, B0>>; + type B = NInt>; + type N3 = NInt, B1>>; + + #[allow(non_camel_case_types)] + type N2AddN1 = <>::Output as Same>::Output; + + assert_eq!(::to_i64(), ::to_i64()); +} +#[test] +#[allow(non_snake_case)] +fn test_N2_Sub_N1() { + type A = NInt, B0>>; + type B = NInt>; + type N1 = NInt>; + + #[allow(non_camel_case_types)] + type N2SubN1 = <>::Output as Same>::Output; + + assert_eq!(::to_i64(), ::to_i64()); +} +#[test] +#[allow(non_snake_case)] +fn test_N2_Mul_N1() { + type A = NInt, B0>>; + type B = NInt>; + type P2 = PInt, B0>>; + + #[allow(non_camel_case_types)] + type N2MulN1 = <>::Output as Same>::Output; + + assert_eq!(::to_i64(), ::to_i64()); +} +#[test] +#[allow(non_snake_case)] +fn test_N2_Min_N1() { + type A = NInt, B0>>; + type B = NInt>; + type N2 = NInt, B0>>; + + #[allow(non_camel_case_types)] + type N2MinN1 = <>::Output as Same>::Output; + + assert_eq!(::to_i64(), ::to_i64()); +} +#[test] +#[allow(non_snake_case)] +fn test_N2_Max_N1() { + type A = NInt, B0>>; + type B = NInt>; + type N1 = NInt>; + + #[allow(non_camel_case_types)] + type N2MaxN1 = <>::Output as Same>::Output; + + assert_eq!(::to_i64(), ::to_i64()); +} +#[test] +#[allow(non_snake_case)] +fn test_N2_Gcd_N1() { + type A = NInt, B0>>; + type B = NInt>; + type P1 = PInt>; + + #[allow(non_camel_case_types)] + type N2GcdN1 = <>::Output as Same>::Output; + + assert_eq!(::to_i64(), ::to_i64()); +} +#[test] +#[allow(non_snake_case)] +fn test_N2_Div_N1() { + type A = NInt, B0>>; + type B = NInt>; + type P2 = PInt, B0>>; + + #[allow(non_camel_case_types)] + type N2DivN1 = <>::Output as Same>::Output; + + assert_eq!(::to_i64(), ::to_i64()); +} +#[test] +#[allow(non_snake_case)] +fn test_N2_Rem_N1() { + type A = NInt, B0>>; + type B = NInt>; + type _0 = Z0; + + #[allow(non_camel_case_types)] + type N2RemN1 = <>::Output as Same<_0>>::Output; + + assert_eq!(::to_i64(), <_0 as Integer>::to_i64()); +} +#[test] +#[allow(non_snake_case)] +fn test_N2_PartialDiv_N1() { + type A = NInt, B0>>; + type B = NInt>; + type P2 = PInt, B0>>; + + #[allow(non_camel_case_types)] + type N2PartialDivN1 = <>::Output as Same>::Output; + + assert_eq!(::to_i64(), ::to_i64()); +} +#[test] +#[allow(non_snake_case)] +fn test_N2_Cmp_N1() { + type A = NInt, B0>>; + type B = NInt>; + + #[allow(non_camel_case_types)] + type N2CmpN1 = >::Output; + assert_eq!(::to_ordering(), Ordering::Less); +} +#[test] +#[allow(non_snake_case)] +fn test_N2_Add__0() { + type A = NInt, B0>>; + type B = Z0; + type N2 = NInt, B0>>; + + #[allow(non_camel_case_types)] + type N2Add_0 = <>::Output as Same>::Output; + + assert_eq!(::to_i64(), ::to_i64()); +} +#[test] +#[allow(non_snake_case)] +fn test_N2_Sub__0() { + type A = NInt, B0>>; + type B = Z0; + type N2 = NInt, B0>>; + + #[allow(non_camel_case_types)] + type N2Sub_0 = <>::Output as Same>::Output; + + assert_eq!(::to_i64(), ::to_i64()); +} +#[test] +#[allow(non_snake_case)] +fn test_N2_Mul__0() { + type A = NInt, B0>>; + type B = Z0; + type _0 = Z0; + + #[allow(non_camel_case_types)] + type N2Mul_0 = <>::Output as Same<_0>>::Output; + + assert_eq!(::to_i64(), <_0 as Integer>::to_i64()); +} +#[test] +#[allow(non_snake_case)] +fn test_N2_Min__0() { + type A = NInt, B0>>; + type B = Z0; + type N2 = NInt, B0>>; + + #[allow(non_camel_case_types)] + type N2Min_0 = <>::Output as Same>::Output; + + assert_eq!(::to_i64(), ::to_i64()); +} +#[test] +#[allow(non_snake_case)] +fn test_N2_Max__0() { + type A = NInt, B0>>; + type B = Z0; + type _0 = Z0; + + #[allow(non_camel_case_types)] + type N2Max_0 = <>::Output as Same<_0>>::Output; + + assert_eq!(::to_i64(), <_0 as Integer>::to_i64()); +} +#[test] +#[allow(non_snake_case)] +fn test_N2_Gcd__0() { + type A = NInt, B0>>; + type B = Z0; + type P2 = PInt, B0>>; + + #[allow(non_camel_case_types)] + type N2Gcd_0 = <>::Output as Same>::Output; + + assert_eq!(::to_i64(), ::to_i64()); +} +#[test] +#[allow(non_snake_case)] +fn test_N2_Pow__0() { + type A = NInt, B0>>; + type B = Z0; + type P1 = PInt>; + + #[allow(non_camel_case_types)] + type N2Pow_0 = <>::Output as Same>::Output; + + assert_eq!(::to_i64(), ::to_i64()); +} +#[test] +#[allow(non_snake_case)] +fn test_N2_Cmp__0() { + type A = NInt, B0>>; + type B = Z0; + + #[allow(non_camel_case_types)] + type N2Cmp_0 = >::Output; + assert_eq!(::to_ordering(), Ordering::Less); +} +#[test] +#[allow(non_snake_case)] +fn test_N2_Add_P1() { + type A = NInt, B0>>; + type B = PInt>; + type N1 = NInt>; + + #[allow(non_camel_case_types)] + type N2AddP1 = <>::Output as Same>::Output; + + assert_eq!(::to_i64(), ::to_i64()); +} +#[test] +#[allow(non_snake_case)] +fn test_N2_Sub_P1() { + type A = NInt, B0>>; + type B = PInt>; + type N3 = NInt, B1>>; + + #[allow(non_camel_case_types)] + type N2SubP1 = <>::Output as Same>::Output; + + assert_eq!(::to_i64(), ::to_i64()); +} +#[test] +#[allow(non_snake_case)] +fn test_N2_Mul_P1() { + type A = NInt, B0>>; + type B = PInt>; + type N2 = NInt, B0>>; + + #[allow(non_camel_case_types)] + type N2MulP1 = <>::Output as Same>::Output; + + assert_eq!(::to_i64(), ::to_i64()); +} +#[test] +#[allow(non_snake_case)] +fn test_N2_Min_P1() { + type A = NInt, B0>>; + type B = PInt>; + type N2 = NInt, B0>>; + + #[allow(non_camel_case_types)] + type N2MinP1 = <>::Output as Same>::Output; + + assert_eq!(::to_i64(), ::to_i64()); +} +#[test] +#[allow(non_snake_case)] +fn test_N2_Max_P1() { + type A = NInt, B0>>; + type B = PInt>; + type P1 = PInt>; + + #[allow(non_camel_case_types)] + type N2MaxP1 = <>::Output as Same>::Output; + + assert_eq!(::to_i64(), ::to_i64()); +} +#[test] +#[allow(non_snake_case)] +fn test_N2_Gcd_P1() { + type A = NInt, B0>>; + type B = PInt>; + type P1 = PInt>; + + #[allow(non_camel_case_types)] + type N2GcdP1 = <>::Output as Same>::Output; + + assert_eq!(::to_i64(), ::to_i64()); +} +#[test] +#[allow(non_snake_case)] +fn test_N2_Div_P1() { + type A = NInt, B0>>; + type B = PInt>; + type N2 = NInt, B0>>; + + #[allow(non_camel_case_types)] + type N2DivP1 = <>::Output as Same>::Output; + + assert_eq!(::to_i64(), ::to_i64()); +} +#[test] +#[allow(non_snake_case)] +fn test_N2_Rem_P1() { + type A = NInt, B0>>; + type B = PInt>; + type _0 = Z0; + + #[allow(non_camel_case_types)] + type N2RemP1 = <>::Output as Same<_0>>::Output; + + assert_eq!(::to_i64(), <_0 as Integer>::to_i64()); +} +#[test] +#[allow(non_snake_case)] +fn test_N2_PartialDiv_P1() { + type A = NInt, B0>>; + type B = PInt>; + type N2 = NInt, B0>>; + + #[allow(non_camel_case_types)] + type N2PartialDivP1 = <>::Output as Same>::Output; + + assert_eq!(::to_i64(), ::to_i64()); +} +#[test] +#[allow(non_snake_case)] +fn test_N2_Pow_P1() { + type A = NInt, B0>>; + type B = PInt>; + type N2 = NInt, B0>>; + + #[allow(non_camel_case_types)] + type N2PowP1 = <>::Output as Same>::Output; + + assert_eq!(::to_i64(), ::to_i64()); +} +#[test] +#[allow(non_snake_case)] +fn test_N2_Cmp_P1() { + type A = NInt, B0>>; + type B = PInt>; + + #[allow(non_camel_case_types)] + type N2CmpP1 = >::Output; + assert_eq!(::to_ordering(), Ordering::Less); +} +#[test] +#[allow(non_snake_case)] +fn test_N2_Add_P2() { + type A = NInt, B0>>; + type B = PInt, B0>>; + type _0 = Z0; + + #[allow(non_camel_case_types)] + type N2AddP2 = <>::Output as Same<_0>>::Output; + + assert_eq!(::to_i64(), <_0 as Integer>::to_i64()); +} +#[test] +#[allow(non_snake_case)] +fn test_N2_Sub_P2() { + type A = NInt, B0>>; + type B = PInt, B0>>; + type N4 = NInt, B0>, B0>>; + + #[allow(non_camel_case_types)] + type N2SubP2 = <>::Output as Same>::Output; + + assert_eq!(::to_i64(), ::to_i64()); +} +#[test] +#[allow(non_snake_case)] +fn test_N2_Mul_P2() { + type A = NInt, B0>>; + type B = PInt, B0>>; + type N4 = NInt, B0>, B0>>; + + #[allow(non_camel_case_types)] + type N2MulP2 = <>::Output as Same>::Output; + + assert_eq!(::to_i64(), ::to_i64()); +} +#[test] +#[allow(non_snake_case)] +fn test_N2_Min_P2() { + type A = NInt, B0>>; + type B = PInt, B0>>; + type N2 = NInt, B0>>; + + #[allow(non_camel_case_types)] + type N2MinP2 = <>::Output as Same>::Output; + + assert_eq!(::to_i64(), ::to_i64()); +} +#[test] +#[allow(non_snake_case)] +fn test_N2_Max_P2() { + type A = NInt, B0>>; + type B = PInt, B0>>; + type P2 = PInt, B0>>; + + #[allow(non_camel_case_types)] + type N2MaxP2 = <>::Output as Same>::Output; + + assert_eq!(::to_i64(), ::to_i64()); +} +#[test] +#[allow(non_snake_case)] +fn test_N2_Gcd_P2() { + type A = NInt, B0>>; + type B = PInt, B0>>; + type P2 = PInt, B0>>; + + #[allow(non_camel_case_types)] + type N2GcdP2 = <>::Output as Same>::Output; + + assert_eq!(::to_i64(), ::to_i64()); +} +#[test] +#[allow(non_snake_case)] +fn test_N2_Div_P2() { + type A = NInt, B0>>; + type B = PInt, B0>>; + type N1 = NInt>; + + #[allow(non_camel_case_types)] + type N2DivP2 = <>::Output as Same>::Output; + + assert_eq!(::to_i64(), ::to_i64()); +} +#[test] +#[allow(non_snake_case)] +fn test_N2_Rem_P2() { + type A = NInt, B0>>; + type B = PInt, B0>>; + type _0 = Z0; + + #[allow(non_camel_case_types)] + type N2RemP2 = <>::Output as Same<_0>>::Output; + + assert_eq!(::to_i64(), <_0 as Integer>::to_i64()); +} +#[test] +#[allow(non_snake_case)] +fn test_N2_PartialDiv_P2() { + type A = NInt, B0>>; + type B = PInt, B0>>; + type N1 = NInt>; + + #[allow(non_camel_case_types)] + type N2PartialDivP2 = <>::Output as Same>::Output; + + assert_eq!(::to_i64(), ::to_i64()); +} +#[test] +#[allow(non_snake_case)] +fn test_N2_Pow_P2() { + type A = NInt, B0>>; + type B = PInt, B0>>; + type P4 = PInt, B0>, B0>>; + + #[allow(non_camel_case_types)] + type N2PowP2 = <>::Output as Same>::Output; + + assert_eq!(::to_i64(), ::to_i64()); +} +#[test] +#[allow(non_snake_case)] +fn test_N2_Cmp_P2() { + type A = NInt, B0>>; + type B = PInt, B0>>; + + #[allow(non_camel_case_types)] + type N2CmpP2 = >::Output; + assert_eq!(::to_ordering(), Ordering::Less); +} +#[test] +#[allow(non_snake_case)] +fn test_N2_Add_P3() { + type A = NInt, B0>>; + type B = PInt, B1>>; + type P1 = PInt>; + + #[allow(non_camel_case_types)] + type N2AddP3 = <>::Output as Same>::Output; + + assert_eq!(::to_i64(), ::to_i64()); +} +#[test] +#[allow(non_snake_case)] +fn test_N2_Sub_P3() { + type A = NInt, B0>>; + type B = PInt, B1>>; + type N5 = NInt, B0>, B1>>; + + #[allow(non_camel_case_types)] + type N2SubP3 = <>::Output as Same>::Output; + + assert_eq!(::to_i64(), ::to_i64()); +} +#[test] +#[allow(non_snake_case)] +fn test_N2_Mul_P3() { + type A = NInt, B0>>; + type B = PInt, B1>>; + type N6 = NInt, B1>, B0>>; + + #[allow(non_camel_case_types)] + type N2MulP3 = <>::Output as Same>::Output; + + assert_eq!(::to_i64(), ::to_i64()); +} +#[test] +#[allow(non_snake_case)] +fn test_N2_Min_P3() { + type A = NInt, B0>>; + type B = PInt, B1>>; + type N2 = NInt, B0>>; + + #[allow(non_camel_case_types)] + type N2MinP3 = <>::Output as Same>::Output; + + assert_eq!(::to_i64(), ::to_i64()); +} +#[test] +#[allow(non_snake_case)] +fn test_N2_Max_P3() { + type A = NInt, B0>>; + type B = PInt, B1>>; + type P3 = PInt, B1>>; + + #[allow(non_camel_case_types)] + type N2MaxP3 = <>::Output as Same>::Output; + + assert_eq!(::to_i64(), ::to_i64()); +} +#[test] +#[allow(non_snake_case)] +fn test_N2_Gcd_P3() { + type A = NInt, B0>>; + type B = PInt, B1>>; + type P1 = PInt>; + + #[allow(non_camel_case_types)] + type N2GcdP3 = <>::Output as Same>::Output; + + assert_eq!(::to_i64(), ::to_i64()); +} +#[test] +#[allow(non_snake_case)] +fn test_N2_Div_P3() { + type A = NInt, B0>>; + type B = PInt, B1>>; + type _0 = Z0; + + #[allow(non_camel_case_types)] + type N2DivP3 = <>::Output as Same<_0>>::Output; + + assert_eq!(::to_i64(), <_0 as Integer>::to_i64()); +} +#[test] +#[allow(non_snake_case)] +fn test_N2_Rem_P3() { + type A = NInt, B0>>; + type B = PInt, B1>>; + type N2 = NInt, B0>>; + + #[allow(non_camel_case_types)] + type N2RemP3 = <>::Output as Same>::Output; + + assert_eq!(::to_i64(), ::to_i64()); +} +#[test] +#[allow(non_snake_case)] +fn test_N2_Pow_P3() { + type A = NInt, B0>>; + type B = PInt, B1>>; + type N8 = NInt, B0>, B0>, B0>>; + + #[allow(non_camel_case_types)] + type N2PowP3 = <>::Output as Same>::Output; + + assert_eq!(::to_i64(), ::to_i64()); +} +#[test] +#[allow(non_snake_case)] +fn test_N2_Cmp_P3() { + type A = NInt, B0>>; + type B = PInt, B1>>; + + #[allow(non_camel_case_types)] + type N2CmpP3 = >::Output; + assert_eq!(::to_ordering(), Ordering::Less); +} +#[test] +#[allow(non_snake_case)] +fn test_N2_Add_P4() { + type A = NInt, B0>>; + type B = PInt, B0>, B0>>; + type P2 = PInt, B0>>; + + #[allow(non_camel_case_types)] + type N2AddP4 = <>::Output as Same>::Output; + + assert_eq!(::to_i64(), ::to_i64()); +} +#[test] +#[allow(non_snake_case)] +fn test_N2_Sub_P4() { + type A = NInt, B0>>; + type B = PInt, B0>, B0>>; + type N6 = NInt, B1>, B0>>; + + #[allow(non_camel_case_types)] + type N2SubP4 = <>::Output as Same>::Output; + + assert_eq!(::to_i64(), ::to_i64()); +} +#[test] +#[allow(non_snake_case)] +fn test_N2_Mul_P4() { + type A = NInt, B0>>; + type B = PInt, B0>, B0>>; + type N8 = NInt, B0>, B0>, B0>>; + + #[allow(non_camel_case_types)] + type N2MulP4 = <>::Output as Same>::Output; + + assert_eq!(::to_i64(), ::to_i64()); +} +#[test] +#[allow(non_snake_case)] +fn test_N2_Min_P4() { + type A = NInt, B0>>; + type B = PInt, B0>, B0>>; + type N2 = NInt, B0>>; + + #[allow(non_camel_case_types)] + type N2MinP4 = <>::Output as Same>::Output; + + assert_eq!(::to_i64(), ::to_i64()); +} +#[test] +#[allow(non_snake_case)] +fn test_N2_Max_P4() { + type A = NInt, B0>>; + type B = PInt, B0>, B0>>; + type P4 = PInt, B0>, B0>>; + + #[allow(non_camel_case_types)] + type N2MaxP4 = <>::Output as Same>::Output; + + assert_eq!(::to_i64(), ::to_i64()); +} +#[test] +#[allow(non_snake_case)] +fn test_N2_Gcd_P4() { + type A = NInt, B0>>; + type B = PInt, B0>, B0>>; + type P2 = PInt, B0>>; + + #[allow(non_camel_case_types)] + type N2GcdP4 = <>::Output as Same>::Output; + + assert_eq!(::to_i64(), ::to_i64()); +} +#[test] +#[allow(non_snake_case)] +fn test_N2_Div_P4() { + type A = NInt, B0>>; + type B = PInt, B0>, B0>>; + type _0 = Z0; + + #[allow(non_camel_case_types)] + type N2DivP4 = <>::Output as Same<_0>>::Output; + + assert_eq!(::to_i64(), <_0 as Integer>::to_i64()); +} +#[test] +#[allow(non_snake_case)] +fn test_N2_Rem_P4() { + type A = NInt, B0>>; + type B = PInt, B0>, B0>>; + type N2 = NInt, B0>>; + + #[allow(non_camel_case_types)] + type N2RemP4 = <>::Output as Same>::Output; + + assert_eq!(::to_i64(), ::to_i64()); +} +#[test] +#[allow(non_snake_case)] +fn test_N2_Pow_P4() { + type A = NInt, B0>>; + type B = PInt, B0>, B0>>; + type P16 = PInt, B0>, B0>, B0>, B0>>; + + #[allow(non_camel_case_types)] + type N2PowP4 = <>::Output as Same>::Output; + + assert_eq!(::to_i64(), ::to_i64()); +} +#[test] +#[allow(non_snake_case)] +fn test_N2_Cmp_P4() { + type A = NInt, B0>>; + type B = PInt, B0>, B0>>; + + #[allow(non_camel_case_types)] + type N2CmpP4 = >::Output; + assert_eq!(::to_ordering(), Ordering::Less); +} +#[test] +#[allow(non_snake_case)] +fn test_N2_Add_P5() { + type A = NInt, B0>>; + type B = PInt, B0>, B1>>; + type P3 = PInt, B1>>; + + #[allow(non_camel_case_types)] + type N2AddP5 = <>::Output as Same>::Output; + + assert_eq!(::to_i64(), ::to_i64()); +} +#[test] +#[allow(non_snake_case)] +fn test_N2_Sub_P5() { + type A = NInt, B0>>; + type B = PInt, B0>, B1>>; + type N7 = NInt, B1>, B1>>; + + #[allow(non_camel_case_types)] + type N2SubP5 = <>::Output as Same>::Output; + + assert_eq!(::to_i64(), ::to_i64()); +} +#[test] +#[allow(non_snake_case)] +fn test_N2_Mul_P5() { + type A = NInt, B0>>; + type B = PInt, B0>, B1>>; + type N10 = NInt, B0>, B1>, B0>>; + + #[allow(non_camel_case_types)] + type N2MulP5 = <>::Output as Same>::Output; + + assert_eq!(::to_i64(), ::to_i64()); +} +#[test] +#[allow(non_snake_case)] +fn test_N2_Min_P5() { + type A = NInt, B0>>; + type B = PInt, B0>, B1>>; + type N2 = NInt, B0>>; + + #[allow(non_camel_case_types)] + type N2MinP5 = <>::Output as Same>::Output; + + assert_eq!(::to_i64(), ::to_i64()); +} +#[test] +#[allow(non_snake_case)] +fn test_N2_Max_P5() { + type A = NInt, B0>>; + type B = PInt, B0>, B1>>; + type P5 = PInt, B0>, B1>>; + + #[allow(non_camel_case_types)] + type N2MaxP5 = <>::Output as Same>::Output; + + assert_eq!(::to_i64(), ::to_i64()); +} +#[test] +#[allow(non_snake_case)] +fn test_N2_Gcd_P5() { + type A = NInt, B0>>; + type B = PInt, B0>, B1>>; + type P1 = PInt>; + + #[allow(non_camel_case_types)] + type N2GcdP5 = <>::Output as Same>::Output; + + assert_eq!(::to_i64(), ::to_i64()); +} +#[test] +#[allow(non_snake_case)] +fn test_N2_Div_P5() { + type A = NInt, B0>>; + type B = PInt, B0>, B1>>; + type _0 = Z0; + + #[allow(non_camel_case_types)] + type N2DivP5 = <>::Output as Same<_0>>::Output; + + assert_eq!(::to_i64(), <_0 as Integer>::to_i64()); +} +#[test] +#[allow(non_snake_case)] +fn test_N2_Rem_P5() { + type A = NInt, B0>>; + type B = PInt, B0>, B1>>; + type N2 = NInt, B0>>; + + #[allow(non_camel_case_types)] + type N2RemP5 = <>::Output as Same>::Output; + + assert_eq!(::to_i64(), ::to_i64()); +} +#[test] +#[allow(non_snake_case)] +fn test_N2_Pow_P5() { + type A = NInt, B0>>; + type B = PInt, B0>, B1>>; + type N32 = NInt, B0>, B0>, B0>, B0>, B0>>; + + #[allow(non_camel_case_types)] + type N2PowP5 = <>::Output as Same>::Output; + + assert_eq!(::to_i64(), ::to_i64()); +} +#[test] +#[allow(non_snake_case)] +fn test_N2_Cmp_P5() { + type A = NInt, B0>>; + type B = PInt, B0>, B1>>; + + #[allow(non_camel_case_types)] + type N2CmpP5 = >::Output; + assert_eq!(::to_ordering(), Ordering::Less); +} +#[test] +#[allow(non_snake_case)] +fn test_N1_Add_N5() { + type A = NInt>; + type B = NInt, B0>, B1>>; + type N6 = NInt, B1>, B0>>; + + #[allow(non_camel_case_types)] + type N1AddN5 = <>::Output as Same>::Output; + + assert_eq!(::to_i64(), ::to_i64()); +} +#[test] +#[allow(non_snake_case)] +fn test_N1_Sub_N5() { + type A = NInt>; + type B = NInt, B0>, B1>>; + type P4 = PInt, B0>, B0>>; + + #[allow(non_camel_case_types)] + type N1SubN5 = <>::Output as Same>::Output; + + assert_eq!(::to_i64(), ::to_i64()); +} +#[test] +#[allow(non_snake_case)] +fn test_N1_Mul_N5() { + type A = NInt>; + type B = NInt, B0>, B1>>; + type P5 = PInt, B0>, B1>>; + + #[allow(non_camel_case_types)] + type N1MulN5 = <>::Output as Same>::Output; + + assert_eq!(::to_i64(), ::to_i64()); +} +#[test] +#[allow(non_snake_case)] +fn test_N1_Min_N5() { + type A = NInt>; + type B = NInt, B0>, B1>>; + type N5 = NInt, B0>, B1>>; + + #[allow(non_camel_case_types)] + type N1MinN5 = <>::Output as Same>::Output; + + assert_eq!(::to_i64(), ::to_i64()); +} +#[test] +#[allow(non_snake_case)] +fn test_N1_Max_N5() { + type A = NInt>; + type B = NInt, B0>, B1>>; + type N1 = NInt>; + + #[allow(non_camel_case_types)] + type N1MaxN5 = <>::Output as Same>::Output; + + assert_eq!(::to_i64(), ::to_i64()); +} +#[test] +#[allow(non_snake_case)] +fn test_N1_Gcd_N5() { + type A = NInt>; + type B = NInt, B0>, B1>>; + type P1 = PInt>; + + #[allow(non_camel_case_types)] + type N1GcdN5 = <>::Output as Same>::Output; + + assert_eq!(::to_i64(), ::to_i64()); +} +#[test] +#[allow(non_snake_case)] +fn test_N1_Div_N5() { + type A = NInt>; + type B = NInt, B0>, B1>>; + type _0 = Z0; + + #[allow(non_camel_case_types)] + type N1DivN5 = <>::Output as Same<_0>>::Output; + + assert_eq!(::to_i64(), <_0 as Integer>::to_i64()); +} +#[test] +#[allow(non_snake_case)] +fn test_N1_Rem_N5() { + type A = NInt>; + type B = NInt, B0>, B1>>; + type N1 = NInt>; + + #[allow(non_camel_case_types)] + type N1RemN5 = <>::Output as Same>::Output; + + assert_eq!(::to_i64(), ::to_i64()); +} +#[test] +#[allow(non_snake_case)] +fn test_N1_Pow_N5() { + type A = NInt>; + type B = NInt, B0>, B1>>; + type N1 = NInt>; + + #[allow(non_camel_case_types)] + type N1PowN5 = <>::Output as Same>::Output; + + assert_eq!(::to_i64(), ::to_i64()); +} +#[test] +#[allow(non_snake_case)] +fn test_N1_Cmp_N5() { + type A = NInt>; + type B = NInt, B0>, B1>>; + + #[allow(non_camel_case_types)] + type N1CmpN5 = >::Output; + assert_eq!(::to_ordering(), Ordering::Greater); +} +#[test] +#[allow(non_snake_case)] +fn test_N1_Add_N4() { + type A = NInt>; + type B = NInt, B0>, B0>>; + type N5 = NInt, B0>, B1>>; + + #[allow(non_camel_case_types)] + type N1AddN4 = <>::Output as Same>::Output; + + assert_eq!(::to_i64(), ::to_i64()); +} +#[test] +#[allow(non_snake_case)] +fn test_N1_Sub_N4() { + type A = NInt>; + type B = NInt, B0>, B0>>; + type P3 = PInt, B1>>; + + #[allow(non_camel_case_types)] + type N1SubN4 = <>::Output as Same>::Output; + + assert_eq!(::to_i64(), ::to_i64()); +} +#[test] +#[allow(non_snake_case)] +fn test_N1_Mul_N4() { + type A = NInt>; + type B = NInt, B0>, B0>>; + type P4 = PInt, B0>, B0>>; + + #[allow(non_camel_case_types)] + type N1MulN4 = <>::Output as Same>::Output; + + assert_eq!(::to_i64(), ::to_i64()); +} +#[test] +#[allow(non_snake_case)] +fn test_N1_Min_N4() { + type A = NInt>; + type B = NInt, B0>, B0>>; + type N4 = NInt, B0>, B0>>; + + #[allow(non_camel_case_types)] + type N1MinN4 = <>::Output as Same>::Output; + + assert_eq!(::to_i64(), ::to_i64()); +} +#[test] +#[allow(non_snake_case)] +fn test_N1_Max_N4() { + type A = NInt>; + type B = NInt, B0>, B0>>; + type N1 = NInt>; + + #[allow(non_camel_case_types)] + type N1MaxN4 = <>::Output as Same>::Output; + + assert_eq!(::to_i64(), ::to_i64()); +} +#[test] +#[allow(non_snake_case)] +fn test_N1_Gcd_N4() { + type A = NInt>; + type B = NInt, B0>, B0>>; + type P1 = PInt>; + + #[allow(non_camel_case_types)] + type N1GcdN4 = <>::Output as Same>::Output; + + assert_eq!(::to_i64(), ::to_i64()); +} +#[test] +#[allow(non_snake_case)] +fn test_N1_Div_N4() { + type A = NInt>; + type B = NInt, B0>, B0>>; + type _0 = Z0; + + #[allow(non_camel_case_types)] + type N1DivN4 = <>::Output as Same<_0>>::Output; + + assert_eq!(::to_i64(), <_0 as Integer>::to_i64()); +} +#[test] +#[allow(non_snake_case)] +fn test_N1_Rem_N4() { + type A = NInt>; + type B = NInt, B0>, B0>>; + type N1 = NInt>; + + #[allow(non_camel_case_types)] + type N1RemN4 = <>::Output as Same>::Output; + + assert_eq!(::to_i64(), ::to_i64()); +} +#[test] +#[allow(non_snake_case)] +fn test_N1_Pow_N4() { + type A = NInt>; + type B = NInt, B0>, B0>>; + type P1 = PInt>; + + #[allow(non_camel_case_types)] + type N1PowN4 = <>::Output as Same>::Output; + + assert_eq!(::to_i64(), ::to_i64()); +} +#[test] +#[allow(non_snake_case)] +fn test_N1_Cmp_N4() { + type A = NInt>; + type B = NInt, B0>, B0>>; + + #[allow(non_camel_case_types)] + type N1CmpN4 = >::Output; + assert_eq!(::to_ordering(), Ordering::Greater); +} +#[test] +#[allow(non_snake_case)] +fn test_N1_Add_N3() { + type A = NInt>; + type B = NInt, B1>>; + type N4 = NInt, B0>, B0>>; + + #[allow(non_camel_case_types)] + type N1AddN3 = <>::Output as Same>::Output; + + assert_eq!(::to_i64(), ::to_i64()); +} +#[test] +#[allow(non_snake_case)] +fn test_N1_Sub_N3() { + type A = NInt>; + type B = NInt, B1>>; + type P2 = PInt, B0>>; + + #[allow(non_camel_case_types)] + type N1SubN3 = <>::Output as Same>::Output; + + assert_eq!(::to_i64(), ::to_i64()); +} +#[test] +#[allow(non_snake_case)] +fn test_N1_Mul_N3() { + type A = NInt>; + type B = NInt, B1>>; + type P3 = PInt, B1>>; + + #[allow(non_camel_case_types)] + type N1MulN3 = <>::Output as Same>::Output; + + assert_eq!(::to_i64(), ::to_i64()); +} +#[test] +#[allow(non_snake_case)] +fn test_N1_Min_N3() { + type A = NInt>; + type B = NInt, B1>>; + type N3 = NInt, B1>>; + + #[allow(non_camel_case_types)] + type N1MinN3 = <>::Output as Same>::Output; + + assert_eq!(::to_i64(), ::to_i64()); +} +#[test] +#[allow(non_snake_case)] +fn test_N1_Max_N3() { + type A = NInt>; + type B = NInt, B1>>; + type N1 = NInt>; + + #[allow(non_camel_case_types)] + type N1MaxN3 = <>::Output as Same>::Output; + + assert_eq!(::to_i64(), ::to_i64()); +} +#[test] +#[allow(non_snake_case)] +fn test_N1_Gcd_N3() { + type A = NInt>; + type B = NInt, B1>>; + type P1 = PInt>; + + #[allow(non_camel_case_types)] + type N1GcdN3 = <>::Output as Same>::Output; + + assert_eq!(::to_i64(), ::to_i64()); +} +#[test] +#[allow(non_snake_case)] +fn test_N1_Div_N3() { + type A = NInt>; + type B = NInt, B1>>; + type _0 = Z0; + + #[allow(non_camel_case_types)] + type N1DivN3 = <>::Output as Same<_0>>::Output; + + assert_eq!(::to_i64(), <_0 as Integer>::to_i64()); +} +#[test] +#[allow(non_snake_case)] +fn test_N1_Rem_N3() { + type A = NInt>; + type B = NInt, B1>>; + type N1 = NInt>; + + #[allow(non_camel_case_types)] + type N1RemN3 = <>::Output as Same>::Output; + + assert_eq!(::to_i64(), ::to_i64()); +} +#[test] +#[allow(non_snake_case)] +fn test_N1_Pow_N3() { + type A = NInt>; + type B = NInt, B1>>; + type N1 = NInt>; + + #[allow(non_camel_case_types)] + type N1PowN3 = <>::Output as Same>::Output; + + assert_eq!(::to_i64(), ::to_i64()); +} +#[test] +#[allow(non_snake_case)] +fn test_N1_Cmp_N3() { + type A = NInt>; + type B = NInt, B1>>; + + #[allow(non_camel_case_types)] + type N1CmpN3 = >::Output; + assert_eq!(::to_ordering(), Ordering::Greater); +} +#[test] +#[allow(non_snake_case)] +fn test_N1_Add_N2() { + type A = NInt>; + type B = NInt, B0>>; + type N3 = NInt, B1>>; + + #[allow(non_camel_case_types)] + type N1AddN2 = <>::Output as Same>::Output; + + assert_eq!(::to_i64(), ::to_i64()); +} +#[test] +#[allow(non_snake_case)] +fn test_N1_Sub_N2() { + type A = NInt>; + type B = NInt, B0>>; + type P1 = PInt>; + + #[allow(non_camel_case_types)] + type N1SubN2 = <>::Output as Same>::Output; + + assert_eq!(::to_i64(), ::to_i64()); +} +#[test] +#[allow(non_snake_case)] +fn test_N1_Mul_N2() { + type A = NInt>; + type B = NInt, B0>>; + type P2 = PInt, B0>>; + + #[allow(non_camel_case_types)] + type N1MulN2 = <>::Output as Same>::Output; + + assert_eq!(::to_i64(), ::to_i64()); +} +#[test] +#[allow(non_snake_case)] +fn test_N1_Min_N2() { + type A = NInt>; + type B = NInt, B0>>; + type N2 = NInt, B0>>; + + #[allow(non_camel_case_types)] + type N1MinN2 = <>::Output as Same>::Output; + + assert_eq!(::to_i64(), ::to_i64()); +} +#[test] +#[allow(non_snake_case)] +fn test_N1_Max_N2() { + type A = NInt>; + type B = NInt, B0>>; + type N1 = NInt>; + + #[allow(non_camel_case_types)] + type N1MaxN2 = <>::Output as Same>::Output; + + assert_eq!(::to_i64(), ::to_i64()); +} +#[test] +#[allow(non_snake_case)] +fn test_N1_Gcd_N2() { + type A = NInt>; + type B = NInt, B0>>; + type P1 = PInt>; + + #[allow(non_camel_case_types)] + type N1GcdN2 = <>::Output as Same>::Output; + + assert_eq!(::to_i64(), ::to_i64()); +} +#[test] +#[allow(non_snake_case)] +fn test_N1_Div_N2() { + type A = NInt>; + type B = NInt, B0>>; + type _0 = Z0; + + #[allow(non_camel_case_types)] + type N1DivN2 = <>::Output as Same<_0>>::Output; + + assert_eq!(::to_i64(), <_0 as Integer>::to_i64()); +} +#[test] +#[allow(non_snake_case)] +fn test_N1_Rem_N2() { + type A = NInt>; + type B = NInt, B0>>; + type N1 = NInt>; + + #[allow(non_camel_case_types)] + type N1RemN2 = <>::Output as Same>::Output; + + assert_eq!(::to_i64(), ::to_i64()); +} +#[test] +#[allow(non_snake_case)] +fn test_N1_Pow_N2() { + type A = NInt>; + type B = NInt, B0>>; + type P1 = PInt>; + + #[allow(non_camel_case_types)] + type N1PowN2 = <>::Output as Same>::Output; + + assert_eq!(::to_i64(), ::to_i64()); +} +#[test] +#[allow(non_snake_case)] +fn test_N1_Cmp_N2() { + type A = NInt>; + type B = NInt, B0>>; + + #[allow(non_camel_case_types)] + type N1CmpN2 = >::Output; + assert_eq!(::to_ordering(), Ordering::Greater); +} +#[test] +#[allow(non_snake_case)] +fn test_N1_Add_N1() { + type A = NInt>; + type B = NInt>; + type N2 = NInt, B0>>; + + #[allow(non_camel_case_types)] + type N1AddN1 = <>::Output as Same>::Output; + + assert_eq!(::to_i64(), ::to_i64()); +} +#[test] +#[allow(non_snake_case)] +fn test_N1_Sub_N1() { + type A = NInt>; + type B = NInt>; + type _0 = Z0; + + #[allow(non_camel_case_types)] + type N1SubN1 = <>::Output as Same<_0>>::Output; + + assert_eq!(::to_i64(), <_0 as Integer>::to_i64()); +} +#[test] +#[allow(non_snake_case)] +fn test_N1_Mul_N1() { + type A = NInt>; + type B = NInt>; + type P1 = PInt>; + + #[allow(non_camel_case_types)] + type N1MulN1 = <>::Output as Same>::Output; + + assert_eq!(::to_i64(), ::to_i64()); +} +#[test] +#[allow(non_snake_case)] +fn test_N1_Min_N1() { + type A = NInt>; + type B = NInt>; + type N1 = NInt>; + + #[allow(non_camel_case_types)] + type N1MinN1 = <>::Output as Same>::Output; + + assert_eq!(::to_i64(), ::to_i64()); +} +#[test] +#[allow(non_snake_case)] +fn test_N1_Max_N1() { + type A = NInt>; + type B = NInt>; + type N1 = NInt>; + + #[allow(non_camel_case_types)] + type N1MaxN1 = <>::Output as Same>::Output; + + assert_eq!(::to_i64(), ::to_i64()); +} +#[test] +#[allow(non_snake_case)] +fn test_N1_Gcd_N1() { + type A = NInt>; + type B = NInt>; + type P1 = PInt>; + + #[allow(non_camel_case_types)] + type N1GcdN1 = <>::Output as Same>::Output; + + assert_eq!(::to_i64(), ::to_i64()); +} +#[test] +#[allow(non_snake_case)] +fn test_N1_Div_N1() { + type A = NInt>; + type B = NInt>; + type P1 = PInt>; + + #[allow(non_camel_case_types)] + type N1DivN1 = <>::Output as Same>::Output; + + assert_eq!(::to_i64(), ::to_i64()); +} +#[test] +#[allow(non_snake_case)] +fn test_N1_Rem_N1() { + type A = NInt>; + type B = NInt>; + type _0 = Z0; + + #[allow(non_camel_case_types)] + type N1RemN1 = <>::Output as Same<_0>>::Output; + + assert_eq!(::to_i64(), <_0 as Integer>::to_i64()); +} +#[test] +#[allow(non_snake_case)] +fn test_N1_PartialDiv_N1() { + type A = NInt>; + type B = NInt>; + type P1 = PInt>; + + #[allow(non_camel_case_types)] + type N1PartialDivN1 = <>::Output as Same>::Output; + + assert_eq!(::to_i64(), ::to_i64()); +} +#[test] +#[allow(non_snake_case)] +fn test_N1_Pow_N1() { + type A = NInt>; + type B = NInt>; + type N1 = NInt>; + + #[allow(non_camel_case_types)] + type N1PowN1 = <>::Output as Same>::Output; + + assert_eq!(::to_i64(), ::to_i64()); +} +#[test] +#[allow(non_snake_case)] +fn test_N1_Cmp_N1() { + type A = NInt>; + type B = NInt>; + + #[allow(non_camel_case_types)] + type N1CmpN1 = >::Output; + assert_eq!(::to_ordering(), Ordering::Equal); +} +#[test] +#[allow(non_snake_case)] +fn test_N1_Add__0() { + type A = NInt>; + type B = Z0; + type N1 = NInt>; + + #[allow(non_camel_case_types)] + type N1Add_0 = <>::Output as Same>::Output; + + assert_eq!(::to_i64(), ::to_i64()); +} +#[test] +#[allow(non_snake_case)] +fn test_N1_Sub__0() { + type A = NInt>; + type B = Z0; + type N1 = NInt>; + + #[allow(non_camel_case_types)] + type N1Sub_0 = <>::Output as Same>::Output; + + assert_eq!(::to_i64(), ::to_i64()); +} +#[test] +#[allow(non_snake_case)] +fn test_N1_Mul__0() { + type A = NInt>; + type B = Z0; + type _0 = Z0; + + #[allow(non_camel_case_types)] + type N1Mul_0 = <>::Output as Same<_0>>::Output; + + assert_eq!(::to_i64(), <_0 as Integer>::to_i64()); +} +#[test] +#[allow(non_snake_case)] +fn test_N1_Min__0() { + type A = NInt>; + type B = Z0; + type N1 = NInt>; + + #[allow(non_camel_case_types)] + type N1Min_0 = <>::Output as Same>::Output; + + assert_eq!(::to_i64(), ::to_i64()); +} +#[test] +#[allow(non_snake_case)] +fn test_N1_Max__0() { + type A = NInt>; + type B = Z0; + type _0 = Z0; + + #[allow(non_camel_case_types)] + type N1Max_0 = <>::Output as Same<_0>>::Output; + + assert_eq!(::to_i64(), <_0 as Integer>::to_i64()); +} +#[test] +#[allow(non_snake_case)] +fn test_N1_Gcd__0() { + type A = NInt>; + type B = Z0; + type P1 = PInt>; + + #[allow(non_camel_case_types)] + type N1Gcd_0 = <>::Output as Same>::Output; + + assert_eq!(::to_i64(), ::to_i64()); +} +#[test] +#[allow(non_snake_case)] +fn test_N1_Pow__0() { + type A = NInt>; + type B = Z0; + type P1 = PInt>; + + #[allow(non_camel_case_types)] + type N1Pow_0 = <>::Output as Same>::Output; + + assert_eq!(::to_i64(), ::to_i64()); +} +#[test] +#[allow(non_snake_case)] +fn test_N1_Cmp__0() { + type A = NInt>; + type B = Z0; + + #[allow(non_camel_case_types)] + type N1Cmp_0 = >::Output; + assert_eq!(::to_ordering(), Ordering::Less); +} +#[test] +#[allow(non_snake_case)] +fn test_N1_Add_P1() { + type A = NInt>; + type B = PInt>; + type _0 = Z0; + + #[allow(non_camel_case_types)] + type N1AddP1 = <>::Output as Same<_0>>::Output; + + assert_eq!(::to_i64(), <_0 as Integer>::to_i64()); +} +#[test] +#[allow(non_snake_case)] +fn test_N1_Sub_P1() { + type A = NInt>; + type B = PInt>; + type N2 = NInt, B0>>; + + #[allow(non_camel_case_types)] + type N1SubP1 = <>::Output as Same>::Output; + + assert_eq!(::to_i64(), ::to_i64()); +} +#[test] +#[allow(non_snake_case)] +fn test_N1_Mul_P1() { + type A = NInt>; + type B = PInt>; + type N1 = NInt>; + + #[allow(non_camel_case_types)] + type N1MulP1 = <>::Output as Same>::Output; + + assert_eq!(::to_i64(), ::to_i64()); +} +#[test] +#[allow(non_snake_case)] +fn test_N1_Min_P1() { + type A = NInt>; + type B = PInt>; + type N1 = NInt>; + + #[allow(non_camel_case_types)] + type N1MinP1 = <>::Output as Same>::Output; + + assert_eq!(::to_i64(), ::to_i64()); +} +#[test] +#[allow(non_snake_case)] +fn test_N1_Max_P1() { + type A = NInt>; + type B = PInt>; + type P1 = PInt>; + + #[allow(non_camel_case_types)] + type N1MaxP1 = <>::Output as Same>::Output; + + assert_eq!(::to_i64(), ::to_i64()); +} +#[test] +#[allow(non_snake_case)] +fn test_N1_Gcd_P1() { + type A = NInt>; + type B = PInt>; + type P1 = PInt>; + + #[allow(non_camel_case_types)] + type N1GcdP1 = <>::Output as Same>::Output; + + assert_eq!(::to_i64(), ::to_i64()); +} +#[test] +#[allow(non_snake_case)] +fn test_N1_Div_P1() { + type A = NInt>; + type B = PInt>; + type N1 = NInt>; + + #[allow(non_camel_case_types)] + type N1DivP1 = <>::Output as Same>::Output; + + assert_eq!(::to_i64(), ::to_i64()); +} +#[test] +#[allow(non_snake_case)] +fn test_N1_Rem_P1() { + type A = NInt>; + type B = PInt>; + type _0 = Z0; + + #[allow(non_camel_case_types)] + type N1RemP1 = <>::Output as Same<_0>>::Output; + + assert_eq!(::to_i64(), <_0 as Integer>::to_i64()); +} +#[test] +#[allow(non_snake_case)] +fn test_N1_PartialDiv_P1() { + type A = NInt>; + type B = PInt>; + type N1 = NInt>; + + #[allow(non_camel_case_types)] + type N1PartialDivP1 = <>::Output as Same>::Output; + + assert_eq!(::to_i64(), ::to_i64()); +} +#[test] +#[allow(non_snake_case)] +fn test_N1_Pow_P1() { + type A = NInt>; + type B = PInt>; + type N1 = NInt>; + + #[allow(non_camel_case_types)] + type N1PowP1 = <>::Output as Same>::Output; + + assert_eq!(::to_i64(), ::to_i64()); +} +#[test] +#[allow(non_snake_case)] +fn test_N1_Cmp_P1() { + type A = NInt>; + type B = PInt>; + + #[allow(non_camel_case_types)] + type N1CmpP1 = >::Output; + assert_eq!(::to_ordering(), Ordering::Less); +} +#[test] +#[allow(non_snake_case)] +fn test_N1_Add_P2() { + type A = NInt>; + type B = PInt, B0>>; + type P1 = PInt>; + + #[allow(non_camel_case_types)] + type N1AddP2 = <>::Output as Same>::Output; + + assert_eq!(::to_i64(), ::to_i64()); +} +#[test] +#[allow(non_snake_case)] +fn test_N1_Sub_P2() { + type A = NInt>; + type B = PInt, B0>>; + type N3 = NInt, B1>>; + + #[allow(non_camel_case_types)] + type N1SubP2 = <>::Output as Same>::Output; + + assert_eq!(::to_i64(), ::to_i64()); +} +#[test] +#[allow(non_snake_case)] +fn test_N1_Mul_P2() { + type A = NInt>; + type B = PInt, B0>>; + type N2 = NInt, B0>>; + + #[allow(non_camel_case_types)] + type N1MulP2 = <>::Output as Same>::Output; + + assert_eq!(::to_i64(), ::to_i64()); +} +#[test] +#[allow(non_snake_case)] +fn test_N1_Min_P2() { + type A = NInt>; + type B = PInt, B0>>; + type N1 = NInt>; + + #[allow(non_camel_case_types)] + type N1MinP2 = <>::Output as Same>::Output; + + assert_eq!(::to_i64(), ::to_i64()); +} +#[test] +#[allow(non_snake_case)] +fn test_N1_Max_P2() { + type A = NInt>; + type B = PInt, B0>>; + type P2 = PInt, B0>>; + + #[allow(non_camel_case_types)] + type N1MaxP2 = <>::Output as Same>::Output; + + assert_eq!(::to_i64(), ::to_i64()); +} +#[test] +#[allow(non_snake_case)] +fn test_N1_Gcd_P2() { + type A = NInt>; + type B = PInt, B0>>; + type P1 = PInt>; + + #[allow(non_camel_case_types)] + type N1GcdP2 = <>::Output as Same>::Output; + + assert_eq!(::to_i64(), ::to_i64()); +} +#[test] +#[allow(non_snake_case)] +fn test_N1_Div_P2() { + type A = NInt>; + type B = PInt, B0>>; + type _0 = Z0; + + #[allow(non_camel_case_types)] + type N1DivP2 = <>::Output as Same<_0>>::Output; + + assert_eq!(::to_i64(), <_0 as Integer>::to_i64()); +} +#[test] +#[allow(non_snake_case)] +fn test_N1_Rem_P2() { + type A = NInt>; + type B = PInt, B0>>; + type N1 = NInt>; + + #[allow(non_camel_case_types)] + type N1RemP2 = <>::Output as Same>::Output; + + assert_eq!(::to_i64(), ::to_i64()); +} +#[test] +#[allow(non_snake_case)] +fn test_N1_Pow_P2() { + type A = NInt>; + type B = PInt, B0>>; + type P1 = PInt>; + + #[allow(non_camel_case_types)] + type N1PowP2 = <>::Output as Same>::Output; + + assert_eq!(::to_i64(), ::to_i64()); +} +#[test] +#[allow(non_snake_case)] +fn test_N1_Cmp_P2() { + type A = NInt>; + type B = PInt, B0>>; + + #[allow(non_camel_case_types)] + type N1CmpP2 = >::Output; + assert_eq!(::to_ordering(), Ordering::Less); +} +#[test] +#[allow(non_snake_case)] +fn test_N1_Add_P3() { + type A = NInt>; + type B = PInt, B1>>; + type P2 = PInt, B0>>; + + #[allow(non_camel_case_types)] + type N1AddP3 = <>::Output as Same>::Output; + + assert_eq!(::to_i64(), ::to_i64()); +} +#[test] +#[allow(non_snake_case)] +fn test_N1_Sub_P3() { + type A = NInt>; + type B = PInt, B1>>; + type N4 = NInt, B0>, B0>>; + + #[allow(non_camel_case_types)] + type N1SubP3 = <>::Output as Same>::Output; + + assert_eq!(::to_i64(), ::to_i64()); +} +#[test] +#[allow(non_snake_case)] +fn test_N1_Mul_P3() { + type A = NInt>; + type B = PInt, B1>>; + type N3 = NInt, B1>>; + + #[allow(non_camel_case_types)] + type N1MulP3 = <>::Output as Same>::Output; + + assert_eq!(::to_i64(), ::to_i64()); +} +#[test] +#[allow(non_snake_case)] +fn test_N1_Min_P3() { + type A = NInt>; + type B = PInt, B1>>; + type N1 = NInt>; + + #[allow(non_camel_case_types)] + type N1MinP3 = <>::Output as Same>::Output; + + assert_eq!(::to_i64(), ::to_i64()); +} +#[test] +#[allow(non_snake_case)] +fn test_N1_Max_P3() { + type A = NInt>; + type B = PInt, B1>>; + type P3 = PInt, B1>>; + + #[allow(non_camel_case_types)] + type N1MaxP3 = <>::Output as Same>::Output; + + assert_eq!(::to_i64(), ::to_i64()); +} +#[test] +#[allow(non_snake_case)] +fn test_N1_Gcd_P3() { + type A = NInt>; + type B = PInt, B1>>; + type P1 = PInt>; + + #[allow(non_camel_case_types)] + type N1GcdP3 = <>::Output as Same>::Output; + + assert_eq!(::to_i64(), ::to_i64()); +} +#[test] +#[allow(non_snake_case)] +fn test_N1_Div_P3() { + type A = NInt>; + type B = PInt, B1>>; + type _0 = Z0; + + #[allow(non_camel_case_types)] + type N1DivP3 = <>::Output as Same<_0>>::Output; + + assert_eq!(::to_i64(), <_0 as Integer>::to_i64()); +} +#[test] +#[allow(non_snake_case)] +fn test_N1_Rem_P3() { + type A = NInt>; + type B = PInt, B1>>; + type N1 = NInt>; + + #[allow(non_camel_case_types)] + type N1RemP3 = <>::Output as Same>::Output; + + assert_eq!(::to_i64(), ::to_i64()); +} +#[test] +#[allow(non_snake_case)] +fn test_N1_Pow_P3() { + type A = NInt>; + type B = PInt, B1>>; + type N1 = NInt>; + + #[allow(non_camel_case_types)] + type N1PowP3 = <>::Output as Same>::Output; + + assert_eq!(::to_i64(), ::to_i64()); +} +#[test] +#[allow(non_snake_case)] +fn test_N1_Cmp_P3() { + type A = NInt>; + type B = PInt, B1>>; + + #[allow(non_camel_case_types)] + type N1CmpP3 = >::Output; + assert_eq!(::to_ordering(), Ordering::Less); +} +#[test] +#[allow(non_snake_case)] +fn test_N1_Add_P4() { + type A = NInt>; + type B = PInt, B0>, B0>>; + type P3 = PInt, B1>>; + + #[allow(non_camel_case_types)] + type N1AddP4 = <>::Output as Same>::Output; + + assert_eq!(::to_i64(), ::to_i64()); +} +#[test] +#[allow(non_snake_case)] +fn test_N1_Sub_P4() { + type A = NInt>; + type B = PInt, B0>, B0>>; + type N5 = NInt, B0>, B1>>; + + #[allow(non_camel_case_types)] + type N1SubP4 = <>::Output as Same>::Output; + + assert_eq!(::to_i64(), ::to_i64()); +} +#[test] +#[allow(non_snake_case)] +fn test_N1_Mul_P4() { + type A = NInt>; + type B = PInt, B0>, B0>>; + type N4 = NInt, B0>, B0>>; + + #[allow(non_camel_case_types)] + type N1MulP4 = <>::Output as Same>::Output; + + assert_eq!(::to_i64(), ::to_i64()); +} +#[test] +#[allow(non_snake_case)] +fn test_N1_Min_P4() { + type A = NInt>; + type B = PInt, B0>, B0>>; + type N1 = NInt>; + + #[allow(non_camel_case_types)] + type N1MinP4 = <>::Output as Same>::Output; + + assert_eq!(::to_i64(), ::to_i64()); +} +#[test] +#[allow(non_snake_case)] +fn test_N1_Max_P4() { + type A = NInt>; + type B = PInt, B0>, B0>>; + type P4 = PInt, B0>, B0>>; + + #[allow(non_camel_case_types)] + type N1MaxP4 = <>::Output as Same>::Output; + + assert_eq!(::to_i64(), ::to_i64()); +} +#[test] +#[allow(non_snake_case)] +fn test_N1_Gcd_P4() { + type A = NInt>; + type B = PInt, B0>, B0>>; + type P1 = PInt>; + + #[allow(non_camel_case_types)] + type N1GcdP4 = <>::Output as Same>::Output; + + assert_eq!(::to_i64(), ::to_i64()); +} +#[test] +#[allow(non_snake_case)] +fn test_N1_Div_P4() { + type A = NInt>; + type B = PInt, B0>, B0>>; + type _0 = Z0; + + #[allow(non_camel_case_types)] + type N1DivP4 = <>::Output as Same<_0>>::Output; + + assert_eq!(::to_i64(), <_0 as Integer>::to_i64()); +} +#[test] +#[allow(non_snake_case)] +fn test_N1_Rem_P4() { + type A = NInt>; + type B = PInt, B0>, B0>>; + type N1 = NInt>; + + #[allow(non_camel_case_types)] + type N1RemP4 = <>::Output as Same>::Output; + + assert_eq!(::to_i64(), ::to_i64()); +} +#[test] +#[allow(non_snake_case)] +fn test_N1_Pow_P4() { + type A = NInt>; + type B = PInt, B0>, B0>>; + type P1 = PInt>; + + #[allow(non_camel_case_types)] + type N1PowP4 = <>::Output as Same>::Output; + + assert_eq!(::to_i64(), ::to_i64()); +} +#[test] +#[allow(non_snake_case)] +fn test_N1_Cmp_P4() { + type A = NInt>; + type B = PInt, B0>, B0>>; + + #[allow(non_camel_case_types)] + type N1CmpP4 = >::Output; + assert_eq!(::to_ordering(), Ordering::Less); +} +#[test] +#[allow(non_snake_case)] +fn test_N1_Add_P5() { + type A = NInt>; + type B = PInt, B0>, B1>>; + type P4 = PInt, B0>, B0>>; + + #[allow(non_camel_case_types)] + type N1AddP5 = <>::Output as Same>::Output; + + assert_eq!(::to_i64(), ::to_i64()); +} +#[test] +#[allow(non_snake_case)] +fn test_N1_Sub_P5() { + type A = NInt>; + type B = PInt, B0>, B1>>; + type N6 = NInt, B1>, B0>>; + + #[allow(non_camel_case_types)] + type N1SubP5 = <>::Output as Same>::Output; + + assert_eq!(::to_i64(), ::to_i64()); +} +#[test] +#[allow(non_snake_case)] +fn test_N1_Mul_P5() { + type A = NInt>; + type B = PInt, B0>, B1>>; + type N5 = NInt, B0>, B1>>; + + #[allow(non_camel_case_types)] + type N1MulP5 = <>::Output as Same>::Output; + + assert_eq!(::to_i64(), ::to_i64()); +} +#[test] +#[allow(non_snake_case)] +fn test_N1_Min_P5() { + type A = NInt>; + type B = PInt, B0>, B1>>; + type N1 = NInt>; + + #[allow(non_camel_case_types)] + type N1MinP5 = <>::Output as Same>::Output; + + assert_eq!(::to_i64(), ::to_i64()); +} +#[test] +#[allow(non_snake_case)] +fn test_N1_Max_P5() { + type A = NInt>; + type B = PInt, B0>, B1>>; + type P5 = PInt, B0>, B1>>; + + #[allow(non_camel_case_types)] + type N1MaxP5 = <>::Output as Same>::Output; + + assert_eq!(::to_i64(), ::to_i64()); +} +#[test] +#[allow(non_snake_case)] +fn test_N1_Gcd_P5() { + type A = NInt>; + type B = PInt, B0>, B1>>; + type P1 = PInt>; + + #[allow(non_camel_case_types)] + type N1GcdP5 = <>::Output as Same>::Output; + + assert_eq!(::to_i64(), ::to_i64()); +} +#[test] +#[allow(non_snake_case)] +fn test_N1_Div_P5() { + type A = NInt>; + type B = PInt, B0>, B1>>; + type _0 = Z0; + + #[allow(non_camel_case_types)] + type N1DivP5 = <>::Output as Same<_0>>::Output; + + assert_eq!(::to_i64(), <_0 as Integer>::to_i64()); +} +#[test] +#[allow(non_snake_case)] +fn test_N1_Rem_P5() { + type A = NInt>; + type B = PInt, B0>, B1>>; + type N1 = NInt>; + + #[allow(non_camel_case_types)] + type N1RemP5 = <>::Output as Same>::Output; + + assert_eq!(::to_i64(), ::to_i64()); +} +#[test] +#[allow(non_snake_case)] +fn test_N1_Pow_P5() { + type A = NInt>; + type B = PInt, B0>, B1>>; + type N1 = NInt>; + + #[allow(non_camel_case_types)] + type N1PowP5 = <>::Output as Same>::Output; + + assert_eq!(::to_i64(), ::to_i64()); +} +#[test] +#[allow(non_snake_case)] +fn test_N1_Cmp_P5() { + type A = NInt>; + type B = PInt, B0>, B1>>; + + #[allow(non_camel_case_types)] + type N1CmpP5 = >::Output; + assert_eq!(::to_ordering(), Ordering::Less); +} +#[test] +#[allow(non_snake_case)] +fn test__0_Add_N5() { + type A = Z0; + type B = NInt, B0>, B1>>; + type N5 = NInt, B0>, B1>>; + + #[allow(non_camel_case_types)] + type _0AddN5 = <>::Output as Same>::Output; + + assert_eq!(<_0AddN5 as Integer>::to_i64(), ::to_i64()); +} +#[test] +#[allow(non_snake_case)] +fn test__0_Sub_N5() { + type A = Z0; + type B = NInt, B0>, B1>>; + type P5 = PInt, B0>, B1>>; + + #[allow(non_camel_case_types)] + type _0SubN5 = <>::Output as Same>::Output; + + assert_eq!(<_0SubN5 as Integer>::to_i64(), ::to_i64()); +} +#[test] +#[allow(non_snake_case)] +fn test__0_Mul_N5() { + type A = Z0; + type B = NInt, B0>, B1>>; + type _0 = Z0; + + #[allow(non_camel_case_types)] + type _0MulN5 = <>::Output as Same<_0>>::Output; + + assert_eq!(<_0MulN5 as Integer>::to_i64(), <_0 as Integer>::to_i64()); +} +#[test] +#[allow(non_snake_case)] +fn test__0_Min_N5() { + type A = Z0; + type B = NInt, B0>, B1>>; + type N5 = NInt, B0>, B1>>; + + #[allow(non_camel_case_types)] + type _0MinN5 = <>::Output as Same>::Output; + + assert_eq!(<_0MinN5 as Integer>::to_i64(), ::to_i64()); +} +#[test] +#[allow(non_snake_case)] +fn test__0_Max_N5() { + type A = Z0; + type B = NInt, B0>, B1>>; + type _0 = Z0; + + #[allow(non_camel_case_types)] + type _0MaxN5 = <>::Output as Same<_0>>::Output; + + assert_eq!(<_0MaxN5 as Integer>::to_i64(), <_0 as Integer>::to_i64()); +} +#[test] +#[allow(non_snake_case)] +fn test__0_Gcd_N5() { + type A = Z0; + type B = NInt, B0>, B1>>; + type P5 = PInt, B0>, B1>>; + + #[allow(non_camel_case_types)] + type _0GcdN5 = <>::Output as Same>::Output; + + assert_eq!(<_0GcdN5 as Integer>::to_i64(), ::to_i64()); +} +#[test] +#[allow(non_snake_case)] +fn test__0_Div_N5() { + type A = Z0; + type B = NInt, B0>, B1>>; + type _0 = Z0; + + #[allow(non_camel_case_types)] + type _0DivN5 = <>::Output as Same<_0>>::Output; + + assert_eq!(<_0DivN5 as Integer>::to_i64(), <_0 as Integer>::to_i64()); +} +#[test] +#[allow(non_snake_case)] +fn test__0_Rem_N5() { + type A = Z0; + type B = NInt, B0>, B1>>; + type _0 = Z0; + + #[allow(non_camel_case_types)] + type _0RemN5 = <>::Output as Same<_0>>::Output; + + assert_eq!(<_0RemN5 as Integer>::to_i64(), <_0 as Integer>::to_i64()); +} +#[test] +#[allow(non_snake_case)] +fn test__0_PartialDiv_N5() { + type A = Z0; + type B = NInt, B0>, B1>>; + type _0 = Z0; + + #[allow(non_camel_case_types)] + type _0PartialDivN5 = <>::Output as Same<_0>>::Output; + + assert_eq!(<_0PartialDivN5 as Integer>::to_i64(), <_0 as Integer>::to_i64()); +} +#[test] +#[allow(non_snake_case)] +fn test__0_Cmp_N5() { + type A = Z0; + type B = NInt, B0>, B1>>; + + #[allow(non_camel_case_types)] + type _0CmpN5 = >::Output; + assert_eq!(<_0CmpN5 as Ord>::to_ordering(), Ordering::Greater); +} +#[test] +#[allow(non_snake_case)] +fn test__0_Add_N4() { + type A = Z0; + type B = NInt, B0>, B0>>; + type N4 = NInt, B0>, B0>>; + + #[allow(non_camel_case_types)] + type _0AddN4 = <>::Output as Same>::Output; + + assert_eq!(<_0AddN4 as Integer>::to_i64(), ::to_i64()); +} +#[test] +#[allow(non_snake_case)] +fn test__0_Sub_N4() { + type A = Z0; + type B = NInt, B0>, B0>>; + type P4 = PInt, B0>, B0>>; + + #[allow(non_camel_case_types)] + type _0SubN4 = <>::Output as Same>::Output; + + assert_eq!(<_0SubN4 as Integer>::to_i64(), ::to_i64()); +} +#[test] +#[allow(non_snake_case)] +fn test__0_Mul_N4() { + type A = Z0; + type B = NInt, B0>, B0>>; + type _0 = Z0; + + #[allow(non_camel_case_types)] + type _0MulN4 = <>::Output as Same<_0>>::Output; + + assert_eq!(<_0MulN4 as Integer>::to_i64(), <_0 as Integer>::to_i64()); +} +#[test] +#[allow(non_snake_case)] +fn test__0_Min_N4() { + type A = Z0; + type B = NInt, B0>, B0>>; + type N4 = NInt, B0>, B0>>; + + #[allow(non_camel_case_types)] + type _0MinN4 = <>::Output as Same>::Output; + + assert_eq!(<_0MinN4 as Integer>::to_i64(), ::to_i64()); +} +#[test] +#[allow(non_snake_case)] +fn test__0_Max_N4() { + type A = Z0; + type B = NInt, B0>, B0>>; + type _0 = Z0; + + #[allow(non_camel_case_types)] + type _0MaxN4 = <>::Output as Same<_0>>::Output; + + assert_eq!(<_0MaxN4 as Integer>::to_i64(), <_0 as Integer>::to_i64()); +} +#[test] +#[allow(non_snake_case)] +fn test__0_Gcd_N4() { + type A = Z0; + type B = NInt, B0>, B0>>; + type P4 = PInt, B0>, B0>>; + + #[allow(non_camel_case_types)] + type _0GcdN4 = <>::Output as Same>::Output; + + assert_eq!(<_0GcdN4 as Integer>::to_i64(), ::to_i64()); +} +#[test] +#[allow(non_snake_case)] +fn test__0_Div_N4() { + type A = Z0; + type B = NInt, B0>, B0>>; + type _0 = Z0; + + #[allow(non_camel_case_types)] + type _0DivN4 = <>::Output as Same<_0>>::Output; + + assert_eq!(<_0DivN4 as Integer>::to_i64(), <_0 as Integer>::to_i64()); +} +#[test] +#[allow(non_snake_case)] +fn test__0_Rem_N4() { + type A = Z0; + type B = NInt, B0>, B0>>; + type _0 = Z0; + + #[allow(non_camel_case_types)] + type _0RemN4 = <>::Output as Same<_0>>::Output; + + assert_eq!(<_0RemN4 as Integer>::to_i64(), <_0 as Integer>::to_i64()); +} +#[test] +#[allow(non_snake_case)] +fn test__0_PartialDiv_N4() { + type A = Z0; + type B = NInt, B0>, B0>>; + type _0 = Z0; + + #[allow(non_camel_case_types)] + type _0PartialDivN4 = <>::Output as Same<_0>>::Output; + + assert_eq!(<_0PartialDivN4 as Integer>::to_i64(), <_0 as Integer>::to_i64()); +} +#[test] +#[allow(non_snake_case)] +fn test__0_Cmp_N4() { + type A = Z0; + type B = NInt, B0>, B0>>; + + #[allow(non_camel_case_types)] + type _0CmpN4 = >::Output; + assert_eq!(<_0CmpN4 as Ord>::to_ordering(), Ordering::Greater); +} +#[test] +#[allow(non_snake_case)] +fn test__0_Add_N3() { + type A = Z0; + type B = NInt, B1>>; + type N3 = NInt, B1>>; + + #[allow(non_camel_case_types)] + type _0AddN3 = <>::Output as Same>::Output; + + assert_eq!(<_0AddN3 as Integer>::to_i64(), ::to_i64()); +} +#[test] +#[allow(non_snake_case)] +fn test__0_Sub_N3() { + type A = Z0; + type B = NInt, B1>>; + type P3 = PInt, B1>>; + + #[allow(non_camel_case_types)] + type _0SubN3 = <>::Output as Same>::Output; + + assert_eq!(<_0SubN3 as Integer>::to_i64(), ::to_i64()); +} +#[test] +#[allow(non_snake_case)] +fn test__0_Mul_N3() { + type A = Z0; + type B = NInt, B1>>; + type _0 = Z0; + + #[allow(non_camel_case_types)] + type _0MulN3 = <>::Output as Same<_0>>::Output; + + assert_eq!(<_0MulN3 as Integer>::to_i64(), <_0 as Integer>::to_i64()); +} +#[test] +#[allow(non_snake_case)] +fn test__0_Min_N3() { + type A = Z0; + type B = NInt, B1>>; + type N3 = NInt, B1>>; + + #[allow(non_camel_case_types)] + type _0MinN3 = <>::Output as Same>::Output; + + assert_eq!(<_0MinN3 as Integer>::to_i64(), ::to_i64()); +} +#[test] +#[allow(non_snake_case)] +fn test__0_Max_N3() { + type A = Z0; + type B = NInt, B1>>; + type _0 = Z0; + + #[allow(non_camel_case_types)] + type _0MaxN3 = <>::Output as Same<_0>>::Output; + + assert_eq!(<_0MaxN3 as Integer>::to_i64(), <_0 as Integer>::to_i64()); +} +#[test] +#[allow(non_snake_case)] +fn test__0_Gcd_N3() { + type A = Z0; + type B = NInt, B1>>; + type P3 = PInt, B1>>; + + #[allow(non_camel_case_types)] + type _0GcdN3 = <>::Output as Same>::Output; + + assert_eq!(<_0GcdN3 as Integer>::to_i64(), ::to_i64()); +} +#[test] +#[allow(non_snake_case)] +fn test__0_Div_N3() { + type A = Z0; + type B = NInt, B1>>; + type _0 = Z0; + + #[allow(non_camel_case_types)] + type _0DivN3 = <>::Output as Same<_0>>::Output; + + assert_eq!(<_0DivN3 as Integer>::to_i64(), <_0 as Integer>::to_i64()); +} +#[test] +#[allow(non_snake_case)] +fn test__0_Rem_N3() { + type A = Z0; + type B = NInt, B1>>; + type _0 = Z0; + + #[allow(non_camel_case_types)] + type _0RemN3 = <>::Output as Same<_0>>::Output; + + assert_eq!(<_0RemN3 as Integer>::to_i64(), <_0 as Integer>::to_i64()); +} +#[test] +#[allow(non_snake_case)] +fn test__0_PartialDiv_N3() { + type A = Z0; + type B = NInt, B1>>; + type _0 = Z0; + + #[allow(non_camel_case_types)] + type _0PartialDivN3 = <>::Output as Same<_0>>::Output; + + assert_eq!(<_0PartialDivN3 as Integer>::to_i64(), <_0 as Integer>::to_i64()); +} +#[test] +#[allow(non_snake_case)] +fn test__0_Cmp_N3() { + type A = Z0; + type B = NInt, B1>>; + + #[allow(non_camel_case_types)] + type _0CmpN3 = >::Output; + assert_eq!(<_0CmpN3 as Ord>::to_ordering(), Ordering::Greater); +} +#[test] +#[allow(non_snake_case)] +fn test__0_Add_N2() { + type A = Z0; + type B = NInt, B0>>; + type N2 = NInt, B0>>; + + #[allow(non_camel_case_types)] + type _0AddN2 = <>::Output as Same>::Output; + + assert_eq!(<_0AddN2 as Integer>::to_i64(), ::to_i64()); +} +#[test] +#[allow(non_snake_case)] +fn test__0_Sub_N2() { + type A = Z0; + type B = NInt, B0>>; + type P2 = PInt, B0>>; + + #[allow(non_camel_case_types)] + type _0SubN2 = <>::Output as Same>::Output; + + assert_eq!(<_0SubN2 as Integer>::to_i64(), ::to_i64()); +} +#[test] +#[allow(non_snake_case)] +fn test__0_Mul_N2() { + type A = Z0; + type B = NInt, B0>>; + type _0 = Z0; + + #[allow(non_camel_case_types)] + type _0MulN2 = <>::Output as Same<_0>>::Output; + + assert_eq!(<_0MulN2 as Integer>::to_i64(), <_0 as Integer>::to_i64()); +} +#[test] +#[allow(non_snake_case)] +fn test__0_Min_N2() { + type A = Z0; + type B = NInt, B0>>; + type N2 = NInt, B0>>; + + #[allow(non_camel_case_types)] + type _0MinN2 = <>::Output as Same>::Output; + + assert_eq!(<_0MinN2 as Integer>::to_i64(), ::to_i64()); +} +#[test] +#[allow(non_snake_case)] +fn test__0_Max_N2() { + type A = Z0; + type B = NInt, B0>>; + type _0 = Z0; + + #[allow(non_camel_case_types)] + type _0MaxN2 = <>::Output as Same<_0>>::Output; + + assert_eq!(<_0MaxN2 as Integer>::to_i64(), <_0 as Integer>::to_i64()); +} +#[test] +#[allow(non_snake_case)] +fn test__0_Gcd_N2() { + type A = Z0; + type B = NInt, B0>>; + type P2 = PInt, B0>>; + + #[allow(non_camel_case_types)] + type _0GcdN2 = <>::Output as Same>::Output; + + assert_eq!(<_0GcdN2 as Integer>::to_i64(), ::to_i64()); +} +#[test] +#[allow(non_snake_case)] +fn test__0_Div_N2() { + type A = Z0; + type B = NInt, B0>>; + type _0 = Z0; + + #[allow(non_camel_case_types)] + type _0DivN2 = <>::Output as Same<_0>>::Output; + + assert_eq!(<_0DivN2 as Integer>::to_i64(), <_0 as Integer>::to_i64()); +} +#[test] +#[allow(non_snake_case)] +fn test__0_Rem_N2() { + type A = Z0; + type B = NInt, B0>>; + type _0 = Z0; + + #[allow(non_camel_case_types)] + type _0RemN2 = <>::Output as Same<_0>>::Output; + + assert_eq!(<_0RemN2 as Integer>::to_i64(), <_0 as Integer>::to_i64()); +} +#[test] +#[allow(non_snake_case)] +fn test__0_PartialDiv_N2() { + type A = Z0; + type B = NInt, B0>>; + type _0 = Z0; + + #[allow(non_camel_case_types)] + type _0PartialDivN2 = <>::Output as Same<_0>>::Output; + + assert_eq!(<_0PartialDivN2 as Integer>::to_i64(), <_0 as Integer>::to_i64()); +} +#[test] +#[allow(non_snake_case)] +fn test__0_Cmp_N2() { + type A = Z0; + type B = NInt, B0>>; + + #[allow(non_camel_case_types)] + type _0CmpN2 = >::Output; + assert_eq!(<_0CmpN2 as Ord>::to_ordering(), Ordering::Greater); +} +#[test] +#[allow(non_snake_case)] +fn test__0_Add_N1() { + type A = Z0; + type B = NInt>; + type N1 = NInt>; + + #[allow(non_camel_case_types)] + type _0AddN1 = <>::Output as Same>::Output; + + assert_eq!(<_0AddN1 as Integer>::to_i64(), ::to_i64()); +} +#[test] +#[allow(non_snake_case)] +fn test__0_Sub_N1() { + type A = Z0; + type B = NInt>; + type P1 = PInt>; + + #[allow(non_camel_case_types)] + type _0SubN1 = <>::Output as Same>::Output; + + assert_eq!(<_0SubN1 as Integer>::to_i64(), ::to_i64()); +} +#[test] +#[allow(non_snake_case)] +fn test__0_Mul_N1() { + type A = Z0; + type B = NInt>; + type _0 = Z0; + + #[allow(non_camel_case_types)] + type _0MulN1 = <>::Output as Same<_0>>::Output; + + assert_eq!(<_0MulN1 as Integer>::to_i64(), <_0 as Integer>::to_i64()); +} +#[test] +#[allow(non_snake_case)] +fn test__0_Min_N1() { + type A = Z0; + type B = NInt>; + type N1 = NInt>; + + #[allow(non_camel_case_types)] + type _0MinN1 = <>::Output as Same>::Output; + + assert_eq!(<_0MinN1 as Integer>::to_i64(), ::to_i64()); +} +#[test] +#[allow(non_snake_case)] +fn test__0_Max_N1() { + type A = Z0; + type B = NInt>; + type _0 = Z0; + + #[allow(non_camel_case_types)] + type _0MaxN1 = <>::Output as Same<_0>>::Output; + + assert_eq!(<_0MaxN1 as Integer>::to_i64(), <_0 as Integer>::to_i64()); +} +#[test] +#[allow(non_snake_case)] +fn test__0_Gcd_N1() { + type A = Z0; + type B = NInt>; + type P1 = PInt>; + + #[allow(non_camel_case_types)] + type _0GcdN1 = <>::Output as Same>::Output; + + assert_eq!(<_0GcdN1 as Integer>::to_i64(), ::to_i64()); +} +#[test] +#[allow(non_snake_case)] +fn test__0_Div_N1() { + type A = Z0; + type B = NInt>; + type _0 = Z0; + + #[allow(non_camel_case_types)] + type _0DivN1 = <>::Output as Same<_0>>::Output; + + assert_eq!(<_0DivN1 as Integer>::to_i64(), <_0 as Integer>::to_i64()); +} +#[test] +#[allow(non_snake_case)] +fn test__0_Rem_N1() { + type A = Z0; + type B = NInt>; + type _0 = Z0; + + #[allow(non_camel_case_types)] + type _0RemN1 = <>::Output as Same<_0>>::Output; + + assert_eq!(<_0RemN1 as Integer>::to_i64(), <_0 as Integer>::to_i64()); +} +#[test] +#[allow(non_snake_case)] +fn test__0_PartialDiv_N1() { + type A = Z0; + type B = NInt>; + type _0 = Z0; + + #[allow(non_camel_case_types)] + type _0PartialDivN1 = <>::Output as Same<_0>>::Output; + + assert_eq!(<_0PartialDivN1 as Integer>::to_i64(), <_0 as Integer>::to_i64()); +} +#[test] +#[allow(non_snake_case)] +fn test__0_Cmp_N1() { + type A = Z0; + type B = NInt>; + + #[allow(non_camel_case_types)] + type _0CmpN1 = >::Output; + assert_eq!(<_0CmpN1 as Ord>::to_ordering(), Ordering::Greater); +} +#[test] +#[allow(non_snake_case)] +fn test__0_Add__0() { + type A = Z0; + type B = Z0; + type _0 = Z0; + + #[allow(non_camel_case_types)] + type _0Add_0 = <>::Output as Same<_0>>::Output; + + assert_eq!(<_0Add_0 as Integer>::to_i64(), <_0 as Integer>::to_i64()); +} +#[test] +#[allow(non_snake_case)] +fn test__0_Sub__0() { + type A = Z0; + type B = Z0; + type _0 = Z0; + + #[allow(non_camel_case_types)] + type _0Sub_0 = <>::Output as Same<_0>>::Output; + + assert_eq!(<_0Sub_0 as Integer>::to_i64(), <_0 as Integer>::to_i64()); +} +#[test] +#[allow(non_snake_case)] +fn test__0_Mul__0() { + type A = Z0; + type B = Z0; + type _0 = Z0; + + #[allow(non_camel_case_types)] + type _0Mul_0 = <>::Output as Same<_0>>::Output; + + assert_eq!(<_0Mul_0 as Integer>::to_i64(), <_0 as Integer>::to_i64()); +} +#[test] +#[allow(non_snake_case)] +fn test__0_Min__0() { + type A = Z0; + type B = Z0; + type _0 = Z0; + + #[allow(non_camel_case_types)] + type _0Min_0 = <>::Output as Same<_0>>::Output; + + assert_eq!(<_0Min_0 as Integer>::to_i64(), <_0 as Integer>::to_i64()); +} +#[test] +#[allow(non_snake_case)] +fn test__0_Max__0() { + type A = Z0; + type B = Z0; + type _0 = Z0; + + #[allow(non_camel_case_types)] + type _0Max_0 = <>::Output as Same<_0>>::Output; + + assert_eq!(<_0Max_0 as Integer>::to_i64(), <_0 as Integer>::to_i64()); +} +#[test] +#[allow(non_snake_case)] +fn test__0_Gcd__0() { + type A = Z0; + type B = Z0; + type _0 = Z0; + + #[allow(non_camel_case_types)] + type _0Gcd_0 = <>::Output as Same<_0>>::Output; + + assert_eq!(<_0Gcd_0 as Integer>::to_i64(), <_0 as Integer>::to_i64()); +} +#[test] +#[allow(non_snake_case)] +fn test__0_Pow__0() { + type A = Z0; + type B = Z0; + type P1 = PInt>; + + #[allow(non_camel_case_types)] + type _0Pow_0 = <>::Output as Same>::Output; + + assert_eq!(<_0Pow_0 as Integer>::to_i64(), ::to_i64()); +} +#[test] +#[allow(non_snake_case)] +fn test__0_Cmp__0() { + type A = Z0; + type B = Z0; + + #[allow(non_camel_case_types)] + type _0Cmp_0 = >::Output; + assert_eq!(<_0Cmp_0 as Ord>::to_ordering(), Ordering::Equal); +} +#[test] +#[allow(non_snake_case)] +fn test__0_Add_P1() { + type A = Z0; + type B = PInt>; + type P1 = PInt>; + + #[allow(non_camel_case_types)] + type _0AddP1 = <>::Output as Same>::Output; + + assert_eq!(<_0AddP1 as Integer>::to_i64(), ::to_i64()); +} +#[test] +#[allow(non_snake_case)] +fn test__0_Sub_P1() { + type A = Z0; + type B = PInt>; + type N1 = NInt>; + + #[allow(non_camel_case_types)] + type _0SubP1 = <>::Output as Same>::Output; + + assert_eq!(<_0SubP1 as Integer>::to_i64(), ::to_i64()); +} +#[test] +#[allow(non_snake_case)] +fn test__0_Mul_P1() { + type A = Z0; + type B = PInt>; + type _0 = Z0; + + #[allow(non_camel_case_types)] + type _0MulP1 = <>::Output as Same<_0>>::Output; + + assert_eq!(<_0MulP1 as Integer>::to_i64(), <_0 as Integer>::to_i64()); +} +#[test] +#[allow(non_snake_case)] +fn test__0_Min_P1() { + type A = Z0; + type B = PInt>; + type _0 = Z0; + + #[allow(non_camel_case_types)] + type _0MinP1 = <>::Output as Same<_0>>::Output; + + assert_eq!(<_0MinP1 as Integer>::to_i64(), <_0 as Integer>::to_i64()); +} +#[test] +#[allow(non_snake_case)] +fn test__0_Max_P1() { + type A = Z0; + type B = PInt>; + type P1 = PInt>; + + #[allow(non_camel_case_types)] + type _0MaxP1 = <>::Output as Same>::Output; + + assert_eq!(<_0MaxP1 as Integer>::to_i64(), ::to_i64()); +} +#[test] +#[allow(non_snake_case)] +fn test__0_Gcd_P1() { + type A = Z0; + type B = PInt>; + type P1 = PInt>; + + #[allow(non_camel_case_types)] + type _0GcdP1 = <>::Output as Same>::Output; + + assert_eq!(<_0GcdP1 as Integer>::to_i64(), ::to_i64()); +} +#[test] +#[allow(non_snake_case)] +fn test__0_Div_P1() { + type A = Z0; + type B = PInt>; + type _0 = Z0; + + #[allow(non_camel_case_types)] + type _0DivP1 = <>::Output as Same<_0>>::Output; + + assert_eq!(<_0DivP1 as Integer>::to_i64(), <_0 as Integer>::to_i64()); +} +#[test] +#[allow(non_snake_case)] +fn test__0_Rem_P1() { + type A = Z0; + type B = PInt>; + type _0 = Z0; + + #[allow(non_camel_case_types)] + type _0RemP1 = <>::Output as Same<_0>>::Output; + + assert_eq!(<_0RemP1 as Integer>::to_i64(), <_0 as Integer>::to_i64()); +} +#[test] +#[allow(non_snake_case)] +fn test__0_PartialDiv_P1() { + type A = Z0; + type B = PInt>; + type _0 = Z0; + + #[allow(non_camel_case_types)] + type _0PartialDivP1 = <>::Output as Same<_0>>::Output; + + assert_eq!(<_0PartialDivP1 as Integer>::to_i64(), <_0 as Integer>::to_i64()); +} +#[test] +#[allow(non_snake_case)] +fn test__0_Pow_P1() { + type A = Z0; + type B = PInt>; + type _0 = Z0; + + #[allow(non_camel_case_types)] + type _0PowP1 = <>::Output as Same<_0>>::Output; + + assert_eq!(<_0PowP1 as Integer>::to_i64(), <_0 as Integer>::to_i64()); +} +#[test] +#[allow(non_snake_case)] +fn test__0_Cmp_P1() { + type A = Z0; + type B = PInt>; + + #[allow(non_camel_case_types)] + type _0CmpP1 = >::Output; + assert_eq!(<_0CmpP1 as Ord>::to_ordering(), Ordering::Less); +} +#[test] +#[allow(non_snake_case)] +fn test__0_Add_P2() { + type A = Z0; + type B = PInt, B0>>; + type P2 = PInt, B0>>; + + #[allow(non_camel_case_types)] + type _0AddP2 = <>::Output as Same>::Output; + + assert_eq!(<_0AddP2 as Integer>::to_i64(), ::to_i64()); +} +#[test] +#[allow(non_snake_case)] +fn test__0_Sub_P2() { + type A = Z0; + type B = PInt, B0>>; + type N2 = NInt, B0>>; + + #[allow(non_camel_case_types)] + type _0SubP2 = <>::Output as Same>::Output; + + assert_eq!(<_0SubP2 as Integer>::to_i64(), ::to_i64()); +} +#[test] +#[allow(non_snake_case)] +fn test__0_Mul_P2() { + type A = Z0; + type B = PInt, B0>>; + type _0 = Z0; + + #[allow(non_camel_case_types)] + type _0MulP2 = <>::Output as Same<_0>>::Output; + + assert_eq!(<_0MulP2 as Integer>::to_i64(), <_0 as Integer>::to_i64()); +} +#[test] +#[allow(non_snake_case)] +fn test__0_Min_P2() { + type A = Z0; + type B = PInt, B0>>; + type _0 = Z0; + + #[allow(non_camel_case_types)] + type _0MinP2 = <>::Output as Same<_0>>::Output; + + assert_eq!(<_0MinP2 as Integer>::to_i64(), <_0 as Integer>::to_i64()); +} +#[test] +#[allow(non_snake_case)] +fn test__0_Max_P2() { + type A = Z0; + type B = PInt, B0>>; + type P2 = PInt, B0>>; + + #[allow(non_camel_case_types)] + type _0MaxP2 = <>::Output as Same>::Output; + + assert_eq!(<_0MaxP2 as Integer>::to_i64(), ::to_i64()); +} +#[test] +#[allow(non_snake_case)] +fn test__0_Gcd_P2() { + type A = Z0; + type B = PInt, B0>>; + type P2 = PInt, B0>>; + + #[allow(non_camel_case_types)] + type _0GcdP2 = <>::Output as Same>::Output; + + assert_eq!(<_0GcdP2 as Integer>::to_i64(), ::to_i64()); +} +#[test] +#[allow(non_snake_case)] +fn test__0_Div_P2() { + type A = Z0; + type B = PInt, B0>>; + type _0 = Z0; + + #[allow(non_camel_case_types)] + type _0DivP2 = <>::Output as Same<_0>>::Output; + + assert_eq!(<_0DivP2 as Integer>::to_i64(), <_0 as Integer>::to_i64()); +} +#[test] +#[allow(non_snake_case)] +fn test__0_Rem_P2() { + type A = Z0; + type B = PInt, B0>>; + type _0 = Z0; + + #[allow(non_camel_case_types)] + type _0RemP2 = <>::Output as Same<_0>>::Output; + + assert_eq!(<_0RemP2 as Integer>::to_i64(), <_0 as Integer>::to_i64()); +} +#[test] +#[allow(non_snake_case)] +fn test__0_PartialDiv_P2() { + type A = Z0; + type B = PInt, B0>>; + type _0 = Z0; + + #[allow(non_camel_case_types)] + type _0PartialDivP2 = <>::Output as Same<_0>>::Output; + + assert_eq!(<_0PartialDivP2 as Integer>::to_i64(), <_0 as Integer>::to_i64()); +} +#[test] +#[allow(non_snake_case)] +fn test__0_Pow_P2() { + type A = Z0; + type B = PInt, B0>>; + type _0 = Z0; + + #[allow(non_camel_case_types)] + type _0PowP2 = <>::Output as Same<_0>>::Output; + + assert_eq!(<_0PowP2 as Integer>::to_i64(), <_0 as Integer>::to_i64()); +} +#[test] +#[allow(non_snake_case)] +fn test__0_Cmp_P2() { + type A = Z0; + type B = PInt, B0>>; + + #[allow(non_camel_case_types)] + type _0CmpP2 = >::Output; + assert_eq!(<_0CmpP2 as Ord>::to_ordering(), Ordering::Less); +} +#[test] +#[allow(non_snake_case)] +fn test__0_Add_P3() { + type A = Z0; + type B = PInt, B1>>; + type P3 = PInt, B1>>; + + #[allow(non_camel_case_types)] + type _0AddP3 = <>::Output as Same>::Output; + + assert_eq!(<_0AddP3 as Integer>::to_i64(), ::to_i64()); +} +#[test] +#[allow(non_snake_case)] +fn test__0_Sub_P3() { + type A = Z0; + type B = PInt, B1>>; + type N3 = NInt, B1>>; + + #[allow(non_camel_case_types)] + type _0SubP3 = <>::Output as Same>::Output; + + assert_eq!(<_0SubP3 as Integer>::to_i64(), ::to_i64()); +} +#[test] +#[allow(non_snake_case)] +fn test__0_Mul_P3() { + type A = Z0; + type B = PInt, B1>>; + type _0 = Z0; + + #[allow(non_camel_case_types)] + type _0MulP3 = <>::Output as Same<_0>>::Output; + + assert_eq!(<_0MulP3 as Integer>::to_i64(), <_0 as Integer>::to_i64()); +} +#[test] +#[allow(non_snake_case)] +fn test__0_Min_P3() { + type A = Z0; + type B = PInt, B1>>; + type _0 = Z0; + + #[allow(non_camel_case_types)] + type _0MinP3 = <>::Output as Same<_0>>::Output; + + assert_eq!(<_0MinP3 as Integer>::to_i64(), <_0 as Integer>::to_i64()); +} +#[test] +#[allow(non_snake_case)] +fn test__0_Max_P3() { + type A = Z0; + type B = PInt, B1>>; + type P3 = PInt, B1>>; + + #[allow(non_camel_case_types)] + type _0MaxP3 = <>::Output as Same>::Output; + + assert_eq!(<_0MaxP3 as Integer>::to_i64(), ::to_i64()); +} +#[test] +#[allow(non_snake_case)] +fn test__0_Gcd_P3() { + type A = Z0; + type B = PInt, B1>>; + type P3 = PInt, B1>>; + + #[allow(non_camel_case_types)] + type _0GcdP3 = <>::Output as Same>::Output; + + assert_eq!(<_0GcdP3 as Integer>::to_i64(), ::to_i64()); +} +#[test] +#[allow(non_snake_case)] +fn test__0_Div_P3() { + type A = Z0; + type B = PInt, B1>>; + type _0 = Z0; + + #[allow(non_camel_case_types)] + type _0DivP3 = <>::Output as Same<_0>>::Output; + + assert_eq!(<_0DivP3 as Integer>::to_i64(), <_0 as Integer>::to_i64()); +} +#[test] +#[allow(non_snake_case)] +fn test__0_Rem_P3() { + type A = Z0; + type B = PInt, B1>>; + type _0 = Z0; + + #[allow(non_camel_case_types)] + type _0RemP3 = <>::Output as Same<_0>>::Output; + + assert_eq!(<_0RemP3 as Integer>::to_i64(), <_0 as Integer>::to_i64()); +} +#[test] +#[allow(non_snake_case)] +fn test__0_PartialDiv_P3() { + type A = Z0; + type B = PInt, B1>>; + type _0 = Z0; + + #[allow(non_camel_case_types)] + type _0PartialDivP3 = <>::Output as Same<_0>>::Output; + + assert_eq!(<_0PartialDivP3 as Integer>::to_i64(), <_0 as Integer>::to_i64()); +} +#[test] +#[allow(non_snake_case)] +fn test__0_Pow_P3() { + type A = Z0; + type B = PInt, B1>>; + type _0 = Z0; + + #[allow(non_camel_case_types)] + type _0PowP3 = <>::Output as Same<_0>>::Output; + + assert_eq!(<_0PowP3 as Integer>::to_i64(), <_0 as Integer>::to_i64()); +} +#[test] +#[allow(non_snake_case)] +fn test__0_Cmp_P3() { + type A = Z0; + type B = PInt, B1>>; + + #[allow(non_camel_case_types)] + type _0CmpP3 = >::Output; + assert_eq!(<_0CmpP3 as Ord>::to_ordering(), Ordering::Less); +} +#[test] +#[allow(non_snake_case)] +fn test__0_Add_P4() { + type A = Z0; + type B = PInt, B0>, B0>>; + type P4 = PInt, B0>, B0>>; + + #[allow(non_camel_case_types)] + type _0AddP4 = <>::Output as Same>::Output; + + assert_eq!(<_0AddP4 as Integer>::to_i64(), ::to_i64()); +} +#[test] +#[allow(non_snake_case)] +fn test__0_Sub_P4() { + type A = Z0; + type B = PInt, B0>, B0>>; + type N4 = NInt, B0>, B0>>; + + #[allow(non_camel_case_types)] + type _0SubP4 = <>::Output as Same>::Output; + + assert_eq!(<_0SubP4 as Integer>::to_i64(), ::to_i64()); +} +#[test] +#[allow(non_snake_case)] +fn test__0_Mul_P4() { + type A = Z0; + type B = PInt, B0>, B0>>; + type _0 = Z0; + + #[allow(non_camel_case_types)] + type _0MulP4 = <>::Output as Same<_0>>::Output; + + assert_eq!(<_0MulP4 as Integer>::to_i64(), <_0 as Integer>::to_i64()); +} +#[test] +#[allow(non_snake_case)] +fn test__0_Min_P4() { + type A = Z0; + type B = PInt, B0>, B0>>; + type _0 = Z0; + + #[allow(non_camel_case_types)] + type _0MinP4 = <>::Output as Same<_0>>::Output; + + assert_eq!(<_0MinP4 as Integer>::to_i64(), <_0 as Integer>::to_i64()); +} +#[test] +#[allow(non_snake_case)] +fn test__0_Max_P4() { + type A = Z0; + type B = PInt, B0>, B0>>; + type P4 = PInt, B0>, B0>>; + + #[allow(non_camel_case_types)] + type _0MaxP4 = <>::Output as Same>::Output; + + assert_eq!(<_0MaxP4 as Integer>::to_i64(), ::to_i64()); +} +#[test] +#[allow(non_snake_case)] +fn test__0_Gcd_P4() { + type A = Z0; + type B = PInt, B0>, B0>>; + type P4 = PInt, B0>, B0>>; + + #[allow(non_camel_case_types)] + type _0GcdP4 = <>::Output as Same>::Output; + + assert_eq!(<_0GcdP4 as Integer>::to_i64(), ::to_i64()); +} +#[test] +#[allow(non_snake_case)] +fn test__0_Div_P4() { + type A = Z0; + type B = PInt, B0>, B0>>; + type _0 = Z0; + + #[allow(non_camel_case_types)] + type _0DivP4 = <>::Output as Same<_0>>::Output; + + assert_eq!(<_0DivP4 as Integer>::to_i64(), <_0 as Integer>::to_i64()); +} +#[test] +#[allow(non_snake_case)] +fn test__0_Rem_P4() { + type A = Z0; + type B = PInt, B0>, B0>>; + type _0 = Z0; + + #[allow(non_camel_case_types)] + type _0RemP4 = <>::Output as Same<_0>>::Output; + + assert_eq!(<_0RemP4 as Integer>::to_i64(), <_0 as Integer>::to_i64()); +} +#[test] +#[allow(non_snake_case)] +fn test__0_PartialDiv_P4() { + type A = Z0; + type B = PInt, B0>, B0>>; + type _0 = Z0; + + #[allow(non_camel_case_types)] + type _0PartialDivP4 = <>::Output as Same<_0>>::Output; + + assert_eq!(<_0PartialDivP4 as Integer>::to_i64(), <_0 as Integer>::to_i64()); +} +#[test] +#[allow(non_snake_case)] +fn test__0_Pow_P4() { + type A = Z0; + type B = PInt, B0>, B0>>; + type _0 = Z0; + + #[allow(non_camel_case_types)] + type _0PowP4 = <>::Output as Same<_0>>::Output; + + assert_eq!(<_0PowP4 as Integer>::to_i64(), <_0 as Integer>::to_i64()); +} +#[test] +#[allow(non_snake_case)] +fn test__0_Cmp_P4() { + type A = Z0; + type B = PInt, B0>, B0>>; + + #[allow(non_camel_case_types)] + type _0CmpP4 = >::Output; + assert_eq!(<_0CmpP4 as Ord>::to_ordering(), Ordering::Less); +} +#[test] +#[allow(non_snake_case)] +fn test__0_Add_P5() { + type A = Z0; + type B = PInt, B0>, B1>>; + type P5 = PInt, B0>, B1>>; + + #[allow(non_camel_case_types)] + type _0AddP5 = <>::Output as Same>::Output; + + assert_eq!(<_0AddP5 as Integer>::to_i64(), ::to_i64()); +} +#[test] +#[allow(non_snake_case)] +fn test__0_Sub_P5() { + type A = Z0; + type B = PInt, B0>, B1>>; + type N5 = NInt, B0>, B1>>; + + #[allow(non_camel_case_types)] + type _0SubP5 = <>::Output as Same>::Output; + + assert_eq!(<_0SubP5 as Integer>::to_i64(), ::to_i64()); +} +#[test] +#[allow(non_snake_case)] +fn test__0_Mul_P5() { + type A = Z0; + type B = PInt, B0>, B1>>; + type _0 = Z0; + + #[allow(non_camel_case_types)] + type _0MulP5 = <>::Output as Same<_0>>::Output; + + assert_eq!(<_0MulP5 as Integer>::to_i64(), <_0 as Integer>::to_i64()); +} +#[test] +#[allow(non_snake_case)] +fn test__0_Min_P5() { + type A = Z0; + type B = PInt, B0>, B1>>; + type _0 = Z0; + + #[allow(non_camel_case_types)] + type _0MinP5 = <>::Output as Same<_0>>::Output; + + assert_eq!(<_0MinP5 as Integer>::to_i64(), <_0 as Integer>::to_i64()); +} +#[test] +#[allow(non_snake_case)] +fn test__0_Max_P5() { + type A = Z0; + type B = PInt, B0>, B1>>; + type P5 = PInt, B0>, B1>>; + + #[allow(non_camel_case_types)] + type _0MaxP5 = <>::Output as Same>::Output; + + assert_eq!(<_0MaxP5 as Integer>::to_i64(), ::to_i64()); +} +#[test] +#[allow(non_snake_case)] +fn test__0_Gcd_P5() { + type A = Z0; + type B = PInt, B0>, B1>>; + type P5 = PInt, B0>, B1>>; + + #[allow(non_camel_case_types)] + type _0GcdP5 = <>::Output as Same>::Output; + + assert_eq!(<_0GcdP5 as Integer>::to_i64(), ::to_i64()); +} +#[test] +#[allow(non_snake_case)] +fn test__0_Div_P5() { + type A = Z0; + type B = PInt, B0>, B1>>; + type _0 = Z0; + + #[allow(non_camel_case_types)] + type _0DivP5 = <>::Output as Same<_0>>::Output; + + assert_eq!(<_0DivP5 as Integer>::to_i64(), <_0 as Integer>::to_i64()); +} +#[test] +#[allow(non_snake_case)] +fn test__0_Rem_P5() { + type A = Z0; + type B = PInt, B0>, B1>>; + type _0 = Z0; + + #[allow(non_camel_case_types)] + type _0RemP5 = <>::Output as Same<_0>>::Output; + + assert_eq!(<_0RemP5 as Integer>::to_i64(), <_0 as Integer>::to_i64()); +} +#[test] +#[allow(non_snake_case)] +fn test__0_PartialDiv_P5() { + type A = Z0; + type B = PInt, B0>, B1>>; + type _0 = Z0; + + #[allow(non_camel_case_types)] + type _0PartialDivP5 = <>::Output as Same<_0>>::Output; + + assert_eq!(<_0PartialDivP5 as Integer>::to_i64(), <_0 as Integer>::to_i64()); +} +#[test] +#[allow(non_snake_case)] +fn test__0_Pow_P5() { + type A = Z0; + type B = PInt, B0>, B1>>; + type _0 = Z0; + + #[allow(non_camel_case_types)] + type _0PowP5 = <>::Output as Same<_0>>::Output; + + assert_eq!(<_0PowP5 as Integer>::to_i64(), <_0 as Integer>::to_i64()); +} +#[test] +#[allow(non_snake_case)] +fn test__0_Cmp_P5() { + type A = Z0; + type B = PInt, B0>, B1>>; + + #[allow(non_camel_case_types)] + type _0CmpP5 = >::Output; + assert_eq!(<_0CmpP5 as Ord>::to_ordering(), Ordering::Less); +} +#[test] +#[allow(non_snake_case)] +fn test_P1_Add_N5() { + type A = PInt>; + type B = NInt, B0>, B1>>; + type N4 = NInt, B0>, B0>>; + + #[allow(non_camel_case_types)] + type P1AddN5 = <>::Output as Same>::Output; + + assert_eq!(::to_i64(), ::to_i64()); +} +#[test] +#[allow(non_snake_case)] +fn test_P1_Sub_N5() { + type A = PInt>; + type B = NInt, B0>, B1>>; + type P6 = PInt, B1>, B0>>; + + #[allow(non_camel_case_types)] + type P1SubN5 = <>::Output as Same>::Output; + + assert_eq!(::to_i64(), ::to_i64()); +} +#[test] +#[allow(non_snake_case)] +fn test_P1_Mul_N5() { + type A = PInt>; + type B = NInt, B0>, B1>>; + type N5 = NInt, B0>, B1>>; + + #[allow(non_camel_case_types)] + type P1MulN5 = <>::Output as Same>::Output; + + assert_eq!(::to_i64(), ::to_i64()); +} +#[test] +#[allow(non_snake_case)] +fn test_P1_Min_N5() { + type A = PInt>; + type B = NInt, B0>, B1>>; + type N5 = NInt, B0>, B1>>; + + #[allow(non_camel_case_types)] + type P1MinN5 = <>::Output as Same>::Output; + + assert_eq!(::to_i64(), ::to_i64()); +} +#[test] +#[allow(non_snake_case)] +fn test_P1_Max_N5() { + type A = PInt>; + type B = NInt, B0>, B1>>; + type P1 = PInt>; + + #[allow(non_camel_case_types)] + type P1MaxN5 = <>::Output as Same>::Output; + + assert_eq!(::to_i64(), ::to_i64()); +} +#[test] +#[allow(non_snake_case)] +fn test_P1_Gcd_N5() { + type A = PInt>; + type B = NInt, B0>, B1>>; + type P1 = PInt>; + + #[allow(non_camel_case_types)] + type P1GcdN5 = <>::Output as Same>::Output; + + assert_eq!(::to_i64(), ::to_i64()); +} +#[test] +#[allow(non_snake_case)] +fn test_P1_Div_N5() { + type A = PInt>; + type B = NInt, B0>, B1>>; + type _0 = Z0; + + #[allow(non_camel_case_types)] + type P1DivN5 = <>::Output as Same<_0>>::Output; + + assert_eq!(::to_i64(), <_0 as Integer>::to_i64()); +} +#[test] +#[allow(non_snake_case)] +fn test_P1_Rem_N5() { + type A = PInt>; + type B = NInt, B0>, B1>>; + type P1 = PInt>; + + #[allow(non_camel_case_types)] + type P1RemN5 = <>::Output as Same>::Output; + + assert_eq!(::to_i64(), ::to_i64()); +} +#[test] +#[allow(non_snake_case)] +fn test_P1_Pow_N5() { + type A = PInt>; + type B = NInt, B0>, B1>>; + type P1 = PInt>; + + #[allow(non_camel_case_types)] + type P1PowN5 = <>::Output as Same>::Output; + + assert_eq!(::to_i64(), ::to_i64()); +} +#[test] +#[allow(non_snake_case)] +fn test_P1_Cmp_N5() { + type A = PInt>; + type B = NInt, B0>, B1>>; + + #[allow(non_camel_case_types)] + type P1CmpN5 = >::Output; + assert_eq!(::to_ordering(), Ordering::Greater); +} +#[test] +#[allow(non_snake_case)] +fn test_P1_Add_N4() { + type A = PInt>; + type B = NInt, B0>, B0>>; + type N3 = NInt, B1>>; + + #[allow(non_camel_case_types)] + type P1AddN4 = <>::Output as Same>::Output; + + assert_eq!(::to_i64(), ::to_i64()); +} +#[test] +#[allow(non_snake_case)] +fn test_P1_Sub_N4() { + type A = PInt>; + type B = NInt, B0>, B0>>; + type P5 = PInt, B0>, B1>>; + + #[allow(non_camel_case_types)] + type P1SubN4 = <>::Output as Same>::Output; + + assert_eq!(::to_i64(), ::to_i64()); +} +#[test] +#[allow(non_snake_case)] +fn test_P1_Mul_N4() { + type A = PInt>; + type B = NInt, B0>, B0>>; + type N4 = NInt, B0>, B0>>; + + #[allow(non_camel_case_types)] + type P1MulN4 = <>::Output as Same>::Output; + + assert_eq!(::to_i64(), ::to_i64()); +} +#[test] +#[allow(non_snake_case)] +fn test_P1_Min_N4() { + type A = PInt>; + type B = NInt, B0>, B0>>; + type N4 = NInt, B0>, B0>>; + + #[allow(non_camel_case_types)] + type P1MinN4 = <>::Output as Same>::Output; + + assert_eq!(::to_i64(), ::to_i64()); +} +#[test] +#[allow(non_snake_case)] +fn test_P1_Max_N4() { + type A = PInt>; + type B = NInt, B0>, B0>>; + type P1 = PInt>; + + #[allow(non_camel_case_types)] + type P1MaxN4 = <>::Output as Same>::Output; + + assert_eq!(::to_i64(), ::to_i64()); +} +#[test] +#[allow(non_snake_case)] +fn test_P1_Gcd_N4() { + type A = PInt>; + type B = NInt, B0>, B0>>; + type P1 = PInt>; + + #[allow(non_camel_case_types)] + type P1GcdN4 = <>::Output as Same>::Output; + + assert_eq!(::to_i64(), ::to_i64()); +} +#[test] +#[allow(non_snake_case)] +fn test_P1_Div_N4() { + type A = PInt>; + type B = NInt, B0>, B0>>; + type _0 = Z0; + + #[allow(non_camel_case_types)] + type P1DivN4 = <>::Output as Same<_0>>::Output; + + assert_eq!(::to_i64(), <_0 as Integer>::to_i64()); +} +#[test] +#[allow(non_snake_case)] +fn test_P1_Rem_N4() { + type A = PInt>; + type B = NInt, B0>, B0>>; + type P1 = PInt>; + + #[allow(non_camel_case_types)] + type P1RemN4 = <>::Output as Same>::Output; + + assert_eq!(::to_i64(), ::to_i64()); +} +#[test] +#[allow(non_snake_case)] +fn test_P1_Pow_N4() { + type A = PInt>; + type B = NInt, B0>, B0>>; + type P1 = PInt>; + + #[allow(non_camel_case_types)] + type P1PowN4 = <>::Output as Same>::Output; + + assert_eq!(::to_i64(), ::to_i64()); +} +#[test] +#[allow(non_snake_case)] +fn test_P1_Cmp_N4() { + type A = PInt>; + type B = NInt, B0>, B0>>; + + #[allow(non_camel_case_types)] + type P1CmpN4 = >::Output; + assert_eq!(::to_ordering(), Ordering::Greater); +} +#[test] +#[allow(non_snake_case)] +fn test_P1_Add_N3() { + type A = PInt>; + type B = NInt, B1>>; + type N2 = NInt, B0>>; + + #[allow(non_camel_case_types)] + type P1AddN3 = <>::Output as Same>::Output; + + assert_eq!(::to_i64(), ::to_i64()); +} +#[test] +#[allow(non_snake_case)] +fn test_P1_Sub_N3() { + type A = PInt>; + type B = NInt, B1>>; + type P4 = PInt, B0>, B0>>; + + #[allow(non_camel_case_types)] + type P1SubN3 = <>::Output as Same>::Output; + + assert_eq!(::to_i64(), ::to_i64()); +} +#[test] +#[allow(non_snake_case)] +fn test_P1_Mul_N3() { + type A = PInt>; + type B = NInt, B1>>; + type N3 = NInt, B1>>; + + #[allow(non_camel_case_types)] + type P1MulN3 = <>::Output as Same>::Output; + + assert_eq!(::to_i64(), ::to_i64()); +} +#[test] +#[allow(non_snake_case)] +fn test_P1_Min_N3() { + type A = PInt>; + type B = NInt, B1>>; + type N3 = NInt, B1>>; + + #[allow(non_camel_case_types)] + type P1MinN3 = <>::Output as Same>::Output; + + assert_eq!(::to_i64(), ::to_i64()); +} +#[test] +#[allow(non_snake_case)] +fn test_P1_Max_N3() { + type A = PInt>; + type B = NInt, B1>>; + type P1 = PInt>; + + #[allow(non_camel_case_types)] + type P1MaxN3 = <>::Output as Same>::Output; + + assert_eq!(::to_i64(), ::to_i64()); +} +#[test] +#[allow(non_snake_case)] +fn test_P1_Gcd_N3() { + type A = PInt>; + type B = NInt, B1>>; + type P1 = PInt>; + + #[allow(non_camel_case_types)] + type P1GcdN3 = <>::Output as Same>::Output; + + assert_eq!(::to_i64(), ::to_i64()); +} +#[test] +#[allow(non_snake_case)] +fn test_P1_Div_N3() { + type A = PInt>; + type B = NInt, B1>>; + type _0 = Z0; + + #[allow(non_camel_case_types)] + type P1DivN3 = <>::Output as Same<_0>>::Output; + + assert_eq!(::to_i64(), <_0 as Integer>::to_i64()); +} +#[test] +#[allow(non_snake_case)] +fn test_P1_Rem_N3() { + type A = PInt>; + type B = NInt, B1>>; + type P1 = PInt>; + + #[allow(non_camel_case_types)] + type P1RemN3 = <>::Output as Same>::Output; + + assert_eq!(::to_i64(), ::to_i64()); +} +#[test] +#[allow(non_snake_case)] +fn test_P1_Pow_N3() { + type A = PInt>; + type B = NInt, B1>>; + type P1 = PInt>; + + #[allow(non_camel_case_types)] + type P1PowN3 = <>::Output as Same>::Output; + + assert_eq!(::to_i64(), ::to_i64()); +} +#[test] +#[allow(non_snake_case)] +fn test_P1_Cmp_N3() { + type A = PInt>; + type B = NInt, B1>>; + + #[allow(non_camel_case_types)] + type P1CmpN3 = >::Output; + assert_eq!(::to_ordering(), Ordering::Greater); +} +#[test] +#[allow(non_snake_case)] +fn test_P1_Add_N2() { + type A = PInt>; + type B = NInt, B0>>; + type N1 = NInt>; + + #[allow(non_camel_case_types)] + type P1AddN2 = <>::Output as Same>::Output; + + assert_eq!(::to_i64(), ::to_i64()); +} +#[test] +#[allow(non_snake_case)] +fn test_P1_Sub_N2() { + type A = PInt>; + type B = NInt, B0>>; + type P3 = PInt, B1>>; + + #[allow(non_camel_case_types)] + type P1SubN2 = <>::Output as Same>::Output; + + assert_eq!(::to_i64(), ::to_i64()); +} +#[test] +#[allow(non_snake_case)] +fn test_P1_Mul_N2() { + type A = PInt>; + type B = NInt, B0>>; + type N2 = NInt, B0>>; + + #[allow(non_camel_case_types)] + type P1MulN2 = <>::Output as Same>::Output; + + assert_eq!(::to_i64(), ::to_i64()); +} +#[test] +#[allow(non_snake_case)] +fn test_P1_Min_N2() { + type A = PInt>; + type B = NInt, B0>>; + type N2 = NInt, B0>>; + + #[allow(non_camel_case_types)] + type P1MinN2 = <>::Output as Same>::Output; + + assert_eq!(::to_i64(), ::to_i64()); +} +#[test] +#[allow(non_snake_case)] +fn test_P1_Max_N2() { + type A = PInt>; + type B = NInt, B0>>; + type P1 = PInt>; + + #[allow(non_camel_case_types)] + type P1MaxN2 = <>::Output as Same>::Output; + + assert_eq!(::to_i64(), ::to_i64()); +} +#[test] +#[allow(non_snake_case)] +fn test_P1_Gcd_N2() { + type A = PInt>; + type B = NInt, B0>>; + type P1 = PInt>; + + #[allow(non_camel_case_types)] + type P1GcdN2 = <>::Output as Same>::Output; + + assert_eq!(::to_i64(), ::to_i64()); +} +#[test] +#[allow(non_snake_case)] +fn test_P1_Div_N2() { + type A = PInt>; + type B = NInt, B0>>; + type _0 = Z0; + + #[allow(non_camel_case_types)] + type P1DivN2 = <>::Output as Same<_0>>::Output; + + assert_eq!(::to_i64(), <_0 as Integer>::to_i64()); +} +#[test] +#[allow(non_snake_case)] +fn test_P1_Rem_N2() { + type A = PInt>; + type B = NInt, B0>>; + type P1 = PInt>; + + #[allow(non_camel_case_types)] + type P1RemN2 = <>::Output as Same>::Output; + + assert_eq!(::to_i64(), ::to_i64()); +} +#[test] +#[allow(non_snake_case)] +fn test_P1_Pow_N2() { + type A = PInt>; + type B = NInt, B0>>; + type P1 = PInt>; + + #[allow(non_camel_case_types)] + type P1PowN2 = <>::Output as Same>::Output; + + assert_eq!(::to_i64(), ::to_i64()); +} +#[test] +#[allow(non_snake_case)] +fn test_P1_Cmp_N2() { + type A = PInt>; + type B = NInt, B0>>; + + #[allow(non_camel_case_types)] + type P1CmpN2 = >::Output; + assert_eq!(::to_ordering(), Ordering::Greater); +} +#[test] +#[allow(non_snake_case)] +fn test_P1_Add_N1() { + type A = PInt>; + type B = NInt>; + type _0 = Z0; + + #[allow(non_camel_case_types)] + type P1AddN1 = <>::Output as Same<_0>>::Output; + + assert_eq!(::to_i64(), <_0 as Integer>::to_i64()); +} +#[test] +#[allow(non_snake_case)] +fn test_P1_Sub_N1() { + type A = PInt>; + type B = NInt>; + type P2 = PInt, B0>>; + + #[allow(non_camel_case_types)] + type P1SubN1 = <>::Output as Same>::Output; + + assert_eq!(::to_i64(), ::to_i64()); +} +#[test] +#[allow(non_snake_case)] +fn test_P1_Mul_N1() { + type A = PInt>; + type B = NInt>; + type N1 = NInt>; + + #[allow(non_camel_case_types)] + type P1MulN1 = <>::Output as Same>::Output; + + assert_eq!(::to_i64(), ::to_i64()); +} +#[test] +#[allow(non_snake_case)] +fn test_P1_Min_N1() { + type A = PInt>; + type B = NInt>; + type N1 = NInt>; + + #[allow(non_camel_case_types)] + type P1MinN1 = <>::Output as Same>::Output; + + assert_eq!(::to_i64(), ::to_i64()); +} +#[test] +#[allow(non_snake_case)] +fn test_P1_Max_N1() { + type A = PInt>; + type B = NInt>; + type P1 = PInt>; + + #[allow(non_camel_case_types)] + type P1MaxN1 = <>::Output as Same>::Output; + + assert_eq!(::to_i64(), ::to_i64()); +} +#[test] +#[allow(non_snake_case)] +fn test_P1_Gcd_N1() { + type A = PInt>; + type B = NInt>; + type P1 = PInt>; + + #[allow(non_camel_case_types)] + type P1GcdN1 = <>::Output as Same>::Output; + + assert_eq!(::to_i64(), ::to_i64()); +} +#[test] +#[allow(non_snake_case)] +fn test_P1_Div_N1() { + type A = PInt>; + type B = NInt>; + type N1 = NInt>; + + #[allow(non_camel_case_types)] + type P1DivN1 = <>::Output as Same>::Output; + + assert_eq!(::to_i64(), ::to_i64()); +} +#[test] +#[allow(non_snake_case)] +fn test_P1_Rem_N1() { + type A = PInt>; + type B = NInt>; + type _0 = Z0; + + #[allow(non_camel_case_types)] + type P1RemN1 = <>::Output as Same<_0>>::Output; + + assert_eq!(::to_i64(), <_0 as Integer>::to_i64()); +} +#[test] +#[allow(non_snake_case)] +fn test_P1_PartialDiv_N1() { + type A = PInt>; + type B = NInt>; + type N1 = NInt>; + + #[allow(non_camel_case_types)] + type P1PartialDivN1 = <>::Output as Same>::Output; + + assert_eq!(::to_i64(), ::to_i64()); +} +#[test] +#[allow(non_snake_case)] +fn test_P1_Pow_N1() { + type A = PInt>; + type B = NInt>; + type P1 = PInt>; + + #[allow(non_camel_case_types)] + type P1PowN1 = <>::Output as Same>::Output; + + assert_eq!(::to_i64(), ::to_i64()); +} +#[test] +#[allow(non_snake_case)] +fn test_P1_Cmp_N1() { + type A = PInt>; + type B = NInt>; + + #[allow(non_camel_case_types)] + type P1CmpN1 = >::Output; + assert_eq!(::to_ordering(), Ordering::Greater); +} +#[test] +#[allow(non_snake_case)] +fn test_P1_Add__0() { + type A = PInt>; + type B = Z0; + type P1 = PInt>; + + #[allow(non_camel_case_types)] + type P1Add_0 = <>::Output as Same>::Output; + + assert_eq!(::to_i64(), ::to_i64()); +} +#[test] +#[allow(non_snake_case)] +fn test_P1_Sub__0() { + type A = PInt>; + type B = Z0; + type P1 = PInt>; + + #[allow(non_camel_case_types)] + type P1Sub_0 = <>::Output as Same>::Output; + + assert_eq!(::to_i64(), ::to_i64()); +} +#[test] +#[allow(non_snake_case)] +fn test_P1_Mul__0() { + type A = PInt>; + type B = Z0; + type _0 = Z0; + + #[allow(non_camel_case_types)] + type P1Mul_0 = <>::Output as Same<_0>>::Output; + + assert_eq!(::to_i64(), <_0 as Integer>::to_i64()); +} +#[test] +#[allow(non_snake_case)] +fn test_P1_Min__0() { + type A = PInt>; + type B = Z0; + type _0 = Z0; + + #[allow(non_camel_case_types)] + type P1Min_0 = <>::Output as Same<_0>>::Output; + + assert_eq!(::to_i64(), <_0 as Integer>::to_i64()); +} +#[test] +#[allow(non_snake_case)] +fn test_P1_Max__0() { + type A = PInt>; + type B = Z0; + type P1 = PInt>; + + #[allow(non_camel_case_types)] + type P1Max_0 = <>::Output as Same>::Output; + + assert_eq!(::to_i64(), ::to_i64()); +} +#[test] +#[allow(non_snake_case)] +fn test_P1_Gcd__0() { + type A = PInt>; + type B = Z0; + type P1 = PInt>; + + #[allow(non_camel_case_types)] + type P1Gcd_0 = <>::Output as Same>::Output; + + assert_eq!(::to_i64(), ::to_i64()); +} +#[test] +#[allow(non_snake_case)] +fn test_P1_Pow__0() { + type A = PInt>; + type B = Z0; + type P1 = PInt>; + + #[allow(non_camel_case_types)] + type P1Pow_0 = <>::Output as Same>::Output; + + assert_eq!(::to_i64(), ::to_i64()); +} +#[test] +#[allow(non_snake_case)] +fn test_P1_Cmp__0() { + type A = PInt>; + type B = Z0; + + #[allow(non_camel_case_types)] + type P1Cmp_0 = >::Output; + assert_eq!(::to_ordering(), Ordering::Greater); +} +#[test] +#[allow(non_snake_case)] +fn test_P1_Add_P1() { + type A = PInt>; + type B = PInt>; + type P2 = PInt, B0>>; + + #[allow(non_camel_case_types)] + type P1AddP1 = <>::Output as Same>::Output; + + assert_eq!(::to_i64(), ::to_i64()); +} +#[test] +#[allow(non_snake_case)] +fn test_P1_Sub_P1() { + type A = PInt>; + type B = PInt>; + type _0 = Z0; + + #[allow(non_camel_case_types)] + type P1SubP1 = <>::Output as Same<_0>>::Output; + + assert_eq!(::to_i64(), <_0 as Integer>::to_i64()); +} +#[test] +#[allow(non_snake_case)] +fn test_P1_Mul_P1() { + type A = PInt>; + type B = PInt>; + type P1 = PInt>; + + #[allow(non_camel_case_types)] + type P1MulP1 = <>::Output as Same>::Output; + + assert_eq!(::to_i64(), ::to_i64()); +} +#[test] +#[allow(non_snake_case)] +fn test_P1_Min_P1() { + type A = PInt>; + type B = PInt>; + type P1 = PInt>; + + #[allow(non_camel_case_types)] + type P1MinP1 = <>::Output as Same>::Output; + + assert_eq!(::to_i64(), ::to_i64()); +} +#[test] +#[allow(non_snake_case)] +fn test_P1_Max_P1() { + type A = PInt>; + type B = PInt>; + type P1 = PInt>; + + #[allow(non_camel_case_types)] + type P1MaxP1 = <>::Output as Same>::Output; + + assert_eq!(::to_i64(), ::to_i64()); +} +#[test] +#[allow(non_snake_case)] +fn test_P1_Gcd_P1() { + type A = PInt>; + type B = PInt>; + type P1 = PInt>; + + #[allow(non_camel_case_types)] + type P1GcdP1 = <>::Output as Same>::Output; + + assert_eq!(::to_i64(), ::to_i64()); +} +#[test] +#[allow(non_snake_case)] +fn test_P1_Div_P1() { + type A = PInt>; + type B = PInt>; + type P1 = PInt>; + + #[allow(non_camel_case_types)] + type P1DivP1 = <>::Output as Same>::Output; + + assert_eq!(::to_i64(), ::to_i64()); +} +#[test] +#[allow(non_snake_case)] +fn test_P1_Rem_P1() { + type A = PInt>; + type B = PInt>; + type _0 = Z0; + + #[allow(non_camel_case_types)] + type P1RemP1 = <>::Output as Same<_0>>::Output; + + assert_eq!(::to_i64(), <_0 as Integer>::to_i64()); +} +#[test] +#[allow(non_snake_case)] +fn test_P1_PartialDiv_P1() { + type A = PInt>; + type B = PInt>; + type P1 = PInt>; + + #[allow(non_camel_case_types)] + type P1PartialDivP1 = <>::Output as Same>::Output; + + assert_eq!(::to_i64(), ::to_i64()); +} +#[test] +#[allow(non_snake_case)] +fn test_P1_Pow_P1() { + type A = PInt>; + type B = PInt>; + type P1 = PInt>; + + #[allow(non_camel_case_types)] + type P1PowP1 = <>::Output as Same>::Output; + + assert_eq!(::to_i64(), ::to_i64()); +} +#[test] +#[allow(non_snake_case)] +fn test_P1_Cmp_P1() { + type A = PInt>; + type B = PInt>; + + #[allow(non_camel_case_types)] + type P1CmpP1 = >::Output; + assert_eq!(::to_ordering(), Ordering::Equal); +} +#[test] +#[allow(non_snake_case)] +fn test_P1_Add_P2() { + type A = PInt>; + type B = PInt, B0>>; + type P3 = PInt, B1>>; + + #[allow(non_camel_case_types)] + type P1AddP2 = <>::Output as Same>::Output; + + assert_eq!(::to_i64(), ::to_i64()); +} +#[test] +#[allow(non_snake_case)] +fn test_P1_Sub_P2() { + type A = PInt>; + type B = PInt, B0>>; + type N1 = NInt>; + + #[allow(non_camel_case_types)] + type P1SubP2 = <>::Output as Same>::Output; + + assert_eq!(::to_i64(), ::to_i64()); +} +#[test] +#[allow(non_snake_case)] +fn test_P1_Mul_P2() { + type A = PInt>; + type B = PInt, B0>>; + type P2 = PInt, B0>>; + + #[allow(non_camel_case_types)] + type P1MulP2 = <>::Output as Same>::Output; + + assert_eq!(::to_i64(), ::to_i64()); +} +#[test] +#[allow(non_snake_case)] +fn test_P1_Min_P2() { + type A = PInt>; + type B = PInt, B0>>; + type P1 = PInt>; + + #[allow(non_camel_case_types)] + type P1MinP2 = <>::Output as Same>::Output; + + assert_eq!(::to_i64(), ::to_i64()); +} +#[test] +#[allow(non_snake_case)] +fn test_P1_Max_P2() { + type A = PInt>; + type B = PInt, B0>>; + type P2 = PInt, B0>>; + + #[allow(non_camel_case_types)] + type P1MaxP2 = <>::Output as Same>::Output; + + assert_eq!(::to_i64(), ::to_i64()); +} +#[test] +#[allow(non_snake_case)] +fn test_P1_Gcd_P2() { + type A = PInt>; + type B = PInt, B0>>; + type P1 = PInt>; + + #[allow(non_camel_case_types)] + type P1GcdP2 = <>::Output as Same>::Output; + + assert_eq!(::to_i64(), ::to_i64()); +} +#[test] +#[allow(non_snake_case)] +fn test_P1_Div_P2() { + type A = PInt>; + type B = PInt, B0>>; + type _0 = Z0; + + #[allow(non_camel_case_types)] + type P1DivP2 = <>::Output as Same<_0>>::Output; + + assert_eq!(::to_i64(), <_0 as Integer>::to_i64()); +} +#[test] +#[allow(non_snake_case)] +fn test_P1_Rem_P2() { + type A = PInt>; + type B = PInt, B0>>; + type P1 = PInt>; + + #[allow(non_camel_case_types)] + type P1RemP2 = <>::Output as Same>::Output; + + assert_eq!(::to_i64(), ::to_i64()); +} +#[test] +#[allow(non_snake_case)] +fn test_P1_Pow_P2() { + type A = PInt>; + type B = PInt, B0>>; + type P1 = PInt>; + + #[allow(non_camel_case_types)] + type P1PowP2 = <>::Output as Same>::Output; + + assert_eq!(::to_i64(), ::to_i64()); +} +#[test] +#[allow(non_snake_case)] +fn test_P1_Cmp_P2() { + type A = PInt>; + type B = PInt, B0>>; + + #[allow(non_camel_case_types)] + type P1CmpP2 = >::Output; + assert_eq!(::to_ordering(), Ordering::Less); +} +#[test] +#[allow(non_snake_case)] +fn test_P1_Add_P3() { + type A = PInt>; + type B = PInt, B1>>; + type P4 = PInt, B0>, B0>>; + + #[allow(non_camel_case_types)] + type P1AddP3 = <>::Output as Same>::Output; + + assert_eq!(::to_i64(), ::to_i64()); +} +#[test] +#[allow(non_snake_case)] +fn test_P1_Sub_P3() { + type A = PInt>; + type B = PInt, B1>>; + type N2 = NInt, B0>>; + + #[allow(non_camel_case_types)] + type P1SubP3 = <>::Output as Same>::Output; + + assert_eq!(::to_i64(), ::to_i64()); +} +#[test] +#[allow(non_snake_case)] +fn test_P1_Mul_P3() { + type A = PInt>; + type B = PInt, B1>>; + type P3 = PInt, B1>>; + + #[allow(non_camel_case_types)] + type P1MulP3 = <>::Output as Same>::Output; + + assert_eq!(::to_i64(), ::to_i64()); +} +#[test] +#[allow(non_snake_case)] +fn test_P1_Min_P3() { + type A = PInt>; + type B = PInt, B1>>; + type P1 = PInt>; + + #[allow(non_camel_case_types)] + type P1MinP3 = <>::Output as Same>::Output; + + assert_eq!(::to_i64(), ::to_i64()); +} +#[test] +#[allow(non_snake_case)] +fn test_P1_Max_P3() { + type A = PInt>; + type B = PInt, B1>>; + type P3 = PInt, B1>>; + + #[allow(non_camel_case_types)] + type P1MaxP3 = <>::Output as Same>::Output; + + assert_eq!(::to_i64(), ::to_i64()); +} +#[test] +#[allow(non_snake_case)] +fn test_P1_Gcd_P3() { + type A = PInt>; + type B = PInt, B1>>; + type P1 = PInt>; + + #[allow(non_camel_case_types)] + type P1GcdP3 = <>::Output as Same>::Output; + + assert_eq!(::to_i64(), ::to_i64()); +} +#[test] +#[allow(non_snake_case)] +fn test_P1_Div_P3() { + type A = PInt>; + type B = PInt, B1>>; + type _0 = Z0; + + #[allow(non_camel_case_types)] + type P1DivP3 = <>::Output as Same<_0>>::Output; + + assert_eq!(::to_i64(), <_0 as Integer>::to_i64()); +} +#[test] +#[allow(non_snake_case)] +fn test_P1_Rem_P3() { + type A = PInt>; + type B = PInt, B1>>; + type P1 = PInt>; + + #[allow(non_camel_case_types)] + type P1RemP3 = <>::Output as Same>::Output; + + assert_eq!(::to_i64(), ::to_i64()); +} +#[test] +#[allow(non_snake_case)] +fn test_P1_Pow_P3() { + type A = PInt>; + type B = PInt, B1>>; + type P1 = PInt>; + + #[allow(non_camel_case_types)] + type P1PowP3 = <>::Output as Same>::Output; + + assert_eq!(::to_i64(), ::to_i64()); +} +#[test] +#[allow(non_snake_case)] +fn test_P1_Cmp_P3() { + type A = PInt>; + type B = PInt, B1>>; + + #[allow(non_camel_case_types)] + type P1CmpP3 = >::Output; + assert_eq!(::to_ordering(), Ordering::Less); +} +#[test] +#[allow(non_snake_case)] +fn test_P1_Add_P4() { + type A = PInt>; + type B = PInt, B0>, B0>>; + type P5 = PInt, B0>, B1>>; + + #[allow(non_camel_case_types)] + type P1AddP4 = <>::Output as Same>::Output; + + assert_eq!(::to_i64(), ::to_i64()); +} +#[test] +#[allow(non_snake_case)] +fn test_P1_Sub_P4() { + type A = PInt>; + type B = PInt, B0>, B0>>; + type N3 = NInt, B1>>; + + #[allow(non_camel_case_types)] + type P1SubP4 = <>::Output as Same>::Output; + + assert_eq!(::to_i64(), ::to_i64()); +} +#[test] +#[allow(non_snake_case)] +fn test_P1_Mul_P4() { + type A = PInt>; + type B = PInt, B0>, B0>>; + type P4 = PInt, B0>, B0>>; + + #[allow(non_camel_case_types)] + type P1MulP4 = <>::Output as Same>::Output; + + assert_eq!(::to_i64(), ::to_i64()); +} +#[test] +#[allow(non_snake_case)] +fn test_P1_Min_P4() { + type A = PInt>; + type B = PInt, B0>, B0>>; + type P1 = PInt>; + + #[allow(non_camel_case_types)] + type P1MinP4 = <>::Output as Same>::Output; + + assert_eq!(::to_i64(), ::to_i64()); +} +#[test] +#[allow(non_snake_case)] +fn test_P1_Max_P4() { + type A = PInt>; + type B = PInt, B0>, B0>>; + type P4 = PInt, B0>, B0>>; + + #[allow(non_camel_case_types)] + type P1MaxP4 = <>::Output as Same>::Output; + + assert_eq!(::to_i64(), ::to_i64()); +} +#[test] +#[allow(non_snake_case)] +fn test_P1_Gcd_P4() { + type A = PInt>; + type B = PInt, B0>, B0>>; + type P1 = PInt>; + + #[allow(non_camel_case_types)] + type P1GcdP4 = <>::Output as Same>::Output; + + assert_eq!(::to_i64(), ::to_i64()); +} +#[test] +#[allow(non_snake_case)] +fn test_P1_Div_P4() { + type A = PInt>; + type B = PInt, B0>, B0>>; + type _0 = Z0; + + #[allow(non_camel_case_types)] + type P1DivP4 = <>::Output as Same<_0>>::Output; + + assert_eq!(::to_i64(), <_0 as Integer>::to_i64()); +} +#[test] +#[allow(non_snake_case)] +fn test_P1_Rem_P4() { + type A = PInt>; + type B = PInt, B0>, B0>>; + type P1 = PInt>; + + #[allow(non_camel_case_types)] + type P1RemP4 = <>::Output as Same>::Output; + + assert_eq!(::to_i64(), ::to_i64()); +} +#[test] +#[allow(non_snake_case)] +fn test_P1_Pow_P4() { + type A = PInt>; + type B = PInt, B0>, B0>>; + type P1 = PInt>; + + #[allow(non_camel_case_types)] + type P1PowP4 = <>::Output as Same>::Output; + + assert_eq!(::to_i64(), ::to_i64()); +} +#[test] +#[allow(non_snake_case)] +fn test_P1_Cmp_P4() { + type A = PInt>; + type B = PInt, B0>, B0>>; + + #[allow(non_camel_case_types)] + type P1CmpP4 = >::Output; + assert_eq!(::to_ordering(), Ordering::Less); +} +#[test] +#[allow(non_snake_case)] +fn test_P1_Add_P5() { + type A = PInt>; + type B = PInt, B0>, B1>>; + type P6 = PInt, B1>, B0>>; + + #[allow(non_camel_case_types)] + type P1AddP5 = <>::Output as Same>::Output; + + assert_eq!(::to_i64(), ::to_i64()); +} +#[test] +#[allow(non_snake_case)] +fn test_P1_Sub_P5() { + type A = PInt>; + type B = PInt, B0>, B1>>; + type N4 = NInt, B0>, B0>>; + + #[allow(non_camel_case_types)] + type P1SubP5 = <>::Output as Same>::Output; + + assert_eq!(::to_i64(), ::to_i64()); +} +#[test] +#[allow(non_snake_case)] +fn test_P1_Mul_P5() { + type A = PInt>; + type B = PInt, B0>, B1>>; + type P5 = PInt, B0>, B1>>; + + #[allow(non_camel_case_types)] + type P1MulP5 = <>::Output as Same>::Output; + + assert_eq!(::to_i64(), ::to_i64()); +} +#[test] +#[allow(non_snake_case)] +fn test_P1_Min_P5() { + type A = PInt>; + type B = PInt, B0>, B1>>; + type P1 = PInt>; + + #[allow(non_camel_case_types)] + type P1MinP5 = <>::Output as Same>::Output; + + assert_eq!(::to_i64(), ::to_i64()); +} +#[test] +#[allow(non_snake_case)] +fn test_P1_Max_P5() { + type A = PInt>; + type B = PInt, B0>, B1>>; + type P5 = PInt, B0>, B1>>; + + #[allow(non_camel_case_types)] + type P1MaxP5 = <>::Output as Same>::Output; + + assert_eq!(::to_i64(), ::to_i64()); +} +#[test] +#[allow(non_snake_case)] +fn test_P1_Gcd_P5() { + type A = PInt>; + type B = PInt, B0>, B1>>; + type P1 = PInt>; + + #[allow(non_camel_case_types)] + type P1GcdP5 = <>::Output as Same>::Output; + + assert_eq!(::to_i64(), ::to_i64()); +} +#[test] +#[allow(non_snake_case)] +fn test_P1_Div_P5() { + type A = PInt>; + type B = PInt, B0>, B1>>; + type _0 = Z0; + + #[allow(non_camel_case_types)] + type P1DivP5 = <>::Output as Same<_0>>::Output; + + assert_eq!(::to_i64(), <_0 as Integer>::to_i64()); +} +#[test] +#[allow(non_snake_case)] +fn test_P1_Rem_P5() { + type A = PInt>; + type B = PInt, B0>, B1>>; + type P1 = PInt>; + + #[allow(non_camel_case_types)] + type P1RemP5 = <>::Output as Same>::Output; + + assert_eq!(::to_i64(), ::to_i64()); +} +#[test] +#[allow(non_snake_case)] +fn test_P1_Pow_P5() { + type A = PInt>; + type B = PInt, B0>, B1>>; + type P1 = PInt>; + + #[allow(non_camel_case_types)] + type P1PowP5 = <>::Output as Same>::Output; + + assert_eq!(::to_i64(), ::to_i64()); +} +#[test] +#[allow(non_snake_case)] +fn test_P1_Cmp_P5() { + type A = PInt>; + type B = PInt, B0>, B1>>; + + #[allow(non_camel_case_types)] + type P1CmpP5 = >::Output; + assert_eq!(::to_ordering(), Ordering::Less); +} +#[test] +#[allow(non_snake_case)] +fn test_P2_Add_N5() { + type A = PInt, B0>>; + type B = NInt, B0>, B1>>; + type N3 = NInt, B1>>; + + #[allow(non_camel_case_types)] + type P2AddN5 = <>::Output as Same>::Output; + + assert_eq!(::to_i64(), ::to_i64()); +} +#[test] +#[allow(non_snake_case)] +fn test_P2_Sub_N5() { + type A = PInt, B0>>; + type B = NInt, B0>, B1>>; + type P7 = PInt, B1>, B1>>; + + #[allow(non_camel_case_types)] + type P2SubN5 = <>::Output as Same>::Output; + + assert_eq!(::to_i64(), ::to_i64()); +} +#[test] +#[allow(non_snake_case)] +fn test_P2_Mul_N5() { + type A = PInt, B0>>; + type B = NInt, B0>, B1>>; + type N10 = NInt, B0>, B1>, B0>>; + + #[allow(non_camel_case_types)] + type P2MulN5 = <>::Output as Same>::Output; + + assert_eq!(::to_i64(), ::to_i64()); +} +#[test] +#[allow(non_snake_case)] +fn test_P2_Min_N5() { + type A = PInt, B0>>; + type B = NInt, B0>, B1>>; + type N5 = NInt, B0>, B1>>; + + #[allow(non_camel_case_types)] + type P2MinN5 = <>::Output as Same>::Output; + + assert_eq!(::to_i64(), ::to_i64()); +} +#[test] +#[allow(non_snake_case)] +fn test_P2_Max_N5() { + type A = PInt, B0>>; + type B = NInt, B0>, B1>>; + type P2 = PInt, B0>>; + + #[allow(non_camel_case_types)] + type P2MaxN5 = <>::Output as Same>::Output; + + assert_eq!(::to_i64(), ::to_i64()); +} +#[test] +#[allow(non_snake_case)] +fn test_P2_Gcd_N5() { + type A = PInt, B0>>; + type B = NInt, B0>, B1>>; + type P1 = PInt>; + + #[allow(non_camel_case_types)] + type P2GcdN5 = <>::Output as Same>::Output; + + assert_eq!(::to_i64(), ::to_i64()); +} +#[test] +#[allow(non_snake_case)] +fn test_P2_Div_N5() { + type A = PInt, B0>>; + type B = NInt, B0>, B1>>; + type _0 = Z0; + + #[allow(non_camel_case_types)] + type P2DivN5 = <>::Output as Same<_0>>::Output; + + assert_eq!(::to_i64(), <_0 as Integer>::to_i64()); +} +#[test] +#[allow(non_snake_case)] +fn test_P2_Rem_N5() { + type A = PInt, B0>>; + type B = NInt, B0>, B1>>; + type P2 = PInt, B0>>; + + #[allow(non_camel_case_types)] + type P2RemN5 = <>::Output as Same>::Output; + + assert_eq!(::to_i64(), ::to_i64()); +} +#[test] +#[allow(non_snake_case)] +fn test_P2_Cmp_N5() { + type A = PInt, B0>>; + type B = NInt, B0>, B1>>; + + #[allow(non_camel_case_types)] + type P2CmpN5 = >::Output; + assert_eq!(::to_ordering(), Ordering::Greater); +} +#[test] +#[allow(non_snake_case)] +fn test_P2_Add_N4() { + type A = PInt, B0>>; + type B = NInt, B0>, B0>>; + type N2 = NInt, B0>>; + + #[allow(non_camel_case_types)] + type P2AddN4 = <>::Output as Same>::Output; + + assert_eq!(::to_i64(), ::to_i64()); +} +#[test] +#[allow(non_snake_case)] +fn test_P2_Sub_N4() { + type A = PInt, B0>>; + type B = NInt, B0>, B0>>; + type P6 = PInt, B1>, B0>>; + + #[allow(non_camel_case_types)] + type P2SubN4 = <>::Output as Same>::Output; + + assert_eq!(::to_i64(), ::to_i64()); +} +#[test] +#[allow(non_snake_case)] +fn test_P2_Mul_N4() { + type A = PInt, B0>>; + type B = NInt, B0>, B0>>; + type N8 = NInt, B0>, B0>, B0>>; + + #[allow(non_camel_case_types)] + type P2MulN4 = <>::Output as Same>::Output; + + assert_eq!(::to_i64(), ::to_i64()); +} +#[test] +#[allow(non_snake_case)] +fn test_P2_Min_N4() { + type A = PInt, B0>>; + type B = NInt, B0>, B0>>; + type N4 = NInt, B0>, B0>>; + + #[allow(non_camel_case_types)] + type P2MinN4 = <>::Output as Same>::Output; + + assert_eq!(::to_i64(), ::to_i64()); +} +#[test] +#[allow(non_snake_case)] +fn test_P2_Max_N4() { + type A = PInt, B0>>; + type B = NInt, B0>, B0>>; + type P2 = PInt, B0>>; + + #[allow(non_camel_case_types)] + type P2MaxN4 = <>::Output as Same>::Output; + + assert_eq!(::to_i64(), ::to_i64()); +} +#[test] +#[allow(non_snake_case)] +fn test_P2_Gcd_N4() { + type A = PInt, B0>>; + type B = NInt, B0>, B0>>; + type P2 = PInt, B0>>; + + #[allow(non_camel_case_types)] + type P2GcdN4 = <>::Output as Same>::Output; + + assert_eq!(::to_i64(), ::to_i64()); +} +#[test] +#[allow(non_snake_case)] +fn test_P2_Div_N4() { + type A = PInt, B0>>; + type B = NInt, B0>, B0>>; + type _0 = Z0; + + #[allow(non_camel_case_types)] + type P2DivN4 = <>::Output as Same<_0>>::Output; + + assert_eq!(::to_i64(), <_0 as Integer>::to_i64()); +} +#[test] +#[allow(non_snake_case)] +fn test_P2_Rem_N4() { + type A = PInt, B0>>; + type B = NInt, B0>, B0>>; + type P2 = PInt, B0>>; + + #[allow(non_camel_case_types)] + type P2RemN4 = <>::Output as Same>::Output; + + assert_eq!(::to_i64(), ::to_i64()); +} +#[test] +#[allow(non_snake_case)] +fn test_P2_Cmp_N4() { + type A = PInt, B0>>; + type B = NInt, B0>, B0>>; + + #[allow(non_camel_case_types)] + type P2CmpN4 = >::Output; + assert_eq!(::to_ordering(), Ordering::Greater); +} +#[test] +#[allow(non_snake_case)] +fn test_P2_Add_N3() { + type A = PInt, B0>>; + type B = NInt, B1>>; + type N1 = NInt>; + + #[allow(non_camel_case_types)] + type P2AddN3 = <>::Output as Same>::Output; + + assert_eq!(::to_i64(), ::to_i64()); +} +#[test] +#[allow(non_snake_case)] +fn test_P2_Sub_N3() { + type A = PInt, B0>>; + type B = NInt, B1>>; + type P5 = PInt, B0>, B1>>; + + #[allow(non_camel_case_types)] + type P2SubN3 = <>::Output as Same>::Output; + + assert_eq!(::to_i64(), ::to_i64()); +} +#[test] +#[allow(non_snake_case)] +fn test_P2_Mul_N3() { + type A = PInt, B0>>; + type B = NInt, B1>>; + type N6 = NInt, B1>, B0>>; + + #[allow(non_camel_case_types)] + type P2MulN3 = <>::Output as Same>::Output; + + assert_eq!(::to_i64(), ::to_i64()); +} +#[test] +#[allow(non_snake_case)] +fn test_P2_Min_N3() { + type A = PInt, B0>>; + type B = NInt, B1>>; + type N3 = NInt, B1>>; + + #[allow(non_camel_case_types)] + type P2MinN3 = <>::Output as Same>::Output; + + assert_eq!(::to_i64(), ::to_i64()); +} +#[test] +#[allow(non_snake_case)] +fn test_P2_Max_N3() { + type A = PInt, B0>>; + type B = NInt, B1>>; + type P2 = PInt, B0>>; + + #[allow(non_camel_case_types)] + type P2MaxN3 = <>::Output as Same>::Output; + + assert_eq!(::to_i64(), ::to_i64()); +} +#[test] +#[allow(non_snake_case)] +fn test_P2_Gcd_N3() { + type A = PInt, B0>>; + type B = NInt, B1>>; + type P1 = PInt>; + + #[allow(non_camel_case_types)] + type P2GcdN3 = <>::Output as Same>::Output; + + assert_eq!(::to_i64(), ::to_i64()); +} +#[test] +#[allow(non_snake_case)] +fn test_P2_Div_N3() { + type A = PInt, B0>>; + type B = NInt, B1>>; + type _0 = Z0; + + #[allow(non_camel_case_types)] + type P2DivN3 = <>::Output as Same<_0>>::Output; + + assert_eq!(::to_i64(), <_0 as Integer>::to_i64()); +} +#[test] +#[allow(non_snake_case)] +fn test_P2_Rem_N3() { + type A = PInt, B0>>; + type B = NInt, B1>>; + type P2 = PInt, B0>>; + + #[allow(non_camel_case_types)] + type P2RemN3 = <>::Output as Same>::Output; + + assert_eq!(::to_i64(), ::to_i64()); +} +#[test] +#[allow(non_snake_case)] +fn test_P2_Cmp_N3() { + type A = PInt, B0>>; + type B = NInt, B1>>; + + #[allow(non_camel_case_types)] + type P2CmpN3 = >::Output; + assert_eq!(::to_ordering(), Ordering::Greater); +} +#[test] +#[allow(non_snake_case)] +fn test_P2_Add_N2() { + type A = PInt, B0>>; + type B = NInt, B0>>; + type _0 = Z0; + + #[allow(non_camel_case_types)] + type P2AddN2 = <>::Output as Same<_0>>::Output; + + assert_eq!(::to_i64(), <_0 as Integer>::to_i64()); +} +#[test] +#[allow(non_snake_case)] +fn test_P2_Sub_N2() { + type A = PInt, B0>>; + type B = NInt, B0>>; + type P4 = PInt, B0>, B0>>; + + #[allow(non_camel_case_types)] + type P2SubN2 = <>::Output as Same>::Output; + + assert_eq!(::to_i64(), ::to_i64()); +} +#[test] +#[allow(non_snake_case)] +fn test_P2_Mul_N2() { + type A = PInt, B0>>; + type B = NInt, B0>>; + type N4 = NInt, B0>, B0>>; + + #[allow(non_camel_case_types)] + type P2MulN2 = <>::Output as Same>::Output; + + assert_eq!(::to_i64(), ::to_i64()); +} +#[test] +#[allow(non_snake_case)] +fn test_P2_Min_N2() { + type A = PInt, B0>>; + type B = NInt, B0>>; + type N2 = NInt, B0>>; + + #[allow(non_camel_case_types)] + type P2MinN2 = <>::Output as Same>::Output; + + assert_eq!(::to_i64(), ::to_i64()); +} +#[test] +#[allow(non_snake_case)] +fn test_P2_Max_N2() { + type A = PInt, B0>>; + type B = NInt, B0>>; + type P2 = PInt, B0>>; + + #[allow(non_camel_case_types)] + type P2MaxN2 = <>::Output as Same>::Output; + + assert_eq!(::to_i64(), ::to_i64()); +} +#[test] +#[allow(non_snake_case)] +fn test_P2_Gcd_N2() { + type A = PInt, B0>>; + type B = NInt, B0>>; + type P2 = PInt, B0>>; + + #[allow(non_camel_case_types)] + type P2GcdN2 = <>::Output as Same>::Output; + + assert_eq!(::to_i64(), ::to_i64()); +} +#[test] +#[allow(non_snake_case)] +fn test_P2_Div_N2() { + type A = PInt, B0>>; + type B = NInt, B0>>; + type N1 = NInt>; + + #[allow(non_camel_case_types)] + type P2DivN2 = <>::Output as Same>::Output; + + assert_eq!(::to_i64(), ::to_i64()); +} +#[test] +#[allow(non_snake_case)] +fn test_P2_Rem_N2() { + type A = PInt, B0>>; + type B = NInt, B0>>; + type _0 = Z0; + + #[allow(non_camel_case_types)] + type P2RemN2 = <>::Output as Same<_0>>::Output; + + assert_eq!(::to_i64(), <_0 as Integer>::to_i64()); +} +#[test] +#[allow(non_snake_case)] +fn test_P2_PartialDiv_N2() { + type A = PInt, B0>>; + type B = NInt, B0>>; + type N1 = NInt>; + + #[allow(non_camel_case_types)] + type P2PartialDivN2 = <>::Output as Same>::Output; + + assert_eq!(::to_i64(), ::to_i64()); +} +#[test] +#[allow(non_snake_case)] +fn test_P2_Cmp_N2() { + type A = PInt, B0>>; + type B = NInt, B0>>; + + #[allow(non_camel_case_types)] + type P2CmpN2 = >::Output; + assert_eq!(::to_ordering(), Ordering::Greater); +} +#[test] +#[allow(non_snake_case)] +fn test_P2_Add_N1() { + type A = PInt, B0>>; + type B = NInt>; + type P1 = PInt>; + + #[allow(non_camel_case_types)] + type P2AddN1 = <>::Output as Same>::Output; + + assert_eq!(::to_i64(), ::to_i64()); +} +#[test] +#[allow(non_snake_case)] +fn test_P2_Sub_N1() { + type A = PInt, B0>>; + type B = NInt>; + type P3 = PInt, B1>>; + + #[allow(non_camel_case_types)] + type P2SubN1 = <>::Output as Same>::Output; + + assert_eq!(::to_i64(), ::to_i64()); +} +#[test] +#[allow(non_snake_case)] +fn test_P2_Mul_N1() { + type A = PInt, B0>>; + type B = NInt>; + type N2 = NInt, B0>>; + + #[allow(non_camel_case_types)] + type P2MulN1 = <>::Output as Same>::Output; + + assert_eq!(::to_i64(), ::to_i64()); +} +#[test] +#[allow(non_snake_case)] +fn test_P2_Min_N1() { + type A = PInt, B0>>; + type B = NInt>; + type N1 = NInt>; + + #[allow(non_camel_case_types)] + type P2MinN1 = <>::Output as Same>::Output; + + assert_eq!(::to_i64(), ::to_i64()); +} +#[test] +#[allow(non_snake_case)] +fn test_P2_Max_N1() { + type A = PInt, B0>>; + type B = NInt>; + type P2 = PInt, B0>>; + + #[allow(non_camel_case_types)] + type P2MaxN1 = <>::Output as Same>::Output; + + assert_eq!(::to_i64(), ::to_i64()); +} +#[test] +#[allow(non_snake_case)] +fn test_P2_Gcd_N1() { + type A = PInt, B0>>; + type B = NInt>; + type P1 = PInt>; + + #[allow(non_camel_case_types)] + type P2GcdN1 = <>::Output as Same>::Output; + + assert_eq!(::to_i64(), ::to_i64()); +} +#[test] +#[allow(non_snake_case)] +fn test_P2_Div_N1() { + type A = PInt, B0>>; + type B = NInt>; + type N2 = NInt, B0>>; + + #[allow(non_camel_case_types)] + type P2DivN1 = <>::Output as Same>::Output; + + assert_eq!(::to_i64(), ::to_i64()); +} +#[test] +#[allow(non_snake_case)] +fn test_P2_Rem_N1() { + type A = PInt, B0>>; + type B = NInt>; + type _0 = Z0; + + #[allow(non_camel_case_types)] + type P2RemN1 = <>::Output as Same<_0>>::Output; + + assert_eq!(::to_i64(), <_0 as Integer>::to_i64()); +} +#[test] +#[allow(non_snake_case)] +fn test_P2_PartialDiv_N1() { + type A = PInt, B0>>; + type B = NInt>; + type N2 = NInt, B0>>; + + #[allow(non_camel_case_types)] + type P2PartialDivN1 = <>::Output as Same>::Output; + + assert_eq!(::to_i64(), ::to_i64()); +} +#[test] +#[allow(non_snake_case)] +fn test_P2_Cmp_N1() { + type A = PInt, B0>>; + type B = NInt>; + + #[allow(non_camel_case_types)] + type P2CmpN1 = >::Output; + assert_eq!(::to_ordering(), Ordering::Greater); +} +#[test] +#[allow(non_snake_case)] +fn test_P2_Add__0() { + type A = PInt, B0>>; + type B = Z0; + type P2 = PInt, B0>>; + + #[allow(non_camel_case_types)] + type P2Add_0 = <>::Output as Same>::Output; + + assert_eq!(::to_i64(), ::to_i64()); +} +#[test] +#[allow(non_snake_case)] +fn test_P2_Sub__0() { + type A = PInt, B0>>; + type B = Z0; + type P2 = PInt, B0>>; + + #[allow(non_camel_case_types)] + type P2Sub_0 = <>::Output as Same>::Output; + + assert_eq!(::to_i64(), ::to_i64()); +} +#[test] +#[allow(non_snake_case)] +fn test_P2_Mul__0() { + type A = PInt, B0>>; + type B = Z0; + type _0 = Z0; + + #[allow(non_camel_case_types)] + type P2Mul_0 = <>::Output as Same<_0>>::Output; + + assert_eq!(::to_i64(), <_0 as Integer>::to_i64()); +} +#[test] +#[allow(non_snake_case)] +fn test_P2_Min__0() { + type A = PInt, B0>>; + type B = Z0; + type _0 = Z0; + + #[allow(non_camel_case_types)] + type P2Min_0 = <>::Output as Same<_0>>::Output; + + assert_eq!(::to_i64(), <_0 as Integer>::to_i64()); +} +#[test] +#[allow(non_snake_case)] +fn test_P2_Max__0() { + type A = PInt, B0>>; + type B = Z0; + type P2 = PInt, B0>>; + + #[allow(non_camel_case_types)] + type P2Max_0 = <>::Output as Same>::Output; + + assert_eq!(::to_i64(), ::to_i64()); +} +#[test] +#[allow(non_snake_case)] +fn test_P2_Gcd__0() { + type A = PInt, B0>>; + type B = Z0; + type P2 = PInt, B0>>; + + #[allow(non_camel_case_types)] + type P2Gcd_0 = <>::Output as Same>::Output; + + assert_eq!(::to_i64(), ::to_i64()); +} +#[test] +#[allow(non_snake_case)] +fn test_P2_Pow__0() { + type A = PInt, B0>>; + type B = Z0; + type P1 = PInt>; + + #[allow(non_camel_case_types)] + type P2Pow_0 = <>::Output as Same>::Output; + + assert_eq!(::to_i64(), ::to_i64()); +} +#[test] +#[allow(non_snake_case)] +fn test_P2_Cmp__0() { + type A = PInt, B0>>; + type B = Z0; + + #[allow(non_camel_case_types)] + type P2Cmp_0 = >::Output; + assert_eq!(::to_ordering(), Ordering::Greater); +} +#[test] +#[allow(non_snake_case)] +fn test_P2_Add_P1() { + type A = PInt, B0>>; + type B = PInt>; + type P3 = PInt, B1>>; + + #[allow(non_camel_case_types)] + type P2AddP1 = <>::Output as Same>::Output; + + assert_eq!(::to_i64(), ::to_i64()); +} +#[test] +#[allow(non_snake_case)] +fn test_P2_Sub_P1() { + type A = PInt, B0>>; + type B = PInt>; + type P1 = PInt>; + + #[allow(non_camel_case_types)] + type P2SubP1 = <>::Output as Same>::Output; + + assert_eq!(::to_i64(), ::to_i64()); +} +#[test] +#[allow(non_snake_case)] +fn test_P2_Mul_P1() { + type A = PInt, B0>>; + type B = PInt>; + type P2 = PInt, B0>>; + + #[allow(non_camel_case_types)] + type P2MulP1 = <>::Output as Same>::Output; + + assert_eq!(::to_i64(), ::to_i64()); +} +#[test] +#[allow(non_snake_case)] +fn test_P2_Min_P1() { + type A = PInt, B0>>; + type B = PInt>; + type P1 = PInt>; + + #[allow(non_camel_case_types)] + type P2MinP1 = <>::Output as Same>::Output; + + assert_eq!(::to_i64(), ::to_i64()); +} +#[test] +#[allow(non_snake_case)] +fn test_P2_Max_P1() { + type A = PInt, B0>>; + type B = PInt>; + type P2 = PInt, B0>>; + + #[allow(non_camel_case_types)] + type P2MaxP1 = <>::Output as Same>::Output; + + assert_eq!(::to_i64(), ::to_i64()); +} +#[test] +#[allow(non_snake_case)] +fn test_P2_Gcd_P1() { + type A = PInt, B0>>; + type B = PInt>; + type P1 = PInt>; + + #[allow(non_camel_case_types)] + type P2GcdP1 = <>::Output as Same>::Output; + + assert_eq!(::to_i64(), ::to_i64()); +} +#[test] +#[allow(non_snake_case)] +fn test_P2_Div_P1() { + type A = PInt, B0>>; + type B = PInt>; + type P2 = PInt, B0>>; + + #[allow(non_camel_case_types)] + type P2DivP1 = <>::Output as Same>::Output; + + assert_eq!(::to_i64(), ::to_i64()); +} +#[test] +#[allow(non_snake_case)] +fn test_P2_Rem_P1() { + type A = PInt, B0>>; + type B = PInt>; + type _0 = Z0; + + #[allow(non_camel_case_types)] + type P2RemP1 = <>::Output as Same<_0>>::Output; + + assert_eq!(::to_i64(), <_0 as Integer>::to_i64()); +} +#[test] +#[allow(non_snake_case)] +fn test_P2_PartialDiv_P1() { + type A = PInt, B0>>; + type B = PInt>; + type P2 = PInt, B0>>; + + #[allow(non_camel_case_types)] + type P2PartialDivP1 = <>::Output as Same>::Output; + + assert_eq!(::to_i64(), ::to_i64()); +} +#[test] +#[allow(non_snake_case)] +fn test_P2_Pow_P1() { + type A = PInt, B0>>; + type B = PInt>; + type P2 = PInt, B0>>; + + #[allow(non_camel_case_types)] + type P2PowP1 = <>::Output as Same>::Output; + + assert_eq!(::to_i64(), ::to_i64()); +} +#[test] +#[allow(non_snake_case)] +fn test_P2_Cmp_P1() { + type A = PInt, B0>>; + type B = PInt>; + + #[allow(non_camel_case_types)] + type P2CmpP1 = >::Output; + assert_eq!(::to_ordering(), Ordering::Greater); +} +#[test] +#[allow(non_snake_case)] +fn test_P2_Add_P2() { + type A = PInt, B0>>; + type B = PInt, B0>>; + type P4 = PInt, B0>, B0>>; + + #[allow(non_camel_case_types)] + type P2AddP2 = <>::Output as Same>::Output; + + assert_eq!(::to_i64(), ::to_i64()); +} +#[test] +#[allow(non_snake_case)] +fn test_P2_Sub_P2() { + type A = PInt, B0>>; + type B = PInt, B0>>; + type _0 = Z0; + + #[allow(non_camel_case_types)] + type P2SubP2 = <>::Output as Same<_0>>::Output; + + assert_eq!(::to_i64(), <_0 as Integer>::to_i64()); +} +#[test] +#[allow(non_snake_case)] +fn test_P2_Mul_P2() { + type A = PInt, B0>>; + type B = PInt, B0>>; + type P4 = PInt, B0>, B0>>; + + #[allow(non_camel_case_types)] + type P2MulP2 = <>::Output as Same>::Output; + + assert_eq!(::to_i64(), ::to_i64()); +} +#[test] +#[allow(non_snake_case)] +fn test_P2_Min_P2() { + type A = PInt, B0>>; + type B = PInt, B0>>; + type P2 = PInt, B0>>; + + #[allow(non_camel_case_types)] + type P2MinP2 = <>::Output as Same>::Output; + + assert_eq!(::to_i64(), ::to_i64()); +} +#[test] +#[allow(non_snake_case)] +fn test_P2_Max_P2() { + type A = PInt, B0>>; + type B = PInt, B0>>; + type P2 = PInt, B0>>; + + #[allow(non_camel_case_types)] + type P2MaxP2 = <>::Output as Same>::Output; + + assert_eq!(::to_i64(), ::to_i64()); +} +#[test] +#[allow(non_snake_case)] +fn test_P2_Gcd_P2() { + type A = PInt, B0>>; + type B = PInt, B0>>; + type P2 = PInt, B0>>; + + #[allow(non_camel_case_types)] + type P2GcdP2 = <>::Output as Same>::Output; + + assert_eq!(::to_i64(), ::to_i64()); +} +#[test] +#[allow(non_snake_case)] +fn test_P2_Div_P2() { + type A = PInt, B0>>; + type B = PInt, B0>>; + type P1 = PInt>; + + #[allow(non_camel_case_types)] + type P2DivP2 = <>::Output as Same>::Output; + + assert_eq!(::to_i64(), ::to_i64()); +} +#[test] +#[allow(non_snake_case)] +fn test_P2_Rem_P2() { + type A = PInt, B0>>; + type B = PInt, B0>>; + type _0 = Z0; + + #[allow(non_camel_case_types)] + type P2RemP2 = <>::Output as Same<_0>>::Output; + + assert_eq!(::to_i64(), <_0 as Integer>::to_i64()); +} +#[test] +#[allow(non_snake_case)] +fn test_P2_PartialDiv_P2() { + type A = PInt, B0>>; + type B = PInt, B0>>; + type P1 = PInt>; + + #[allow(non_camel_case_types)] + type P2PartialDivP2 = <>::Output as Same>::Output; + + assert_eq!(::to_i64(), ::to_i64()); +} +#[test] +#[allow(non_snake_case)] +fn test_P2_Pow_P2() { + type A = PInt, B0>>; + type B = PInt, B0>>; + type P4 = PInt, B0>, B0>>; + + #[allow(non_camel_case_types)] + type P2PowP2 = <>::Output as Same>::Output; + + assert_eq!(::to_i64(), ::to_i64()); +} +#[test] +#[allow(non_snake_case)] +fn test_P2_Cmp_P2() { + type A = PInt, B0>>; + type B = PInt, B0>>; + + #[allow(non_camel_case_types)] + type P2CmpP2 = >::Output; + assert_eq!(::to_ordering(), Ordering::Equal); +} +#[test] +#[allow(non_snake_case)] +fn test_P2_Add_P3() { + type A = PInt, B0>>; + type B = PInt, B1>>; + type P5 = PInt, B0>, B1>>; + + #[allow(non_camel_case_types)] + type P2AddP3 = <>::Output as Same>::Output; + + assert_eq!(::to_i64(), ::to_i64()); +} +#[test] +#[allow(non_snake_case)] +fn test_P2_Sub_P3() { + type A = PInt, B0>>; + type B = PInt, B1>>; + type N1 = NInt>; + + #[allow(non_camel_case_types)] + type P2SubP3 = <>::Output as Same>::Output; + + assert_eq!(::to_i64(), ::to_i64()); +} +#[test] +#[allow(non_snake_case)] +fn test_P2_Mul_P3() { + type A = PInt, B0>>; + type B = PInt, B1>>; + type P6 = PInt, B1>, B0>>; + + #[allow(non_camel_case_types)] + type P2MulP3 = <>::Output as Same>::Output; + + assert_eq!(::to_i64(), ::to_i64()); +} +#[test] +#[allow(non_snake_case)] +fn test_P2_Min_P3() { + type A = PInt, B0>>; + type B = PInt, B1>>; + type P2 = PInt, B0>>; + + #[allow(non_camel_case_types)] + type P2MinP3 = <>::Output as Same>::Output; + + assert_eq!(::to_i64(), ::to_i64()); +} +#[test] +#[allow(non_snake_case)] +fn test_P2_Max_P3() { + type A = PInt, B0>>; + type B = PInt, B1>>; + type P3 = PInt, B1>>; + + #[allow(non_camel_case_types)] + type P2MaxP3 = <>::Output as Same>::Output; + + assert_eq!(::to_i64(), ::to_i64()); +} +#[test] +#[allow(non_snake_case)] +fn test_P2_Gcd_P3() { + type A = PInt, B0>>; + type B = PInt, B1>>; + type P1 = PInt>; + + #[allow(non_camel_case_types)] + type P2GcdP3 = <>::Output as Same>::Output; + + assert_eq!(::to_i64(), ::to_i64()); +} +#[test] +#[allow(non_snake_case)] +fn test_P2_Div_P3() { + type A = PInt, B0>>; + type B = PInt, B1>>; + type _0 = Z0; + + #[allow(non_camel_case_types)] + type P2DivP3 = <>::Output as Same<_0>>::Output; + + assert_eq!(::to_i64(), <_0 as Integer>::to_i64()); +} +#[test] +#[allow(non_snake_case)] +fn test_P2_Rem_P3() { + type A = PInt, B0>>; + type B = PInt, B1>>; + type P2 = PInt, B0>>; + + #[allow(non_camel_case_types)] + type P2RemP3 = <>::Output as Same>::Output; + + assert_eq!(::to_i64(), ::to_i64()); +} +#[test] +#[allow(non_snake_case)] +fn test_P2_Pow_P3() { + type A = PInt, B0>>; + type B = PInt, B1>>; + type P8 = PInt, B0>, B0>, B0>>; + + #[allow(non_camel_case_types)] + type P2PowP3 = <>::Output as Same>::Output; + + assert_eq!(::to_i64(), ::to_i64()); +} +#[test] +#[allow(non_snake_case)] +fn test_P2_Cmp_P3() { + type A = PInt, B0>>; + type B = PInt, B1>>; + + #[allow(non_camel_case_types)] + type P2CmpP3 = >::Output; + assert_eq!(::to_ordering(), Ordering::Less); +} +#[test] +#[allow(non_snake_case)] +fn test_P2_Add_P4() { + type A = PInt, B0>>; + type B = PInt, B0>, B0>>; + type P6 = PInt, B1>, B0>>; + + #[allow(non_camel_case_types)] + type P2AddP4 = <>::Output as Same>::Output; + + assert_eq!(::to_i64(), ::to_i64()); +} +#[test] +#[allow(non_snake_case)] +fn test_P2_Sub_P4() { + type A = PInt, B0>>; + type B = PInt, B0>, B0>>; + type N2 = NInt, B0>>; + + #[allow(non_camel_case_types)] + type P2SubP4 = <>::Output as Same>::Output; + + assert_eq!(::to_i64(), ::to_i64()); +} +#[test] +#[allow(non_snake_case)] +fn test_P2_Mul_P4() { + type A = PInt, B0>>; + type B = PInt, B0>, B0>>; + type P8 = PInt, B0>, B0>, B0>>; + + #[allow(non_camel_case_types)] + type P2MulP4 = <>::Output as Same>::Output; + + assert_eq!(::to_i64(), ::to_i64()); +} +#[test] +#[allow(non_snake_case)] +fn test_P2_Min_P4() { + type A = PInt, B0>>; + type B = PInt, B0>, B0>>; + type P2 = PInt, B0>>; + + #[allow(non_camel_case_types)] + type P2MinP4 = <>::Output as Same>::Output; + + assert_eq!(::to_i64(), ::to_i64()); +} +#[test] +#[allow(non_snake_case)] +fn test_P2_Max_P4() { + type A = PInt, B0>>; + type B = PInt, B0>, B0>>; + type P4 = PInt, B0>, B0>>; + + #[allow(non_camel_case_types)] + type P2MaxP4 = <>::Output as Same>::Output; + + assert_eq!(::to_i64(), ::to_i64()); +} +#[test] +#[allow(non_snake_case)] +fn test_P2_Gcd_P4() { + type A = PInt, B0>>; + type B = PInt, B0>, B0>>; + type P2 = PInt, B0>>; + + #[allow(non_camel_case_types)] + type P2GcdP4 = <>::Output as Same>::Output; + + assert_eq!(::to_i64(), ::to_i64()); +} +#[test] +#[allow(non_snake_case)] +fn test_P2_Div_P4() { + type A = PInt, B0>>; + type B = PInt, B0>, B0>>; + type _0 = Z0; + + #[allow(non_camel_case_types)] + type P2DivP4 = <>::Output as Same<_0>>::Output; + + assert_eq!(::to_i64(), <_0 as Integer>::to_i64()); +} +#[test] +#[allow(non_snake_case)] +fn test_P2_Rem_P4() { + type A = PInt, B0>>; + type B = PInt, B0>, B0>>; + type P2 = PInt, B0>>; + + #[allow(non_camel_case_types)] + type P2RemP4 = <>::Output as Same>::Output; + + assert_eq!(::to_i64(), ::to_i64()); +} +#[test] +#[allow(non_snake_case)] +fn test_P2_Pow_P4() { + type A = PInt, B0>>; + type B = PInt, B0>, B0>>; + type P16 = PInt, B0>, B0>, B0>, B0>>; + + #[allow(non_camel_case_types)] + type P2PowP4 = <>::Output as Same>::Output; + + assert_eq!(::to_i64(), ::to_i64()); +} +#[test] +#[allow(non_snake_case)] +fn test_P2_Cmp_P4() { + type A = PInt, B0>>; + type B = PInt, B0>, B0>>; + + #[allow(non_camel_case_types)] + type P2CmpP4 = >::Output; + assert_eq!(::to_ordering(), Ordering::Less); +} +#[test] +#[allow(non_snake_case)] +fn test_P2_Add_P5() { + type A = PInt, B0>>; + type B = PInt, B0>, B1>>; + type P7 = PInt, B1>, B1>>; + + #[allow(non_camel_case_types)] + type P2AddP5 = <>::Output as Same>::Output; + + assert_eq!(::to_i64(), ::to_i64()); +} +#[test] +#[allow(non_snake_case)] +fn test_P2_Sub_P5() { + type A = PInt, B0>>; + type B = PInt, B0>, B1>>; + type N3 = NInt, B1>>; + + #[allow(non_camel_case_types)] + type P2SubP5 = <>::Output as Same>::Output; + + assert_eq!(::to_i64(), ::to_i64()); +} +#[test] +#[allow(non_snake_case)] +fn test_P2_Mul_P5() { + type A = PInt, B0>>; + type B = PInt, B0>, B1>>; + type P10 = PInt, B0>, B1>, B0>>; + + #[allow(non_camel_case_types)] + type P2MulP5 = <>::Output as Same>::Output; + + assert_eq!(::to_i64(), ::to_i64()); +} +#[test] +#[allow(non_snake_case)] +fn test_P2_Min_P5() { + type A = PInt, B0>>; + type B = PInt, B0>, B1>>; + type P2 = PInt, B0>>; + + #[allow(non_camel_case_types)] + type P2MinP5 = <>::Output as Same>::Output; + + assert_eq!(::to_i64(), ::to_i64()); +} +#[test] +#[allow(non_snake_case)] +fn test_P2_Max_P5() { + type A = PInt, B0>>; + type B = PInt, B0>, B1>>; + type P5 = PInt, B0>, B1>>; + + #[allow(non_camel_case_types)] + type P2MaxP5 = <>::Output as Same>::Output; + + assert_eq!(::to_i64(), ::to_i64()); +} +#[test] +#[allow(non_snake_case)] +fn test_P2_Gcd_P5() { + type A = PInt, B0>>; + type B = PInt, B0>, B1>>; + type P1 = PInt>; + + #[allow(non_camel_case_types)] + type P2GcdP5 = <>::Output as Same>::Output; + + assert_eq!(::to_i64(), ::to_i64()); +} +#[test] +#[allow(non_snake_case)] +fn test_P2_Div_P5() { + type A = PInt, B0>>; + type B = PInt, B0>, B1>>; + type _0 = Z0; + + #[allow(non_camel_case_types)] + type P2DivP5 = <>::Output as Same<_0>>::Output; + + assert_eq!(::to_i64(), <_0 as Integer>::to_i64()); +} +#[test] +#[allow(non_snake_case)] +fn test_P2_Rem_P5() { + type A = PInt, B0>>; + type B = PInt, B0>, B1>>; + type P2 = PInt, B0>>; + + #[allow(non_camel_case_types)] + type P2RemP5 = <>::Output as Same>::Output; + + assert_eq!(::to_i64(), ::to_i64()); +} +#[test] +#[allow(non_snake_case)] +fn test_P2_Pow_P5() { + type A = PInt, B0>>; + type B = PInt, B0>, B1>>; + type P32 = PInt, B0>, B0>, B0>, B0>, B0>>; + + #[allow(non_camel_case_types)] + type P2PowP5 = <>::Output as Same>::Output; + + assert_eq!(::to_i64(), ::to_i64()); +} +#[test] +#[allow(non_snake_case)] +fn test_P2_Cmp_P5() { + type A = PInt, B0>>; + type B = PInt, B0>, B1>>; + + #[allow(non_camel_case_types)] + type P2CmpP5 = >::Output; + assert_eq!(::to_ordering(), Ordering::Less); +} +#[test] +#[allow(non_snake_case)] +fn test_P3_Add_N5() { + type A = PInt, B1>>; + type B = NInt, B0>, B1>>; + type N2 = NInt, B0>>; + + #[allow(non_camel_case_types)] + type P3AddN5 = <>::Output as Same>::Output; + + assert_eq!(::to_i64(), ::to_i64()); +} +#[test] +#[allow(non_snake_case)] +fn test_P3_Sub_N5() { + type A = PInt, B1>>; + type B = NInt, B0>, B1>>; + type P8 = PInt, B0>, B0>, B0>>; + + #[allow(non_camel_case_types)] + type P3SubN5 = <>::Output as Same>::Output; + + assert_eq!(::to_i64(), ::to_i64()); +} +#[test] +#[allow(non_snake_case)] +fn test_P3_Mul_N5() { + type A = PInt, B1>>; + type B = NInt, B0>, B1>>; + type N15 = NInt, B1>, B1>, B1>>; + + #[allow(non_camel_case_types)] + type P3MulN5 = <>::Output as Same>::Output; + + assert_eq!(::to_i64(), ::to_i64()); +} +#[test] +#[allow(non_snake_case)] +fn test_P3_Min_N5() { + type A = PInt, B1>>; + type B = NInt, B0>, B1>>; + type N5 = NInt, B0>, B1>>; + + #[allow(non_camel_case_types)] + type P3MinN5 = <>::Output as Same>::Output; + + assert_eq!(::to_i64(), ::to_i64()); +} +#[test] +#[allow(non_snake_case)] +fn test_P3_Max_N5() { + type A = PInt, B1>>; + type B = NInt, B0>, B1>>; + type P3 = PInt, B1>>; + + #[allow(non_camel_case_types)] + type P3MaxN5 = <>::Output as Same>::Output; + + assert_eq!(::to_i64(), ::to_i64()); +} +#[test] +#[allow(non_snake_case)] +fn test_P3_Gcd_N5() { + type A = PInt, B1>>; + type B = NInt, B0>, B1>>; + type P1 = PInt>; + + #[allow(non_camel_case_types)] + type P3GcdN5 = <>::Output as Same>::Output; + + assert_eq!(::to_i64(), ::to_i64()); +} +#[test] +#[allow(non_snake_case)] +fn test_P3_Div_N5() { + type A = PInt, B1>>; + type B = NInt, B0>, B1>>; + type _0 = Z0; + + #[allow(non_camel_case_types)] + type P3DivN5 = <>::Output as Same<_0>>::Output; + + assert_eq!(::to_i64(), <_0 as Integer>::to_i64()); +} +#[test] +#[allow(non_snake_case)] +fn test_P3_Rem_N5() { + type A = PInt, B1>>; + type B = NInt, B0>, B1>>; + type P3 = PInt, B1>>; + + #[allow(non_camel_case_types)] + type P3RemN5 = <>::Output as Same>::Output; + + assert_eq!(::to_i64(), ::to_i64()); +} +#[test] +#[allow(non_snake_case)] +fn test_P3_Cmp_N5() { + type A = PInt, B1>>; + type B = NInt, B0>, B1>>; + + #[allow(non_camel_case_types)] + type P3CmpN5 = >::Output; + assert_eq!(::to_ordering(), Ordering::Greater); +} +#[test] +#[allow(non_snake_case)] +fn test_P3_Add_N4() { + type A = PInt, B1>>; + type B = NInt, B0>, B0>>; + type N1 = NInt>; + + #[allow(non_camel_case_types)] + type P3AddN4 = <>::Output as Same>::Output; + + assert_eq!(::to_i64(), ::to_i64()); +} +#[test] +#[allow(non_snake_case)] +fn test_P3_Sub_N4() { + type A = PInt, B1>>; + type B = NInt, B0>, B0>>; + type P7 = PInt, B1>, B1>>; + + #[allow(non_camel_case_types)] + type P3SubN4 = <>::Output as Same>::Output; + + assert_eq!(::to_i64(), ::to_i64()); +} +#[test] +#[allow(non_snake_case)] +fn test_P3_Mul_N4() { + type A = PInt, B1>>; + type B = NInt, B0>, B0>>; + type N12 = NInt, B1>, B0>, B0>>; + + #[allow(non_camel_case_types)] + type P3MulN4 = <>::Output as Same>::Output; + + assert_eq!(::to_i64(), ::to_i64()); +} +#[test] +#[allow(non_snake_case)] +fn test_P3_Min_N4() { + type A = PInt, B1>>; + type B = NInt, B0>, B0>>; + type N4 = NInt, B0>, B0>>; + + #[allow(non_camel_case_types)] + type P3MinN4 = <>::Output as Same>::Output; + + assert_eq!(::to_i64(), ::to_i64()); +} +#[test] +#[allow(non_snake_case)] +fn test_P3_Max_N4() { + type A = PInt, B1>>; + type B = NInt, B0>, B0>>; + type P3 = PInt, B1>>; + + #[allow(non_camel_case_types)] + type P3MaxN4 = <>::Output as Same>::Output; + + assert_eq!(::to_i64(), ::to_i64()); +} +#[test] +#[allow(non_snake_case)] +fn test_P3_Gcd_N4() { + type A = PInt, B1>>; + type B = NInt, B0>, B0>>; + type P1 = PInt>; + + #[allow(non_camel_case_types)] + type P3GcdN4 = <>::Output as Same>::Output; + + assert_eq!(::to_i64(), ::to_i64()); +} +#[test] +#[allow(non_snake_case)] +fn test_P3_Div_N4() { + type A = PInt, B1>>; + type B = NInt, B0>, B0>>; + type _0 = Z0; + + #[allow(non_camel_case_types)] + type P3DivN4 = <>::Output as Same<_0>>::Output; + + assert_eq!(::to_i64(), <_0 as Integer>::to_i64()); +} +#[test] +#[allow(non_snake_case)] +fn test_P3_Rem_N4() { + type A = PInt, B1>>; + type B = NInt, B0>, B0>>; + type P3 = PInt, B1>>; + + #[allow(non_camel_case_types)] + type P3RemN4 = <>::Output as Same>::Output; + + assert_eq!(::to_i64(), ::to_i64()); +} +#[test] +#[allow(non_snake_case)] +fn test_P3_Cmp_N4() { + type A = PInt, B1>>; + type B = NInt, B0>, B0>>; + + #[allow(non_camel_case_types)] + type P3CmpN4 = >::Output; + assert_eq!(::to_ordering(), Ordering::Greater); +} +#[test] +#[allow(non_snake_case)] +fn test_P3_Add_N3() { + type A = PInt, B1>>; + type B = NInt, B1>>; + type _0 = Z0; + + #[allow(non_camel_case_types)] + type P3AddN3 = <>::Output as Same<_0>>::Output; + + assert_eq!(::to_i64(), <_0 as Integer>::to_i64()); +} +#[test] +#[allow(non_snake_case)] +fn test_P3_Sub_N3() { + type A = PInt, B1>>; + type B = NInt, B1>>; + type P6 = PInt, B1>, B0>>; + + #[allow(non_camel_case_types)] + type P3SubN3 = <>::Output as Same>::Output; + + assert_eq!(::to_i64(), ::to_i64()); +} +#[test] +#[allow(non_snake_case)] +fn test_P3_Mul_N3() { + type A = PInt, B1>>; + type B = NInt, B1>>; + type N9 = NInt, B0>, B0>, B1>>; + + #[allow(non_camel_case_types)] + type P3MulN3 = <>::Output as Same>::Output; + + assert_eq!(::to_i64(), ::to_i64()); +} +#[test] +#[allow(non_snake_case)] +fn test_P3_Min_N3() { + type A = PInt, B1>>; + type B = NInt, B1>>; + type N3 = NInt, B1>>; + + #[allow(non_camel_case_types)] + type P3MinN3 = <>::Output as Same>::Output; + + assert_eq!(::to_i64(), ::to_i64()); +} +#[test] +#[allow(non_snake_case)] +fn test_P3_Max_N3() { + type A = PInt, B1>>; + type B = NInt, B1>>; + type P3 = PInt, B1>>; + + #[allow(non_camel_case_types)] + type P3MaxN3 = <>::Output as Same>::Output; + + assert_eq!(::to_i64(), ::to_i64()); +} +#[test] +#[allow(non_snake_case)] +fn test_P3_Gcd_N3() { + type A = PInt, B1>>; + type B = NInt, B1>>; + type P3 = PInt, B1>>; + + #[allow(non_camel_case_types)] + type P3GcdN3 = <>::Output as Same>::Output; + + assert_eq!(::to_i64(), ::to_i64()); +} +#[test] +#[allow(non_snake_case)] +fn test_P3_Div_N3() { + type A = PInt, B1>>; + type B = NInt, B1>>; + type N1 = NInt>; + + #[allow(non_camel_case_types)] + type P3DivN3 = <>::Output as Same>::Output; + + assert_eq!(::to_i64(), ::to_i64()); +} +#[test] +#[allow(non_snake_case)] +fn test_P3_Rem_N3() { + type A = PInt, B1>>; + type B = NInt, B1>>; + type _0 = Z0; + + #[allow(non_camel_case_types)] + type P3RemN3 = <>::Output as Same<_0>>::Output; + + assert_eq!(::to_i64(), <_0 as Integer>::to_i64()); +} +#[test] +#[allow(non_snake_case)] +fn test_P3_PartialDiv_N3() { + type A = PInt, B1>>; + type B = NInt, B1>>; + type N1 = NInt>; + + #[allow(non_camel_case_types)] + type P3PartialDivN3 = <>::Output as Same>::Output; + + assert_eq!(::to_i64(), ::to_i64()); +} +#[test] +#[allow(non_snake_case)] +fn test_P3_Cmp_N3() { + type A = PInt, B1>>; + type B = NInt, B1>>; + + #[allow(non_camel_case_types)] + type P3CmpN3 = >::Output; + assert_eq!(::to_ordering(), Ordering::Greater); +} +#[test] +#[allow(non_snake_case)] +fn test_P3_Add_N2() { + type A = PInt, B1>>; + type B = NInt, B0>>; + type P1 = PInt>; + + #[allow(non_camel_case_types)] + type P3AddN2 = <>::Output as Same>::Output; + + assert_eq!(::to_i64(), ::to_i64()); +} +#[test] +#[allow(non_snake_case)] +fn test_P3_Sub_N2() { + type A = PInt, B1>>; + type B = NInt, B0>>; + type P5 = PInt, B0>, B1>>; + + #[allow(non_camel_case_types)] + type P3SubN2 = <>::Output as Same>::Output; + + assert_eq!(::to_i64(), ::to_i64()); +} +#[test] +#[allow(non_snake_case)] +fn test_P3_Mul_N2() { + type A = PInt, B1>>; + type B = NInt, B0>>; + type N6 = NInt, B1>, B0>>; + + #[allow(non_camel_case_types)] + type P3MulN2 = <>::Output as Same>::Output; + + assert_eq!(::to_i64(), ::to_i64()); +} +#[test] +#[allow(non_snake_case)] +fn test_P3_Min_N2() { + type A = PInt, B1>>; + type B = NInt, B0>>; + type N2 = NInt, B0>>; + + #[allow(non_camel_case_types)] + type P3MinN2 = <>::Output as Same>::Output; + + assert_eq!(::to_i64(), ::to_i64()); +} +#[test] +#[allow(non_snake_case)] +fn test_P3_Max_N2() { + type A = PInt, B1>>; + type B = NInt, B0>>; + type P3 = PInt, B1>>; + + #[allow(non_camel_case_types)] + type P3MaxN2 = <>::Output as Same>::Output; + + assert_eq!(::to_i64(), ::to_i64()); +} +#[test] +#[allow(non_snake_case)] +fn test_P3_Gcd_N2() { + type A = PInt, B1>>; + type B = NInt, B0>>; + type P1 = PInt>; + + #[allow(non_camel_case_types)] + type P3GcdN2 = <>::Output as Same>::Output; + + assert_eq!(::to_i64(), ::to_i64()); +} +#[test] +#[allow(non_snake_case)] +fn test_P3_Div_N2() { + type A = PInt, B1>>; + type B = NInt, B0>>; + type N1 = NInt>; + + #[allow(non_camel_case_types)] + type P3DivN2 = <>::Output as Same>::Output; + + assert_eq!(::to_i64(), ::to_i64()); +} +#[test] +#[allow(non_snake_case)] +fn test_P3_Rem_N2() { + type A = PInt, B1>>; + type B = NInt, B0>>; + type P1 = PInt>; + + #[allow(non_camel_case_types)] + type P3RemN2 = <>::Output as Same>::Output; + + assert_eq!(::to_i64(), ::to_i64()); +} +#[test] +#[allow(non_snake_case)] +fn test_P3_Cmp_N2() { + type A = PInt, B1>>; + type B = NInt, B0>>; + + #[allow(non_camel_case_types)] + type P3CmpN2 = >::Output; + assert_eq!(::to_ordering(), Ordering::Greater); +} +#[test] +#[allow(non_snake_case)] +fn test_P3_Add_N1() { + type A = PInt, B1>>; + type B = NInt>; + type P2 = PInt, B0>>; + + #[allow(non_camel_case_types)] + type P3AddN1 = <>::Output as Same>::Output; + + assert_eq!(::to_i64(), ::to_i64()); +} +#[test] +#[allow(non_snake_case)] +fn test_P3_Sub_N1() { + type A = PInt, B1>>; + type B = NInt>; + type P4 = PInt, B0>, B0>>; + + #[allow(non_camel_case_types)] + type P3SubN1 = <>::Output as Same>::Output; + + assert_eq!(::to_i64(), ::to_i64()); +} +#[test] +#[allow(non_snake_case)] +fn test_P3_Mul_N1() { + type A = PInt, B1>>; + type B = NInt>; + type N3 = NInt, B1>>; + + #[allow(non_camel_case_types)] + type P3MulN1 = <>::Output as Same>::Output; + + assert_eq!(::to_i64(), ::to_i64()); +} +#[test] +#[allow(non_snake_case)] +fn test_P3_Min_N1() { + type A = PInt, B1>>; + type B = NInt>; + type N1 = NInt>; + + #[allow(non_camel_case_types)] + type P3MinN1 = <>::Output as Same>::Output; + + assert_eq!(::to_i64(), ::to_i64()); +} +#[test] +#[allow(non_snake_case)] +fn test_P3_Max_N1() { + type A = PInt, B1>>; + type B = NInt>; + type P3 = PInt, B1>>; + + #[allow(non_camel_case_types)] + type P3MaxN1 = <>::Output as Same>::Output; + + assert_eq!(::to_i64(), ::to_i64()); +} +#[test] +#[allow(non_snake_case)] +fn test_P3_Gcd_N1() { + type A = PInt, B1>>; + type B = NInt>; + type P1 = PInt>; + + #[allow(non_camel_case_types)] + type P3GcdN1 = <>::Output as Same>::Output; + + assert_eq!(::to_i64(), ::to_i64()); +} +#[test] +#[allow(non_snake_case)] +fn test_P3_Div_N1() { + type A = PInt, B1>>; + type B = NInt>; + type N3 = NInt, B1>>; + + #[allow(non_camel_case_types)] + type P3DivN1 = <>::Output as Same>::Output; + + assert_eq!(::to_i64(), ::to_i64()); +} +#[test] +#[allow(non_snake_case)] +fn test_P3_Rem_N1() { + type A = PInt, B1>>; + type B = NInt>; + type _0 = Z0; + + #[allow(non_camel_case_types)] + type P3RemN1 = <>::Output as Same<_0>>::Output; + + assert_eq!(::to_i64(), <_0 as Integer>::to_i64()); +} +#[test] +#[allow(non_snake_case)] +fn test_P3_PartialDiv_N1() { + type A = PInt, B1>>; + type B = NInt>; + type N3 = NInt, B1>>; + + #[allow(non_camel_case_types)] + type P3PartialDivN1 = <>::Output as Same>::Output; + + assert_eq!(::to_i64(), ::to_i64()); +} +#[test] +#[allow(non_snake_case)] +fn test_P3_Cmp_N1() { + type A = PInt, B1>>; + type B = NInt>; + + #[allow(non_camel_case_types)] + type P3CmpN1 = >::Output; + assert_eq!(::to_ordering(), Ordering::Greater); +} +#[test] +#[allow(non_snake_case)] +fn test_P3_Add__0() { + type A = PInt, B1>>; + type B = Z0; + type P3 = PInt, B1>>; + + #[allow(non_camel_case_types)] + type P3Add_0 = <>::Output as Same>::Output; + + assert_eq!(::to_i64(), ::to_i64()); +} +#[test] +#[allow(non_snake_case)] +fn test_P3_Sub__0() { + type A = PInt, B1>>; + type B = Z0; + type P3 = PInt, B1>>; + + #[allow(non_camel_case_types)] + type P3Sub_0 = <>::Output as Same>::Output; + + assert_eq!(::to_i64(), ::to_i64()); +} +#[test] +#[allow(non_snake_case)] +fn test_P3_Mul__0() { + type A = PInt, B1>>; + type B = Z0; + type _0 = Z0; + + #[allow(non_camel_case_types)] + type P3Mul_0 = <>::Output as Same<_0>>::Output; + + assert_eq!(::to_i64(), <_0 as Integer>::to_i64()); +} +#[test] +#[allow(non_snake_case)] +fn test_P3_Min__0() { + type A = PInt, B1>>; + type B = Z0; + type _0 = Z0; + + #[allow(non_camel_case_types)] + type P3Min_0 = <>::Output as Same<_0>>::Output; + + assert_eq!(::to_i64(), <_0 as Integer>::to_i64()); +} +#[test] +#[allow(non_snake_case)] +fn test_P3_Max__0() { + type A = PInt, B1>>; + type B = Z0; + type P3 = PInt, B1>>; + + #[allow(non_camel_case_types)] + type P3Max_0 = <>::Output as Same>::Output; + + assert_eq!(::to_i64(), ::to_i64()); +} +#[test] +#[allow(non_snake_case)] +fn test_P3_Gcd__0() { + type A = PInt, B1>>; + type B = Z0; + type P3 = PInt, B1>>; + + #[allow(non_camel_case_types)] + type P3Gcd_0 = <>::Output as Same>::Output; + + assert_eq!(::to_i64(), ::to_i64()); +} +#[test] +#[allow(non_snake_case)] +fn test_P3_Pow__0() { + type A = PInt, B1>>; + type B = Z0; + type P1 = PInt>; + + #[allow(non_camel_case_types)] + type P3Pow_0 = <>::Output as Same>::Output; + + assert_eq!(::to_i64(), ::to_i64()); +} +#[test] +#[allow(non_snake_case)] +fn test_P3_Cmp__0() { + type A = PInt, B1>>; + type B = Z0; + + #[allow(non_camel_case_types)] + type P3Cmp_0 = >::Output; + assert_eq!(::to_ordering(), Ordering::Greater); +} +#[test] +#[allow(non_snake_case)] +fn test_P3_Add_P1() { + type A = PInt, B1>>; + type B = PInt>; + type P4 = PInt, B0>, B0>>; + + #[allow(non_camel_case_types)] + type P3AddP1 = <>::Output as Same>::Output; + + assert_eq!(::to_i64(), ::to_i64()); +} +#[test] +#[allow(non_snake_case)] +fn test_P3_Sub_P1() { + type A = PInt, B1>>; + type B = PInt>; + type P2 = PInt, B0>>; + + #[allow(non_camel_case_types)] + type P3SubP1 = <>::Output as Same>::Output; + + assert_eq!(::to_i64(), ::to_i64()); +} +#[test] +#[allow(non_snake_case)] +fn test_P3_Mul_P1() { + type A = PInt, B1>>; + type B = PInt>; + type P3 = PInt, B1>>; + + #[allow(non_camel_case_types)] + type P3MulP1 = <>::Output as Same>::Output; + + assert_eq!(::to_i64(), ::to_i64()); +} +#[test] +#[allow(non_snake_case)] +fn test_P3_Min_P1() { + type A = PInt, B1>>; + type B = PInt>; + type P1 = PInt>; + + #[allow(non_camel_case_types)] + type P3MinP1 = <>::Output as Same>::Output; + + assert_eq!(::to_i64(), ::to_i64()); +} +#[test] +#[allow(non_snake_case)] +fn test_P3_Max_P1() { + type A = PInt, B1>>; + type B = PInt>; + type P3 = PInt, B1>>; + + #[allow(non_camel_case_types)] + type P3MaxP1 = <>::Output as Same>::Output; + + assert_eq!(::to_i64(), ::to_i64()); +} +#[test] +#[allow(non_snake_case)] +fn test_P3_Gcd_P1() { + type A = PInt, B1>>; + type B = PInt>; + type P1 = PInt>; + + #[allow(non_camel_case_types)] + type P3GcdP1 = <>::Output as Same>::Output; + + assert_eq!(::to_i64(), ::to_i64()); +} +#[test] +#[allow(non_snake_case)] +fn test_P3_Div_P1() { + type A = PInt, B1>>; + type B = PInt>; + type P3 = PInt, B1>>; + + #[allow(non_camel_case_types)] + type P3DivP1 = <>::Output as Same>::Output; + + assert_eq!(::to_i64(), ::to_i64()); +} +#[test] +#[allow(non_snake_case)] +fn test_P3_Rem_P1() { + type A = PInt, B1>>; + type B = PInt>; + type _0 = Z0; + + #[allow(non_camel_case_types)] + type P3RemP1 = <>::Output as Same<_0>>::Output; + + assert_eq!(::to_i64(), <_0 as Integer>::to_i64()); +} +#[test] +#[allow(non_snake_case)] +fn test_P3_PartialDiv_P1() { + type A = PInt, B1>>; + type B = PInt>; + type P3 = PInt, B1>>; + + #[allow(non_camel_case_types)] + type P3PartialDivP1 = <>::Output as Same>::Output; + + assert_eq!(::to_i64(), ::to_i64()); +} +#[test] +#[allow(non_snake_case)] +fn test_P3_Pow_P1() { + type A = PInt, B1>>; + type B = PInt>; + type P3 = PInt, B1>>; + + #[allow(non_camel_case_types)] + type P3PowP1 = <>::Output as Same>::Output; + + assert_eq!(::to_i64(), ::to_i64()); +} +#[test] +#[allow(non_snake_case)] +fn test_P3_Cmp_P1() { + type A = PInt, B1>>; + type B = PInt>; + + #[allow(non_camel_case_types)] + type P3CmpP1 = >::Output; + assert_eq!(::to_ordering(), Ordering::Greater); +} +#[test] +#[allow(non_snake_case)] +fn test_P3_Add_P2() { + type A = PInt, B1>>; + type B = PInt, B0>>; + type P5 = PInt, B0>, B1>>; + + #[allow(non_camel_case_types)] + type P3AddP2 = <>::Output as Same>::Output; + + assert_eq!(::to_i64(), ::to_i64()); +} +#[test] +#[allow(non_snake_case)] +fn test_P3_Sub_P2() { + type A = PInt, B1>>; + type B = PInt, B0>>; + type P1 = PInt>; + + #[allow(non_camel_case_types)] + type P3SubP2 = <>::Output as Same>::Output; + + assert_eq!(::to_i64(), ::to_i64()); +} +#[test] +#[allow(non_snake_case)] +fn test_P3_Mul_P2() { + type A = PInt, B1>>; + type B = PInt, B0>>; + type P6 = PInt, B1>, B0>>; + + #[allow(non_camel_case_types)] + type P3MulP2 = <>::Output as Same>::Output; + + assert_eq!(::to_i64(), ::to_i64()); +} +#[test] +#[allow(non_snake_case)] +fn test_P3_Min_P2() { + type A = PInt, B1>>; + type B = PInt, B0>>; + type P2 = PInt, B0>>; + + #[allow(non_camel_case_types)] + type P3MinP2 = <>::Output as Same>::Output; + + assert_eq!(::to_i64(), ::to_i64()); +} +#[test] +#[allow(non_snake_case)] +fn test_P3_Max_P2() { + type A = PInt, B1>>; + type B = PInt, B0>>; + type P3 = PInt, B1>>; + + #[allow(non_camel_case_types)] + type P3MaxP2 = <>::Output as Same>::Output; + + assert_eq!(::to_i64(), ::to_i64()); +} +#[test] +#[allow(non_snake_case)] +fn test_P3_Gcd_P2() { + type A = PInt, B1>>; + type B = PInt, B0>>; + type P1 = PInt>; + + #[allow(non_camel_case_types)] + type P3GcdP2 = <>::Output as Same>::Output; + + assert_eq!(::to_i64(), ::to_i64()); +} +#[test] +#[allow(non_snake_case)] +fn test_P3_Div_P2() { + type A = PInt, B1>>; + type B = PInt, B0>>; + type P1 = PInt>; + + #[allow(non_camel_case_types)] + type P3DivP2 = <>::Output as Same>::Output; + + assert_eq!(::to_i64(), ::to_i64()); +} +#[test] +#[allow(non_snake_case)] +fn test_P3_Rem_P2() { + type A = PInt, B1>>; + type B = PInt, B0>>; + type P1 = PInt>; + + #[allow(non_camel_case_types)] + type P3RemP2 = <>::Output as Same>::Output; + + assert_eq!(::to_i64(), ::to_i64()); +} +#[test] +#[allow(non_snake_case)] +fn test_P3_Pow_P2() { + type A = PInt, B1>>; + type B = PInt, B0>>; + type P9 = PInt, B0>, B0>, B1>>; + + #[allow(non_camel_case_types)] + type P3PowP2 = <>::Output as Same>::Output; + + assert_eq!(::to_i64(), ::to_i64()); +} +#[test] +#[allow(non_snake_case)] +fn test_P3_Cmp_P2() { + type A = PInt, B1>>; + type B = PInt, B0>>; + + #[allow(non_camel_case_types)] + type P3CmpP2 = >::Output; + assert_eq!(::to_ordering(), Ordering::Greater); +} +#[test] +#[allow(non_snake_case)] +fn test_P3_Add_P3() { + type A = PInt, B1>>; + type B = PInt, B1>>; + type P6 = PInt, B1>, B0>>; + + #[allow(non_camel_case_types)] + type P3AddP3 = <>::Output as Same>::Output; + + assert_eq!(::to_i64(), ::to_i64()); +} +#[test] +#[allow(non_snake_case)] +fn test_P3_Sub_P3() { + type A = PInt, B1>>; + type B = PInt, B1>>; + type _0 = Z0; + + #[allow(non_camel_case_types)] + type P3SubP3 = <>::Output as Same<_0>>::Output; + + assert_eq!(::to_i64(), <_0 as Integer>::to_i64()); +} +#[test] +#[allow(non_snake_case)] +fn test_P3_Mul_P3() { + type A = PInt, B1>>; + type B = PInt, B1>>; + type P9 = PInt, B0>, B0>, B1>>; + + #[allow(non_camel_case_types)] + type P3MulP3 = <>::Output as Same>::Output; + + assert_eq!(::to_i64(), ::to_i64()); +} +#[test] +#[allow(non_snake_case)] +fn test_P3_Min_P3() { + type A = PInt, B1>>; + type B = PInt, B1>>; + type P3 = PInt, B1>>; + + #[allow(non_camel_case_types)] + type P3MinP3 = <>::Output as Same>::Output; + + assert_eq!(::to_i64(), ::to_i64()); +} +#[test] +#[allow(non_snake_case)] +fn test_P3_Max_P3() { + type A = PInt, B1>>; + type B = PInt, B1>>; + type P3 = PInt, B1>>; + + #[allow(non_camel_case_types)] + type P3MaxP3 = <>::Output as Same>::Output; + + assert_eq!(::to_i64(), ::to_i64()); +} +#[test] +#[allow(non_snake_case)] +fn test_P3_Gcd_P3() { + type A = PInt, B1>>; + type B = PInt, B1>>; + type P3 = PInt, B1>>; + + #[allow(non_camel_case_types)] + type P3GcdP3 = <>::Output as Same>::Output; + + assert_eq!(::to_i64(), ::to_i64()); +} +#[test] +#[allow(non_snake_case)] +fn test_P3_Div_P3() { + type A = PInt, B1>>; + type B = PInt, B1>>; + type P1 = PInt>; + + #[allow(non_camel_case_types)] + type P3DivP3 = <>::Output as Same>::Output; + + assert_eq!(::to_i64(), ::to_i64()); +} +#[test] +#[allow(non_snake_case)] +fn test_P3_Rem_P3() { + type A = PInt, B1>>; + type B = PInt, B1>>; + type _0 = Z0; + + #[allow(non_camel_case_types)] + type P3RemP3 = <>::Output as Same<_0>>::Output; + + assert_eq!(::to_i64(), <_0 as Integer>::to_i64()); +} +#[test] +#[allow(non_snake_case)] +fn test_P3_PartialDiv_P3() { + type A = PInt, B1>>; + type B = PInt, B1>>; + type P1 = PInt>; + + #[allow(non_camel_case_types)] + type P3PartialDivP3 = <>::Output as Same>::Output; + + assert_eq!(::to_i64(), ::to_i64()); +} +#[test] +#[allow(non_snake_case)] +fn test_P3_Pow_P3() { + type A = PInt, B1>>; + type B = PInt, B1>>; + type P27 = PInt, B1>, B0>, B1>, B1>>; + + #[allow(non_camel_case_types)] + type P3PowP3 = <>::Output as Same>::Output; + + assert_eq!(::to_i64(), ::to_i64()); +} +#[test] +#[allow(non_snake_case)] +fn test_P3_Cmp_P3() { + type A = PInt, B1>>; + type B = PInt, B1>>; + + #[allow(non_camel_case_types)] + type P3CmpP3 = >::Output; + assert_eq!(::to_ordering(), Ordering::Equal); +} +#[test] +#[allow(non_snake_case)] +fn test_P3_Add_P4() { + type A = PInt, B1>>; + type B = PInt, B0>, B0>>; + type P7 = PInt, B1>, B1>>; + + #[allow(non_camel_case_types)] + type P3AddP4 = <>::Output as Same>::Output; + + assert_eq!(::to_i64(), ::to_i64()); +} +#[test] +#[allow(non_snake_case)] +fn test_P3_Sub_P4() { + type A = PInt, B1>>; + type B = PInt, B0>, B0>>; + type N1 = NInt>; + + #[allow(non_camel_case_types)] + type P3SubP4 = <>::Output as Same>::Output; + + assert_eq!(::to_i64(), ::to_i64()); +} +#[test] +#[allow(non_snake_case)] +fn test_P3_Mul_P4() { + type A = PInt, B1>>; + type B = PInt, B0>, B0>>; + type P12 = PInt, B1>, B0>, B0>>; + + #[allow(non_camel_case_types)] + type P3MulP4 = <>::Output as Same>::Output; + + assert_eq!(::to_i64(), ::to_i64()); +} +#[test] +#[allow(non_snake_case)] +fn test_P3_Min_P4() { + type A = PInt, B1>>; + type B = PInt, B0>, B0>>; + type P3 = PInt, B1>>; + + #[allow(non_camel_case_types)] + type P3MinP4 = <>::Output as Same>::Output; + + assert_eq!(::to_i64(), ::to_i64()); +} +#[test] +#[allow(non_snake_case)] +fn test_P3_Max_P4() { + type A = PInt, B1>>; + type B = PInt, B0>, B0>>; + type P4 = PInt, B0>, B0>>; + + #[allow(non_camel_case_types)] + type P3MaxP4 = <>::Output as Same>::Output; + + assert_eq!(::to_i64(), ::to_i64()); +} +#[test] +#[allow(non_snake_case)] +fn test_P3_Gcd_P4() { + type A = PInt, B1>>; + type B = PInt, B0>, B0>>; + type P1 = PInt>; + + #[allow(non_camel_case_types)] + type P3GcdP4 = <>::Output as Same>::Output; + + assert_eq!(::to_i64(), ::to_i64()); +} +#[test] +#[allow(non_snake_case)] +fn test_P3_Div_P4() { + type A = PInt, B1>>; + type B = PInt, B0>, B0>>; + type _0 = Z0; + + #[allow(non_camel_case_types)] + type P3DivP4 = <>::Output as Same<_0>>::Output; + + assert_eq!(::to_i64(), <_0 as Integer>::to_i64()); +} +#[test] +#[allow(non_snake_case)] +fn test_P3_Rem_P4() { + type A = PInt, B1>>; + type B = PInt, B0>, B0>>; + type P3 = PInt, B1>>; + + #[allow(non_camel_case_types)] + type P3RemP4 = <>::Output as Same>::Output; + + assert_eq!(::to_i64(), ::to_i64()); +} +#[test] +#[allow(non_snake_case)] +fn test_P3_Pow_P4() { + type A = PInt, B1>>; + type B = PInt, B0>, B0>>; + type P81 = PInt, B0>, B1>, B0>, B0>, B0>, B1>>; + + #[allow(non_camel_case_types)] + type P3PowP4 = <>::Output as Same>::Output; + + assert_eq!(::to_i64(), ::to_i64()); +} +#[test] +#[allow(non_snake_case)] +fn test_P3_Cmp_P4() { + type A = PInt, B1>>; + type B = PInt, B0>, B0>>; + + #[allow(non_camel_case_types)] + type P3CmpP4 = >::Output; + assert_eq!(::to_ordering(), Ordering::Less); +} +#[test] +#[allow(non_snake_case)] +fn test_P3_Add_P5() { + type A = PInt, B1>>; + type B = PInt, B0>, B1>>; + type P8 = PInt, B0>, B0>, B0>>; + + #[allow(non_camel_case_types)] + type P3AddP5 = <>::Output as Same>::Output; + + assert_eq!(::to_i64(), ::to_i64()); +} +#[test] +#[allow(non_snake_case)] +fn test_P3_Sub_P5() { + type A = PInt, B1>>; + type B = PInt, B0>, B1>>; + type N2 = NInt, B0>>; + + #[allow(non_camel_case_types)] + type P3SubP5 = <>::Output as Same>::Output; + + assert_eq!(::to_i64(), ::to_i64()); +} +#[test] +#[allow(non_snake_case)] +fn test_P3_Mul_P5() { + type A = PInt, B1>>; + type B = PInt, B0>, B1>>; + type P15 = PInt, B1>, B1>, B1>>; + + #[allow(non_camel_case_types)] + type P3MulP5 = <>::Output as Same>::Output; + + assert_eq!(::to_i64(), ::to_i64()); +} +#[test] +#[allow(non_snake_case)] +fn test_P3_Min_P5() { + type A = PInt, B1>>; + type B = PInt, B0>, B1>>; + type P3 = PInt, B1>>; + + #[allow(non_camel_case_types)] + type P3MinP5 = <>::Output as Same>::Output; + + assert_eq!(::to_i64(), ::to_i64()); +} +#[test] +#[allow(non_snake_case)] +fn test_P3_Max_P5() { + type A = PInt, B1>>; + type B = PInt, B0>, B1>>; + type P5 = PInt, B0>, B1>>; + + #[allow(non_camel_case_types)] + type P3MaxP5 = <>::Output as Same>::Output; + + assert_eq!(::to_i64(), ::to_i64()); +} +#[test] +#[allow(non_snake_case)] +fn test_P3_Gcd_P5() { + type A = PInt, B1>>; + type B = PInt, B0>, B1>>; + type P1 = PInt>; + + #[allow(non_camel_case_types)] + type P3GcdP5 = <>::Output as Same>::Output; + + assert_eq!(::to_i64(), ::to_i64()); +} +#[test] +#[allow(non_snake_case)] +fn test_P3_Div_P5() { + type A = PInt, B1>>; + type B = PInt, B0>, B1>>; + type _0 = Z0; + + #[allow(non_camel_case_types)] + type P3DivP5 = <>::Output as Same<_0>>::Output; + + assert_eq!(::to_i64(), <_0 as Integer>::to_i64()); +} +#[test] +#[allow(non_snake_case)] +fn test_P3_Rem_P5() { + type A = PInt, B1>>; + type B = PInt, B0>, B1>>; + type P3 = PInt, B1>>; + + #[allow(non_camel_case_types)] + type P3RemP5 = <>::Output as Same>::Output; + + assert_eq!(::to_i64(), ::to_i64()); +} +#[test] +#[allow(non_snake_case)] +fn test_P3_Pow_P5() { + type A = PInt, B1>>; + type B = PInt, B0>, B1>>; + type P243 = PInt, B1>, B1>, B1>, B0>, B0>, B1>, B1>>; + + #[allow(non_camel_case_types)] + type P3PowP5 = <>::Output as Same>::Output; + + assert_eq!(::to_i64(), ::to_i64()); +} +#[test] +#[allow(non_snake_case)] +fn test_P3_Cmp_P5() { + type A = PInt, B1>>; + type B = PInt, B0>, B1>>; + + #[allow(non_camel_case_types)] + type P3CmpP5 = >::Output; + assert_eq!(::to_ordering(), Ordering::Less); +} +#[test] +#[allow(non_snake_case)] +fn test_P4_Add_N5() { + type A = PInt, B0>, B0>>; + type B = NInt, B0>, B1>>; + type N1 = NInt>; + + #[allow(non_camel_case_types)] + type P4AddN5 = <>::Output as Same>::Output; + + assert_eq!(::to_i64(), ::to_i64()); +} +#[test] +#[allow(non_snake_case)] +fn test_P4_Sub_N5() { + type A = PInt, B0>, B0>>; + type B = NInt, B0>, B1>>; + type P9 = PInt, B0>, B0>, B1>>; + + #[allow(non_camel_case_types)] + type P4SubN5 = <>::Output as Same>::Output; + + assert_eq!(::to_i64(), ::to_i64()); +} +#[test] +#[allow(non_snake_case)] +fn test_P4_Mul_N5() { + type A = PInt, B0>, B0>>; + type B = NInt, B0>, B1>>; + type N20 = NInt, B0>, B1>, B0>, B0>>; + + #[allow(non_camel_case_types)] + type P4MulN5 = <>::Output as Same>::Output; + + assert_eq!(::to_i64(), ::to_i64()); +} +#[test] +#[allow(non_snake_case)] +fn test_P4_Min_N5() { + type A = PInt, B0>, B0>>; + type B = NInt, B0>, B1>>; + type N5 = NInt, B0>, B1>>; + + #[allow(non_camel_case_types)] + type P4MinN5 = <>::Output as Same>::Output; + + assert_eq!(::to_i64(), ::to_i64()); +} +#[test] +#[allow(non_snake_case)] +fn test_P4_Max_N5() { + type A = PInt, B0>, B0>>; + type B = NInt, B0>, B1>>; + type P4 = PInt, B0>, B0>>; + + #[allow(non_camel_case_types)] + type P4MaxN5 = <>::Output as Same>::Output; + + assert_eq!(::to_i64(), ::to_i64()); +} +#[test] +#[allow(non_snake_case)] +fn test_P4_Gcd_N5() { + type A = PInt, B0>, B0>>; + type B = NInt, B0>, B1>>; + type P1 = PInt>; + + #[allow(non_camel_case_types)] + type P4GcdN5 = <>::Output as Same>::Output; + + assert_eq!(::to_i64(), ::to_i64()); +} +#[test] +#[allow(non_snake_case)] +fn test_P4_Div_N5() { + type A = PInt, B0>, B0>>; + type B = NInt, B0>, B1>>; + type _0 = Z0; + + #[allow(non_camel_case_types)] + type P4DivN5 = <>::Output as Same<_0>>::Output; + + assert_eq!(::to_i64(), <_0 as Integer>::to_i64()); +} +#[test] +#[allow(non_snake_case)] +fn test_P4_Rem_N5() { + type A = PInt, B0>, B0>>; + type B = NInt, B0>, B1>>; + type P4 = PInt, B0>, B0>>; + + #[allow(non_camel_case_types)] + type P4RemN5 = <>::Output as Same>::Output; + + assert_eq!(::to_i64(), ::to_i64()); +} +#[test] +#[allow(non_snake_case)] +fn test_P4_Cmp_N5() { + type A = PInt, B0>, B0>>; + type B = NInt, B0>, B1>>; + + #[allow(non_camel_case_types)] + type P4CmpN5 = >::Output; + assert_eq!(::to_ordering(), Ordering::Greater); +} +#[test] +#[allow(non_snake_case)] +fn test_P4_Add_N4() { + type A = PInt, B0>, B0>>; + type B = NInt, B0>, B0>>; + type _0 = Z0; + + #[allow(non_camel_case_types)] + type P4AddN4 = <>::Output as Same<_0>>::Output; + + assert_eq!(::to_i64(), <_0 as Integer>::to_i64()); +} +#[test] +#[allow(non_snake_case)] +fn test_P4_Sub_N4() { + type A = PInt, B0>, B0>>; + type B = NInt, B0>, B0>>; + type P8 = PInt, B0>, B0>, B0>>; + + #[allow(non_camel_case_types)] + type P4SubN4 = <>::Output as Same>::Output; + + assert_eq!(::to_i64(), ::to_i64()); +} +#[test] +#[allow(non_snake_case)] +fn test_P4_Mul_N4() { + type A = PInt, B0>, B0>>; + type B = NInt, B0>, B0>>; + type N16 = NInt, B0>, B0>, B0>, B0>>; + + #[allow(non_camel_case_types)] + type P4MulN4 = <>::Output as Same>::Output; + + assert_eq!(::to_i64(), ::to_i64()); +} +#[test] +#[allow(non_snake_case)] +fn test_P4_Min_N4() { + type A = PInt, B0>, B0>>; + type B = NInt, B0>, B0>>; + type N4 = NInt, B0>, B0>>; + + #[allow(non_camel_case_types)] + type P4MinN4 = <>::Output as Same>::Output; + + assert_eq!(::to_i64(), ::to_i64()); +} +#[test] +#[allow(non_snake_case)] +fn test_P4_Max_N4() { + type A = PInt, B0>, B0>>; + type B = NInt, B0>, B0>>; + type P4 = PInt, B0>, B0>>; + + #[allow(non_camel_case_types)] + type P4MaxN4 = <>::Output as Same>::Output; + + assert_eq!(::to_i64(), ::to_i64()); +} +#[test] +#[allow(non_snake_case)] +fn test_P4_Gcd_N4() { + type A = PInt, B0>, B0>>; + type B = NInt, B0>, B0>>; + type P4 = PInt, B0>, B0>>; + + #[allow(non_camel_case_types)] + type P4GcdN4 = <>::Output as Same>::Output; + + assert_eq!(::to_i64(), ::to_i64()); +} +#[test] +#[allow(non_snake_case)] +fn test_P4_Div_N4() { + type A = PInt, B0>, B0>>; + type B = NInt, B0>, B0>>; + type N1 = NInt>; + + #[allow(non_camel_case_types)] + type P4DivN4 = <>::Output as Same>::Output; + + assert_eq!(::to_i64(), ::to_i64()); +} +#[test] +#[allow(non_snake_case)] +fn test_P4_Rem_N4() { + type A = PInt, B0>, B0>>; + type B = NInt, B0>, B0>>; + type _0 = Z0; + + #[allow(non_camel_case_types)] + type P4RemN4 = <>::Output as Same<_0>>::Output; + + assert_eq!(::to_i64(), <_0 as Integer>::to_i64()); +} +#[test] +#[allow(non_snake_case)] +fn test_P4_PartialDiv_N4() { + type A = PInt, B0>, B0>>; + type B = NInt, B0>, B0>>; + type N1 = NInt>; + + #[allow(non_camel_case_types)] + type P4PartialDivN4 = <>::Output as Same>::Output; + + assert_eq!(::to_i64(), ::to_i64()); +} +#[test] +#[allow(non_snake_case)] +fn test_P4_Cmp_N4() { + type A = PInt, B0>, B0>>; + type B = NInt, B0>, B0>>; + + #[allow(non_camel_case_types)] + type P4CmpN4 = >::Output; + assert_eq!(::to_ordering(), Ordering::Greater); +} +#[test] +#[allow(non_snake_case)] +fn test_P4_Add_N3() { + type A = PInt, B0>, B0>>; + type B = NInt, B1>>; + type P1 = PInt>; + + #[allow(non_camel_case_types)] + type P4AddN3 = <>::Output as Same>::Output; + + assert_eq!(::to_i64(), ::to_i64()); +} +#[test] +#[allow(non_snake_case)] +fn test_P4_Sub_N3() { + type A = PInt, B0>, B0>>; + type B = NInt, B1>>; + type P7 = PInt, B1>, B1>>; + + #[allow(non_camel_case_types)] + type P4SubN3 = <>::Output as Same>::Output; + + assert_eq!(::to_i64(), ::to_i64()); +} +#[test] +#[allow(non_snake_case)] +fn test_P4_Mul_N3() { + type A = PInt, B0>, B0>>; + type B = NInt, B1>>; + type N12 = NInt, B1>, B0>, B0>>; + + #[allow(non_camel_case_types)] + type P4MulN3 = <>::Output as Same>::Output; + + assert_eq!(::to_i64(), ::to_i64()); +} +#[test] +#[allow(non_snake_case)] +fn test_P4_Min_N3() { + type A = PInt, B0>, B0>>; + type B = NInt, B1>>; + type N3 = NInt, B1>>; + + #[allow(non_camel_case_types)] + type P4MinN3 = <>::Output as Same>::Output; + + assert_eq!(::to_i64(), ::to_i64()); +} +#[test] +#[allow(non_snake_case)] +fn test_P4_Max_N3() { + type A = PInt, B0>, B0>>; + type B = NInt, B1>>; + type P4 = PInt, B0>, B0>>; + + #[allow(non_camel_case_types)] + type P4MaxN3 = <>::Output as Same>::Output; + + assert_eq!(::to_i64(), ::to_i64()); +} +#[test] +#[allow(non_snake_case)] +fn test_P4_Gcd_N3() { + type A = PInt, B0>, B0>>; + type B = NInt, B1>>; + type P1 = PInt>; + + #[allow(non_camel_case_types)] + type P4GcdN3 = <>::Output as Same>::Output; + + assert_eq!(::to_i64(), ::to_i64()); +} +#[test] +#[allow(non_snake_case)] +fn test_P4_Div_N3() { + type A = PInt, B0>, B0>>; + type B = NInt, B1>>; + type N1 = NInt>; + + #[allow(non_camel_case_types)] + type P4DivN3 = <>::Output as Same>::Output; + + assert_eq!(::to_i64(), ::to_i64()); +} +#[test] +#[allow(non_snake_case)] +fn test_P4_Rem_N3() { + type A = PInt, B0>, B0>>; + type B = NInt, B1>>; + type P1 = PInt>; + + #[allow(non_camel_case_types)] + type P4RemN3 = <>::Output as Same>::Output; + + assert_eq!(::to_i64(), ::to_i64()); +} +#[test] +#[allow(non_snake_case)] +fn test_P4_Cmp_N3() { + type A = PInt, B0>, B0>>; + type B = NInt, B1>>; + + #[allow(non_camel_case_types)] + type P4CmpN3 = >::Output; + assert_eq!(::to_ordering(), Ordering::Greater); +} +#[test] +#[allow(non_snake_case)] +fn test_P4_Add_N2() { + type A = PInt, B0>, B0>>; + type B = NInt, B0>>; + type P2 = PInt, B0>>; + + #[allow(non_camel_case_types)] + type P4AddN2 = <>::Output as Same>::Output; + + assert_eq!(::to_i64(), ::to_i64()); +} +#[test] +#[allow(non_snake_case)] +fn test_P4_Sub_N2() { + type A = PInt, B0>, B0>>; + type B = NInt, B0>>; + type P6 = PInt, B1>, B0>>; + + #[allow(non_camel_case_types)] + type P4SubN2 = <>::Output as Same>::Output; + + assert_eq!(::to_i64(), ::to_i64()); +} +#[test] +#[allow(non_snake_case)] +fn test_P4_Mul_N2() { + type A = PInt, B0>, B0>>; + type B = NInt, B0>>; + type N8 = NInt, B0>, B0>, B0>>; + + #[allow(non_camel_case_types)] + type P4MulN2 = <>::Output as Same>::Output; + + assert_eq!(::to_i64(), ::to_i64()); +} +#[test] +#[allow(non_snake_case)] +fn test_P4_Min_N2() { + type A = PInt, B0>, B0>>; + type B = NInt, B0>>; + type N2 = NInt, B0>>; + + #[allow(non_camel_case_types)] + type P4MinN2 = <>::Output as Same>::Output; + + assert_eq!(::to_i64(), ::to_i64()); +} +#[test] +#[allow(non_snake_case)] +fn test_P4_Max_N2() { + type A = PInt, B0>, B0>>; + type B = NInt, B0>>; + type P4 = PInt, B0>, B0>>; + + #[allow(non_camel_case_types)] + type P4MaxN2 = <>::Output as Same>::Output; + + assert_eq!(::to_i64(), ::to_i64()); +} +#[test] +#[allow(non_snake_case)] +fn test_P4_Gcd_N2() { + type A = PInt, B0>, B0>>; + type B = NInt, B0>>; + type P2 = PInt, B0>>; + + #[allow(non_camel_case_types)] + type P4GcdN2 = <>::Output as Same>::Output; + + assert_eq!(::to_i64(), ::to_i64()); +} +#[test] +#[allow(non_snake_case)] +fn test_P4_Div_N2() { + type A = PInt, B0>, B0>>; + type B = NInt, B0>>; + type N2 = NInt, B0>>; + + #[allow(non_camel_case_types)] + type P4DivN2 = <>::Output as Same>::Output; + + assert_eq!(::to_i64(), ::to_i64()); +} +#[test] +#[allow(non_snake_case)] +fn test_P4_Rem_N2() { + type A = PInt, B0>, B0>>; + type B = NInt, B0>>; + type _0 = Z0; + + #[allow(non_camel_case_types)] + type P4RemN2 = <>::Output as Same<_0>>::Output; + + assert_eq!(::to_i64(), <_0 as Integer>::to_i64()); +} +#[test] +#[allow(non_snake_case)] +fn test_P4_PartialDiv_N2() { + type A = PInt, B0>, B0>>; + type B = NInt, B0>>; + type N2 = NInt, B0>>; + + #[allow(non_camel_case_types)] + type P4PartialDivN2 = <>::Output as Same>::Output; + + assert_eq!(::to_i64(), ::to_i64()); +} +#[test] +#[allow(non_snake_case)] +fn test_P4_Cmp_N2() { + type A = PInt, B0>, B0>>; + type B = NInt, B0>>; + + #[allow(non_camel_case_types)] + type P4CmpN2 = >::Output; + assert_eq!(::to_ordering(), Ordering::Greater); +} +#[test] +#[allow(non_snake_case)] +fn test_P4_Add_N1() { + type A = PInt, B0>, B0>>; + type B = NInt>; + type P3 = PInt, B1>>; + + #[allow(non_camel_case_types)] + type P4AddN1 = <>::Output as Same>::Output; + + assert_eq!(::to_i64(), ::to_i64()); +} +#[test] +#[allow(non_snake_case)] +fn test_P4_Sub_N1() { + type A = PInt, B0>, B0>>; + type B = NInt>; + type P5 = PInt, B0>, B1>>; + + #[allow(non_camel_case_types)] + type P4SubN1 = <>::Output as Same>::Output; + + assert_eq!(::to_i64(), ::to_i64()); +} +#[test] +#[allow(non_snake_case)] +fn test_P4_Mul_N1() { + type A = PInt, B0>, B0>>; + type B = NInt>; + type N4 = NInt, B0>, B0>>; + + #[allow(non_camel_case_types)] + type P4MulN1 = <>::Output as Same>::Output; + + assert_eq!(::to_i64(), ::to_i64()); +} +#[test] +#[allow(non_snake_case)] +fn test_P4_Min_N1() { + type A = PInt, B0>, B0>>; + type B = NInt>; + type N1 = NInt>; + + #[allow(non_camel_case_types)] + type P4MinN1 = <>::Output as Same>::Output; + + assert_eq!(::to_i64(), ::to_i64()); +} +#[test] +#[allow(non_snake_case)] +fn test_P4_Max_N1() { + type A = PInt, B0>, B0>>; + type B = NInt>; + type P4 = PInt, B0>, B0>>; + + #[allow(non_camel_case_types)] + type P4MaxN1 = <>::Output as Same>::Output; + + assert_eq!(::to_i64(), ::to_i64()); +} +#[test] +#[allow(non_snake_case)] +fn test_P4_Gcd_N1() { + type A = PInt, B0>, B0>>; + type B = NInt>; + type P1 = PInt>; + + #[allow(non_camel_case_types)] + type P4GcdN1 = <>::Output as Same>::Output; + + assert_eq!(::to_i64(), ::to_i64()); +} +#[test] +#[allow(non_snake_case)] +fn test_P4_Div_N1() { + type A = PInt, B0>, B0>>; + type B = NInt>; + type N4 = NInt, B0>, B0>>; + + #[allow(non_camel_case_types)] + type P4DivN1 = <>::Output as Same>::Output; + + assert_eq!(::to_i64(), ::to_i64()); +} +#[test] +#[allow(non_snake_case)] +fn test_P4_Rem_N1() { + type A = PInt, B0>, B0>>; + type B = NInt>; + type _0 = Z0; + + #[allow(non_camel_case_types)] + type P4RemN1 = <>::Output as Same<_0>>::Output; + + assert_eq!(::to_i64(), <_0 as Integer>::to_i64()); +} +#[test] +#[allow(non_snake_case)] +fn test_P4_PartialDiv_N1() { + type A = PInt, B0>, B0>>; + type B = NInt>; + type N4 = NInt, B0>, B0>>; + + #[allow(non_camel_case_types)] + type P4PartialDivN1 = <>::Output as Same>::Output; + + assert_eq!(::to_i64(), ::to_i64()); +} +#[test] +#[allow(non_snake_case)] +fn test_P4_Cmp_N1() { + type A = PInt, B0>, B0>>; + type B = NInt>; + + #[allow(non_camel_case_types)] + type P4CmpN1 = >::Output; + assert_eq!(::to_ordering(), Ordering::Greater); +} +#[test] +#[allow(non_snake_case)] +fn test_P4_Add__0() { + type A = PInt, B0>, B0>>; + type B = Z0; + type P4 = PInt, B0>, B0>>; + + #[allow(non_camel_case_types)] + type P4Add_0 = <>::Output as Same>::Output; + + assert_eq!(::to_i64(), ::to_i64()); +} +#[test] +#[allow(non_snake_case)] +fn test_P4_Sub__0() { + type A = PInt, B0>, B0>>; + type B = Z0; + type P4 = PInt, B0>, B0>>; + + #[allow(non_camel_case_types)] + type P4Sub_0 = <>::Output as Same>::Output; + + assert_eq!(::to_i64(), ::to_i64()); +} +#[test] +#[allow(non_snake_case)] +fn test_P4_Mul__0() { + type A = PInt, B0>, B0>>; + type B = Z0; + type _0 = Z0; + + #[allow(non_camel_case_types)] + type P4Mul_0 = <>::Output as Same<_0>>::Output; + + assert_eq!(::to_i64(), <_0 as Integer>::to_i64()); +} +#[test] +#[allow(non_snake_case)] +fn test_P4_Min__0() { + type A = PInt, B0>, B0>>; + type B = Z0; + type _0 = Z0; + + #[allow(non_camel_case_types)] + type P4Min_0 = <>::Output as Same<_0>>::Output; + + assert_eq!(::to_i64(), <_0 as Integer>::to_i64()); +} +#[test] +#[allow(non_snake_case)] +fn test_P4_Max__0() { + type A = PInt, B0>, B0>>; + type B = Z0; + type P4 = PInt, B0>, B0>>; + + #[allow(non_camel_case_types)] + type P4Max_0 = <>::Output as Same>::Output; + + assert_eq!(::to_i64(), ::to_i64()); +} +#[test] +#[allow(non_snake_case)] +fn test_P4_Gcd__0() { + type A = PInt, B0>, B0>>; + type B = Z0; + type P4 = PInt, B0>, B0>>; + + #[allow(non_camel_case_types)] + type P4Gcd_0 = <>::Output as Same>::Output; + + assert_eq!(::to_i64(), ::to_i64()); +} +#[test] +#[allow(non_snake_case)] +fn test_P4_Pow__0() { + type A = PInt, B0>, B0>>; + type B = Z0; + type P1 = PInt>; + + #[allow(non_camel_case_types)] + type P4Pow_0 = <>::Output as Same>::Output; + + assert_eq!(::to_i64(), ::to_i64()); +} +#[test] +#[allow(non_snake_case)] +fn test_P4_Cmp__0() { + type A = PInt, B0>, B0>>; + type B = Z0; + + #[allow(non_camel_case_types)] + type P4Cmp_0 = >::Output; + assert_eq!(::to_ordering(), Ordering::Greater); +} +#[test] +#[allow(non_snake_case)] +fn test_P4_Add_P1() { + type A = PInt, B0>, B0>>; + type B = PInt>; + type P5 = PInt, B0>, B1>>; + + #[allow(non_camel_case_types)] + type P4AddP1 = <>::Output as Same>::Output; + + assert_eq!(::to_i64(), ::to_i64()); +} +#[test] +#[allow(non_snake_case)] +fn test_P4_Sub_P1() { + type A = PInt, B0>, B0>>; + type B = PInt>; + type P3 = PInt, B1>>; + + #[allow(non_camel_case_types)] + type P4SubP1 = <>::Output as Same>::Output; + + assert_eq!(::to_i64(), ::to_i64()); +} +#[test] +#[allow(non_snake_case)] +fn test_P4_Mul_P1() { + type A = PInt, B0>, B0>>; + type B = PInt>; + type P4 = PInt, B0>, B0>>; + + #[allow(non_camel_case_types)] + type P4MulP1 = <>::Output as Same>::Output; + + assert_eq!(::to_i64(), ::to_i64()); +} +#[test] +#[allow(non_snake_case)] +fn test_P4_Min_P1() { + type A = PInt, B0>, B0>>; + type B = PInt>; + type P1 = PInt>; + + #[allow(non_camel_case_types)] + type P4MinP1 = <>::Output as Same>::Output; + + assert_eq!(::to_i64(), ::to_i64()); +} +#[test] +#[allow(non_snake_case)] +fn test_P4_Max_P1() { + type A = PInt, B0>, B0>>; + type B = PInt>; + type P4 = PInt, B0>, B0>>; + + #[allow(non_camel_case_types)] + type P4MaxP1 = <>::Output as Same>::Output; + + assert_eq!(::to_i64(), ::to_i64()); +} +#[test] +#[allow(non_snake_case)] +fn test_P4_Gcd_P1() { + type A = PInt, B0>, B0>>; + type B = PInt>; + type P1 = PInt>; + + #[allow(non_camel_case_types)] + type P4GcdP1 = <>::Output as Same>::Output; + + assert_eq!(::to_i64(), ::to_i64()); +} +#[test] +#[allow(non_snake_case)] +fn test_P4_Div_P1() { + type A = PInt, B0>, B0>>; + type B = PInt>; + type P4 = PInt, B0>, B0>>; + + #[allow(non_camel_case_types)] + type P4DivP1 = <>::Output as Same>::Output; + + assert_eq!(::to_i64(), ::to_i64()); +} +#[test] +#[allow(non_snake_case)] +fn test_P4_Rem_P1() { + type A = PInt, B0>, B0>>; + type B = PInt>; + type _0 = Z0; + + #[allow(non_camel_case_types)] + type P4RemP1 = <>::Output as Same<_0>>::Output; + + assert_eq!(::to_i64(), <_0 as Integer>::to_i64()); +} +#[test] +#[allow(non_snake_case)] +fn test_P4_PartialDiv_P1() { + type A = PInt, B0>, B0>>; + type B = PInt>; + type P4 = PInt, B0>, B0>>; + + #[allow(non_camel_case_types)] + type P4PartialDivP1 = <>::Output as Same>::Output; + + assert_eq!(::to_i64(), ::to_i64()); +} +#[test] +#[allow(non_snake_case)] +fn test_P4_Pow_P1() { + type A = PInt, B0>, B0>>; + type B = PInt>; + type P4 = PInt, B0>, B0>>; + + #[allow(non_camel_case_types)] + type P4PowP1 = <>::Output as Same>::Output; + + assert_eq!(::to_i64(), ::to_i64()); +} +#[test] +#[allow(non_snake_case)] +fn test_P4_Cmp_P1() { + type A = PInt, B0>, B0>>; + type B = PInt>; + + #[allow(non_camel_case_types)] + type P4CmpP1 = >::Output; + assert_eq!(::to_ordering(), Ordering::Greater); +} +#[test] +#[allow(non_snake_case)] +fn test_P4_Add_P2() { + type A = PInt, B0>, B0>>; + type B = PInt, B0>>; + type P6 = PInt, B1>, B0>>; + + #[allow(non_camel_case_types)] + type P4AddP2 = <>::Output as Same>::Output; + + assert_eq!(::to_i64(), ::to_i64()); +} +#[test] +#[allow(non_snake_case)] +fn test_P4_Sub_P2() { + type A = PInt, B0>, B0>>; + type B = PInt, B0>>; + type P2 = PInt, B0>>; + + #[allow(non_camel_case_types)] + type P4SubP2 = <>::Output as Same>::Output; + + assert_eq!(::to_i64(), ::to_i64()); +} +#[test] +#[allow(non_snake_case)] +fn test_P4_Mul_P2() { + type A = PInt, B0>, B0>>; + type B = PInt, B0>>; + type P8 = PInt, B0>, B0>, B0>>; + + #[allow(non_camel_case_types)] + type P4MulP2 = <>::Output as Same>::Output; + + assert_eq!(::to_i64(), ::to_i64()); +} +#[test] +#[allow(non_snake_case)] +fn test_P4_Min_P2() { + type A = PInt, B0>, B0>>; + type B = PInt, B0>>; + type P2 = PInt, B0>>; + + #[allow(non_camel_case_types)] + type P4MinP2 = <>::Output as Same>::Output; + + assert_eq!(::to_i64(), ::to_i64()); +} +#[test] +#[allow(non_snake_case)] +fn test_P4_Max_P2() { + type A = PInt, B0>, B0>>; + type B = PInt, B0>>; + type P4 = PInt, B0>, B0>>; + + #[allow(non_camel_case_types)] + type P4MaxP2 = <>::Output as Same>::Output; + + assert_eq!(::to_i64(), ::to_i64()); +} +#[test] +#[allow(non_snake_case)] +fn test_P4_Gcd_P2() { + type A = PInt, B0>, B0>>; + type B = PInt, B0>>; + type P2 = PInt, B0>>; + + #[allow(non_camel_case_types)] + type P4GcdP2 = <>::Output as Same>::Output; + + assert_eq!(::to_i64(), ::to_i64()); +} +#[test] +#[allow(non_snake_case)] +fn test_P4_Div_P2() { + type A = PInt, B0>, B0>>; + type B = PInt, B0>>; + type P2 = PInt, B0>>; + + #[allow(non_camel_case_types)] + type P4DivP2 = <>::Output as Same>::Output; + + assert_eq!(::to_i64(), ::to_i64()); +} +#[test] +#[allow(non_snake_case)] +fn test_P4_Rem_P2() { + type A = PInt, B0>, B0>>; + type B = PInt, B0>>; + type _0 = Z0; + + #[allow(non_camel_case_types)] + type P4RemP2 = <>::Output as Same<_0>>::Output; + + assert_eq!(::to_i64(), <_0 as Integer>::to_i64()); +} +#[test] +#[allow(non_snake_case)] +fn test_P4_PartialDiv_P2() { + type A = PInt, B0>, B0>>; + type B = PInt, B0>>; + type P2 = PInt, B0>>; + + #[allow(non_camel_case_types)] + type P4PartialDivP2 = <>::Output as Same>::Output; + + assert_eq!(::to_i64(), ::to_i64()); +} +#[test] +#[allow(non_snake_case)] +fn test_P4_Pow_P2() { + type A = PInt, B0>, B0>>; + type B = PInt, B0>>; + type P16 = PInt, B0>, B0>, B0>, B0>>; + + #[allow(non_camel_case_types)] + type P4PowP2 = <>::Output as Same>::Output; + + assert_eq!(::to_i64(), ::to_i64()); +} +#[test] +#[allow(non_snake_case)] +fn test_P4_Cmp_P2() { + type A = PInt, B0>, B0>>; + type B = PInt, B0>>; + + #[allow(non_camel_case_types)] + type P4CmpP2 = >::Output; + assert_eq!(::to_ordering(), Ordering::Greater); +} +#[test] +#[allow(non_snake_case)] +fn test_P4_Add_P3() { + type A = PInt, B0>, B0>>; + type B = PInt, B1>>; + type P7 = PInt, B1>, B1>>; + + #[allow(non_camel_case_types)] + type P4AddP3 = <>::Output as Same>::Output; + + assert_eq!(::to_i64(), ::to_i64()); +} +#[test] +#[allow(non_snake_case)] +fn test_P4_Sub_P3() { + type A = PInt, B0>, B0>>; + type B = PInt, B1>>; + type P1 = PInt>; + + #[allow(non_camel_case_types)] + type P4SubP3 = <>::Output as Same>::Output; + + assert_eq!(::to_i64(), ::to_i64()); +} +#[test] +#[allow(non_snake_case)] +fn test_P4_Mul_P3() { + type A = PInt, B0>, B0>>; + type B = PInt, B1>>; + type P12 = PInt, B1>, B0>, B0>>; + + #[allow(non_camel_case_types)] + type P4MulP3 = <>::Output as Same>::Output; + + assert_eq!(::to_i64(), ::to_i64()); +} +#[test] +#[allow(non_snake_case)] +fn test_P4_Min_P3() { + type A = PInt, B0>, B0>>; + type B = PInt, B1>>; + type P3 = PInt, B1>>; + + #[allow(non_camel_case_types)] + type P4MinP3 = <>::Output as Same>::Output; + + assert_eq!(::to_i64(), ::to_i64()); +} +#[test] +#[allow(non_snake_case)] +fn test_P4_Max_P3() { + type A = PInt, B0>, B0>>; + type B = PInt, B1>>; + type P4 = PInt, B0>, B0>>; + + #[allow(non_camel_case_types)] + type P4MaxP3 = <>::Output as Same>::Output; + + assert_eq!(::to_i64(), ::to_i64()); +} +#[test] +#[allow(non_snake_case)] +fn test_P4_Gcd_P3() { + type A = PInt, B0>, B0>>; + type B = PInt, B1>>; + type P1 = PInt>; + + #[allow(non_camel_case_types)] + type P4GcdP3 = <>::Output as Same>::Output; + + assert_eq!(::to_i64(), ::to_i64()); +} +#[test] +#[allow(non_snake_case)] +fn test_P4_Div_P3() { + type A = PInt, B0>, B0>>; + type B = PInt, B1>>; + type P1 = PInt>; + + #[allow(non_camel_case_types)] + type P4DivP3 = <>::Output as Same>::Output; + + assert_eq!(::to_i64(), ::to_i64()); +} +#[test] +#[allow(non_snake_case)] +fn test_P4_Rem_P3() { + type A = PInt, B0>, B0>>; + type B = PInt, B1>>; + type P1 = PInt>; + + #[allow(non_camel_case_types)] + type P4RemP3 = <>::Output as Same>::Output; + + assert_eq!(::to_i64(), ::to_i64()); +} +#[test] +#[allow(non_snake_case)] +fn test_P4_Pow_P3() { + type A = PInt, B0>, B0>>; + type B = PInt, B1>>; + type P64 = PInt, B0>, B0>, B0>, B0>, B0>, B0>>; + + #[allow(non_camel_case_types)] + type P4PowP3 = <>::Output as Same>::Output; + + assert_eq!(::to_i64(), ::to_i64()); +} +#[test] +#[allow(non_snake_case)] +fn test_P4_Cmp_P3() { + type A = PInt, B0>, B0>>; + type B = PInt, B1>>; + + #[allow(non_camel_case_types)] + type P4CmpP3 = >::Output; + assert_eq!(::to_ordering(), Ordering::Greater); +} +#[test] +#[allow(non_snake_case)] +fn test_P4_Add_P4() { + type A = PInt, B0>, B0>>; + type B = PInt, B0>, B0>>; + type P8 = PInt, B0>, B0>, B0>>; + + #[allow(non_camel_case_types)] + type P4AddP4 = <>::Output as Same>::Output; + + assert_eq!(::to_i64(), ::to_i64()); +} +#[test] +#[allow(non_snake_case)] +fn test_P4_Sub_P4() { + type A = PInt, B0>, B0>>; + type B = PInt, B0>, B0>>; + type _0 = Z0; + + #[allow(non_camel_case_types)] + type P4SubP4 = <>::Output as Same<_0>>::Output; + + assert_eq!(::to_i64(), <_0 as Integer>::to_i64()); +} +#[test] +#[allow(non_snake_case)] +fn test_P4_Mul_P4() { + type A = PInt, B0>, B0>>; + type B = PInt, B0>, B0>>; + type P16 = PInt, B0>, B0>, B0>, B0>>; + + #[allow(non_camel_case_types)] + type P4MulP4 = <>::Output as Same>::Output; + + assert_eq!(::to_i64(), ::to_i64()); +} +#[test] +#[allow(non_snake_case)] +fn test_P4_Min_P4() { + type A = PInt, B0>, B0>>; + type B = PInt, B0>, B0>>; + type P4 = PInt, B0>, B0>>; + + #[allow(non_camel_case_types)] + type P4MinP4 = <>::Output as Same>::Output; + + assert_eq!(::to_i64(), ::to_i64()); +} +#[test] +#[allow(non_snake_case)] +fn test_P4_Max_P4() { + type A = PInt, B0>, B0>>; + type B = PInt, B0>, B0>>; + type P4 = PInt, B0>, B0>>; + + #[allow(non_camel_case_types)] + type P4MaxP4 = <>::Output as Same>::Output; + + assert_eq!(::to_i64(), ::to_i64()); +} +#[test] +#[allow(non_snake_case)] +fn test_P4_Gcd_P4() { + type A = PInt, B0>, B0>>; + type B = PInt, B0>, B0>>; + type P4 = PInt, B0>, B0>>; + + #[allow(non_camel_case_types)] + type P4GcdP4 = <>::Output as Same>::Output; + + assert_eq!(::to_i64(), ::to_i64()); +} +#[test] +#[allow(non_snake_case)] +fn test_P4_Div_P4() { + type A = PInt, B0>, B0>>; + type B = PInt, B0>, B0>>; + type P1 = PInt>; + + #[allow(non_camel_case_types)] + type P4DivP4 = <>::Output as Same>::Output; + + assert_eq!(::to_i64(), ::to_i64()); +} +#[test] +#[allow(non_snake_case)] +fn test_P4_Rem_P4() { + type A = PInt, B0>, B0>>; + type B = PInt, B0>, B0>>; + type _0 = Z0; + + #[allow(non_camel_case_types)] + type P4RemP4 = <>::Output as Same<_0>>::Output; + + assert_eq!(::to_i64(), <_0 as Integer>::to_i64()); +} +#[test] +#[allow(non_snake_case)] +fn test_P4_PartialDiv_P4() { + type A = PInt, B0>, B0>>; + type B = PInt, B0>, B0>>; + type P1 = PInt>; + + #[allow(non_camel_case_types)] + type P4PartialDivP4 = <>::Output as Same>::Output; + + assert_eq!(::to_i64(), ::to_i64()); +} +#[test] +#[allow(non_snake_case)] +fn test_P4_Pow_P4() { + type A = PInt, B0>, B0>>; + type B = PInt, B0>, B0>>; + type P256 = PInt, B0>, B0>, B0>, B0>, B0>, B0>, B0>, B0>>; + + #[allow(non_camel_case_types)] + type P4PowP4 = <>::Output as Same>::Output; + + assert_eq!(::to_i64(), ::to_i64()); +} +#[test] +#[allow(non_snake_case)] +fn test_P4_Cmp_P4() { + type A = PInt, B0>, B0>>; + type B = PInt, B0>, B0>>; + + #[allow(non_camel_case_types)] + type P4CmpP4 = >::Output; + assert_eq!(::to_ordering(), Ordering::Equal); +} +#[test] +#[allow(non_snake_case)] +fn test_P4_Add_P5() { + type A = PInt, B0>, B0>>; + type B = PInt, B0>, B1>>; + type P9 = PInt, B0>, B0>, B1>>; + + #[allow(non_camel_case_types)] + type P4AddP5 = <>::Output as Same>::Output; + + assert_eq!(::to_i64(), ::to_i64()); +} +#[test] +#[allow(non_snake_case)] +fn test_P4_Sub_P5() { + type A = PInt, B0>, B0>>; + type B = PInt, B0>, B1>>; + type N1 = NInt>; + + #[allow(non_camel_case_types)] + type P4SubP5 = <>::Output as Same>::Output; + + assert_eq!(::to_i64(), ::to_i64()); +} +#[test] +#[allow(non_snake_case)] +fn test_P4_Mul_P5() { + type A = PInt, B0>, B0>>; + type B = PInt, B0>, B1>>; + type P20 = PInt, B0>, B1>, B0>, B0>>; + + #[allow(non_camel_case_types)] + type P4MulP5 = <>::Output as Same>::Output; + + assert_eq!(::to_i64(), ::to_i64()); +} +#[test] +#[allow(non_snake_case)] +fn test_P4_Min_P5() { + type A = PInt, B0>, B0>>; + type B = PInt, B0>, B1>>; + type P4 = PInt, B0>, B0>>; + + #[allow(non_camel_case_types)] + type P4MinP5 = <>::Output as Same>::Output; + + assert_eq!(::to_i64(), ::to_i64()); +} +#[test] +#[allow(non_snake_case)] +fn test_P4_Max_P5() { + type A = PInt, B0>, B0>>; + type B = PInt, B0>, B1>>; + type P5 = PInt, B0>, B1>>; + + #[allow(non_camel_case_types)] + type P4MaxP5 = <>::Output as Same>::Output; + + assert_eq!(::to_i64(), ::to_i64()); +} +#[test] +#[allow(non_snake_case)] +fn test_P4_Gcd_P5() { + type A = PInt, B0>, B0>>; + type B = PInt, B0>, B1>>; + type P1 = PInt>; + + #[allow(non_camel_case_types)] + type P4GcdP5 = <>::Output as Same>::Output; + + assert_eq!(::to_i64(), ::to_i64()); +} +#[test] +#[allow(non_snake_case)] +fn test_P4_Div_P5() { + type A = PInt, B0>, B0>>; + type B = PInt, B0>, B1>>; + type _0 = Z0; + + #[allow(non_camel_case_types)] + type P4DivP5 = <>::Output as Same<_0>>::Output; + + assert_eq!(::to_i64(), <_0 as Integer>::to_i64()); +} +#[test] +#[allow(non_snake_case)] +fn test_P4_Rem_P5() { + type A = PInt, B0>, B0>>; + type B = PInt, B0>, B1>>; + type P4 = PInt, B0>, B0>>; + + #[allow(non_camel_case_types)] + type P4RemP5 = <>::Output as Same>::Output; + + assert_eq!(::to_i64(), ::to_i64()); +} +#[test] +#[allow(non_snake_case)] +fn test_P4_Pow_P5() { + type A = PInt, B0>, B0>>; + type B = PInt, B0>, B1>>; + type P1024 = PInt, B0>, B0>, B0>, B0>, B0>, B0>, B0>, B0>, B0>, B0>>; + + #[allow(non_camel_case_types)] + type P4PowP5 = <>::Output as Same>::Output; + + assert_eq!(::to_i64(), ::to_i64()); +} +#[test] +#[allow(non_snake_case)] +fn test_P4_Cmp_P5() { + type A = PInt, B0>, B0>>; + type B = PInt, B0>, B1>>; + + #[allow(non_camel_case_types)] + type P4CmpP5 = >::Output; + assert_eq!(::to_ordering(), Ordering::Less); +} +#[test] +#[allow(non_snake_case)] +fn test_P5_Add_N5() { + type A = PInt, B0>, B1>>; + type B = NInt, B0>, B1>>; + type _0 = Z0; + + #[allow(non_camel_case_types)] + type P5AddN5 = <>::Output as Same<_0>>::Output; + + assert_eq!(::to_i64(), <_0 as Integer>::to_i64()); +} +#[test] +#[allow(non_snake_case)] +fn test_P5_Sub_N5() { + type A = PInt, B0>, B1>>; + type B = NInt, B0>, B1>>; + type P10 = PInt, B0>, B1>, B0>>; + + #[allow(non_camel_case_types)] + type P5SubN5 = <>::Output as Same>::Output; + + assert_eq!(::to_i64(), ::to_i64()); +} +#[test] +#[allow(non_snake_case)] +fn test_P5_Mul_N5() { + type A = PInt, B0>, B1>>; + type B = NInt, B0>, B1>>; + type N25 = NInt, B1>, B0>, B0>, B1>>; + + #[allow(non_camel_case_types)] + type P5MulN5 = <>::Output as Same>::Output; + + assert_eq!(::to_i64(), ::to_i64()); +} +#[test] +#[allow(non_snake_case)] +fn test_P5_Min_N5() { + type A = PInt, B0>, B1>>; + type B = NInt, B0>, B1>>; + type N5 = NInt, B0>, B1>>; + + #[allow(non_camel_case_types)] + type P5MinN5 = <>::Output as Same>::Output; + + assert_eq!(::to_i64(), ::to_i64()); +} +#[test] +#[allow(non_snake_case)] +fn test_P5_Max_N5() { + type A = PInt, B0>, B1>>; + type B = NInt, B0>, B1>>; + type P5 = PInt, B0>, B1>>; + + #[allow(non_camel_case_types)] + type P5MaxN5 = <>::Output as Same>::Output; + + assert_eq!(::to_i64(), ::to_i64()); +} +#[test] +#[allow(non_snake_case)] +fn test_P5_Gcd_N5() { + type A = PInt, B0>, B1>>; + type B = NInt, B0>, B1>>; + type P5 = PInt, B0>, B1>>; + + #[allow(non_camel_case_types)] + type P5GcdN5 = <>::Output as Same>::Output; + + assert_eq!(::to_i64(), ::to_i64()); +} +#[test] +#[allow(non_snake_case)] +fn test_P5_Div_N5() { + type A = PInt, B0>, B1>>; + type B = NInt, B0>, B1>>; + type N1 = NInt>; + + #[allow(non_camel_case_types)] + type P5DivN5 = <>::Output as Same>::Output; + + assert_eq!(::to_i64(), ::to_i64()); +} +#[test] +#[allow(non_snake_case)] +fn test_P5_Rem_N5() { + type A = PInt, B0>, B1>>; + type B = NInt, B0>, B1>>; + type _0 = Z0; + + #[allow(non_camel_case_types)] + type P5RemN5 = <>::Output as Same<_0>>::Output; + + assert_eq!(::to_i64(), <_0 as Integer>::to_i64()); +} +#[test] +#[allow(non_snake_case)] +fn test_P5_PartialDiv_N5() { + type A = PInt, B0>, B1>>; + type B = NInt, B0>, B1>>; + type N1 = NInt>; + + #[allow(non_camel_case_types)] + type P5PartialDivN5 = <>::Output as Same>::Output; + + assert_eq!(::to_i64(), ::to_i64()); +} +#[test] +#[allow(non_snake_case)] +fn test_P5_Cmp_N5() { + type A = PInt, B0>, B1>>; + type B = NInt, B0>, B1>>; + + #[allow(non_camel_case_types)] + type P5CmpN5 = >::Output; + assert_eq!(::to_ordering(), Ordering::Greater); +} +#[test] +#[allow(non_snake_case)] +fn test_P5_Add_N4() { + type A = PInt, B0>, B1>>; + type B = NInt, B0>, B0>>; + type P1 = PInt>; + + #[allow(non_camel_case_types)] + type P5AddN4 = <>::Output as Same>::Output; + + assert_eq!(::to_i64(), ::to_i64()); +} +#[test] +#[allow(non_snake_case)] +fn test_P5_Sub_N4() { + type A = PInt, B0>, B1>>; + type B = NInt, B0>, B0>>; + type P9 = PInt, B0>, B0>, B1>>; + + #[allow(non_camel_case_types)] + type P5SubN4 = <>::Output as Same>::Output; + + assert_eq!(::to_i64(), ::to_i64()); +} +#[test] +#[allow(non_snake_case)] +fn test_P5_Mul_N4() { + type A = PInt, B0>, B1>>; + type B = NInt, B0>, B0>>; + type N20 = NInt, B0>, B1>, B0>, B0>>; + + #[allow(non_camel_case_types)] + type P5MulN4 = <>::Output as Same>::Output; + + assert_eq!(::to_i64(), ::to_i64()); +} +#[test] +#[allow(non_snake_case)] +fn test_P5_Min_N4() { + type A = PInt, B0>, B1>>; + type B = NInt, B0>, B0>>; + type N4 = NInt, B0>, B0>>; + + #[allow(non_camel_case_types)] + type P5MinN4 = <>::Output as Same>::Output; + + assert_eq!(::to_i64(), ::to_i64()); +} +#[test] +#[allow(non_snake_case)] +fn test_P5_Max_N4() { + type A = PInt, B0>, B1>>; + type B = NInt, B0>, B0>>; + type P5 = PInt, B0>, B1>>; + + #[allow(non_camel_case_types)] + type P5MaxN4 = <>::Output as Same>::Output; + + assert_eq!(::to_i64(), ::to_i64()); +} +#[test] +#[allow(non_snake_case)] +fn test_P5_Gcd_N4() { + type A = PInt, B0>, B1>>; + type B = NInt, B0>, B0>>; + type P1 = PInt>; + + #[allow(non_camel_case_types)] + type P5GcdN4 = <>::Output as Same>::Output; + + assert_eq!(::to_i64(), ::to_i64()); +} +#[test] +#[allow(non_snake_case)] +fn test_P5_Div_N4() { + type A = PInt, B0>, B1>>; + type B = NInt, B0>, B0>>; + type N1 = NInt>; + + #[allow(non_camel_case_types)] + type P5DivN4 = <>::Output as Same>::Output; + + assert_eq!(::to_i64(), ::to_i64()); +} +#[test] +#[allow(non_snake_case)] +fn test_P5_Rem_N4() { + type A = PInt, B0>, B1>>; + type B = NInt, B0>, B0>>; + type P1 = PInt>; + + #[allow(non_camel_case_types)] + type P5RemN4 = <>::Output as Same>::Output; + + assert_eq!(::to_i64(), ::to_i64()); +} +#[test] +#[allow(non_snake_case)] +fn test_P5_Cmp_N4() { + type A = PInt, B0>, B1>>; + type B = NInt, B0>, B0>>; + + #[allow(non_camel_case_types)] + type P5CmpN4 = >::Output; + assert_eq!(::to_ordering(), Ordering::Greater); +} +#[test] +#[allow(non_snake_case)] +fn test_P5_Add_N3() { + type A = PInt, B0>, B1>>; + type B = NInt, B1>>; + type P2 = PInt, B0>>; + + #[allow(non_camel_case_types)] + type P5AddN3 = <>::Output as Same>::Output; + + assert_eq!(::to_i64(), ::to_i64()); +} +#[test] +#[allow(non_snake_case)] +fn test_P5_Sub_N3() { + type A = PInt, B0>, B1>>; + type B = NInt, B1>>; + type P8 = PInt, B0>, B0>, B0>>; + + #[allow(non_camel_case_types)] + type P5SubN3 = <>::Output as Same>::Output; + + assert_eq!(::to_i64(), ::to_i64()); +} +#[test] +#[allow(non_snake_case)] +fn test_P5_Mul_N3() { + type A = PInt, B0>, B1>>; + type B = NInt, B1>>; + type N15 = NInt, B1>, B1>, B1>>; + + #[allow(non_camel_case_types)] + type P5MulN3 = <>::Output as Same>::Output; + + assert_eq!(::to_i64(), ::to_i64()); +} +#[test] +#[allow(non_snake_case)] +fn test_P5_Min_N3() { + type A = PInt, B0>, B1>>; + type B = NInt, B1>>; + type N3 = NInt, B1>>; + + #[allow(non_camel_case_types)] + type P5MinN3 = <>::Output as Same>::Output; + + assert_eq!(::to_i64(), ::to_i64()); +} +#[test] +#[allow(non_snake_case)] +fn test_P5_Max_N3() { + type A = PInt, B0>, B1>>; + type B = NInt, B1>>; + type P5 = PInt, B0>, B1>>; + + #[allow(non_camel_case_types)] + type P5MaxN3 = <>::Output as Same>::Output; + + assert_eq!(::to_i64(), ::to_i64()); +} +#[test] +#[allow(non_snake_case)] +fn test_P5_Gcd_N3() { + type A = PInt, B0>, B1>>; + type B = NInt, B1>>; + type P1 = PInt>; + + #[allow(non_camel_case_types)] + type P5GcdN3 = <>::Output as Same>::Output; + + assert_eq!(::to_i64(), ::to_i64()); +} +#[test] +#[allow(non_snake_case)] +fn test_P5_Div_N3() { + type A = PInt, B0>, B1>>; + type B = NInt, B1>>; + type N1 = NInt>; + + #[allow(non_camel_case_types)] + type P5DivN3 = <>::Output as Same>::Output; + + assert_eq!(::to_i64(), ::to_i64()); +} +#[test] +#[allow(non_snake_case)] +fn test_P5_Rem_N3() { + type A = PInt, B0>, B1>>; + type B = NInt, B1>>; + type P2 = PInt, B0>>; + + #[allow(non_camel_case_types)] + type P5RemN3 = <>::Output as Same>::Output; + + assert_eq!(::to_i64(), ::to_i64()); +} +#[test] +#[allow(non_snake_case)] +fn test_P5_Cmp_N3() { + type A = PInt, B0>, B1>>; + type B = NInt, B1>>; + + #[allow(non_camel_case_types)] + type P5CmpN3 = >::Output; + assert_eq!(::to_ordering(), Ordering::Greater); +} +#[test] +#[allow(non_snake_case)] +fn test_P5_Add_N2() { + type A = PInt, B0>, B1>>; + type B = NInt, B0>>; + type P3 = PInt, B1>>; + + #[allow(non_camel_case_types)] + type P5AddN2 = <>::Output as Same>::Output; + + assert_eq!(::to_i64(), ::to_i64()); +} +#[test] +#[allow(non_snake_case)] +fn test_P5_Sub_N2() { + type A = PInt, B0>, B1>>; + type B = NInt, B0>>; + type P7 = PInt, B1>, B1>>; + + #[allow(non_camel_case_types)] + type P5SubN2 = <>::Output as Same>::Output; + + assert_eq!(::to_i64(), ::to_i64()); +} +#[test] +#[allow(non_snake_case)] +fn test_P5_Mul_N2() { + type A = PInt, B0>, B1>>; + type B = NInt, B0>>; + type N10 = NInt, B0>, B1>, B0>>; + + #[allow(non_camel_case_types)] + type P5MulN2 = <>::Output as Same>::Output; + + assert_eq!(::to_i64(), ::to_i64()); +} +#[test] +#[allow(non_snake_case)] +fn test_P5_Min_N2() { + type A = PInt, B0>, B1>>; + type B = NInt, B0>>; + type N2 = NInt, B0>>; + + #[allow(non_camel_case_types)] + type P5MinN2 = <>::Output as Same>::Output; + + assert_eq!(::to_i64(), ::to_i64()); +} +#[test] +#[allow(non_snake_case)] +fn test_P5_Max_N2() { + type A = PInt, B0>, B1>>; + type B = NInt, B0>>; + type P5 = PInt, B0>, B1>>; + + #[allow(non_camel_case_types)] + type P5MaxN2 = <>::Output as Same>::Output; + + assert_eq!(::to_i64(), ::to_i64()); +} +#[test] +#[allow(non_snake_case)] +fn test_P5_Gcd_N2() { + type A = PInt, B0>, B1>>; + type B = NInt, B0>>; + type P1 = PInt>; + + #[allow(non_camel_case_types)] + type P5GcdN2 = <>::Output as Same>::Output; + + assert_eq!(::to_i64(), ::to_i64()); +} +#[test] +#[allow(non_snake_case)] +fn test_P5_Div_N2() { + type A = PInt, B0>, B1>>; + type B = NInt, B0>>; + type N2 = NInt, B0>>; + + #[allow(non_camel_case_types)] + type P5DivN2 = <>::Output as Same>::Output; + + assert_eq!(::to_i64(), ::to_i64()); +} +#[test] +#[allow(non_snake_case)] +fn test_P5_Rem_N2() { + type A = PInt, B0>, B1>>; + type B = NInt, B0>>; + type P1 = PInt>; + + #[allow(non_camel_case_types)] + type P5RemN2 = <>::Output as Same>::Output; + + assert_eq!(::to_i64(), ::to_i64()); +} +#[test] +#[allow(non_snake_case)] +fn test_P5_Cmp_N2() { + type A = PInt, B0>, B1>>; + type B = NInt, B0>>; + + #[allow(non_camel_case_types)] + type P5CmpN2 = >::Output; + assert_eq!(::to_ordering(), Ordering::Greater); +} +#[test] +#[allow(non_snake_case)] +fn test_P5_Add_N1() { + type A = PInt, B0>, B1>>; + type B = NInt>; + type P4 = PInt, B0>, B0>>; + + #[allow(non_camel_case_types)] + type P5AddN1 = <>::Output as Same>::Output; + + assert_eq!(::to_i64(), ::to_i64()); +} +#[test] +#[allow(non_snake_case)] +fn test_P5_Sub_N1() { + type A = PInt, B0>, B1>>; + type B = NInt>; + type P6 = PInt, B1>, B0>>; + + #[allow(non_camel_case_types)] + type P5SubN1 = <>::Output as Same>::Output; + + assert_eq!(::to_i64(), ::to_i64()); +} +#[test] +#[allow(non_snake_case)] +fn test_P5_Mul_N1() { + type A = PInt, B0>, B1>>; + type B = NInt>; + type N5 = NInt, B0>, B1>>; + + #[allow(non_camel_case_types)] + type P5MulN1 = <>::Output as Same>::Output; + + assert_eq!(::to_i64(), ::to_i64()); +} +#[test] +#[allow(non_snake_case)] +fn test_P5_Min_N1() { + type A = PInt, B0>, B1>>; + type B = NInt>; + type N1 = NInt>; + + #[allow(non_camel_case_types)] + type P5MinN1 = <>::Output as Same>::Output; + + assert_eq!(::to_i64(), ::to_i64()); +} +#[test] +#[allow(non_snake_case)] +fn test_P5_Max_N1() { + type A = PInt, B0>, B1>>; + type B = NInt>; + type P5 = PInt, B0>, B1>>; + + #[allow(non_camel_case_types)] + type P5MaxN1 = <>::Output as Same>::Output; + + assert_eq!(::to_i64(), ::to_i64()); +} +#[test] +#[allow(non_snake_case)] +fn test_P5_Gcd_N1() { + type A = PInt, B0>, B1>>; + type B = NInt>; + type P1 = PInt>; + + #[allow(non_camel_case_types)] + type P5GcdN1 = <>::Output as Same>::Output; + + assert_eq!(::to_i64(), ::to_i64()); +} +#[test] +#[allow(non_snake_case)] +fn test_P5_Div_N1() { + type A = PInt, B0>, B1>>; + type B = NInt>; + type N5 = NInt, B0>, B1>>; + + #[allow(non_camel_case_types)] + type P5DivN1 = <>::Output as Same>::Output; + + assert_eq!(::to_i64(), ::to_i64()); +} +#[test] +#[allow(non_snake_case)] +fn test_P5_Rem_N1() { + type A = PInt, B0>, B1>>; + type B = NInt>; + type _0 = Z0; + + #[allow(non_camel_case_types)] + type P5RemN1 = <>::Output as Same<_0>>::Output; + + assert_eq!(::to_i64(), <_0 as Integer>::to_i64()); +} +#[test] +#[allow(non_snake_case)] +fn test_P5_PartialDiv_N1() { + type A = PInt, B0>, B1>>; + type B = NInt>; + type N5 = NInt, B0>, B1>>; + + #[allow(non_camel_case_types)] + type P5PartialDivN1 = <>::Output as Same>::Output; + + assert_eq!(::to_i64(), ::to_i64()); +} +#[test] +#[allow(non_snake_case)] +fn test_P5_Cmp_N1() { + type A = PInt, B0>, B1>>; + type B = NInt>; + + #[allow(non_camel_case_types)] + type P5CmpN1 = >::Output; + assert_eq!(::to_ordering(), Ordering::Greater); +} +#[test] +#[allow(non_snake_case)] +fn test_P5_Add__0() { + type A = PInt, B0>, B1>>; + type B = Z0; + type P5 = PInt, B0>, B1>>; + + #[allow(non_camel_case_types)] + type P5Add_0 = <>::Output as Same>::Output; + + assert_eq!(::to_i64(), ::to_i64()); +} +#[test] +#[allow(non_snake_case)] +fn test_P5_Sub__0() { + type A = PInt, B0>, B1>>; + type B = Z0; + type P5 = PInt, B0>, B1>>; + + #[allow(non_camel_case_types)] + type P5Sub_0 = <>::Output as Same>::Output; + + assert_eq!(::to_i64(), ::to_i64()); +} +#[test] +#[allow(non_snake_case)] +fn test_P5_Mul__0() { + type A = PInt, B0>, B1>>; + type B = Z0; + type _0 = Z0; + + #[allow(non_camel_case_types)] + type P5Mul_0 = <>::Output as Same<_0>>::Output; + + assert_eq!(::to_i64(), <_0 as Integer>::to_i64()); +} +#[test] +#[allow(non_snake_case)] +fn test_P5_Min__0() { + type A = PInt, B0>, B1>>; + type B = Z0; + type _0 = Z0; + + #[allow(non_camel_case_types)] + type P5Min_0 = <>::Output as Same<_0>>::Output; + + assert_eq!(::to_i64(), <_0 as Integer>::to_i64()); +} +#[test] +#[allow(non_snake_case)] +fn test_P5_Max__0() { + type A = PInt, B0>, B1>>; + type B = Z0; + type P5 = PInt, B0>, B1>>; + + #[allow(non_camel_case_types)] + type P5Max_0 = <>::Output as Same>::Output; + + assert_eq!(::to_i64(), ::to_i64()); +} +#[test] +#[allow(non_snake_case)] +fn test_P5_Gcd__0() { + type A = PInt, B0>, B1>>; + type B = Z0; + type P5 = PInt, B0>, B1>>; + + #[allow(non_camel_case_types)] + type P5Gcd_0 = <>::Output as Same>::Output; + + assert_eq!(::to_i64(), ::to_i64()); +} +#[test] +#[allow(non_snake_case)] +fn test_P5_Pow__0() { + type A = PInt, B0>, B1>>; + type B = Z0; + type P1 = PInt>; + + #[allow(non_camel_case_types)] + type P5Pow_0 = <>::Output as Same>::Output; + + assert_eq!(::to_i64(), ::to_i64()); +} +#[test] +#[allow(non_snake_case)] +fn test_P5_Cmp__0() { + type A = PInt, B0>, B1>>; + type B = Z0; + + #[allow(non_camel_case_types)] + type P5Cmp_0 = >::Output; + assert_eq!(::to_ordering(), Ordering::Greater); +} +#[test] +#[allow(non_snake_case)] +fn test_P5_Add_P1() { + type A = PInt, B0>, B1>>; + type B = PInt>; + type P6 = PInt, B1>, B0>>; + + #[allow(non_camel_case_types)] + type P5AddP1 = <>::Output as Same>::Output; + + assert_eq!(::to_i64(), ::to_i64()); +} +#[test] +#[allow(non_snake_case)] +fn test_P5_Sub_P1() { + type A = PInt, B0>, B1>>; + type B = PInt>; + type P4 = PInt, B0>, B0>>; + + #[allow(non_camel_case_types)] + type P5SubP1 = <>::Output as Same>::Output; + + assert_eq!(::to_i64(), ::to_i64()); +} +#[test] +#[allow(non_snake_case)] +fn test_P5_Mul_P1() { + type A = PInt, B0>, B1>>; + type B = PInt>; + type P5 = PInt, B0>, B1>>; + + #[allow(non_camel_case_types)] + type P5MulP1 = <>::Output as Same>::Output; + + assert_eq!(::to_i64(), ::to_i64()); +} +#[test] +#[allow(non_snake_case)] +fn test_P5_Min_P1() { + type A = PInt, B0>, B1>>; + type B = PInt>; + type P1 = PInt>; + + #[allow(non_camel_case_types)] + type P5MinP1 = <>::Output as Same>::Output; + + assert_eq!(::to_i64(), ::to_i64()); +} +#[test] +#[allow(non_snake_case)] +fn test_P5_Max_P1() { + type A = PInt, B0>, B1>>; + type B = PInt>; + type P5 = PInt, B0>, B1>>; + + #[allow(non_camel_case_types)] + type P5MaxP1 = <>::Output as Same>::Output; + + assert_eq!(::to_i64(), ::to_i64()); +} +#[test] +#[allow(non_snake_case)] +fn test_P5_Gcd_P1() { + type A = PInt, B0>, B1>>; + type B = PInt>; + type P1 = PInt>; + + #[allow(non_camel_case_types)] + type P5GcdP1 = <>::Output as Same>::Output; + + assert_eq!(::to_i64(), ::to_i64()); +} +#[test] +#[allow(non_snake_case)] +fn test_P5_Div_P1() { + type A = PInt, B0>, B1>>; + type B = PInt>; + type P5 = PInt, B0>, B1>>; + + #[allow(non_camel_case_types)] + type P5DivP1 = <>::Output as Same>::Output; + + assert_eq!(::to_i64(), ::to_i64()); +} +#[test] +#[allow(non_snake_case)] +fn test_P5_Rem_P1() { + type A = PInt, B0>, B1>>; + type B = PInt>; + type _0 = Z0; + + #[allow(non_camel_case_types)] + type P5RemP1 = <>::Output as Same<_0>>::Output; + + assert_eq!(::to_i64(), <_0 as Integer>::to_i64()); +} +#[test] +#[allow(non_snake_case)] +fn test_P5_PartialDiv_P1() { + type A = PInt, B0>, B1>>; + type B = PInt>; + type P5 = PInt, B0>, B1>>; + + #[allow(non_camel_case_types)] + type P5PartialDivP1 = <>::Output as Same>::Output; + + assert_eq!(::to_i64(), ::to_i64()); +} +#[test] +#[allow(non_snake_case)] +fn test_P5_Pow_P1() { + type A = PInt, B0>, B1>>; + type B = PInt>; + type P5 = PInt, B0>, B1>>; + + #[allow(non_camel_case_types)] + type P5PowP1 = <>::Output as Same>::Output; + + assert_eq!(::to_i64(), ::to_i64()); +} +#[test] +#[allow(non_snake_case)] +fn test_P5_Cmp_P1() { + type A = PInt, B0>, B1>>; + type B = PInt>; + + #[allow(non_camel_case_types)] + type P5CmpP1 = >::Output; + assert_eq!(::to_ordering(), Ordering::Greater); +} +#[test] +#[allow(non_snake_case)] +fn test_P5_Add_P2() { + type A = PInt, B0>, B1>>; + type B = PInt, B0>>; + type P7 = PInt, B1>, B1>>; + + #[allow(non_camel_case_types)] + type P5AddP2 = <>::Output as Same>::Output; + + assert_eq!(::to_i64(), ::to_i64()); +} +#[test] +#[allow(non_snake_case)] +fn test_P5_Sub_P2() { + type A = PInt, B0>, B1>>; + type B = PInt, B0>>; + type P3 = PInt, B1>>; + + #[allow(non_camel_case_types)] + type P5SubP2 = <>::Output as Same>::Output; + + assert_eq!(::to_i64(), ::to_i64()); +} +#[test] +#[allow(non_snake_case)] +fn test_P5_Mul_P2() { + type A = PInt, B0>, B1>>; + type B = PInt, B0>>; + type P10 = PInt, B0>, B1>, B0>>; + + #[allow(non_camel_case_types)] + type P5MulP2 = <>::Output as Same>::Output; + + assert_eq!(::to_i64(), ::to_i64()); +} +#[test] +#[allow(non_snake_case)] +fn test_P5_Min_P2() { + type A = PInt, B0>, B1>>; + type B = PInt, B0>>; + type P2 = PInt, B0>>; + + #[allow(non_camel_case_types)] + type P5MinP2 = <>::Output as Same>::Output; + + assert_eq!(::to_i64(), ::to_i64()); +} +#[test] +#[allow(non_snake_case)] +fn test_P5_Max_P2() { + type A = PInt, B0>, B1>>; + type B = PInt, B0>>; + type P5 = PInt, B0>, B1>>; + + #[allow(non_camel_case_types)] + type P5MaxP2 = <>::Output as Same>::Output; + + assert_eq!(::to_i64(), ::to_i64()); +} +#[test] +#[allow(non_snake_case)] +fn test_P5_Gcd_P2() { + type A = PInt, B0>, B1>>; + type B = PInt, B0>>; + type P1 = PInt>; + + #[allow(non_camel_case_types)] + type P5GcdP2 = <>::Output as Same>::Output; + + assert_eq!(::to_i64(), ::to_i64()); +} +#[test] +#[allow(non_snake_case)] +fn test_P5_Div_P2() { + type A = PInt, B0>, B1>>; + type B = PInt, B0>>; + type P2 = PInt, B0>>; + + #[allow(non_camel_case_types)] + type P5DivP2 = <>::Output as Same>::Output; + + assert_eq!(::to_i64(), ::to_i64()); +} +#[test] +#[allow(non_snake_case)] +fn test_P5_Rem_P2() { + type A = PInt, B0>, B1>>; + type B = PInt, B0>>; + type P1 = PInt>; + + #[allow(non_camel_case_types)] + type P5RemP2 = <>::Output as Same>::Output; + + assert_eq!(::to_i64(), ::to_i64()); +} +#[test] +#[allow(non_snake_case)] +fn test_P5_Pow_P2() { + type A = PInt, B0>, B1>>; + type B = PInt, B0>>; + type P25 = PInt, B1>, B0>, B0>, B1>>; + + #[allow(non_camel_case_types)] + type P5PowP2 = <>::Output as Same>::Output; + + assert_eq!(::to_i64(), ::to_i64()); +} +#[test] +#[allow(non_snake_case)] +fn test_P5_Cmp_P2() { + type A = PInt, B0>, B1>>; + type B = PInt, B0>>; + + #[allow(non_camel_case_types)] + type P5CmpP2 = >::Output; + assert_eq!(::to_ordering(), Ordering::Greater); +} +#[test] +#[allow(non_snake_case)] +fn test_P5_Add_P3() { + type A = PInt, B0>, B1>>; + type B = PInt, B1>>; + type P8 = PInt, B0>, B0>, B0>>; + + #[allow(non_camel_case_types)] + type P5AddP3 = <>::Output as Same>::Output; + + assert_eq!(::to_i64(), ::to_i64()); +} +#[test] +#[allow(non_snake_case)] +fn test_P5_Sub_P3() { + type A = PInt, B0>, B1>>; + type B = PInt, B1>>; + type P2 = PInt, B0>>; + + #[allow(non_camel_case_types)] + type P5SubP3 = <>::Output as Same>::Output; + + assert_eq!(::to_i64(), ::to_i64()); +} +#[test] +#[allow(non_snake_case)] +fn test_P5_Mul_P3() { + type A = PInt, B0>, B1>>; + type B = PInt, B1>>; + type P15 = PInt, B1>, B1>, B1>>; + + #[allow(non_camel_case_types)] + type P5MulP3 = <>::Output as Same>::Output; + + assert_eq!(::to_i64(), ::to_i64()); +} +#[test] +#[allow(non_snake_case)] +fn test_P5_Min_P3() { + type A = PInt, B0>, B1>>; + type B = PInt, B1>>; + type P3 = PInt, B1>>; + + #[allow(non_camel_case_types)] + type P5MinP3 = <>::Output as Same>::Output; + + assert_eq!(::to_i64(), ::to_i64()); +} +#[test] +#[allow(non_snake_case)] +fn test_P5_Max_P3() { + type A = PInt, B0>, B1>>; + type B = PInt, B1>>; + type P5 = PInt, B0>, B1>>; + + #[allow(non_camel_case_types)] + type P5MaxP3 = <>::Output as Same>::Output; + + assert_eq!(::to_i64(), ::to_i64()); +} +#[test] +#[allow(non_snake_case)] +fn test_P5_Gcd_P3() { + type A = PInt, B0>, B1>>; + type B = PInt, B1>>; + type P1 = PInt>; + + #[allow(non_camel_case_types)] + type P5GcdP3 = <>::Output as Same>::Output; + + assert_eq!(::to_i64(), ::to_i64()); +} +#[test] +#[allow(non_snake_case)] +fn test_P5_Div_P3() { + type A = PInt, B0>, B1>>; + type B = PInt, B1>>; + type P1 = PInt>; + + #[allow(non_camel_case_types)] + type P5DivP3 = <>::Output as Same>::Output; + + assert_eq!(::to_i64(), ::to_i64()); +} +#[test] +#[allow(non_snake_case)] +fn test_P5_Rem_P3() { + type A = PInt, B0>, B1>>; + type B = PInt, B1>>; + type P2 = PInt, B0>>; + + #[allow(non_camel_case_types)] + type P5RemP3 = <>::Output as Same>::Output; + + assert_eq!(::to_i64(), ::to_i64()); +} +#[test] +#[allow(non_snake_case)] +fn test_P5_Pow_P3() { + type A = PInt, B0>, B1>>; + type B = PInt, B1>>; + type P125 = PInt, B1>, B1>, B1>, B1>, B0>, B1>>; + + #[allow(non_camel_case_types)] + type P5PowP3 = <>::Output as Same>::Output; + + assert_eq!(::to_i64(), ::to_i64()); +} +#[test] +#[allow(non_snake_case)] +fn test_P5_Cmp_P3() { + type A = PInt, B0>, B1>>; + type B = PInt, B1>>; + + #[allow(non_camel_case_types)] + type P5CmpP3 = >::Output; + assert_eq!(::to_ordering(), Ordering::Greater); +} +#[test] +#[allow(non_snake_case)] +fn test_P5_Add_P4() { + type A = PInt, B0>, B1>>; + type B = PInt, B0>, B0>>; + type P9 = PInt, B0>, B0>, B1>>; + + #[allow(non_camel_case_types)] + type P5AddP4 = <>::Output as Same>::Output; + + assert_eq!(::to_i64(), ::to_i64()); +} +#[test] +#[allow(non_snake_case)] +fn test_P5_Sub_P4() { + type A = PInt, B0>, B1>>; + type B = PInt, B0>, B0>>; + type P1 = PInt>; + + #[allow(non_camel_case_types)] + type P5SubP4 = <>::Output as Same>::Output; + + assert_eq!(::to_i64(), ::to_i64()); +} +#[test] +#[allow(non_snake_case)] +fn test_P5_Mul_P4() { + type A = PInt, B0>, B1>>; + type B = PInt, B0>, B0>>; + type P20 = PInt, B0>, B1>, B0>, B0>>; + + #[allow(non_camel_case_types)] + type P5MulP4 = <>::Output as Same>::Output; + + assert_eq!(::to_i64(), ::to_i64()); +} +#[test] +#[allow(non_snake_case)] +fn test_P5_Min_P4() { + type A = PInt, B0>, B1>>; + type B = PInt, B0>, B0>>; + type P4 = PInt, B0>, B0>>; + + #[allow(non_camel_case_types)] + type P5MinP4 = <>::Output as Same>::Output; + + assert_eq!(::to_i64(), ::to_i64()); +} +#[test] +#[allow(non_snake_case)] +fn test_P5_Max_P4() { + type A = PInt, B0>, B1>>; + type B = PInt, B0>, B0>>; + type P5 = PInt, B0>, B1>>; + + #[allow(non_camel_case_types)] + type P5MaxP4 = <>::Output as Same>::Output; + + assert_eq!(::to_i64(), ::to_i64()); +} +#[test] +#[allow(non_snake_case)] +fn test_P5_Gcd_P4() { + type A = PInt, B0>, B1>>; + type B = PInt, B0>, B0>>; + type P1 = PInt>; + + #[allow(non_camel_case_types)] + type P5GcdP4 = <>::Output as Same>::Output; + + assert_eq!(::to_i64(), ::to_i64()); +} +#[test] +#[allow(non_snake_case)] +fn test_P5_Div_P4() { + type A = PInt, B0>, B1>>; + type B = PInt, B0>, B0>>; + type P1 = PInt>; + + #[allow(non_camel_case_types)] + type P5DivP4 = <>::Output as Same>::Output; + + assert_eq!(::to_i64(), ::to_i64()); +} +#[test] +#[allow(non_snake_case)] +fn test_P5_Rem_P4() { + type A = PInt, B0>, B1>>; + type B = PInt, B0>, B0>>; + type P1 = PInt>; + + #[allow(non_camel_case_types)] + type P5RemP4 = <>::Output as Same>::Output; + + assert_eq!(::to_i64(), ::to_i64()); +} +#[test] +#[allow(non_snake_case)] +fn test_P5_Pow_P4() { + type A = PInt, B0>, B1>>; + type B = PInt, B0>, B0>>; + type P625 = PInt, B0>, B0>, B1>, B1>, B1>, B0>, B0>, B0>, B1>>; + + #[allow(non_camel_case_types)] + type P5PowP4 = <>::Output as Same>::Output; + + assert_eq!(::to_i64(), ::to_i64()); +} +#[test] +#[allow(non_snake_case)] +fn test_P5_Cmp_P4() { + type A = PInt, B0>, B1>>; + type B = PInt, B0>, B0>>; + + #[allow(non_camel_case_types)] + type P5CmpP4 = >::Output; + assert_eq!(::to_ordering(), Ordering::Greater); +} +#[test] +#[allow(non_snake_case)] +fn test_P5_Add_P5() { + type A = PInt, B0>, B1>>; + type B = PInt, B0>, B1>>; + type P10 = PInt, B0>, B1>, B0>>; + + #[allow(non_camel_case_types)] + type P5AddP5 = <>::Output as Same>::Output; + + assert_eq!(::to_i64(), ::to_i64()); +} +#[test] +#[allow(non_snake_case)] +fn test_P5_Sub_P5() { + type A = PInt, B0>, B1>>; + type B = PInt, B0>, B1>>; + type _0 = Z0; + + #[allow(non_camel_case_types)] + type P5SubP5 = <>::Output as Same<_0>>::Output; + + assert_eq!(::to_i64(), <_0 as Integer>::to_i64()); +} +#[test] +#[allow(non_snake_case)] +fn test_P5_Mul_P5() { + type A = PInt, B0>, B1>>; + type B = PInt, B0>, B1>>; + type P25 = PInt, B1>, B0>, B0>, B1>>; + + #[allow(non_camel_case_types)] + type P5MulP5 = <>::Output as Same>::Output; + + assert_eq!(::to_i64(), ::to_i64()); +} +#[test] +#[allow(non_snake_case)] +fn test_P5_Min_P5() { + type A = PInt, B0>, B1>>; + type B = PInt, B0>, B1>>; + type P5 = PInt, B0>, B1>>; + + #[allow(non_camel_case_types)] + type P5MinP5 = <>::Output as Same>::Output; + + assert_eq!(::to_i64(), ::to_i64()); +} +#[test] +#[allow(non_snake_case)] +fn test_P5_Max_P5() { + type A = PInt, B0>, B1>>; + type B = PInt, B0>, B1>>; + type P5 = PInt, B0>, B1>>; + + #[allow(non_camel_case_types)] + type P5MaxP5 = <>::Output as Same>::Output; + + assert_eq!(::to_i64(), ::to_i64()); +} +#[test] +#[allow(non_snake_case)] +fn test_P5_Gcd_P5() { + type A = PInt, B0>, B1>>; + type B = PInt, B0>, B1>>; + type P5 = PInt, B0>, B1>>; + + #[allow(non_camel_case_types)] + type P5GcdP5 = <>::Output as Same>::Output; + + assert_eq!(::to_i64(), ::to_i64()); +} +#[test] +#[allow(non_snake_case)] +fn test_P5_Div_P5() { + type A = PInt, B0>, B1>>; + type B = PInt, B0>, B1>>; + type P1 = PInt>; + + #[allow(non_camel_case_types)] + type P5DivP5 = <>::Output as Same>::Output; + + assert_eq!(::to_i64(), ::to_i64()); +} +#[test] +#[allow(non_snake_case)] +fn test_P5_Rem_P5() { + type A = PInt, B0>, B1>>; + type B = PInt, B0>, B1>>; + type _0 = Z0; + + #[allow(non_camel_case_types)] + type P5RemP5 = <>::Output as Same<_0>>::Output; + + assert_eq!(::to_i64(), <_0 as Integer>::to_i64()); +} +#[test] +#[allow(non_snake_case)] +fn test_P5_PartialDiv_P5() { + type A = PInt, B0>, B1>>; + type B = PInt, B0>, B1>>; + type P1 = PInt>; + + #[allow(non_camel_case_types)] + type P5PartialDivP5 = <>::Output as Same>::Output; + + assert_eq!(::to_i64(), ::to_i64()); +} +#[test] +#[allow(non_snake_case)] +fn test_P5_Pow_P5() { + type A = PInt, B0>, B1>>; + type B = PInt, B0>, B1>>; + type P3125 = PInt, B1>, B0>, B0>, B0>, B0>, B1>, B1>, B0>, B1>, B0>, B1>>; + + #[allow(non_camel_case_types)] + type P5PowP5 = <>::Output as Same>::Output; + + assert_eq!(::to_i64(), ::to_i64()); +} +#[test] +#[allow(non_snake_case)] +fn test_P5_Cmp_P5() { + type A = PInt, B0>, B1>>; + type B = PInt, B0>, B1>>; + + #[allow(non_camel_case_types)] + type P5CmpP5 = >::Output; + assert_eq!(::to_ordering(), Ordering::Equal); +} +#[test] +#[allow(non_snake_case)] +fn test_N5_Neg() { + type A = NInt, B0>, B1>>; + type P5 = PInt, B0>, B1>>; + + #[allow(non_camel_case_types)] + type NegN5 = <::Output as Same>::Output; + assert_eq!(::to_i64(), ::to_i64()); +} +#[test] +#[allow(non_snake_case)] +fn test_N5_Abs() { + type A = NInt, B0>, B1>>; + type P5 = PInt, B0>, B1>>; + + #[allow(non_camel_case_types)] + type AbsN5 = <::Output as Same>::Output; + assert_eq!(::to_i64(), ::to_i64()); +} +#[test] +#[allow(non_snake_case)] +fn test_N4_Neg() { + type A = NInt, B0>, B0>>; + type P4 = PInt, B0>, B0>>; + + #[allow(non_camel_case_types)] + type NegN4 = <::Output as Same>::Output; + assert_eq!(::to_i64(), ::to_i64()); +} +#[test] +#[allow(non_snake_case)] +fn test_N4_Abs() { + type A = NInt, B0>, B0>>; + type P4 = PInt, B0>, B0>>; + + #[allow(non_camel_case_types)] + type AbsN4 = <::Output as Same>::Output; + assert_eq!(::to_i64(), ::to_i64()); +} +#[test] +#[allow(non_snake_case)] +fn test_N3_Neg() { + type A = NInt, B1>>; + type P3 = PInt, B1>>; + + #[allow(non_camel_case_types)] + type NegN3 = <::Output as Same>::Output; + assert_eq!(::to_i64(), ::to_i64()); +} +#[test] +#[allow(non_snake_case)] +fn test_N3_Abs() { + type A = NInt, B1>>; + type P3 = PInt, B1>>; + + #[allow(non_camel_case_types)] + type AbsN3 = <::Output as Same>::Output; + assert_eq!(::to_i64(), ::to_i64()); +} +#[test] +#[allow(non_snake_case)] +fn test_N2_Neg() { + type A = NInt, B0>>; + type P2 = PInt, B0>>; + + #[allow(non_camel_case_types)] + type NegN2 = <::Output as Same>::Output; + assert_eq!(::to_i64(), ::to_i64()); +} +#[test] +#[allow(non_snake_case)] +fn test_N2_Abs() { + type A = NInt, B0>>; + type P2 = PInt, B0>>; + + #[allow(non_camel_case_types)] + type AbsN2 = <::Output as Same>::Output; + assert_eq!(::to_i64(), ::to_i64()); +} +#[test] +#[allow(non_snake_case)] +fn test_N1_Neg() { + type A = NInt>; + type P1 = PInt>; + + #[allow(non_camel_case_types)] + type NegN1 = <::Output as Same>::Output; + assert_eq!(::to_i64(), ::to_i64()); +} +#[test] +#[allow(non_snake_case)] +fn test_N1_Abs() { + type A = NInt>; + type P1 = PInt>; + + #[allow(non_camel_case_types)] + type AbsN1 = <::Output as Same>::Output; + assert_eq!(::to_i64(), ::to_i64()); +} +#[test] +#[allow(non_snake_case)] +fn test__0_Neg() { + type A = Z0; + type _0 = Z0; + + #[allow(non_camel_case_types)] + type Neg_0 = <::Output as Same<_0>>::Output; + assert_eq!(::to_i64(), <_0 as Integer>::to_i64()); +} +#[test] +#[allow(non_snake_case)] +fn test__0_Abs() { + type A = Z0; + type _0 = Z0; + + #[allow(non_camel_case_types)] + type Abs_0 = <::Output as Same<_0>>::Output; + assert_eq!(::to_i64(), <_0 as Integer>::to_i64()); +} +#[test] +#[allow(non_snake_case)] +fn test_P1_Neg() { + type A = PInt>; + type N1 = NInt>; + + #[allow(non_camel_case_types)] + type NegP1 = <::Output as Same>::Output; + assert_eq!(::to_i64(), ::to_i64()); +} +#[test] +#[allow(non_snake_case)] +fn test_P1_Abs() { + type A = PInt>; + type P1 = PInt>; + + #[allow(non_camel_case_types)] + type AbsP1 = <::Output as Same>::Output; + assert_eq!(::to_i64(), ::to_i64()); +} +#[test] +#[allow(non_snake_case)] +fn test_P2_Neg() { + type A = PInt, B0>>; + type N2 = NInt, B0>>; + + #[allow(non_camel_case_types)] + type NegP2 = <::Output as Same>::Output; + assert_eq!(::to_i64(), ::to_i64()); +} +#[test] +#[allow(non_snake_case)] +fn test_P2_Abs() { + type A = PInt, B0>>; + type P2 = PInt, B0>>; + + #[allow(non_camel_case_types)] + type AbsP2 = <::Output as Same>::Output; + assert_eq!(::to_i64(), ::to_i64()); +} +#[test] +#[allow(non_snake_case)] +fn test_P3_Neg() { + type A = PInt, B1>>; + type N3 = NInt, B1>>; + + #[allow(non_camel_case_types)] + type NegP3 = <::Output as Same>::Output; + assert_eq!(::to_i64(), ::to_i64()); +} +#[test] +#[allow(non_snake_case)] +fn test_P3_Abs() { + type A = PInt, B1>>; + type P3 = PInt, B1>>; + + #[allow(non_camel_case_types)] + type AbsP3 = <::Output as Same>::Output; + assert_eq!(::to_i64(), ::to_i64()); +} +#[test] +#[allow(non_snake_case)] +fn test_P4_Neg() { + type A = PInt, B0>, B0>>; + type N4 = NInt, B0>, B0>>; + + #[allow(non_camel_case_types)] + type NegP4 = <::Output as Same>::Output; + assert_eq!(::to_i64(), ::to_i64()); +} +#[test] +#[allow(non_snake_case)] +fn test_P4_Abs() { + type A = PInt, B0>, B0>>; + type P4 = PInt, B0>, B0>>; + + #[allow(non_camel_case_types)] + type AbsP4 = <::Output as Same>::Output; + assert_eq!(::to_i64(), ::to_i64()); +} +#[test] +#[allow(non_snake_case)] +fn test_P5_Neg() { + type A = PInt, B0>, B1>>; + type N5 = NInt, B0>, B1>>; + + #[allow(non_camel_case_types)] + type NegP5 = <::Output as Same>::Output; + assert_eq!(::to_i64(), ::to_i64()); +} +#[test] +#[allow(non_snake_case)] +fn test_P5_Abs() { + type A = PInt, B0>, B1>>; + type P5 = PInt, B0>, B1>>; + + #[allow(non_camel_case_types)] + type AbsP5 = <::Output as Same>::Output; + assert_eq!(::to_i64(), ::to_i64()); +} \ No newline at end of file diff --git a/.tmp-check-windows/x86_64-pc-windows-msvc/debug/build/typenum-1c5a60fd73ab5557/output b/.tmp-check-windows/x86_64-pc-windows-msvc/debug/build/typenum-1c5a60fd73ab5557/output new file mode 100644 index 000000000..17b919daa --- /dev/null +++ b/.tmp-check-windows/x86_64-pc-windows-msvc/debug/build/typenum-1c5a60fd73ab5557/output @@ -0,0 +1 @@ +cargo:rerun-if-changed=tests diff --git a/.tmp-check-windows/x86_64-pc-windows-msvc/debug/build/typenum-1c5a60fd73ab5557/root-output b/.tmp-check-windows/x86_64-pc-windows-msvc/debug/build/typenum-1c5a60fd73ab5557/root-output new file mode 100644 index 000000000..6aea4cc58 --- /dev/null +++ b/.tmp-check-windows/x86_64-pc-windows-msvc/debug/build/typenum-1c5a60fd73ab5557/root-output @@ -0,0 +1 @@ +/Users/coso/Documents/dev/ai/aiclientproxy/lime/.tmp-check-windows/x86_64-pc-windows-msvc/debug/build/typenum-1c5a60fd73ab5557/out \ No newline at end of file diff --git a/.tmp-check-windows/x86_64-pc-windows-msvc/debug/build/typenum-1c5a60fd73ab5557/stderr b/.tmp-check-windows/x86_64-pc-windows-msvc/debug/build/typenum-1c5a60fd73ab5557/stderr new file mode 100644 index 000000000..e69de29bb diff --git a/.tmp-check-windows/x86_64-pc-windows-msvc/debug/build/windows_x86_64_msvc-995ce0beecadde94/invoked.timestamp b/.tmp-check-windows/x86_64-pc-windows-msvc/debug/build/windows_x86_64_msvc-995ce0beecadde94/invoked.timestamp new file mode 100644 index 000000000..e00328da5 --- /dev/null +++ b/.tmp-check-windows/x86_64-pc-windows-msvc/debug/build/windows_x86_64_msvc-995ce0beecadde94/invoked.timestamp @@ -0,0 +1 @@ +This file has an mtime of when this was started. \ No newline at end of file diff --git a/.tmp-check-windows/x86_64-pc-windows-msvc/debug/build/windows_x86_64_msvc-995ce0beecadde94/output b/.tmp-check-windows/x86_64-pc-windows-msvc/debug/build/windows_x86_64_msvc-995ce0beecadde94/output new file mode 100644 index 000000000..2bb1e71ac --- /dev/null +++ b/.tmp-check-windows/x86_64-pc-windows-msvc/debug/build/windows_x86_64_msvc-995ce0beecadde94/output @@ -0,0 +1 @@ +cargo:rustc-link-search=native=/Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/windows_x86_64_msvc-0.53.1/lib diff --git a/.tmp-check-windows/x86_64-pc-windows-msvc/debug/build/windows_x86_64_msvc-995ce0beecadde94/root-output b/.tmp-check-windows/x86_64-pc-windows-msvc/debug/build/windows_x86_64_msvc-995ce0beecadde94/root-output new file mode 100644 index 000000000..9d0f2a6a7 --- /dev/null +++ b/.tmp-check-windows/x86_64-pc-windows-msvc/debug/build/windows_x86_64_msvc-995ce0beecadde94/root-output @@ -0,0 +1 @@ +/Users/coso/Documents/dev/ai/aiclientproxy/lime/.tmp-check-windows/x86_64-pc-windows-msvc/debug/build/windows_x86_64_msvc-995ce0beecadde94/out \ No newline at end of file diff --git a/.tmp-check-windows/x86_64-pc-windows-msvc/debug/build/windows_x86_64_msvc-995ce0beecadde94/stderr b/.tmp-check-windows/x86_64-pc-windows-msvc/debug/build/windows_x86_64_msvc-995ce0beecadde94/stderr new file mode 100644 index 000000000..e69de29bb diff --git a/.tmp-check-windows/x86_64-pc-windows-msvc/debug/build/windows_x86_64_msvc-c5b3a5a0346e0fe7/invoked.timestamp b/.tmp-check-windows/x86_64-pc-windows-msvc/debug/build/windows_x86_64_msvc-c5b3a5a0346e0fe7/invoked.timestamp new file mode 100644 index 000000000..e00328da5 --- /dev/null +++ b/.tmp-check-windows/x86_64-pc-windows-msvc/debug/build/windows_x86_64_msvc-c5b3a5a0346e0fe7/invoked.timestamp @@ -0,0 +1 @@ +This file has an mtime of when this was started. \ No newline at end of file diff --git a/.tmp-check-windows/x86_64-pc-windows-msvc/debug/build/windows_x86_64_msvc-c5b3a5a0346e0fe7/output b/.tmp-check-windows/x86_64-pc-windows-msvc/debug/build/windows_x86_64_msvc-c5b3a5a0346e0fe7/output new file mode 100644 index 000000000..1b3e2a117 --- /dev/null +++ b/.tmp-check-windows/x86_64-pc-windows-msvc/debug/build/windows_x86_64_msvc-c5b3a5a0346e0fe7/output @@ -0,0 +1 @@ +cargo:rustc-link-search=native=/Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/windows_x86_64_msvc-0.52.6/lib diff --git a/.tmp-check-windows/x86_64-pc-windows-msvc/debug/build/windows_x86_64_msvc-c5b3a5a0346e0fe7/root-output b/.tmp-check-windows/x86_64-pc-windows-msvc/debug/build/windows_x86_64_msvc-c5b3a5a0346e0fe7/root-output new file mode 100644 index 000000000..45303cd1e --- /dev/null +++ b/.tmp-check-windows/x86_64-pc-windows-msvc/debug/build/windows_x86_64_msvc-c5b3a5a0346e0fe7/root-output @@ -0,0 +1 @@ +/Users/coso/Documents/dev/ai/aiclientproxy/lime/.tmp-check-windows/x86_64-pc-windows-msvc/debug/build/windows_x86_64_msvc-c5b3a5a0346e0fe7/out \ No newline at end of file diff --git a/.tmp-check-windows/x86_64-pc-windows-msvc/debug/build/windows_x86_64_msvc-c5b3a5a0346e0fe7/stderr b/.tmp-check-windows/x86_64-pc-windows-msvc/debug/build/windows_x86_64_msvc-c5b3a5a0346e0fe7/stderr new file mode 100644 index 000000000..e69de29bb diff --git a/.tmp-check-windows/x86_64-pc-windows-msvc/debug/build/zerocopy-aab0c00b4914f297/invoked.timestamp b/.tmp-check-windows/x86_64-pc-windows-msvc/debug/build/zerocopy-aab0c00b4914f297/invoked.timestamp new file mode 100644 index 000000000..e00328da5 --- /dev/null +++ b/.tmp-check-windows/x86_64-pc-windows-msvc/debug/build/zerocopy-aab0c00b4914f297/invoked.timestamp @@ -0,0 +1 @@ +This file has an mtime of when this was started. \ No newline at end of file diff --git a/.tmp-check-windows/x86_64-pc-windows-msvc/debug/build/zerocopy-aab0c00b4914f297/output b/.tmp-check-windows/x86_64-pc-windows-msvc/debug/build/zerocopy-aab0c00b4914f297/output new file mode 100644 index 000000000..deda5f6ab --- /dev/null +++ b/.tmp-check-windows/x86_64-pc-windows-msvc/debug/build/zerocopy-aab0c00b4914f297/output @@ -0,0 +1,21 @@ +cargo:rerun-if-changed=build.rs +cargo:rerun-if-changed=Cargo.toml +cargo:rustc-check-cfg=cfg(no_zerocopy_simd_x86_avx12_1_89_0) +cargo:rustc-check-cfg=cfg(rust, values("1.89.0")) +cargo:rustc-check-cfg=cfg(no_zerocopy_core_error_1_81_0) +cargo:rustc-check-cfg=cfg(rust, values("1.81.0")) +cargo:rustc-check-cfg=cfg(no_zerocopy_diagnostic_on_unimplemented_1_78_0) +cargo:rustc-check-cfg=cfg(rust, values("1.78.0")) +cargo:rustc-check-cfg=cfg(no_zerocopy_generic_bounds_in_const_fn_1_61_0) +cargo:rustc-check-cfg=cfg(rust, values("1.61.0")) +cargo:rustc-check-cfg=cfg(no_zerocopy_target_has_atomics_1_60_0) +cargo:rustc-check-cfg=cfg(rust, values("1.60.0")) +cargo:rustc-check-cfg=cfg(no_zerocopy_aarch64_simd_1_59_0) +cargo:rustc-check-cfg=cfg(rust, values("1.59.0")) +cargo:rustc-check-cfg=cfg(no_zerocopy_panic_in_const_and_vec_try_reserve_1_57_0) +cargo:rustc-check-cfg=cfg(rust, values("1.57.0")) +cargo:rustc-check-cfg=cfg(doc_cfg) +cargo:rustc-check-cfg=cfg(kani) +cargo:rustc-check-cfg=cfg(__ZEROCOPY_INTERNAL_USE_ONLY_NIGHTLY_FEATURES_IN_TESTS) +cargo:rustc-check-cfg=cfg(__ZEROCOPY_INTERNAL_USE_ONLY_DEV_MODE) +cargo:rustc-check-cfg=cfg(coverage_nightly) diff --git a/.tmp-check-windows/x86_64-pc-windows-msvc/debug/build/zerocopy-aab0c00b4914f297/root-output b/.tmp-check-windows/x86_64-pc-windows-msvc/debug/build/zerocopy-aab0c00b4914f297/root-output new file mode 100644 index 000000000..98c4b30c6 --- /dev/null +++ b/.tmp-check-windows/x86_64-pc-windows-msvc/debug/build/zerocopy-aab0c00b4914f297/root-output @@ -0,0 +1 @@ +/Users/coso/Documents/dev/ai/aiclientproxy/lime/.tmp-check-windows/x86_64-pc-windows-msvc/debug/build/zerocopy-aab0c00b4914f297/out \ No newline at end of file diff --git a/.tmp-check-windows/x86_64-pc-windows-msvc/debug/build/zerocopy-aab0c00b4914f297/stderr b/.tmp-check-windows/x86_64-pc-windows-msvc/debug/build/zerocopy-aab0c00b4914f297/stderr new file mode 100644 index 000000000..e69de29bb diff --git a/.tmp-check-windows/x86_64-pc-windows-msvc/debug/build/zmij-cc4a98facfe6d33c/invoked.timestamp b/.tmp-check-windows/x86_64-pc-windows-msvc/debug/build/zmij-cc4a98facfe6d33c/invoked.timestamp new file mode 100644 index 000000000..e00328da5 --- /dev/null +++ b/.tmp-check-windows/x86_64-pc-windows-msvc/debug/build/zmij-cc4a98facfe6d33c/invoked.timestamp @@ -0,0 +1 @@ +This file has an mtime of when this was started. \ No newline at end of file diff --git a/.tmp-check-windows/x86_64-pc-windows-msvc/debug/build/zmij-cc4a98facfe6d33c/output b/.tmp-check-windows/x86_64-pc-windows-msvc/debug/build/zmij-cc4a98facfe6d33c/output new file mode 100644 index 000000000..c99f95855 --- /dev/null +++ b/.tmp-check-windows/x86_64-pc-windows-msvc/debug/build/zmij-cc4a98facfe6d33c/output @@ -0,0 +1,3 @@ +cargo:rerun-if-changed=build.rs +cargo:rustc-check-cfg=cfg(exhaustive) +cargo:rustc-check-cfg=cfg(zmij_no_select_unpredictable) diff --git a/.tmp-check-windows/x86_64-pc-windows-msvc/debug/build/zmij-cc4a98facfe6d33c/root-output b/.tmp-check-windows/x86_64-pc-windows-msvc/debug/build/zmij-cc4a98facfe6d33c/root-output new file mode 100644 index 000000000..19d0d46ee --- /dev/null +++ b/.tmp-check-windows/x86_64-pc-windows-msvc/debug/build/zmij-cc4a98facfe6d33c/root-output @@ -0,0 +1 @@ +/Users/coso/Documents/dev/ai/aiclientproxy/lime/.tmp-check-windows/x86_64-pc-windows-msvc/debug/build/zmij-cc4a98facfe6d33c/out \ No newline at end of file diff --git a/.tmp-check-windows/x86_64-pc-windows-msvc/debug/build/zmij-cc4a98facfe6d33c/stderr b/.tmp-check-windows/x86_64-pc-windows-msvc/debug/build/zmij-cc4a98facfe6d33c/stderr new file mode 100644 index 000000000..e69de29bb diff --git a/.tmp-check-windows/x86_64-pc-windows-msvc/debug/deps/allocator_api2-9124b3fecd321e72.d b/.tmp-check-windows/x86_64-pc-windows-msvc/debug/deps/allocator_api2-9124b3fecd321e72.d new file mode 100644 index 000000000..a538db951 --- /dev/null +++ b/.tmp-check-windows/x86_64-pc-windows-msvc/debug/deps/allocator_api2-9124b3fecd321e72.d @@ -0,0 +1,19 @@ +/Users/coso/Documents/dev/ai/aiclientproxy/lime/.tmp-check-windows/x86_64-pc-windows-msvc/debug/deps/allocator_api2-9124b3fecd321e72.d: /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/allocator-api2-0.2.21/src/lib.rs /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/allocator-api2-0.2.21/src/stable/mod.rs /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/allocator-api2-0.2.21/src/stable/alloc/mod.rs /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/allocator-api2-0.2.21/src/stable/alloc/global.rs /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/allocator-api2-0.2.21/src/stable/boxed.rs /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/allocator-api2-0.2.21/src/stable/raw_vec.rs /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/allocator-api2-0.2.21/src/stable/vec/mod.rs /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/allocator-api2-0.2.21/src/stable/vec/splice.rs /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/allocator-api2-0.2.21/src/stable/vec/drain.rs /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/allocator-api2-0.2.21/src/stable/vec/into_iter.rs /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/allocator-api2-0.2.21/src/stable/vec/partial_eq.rs /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/allocator-api2-0.2.21/src/stable/vec/set_len_on_drop.rs /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/allocator-api2-0.2.21/src/stable/macros.rs /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/allocator-api2-0.2.21/src/stable/slice.rs /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/allocator-api2-0.2.21/src/stable/unique.rs + +/Users/coso/Documents/dev/ai/aiclientproxy/lime/.tmp-check-windows/x86_64-pc-windows-msvc/debug/deps/liballocator_api2-9124b3fecd321e72.rmeta: /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/allocator-api2-0.2.21/src/lib.rs /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/allocator-api2-0.2.21/src/stable/mod.rs /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/allocator-api2-0.2.21/src/stable/alloc/mod.rs /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/allocator-api2-0.2.21/src/stable/alloc/global.rs /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/allocator-api2-0.2.21/src/stable/boxed.rs /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/allocator-api2-0.2.21/src/stable/raw_vec.rs /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/allocator-api2-0.2.21/src/stable/vec/mod.rs /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/allocator-api2-0.2.21/src/stable/vec/splice.rs /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/allocator-api2-0.2.21/src/stable/vec/drain.rs /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/allocator-api2-0.2.21/src/stable/vec/into_iter.rs /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/allocator-api2-0.2.21/src/stable/vec/partial_eq.rs /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/allocator-api2-0.2.21/src/stable/vec/set_len_on_drop.rs /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/allocator-api2-0.2.21/src/stable/macros.rs /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/allocator-api2-0.2.21/src/stable/slice.rs /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/allocator-api2-0.2.21/src/stable/unique.rs + +/Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/allocator-api2-0.2.21/src/lib.rs: +/Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/allocator-api2-0.2.21/src/stable/mod.rs: +/Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/allocator-api2-0.2.21/src/stable/alloc/mod.rs: +/Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/allocator-api2-0.2.21/src/stable/alloc/global.rs: +/Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/allocator-api2-0.2.21/src/stable/boxed.rs: +/Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/allocator-api2-0.2.21/src/stable/raw_vec.rs: +/Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/allocator-api2-0.2.21/src/stable/vec/mod.rs: +/Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/allocator-api2-0.2.21/src/stable/vec/splice.rs: +/Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/allocator-api2-0.2.21/src/stable/vec/drain.rs: +/Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/allocator-api2-0.2.21/src/stable/vec/into_iter.rs: +/Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/allocator-api2-0.2.21/src/stable/vec/partial_eq.rs: +/Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/allocator-api2-0.2.21/src/stable/vec/set_len_on_drop.rs: +/Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/allocator-api2-0.2.21/src/stable/macros.rs: +/Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/allocator-api2-0.2.21/src/stable/slice.rs: +/Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/allocator-api2-0.2.21/src/stable/unique.rs: diff --git a/.tmp-check-windows/x86_64-pc-windows-msvc/debug/deps/bitflags-c7e27940c9a4250d.d b/.tmp-check-windows/x86_64-pc-windows-msvc/debug/deps/bitflags-c7e27940c9a4250d.d new file mode 100644 index 000000000..61ff6477d --- /dev/null +++ b/.tmp-check-windows/x86_64-pc-windows-msvc/debug/deps/bitflags-c7e27940c9a4250d.d @@ -0,0 +1,12 @@ +/Users/coso/Documents/dev/ai/aiclientproxy/lime/.tmp-check-windows/x86_64-pc-windows-msvc/debug/deps/bitflags-c7e27940c9a4250d.d: /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/bitflags-2.11.0/src/lib.rs /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/bitflags-2.11.0/src/iter.rs /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/bitflags-2.11.0/src/parser.rs /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/bitflags-2.11.0/src/traits.rs /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/bitflags-2.11.0/src/public.rs /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/bitflags-2.11.0/src/internal.rs /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/bitflags-2.11.0/src/external.rs /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/bitflags-2.11.0/src/external/serde.rs + +/Users/coso/Documents/dev/ai/aiclientproxy/lime/.tmp-check-windows/x86_64-pc-windows-msvc/debug/deps/libbitflags-c7e27940c9a4250d.rmeta: /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/bitflags-2.11.0/src/lib.rs /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/bitflags-2.11.0/src/iter.rs /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/bitflags-2.11.0/src/parser.rs /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/bitflags-2.11.0/src/traits.rs /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/bitflags-2.11.0/src/public.rs /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/bitflags-2.11.0/src/internal.rs /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/bitflags-2.11.0/src/external.rs /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/bitflags-2.11.0/src/external/serde.rs + +/Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/bitflags-2.11.0/src/lib.rs: +/Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/bitflags-2.11.0/src/iter.rs: +/Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/bitflags-2.11.0/src/parser.rs: +/Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/bitflags-2.11.0/src/traits.rs: +/Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/bitflags-2.11.0/src/public.rs: +/Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/bitflags-2.11.0/src/internal.rs: +/Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/bitflags-2.11.0/src/external.rs: +/Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/bitflags-2.11.0/src/external/serde.rs: diff --git a/.tmp-check-windows/x86_64-pc-windows-msvc/debug/deps/bytes-30e33214aee11dd5.d b/.tmp-check-windows/x86_64-pc-windows-msvc/debug/deps/bytes-30e33214aee11dd5.d new file mode 100644 index 000000000..0903bd3fb --- /dev/null +++ b/.tmp-check-windows/x86_64-pc-windows-msvc/debug/deps/bytes-30e33214aee11dd5.d @@ -0,0 +1,22 @@ +/Users/coso/Documents/dev/ai/aiclientproxy/lime/.tmp-check-windows/x86_64-pc-windows-msvc/debug/deps/bytes-30e33214aee11dd5.d: /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/bytes-1.11.1/src/lib.rs /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/bytes-1.11.1/src/buf/mod.rs /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/bytes-1.11.1/src/buf/buf_impl.rs /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/bytes-1.11.1/src/buf/buf_mut.rs /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/bytes-1.11.1/src/buf/chain.rs /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/bytes-1.11.1/src/buf/iter.rs /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/bytes-1.11.1/src/buf/limit.rs /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/bytes-1.11.1/src/buf/reader.rs /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/bytes-1.11.1/src/buf/take.rs /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/bytes-1.11.1/src/buf/uninit_slice.rs /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/bytes-1.11.1/src/buf/vec_deque.rs /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/bytes-1.11.1/src/buf/writer.rs /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/bytes-1.11.1/src/bytes.rs /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/bytes-1.11.1/src/bytes_mut.rs /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/bytes-1.11.1/src/fmt/mod.rs /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/bytes-1.11.1/src/fmt/debug.rs /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/bytes-1.11.1/src/fmt/hex.rs /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/bytes-1.11.1/src/loom.rs + +/Users/coso/Documents/dev/ai/aiclientproxy/lime/.tmp-check-windows/x86_64-pc-windows-msvc/debug/deps/libbytes-30e33214aee11dd5.rmeta: /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/bytes-1.11.1/src/lib.rs /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/bytes-1.11.1/src/buf/mod.rs /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/bytes-1.11.1/src/buf/buf_impl.rs /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/bytes-1.11.1/src/buf/buf_mut.rs /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/bytes-1.11.1/src/buf/chain.rs /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/bytes-1.11.1/src/buf/iter.rs /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/bytes-1.11.1/src/buf/limit.rs /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/bytes-1.11.1/src/buf/reader.rs /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/bytes-1.11.1/src/buf/take.rs /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/bytes-1.11.1/src/buf/uninit_slice.rs /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/bytes-1.11.1/src/buf/vec_deque.rs /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/bytes-1.11.1/src/buf/writer.rs /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/bytes-1.11.1/src/bytes.rs /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/bytes-1.11.1/src/bytes_mut.rs /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/bytes-1.11.1/src/fmt/mod.rs /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/bytes-1.11.1/src/fmt/debug.rs /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/bytes-1.11.1/src/fmt/hex.rs /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/bytes-1.11.1/src/loom.rs + +/Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/bytes-1.11.1/src/lib.rs: +/Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/bytes-1.11.1/src/buf/mod.rs: +/Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/bytes-1.11.1/src/buf/buf_impl.rs: +/Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/bytes-1.11.1/src/buf/buf_mut.rs: +/Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/bytes-1.11.1/src/buf/chain.rs: +/Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/bytes-1.11.1/src/buf/iter.rs: +/Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/bytes-1.11.1/src/buf/limit.rs: +/Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/bytes-1.11.1/src/buf/reader.rs: +/Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/bytes-1.11.1/src/buf/take.rs: +/Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/bytes-1.11.1/src/buf/uninit_slice.rs: +/Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/bytes-1.11.1/src/buf/vec_deque.rs: +/Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/bytes-1.11.1/src/buf/writer.rs: +/Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/bytes-1.11.1/src/bytes.rs: +/Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/bytes-1.11.1/src/bytes_mut.rs: +/Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/bytes-1.11.1/src/fmt/mod.rs: +/Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/bytes-1.11.1/src/fmt/debug.rs: +/Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/bytes-1.11.1/src/fmt/hex.rs: +/Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/bytes-1.11.1/src/loom.rs: diff --git a/.tmp-check-windows/x86_64-pc-windows-msvc/debug/deps/cfg_if-f818a7106a91bc57.d b/.tmp-check-windows/x86_64-pc-windows-msvc/debug/deps/cfg_if-f818a7106a91bc57.d new file mode 100644 index 000000000..5db3dfb74 --- /dev/null +++ b/.tmp-check-windows/x86_64-pc-windows-msvc/debug/deps/cfg_if-f818a7106a91bc57.d @@ -0,0 +1,5 @@ +/Users/coso/Documents/dev/ai/aiclientproxy/lime/.tmp-check-windows/x86_64-pc-windows-msvc/debug/deps/cfg_if-f818a7106a91bc57.d: /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/cfg-if-1.0.4/src/lib.rs + +/Users/coso/Documents/dev/ai/aiclientproxy/lime/.tmp-check-windows/x86_64-pc-windows-msvc/debug/deps/libcfg_if-f818a7106a91bc57.rmeta: /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/cfg-if-1.0.4/src/lib.rs + +/Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/cfg-if-1.0.4/src/lib.rs: diff --git a/.tmp-check-windows/x86_64-pc-windows-msvc/debug/deps/crc32fast-6c8e3cbaf660e283.d b/.tmp-check-windows/x86_64-pc-windows-msvc/debug/deps/crc32fast-6c8e3cbaf660e283.d new file mode 100644 index 000000000..4fa97a40d --- /dev/null +++ b/.tmp-check-windows/x86_64-pc-windows-msvc/debug/deps/crc32fast-6c8e3cbaf660e283.d @@ -0,0 +1,10 @@ +/Users/coso/Documents/dev/ai/aiclientproxy/lime/.tmp-check-windows/x86_64-pc-windows-msvc/debug/deps/crc32fast-6c8e3cbaf660e283.d: /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/crc32fast-1.5.0/src/lib.rs /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/crc32fast-1.5.0/src/baseline.rs /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/crc32fast-1.5.0/src/combine.rs /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/crc32fast-1.5.0/src/specialized/mod.rs /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/crc32fast-1.5.0/src/table.rs /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/crc32fast-1.5.0/src/specialized/pclmulqdq.rs + +/Users/coso/Documents/dev/ai/aiclientproxy/lime/.tmp-check-windows/x86_64-pc-windows-msvc/debug/deps/libcrc32fast-6c8e3cbaf660e283.rmeta: /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/crc32fast-1.5.0/src/lib.rs /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/crc32fast-1.5.0/src/baseline.rs /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/crc32fast-1.5.0/src/combine.rs /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/crc32fast-1.5.0/src/specialized/mod.rs /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/crc32fast-1.5.0/src/table.rs /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/crc32fast-1.5.0/src/specialized/pclmulqdq.rs + +/Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/crc32fast-1.5.0/src/lib.rs: +/Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/crc32fast-1.5.0/src/baseline.rs: +/Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/crc32fast-1.5.0/src/combine.rs: +/Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/crc32fast-1.5.0/src/specialized/mod.rs: +/Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/crc32fast-1.5.0/src/table.rs: +/Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/crc32fast-1.5.0/src/specialized/pclmulqdq.rs: diff --git a/.tmp-check-windows/x86_64-pc-windows-msvc/debug/deps/deranged-86dd1b5614fe3d8b.d b/.tmp-check-windows/x86_64-pc-windows-msvc/debug/deps/deranged-86dd1b5614fe3d8b.d new file mode 100644 index 000000000..adeefed29 --- /dev/null +++ b/.tmp-check-windows/x86_64-pc-windows-msvc/debug/deps/deranged-86dd1b5614fe3d8b.d @@ -0,0 +1,6 @@ +/Users/coso/Documents/dev/ai/aiclientproxy/lime/.tmp-check-windows/x86_64-pc-windows-msvc/debug/deps/deranged-86dd1b5614fe3d8b.d: /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/deranged-0.5.8/src/lib.rs /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/deranged-0.5.8/src/unsafe_wrapper.rs + +/Users/coso/Documents/dev/ai/aiclientproxy/lime/.tmp-check-windows/x86_64-pc-windows-msvc/debug/deps/libderanged-86dd1b5614fe3d8b.rmeta: /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/deranged-0.5.8/src/lib.rs /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/deranged-0.5.8/src/unsafe_wrapper.rs + +/Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/deranged-0.5.8/src/lib.rs: +/Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/deranged-0.5.8/src/unsafe_wrapper.rs: diff --git a/.tmp-check-windows/x86_64-pc-windows-msvc/debug/deps/equivalent-e2699ea9df503f27.d b/.tmp-check-windows/x86_64-pc-windows-msvc/debug/deps/equivalent-e2699ea9df503f27.d new file mode 100644 index 000000000..561fff6e5 --- /dev/null +++ b/.tmp-check-windows/x86_64-pc-windows-msvc/debug/deps/equivalent-e2699ea9df503f27.d @@ -0,0 +1,5 @@ +/Users/coso/Documents/dev/ai/aiclientproxy/lime/.tmp-check-windows/x86_64-pc-windows-msvc/debug/deps/equivalent-e2699ea9df503f27.d: /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/equivalent-1.0.2/src/lib.rs + +/Users/coso/Documents/dev/ai/aiclientproxy/lime/.tmp-check-windows/x86_64-pc-windows-msvc/debug/deps/libequivalent-e2699ea9df503f27.rmeta: /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/equivalent-1.0.2/src/lib.rs + +/Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/equivalent-1.0.2/src/lib.rs: diff --git a/.tmp-check-windows/x86_64-pc-windows-msvc/debug/deps/fnv-94a523e7e87df426.d b/.tmp-check-windows/x86_64-pc-windows-msvc/debug/deps/fnv-94a523e7e87df426.d new file mode 100644 index 000000000..568cc6105 --- /dev/null +++ b/.tmp-check-windows/x86_64-pc-windows-msvc/debug/deps/fnv-94a523e7e87df426.d @@ -0,0 +1,5 @@ +/Users/coso/Documents/dev/ai/aiclientproxy/lime/.tmp-check-windows/x86_64-pc-windows-msvc/debug/deps/fnv-94a523e7e87df426.d: /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/fnv-1.0.7/lib.rs + +/Users/coso/Documents/dev/ai/aiclientproxy/lime/.tmp-check-windows/x86_64-pc-windows-msvc/debug/deps/libfnv-94a523e7e87df426.rmeta: /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/fnv-1.0.7/lib.rs + +/Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/fnv-1.0.7/lib.rs: diff --git a/.tmp-check-windows/x86_64-pc-windows-msvc/debug/deps/foldhash-f7563a03d8b1fc6b.d b/.tmp-check-windows/x86_64-pc-windows-msvc/debug/deps/foldhash-f7563a03d8b1fc6b.d new file mode 100644 index 000000000..edc0f700f --- /dev/null +++ b/.tmp-check-windows/x86_64-pc-windows-msvc/debug/deps/foldhash-f7563a03d8b1fc6b.d @@ -0,0 +1,8 @@ +/Users/coso/Documents/dev/ai/aiclientproxy/lime/.tmp-check-windows/x86_64-pc-windows-msvc/debug/deps/foldhash-f7563a03d8b1fc6b.d: /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/foldhash-0.2.0/src/lib.rs /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/foldhash-0.2.0/src/fast.rs /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/foldhash-0.2.0/src/quality.rs /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/foldhash-0.2.0/src/seed.rs + +/Users/coso/Documents/dev/ai/aiclientproxy/lime/.tmp-check-windows/x86_64-pc-windows-msvc/debug/deps/libfoldhash-f7563a03d8b1fc6b.rmeta: /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/foldhash-0.2.0/src/lib.rs /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/foldhash-0.2.0/src/fast.rs /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/foldhash-0.2.0/src/quality.rs /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/foldhash-0.2.0/src/seed.rs + +/Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/foldhash-0.2.0/src/lib.rs: +/Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/foldhash-0.2.0/src/fast.rs: +/Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/foldhash-0.2.0/src/quality.rs: +/Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/foldhash-0.2.0/src/seed.rs: diff --git a/.tmp-check-windows/x86_64-pc-windows-msvc/debug/deps/form_urlencoded-a2acafc1ce458d8d.d b/.tmp-check-windows/x86_64-pc-windows-msvc/debug/deps/form_urlencoded-a2acafc1ce458d8d.d new file mode 100644 index 000000000..25ab799c5 --- /dev/null +++ b/.tmp-check-windows/x86_64-pc-windows-msvc/debug/deps/form_urlencoded-a2acafc1ce458d8d.d @@ -0,0 +1,5 @@ +/Users/coso/Documents/dev/ai/aiclientproxy/lime/.tmp-check-windows/x86_64-pc-windows-msvc/debug/deps/form_urlencoded-a2acafc1ce458d8d.d: /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/form_urlencoded-1.2.2/src/lib.rs + +/Users/coso/Documents/dev/ai/aiclientproxy/lime/.tmp-check-windows/x86_64-pc-windows-msvc/debug/deps/libform_urlencoded-a2acafc1ce458d8d.rmeta: /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/form_urlencoded-1.2.2/src/lib.rs + +/Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/form_urlencoded-1.2.2/src/lib.rs: diff --git a/.tmp-check-windows/x86_64-pc-windows-msvc/debug/deps/futures_channel-ca0e5e2b8233ef2e.d b/.tmp-check-windows/x86_64-pc-windows-msvc/debug/deps/futures_channel-ca0e5e2b8233ef2e.d new file mode 100644 index 000000000..3c45d55ac --- /dev/null +++ b/.tmp-check-windows/x86_64-pc-windows-msvc/debug/deps/futures_channel-ca0e5e2b8233ef2e.d @@ -0,0 +1,10 @@ +/Users/coso/Documents/dev/ai/aiclientproxy/lime/.tmp-check-windows/x86_64-pc-windows-msvc/debug/deps/futures_channel-ca0e5e2b8233ef2e.d: /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/futures-channel-0.3.32/src/lib.rs /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/futures-channel-0.3.32/src/lock.rs /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/futures-channel-0.3.32/src/mpsc/mod.rs /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/futures-channel-0.3.32/src/mpsc/queue.rs /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/futures-channel-0.3.32/src/mpsc/sink_impl.rs /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/futures-channel-0.3.32/src/oneshot.rs + +/Users/coso/Documents/dev/ai/aiclientproxy/lime/.tmp-check-windows/x86_64-pc-windows-msvc/debug/deps/libfutures_channel-ca0e5e2b8233ef2e.rmeta: /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/futures-channel-0.3.32/src/lib.rs /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/futures-channel-0.3.32/src/lock.rs /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/futures-channel-0.3.32/src/mpsc/mod.rs /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/futures-channel-0.3.32/src/mpsc/queue.rs /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/futures-channel-0.3.32/src/mpsc/sink_impl.rs /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/futures-channel-0.3.32/src/oneshot.rs + +/Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/futures-channel-0.3.32/src/lib.rs: +/Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/futures-channel-0.3.32/src/lock.rs: +/Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/futures-channel-0.3.32/src/mpsc/mod.rs: +/Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/futures-channel-0.3.32/src/mpsc/queue.rs: +/Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/futures-channel-0.3.32/src/mpsc/sink_impl.rs: +/Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/futures-channel-0.3.32/src/oneshot.rs: diff --git a/.tmp-check-windows/x86_64-pc-windows-msvc/debug/deps/futures_core-4fd5c7d3cd623ea2.d b/.tmp-check-windows/x86_64-pc-windows-msvc/debug/deps/futures_core-4fd5c7d3cd623ea2.d new file mode 100644 index 000000000..c4debbbe8 --- /dev/null +++ b/.tmp-check-windows/x86_64-pc-windows-msvc/debug/deps/futures_core-4fd5c7d3cd623ea2.d @@ -0,0 +1,11 @@ +/Users/coso/Documents/dev/ai/aiclientproxy/lime/.tmp-check-windows/x86_64-pc-windows-msvc/debug/deps/futures_core-4fd5c7d3cd623ea2.d: /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/futures-core-0.3.32/src/lib.rs /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/futures-core-0.3.32/src/future.rs /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/futures-core-0.3.32/src/stream.rs /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/futures-core-0.3.32/src/task/mod.rs /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/futures-core-0.3.32/src/task/poll.rs /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/futures-core-0.3.32/src/task/__internal/mod.rs /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/futures-core-0.3.32/src/task/__internal/atomic_waker.rs + +/Users/coso/Documents/dev/ai/aiclientproxy/lime/.tmp-check-windows/x86_64-pc-windows-msvc/debug/deps/libfutures_core-4fd5c7d3cd623ea2.rmeta: /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/futures-core-0.3.32/src/lib.rs /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/futures-core-0.3.32/src/future.rs /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/futures-core-0.3.32/src/stream.rs /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/futures-core-0.3.32/src/task/mod.rs /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/futures-core-0.3.32/src/task/poll.rs /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/futures-core-0.3.32/src/task/__internal/mod.rs /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/futures-core-0.3.32/src/task/__internal/atomic_waker.rs + +/Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/futures-core-0.3.32/src/lib.rs: +/Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/futures-core-0.3.32/src/future.rs: +/Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/futures-core-0.3.32/src/stream.rs: +/Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/futures-core-0.3.32/src/task/mod.rs: +/Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/futures-core-0.3.32/src/task/poll.rs: +/Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/futures-core-0.3.32/src/task/__internal/mod.rs: +/Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/futures-core-0.3.32/src/task/__internal/atomic_waker.rs: diff --git a/.tmp-check-windows/x86_64-pc-windows-msvc/debug/deps/futures_io-ee0ea03f6d6f0209.d b/.tmp-check-windows/x86_64-pc-windows-msvc/debug/deps/futures_io-ee0ea03f6d6f0209.d new file mode 100644 index 000000000..abd661d24 --- /dev/null +++ b/.tmp-check-windows/x86_64-pc-windows-msvc/debug/deps/futures_io-ee0ea03f6d6f0209.d @@ -0,0 +1,5 @@ +/Users/coso/Documents/dev/ai/aiclientproxy/lime/.tmp-check-windows/x86_64-pc-windows-msvc/debug/deps/futures_io-ee0ea03f6d6f0209.d: /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/futures-io-0.3.32/src/lib.rs + +/Users/coso/Documents/dev/ai/aiclientproxy/lime/.tmp-check-windows/x86_64-pc-windows-msvc/debug/deps/libfutures_io-ee0ea03f6d6f0209.rmeta: /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/futures-io-0.3.32/src/lib.rs + +/Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/futures-io-0.3.32/src/lib.rs: diff --git a/.tmp-check-windows/x86_64-pc-windows-msvc/debug/deps/futures_sink-ae147c7b6744c683.d b/.tmp-check-windows/x86_64-pc-windows-msvc/debug/deps/futures_sink-ae147c7b6744c683.d new file mode 100644 index 000000000..45c16385f --- /dev/null +++ b/.tmp-check-windows/x86_64-pc-windows-msvc/debug/deps/futures_sink-ae147c7b6744c683.d @@ -0,0 +1,5 @@ +/Users/coso/Documents/dev/ai/aiclientproxy/lime/.tmp-check-windows/x86_64-pc-windows-msvc/debug/deps/futures_sink-ae147c7b6744c683.d: /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/futures-sink-0.3.32/src/lib.rs + +/Users/coso/Documents/dev/ai/aiclientproxy/lime/.tmp-check-windows/x86_64-pc-windows-msvc/debug/deps/libfutures_sink-ae147c7b6744c683.rmeta: /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/futures-sink-0.3.32/src/lib.rs + +/Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/futures-sink-0.3.32/src/lib.rs: diff --git a/.tmp-check-windows/x86_64-pc-windows-msvc/debug/deps/futures_task-dfddd0b6775e548b.d b/.tmp-check-windows/x86_64-pc-windows-msvc/debug/deps/futures_task-dfddd0b6775e548b.d new file mode 100644 index 000000000..54f424d31 --- /dev/null +++ b/.tmp-check-windows/x86_64-pc-windows-msvc/debug/deps/futures_task-dfddd0b6775e548b.d @@ -0,0 +1,11 @@ +/Users/coso/Documents/dev/ai/aiclientproxy/lime/.tmp-check-windows/x86_64-pc-windows-msvc/debug/deps/futures_task-dfddd0b6775e548b.d: /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/futures-task-0.3.32/src/lib.rs /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/futures-task-0.3.32/src/spawn.rs /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/futures-task-0.3.32/src/arc_wake.rs /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/futures-task-0.3.32/src/waker.rs /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/futures-task-0.3.32/src/waker_ref.rs /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/futures-task-0.3.32/src/future_obj.rs /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/futures-task-0.3.32/src/noop_waker.rs + +/Users/coso/Documents/dev/ai/aiclientproxy/lime/.tmp-check-windows/x86_64-pc-windows-msvc/debug/deps/libfutures_task-dfddd0b6775e548b.rmeta: /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/futures-task-0.3.32/src/lib.rs /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/futures-task-0.3.32/src/spawn.rs /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/futures-task-0.3.32/src/arc_wake.rs /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/futures-task-0.3.32/src/waker.rs /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/futures-task-0.3.32/src/waker_ref.rs /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/futures-task-0.3.32/src/future_obj.rs /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/futures-task-0.3.32/src/noop_waker.rs + +/Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/futures-task-0.3.32/src/lib.rs: +/Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/futures-task-0.3.32/src/spawn.rs: +/Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/futures-task-0.3.32/src/arc_wake.rs: +/Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/futures-task-0.3.32/src/waker.rs: +/Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/futures-task-0.3.32/src/waker_ref.rs: +/Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/futures-task-0.3.32/src/future_obj.rs: +/Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/futures-task-0.3.32/src/noop_waker.rs: diff --git a/.tmp-check-windows/x86_64-pc-windows-msvc/debug/deps/generic_array-ef60f934cca98372.d b/.tmp-check-windows/x86_64-pc-windows-msvc/debug/deps/generic_array-ef60f934cca98372.d new file mode 100644 index 000000000..652b88ef8 --- /dev/null +++ b/.tmp-check-windows/x86_64-pc-windows-msvc/debug/deps/generic_array-ef60f934cca98372.d @@ -0,0 +1,11 @@ +/Users/coso/Documents/dev/ai/aiclientproxy/lime/.tmp-check-windows/x86_64-pc-windows-msvc/debug/deps/generic_array-ef60f934cca98372.d: /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/generic-array-0.14.7/src/lib.rs /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/generic-array-0.14.7/src/hex.rs /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/generic-array-0.14.7/src/impls.rs /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/generic-array-0.14.7/src/arr.rs /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/generic-array-0.14.7/src/functional.rs /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/generic-array-0.14.7/src/iter.rs /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/generic-array-0.14.7/src/sequence.rs + +/Users/coso/Documents/dev/ai/aiclientproxy/lime/.tmp-check-windows/x86_64-pc-windows-msvc/debug/deps/libgeneric_array-ef60f934cca98372.rmeta: /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/generic-array-0.14.7/src/lib.rs /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/generic-array-0.14.7/src/hex.rs /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/generic-array-0.14.7/src/impls.rs /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/generic-array-0.14.7/src/arr.rs /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/generic-array-0.14.7/src/functional.rs /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/generic-array-0.14.7/src/iter.rs /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/generic-array-0.14.7/src/sequence.rs + +/Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/generic-array-0.14.7/src/lib.rs: +/Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/generic-array-0.14.7/src/hex.rs: +/Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/generic-array-0.14.7/src/impls.rs: +/Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/generic-array-0.14.7/src/arr.rs: +/Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/generic-array-0.14.7/src/functional.rs: +/Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/generic-array-0.14.7/src/iter.rs: +/Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/generic-array-0.14.7/src/sequence.rs: diff --git a/.tmp-check-windows/x86_64-pc-windows-msvc/debug/deps/getrandom-0c62d8aacf5004ae.d b/.tmp-check-windows/x86_64-pc-windows-msvc/debug/deps/getrandom-0c62d8aacf5004ae.d new file mode 100644 index 000000000..736b04be3 --- /dev/null +++ b/.tmp-check-windows/x86_64-pc-windows-msvc/debug/deps/getrandom-0c62d8aacf5004ae.d @@ -0,0 +1,10 @@ +/Users/coso/Documents/dev/ai/aiclientproxy/lime/.tmp-check-windows/x86_64-pc-windows-msvc/debug/deps/getrandom-0c62d8aacf5004ae.d: /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/getrandom-0.4.1/src/lib.rs /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/getrandom-0.4.1/src/backends.rs /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/getrandom-0.4.1/src/error.rs /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/getrandom-0.4.1/src/util.rs /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/getrandom-0.4.1/src/../README.md /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/getrandom-0.4.1/src/backends/windows.rs + +/Users/coso/Documents/dev/ai/aiclientproxy/lime/.tmp-check-windows/x86_64-pc-windows-msvc/debug/deps/libgetrandom-0c62d8aacf5004ae.rmeta: /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/getrandom-0.4.1/src/lib.rs /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/getrandom-0.4.1/src/backends.rs /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/getrandom-0.4.1/src/error.rs /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/getrandom-0.4.1/src/util.rs /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/getrandom-0.4.1/src/../README.md /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/getrandom-0.4.1/src/backends/windows.rs + +/Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/getrandom-0.4.1/src/lib.rs: +/Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/getrandom-0.4.1/src/backends.rs: +/Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/getrandom-0.4.1/src/error.rs: +/Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/getrandom-0.4.1/src/util.rs: +/Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/getrandom-0.4.1/src/../README.md: +/Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/getrandom-0.4.1/src/backends/windows.rs: diff --git a/.tmp-check-windows/x86_64-pc-windows-msvc/debug/deps/getrandom-366beb8af7010b05.d b/.tmp-check-windows/x86_64-pc-windows-msvc/debug/deps/getrandom-366beb8af7010b05.d new file mode 100644 index 000000000..9bd7199c6 --- /dev/null +++ b/.tmp-check-windows/x86_64-pc-windows-msvc/debug/deps/getrandom-366beb8af7010b05.d @@ -0,0 +1,9 @@ +/Users/coso/Documents/dev/ai/aiclientproxy/lime/.tmp-check-windows/x86_64-pc-windows-msvc/debug/deps/getrandom-366beb8af7010b05.d: /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/getrandom-0.2.17/src/lib.rs /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/getrandom-0.2.17/src/error.rs /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/getrandom-0.2.17/src/util.rs /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/getrandom-0.2.17/src/error_impls.rs /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/getrandom-0.2.17/src/windows.rs + +/Users/coso/Documents/dev/ai/aiclientproxy/lime/.tmp-check-windows/x86_64-pc-windows-msvc/debug/deps/libgetrandom-366beb8af7010b05.rmeta: /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/getrandom-0.2.17/src/lib.rs /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/getrandom-0.2.17/src/error.rs /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/getrandom-0.2.17/src/util.rs /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/getrandom-0.2.17/src/error_impls.rs /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/getrandom-0.2.17/src/windows.rs + +/Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/getrandom-0.2.17/src/lib.rs: +/Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/getrandom-0.2.17/src/error.rs: +/Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/getrandom-0.2.17/src/util.rs: +/Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/getrandom-0.2.17/src/error_impls.rs: +/Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/getrandom-0.2.17/src/windows.rs: diff --git a/.tmp-check-windows/x86_64-pc-windows-msvc/debug/deps/hashbrown-12bcee8ae68ebba7.d b/.tmp-check-windows/x86_64-pc-windows-msvc/debug/deps/hashbrown-12bcee8ae68ebba7.d new file mode 100644 index 000000000..ddc2ac396 --- /dev/null +++ b/.tmp-check-windows/x86_64-pc-windows-msvc/debug/deps/hashbrown-12bcee8ae68ebba7.d @@ -0,0 +1,21 @@ +/Users/coso/Documents/dev/ai/aiclientproxy/lime/.tmp-check-windows/x86_64-pc-windows-msvc/debug/deps/hashbrown-12bcee8ae68ebba7.d: /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/hashbrown-0.16.1/src/lib.rs /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/hashbrown-0.16.1/src/macros.rs /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/hashbrown-0.16.1/src/control/mod.rs /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/hashbrown-0.16.1/src/control/bitmask.rs /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/hashbrown-0.16.1/src/control/group/mod.rs /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/hashbrown-0.16.1/src/control/tag.rs /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/hashbrown-0.16.1/src/hasher.rs /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/hashbrown-0.16.1/src/raw/mod.rs /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/hashbrown-0.16.1/src/raw/alloc.rs /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/hashbrown-0.16.1/src/util.rs /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/hashbrown-0.16.1/src/external_trait_impls/mod.rs /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/hashbrown-0.16.1/src/map.rs /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/hashbrown-0.16.1/src/raw_entry.rs /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/hashbrown-0.16.1/src/scopeguard.rs /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/hashbrown-0.16.1/src/set.rs /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/hashbrown-0.16.1/src/table.rs /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/hashbrown-0.16.1/src/control/group/sse2.rs + +/Users/coso/Documents/dev/ai/aiclientproxy/lime/.tmp-check-windows/x86_64-pc-windows-msvc/debug/deps/libhashbrown-12bcee8ae68ebba7.rmeta: /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/hashbrown-0.16.1/src/lib.rs /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/hashbrown-0.16.1/src/macros.rs /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/hashbrown-0.16.1/src/control/mod.rs /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/hashbrown-0.16.1/src/control/bitmask.rs /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/hashbrown-0.16.1/src/control/group/mod.rs /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/hashbrown-0.16.1/src/control/tag.rs /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/hashbrown-0.16.1/src/hasher.rs /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/hashbrown-0.16.1/src/raw/mod.rs /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/hashbrown-0.16.1/src/raw/alloc.rs /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/hashbrown-0.16.1/src/util.rs /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/hashbrown-0.16.1/src/external_trait_impls/mod.rs /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/hashbrown-0.16.1/src/map.rs /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/hashbrown-0.16.1/src/raw_entry.rs /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/hashbrown-0.16.1/src/scopeguard.rs /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/hashbrown-0.16.1/src/set.rs /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/hashbrown-0.16.1/src/table.rs /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/hashbrown-0.16.1/src/control/group/sse2.rs + +/Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/hashbrown-0.16.1/src/lib.rs: +/Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/hashbrown-0.16.1/src/macros.rs: +/Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/hashbrown-0.16.1/src/control/mod.rs: +/Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/hashbrown-0.16.1/src/control/bitmask.rs: +/Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/hashbrown-0.16.1/src/control/group/mod.rs: +/Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/hashbrown-0.16.1/src/control/tag.rs: +/Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/hashbrown-0.16.1/src/hasher.rs: +/Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/hashbrown-0.16.1/src/raw/mod.rs: +/Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/hashbrown-0.16.1/src/raw/alloc.rs: +/Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/hashbrown-0.16.1/src/util.rs: +/Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/hashbrown-0.16.1/src/external_trait_impls/mod.rs: +/Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/hashbrown-0.16.1/src/map.rs: +/Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/hashbrown-0.16.1/src/raw_entry.rs: +/Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/hashbrown-0.16.1/src/scopeguard.rs: +/Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/hashbrown-0.16.1/src/set.rs: +/Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/hashbrown-0.16.1/src/table.rs: +/Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/hashbrown-0.16.1/src/control/group/sse2.rs: diff --git a/.tmp-check-windows/x86_64-pc-windows-msvc/debug/deps/http-ea9c30f7d1865c99.d b/.tmp-check-windows/x86_64-pc-windows-msvc/debug/deps/http-ea9c30f7d1865c99.d new file mode 100644 index 000000000..65ad5fb9f --- /dev/null +++ b/.tmp-check-windows/x86_64-pc-windows-msvc/debug/deps/http-ea9c30f7d1865c99.d @@ -0,0 +1,24 @@ +/Users/coso/Documents/dev/ai/aiclientproxy/lime/.tmp-check-windows/x86_64-pc-windows-msvc/debug/deps/http-ea9c30f7d1865c99.d: /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/http-1.4.0/src/lib.rs /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/http-1.4.0/src/convert.rs /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/http-1.4.0/src/header/mod.rs /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/http-1.4.0/src/header/map.rs /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/http-1.4.0/src/header/name.rs /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/http-1.4.0/src/header/value.rs /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/http-1.4.0/src/method.rs /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/http-1.4.0/src/request.rs /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/http-1.4.0/src/response.rs /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/http-1.4.0/src/status.rs /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/http-1.4.0/src/uri/mod.rs /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/http-1.4.0/src/uri/authority.rs /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/http-1.4.0/src/uri/builder.rs /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/http-1.4.0/src/uri/path.rs /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/http-1.4.0/src/uri/port.rs /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/http-1.4.0/src/uri/scheme.rs /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/http-1.4.0/src/version.rs /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/http-1.4.0/src/byte_str.rs /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/http-1.4.0/src/error.rs /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/http-1.4.0/src/extensions.rs + +/Users/coso/Documents/dev/ai/aiclientproxy/lime/.tmp-check-windows/x86_64-pc-windows-msvc/debug/deps/libhttp-ea9c30f7d1865c99.rmeta: /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/http-1.4.0/src/lib.rs /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/http-1.4.0/src/convert.rs /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/http-1.4.0/src/header/mod.rs /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/http-1.4.0/src/header/map.rs /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/http-1.4.0/src/header/name.rs /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/http-1.4.0/src/header/value.rs /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/http-1.4.0/src/method.rs /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/http-1.4.0/src/request.rs /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/http-1.4.0/src/response.rs /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/http-1.4.0/src/status.rs /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/http-1.4.0/src/uri/mod.rs /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/http-1.4.0/src/uri/authority.rs /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/http-1.4.0/src/uri/builder.rs /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/http-1.4.0/src/uri/path.rs /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/http-1.4.0/src/uri/port.rs /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/http-1.4.0/src/uri/scheme.rs /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/http-1.4.0/src/version.rs /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/http-1.4.0/src/byte_str.rs /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/http-1.4.0/src/error.rs /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/http-1.4.0/src/extensions.rs + +/Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/http-1.4.0/src/lib.rs: +/Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/http-1.4.0/src/convert.rs: +/Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/http-1.4.0/src/header/mod.rs: +/Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/http-1.4.0/src/header/map.rs: +/Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/http-1.4.0/src/header/name.rs: +/Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/http-1.4.0/src/header/value.rs: +/Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/http-1.4.0/src/method.rs: +/Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/http-1.4.0/src/request.rs: +/Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/http-1.4.0/src/response.rs: +/Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/http-1.4.0/src/status.rs: +/Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/http-1.4.0/src/uri/mod.rs: +/Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/http-1.4.0/src/uri/authority.rs: +/Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/http-1.4.0/src/uri/builder.rs: +/Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/http-1.4.0/src/uri/path.rs: +/Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/http-1.4.0/src/uri/port.rs: +/Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/http-1.4.0/src/uri/scheme.rs: +/Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/http-1.4.0/src/version.rs: +/Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/http-1.4.0/src/byte_str.rs: +/Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/http-1.4.0/src/error.rs: +/Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/http-1.4.0/src/extensions.rs: diff --git a/.tmp-check-windows/x86_64-pc-windows-msvc/debug/deps/http_body-3b140a42245d940e.d b/.tmp-check-windows/x86_64-pc-windows-msvc/debug/deps/http_body-3b140a42245d940e.d new file mode 100644 index 000000000..79a96e020 --- /dev/null +++ b/.tmp-check-windows/x86_64-pc-windows-msvc/debug/deps/http_body-3b140a42245d940e.d @@ -0,0 +1,7 @@ +/Users/coso/Documents/dev/ai/aiclientproxy/lime/.tmp-check-windows/x86_64-pc-windows-msvc/debug/deps/http_body-3b140a42245d940e.d: /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/http-body-1.0.1/src/lib.rs /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/http-body-1.0.1/src/frame.rs /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/http-body-1.0.1/src/size_hint.rs + +/Users/coso/Documents/dev/ai/aiclientproxy/lime/.tmp-check-windows/x86_64-pc-windows-msvc/debug/deps/libhttp_body-3b140a42245d940e.rmeta: /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/http-body-1.0.1/src/lib.rs /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/http-body-1.0.1/src/frame.rs /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/http-body-1.0.1/src/size_hint.rs + +/Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/http-body-1.0.1/src/lib.rs: +/Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/http-body-1.0.1/src/frame.rs: +/Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/http-body-1.0.1/src/size_hint.rs: diff --git a/.tmp-check-windows/x86_64-pc-windows-msvc/debug/deps/http_body_util-332fc865dfc5f883.d b/.tmp-check-windows/x86_64-pc-windows-msvc/debug/deps/http_body_util-332fc865dfc5f883.d new file mode 100644 index 000000000..976eee3c9 --- /dev/null +++ b/.tmp-check-windows/x86_64-pc-windows-msvc/debug/deps/http_body_util-332fc865dfc5f883.d @@ -0,0 +1,19 @@ +/Users/coso/Documents/dev/ai/aiclientproxy/lime/.tmp-check-windows/x86_64-pc-windows-msvc/debug/deps/http_body_util-332fc865dfc5f883.d: /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/http-body-util-0.1.3/src/lib.rs /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/http-body-util-0.1.3/src/collected.rs /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/http-body-util-0.1.3/src/combinators/mod.rs /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/http-body-util-0.1.3/src/combinators/box_body.rs /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/http-body-util-0.1.3/src/combinators/collect.rs /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/http-body-util-0.1.3/src/combinators/frame.rs /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/http-body-util-0.1.3/src/combinators/map_err.rs /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/http-body-util-0.1.3/src/combinators/map_frame.rs /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/http-body-util-0.1.3/src/combinators/with_trailers.rs /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/http-body-util-0.1.3/src/either.rs /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/http-body-util-0.1.3/src/empty.rs /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/http-body-util-0.1.3/src/full.rs /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/http-body-util-0.1.3/src/limited.rs /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/http-body-util-0.1.3/src/stream.rs /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/http-body-util-0.1.3/src/util.rs + +/Users/coso/Documents/dev/ai/aiclientproxy/lime/.tmp-check-windows/x86_64-pc-windows-msvc/debug/deps/libhttp_body_util-332fc865dfc5f883.rmeta: /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/http-body-util-0.1.3/src/lib.rs /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/http-body-util-0.1.3/src/collected.rs /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/http-body-util-0.1.3/src/combinators/mod.rs /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/http-body-util-0.1.3/src/combinators/box_body.rs /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/http-body-util-0.1.3/src/combinators/collect.rs /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/http-body-util-0.1.3/src/combinators/frame.rs /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/http-body-util-0.1.3/src/combinators/map_err.rs /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/http-body-util-0.1.3/src/combinators/map_frame.rs /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/http-body-util-0.1.3/src/combinators/with_trailers.rs /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/http-body-util-0.1.3/src/either.rs /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/http-body-util-0.1.3/src/empty.rs /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/http-body-util-0.1.3/src/full.rs /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/http-body-util-0.1.3/src/limited.rs /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/http-body-util-0.1.3/src/stream.rs /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/http-body-util-0.1.3/src/util.rs + +/Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/http-body-util-0.1.3/src/lib.rs: +/Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/http-body-util-0.1.3/src/collected.rs: +/Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/http-body-util-0.1.3/src/combinators/mod.rs: +/Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/http-body-util-0.1.3/src/combinators/box_body.rs: +/Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/http-body-util-0.1.3/src/combinators/collect.rs: +/Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/http-body-util-0.1.3/src/combinators/frame.rs: +/Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/http-body-util-0.1.3/src/combinators/map_err.rs: +/Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/http-body-util-0.1.3/src/combinators/map_frame.rs: +/Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/http-body-util-0.1.3/src/combinators/with_trailers.rs: +/Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/http-body-util-0.1.3/src/either.rs: +/Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/http-body-util-0.1.3/src/empty.rs: +/Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/http-body-util-0.1.3/src/full.rs: +/Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/http-body-util-0.1.3/src/limited.rs: +/Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/http-body-util-0.1.3/src/stream.rs: +/Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/http-body-util-0.1.3/src/util.rs: diff --git a/.tmp-check-windows/x86_64-pc-windows-msvc/debug/deps/httparse-4746fedd30ce7edc.d b/.tmp-check-windows/x86_64-pc-windows-msvc/debug/deps/httparse-4746fedd30ce7edc.d new file mode 100644 index 000000000..e15783f79 --- /dev/null +++ b/.tmp-check-windows/x86_64-pc-windows-msvc/debug/deps/httparse-4746fedd30ce7edc.d @@ -0,0 +1,12 @@ +/Users/coso/Documents/dev/ai/aiclientproxy/lime/.tmp-check-windows/x86_64-pc-windows-msvc/debug/deps/httparse-4746fedd30ce7edc.d: /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/httparse-1.10.1/src/lib.rs /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/httparse-1.10.1/src/iter.rs /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/httparse-1.10.1/src/macros.rs /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/httparse-1.10.1/src/simd/mod.rs /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/httparse-1.10.1/src/simd/swar.rs /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/httparse-1.10.1/src/simd/sse42.rs /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/httparse-1.10.1/src/simd/avx2.rs /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/httparse-1.10.1/src/simd/runtime.rs + +/Users/coso/Documents/dev/ai/aiclientproxy/lime/.tmp-check-windows/x86_64-pc-windows-msvc/debug/deps/libhttparse-4746fedd30ce7edc.rmeta: /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/httparse-1.10.1/src/lib.rs /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/httparse-1.10.1/src/iter.rs /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/httparse-1.10.1/src/macros.rs /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/httparse-1.10.1/src/simd/mod.rs /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/httparse-1.10.1/src/simd/swar.rs /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/httparse-1.10.1/src/simd/sse42.rs /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/httparse-1.10.1/src/simd/avx2.rs /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/httparse-1.10.1/src/simd/runtime.rs + +/Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/httparse-1.10.1/src/lib.rs: +/Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/httparse-1.10.1/src/iter.rs: +/Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/httparse-1.10.1/src/macros.rs: +/Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/httparse-1.10.1/src/simd/mod.rs: +/Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/httparse-1.10.1/src/simd/swar.rs: +/Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/httparse-1.10.1/src/simd/sse42.rs: +/Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/httparse-1.10.1/src/simd/avx2.rs: +/Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/httparse-1.10.1/src/simd/runtime.rs: diff --git a/.tmp-check-windows/x86_64-pc-windows-msvc/debug/deps/icu_normalizer_data-5b0745ef3cf6717e.d b/.tmp-check-windows/x86_64-pc-windows-msvc/debug/deps/icu_normalizer_data-5b0745ef3cf6717e.d new file mode 100644 index 000000000..cc572d771 --- /dev/null +++ b/.tmp-check-windows/x86_64-pc-windows-msvc/debug/deps/icu_normalizer_data-5b0745ef3cf6717e.d @@ -0,0 +1,13 @@ +/Users/coso/Documents/dev/ai/aiclientproxy/lime/.tmp-check-windows/x86_64-pc-windows-msvc/debug/deps/icu_normalizer_data-5b0745ef3cf6717e.d: /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/icu_normalizer_data-2.0.0/src/lib.rs /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/icu_normalizer_data-2.0.0/src/../data/mod.rs /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/icu_normalizer_data-2.0.0/src/../data/normalizer_nfd_tables_v1.rs.data /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/icu_normalizer_data-2.0.0/src/../data/normalizer_nfd_supplement_v1.rs.data /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/icu_normalizer_data-2.0.0/src/../data/normalizer_nfkd_data_v1.rs.data /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/icu_normalizer_data-2.0.0/src/../data/normalizer_nfkd_tables_v1.rs.data /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/icu_normalizer_data-2.0.0/src/../data/normalizer_nfc_v1.rs.data /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/icu_normalizer_data-2.0.0/src/../data/normalizer_nfd_data_v1.rs.data /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/icu_normalizer_data-2.0.0/src/../data/normalizer_uts46_data_v1.rs.data + +/Users/coso/Documents/dev/ai/aiclientproxy/lime/.tmp-check-windows/x86_64-pc-windows-msvc/debug/deps/libicu_normalizer_data-5b0745ef3cf6717e.rmeta: /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/icu_normalizer_data-2.0.0/src/lib.rs /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/icu_normalizer_data-2.0.0/src/../data/mod.rs /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/icu_normalizer_data-2.0.0/src/../data/normalizer_nfd_tables_v1.rs.data /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/icu_normalizer_data-2.0.0/src/../data/normalizer_nfd_supplement_v1.rs.data /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/icu_normalizer_data-2.0.0/src/../data/normalizer_nfkd_data_v1.rs.data /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/icu_normalizer_data-2.0.0/src/../data/normalizer_nfkd_tables_v1.rs.data /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/icu_normalizer_data-2.0.0/src/../data/normalizer_nfc_v1.rs.data /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/icu_normalizer_data-2.0.0/src/../data/normalizer_nfd_data_v1.rs.data /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/icu_normalizer_data-2.0.0/src/../data/normalizer_uts46_data_v1.rs.data + +/Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/icu_normalizer_data-2.0.0/src/lib.rs: +/Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/icu_normalizer_data-2.0.0/src/../data/mod.rs: +/Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/icu_normalizer_data-2.0.0/src/../data/normalizer_nfd_tables_v1.rs.data: +/Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/icu_normalizer_data-2.0.0/src/../data/normalizer_nfd_supplement_v1.rs.data: +/Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/icu_normalizer_data-2.0.0/src/../data/normalizer_nfkd_data_v1.rs.data: +/Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/icu_normalizer_data-2.0.0/src/../data/normalizer_nfkd_tables_v1.rs.data: +/Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/icu_normalizer_data-2.0.0/src/../data/normalizer_nfc_v1.rs.data: +/Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/icu_normalizer_data-2.0.0/src/../data/normalizer_nfd_data_v1.rs.data: +/Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/icu_normalizer_data-2.0.0/src/../data/normalizer_uts46_data_v1.rs.data: diff --git a/.tmp-check-windows/x86_64-pc-windows-msvc/debug/deps/icu_properties_data-d0ec1de699ed3f37.d b/.tmp-check-windows/x86_64-pc-windows-msvc/debug/deps/icu_properties_data-d0ec1de699ed3f37.d new file mode 100644 index 000000000..7e0f37b6f --- /dev/null +++ b/.tmp-check-windows/x86_64-pc-windows-msvc/debug/deps/icu_properties_data-d0ec1de699ed3f37.d @@ -0,0 +1,128 @@ +/Users/coso/Documents/dev/ai/aiclientproxy/lime/.tmp-check-windows/x86_64-pc-windows-msvc/debug/deps/icu_properties_data-d0ec1de699ed3f37.d: /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/icu_properties_data-2.0.1/src/lib.rs /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/icu_properties_data-2.0.1/src/../data/mod.rs /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/icu_properties_data-2.0.1/src/../data/property_enum_indic_syllabic_category_v1.rs.data /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/icu_properties_data-2.0.1/src/../data/property_binary_pattern_syntax_v1.rs.data /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/icu_properties_data-2.0.1/src/../data/property_binary_changes_when_lowercased_v1.rs.data /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/icu_properties_data-2.0.1/src/../data/property_binary_ids_trinary_operator_v1.rs.data /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/icu_properties_data-2.0.1/src/../data/property_binary_regional_indicator_v1.rs.data /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/icu_properties_data-2.0.1/src/../data/property_binary_changes_when_uppercased_v1.rs.data /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/icu_properties_data-2.0.1/src/../data/property_binary_changes_when_casemapped_v1.rs.data /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/icu_properties_data-2.0.1/src/../data/property_enum_script_v1.rs.data /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/icu_properties_data-2.0.1/src/../data/property_name_short_indic_syllabic_category_v1.rs.data /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/icu_properties_data-2.0.1/src/../data/property_binary_ids_binary_operator_v1.rs.data /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/icu_properties_data-2.0.1/src/../data/property_binary_radical_v1.rs.data /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/icu_properties_data-2.0.1/src/../data/property_binary_extender_v1.rs.data /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/icu_properties_data-2.0.1/src/../data/property_name_long_indic_syllabic_category_v1.rs.data /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/icu_properties_data-2.0.1/src/../data/property_binary_emoji_component_v1.rs.data /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/icu_properties_data-2.0.1/src/../data/property_binary_dash_v1.rs.data /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/icu_properties_data-2.0.1/src/../data/property_enum_general_category_v1.rs.data /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/icu_properties_data-2.0.1/src/../data/property_name_long_grapheme_cluster_break_v1.rs.data /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/icu_properties_data-2.0.1/src/../data/property_binary_emoji_presentation_v1.rs.data /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/icu_properties_data-2.0.1/src/../data/property_binary_case_sensitive_v1.rs.data /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/icu_properties_data-2.0.1/src/../data/property_name_short_bidi_class_v1.rs.data /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/icu_properties_data-2.0.1/src/../data/property_binary_nfd_inert_v1.rs.data /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/icu_properties_data-2.0.1/src/../data/property_binary_graph_v1.rs.data /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/icu_properties_data-2.0.1/src/../data/property_binary_bidi_control_v1.rs.data /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/icu_properties_data-2.0.1/src/../data/property_name_short_hangul_syllable_type_v1.rs.data /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/icu_properties_data-2.0.1/src/../data/property_name_short_word_break_v1.rs.data /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/icu_properties_data-2.0.1/src/../data/property_name_parse_line_break_v1.rs.data /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/icu_properties_data-2.0.1/src/../data/property_binary_white_space_v1.rs.data /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/icu_properties_data-2.0.1/src/../data/property_binary_unified_ideograph_v1.rs.data /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/icu_properties_data-2.0.1/src/../data/property_binary_noncharacter_code_point_v1.rs.data /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/icu_properties_data-2.0.1/src/../data/property_name_short_grapheme_cluster_break_v1.rs.data /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/icu_properties_data-2.0.1/src/../data/property_name_parse_indic_syllabic_category_v1.rs.data /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/icu_properties_data-2.0.1/src/../data/property_name_parse_east_asian_width_v1.rs.data /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/icu_properties_data-2.0.1/src/../data/property_script_with_extensions_v1.rs.data /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/icu_properties_data-2.0.1/src/../data/property_name_long_hangul_syllable_type_v1.rs.data /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/icu_properties_data-2.0.1/src/../data/property_binary_emoji_v1.rs.data /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/icu_properties_data-2.0.1/src/../data/property_name_long_line_break_v1.rs.data /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/icu_properties_data-2.0.1/src/../data/property_name_parse_bidi_class_v1.rs.data /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/icu_properties_data-2.0.1/src/../data/property_binary_bidi_mirrored_v1.rs.data /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/icu_properties_data-2.0.1/src/../data/property_binary_grapheme_link_v1.rs.data /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/icu_properties_data-2.0.1/src/../data/property_name_long_script_v1.rs.data /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/icu_properties_data-2.0.1/src/../data/property_name_long_east_asian_width_v1.rs.data /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/icu_properties_data-2.0.1/src/../data/property_name_parse_sentence_break_v1.rs.data /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/icu_properties_data-2.0.1/src/../data/property_binary_alnum_v1.rs.data /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/icu_properties_data-2.0.1/src/../data/property_name_short_general_category_v1.rs.data /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/icu_properties_data-2.0.1/src/../data/property_name_short_vertical_orientation_v1.rs.data /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/icu_properties_data-2.0.1/src/../data/property_binary_changes_when_casefolded_v1.rs.data /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/icu_properties_data-2.0.1/src/../data/property_name_parse_hangul_syllable_type_v1.rs.data /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/icu_properties_data-2.0.1/src/../data/property_enum_sentence_break_v1.rs.data /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/icu_properties_data-2.0.1/src/../data/property_binary_quotation_mark_v1.rs.data /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/icu_properties_data-2.0.1/src/../data/property_binary_deprecated_v1.rs.data /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/icu_properties_data-2.0.1/src/../data/property_binary_xid_start_v1.rs.data /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/icu_properties_data-2.0.1/src/../data/property_binary_segment_starter_v1.rs.data /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/icu_properties_data-2.0.1/src/../data/property_binary_hyphen_v1.rs.data /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/icu_properties_data-2.0.1/src/../data/property_binary_variation_selector_v1.rs.data /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/icu_properties_data-2.0.1/src/../data/property_enum_word_break_v1.rs.data /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/icu_properties_data-2.0.1/src/../data/property_name_short_east_asian_width_v1.rs.data /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/icu_properties_data-2.0.1/src/../data/property_name_short_sentence_break_v1.rs.data /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/icu_properties_data-2.0.1/src/../data/property_name_long_bidi_class_v1.rs.data /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/icu_properties_data-2.0.1/src/../data/property_binary_prepended_concatenation_mark_v1.rs.data /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/icu_properties_data-2.0.1/src/../data/property_name_short_joining_type_v1.rs.data /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/icu_properties_data-2.0.1/src/../data/property_binary_print_v1.rs.data /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/icu_properties_data-2.0.1/src/../data/property_enum_canonical_combining_class_v1.rs.data /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/icu_properties_data-2.0.1/src/../data/property_binary_terminal_punctuation_v1.rs.data /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/icu_properties_data-2.0.1/src/../data/property_enum_vertical_orientation_v1.rs.data /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/icu_properties_data-2.0.1/src/../data/property_binary_cased_v1.rs.data /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/icu_properties_data-2.0.1/src/../data/property_binary_nfkc_inert_v1.rs.data /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/icu_properties_data-2.0.1/src/../data/property_binary_id_continue_v1.rs.data /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/icu_properties_data-2.0.1/src/../data/property_binary_basic_emoji_v1.rs.data /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/icu_properties_data-2.0.1/src/../data/property_binary_id_start_v1.rs.data /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/icu_properties_data-2.0.1/src/../data/property_binary_uppercase_v1.rs.data /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/icu_properties_data-2.0.1/src/../data/property_name_short_script_v1.rs.data /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/icu_properties_data-2.0.1/src/../data/property_enum_hangul_syllable_type_v1.rs.data /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/icu_properties_data-2.0.1/src/../data/property_binary_xdigit_v1.rs.data /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/icu_properties_data-2.0.1/src/../data/property_binary_full_composition_exclusion_v1.rs.data /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/icu_properties_data-2.0.1/src/../data/property_name_long_vertical_orientation_v1.rs.data /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/icu_properties_data-2.0.1/src/../data/property_binary_changes_when_nfkc_casefolded_v1.rs.data /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/icu_properties_data-2.0.1/src/../data/property_binary_hex_digit_v1.rs.data /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/icu_properties_data-2.0.1/src/../data/property_name_parse_joining_type_v1.rs.data /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/icu_properties_data-2.0.1/src/../data/property_binary_xid_continue_v1.rs.data /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/icu_properties_data-2.0.1/src/../data/property_binary_soft_dotted_v1.rs.data /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/icu_properties_data-2.0.1/src/../data/property_binary_ideographic_v1.rs.data /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/icu_properties_data-2.0.1/src/../data/property_name_short_canonical_combining_class_v1.rs.data /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/icu_properties_data-2.0.1/src/../data/property_name_long_word_break_v1.rs.data /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/icu_properties_data-2.0.1/src/../data/property_binary_changes_when_titlecased_v1.rs.data /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/icu_properties_data-2.0.1/src/../data/property_enum_bidi_class_v1.rs.data /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/icu_properties_data-2.0.1/src/../data/property_binary_sentence_terminal_v1.rs.data /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/icu_properties_data-2.0.1/src/../data/property_enum_indic_conjunct_break_v1.rs.data /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/icu_properties_data-2.0.1/src/../data/property_name_long_general_category_v1.rs.data /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/icu_properties_data-2.0.1/src/../data/property_binary_ascii_hex_digit_v1.rs.data /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/icu_properties_data-2.0.1/src/../data/property_enum_line_break_v1.rs.data /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/icu_properties_data-2.0.1/src/../data/property_enum_east_asian_width_v1.rs.data /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/icu_properties_data-2.0.1/src/../data/property_name_parse_grapheme_cluster_break_v1.rs.data /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/icu_properties_data-2.0.1/src/../data/property_name_parse_general_category_v1.rs.data /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/icu_properties_data-2.0.1/src/../data/property_binary_logical_order_exception_v1.rs.data /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/icu_properties_data-2.0.1/src/../data/property_binary_case_ignorable_v1.rs.data /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/icu_properties_data-2.0.1/src/../data/property_binary_diacritic_v1.rs.data /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/icu_properties_data-2.0.1/src/../data/property_binary_grapheme_extend_v1.rs.data /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/icu_properties_data-2.0.1/src/../data/property_enum_bidi_mirroring_glyph_v1.rs.data /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/icu_properties_data-2.0.1/src/../data/property_name_parse_general_category_mask_v1.rs.data /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/icu_properties_data-2.0.1/src/../data/property_binary_nfc_inert_v1.rs.data /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/icu_properties_data-2.0.1/src/../data/property_name_parse_script_v1.rs.data /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/icu_properties_data-2.0.1/src/../data/property_binary_lowercase_v1.rs.data /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/icu_properties_data-2.0.1/src/../data/property_name_long_joining_type_v1.rs.data /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/icu_properties_data-2.0.1/src/../data/property_binary_emoji_modifier_base_v1.rs.data /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/icu_properties_data-2.0.1/src/../data/property_name_long_sentence_break_v1.rs.data /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/icu_properties_data-2.0.1/src/../data/property_binary_grapheme_base_v1.rs.data /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/icu_properties_data-2.0.1/src/../data/property_name_long_canonical_combining_class_v1.rs.data /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/icu_properties_data-2.0.1/src/../data/property_binary_emoji_modifier_v1.rs.data /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/icu_properties_data-2.0.1/src/../data/property_binary_join_control_v1.rs.data /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/icu_properties_data-2.0.1/src/../data/property_enum_joining_type_v1.rs.data /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/icu_properties_data-2.0.1/src/../data/property_name_short_line_break_v1.rs.data /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/icu_properties_data-2.0.1/src/../data/property_name_parse_word_break_v1.rs.data /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/icu_properties_data-2.0.1/src/../data/property_binary_math_v1.rs.data /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/icu_properties_data-2.0.1/src/../data/property_binary_pattern_white_space_v1.rs.data /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/icu_properties_data-2.0.1/src/../data/property_binary_nfkd_inert_v1.rs.data /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/icu_properties_data-2.0.1/src/../data/property_binary_alphabetic_v1.rs.data /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/icu_properties_data-2.0.1/src/../data/property_enum_grapheme_cluster_break_v1.rs.data /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/icu_properties_data-2.0.1/src/../data/property_binary_blank_v1.rs.data /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/icu_properties_data-2.0.1/src/../data/property_binary_default_ignorable_code_point_v1.rs.data /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/icu_properties_data-2.0.1/src/../data/property_binary_extended_pictographic_v1.rs.data /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/icu_properties_data-2.0.1/src/../data/property_name_parse_vertical_orientation_v1.rs.data /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/icu_properties_data-2.0.1/src/../data/property_name_parse_canonical_combining_class_v1.rs.data + +/Users/coso/Documents/dev/ai/aiclientproxy/lime/.tmp-check-windows/x86_64-pc-windows-msvc/debug/deps/libicu_properties_data-d0ec1de699ed3f37.rmeta: /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/icu_properties_data-2.0.1/src/lib.rs /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/icu_properties_data-2.0.1/src/../data/mod.rs /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/icu_properties_data-2.0.1/src/../data/property_enum_indic_syllabic_category_v1.rs.data /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/icu_properties_data-2.0.1/src/../data/property_binary_pattern_syntax_v1.rs.data /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/icu_properties_data-2.0.1/src/../data/property_binary_changes_when_lowercased_v1.rs.data /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/icu_properties_data-2.0.1/src/../data/property_binary_ids_trinary_operator_v1.rs.data /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/icu_properties_data-2.0.1/src/../data/property_binary_regional_indicator_v1.rs.data /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/icu_properties_data-2.0.1/src/../data/property_binary_changes_when_uppercased_v1.rs.data /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/icu_properties_data-2.0.1/src/../data/property_binary_changes_when_casemapped_v1.rs.data /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/icu_properties_data-2.0.1/src/../data/property_enum_script_v1.rs.data /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/icu_properties_data-2.0.1/src/../data/property_name_short_indic_syllabic_category_v1.rs.data /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/icu_properties_data-2.0.1/src/../data/property_binary_ids_binary_operator_v1.rs.data /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/icu_properties_data-2.0.1/src/../data/property_binary_radical_v1.rs.data /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/icu_properties_data-2.0.1/src/../data/property_binary_extender_v1.rs.data /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/icu_properties_data-2.0.1/src/../data/property_name_long_indic_syllabic_category_v1.rs.data /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/icu_properties_data-2.0.1/src/../data/property_binary_emoji_component_v1.rs.data /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/icu_properties_data-2.0.1/src/../data/property_binary_dash_v1.rs.data /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/icu_properties_data-2.0.1/src/../data/property_enum_general_category_v1.rs.data /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/icu_properties_data-2.0.1/src/../data/property_name_long_grapheme_cluster_break_v1.rs.data /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/icu_properties_data-2.0.1/src/../data/property_binary_emoji_presentation_v1.rs.data /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/icu_properties_data-2.0.1/src/../data/property_binary_case_sensitive_v1.rs.data /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/icu_properties_data-2.0.1/src/../data/property_name_short_bidi_class_v1.rs.data /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/icu_properties_data-2.0.1/src/../data/property_binary_nfd_inert_v1.rs.data /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/icu_properties_data-2.0.1/src/../data/property_binary_graph_v1.rs.data /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/icu_properties_data-2.0.1/src/../data/property_binary_bidi_control_v1.rs.data /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/icu_properties_data-2.0.1/src/../data/property_name_short_hangul_syllable_type_v1.rs.data /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/icu_properties_data-2.0.1/src/../data/property_name_short_word_break_v1.rs.data /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/icu_properties_data-2.0.1/src/../data/property_name_parse_line_break_v1.rs.data /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/icu_properties_data-2.0.1/src/../data/property_binary_white_space_v1.rs.data /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/icu_properties_data-2.0.1/src/../data/property_binary_unified_ideograph_v1.rs.data /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/icu_properties_data-2.0.1/src/../data/property_binary_noncharacter_code_point_v1.rs.data /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/icu_properties_data-2.0.1/src/../data/property_name_short_grapheme_cluster_break_v1.rs.data /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/icu_properties_data-2.0.1/src/../data/property_name_parse_indic_syllabic_category_v1.rs.data /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/icu_properties_data-2.0.1/src/../data/property_name_parse_east_asian_width_v1.rs.data /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/icu_properties_data-2.0.1/src/../data/property_script_with_extensions_v1.rs.data /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/icu_properties_data-2.0.1/src/../data/property_name_long_hangul_syllable_type_v1.rs.data /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/icu_properties_data-2.0.1/src/../data/property_binary_emoji_v1.rs.data /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/icu_properties_data-2.0.1/src/../data/property_name_long_line_break_v1.rs.data /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/icu_properties_data-2.0.1/src/../data/property_name_parse_bidi_class_v1.rs.data /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/icu_properties_data-2.0.1/src/../data/property_binary_bidi_mirrored_v1.rs.data /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/icu_properties_data-2.0.1/src/../data/property_binary_grapheme_link_v1.rs.data /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/icu_properties_data-2.0.1/src/../data/property_name_long_script_v1.rs.data /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/icu_properties_data-2.0.1/src/../data/property_name_long_east_asian_width_v1.rs.data /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/icu_properties_data-2.0.1/src/../data/property_name_parse_sentence_break_v1.rs.data /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/icu_properties_data-2.0.1/src/../data/property_binary_alnum_v1.rs.data /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/icu_properties_data-2.0.1/src/../data/property_name_short_general_category_v1.rs.data /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/icu_properties_data-2.0.1/src/../data/property_name_short_vertical_orientation_v1.rs.data /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/icu_properties_data-2.0.1/src/../data/property_binary_changes_when_casefolded_v1.rs.data /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/icu_properties_data-2.0.1/src/../data/property_name_parse_hangul_syllable_type_v1.rs.data /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/icu_properties_data-2.0.1/src/../data/property_enum_sentence_break_v1.rs.data /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/icu_properties_data-2.0.1/src/../data/property_binary_quotation_mark_v1.rs.data /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/icu_properties_data-2.0.1/src/../data/property_binary_deprecated_v1.rs.data /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/icu_properties_data-2.0.1/src/../data/property_binary_xid_start_v1.rs.data /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/icu_properties_data-2.0.1/src/../data/property_binary_segment_starter_v1.rs.data /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/icu_properties_data-2.0.1/src/../data/property_binary_hyphen_v1.rs.data /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/icu_properties_data-2.0.1/src/../data/property_binary_variation_selector_v1.rs.data /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/icu_properties_data-2.0.1/src/../data/property_enum_word_break_v1.rs.data /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/icu_properties_data-2.0.1/src/../data/property_name_short_east_asian_width_v1.rs.data /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/icu_properties_data-2.0.1/src/../data/property_name_short_sentence_break_v1.rs.data /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/icu_properties_data-2.0.1/src/../data/property_name_long_bidi_class_v1.rs.data /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/icu_properties_data-2.0.1/src/../data/property_binary_prepended_concatenation_mark_v1.rs.data /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/icu_properties_data-2.0.1/src/../data/property_name_short_joining_type_v1.rs.data /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/icu_properties_data-2.0.1/src/../data/property_binary_print_v1.rs.data /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/icu_properties_data-2.0.1/src/../data/property_enum_canonical_combining_class_v1.rs.data /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/icu_properties_data-2.0.1/src/../data/property_binary_terminal_punctuation_v1.rs.data /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/icu_properties_data-2.0.1/src/../data/property_enum_vertical_orientation_v1.rs.data /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/icu_properties_data-2.0.1/src/../data/property_binary_cased_v1.rs.data /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/icu_properties_data-2.0.1/src/../data/property_binary_nfkc_inert_v1.rs.data /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/icu_properties_data-2.0.1/src/../data/property_binary_id_continue_v1.rs.data /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/icu_properties_data-2.0.1/src/../data/property_binary_basic_emoji_v1.rs.data /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/icu_properties_data-2.0.1/src/../data/property_binary_id_start_v1.rs.data /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/icu_properties_data-2.0.1/src/../data/property_binary_uppercase_v1.rs.data /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/icu_properties_data-2.0.1/src/../data/property_name_short_script_v1.rs.data /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/icu_properties_data-2.0.1/src/../data/property_enum_hangul_syllable_type_v1.rs.data /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/icu_properties_data-2.0.1/src/../data/property_binary_xdigit_v1.rs.data /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/icu_properties_data-2.0.1/src/../data/property_binary_full_composition_exclusion_v1.rs.data /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/icu_properties_data-2.0.1/src/../data/property_name_long_vertical_orientation_v1.rs.data /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/icu_properties_data-2.0.1/src/../data/property_binary_changes_when_nfkc_casefolded_v1.rs.data /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/icu_properties_data-2.0.1/src/../data/property_binary_hex_digit_v1.rs.data /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/icu_properties_data-2.0.1/src/../data/property_name_parse_joining_type_v1.rs.data /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/icu_properties_data-2.0.1/src/../data/property_binary_xid_continue_v1.rs.data /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/icu_properties_data-2.0.1/src/../data/property_binary_soft_dotted_v1.rs.data /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/icu_properties_data-2.0.1/src/../data/property_binary_ideographic_v1.rs.data /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/icu_properties_data-2.0.1/src/../data/property_name_short_canonical_combining_class_v1.rs.data /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/icu_properties_data-2.0.1/src/../data/property_name_long_word_break_v1.rs.data /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/icu_properties_data-2.0.1/src/../data/property_binary_changes_when_titlecased_v1.rs.data /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/icu_properties_data-2.0.1/src/../data/property_enum_bidi_class_v1.rs.data /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/icu_properties_data-2.0.1/src/../data/property_binary_sentence_terminal_v1.rs.data /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/icu_properties_data-2.0.1/src/../data/property_enum_indic_conjunct_break_v1.rs.data /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/icu_properties_data-2.0.1/src/../data/property_name_long_general_category_v1.rs.data /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/icu_properties_data-2.0.1/src/../data/property_binary_ascii_hex_digit_v1.rs.data /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/icu_properties_data-2.0.1/src/../data/property_enum_line_break_v1.rs.data /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/icu_properties_data-2.0.1/src/../data/property_enum_east_asian_width_v1.rs.data /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/icu_properties_data-2.0.1/src/../data/property_name_parse_grapheme_cluster_break_v1.rs.data /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/icu_properties_data-2.0.1/src/../data/property_name_parse_general_category_v1.rs.data /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/icu_properties_data-2.0.1/src/../data/property_binary_logical_order_exception_v1.rs.data /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/icu_properties_data-2.0.1/src/../data/property_binary_case_ignorable_v1.rs.data /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/icu_properties_data-2.0.1/src/../data/property_binary_diacritic_v1.rs.data /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/icu_properties_data-2.0.1/src/../data/property_binary_grapheme_extend_v1.rs.data /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/icu_properties_data-2.0.1/src/../data/property_enum_bidi_mirroring_glyph_v1.rs.data /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/icu_properties_data-2.0.1/src/../data/property_name_parse_general_category_mask_v1.rs.data /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/icu_properties_data-2.0.1/src/../data/property_binary_nfc_inert_v1.rs.data /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/icu_properties_data-2.0.1/src/../data/property_name_parse_script_v1.rs.data /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/icu_properties_data-2.0.1/src/../data/property_binary_lowercase_v1.rs.data /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/icu_properties_data-2.0.1/src/../data/property_name_long_joining_type_v1.rs.data /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/icu_properties_data-2.0.1/src/../data/property_binary_emoji_modifier_base_v1.rs.data /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/icu_properties_data-2.0.1/src/../data/property_name_long_sentence_break_v1.rs.data /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/icu_properties_data-2.0.1/src/../data/property_binary_grapheme_base_v1.rs.data /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/icu_properties_data-2.0.1/src/../data/property_name_long_canonical_combining_class_v1.rs.data /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/icu_properties_data-2.0.1/src/../data/property_binary_emoji_modifier_v1.rs.data /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/icu_properties_data-2.0.1/src/../data/property_binary_join_control_v1.rs.data /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/icu_properties_data-2.0.1/src/../data/property_enum_joining_type_v1.rs.data /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/icu_properties_data-2.0.1/src/../data/property_name_short_line_break_v1.rs.data /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/icu_properties_data-2.0.1/src/../data/property_name_parse_word_break_v1.rs.data /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/icu_properties_data-2.0.1/src/../data/property_binary_math_v1.rs.data /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/icu_properties_data-2.0.1/src/../data/property_binary_pattern_white_space_v1.rs.data /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/icu_properties_data-2.0.1/src/../data/property_binary_nfkd_inert_v1.rs.data /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/icu_properties_data-2.0.1/src/../data/property_binary_alphabetic_v1.rs.data /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/icu_properties_data-2.0.1/src/../data/property_enum_grapheme_cluster_break_v1.rs.data /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/icu_properties_data-2.0.1/src/../data/property_binary_blank_v1.rs.data /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/icu_properties_data-2.0.1/src/../data/property_binary_default_ignorable_code_point_v1.rs.data /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/icu_properties_data-2.0.1/src/../data/property_binary_extended_pictographic_v1.rs.data /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/icu_properties_data-2.0.1/src/../data/property_name_parse_vertical_orientation_v1.rs.data /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/icu_properties_data-2.0.1/src/../data/property_name_parse_canonical_combining_class_v1.rs.data + +/Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/icu_properties_data-2.0.1/src/lib.rs: +/Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/icu_properties_data-2.0.1/src/../data/mod.rs: +/Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/icu_properties_data-2.0.1/src/../data/property_enum_indic_syllabic_category_v1.rs.data: +/Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/icu_properties_data-2.0.1/src/../data/property_binary_pattern_syntax_v1.rs.data: +/Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/icu_properties_data-2.0.1/src/../data/property_binary_changes_when_lowercased_v1.rs.data: +/Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/icu_properties_data-2.0.1/src/../data/property_binary_ids_trinary_operator_v1.rs.data: +/Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/icu_properties_data-2.0.1/src/../data/property_binary_regional_indicator_v1.rs.data: +/Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/icu_properties_data-2.0.1/src/../data/property_binary_changes_when_uppercased_v1.rs.data: +/Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/icu_properties_data-2.0.1/src/../data/property_binary_changes_when_casemapped_v1.rs.data: +/Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/icu_properties_data-2.0.1/src/../data/property_enum_script_v1.rs.data: +/Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/icu_properties_data-2.0.1/src/../data/property_name_short_indic_syllabic_category_v1.rs.data: +/Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/icu_properties_data-2.0.1/src/../data/property_binary_ids_binary_operator_v1.rs.data: +/Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/icu_properties_data-2.0.1/src/../data/property_binary_radical_v1.rs.data: +/Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/icu_properties_data-2.0.1/src/../data/property_binary_extender_v1.rs.data: +/Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/icu_properties_data-2.0.1/src/../data/property_name_long_indic_syllabic_category_v1.rs.data: +/Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/icu_properties_data-2.0.1/src/../data/property_binary_emoji_component_v1.rs.data: +/Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/icu_properties_data-2.0.1/src/../data/property_binary_dash_v1.rs.data: +/Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/icu_properties_data-2.0.1/src/../data/property_enum_general_category_v1.rs.data: +/Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/icu_properties_data-2.0.1/src/../data/property_name_long_grapheme_cluster_break_v1.rs.data: +/Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/icu_properties_data-2.0.1/src/../data/property_binary_emoji_presentation_v1.rs.data: +/Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/icu_properties_data-2.0.1/src/../data/property_binary_case_sensitive_v1.rs.data: +/Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/icu_properties_data-2.0.1/src/../data/property_name_short_bidi_class_v1.rs.data: +/Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/icu_properties_data-2.0.1/src/../data/property_binary_nfd_inert_v1.rs.data: +/Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/icu_properties_data-2.0.1/src/../data/property_binary_graph_v1.rs.data: +/Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/icu_properties_data-2.0.1/src/../data/property_binary_bidi_control_v1.rs.data: +/Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/icu_properties_data-2.0.1/src/../data/property_name_short_hangul_syllable_type_v1.rs.data: +/Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/icu_properties_data-2.0.1/src/../data/property_name_short_word_break_v1.rs.data: +/Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/icu_properties_data-2.0.1/src/../data/property_name_parse_line_break_v1.rs.data: +/Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/icu_properties_data-2.0.1/src/../data/property_binary_white_space_v1.rs.data: +/Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/icu_properties_data-2.0.1/src/../data/property_binary_unified_ideograph_v1.rs.data: +/Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/icu_properties_data-2.0.1/src/../data/property_binary_noncharacter_code_point_v1.rs.data: +/Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/icu_properties_data-2.0.1/src/../data/property_name_short_grapheme_cluster_break_v1.rs.data: +/Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/icu_properties_data-2.0.1/src/../data/property_name_parse_indic_syllabic_category_v1.rs.data: +/Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/icu_properties_data-2.0.1/src/../data/property_name_parse_east_asian_width_v1.rs.data: +/Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/icu_properties_data-2.0.1/src/../data/property_script_with_extensions_v1.rs.data: +/Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/icu_properties_data-2.0.1/src/../data/property_name_long_hangul_syllable_type_v1.rs.data: +/Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/icu_properties_data-2.0.1/src/../data/property_binary_emoji_v1.rs.data: +/Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/icu_properties_data-2.0.1/src/../data/property_name_long_line_break_v1.rs.data: +/Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/icu_properties_data-2.0.1/src/../data/property_name_parse_bidi_class_v1.rs.data: +/Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/icu_properties_data-2.0.1/src/../data/property_binary_bidi_mirrored_v1.rs.data: +/Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/icu_properties_data-2.0.1/src/../data/property_binary_grapheme_link_v1.rs.data: +/Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/icu_properties_data-2.0.1/src/../data/property_name_long_script_v1.rs.data: +/Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/icu_properties_data-2.0.1/src/../data/property_name_long_east_asian_width_v1.rs.data: +/Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/icu_properties_data-2.0.1/src/../data/property_name_parse_sentence_break_v1.rs.data: +/Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/icu_properties_data-2.0.1/src/../data/property_binary_alnum_v1.rs.data: +/Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/icu_properties_data-2.0.1/src/../data/property_name_short_general_category_v1.rs.data: +/Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/icu_properties_data-2.0.1/src/../data/property_name_short_vertical_orientation_v1.rs.data: +/Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/icu_properties_data-2.0.1/src/../data/property_binary_changes_when_casefolded_v1.rs.data: +/Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/icu_properties_data-2.0.1/src/../data/property_name_parse_hangul_syllable_type_v1.rs.data: +/Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/icu_properties_data-2.0.1/src/../data/property_enum_sentence_break_v1.rs.data: +/Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/icu_properties_data-2.0.1/src/../data/property_binary_quotation_mark_v1.rs.data: +/Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/icu_properties_data-2.0.1/src/../data/property_binary_deprecated_v1.rs.data: +/Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/icu_properties_data-2.0.1/src/../data/property_binary_xid_start_v1.rs.data: +/Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/icu_properties_data-2.0.1/src/../data/property_binary_segment_starter_v1.rs.data: +/Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/icu_properties_data-2.0.1/src/../data/property_binary_hyphen_v1.rs.data: +/Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/icu_properties_data-2.0.1/src/../data/property_binary_variation_selector_v1.rs.data: +/Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/icu_properties_data-2.0.1/src/../data/property_enum_word_break_v1.rs.data: +/Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/icu_properties_data-2.0.1/src/../data/property_name_short_east_asian_width_v1.rs.data: +/Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/icu_properties_data-2.0.1/src/../data/property_name_short_sentence_break_v1.rs.data: +/Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/icu_properties_data-2.0.1/src/../data/property_name_long_bidi_class_v1.rs.data: +/Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/icu_properties_data-2.0.1/src/../data/property_binary_prepended_concatenation_mark_v1.rs.data: +/Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/icu_properties_data-2.0.1/src/../data/property_name_short_joining_type_v1.rs.data: +/Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/icu_properties_data-2.0.1/src/../data/property_binary_print_v1.rs.data: +/Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/icu_properties_data-2.0.1/src/../data/property_enum_canonical_combining_class_v1.rs.data: +/Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/icu_properties_data-2.0.1/src/../data/property_binary_terminal_punctuation_v1.rs.data: +/Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/icu_properties_data-2.0.1/src/../data/property_enum_vertical_orientation_v1.rs.data: +/Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/icu_properties_data-2.0.1/src/../data/property_binary_cased_v1.rs.data: +/Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/icu_properties_data-2.0.1/src/../data/property_binary_nfkc_inert_v1.rs.data: +/Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/icu_properties_data-2.0.1/src/../data/property_binary_id_continue_v1.rs.data: +/Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/icu_properties_data-2.0.1/src/../data/property_binary_basic_emoji_v1.rs.data: +/Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/icu_properties_data-2.0.1/src/../data/property_binary_id_start_v1.rs.data: +/Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/icu_properties_data-2.0.1/src/../data/property_binary_uppercase_v1.rs.data: +/Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/icu_properties_data-2.0.1/src/../data/property_name_short_script_v1.rs.data: +/Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/icu_properties_data-2.0.1/src/../data/property_enum_hangul_syllable_type_v1.rs.data: +/Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/icu_properties_data-2.0.1/src/../data/property_binary_xdigit_v1.rs.data: +/Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/icu_properties_data-2.0.1/src/../data/property_binary_full_composition_exclusion_v1.rs.data: +/Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/icu_properties_data-2.0.1/src/../data/property_name_long_vertical_orientation_v1.rs.data: +/Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/icu_properties_data-2.0.1/src/../data/property_binary_changes_when_nfkc_casefolded_v1.rs.data: +/Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/icu_properties_data-2.0.1/src/../data/property_binary_hex_digit_v1.rs.data: +/Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/icu_properties_data-2.0.1/src/../data/property_name_parse_joining_type_v1.rs.data: +/Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/icu_properties_data-2.0.1/src/../data/property_binary_xid_continue_v1.rs.data: +/Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/icu_properties_data-2.0.1/src/../data/property_binary_soft_dotted_v1.rs.data: +/Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/icu_properties_data-2.0.1/src/../data/property_binary_ideographic_v1.rs.data: +/Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/icu_properties_data-2.0.1/src/../data/property_name_short_canonical_combining_class_v1.rs.data: +/Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/icu_properties_data-2.0.1/src/../data/property_name_long_word_break_v1.rs.data: +/Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/icu_properties_data-2.0.1/src/../data/property_binary_changes_when_titlecased_v1.rs.data: +/Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/icu_properties_data-2.0.1/src/../data/property_enum_bidi_class_v1.rs.data: +/Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/icu_properties_data-2.0.1/src/../data/property_binary_sentence_terminal_v1.rs.data: +/Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/icu_properties_data-2.0.1/src/../data/property_enum_indic_conjunct_break_v1.rs.data: +/Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/icu_properties_data-2.0.1/src/../data/property_name_long_general_category_v1.rs.data: +/Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/icu_properties_data-2.0.1/src/../data/property_binary_ascii_hex_digit_v1.rs.data: +/Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/icu_properties_data-2.0.1/src/../data/property_enum_line_break_v1.rs.data: +/Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/icu_properties_data-2.0.1/src/../data/property_enum_east_asian_width_v1.rs.data: +/Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/icu_properties_data-2.0.1/src/../data/property_name_parse_grapheme_cluster_break_v1.rs.data: +/Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/icu_properties_data-2.0.1/src/../data/property_name_parse_general_category_v1.rs.data: +/Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/icu_properties_data-2.0.1/src/../data/property_binary_logical_order_exception_v1.rs.data: +/Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/icu_properties_data-2.0.1/src/../data/property_binary_case_ignorable_v1.rs.data: +/Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/icu_properties_data-2.0.1/src/../data/property_binary_diacritic_v1.rs.data: +/Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/icu_properties_data-2.0.1/src/../data/property_binary_grapheme_extend_v1.rs.data: +/Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/icu_properties_data-2.0.1/src/../data/property_enum_bidi_mirroring_glyph_v1.rs.data: +/Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/icu_properties_data-2.0.1/src/../data/property_name_parse_general_category_mask_v1.rs.data: +/Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/icu_properties_data-2.0.1/src/../data/property_binary_nfc_inert_v1.rs.data: +/Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/icu_properties_data-2.0.1/src/../data/property_name_parse_script_v1.rs.data: +/Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/icu_properties_data-2.0.1/src/../data/property_binary_lowercase_v1.rs.data: +/Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/icu_properties_data-2.0.1/src/../data/property_name_long_joining_type_v1.rs.data: +/Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/icu_properties_data-2.0.1/src/../data/property_binary_emoji_modifier_base_v1.rs.data: +/Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/icu_properties_data-2.0.1/src/../data/property_name_long_sentence_break_v1.rs.data: +/Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/icu_properties_data-2.0.1/src/../data/property_binary_grapheme_base_v1.rs.data: +/Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/icu_properties_data-2.0.1/src/../data/property_name_long_canonical_combining_class_v1.rs.data: +/Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/icu_properties_data-2.0.1/src/../data/property_binary_emoji_modifier_v1.rs.data: +/Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/icu_properties_data-2.0.1/src/../data/property_binary_join_control_v1.rs.data: +/Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/icu_properties_data-2.0.1/src/../data/property_enum_joining_type_v1.rs.data: +/Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/icu_properties_data-2.0.1/src/../data/property_name_short_line_break_v1.rs.data: +/Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/icu_properties_data-2.0.1/src/../data/property_name_parse_word_break_v1.rs.data: +/Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/icu_properties_data-2.0.1/src/../data/property_binary_math_v1.rs.data: +/Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/icu_properties_data-2.0.1/src/../data/property_binary_pattern_white_space_v1.rs.data: +/Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/icu_properties_data-2.0.1/src/../data/property_binary_nfkd_inert_v1.rs.data: +/Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/icu_properties_data-2.0.1/src/../data/property_binary_alphabetic_v1.rs.data: +/Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/icu_properties_data-2.0.1/src/../data/property_enum_grapheme_cluster_break_v1.rs.data: +/Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/icu_properties_data-2.0.1/src/../data/property_binary_blank_v1.rs.data: +/Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/icu_properties_data-2.0.1/src/../data/property_binary_default_ignorable_code_point_v1.rs.data: +/Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/icu_properties_data-2.0.1/src/../data/property_binary_extended_pictographic_v1.rs.data: +/Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/icu_properties_data-2.0.1/src/../data/property_name_parse_vertical_orientation_v1.rs.data: +/Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/icu_properties_data-2.0.1/src/../data/property_name_parse_canonical_combining_class_v1.rs.data: diff --git a/.tmp-check-windows/x86_64-pc-windows-msvc/debug/deps/indexmap-a2531ec4a8b97add.d b/.tmp-check-windows/x86_64-pc-windows-msvc/debug/deps/indexmap-a2531ec4a8b97add.d new file mode 100644 index 000000000..6cfb3ad29 --- /dev/null +++ b/.tmp-check-windows/x86_64-pc-windows-msvc/debug/deps/indexmap-a2531ec4a8b97add.d @@ -0,0 +1,23 @@ +/Users/coso/Documents/dev/ai/aiclientproxy/lime/.tmp-check-windows/x86_64-pc-windows-msvc/debug/deps/indexmap-a2531ec4a8b97add.d: /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/indexmap-2.13.0/src/lib.rs /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/indexmap-2.13.0/src/arbitrary.rs /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/indexmap-2.13.0/src/inner.rs /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/indexmap-2.13.0/src/inner/entry.rs /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/indexmap-2.13.0/src/inner/extract.rs /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/indexmap-2.13.0/src/macros.rs /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/indexmap-2.13.0/src/serde.rs /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/indexmap-2.13.0/src/util.rs /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/indexmap-2.13.0/src/map.rs /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/indexmap-2.13.0/src/map/entry.rs /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/indexmap-2.13.0/src/map/iter.rs /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/indexmap-2.13.0/src/map/mutable.rs /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/indexmap-2.13.0/src/map/slice.rs /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/indexmap-2.13.0/src/map/raw_entry_v1.rs /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/indexmap-2.13.0/src/map/serde_seq.rs /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/indexmap-2.13.0/src/set.rs /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/indexmap-2.13.0/src/set/iter.rs /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/indexmap-2.13.0/src/set/mutable.rs /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/indexmap-2.13.0/src/set/slice.rs + +/Users/coso/Documents/dev/ai/aiclientproxy/lime/.tmp-check-windows/x86_64-pc-windows-msvc/debug/deps/libindexmap-a2531ec4a8b97add.rmeta: /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/indexmap-2.13.0/src/lib.rs /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/indexmap-2.13.0/src/arbitrary.rs /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/indexmap-2.13.0/src/inner.rs /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/indexmap-2.13.0/src/inner/entry.rs /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/indexmap-2.13.0/src/inner/extract.rs /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/indexmap-2.13.0/src/macros.rs /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/indexmap-2.13.0/src/serde.rs /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/indexmap-2.13.0/src/util.rs /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/indexmap-2.13.0/src/map.rs /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/indexmap-2.13.0/src/map/entry.rs /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/indexmap-2.13.0/src/map/iter.rs /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/indexmap-2.13.0/src/map/mutable.rs /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/indexmap-2.13.0/src/map/slice.rs /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/indexmap-2.13.0/src/map/raw_entry_v1.rs /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/indexmap-2.13.0/src/map/serde_seq.rs /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/indexmap-2.13.0/src/set.rs /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/indexmap-2.13.0/src/set/iter.rs /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/indexmap-2.13.0/src/set/mutable.rs /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/indexmap-2.13.0/src/set/slice.rs + +/Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/indexmap-2.13.0/src/lib.rs: +/Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/indexmap-2.13.0/src/arbitrary.rs: +/Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/indexmap-2.13.0/src/inner.rs: +/Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/indexmap-2.13.0/src/inner/entry.rs: +/Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/indexmap-2.13.0/src/inner/extract.rs: +/Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/indexmap-2.13.0/src/macros.rs: +/Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/indexmap-2.13.0/src/serde.rs: +/Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/indexmap-2.13.0/src/util.rs: +/Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/indexmap-2.13.0/src/map.rs: +/Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/indexmap-2.13.0/src/map/entry.rs: +/Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/indexmap-2.13.0/src/map/iter.rs: +/Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/indexmap-2.13.0/src/map/mutable.rs: +/Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/indexmap-2.13.0/src/map/slice.rs: +/Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/indexmap-2.13.0/src/map/raw_entry_v1.rs: +/Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/indexmap-2.13.0/src/map/serde_seq.rs: +/Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/indexmap-2.13.0/src/set.rs: +/Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/indexmap-2.13.0/src/set/iter.rs: +/Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/indexmap-2.13.0/src/set/mutable.rs: +/Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/indexmap-2.13.0/src/set/slice.rs: diff --git a/.tmp-check-windows/x86_64-pc-windows-msvc/debug/deps/itoa-488e6eec9800bcda.d b/.tmp-check-windows/x86_64-pc-windows-msvc/debug/deps/itoa-488e6eec9800bcda.d new file mode 100644 index 000000000..1d5335bd6 --- /dev/null +++ b/.tmp-check-windows/x86_64-pc-windows-msvc/debug/deps/itoa-488e6eec9800bcda.d @@ -0,0 +1,6 @@ +/Users/coso/Documents/dev/ai/aiclientproxy/lime/.tmp-check-windows/x86_64-pc-windows-msvc/debug/deps/itoa-488e6eec9800bcda.d: /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/itoa-1.0.17/src/lib.rs /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/itoa-1.0.17/src/u128_ext.rs + +/Users/coso/Documents/dev/ai/aiclientproxy/lime/.tmp-check-windows/x86_64-pc-windows-msvc/debug/deps/libitoa-488e6eec9800bcda.rmeta: /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/itoa-1.0.17/src/lib.rs /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/itoa-1.0.17/src/u128_ext.rs + +/Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/itoa-1.0.17/src/lib.rs: +/Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/itoa-1.0.17/src/u128_ext.rs: diff --git a/.tmp-check-windows/x86_64-pc-windows-msvc/debug/deps/liballocator_api2-9124b3fecd321e72.rmeta b/.tmp-check-windows/x86_64-pc-windows-msvc/debug/deps/liballocator_api2-9124b3fecd321e72.rmeta new file mode 100644 index 000000000..7b4fccc2e Binary files /dev/null and b/.tmp-check-windows/x86_64-pc-windows-msvc/debug/deps/liballocator_api2-9124b3fecd321e72.rmeta differ diff --git a/.tmp-check-windows/x86_64-pc-windows-msvc/debug/deps/libbitflags-c7e27940c9a4250d.rmeta b/.tmp-check-windows/x86_64-pc-windows-msvc/debug/deps/libbitflags-c7e27940c9a4250d.rmeta new file mode 100644 index 000000000..ec3bee573 Binary files /dev/null and b/.tmp-check-windows/x86_64-pc-windows-msvc/debug/deps/libbitflags-c7e27940c9a4250d.rmeta differ diff --git a/.tmp-check-windows/x86_64-pc-windows-msvc/debug/deps/libbytes-30e33214aee11dd5.rmeta b/.tmp-check-windows/x86_64-pc-windows-msvc/debug/deps/libbytes-30e33214aee11dd5.rmeta new file mode 100644 index 000000000..f2a3c3315 Binary files /dev/null and b/.tmp-check-windows/x86_64-pc-windows-msvc/debug/deps/libbytes-30e33214aee11dd5.rmeta differ diff --git a/.tmp-check-windows/x86_64-pc-windows-msvc/debug/deps/libc-2dcc1ef3a7720659.d b/.tmp-check-windows/x86_64-pc-windows-msvc/debug/deps/libc-2dcc1ef3a7720659.d new file mode 100644 index 000000000..40df5c272 --- /dev/null +++ b/.tmp-check-windows/x86_64-pc-windows-msvc/debug/deps/libc-2dcc1ef3a7720659.d @@ -0,0 +1,13 @@ +/Users/coso/Documents/dev/ai/aiclientproxy/lime/.tmp-check-windows/x86_64-pc-windows-msvc/debug/deps/libc-2dcc1ef3a7720659.d: /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/libc-0.2.180/src/lib.rs /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/libc-0.2.180/src/macros.rs /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/libc-0.2.180/src/new/mod.rs /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/libc-0.2.180/src/new/common/mod.rs /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/libc-0.2.180/src/new/ucrt/mod.rs /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/libc-0.2.180/src/primitives.rs /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/libc-0.2.180/src/windows/mod.rs /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/libc-0.2.180/src/windows/msvc/mod.rs /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/libc-0.2.180/src/types.rs + +/Users/coso/Documents/dev/ai/aiclientproxy/lime/.tmp-check-windows/x86_64-pc-windows-msvc/debug/deps/liblibc-2dcc1ef3a7720659.rmeta: /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/libc-0.2.180/src/lib.rs /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/libc-0.2.180/src/macros.rs /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/libc-0.2.180/src/new/mod.rs /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/libc-0.2.180/src/new/common/mod.rs /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/libc-0.2.180/src/new/ucrt/mod.rs /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/libc-0.2.180/src/primitives.rs /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/libc-0.2.180/src/windows/mod.rs /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/libc-0.2.180/src/windows/msvc/mod.rs /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/libc-0.2.180/src/types.rs + +/Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/libc-0.2.180/src/lib.rs: +/Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/libc-0.2.180/src/macros.rs: +/Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/libc-0.2.180/src/new/mod.rs: +/Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/libc-0.2.180/src/new/common/mod.rs: +/Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/libc-0.2.180/src/new/ucrt/mod.rs: +/Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/libc-0.2.180/src/primitives.rs: +/Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/libc-0.2.180/src/windows/mod.rs: +/Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/libc-0.2.180/src/windows/msvc/mod.rs: +/Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/libc-0.2.180/src/types.rs: diff --git a/.tmp-check-windows/x86_64-pc-windows-msvc/debug/deps/libcfg_if-f818a7106a91bc57.rmeta b/.tmp-check-windows/x86_64-pc-windows-msvc/debug/deps/libcfg_if-f818a7106a91bc57.rmeta new file mode 100644 index 000000000..2a2c477bf Binary files /dev/null and b/.tmp-check-windows/x86_64-pc-windows-msvc/debug/deps/libcfg_if-f818a7106a91bc57.rmeta differ diff --git a/.tmp-check-windows/x86_64-pc-windows-msvc/debug/deps/libcrc32fast-6c8e3cbaf660e283.rmeta b/.tmp-check-windows/x86_64-pc-windows-msvc/debug/deps/libcrc32fast-6c8e3cbaf660e283.rmeta new file mode 100644 index 000000000..5f8178a8a Binary files /dev/null and b/.tmp-check-windows/x86_64-pc-windows-msvc/debug/deps/libcrc32fast-6c8e3cbaf660e283.rmeta differ diff --git a/.tmp-check-windows/x86_64-pc-windows-msvc/debug/deps/libderanged-86dd1b5614fe3d8b.rmeta b/.tmp-check-windows/x86_64-pc-windows-msvc/debug/deps/libderanged-86dd1b5614fe3d8b.rmeta new file mode 100644 index 000000000..59bd3e52c Binary files /dev/null and b/.tmp-check-windows/x86_64-pc-windows-msvc/debug/deps/libderanged-86dd1b5614fe3d8b.rmeta differ diff --git a/.tmp-check-windows/x86_64-pc-windows-msvc/debug/deps/libequivalent-e2699ea9df503f27.rmeta b/.tmp-check-windows/x86_64-pc-windows-msvc/debug/deps/libequivalent-e2699ea9df503f27.rmeta new file mode 100644 index 000000000..27ee7c93e Binary files /dev/null and b/.tmp-check-windows/x86_64-pc-windows-msvc/debug/deps/libequivalent-e2699ea9df503f27.rmeta differ diff --git a/.tmp-check-windows/x86_64-pc-windows-msvc/debug/deps/libfnv-94a523e7e87df426.rmeta b/.tmp-check-windows/x86_64-pc-windows-msvc/debug/deps/libfnv-94a523e7e87df426.rmeta new file mode 100644 index 000000000..5bee2df6f Binary files /dev/null and b/.tmp-check-windows/x86_64-pc-windows-msvc/debug/deps/libfnv-94a523e7e87df426.rmeta differ diff --git a/.tmp-check-windows/x86_64-pc-windows-msvc/debug/deps/libfoldhash-f7563a03d8b1fc6b.rmeta b/.tmp-check-windows/x86_64-pc-windows-msvc/debug/deps/libfoldhash-f7563a03d8b1fc6b.rmeta new file mode 100644 index 000000000..0316bd21a Binary files /dev/null and b/.tmp-check-windows/x86_64-pc-windows-msvc/debug/deps/libfoldhash-f7563a03d8b1fc6b.rmeta differ diff --git a/.tmp-check-windows/x86_64-pc-windows-msvc/debug/deps/libform_urlencoded-a2acafc1ce458d8d.rmeta b/.tmp-check-windows/x86_64-pc-windows-msvc/debug/deps/libform_urlencoded-a2acafc1ce458d8d.rmeta new file mode 100644 index 000000000..da6679185 Binary files /dev/null and b/.tmp-check-windows/x86_64-pc-windows-msvc/debug/deps/libform_urlencoded-a2acafc1ce458d8d.rmeta differ diff --git a/.tmp-check-windows/x86_64-pc-windows-msvc/debug/deps/libfutures_channel-ca0e5e2b8233ef2e.rmeta b/.tmp-check-windows/x86_64-pc-windows-msvc/debug/deps/libfutures_channel-ca0e5e2b8233ef2e.rmeta new file mode 100644 index 000000000..044f56f9c Binary files /dev/null and b/.tmp-check-windows/x86_64-pc-windows-msvc/debug/deps/libfutures_channel-ca0e5e2b8233ef2e.rmeta differ diff --git a/.tmp-check-windows/x86_64-pc-windows-msvc/debug/deps/libfutures_core-4fd5c7d3cd623ea2.rmeta b/.tmp-check-windows/x86_64-pc-windows-msvc/debug/deps/libfutures_core-4fd5c7d3cd623ea2.rmeta new file mode 100644 index 000000000..d0c485018 Binary files /dev/null and b/.tmp-check-windows/x86_64-pc-windows-msvc/debug/deps/libfutures_core-4fd5c7d3cd623ea2.rmeta differ diff --git a/.tmp-check-windows/x86_64-pc-windows-msvc/debug/deps/libfutures_io-ee0ea03f6d6f0209.rmeta b/.tmp-check-windows/x86_64-pc-windows-msvc/debug/deps/libfutures_io-ee0ea03f6d6f0209.rmeta new file mode 100644 index 000000000..ab6d8f7b4 Binary files /dev/null and b/.tmp-check-windows/x86_64-pc-windows-msvc/debug/deps/libfutures_io-ee0ea03f6d6f0209.rmeta differ diff --git a/.tmp-check-windows/x86_64-pc-windows-msvc/debug/deps/libfutures_sink-ae147c7b6744c683.rmeta b/.tmp-check-windows/x86_64-pc-windows-msvc/debug/deps/libfutures_sink-ae147c7b6744c683.rmeta new file mode 100644 index 000000000..76cf17a6e Binary files /dev/null and b/.tmp-check-windows/x86_64-pc-windows-msvc/debug/deps/libfutures_sink-ae147c7b6744c683.rmeta differ diff --git a/.tmp-check-windows/x86_64-pc-windows-msvc/debug/deps/libfutures_task-dfddd0b6775e548b.rmeta b/.tmp-check-windows/x86_64-pc-windows-msvc/debug/deps/libfutures_task-dfddd0b6775e548b.rmeta new file mode 100644 index 000000000..63e8ebc6f Binary files /dev/null and b/.tmp-check-windows/x86_64-pc-windows-msvc/debug/deps/libfutures_task-dfddd0b6775e548b.rmeta differ diff --git a/.tmp-check-windows/x86_64-pc-windows-msvc/debug/deps/libgeneric_array-ef60f934cca98372.rmeta b/.tmp-check-windows/x86_64-pc-windows-msvc/debug/deps/libgeneric_array-ef60f934cca98372.rmeta new file mode 100644 index 000000000..64dad28c6 Binary files /dev/null and b/.tmp-check-windows/x86_64-pc-windows-msvc/debug/deps/libgeneric_array-ef60f934cca98372.rmeta differ diff --git a/.tmp-check-windows/x86_64-pc-windows-msvc/debug/deps/libgetrandom-0c62d8aacf5004ae.rmeta b/.tmp-check-windows/x86_64-pc-windows-msvc/debug/deps/libgetrandom-0c62d8aacf5004ae.rmeta new file mode 100644 index 000000000..3a562c911 Binary files /dev/null and b/.tmp-check-windows/x86_64-pc-windows-msvc/debug/deps/libgetrandom-0c62d8aacf5004ae.rmeta differ diff --git a/.tmp-check-windows/x86_64-pc-windows-msvc/debug/deps/libgetrandom-366beb8af7010b05.rmeta b/.tmp-check-windows/x86_64-pc-windows-msvc/debug/deps/libgetrandom-366beb8af7010b05.rmeta new file mode 100644 index 000000000..886940116 Binary files /dev/null and b/.tmp-check-windows/x86_64-pc-windows-msvc/debug/deps/libgetrandom-366beb8af7010b05.rmeta differ diff --git a/.tmp-check-windows/x86_64-pc-windows-msvc/debug/deps/libhashbrown-12bcee8ae68ebba7.rmeta b/.tmp-check-windows/x86_64-pc-windows-msvc/debug/deps/libhashbrown-12bcee8ae68ebba7.rmeta new file mode 100644 index 000000000..c25f37ee6 Binary files /dev/null and b/.tmp-check-windows/x86_64-pc-windows-msvc/debug/deps/libhashbrown-12bcee8ae68ebba7.rmeta differ diff --git a/.tmp-check-windows/x86_64-pc-windows-msvc/debug/deps/libhttp-ea9c30f7d1865c99.rmeta b/.tmp-check-windows/x86_64-pc-windows-msvc/debug/deps/libhttp-ea9c30f7d1865c99.rmeta new file mode 100644 index 000000000..29348ecf9 Binary files /dev/null and b/.tmp-check-windows/x86_64-pc-windows-msvc/debug/deps/libhttp-ea9c30f7d1865c99.rmeta differ diff --git a/.tmp-check-windows/x86_64-pc-windows-msvc/debug/deps/libhttp_body-3b140a42245d940e.rmeta b/.tmp-check-windows/x86_64-pc-windows-msvc/debug/deps/libhttp_body-3b140a42245d940e.rmeta new file mode 100644 index 000000000..ae9b8c0f6 Binary files /dev/null and b/.tmp-check-windows/x86_64-pc-windows-msvc/debug/deps/libhttp_body-3b140a42245d940e.rmeta differ diff --git a/.tmp-check-windows/x86_64-pc-windows-msvc/debug/deps/libhttp_body_util-332fc865dfc5f883.rmeta b/.tmp-check-windows/x86_64-pc-windows-msvc/debug/deps/libhttp_body_util-332fc865dfc5f883.rmeta new file mode 100644 index 000000000..9fb2569f6 Binary files /dev/null and b/.tmp-check-windows/x86_64-pc-windows-msvc/debug/deps/libhttp_body_util-332fc865dfc5f883.rmeta differ diff --git a/.tmp-check-windows/x86_64-pc-windows-msvc/debug/deps/libhttparse-4746fedd30ce7edc.rmeta b/.tmp-check-windows/x86_64-pc-windows-msvc/debug/deps/libhttparse-4746fedd30ce7edc.rmeta new file mode 100644 index 000000000..4acab4b28 Binary files /dev/null and b/.tmp-check-windows/x86_64-pc-windows-msvc/debug/deps/libhttparse-4746fedd30ce7edc.rmeta differ diff --git a/.tmp-check-windows/x86_64-pc-windows-msvc/debug/deps/libicu_normalizer_data-5b0745ef3cf6717e.rmeta b/.tmp-check-windows/x86_64-pc-windows-msvc/debug/deps/libicu_normalizer_data-5b0745ef3cf6717e.rmeta new file mode 100644 index 000000000..778cd6186 Binary files /dev/null and b/.tmp-check-windows/x86_64-pc-windows-msvc/debug/deps/libicu_normalizer_data-5b0745ef3cf6717e.rmeta differ diff --git a/.tmp-check-windows/x86_64-pc-windows-msvc/debug/deps/libicu_properties_data-d0ec1de699ed3f37.rmeta b/.tmp-check-windows/x86_64-pc-windows-msvc/debug/deps/libicu_properties_data-d0ec1de699ed3f37.rmeta new file mode 100644 index 000000000..c0739a972 Binary files /dev/null and b/.tmp-check-windows/x86_64-pc-windows-msvc/debug/deps/libicu_properties_data-d0ec1de699ed3f37.rmeta differ diff --git a/.tmp-check-windows/x86_64-pc-windows-msvc/debug/deps/libindexmap-a2531ec4a8b97add.rmeta b/.tmp-check-windows/x86_64-pc-windows-msvc/debug/deps/libindexmap-a2531ec4a8b97add.rmeta new file mode 100644 index 000000000..6eab0b30b Binary files /dev/null and b/.tmp-check-windows/x86_64-pc-windows-msvc/debug/deps/libindexmap-a2531ec4a8b97add.rmeta differ diff --git a/.tmp-check-windows/x86_64-pc-windows-msvc/debug/deps/libitoa-488e6eec9800bcda.rmeta b/.tmp-check-windows/x86_64-pc-windows-msvc/debug/deps/libitoa-488e6eec9800bcda.rmeta new file mode 100644 index 000000000..aeaf9d10a Binary files /dev/null and b/.tmp-check-windows/x86_64-pc-windows-msvc/debug/deps/libitoa-488e6eec9800bcda.rmeta differ diff --git a/.tmp-check-windows/x86_64-pc-windows-msvc/debug/deps/liblibc-2dcc1ef3a7720659.rmeta b/.tmp-check-windows/x86_64-pc-windows-msvc/debug/deps/liblibc-2dcc1ef3a7720659.rmeta new file mode 100644 index 000000000..fb169b258 Binary files /dev/null and b/.tmp-check-windows/x86_64-pc-windows-msvc/debug/deps/liblibc-2dcc1ef3a7720659.rmeta differ diff --git a/.tmp-check-windows/x86_64-pc-windows-msvc/debug/deps/liblitemap-14728d218a3086bc.rmeta b/.tmp-check-windows/x86_64-pc-windows-msvc/debug/deps/liblitemap-14728d218a3086bc.rmeta new file mode 100644 index 000000000..e990e4d13 Binary files /dev/null and b/.tmp-check-windows/x86_64-pc-windows-msvc/debug/deps/liblitemap-14728d218a3086bc.rmeta differ diff --git a/.tmp-check-windows/x86_64-pc-windows-msvc/debug/deps/liblock_api-1c00568f97fee2bd.rmeta b/.tmp-check-windows/x86_64-pc-windows-msvc/debug/deps/liblock_api-1c00568f97fee2bd.rmeta new file mode 100644 index 000000000..28bcbfe24 Binary files /dev/null and b/.tmp-check-windows/x86_64-pc-windows-msvc/debug/deps/liblock_api-1c00568f97fee2bd.rmeta differ diff --git a/.tmp-check-windows/x86_64-pc-windows-msvc/debug/deps/liblog-a7e3cdbdd3c1061c.rmeta b/.tmp-check-windows/x86_64-pc-windows-msvc/debug/deps/liblog-a7e3cdbdd3c1061c.rmeta new file mode 100644 index 000000000..fa05be227 Binary files /dev/null and b/.tmp-check-windows/x86_64-pc-windows-msvc/debug/deps/liblog-a7e3cdbdd3c1061c.rmeta differ diff --git a/.tmp-check-windows/x86_64-pc-windows-msvc/debug/deps/libmemchr-1b58cabf284e0709.rmeta b/.tmp-check-windows/x86_64-pc-windows-msvc/debug/deps/libmemchr-1b58cabf284e0709.rmeta new file mode 100644 index 000000000..8b613a345 Binary files /dev/null and b/.tmp-check-windows/x86_64-pc-windows-msvc/debug/deps/libmemchr-1b58cabf284e0709.rmeta differ diff --git a/.tmp-check-windows/x86_64-pc-windows-msvc/debug/deps/libnum_conv-72f863fdde84cf03.rmeta b/.tmp-check-windows/x86_64-pc-windows-msvc/debug/deps/libnum_conv-72f863fdde84cf03.rmeta new file mode 100644 index 000000000..c54901dab Binary files /dev/null and b/.tmp-check-windows/x86_64-pc-windows-msvc/debug/deps/libnum_conv-72f863fdde84cf03.rmeta differ diff --git a/.tmp-check-windows/x86_64-pc-windows-msvc/debug/deps/libnum_traits-eecd31492af8a27c.rmeta b/.tmp-check-windows/x86_64-pc-windows-msvc/debug/deps/libnum_traits-eecd31492af8a27c.rmeta new file mode 100644 index 000000000..dc4e2caa6 Binary files /dev/null and b/.tmp-check-windows/x86_64-pc-windows-msvc/debug/deps/libnum_traits-eecd31492af8a27c.rmeta differ diff --git a/.tmp-check-windows/x86_64-pc-windows-msvc/debug/deps/libonce_cell-23f8f2fae52687b1.rmeta b/.tmp-check-windows/x86_64-pc-windows-msvc/debug/deps/libonce_cell-23f8f2fae52687b1.rmeta new file mode 100644 index 000000000..b52419bd2 Binary files /dev/null and b/.tmp-check-windows/x86_64-pc-windows-msvc/debug/deps/libonce_cell-23f8f2fae52687b1.rmeta differ diff --git a/.tmp-check-windows/x86_64-pc-windows-msvc/debug/deps/libparking_lot-ba860a093d33ef7b.rmeta b/.tmp-check-windows/x86_64-pc-windows-msvc/debug/deps/libparking_lot-ba860a093d33ef7b.rmeta new file mode 100644 index 000000000..5f22f40e6 Binary files /dev/null and b/.tmp-check-windows/x86_64-pc-windows-msvc/debug/deps/libparking_lot-ba860a093d33ef7b.rmeta differ diff --git a/.tmp-check-windows/x86_64-pc-windows-msvc/debug/deps/libparking_lot_core-1515055616085f74.rmeta b/.tmp-check-windows/x86_64-pc-windows-msvc/debug/deps/libparking_lot_core-1515055616085f74.rmeta new file mode 100644 index 000000000..5e8bb2b06 Binary files /dev/null and b/.tmp-check-windows/x86_64-pc-windows-msvc/debug/deps/libparking_lot_core-1515055616085f74.rmeta differ diff --git a/.tmp-check-windows/x86_64-pc-windows-msvc/debug/deps/libpercent_encoding-e35dd42ea1a2b4d6.rmeta b/.tmp-check-windows/x86_64-pc-windows-msvc/debug/deps/libpercent_encoding-e35dd42ea1a2b4d6.rmeta new file mode 100644 index 000000000..5e5dac0f7 Binary files /dev/null and b/.tmp-check-windows/x86_64-pc-windows-msvc/debug/deps/libpercent_encoding-e35dd42ea1a2b4d6.rmeta differ diff --git a/.tmp-check-windows/x86_64-pc-windows-msvc/debug/deps/libpin_project_lite-fbf35e178affa77b.rmeta b/.tmp-check-windows/x86_64-pc-windows-msvc/debug/deps/libpin_project_lite-fbf35e178affa77b.rmeta new file mode 100644 index 000000000..f1fc03c95 Binary files /dev/null and b/.tmp-check-windows/x86_64-pc-windows-msvc/debug/deps/libpin_project_lite-fbf35e178affa77b.rmeta differ diff --git a/.tmp-check-windows/x86_64-pc-windows-msvc/debug/deps/libpin_utils-8c959579c72b059b.rmeta b/.tmp-check-windows/x86_64-pc-windows-msvc/debug/deps/libpin_utils-8c959579c72b059b.rmeta new file mode 100644 index 000000000..1102af697 Binary files /dev/null and b/.tmp-check-windows/x86_64-pc-windows-msvc/debug/deps/libpin_utils-8c959579c72b059b.rmeta differ diff --git a/.tmp-check-windows/x86_64-pc-windows-msvc/debug/deps/libpowerfmt-4add946197a93d53.rmeta b/.tmp-check-windows/x86_64-pc-windows-msvc/debug/deps/libpowerfmt-4add946197a93d53.rmeta new file mode 100644 index 000000000..f0b55e6a0 Binary files /dev/null and b/.tmp-check-windows/x86_64-pc-windows-msvc/debug/deps/libpowerfmt-4add946197a93d53.rmeta differ diff --git a/.tmp-check-windows/x86_64-pc-windows-msvc/debug/deps/librand_core-d8053f433e650b94.rmeta b/.tmp-check-windows/x86_64-pc-windows-msvc/debug/deps/librand_core-d8053f433e650b94.rmeta new file mode 100644 index 000000000..12cfc5e9e Binary files /dev/null and b/.tmp-check-windows/x86_64-pc-windows-msvc/debug/deps/librand_core-d8053f433e650b94.rmeta differ diff --git a/.tmp-check-windows/x86_64-pc-windows-msvc/debug/deps/libryu-c06dec971409c7ba.rmeta b/.tmp-check-windows/x86_64-pc-windows-msvc/debug/deps/libryu-c06dec971409c7ba.rmeta new file mode 100644 index 000000000..8dc1377dc Binary files /dev/null and b/.tmp-check-windows/x86_64-pc-windows-msvc/debug/deps/libryu-c06dec971409c7ba.rmeta differ diff --git a/.tmp-check-windows/x86_64-pc-windows-msvc/debug/deps/libscopeguard-8eafdb6a52f0b313.rmeta b/.tmp-check-windows/x86_64-pc-windows-msvc/debug/deps/libscopeguard-8eafdb6a52f0b313.rmeta new file mode 100644 index 000000000..ae070ea65 Binary files /dev/null and b/.tmp-check-windows/x86_64-pc-windows-msvc/debug/deps/libscopeguard-8eafdb6a52f0b313.rmeta differ diff --git a/.tmp-check-windows/x86_64-pc-windows-msvc/debug/deps/libserde_core-68d7e1636b061fe9.rmeta b/.tmp-check-windows/x86_64-pc-windows-msvc/debug/deps/libserde_core-68d7e1636b061fe9.rmeta new file mode 100644 index 000000000..14b2e3f94 Binary files /dev/null and b/.tmp-check-windows/x86_64-pc-windows-msvc/debug/deps/libserde_core-68d7e1636b061fe9.rmeta differ diff --git a/.tmp-check-windows/x86_64-pc-windows-msvc/debug/deps/libserde_json-003fd9a9d6f94e41.rmeta b/.tmp-check-windows/x86_64-pc-windows-msvc/debug/deps/libserde_json-003fd9a9d6f94e41.rmeta new file mode 100644 index 000000000..1ff11e4cb Binary files /dev/null and b/.tmp-check-windows/x86_64-pc-windows-msvc/debug/deps/libserde_json-003fd9a9d6f94e41.rmeta differ diff --git a/.tmp-check-windows/x86_64-pc-windows-msvc/debug/deps/libslab-f5b6997ae8b4f72e.rmeta b/.tmp-check-windows/x86_64-pc-windows-msvc/debug/deps/libslab-f5b6997ae8b4f72e.rmeta new file mode 100644 index 000000000..417154c68 Binary files /dev/null and b/.tmp-check-windows/x86_64-pc-windows-msvc/debug/deps/libslab-f5b6997ae8b4f72e.rmeta differ diff --git a/.tmp-check-windows/x86_64-pc-windows-msvc/debug/deps/libsmallvec-7621bb04b0d0ac7f.rmeta b/.tmp-check-windows/x86_64-pc-windows-msvc/debug/deps/libsmallvec-7621bb04b0d0ac7f.rmeta new file mode 100644 index 000000000..8a7b50068 Binary files /dev/null and b/.tmp-check-windows/x86_64-pc-windows-msvc/debug/deps/libsmallvec-7621bb04b0d0ac7f.rmeta differ diff --git a/.tmp-check-windows/x86_64-pc-windows-msvc/debug/deps/libsocket2-ce777d24433f6fb0.rmeta b/.tmp-check-windows/x86_64-pc-windows-msvc/debug/deps/libsocket2-ce777d24433f6fb0.rmeta new file mode 100644 index 000000000..3e93b8295 Binary files /dev/null and b/.tmp-check-windows/x86_64-pc-windows-msvc/debug/deps/libsocket2-ce777d24433f6fb0.rmeta differ diff --git a/.tmp-check-windows/x86_64-pc-windows-msvc/debug/deps/libstable_deref_trait-3c5b002665830fa0.rmeta b/.tmp-check-windows/x86_64-pc-windows-msvc/debug/deps/libstable_deref_trait-3c5b002665830fa0.rmeta new file mode 100644 index 000000000..281529bbc Binary files /dev/null and b/.tmp-check-windows/x86_64-pc-windows-msvc/debug/deps/libstable_deref_trait-3c5b002665830fa0.rmeta differ diff --git a/.tmp-check-windows/x86_64-pc-windows-msvc/debug/deps/libsubtle-93ef9b8880b3a020.rmeta b/.tmp-check-windows/x86_64-pc-windows-msvc/debug/deps/libsubtle-93ef9b8880b3a020.rmeta new file mode 100644 index 000000000..6620e800d Binary files /dev/null and b/.tmp-check-windows/x86_64-pc-windows-msvc/debug/deps/libsubtle-93ef9b8880b3a020.rmeta differ diff --git a/.tmp-check-windows/x86_64-pc-windows-msvc/debug/deps/libtime-0e83d7eadd1b29f8.rmeta b/.tmp-check-windows/x86_64-pc-windows-msvc/debug/deps/libtime-0e83d7eadd1b29f8.rmeta new file mode 100644 index 000000000..f6b0d2a70 Binary files /dev/null and b/.tmp-check-windows/x86_64-pc-windows-msvc/debug/deps/libtime-0e83d7eadd1b29f8.rmeta differ diff --git a/.tmp-check-windows/x86_64-pc-windows-msvc/debug/deps/libtime_core-17b148b2e499200f.rmeta b/.tmp-check-windows/x86_64-pc-windows-msvc/debug/deps/libtime_core-17b148b2e499200f.rmeta new file mode 100644 index 000000000..2783559d2 Binary files /dev/null and b/.tmp-check-windows/x86_64-pc-windows-msvc/debug/deps/libtime_core-17b148b2e499200f.rmeta differ diff --git a/.tmp-check-windows/x86_64-pc-windows-msvc/debug/deps/libtower_service-24c5a499258b1f52.rmeta b/.tmp-check-windows/x86_64-pc-windows-msvc/debug/deps/libtower_service-24c5a499258b1f52.rmeta new file mode 100644 index 000000000..32f4bc886 Binary files /dev/null and b/.tmp-check-windows/x86_64-pc-windows-msvc/debug/deps/libtower_service-24c5a499258b1f52.rmeta differ diff --git a/.tmp-check-windows/x86_64-pc-windows-msvc/debug/deps/libtracing_core-f90da36bb76f6319.rmeta b/.tmp-check-windows/x86_64-pc-windows-msvc/debug/deps/libtracing_core-f90da36bb76f6319.rmeta new file mode 100644 index 000000000..ceffecd63 Binary files /dev/null and b/.tmp-check-windows/x86_64-pc-windows-msvc/debug/deps/libtracing_core-f90da36bb76f6319.rmeta differ diff --git a/.tmp-check-windows/x86_64-pc-windows-msvc/debug/deps/libtypenum-a0883a424d17bffd.rmeta b/.tmp-check-windows/x86_64-pc-windows-msvc/debug/deps/libtypenum-a0883a424d17bffd.rmeta new file mode 100644 index 000000000..a4333ff5e Binary files /dev/null and b/.tmp-check-windows/x86_64-pc-windows-msvc/debug/deps/libtypenum-a0883a424d17bffd.rmeta differ diff --git a/.tmp-check-windows/x86_64-pc-windows-msvc/debug/deps/libuntrusted-e2c8cbe29abdff55.rmeta b/.tmp-check-windows/x86_64-pc-windows-msvc/debug/deps/libuntrusted-e2c8cbe29abdff55.rmeta new file mode 100644 index 000000000..ba8c0dba3 Binary files /dev/null and b/.tmp-check-windows/x86_64-pc-windows-msvc/debug/deps/libuntrusted-e2c8cbe29abdff55.rmeta differ diff --git a/.tmp-check-windows/x86_64-pc-windows-msvc/debug/deps/libutf16_iter-411badac6ceaeb85.rmeta b/.tmp-check-windows/x86_64-pc-windows-msvc/debug/deps/libutf16_iter-411badac6ceaeb85.rmeta new file mode 100644 index 000000000..5a2000597 Binary files /dev/null and b/.tmp-check-windows/x86_64-pc-windows-msvc/debug/deps/libutf16_iter-411badac6ceaeb85.rmeta differ diff --git a/.tmp-check-windows/x86_64-pc-windows-msvc/debug/deps/libutf8_iter-52b07de95ec095ba.rmeta b/.tmp-check-windows/x86_64-pc-windows-msvc/debug/deps/libutf8_iter-52b07de95ec095ba.rmeta new file mode 100644 index 000000000..f45006fae Binary files /dev/null and b/.tmp-check-windows/x86_64-pc-windows-msvc/debug/deps/libutf8_iter-52b07de95ec095ba.rmeta differ diff --git a/.tmp-check-windows/x86_64-pc-windows-msvc/debug/deps/libwindows_link-a27f7050f0a20c5f.rmeta b/.tmp-check-windows/x86_64-pc-windows-msvc/debug/deps/libwindows_link-a27f7050f0a20c5f.rmeta new file mode 100644 index 000000000..d1a6135a7 Binary files /dev/null and b/.tmp-check-windows/x86_64-pc-windows-msvc/debug/deps/libwindows_link-a27f7050f0a20c5f.rmeta differ diff --git a/.tmp-check-windows/x86_64-pc-windows-msvc/debug/deps/libwindows_link-f6430f731f37844c.rmeta b/.tmp-check-windows/x86_64-pc-windows-msvc/debug/deps/libwindows_link-f6430f731f37844c.rmeta new file mode 100644 index 000000000..46b68e4b5 Binary files /dev/null and b/.tmp-check-windows/x86_64-pc-windows-msvc/debug/deps/libwindows_link-f6430f731f37844c.rmeta differ diff --git a/.tmp-check-windows/x86_64-pc-windows-msvc/debug/deps/libwindows_result-21a720bcba341419.rmeta b/.tmp-check-windows/x86_64-pc-windows-msvc/debug/deps/libwindows_result-21a720bcba341419.rmeta new file mode 100644 index 000000000..51854a7dd Binary files /dev/null and b/.tmp-check-windows/x86_64-pc-windows-msvc/debug/deps/libwindows_result-21a720bcba341419.rmeta differ diff --git a/.tmp-check-windows/x86_64-pc-windows-msvc/debug/deps/libwindows_strings-48f931985cbdbaeb.rmeta b/.tmp-check-windows/x86_64-pc-windows-msvc/debug/deps/libwindows_strings-48f931985cbdbaeb.rmeta new file mode 100644 index 000000000..f2350bce1 Binary files /dev/null and b/.tmp-check-windows/x86_64-pc-windows-msvc/debug/deps/libwindows_strings-48f931985cbdbaeb.rmeta differ diff --git a/.tmp-check-windows/x86_64-pc-windows-msvc/debug/deps/libwindows_sys-350b46e9a7ff3f21.rmeta b/.tmp-check-windows/x86_64-pc-windows-msvc/debug/deps/libwindows_sys-350b46e9a7ff3f21.rmeta new file mode 100644 index 000000000..29e311a47 Binary files /dev/null and b/.tmp-check-windows/x86_64-pc-windows-msvc/debug/deps/libwindows_sys-350b46e9a7ff3f21.rmeta differ diff --git a/.tmp-check-windows/x86_64-pc-windows-msvc/debug/deps/libwindows_sys-e1498cb96446f0e4.rmeta b/.tmp-check-windows/x86_64-pc-windows-msvc/debug/deps/libwindows_sys-e1498cb96446f0e4.rmeta new file mode 100644 index 000000000..1d50663fd Binary files /dev/null and b/.tmp-check-windows/x86_64-pc-windows-msvc/debug/deps/libwindows_sys-e1498cb96446f0e4.rmeta differ diff --git a/.tmp-check-windows/x86_64-pc-windows-msvc/debug/deps/libwindows_targets-599f14682482add4.rmeta b/.tmp-check-windows/x86_64-pc-windows-msvc/debug/deps/libwindows_targets-599f14682482add4.rmeta new file mode 100644 index 000000000..1d01d3bd6 Binary files /dev/null and b/.tmp-check-windows/x86_64-pc-windows-msvc/debug/deps/libwindows_targets-599f14682482add4.rmeta differ diff --git a/.tmp-check-windows/x86_64-pc-windows-msvc/debug/deps/libwindows_targets-8045cca9d729b55e.rmeta b/.tmp-check-windows/x86_64-pc-windows-msvc/debug/deps/libwindows_targets-8045cca9d729b55e.rmeta new file mode 100644 index 000000000..6ffa4539f Binary files /dev/null and b/.tmp-check-windows/x86_64-pc-windows-msvc/debug/deps/libwindows_targets-8045cca9d729b55e.rmeta differ diff --git a/.tmp-check-windows/x86_64-pc-windows-msvc/debug/deps/libwindows_x86_64_msvc-b8d0ed6d1d2d1861.rmeta b/.tmp-check-windows/x86_64-pc-windows-msvc/debug/deps/libwindows_x86_64_msvc-b8d0ed6d1d2d1861.rmeta new file mode 100644 index 000000000..ef40a5e58 Binary files /dev/null and b/.tmp-check-windows/x86_64-pc-windows-msvc/debug/deps/libwindows_x86_64_msvc-b8d0ed6d1d2d1861.rmeta differ diff --git a/.tmp-check-windows/x86_64-pc-windows-msvc/debug/deps/libwindows_x86_64_msvc-f72ea594af6116cf.rmeta b/.tmp-check-windows/x86_64-pc-windows-msvc/debug/deps/libwindows_x86_64_msvc-f72ea594af6116cf.rmeta new file mode 100644 index 000000000..d58379460 Binary files /dev/null and b/.tmp-check-windows/x86_64-pc-windows-msvc/debug/deps/libwindows_x86_64_msvc-f72ea594af6116cf.rmeta differ diff --git a/.tmp-check-windows/x86_64-pc-windows-msvc/debug/deps/libwrite16-61eb410e7bee75d5.rmeta b/.tmp-check-windows/x86_64-pc-windows-msvc/debug/deps/libwrite16-61eb410e7bee75d5.rmeta new file mode 100644 index 000000000..b6f70210a Binary files /dev/null and b/.tmp-check-windows/x86_64-pc-windows-msvc/debug/deps/libwrite16-61eb410e7bee75d5.rmeta differ diff --git a/.tmp-check-windows/x86_64-pc-windows-msvc/debug/deps/libwriteable-e9e67b9743be3a74.rmeta b/.tmp-check-windows/x86_64-pc-windows-msvc/debug/deps/libwriteable-e9e67b9743be3a74.rmeta new file mode 100644 index 000000000..e471c56da Binary files /dev/null and b/.tmp-check-windows/x86_64-pc-windows-msvc/debug/deps/libwriteable-e9e67b9743be3a74.rmeta differ diff --git a/.tmp-check-windows/x86_64-pc-windows-msvc/debug/deps/libzerocopy-14fc192b4b0dd1d9.rmeta b/.tmp-check-windows/x86_64-pc-windows-msvc/debug/deps/libzerocopy-14fc192b4b0dd1d9.rmeta new file mode 100644 index 000000000..40c9219ea Binary files /dev/null and b/.tmp-check-windows/x86_64-pc-windows-msvc/debug/deps/libzerocopy-14fc192b4b0dd1d9.rmeta differ diff --git a/.tmp-check-windows/x86_64-pc-windows-msvc/debug/deps/libzeroize-f5ce34c3eee9e52c.rmeta b/.tmp-check-windows/x86_64-pc-windows-msvc/debug/deps/libzeroize-f5ce34c3eee9e52c.rmeta new file mode 100644 index 000000000..4b2b97e50 Binary files /dev/null and b/.tmp-check-windows/x86_64-pc-windows-msvc/debug/deps/libzeroize-f5ce34c3eee9e52c.rmeta differ diff --git a/.tmp-check-windows/x86_64-pc-windows-msvc/debug/deps/libzmij-c5fdde5403450856.rmeta b/.tmp-check-windows/x86_64-pc-windows-msvc/debug/deps/libzmij-c5fdde5403450856.rmeta new file mode 100644 index 000000000..4f2497ecc Binary files /dev/null and b/.tmp-check-windows/x86_64-pc-windows-msvc/debug/deps/libzmij-c5fdde5403450856.rmeta differ diff --git a/.tmp-check-windows/x86_64-pc-windows-msvc/debug/deps/litemap-14728d218a3086bc.d b/.tmp-check-windows/x86_64-pc-windows-msvc/debug/deps/litemap-14728d218a3086bc.d new file mode 100644 index 000000000..cda182385 --- /dev/null +++ b/.tmp-check-windows/x86_64-pc-windows-msvc/debug/deps/litemap-14728d218a3086bc.d @@ -0,0 +1,9 @@ +/Users/coso/Documents/dev/ai/aiclientproxy/lime/.tmp-check-windows/x86_64-pc-windows-msvc/debug/deps/litemap-14728d218a3086bc.d: /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/litemap-0.8.1/src/lib.rs /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/litemap-0.8.1/src/map.rs /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/litemap-0.8.1/src/store/mod.rs /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/litemap-0.8.1/src/store/slice_impl.rs /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/litemap-0.8.1/src/store/vec_impl.rs + +/Users/coso/Documents/dev/ai/aiclientproxy/lime/.tmp-check-windows/x86_64-pc-windows-msvc/debug/deps/liblitemap-14728d218a3086bc.rmeta: /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/litemap-0.8.1/src/lib.rs /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/litemap-0.8.1/src/map.rs /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/litemap-0.8.1/src/store/mod.rs /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/litemap-0.8.1/src/store/slice_impl.rs /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/litemap-0.8.1/src/store/vec_impl.rs + +/Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/litemap-0.8.1/src/lib.rs: +/Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/litemap-0.8.1/src/map.rs: +/Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/litemap-0.8.1/src/store/mod.rs: +/Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/litemap-0.8.1/src/store/slice_impl.rs: +/Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/litemap-0.8.1/src/store/vec_impl.rs: diff --git a/.tmp-check-windows/x86_64-pc-windows-msvc/debug/deps/lock_api-1c00568f97fee2bd.d b/.tmp-check-windows/x86_64-pc-windows-msvc/debug/deps/lock_api-1c00568f97fee2bd.d new file mode 100644 index 000000000..5fed39920 --- /dev/null +++ b/.tmp-check-windows/x86_64-pc-windows-msvc/debug/deps/lock_api-1c00568f97fee2bd.d @@ -0,0 +1,8 @@ +/Users/coso/Documents/dev/ai/aiclientproxy/lime/.tmp-check-windows/x86_64-pc-windows-msvc/debug/deps/lock_api-1c00568f97fee2bd.d: /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/lock_api-0.4.14/src/lib.rs /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/lock_api-0.4.14/src/mutex.rs /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/lock_api-0.4.14/src/remutex.rs /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/lock_api-0.4.14/src/rwlock.rs + +/Users/coso/Documents/dev/ai/aiclientproxy/lime/.tmp-check-windows/x86_64-pc-windows-msvc/debug/deps/liblock_api-1c00568f97fee2bd.rmeta: /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/lock_api-0.4.14/src/lib.rs /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/lock_api-0.4.14/src/mutex.rs /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/lock_api-0.4.14/src/remutex.rs /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/lock_api-0.4.14/src/rwlock.rs + +/Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/lock_api-0.4.14/src/lib.rs: +/Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/lock_api-0.4.14/src/mutex.rs: +/Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/lock_api-0.4.14/src/remutex.rs: +/Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/lock_api-0.4.14/src/rwlock.rs: diff --git a/.tmp-check-windows/x86_64-pc-windows-msvc/debug/deps/log-a7e3cdbdd3c1061c.d b/.tmp-check-windows/x86_64-pc-windows-msvc/debug/deps/log-a7e3cdbdd3c1061c.d new file mode 100644 index 000000000..cbc4cba30 --- /dev/null +++ b/.tmp-check-windows/x86_64-pc-windows-msvc/debug/deps/log-a7e3cdbdd3c1061c.d @@ -0,0 +1,8 @@ +/Users/coso/Documents/dev/ai/aiclientproxy/lime/.tmp-check-windows/x86_64-pc-windows-msvc/debug/deps/log-a7e3cdbdd3c1061c.d: /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/log-0.4.29/src/lib.rs /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/log-0.4.29/src/macros.rs /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/log-0.4.29/src/serde.rs /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/log-0.4.29/src/__private_api.rs + +/Users/coso/Documents/dev/ai/aiclientproxy/lime/.tmp-check-windows/x86_64-pc-windows-msvc/debug/deps/liblog-a7e3cdbdd3c1061c.rmeta: /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/log-0.4.29/src/lib.rs /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/log-0.4.29/src/macros.rs /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/log-0.4.29/src/serde.rs /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/log-0.4.29/src/__private_api.rs + +/Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/log-0.4.29/src/lib.rs: +/Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/log-0.4.29/src/macros.rs: +/Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/log-0.4.29/src/serde.rs: +/Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/log-0.4.29/src/__private_api.rs: diff --git a/.tmp-check-windows/x86_64-pc-windows-msvc/debug/deps/memchr-1b58cabf284e0709.d b/.tmp-check-windows/x86_64-pc-windows-msvc/debug/deps/memchr-1b58cabf284e0709.d new file mode 100644 index 000000000..0d27ca5ac --- /dev/null +++ b/.tmp-check-windows/x86_64-pc-windows-msvc/debug/deps/memchr-1b58cabf284e0709.d @@ -0,0 +1,31 @@ +/Users/coso/Documents/dev/ai/aiclientproxy/lime/.tmp-check-windows/x86_64-pc-windows-msvc/debug/deps/memchr-1b58cabf284e0709.d: /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/memchr-2.8.0/src/lib.rs /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/memchr-2.8.0/src/macros.rs /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/memchr-2.8.0/src/arch/mod.rs /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/memchr-2.8.0/src/arch/all/mod.rs /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/memchr-2.8.0/src/arch/all/memchr.rs /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/memchr-2.8.0/src/arch/all/packedpair/mod.rs /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/memchr-2.8.0/src/arch/all/packedpair/default_rank.rs /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/memchr-2.8.0/src/arch/all/rabinkarp.rs /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/memchr-2.8.0/src/arch/all/shiftor.rs /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/memchr-2.8.0/src/arch/all/twoway.rs /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/memchr-2.8.0/src/arch/generic/mod.rs /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/memchr-2.8.0/src/arch/generic/memchr.rs /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/memchr-2.8.0/src/arch/generic/packedpair.rs /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/memchr-2.8.0/src/arch/x86_64/mod.rs /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/memchr-2.8.0/src/arch/x86_64/avx2/mod.rs /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/memchr-2.8.0/src/arch/x86_64/avx2/memchr.rs /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/memchr-2.8.0/src/arch/x86_64/avx2/packedpair.rs /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/memchr-2.8.0/src/arch/x86_64/sse2/mod.rs /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/memchr-2.8.0/src/arch/x86_64/sse2/memchr.rs /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/memchr-2.8.0/src/arch/x86_64/sse2/packedpair.rs /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/memchr-2.8.0/src/arch/x86_64/memchr.rs /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/memchr-2.8.0/src/cow.rs /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/memchr-2.8.0/src/ext.rs /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/memchr-2.8.0/src/memchr.rs /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/memchr-2.8.0/src/memmem/mod.rs /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/memchr-2.8.0/src/memmem/searcher.rs /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/memchr-2.8.0/src/vector.rs + +/Users/coso/Documents/dev/ai/aiclientproxy/lime/.tmp-check-windows/x86_64-pc-windows-msvc/debug/deps/libmemchr-1b58cabf284e0709.rmeta: /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/memchr-2.8.0/src/lib.rs /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/memchr-2.8.0/src/macros.rs /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/memchr-2.8.0/src/arch/mod.rs /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/memchr-2.8.0/src/arch/all/mod.rs /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/memchr-2.8.0/src/arch/all/memchr.rs /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/memchr-2.8.0/src/arch/all/packedpair/mod.rs /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/memchr-2.8.0/src/arch/all/packedpair/default_rank.rs /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/memchr-2.8.0/src/arch/all/rabinkarp.rs /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/memchr-2.8.0/src/arch/all/shiftor.rs /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/memchr-2.8.0/src/arch/all/twoway.rs /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/memchr-2.8.0/src/arch/generic/mod.rs /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/memchr-2.8.0/src/arch/generic/memchr.rs /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/memchr-2.8.0/src/arch/generic/packedpair.rs /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/memchr-2.8.0/src/arch/x86_64/mod.rs /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/memchr-2.8.0/src/arch/x86_64/avx2/mod.rs /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/memchr-2.8.0/src/arch/x86_64/avx2/memchr.rs /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/memchr-2.8.0/src/arch/x86_64/avx2/packedpair.rs /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/memchr-2.8.0/src/arch/x86_64/sse2/mod.rs /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/memchr-2.8.0/src/arch/x86_64/sse2/memchr.rs /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/memchr-2.8.0/src/arch/x86_64/sse2/packedpair.rs /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/memchr-2.8.0/src/arch/x86_64/memchr.rs /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/memchr-2.8.0/src/cow.rs /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/memchr-2.8.0/src/ext.rs /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/memchr-2.8.0/src/memchr.rs /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/memchr-2.8.0/src/memmem/mod.rs /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/memchr-2.8.0/src/memmem/searcher.rs /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/memchr-2.8.0/src/vector.rs + +/Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/memchr-2.8.0/src/lib.rs: +/Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/memchr-2.8.0/src/macros.rs: +/Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/memchr-2.8.0/src/arch/mod.rs: +/Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/memchr-2.8.0/src/arch/all/mod.rs: +/Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/memchr-2.8.0/src/arch/all/memchr.rs: +/Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/memchr-2.8.0/src/arch/all/packedpair/mod.rs: +/Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/memchr-2.8.0/src/arch/all/packedpair/default_rank.rs: +/Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/memchr-2.8.0/src/arch/all/rabinkarp.rs: +/Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/memchr-2.8.0/src/arch/all/shiftor.rs: +/Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/memchr-2.8.0/src/arch/all/twoway.rs: +/Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/memchr-2.8.0/src/arch/generic/mod.rs: +/Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/memchr-2.8.0/src/arch/generic/memchr.rs: +/Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/memchr-2.8.0/src/arch/generic/packedpair.rs: +/Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/memchr-2.8.0/src/arch/x86_64/mod.rs: +/Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/memchr-2.8.0/src/arch/x86_64/avx2/mod.rs: +/Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/memchr-2.8.0/src/arch/x86_64/avx2/memchr.rs: +/Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/memchr-2.8.0/src/arch/x86_64/avx2/packedpair.rs: +/Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/memchr-2.8.0/src/arch/x86_64/sse2/mod.rs: +/Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/memchr-2.8.0/src/arch/x86_64/sse2/memchr.rs: +/Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/memchr-2.8.0/src/arch/x86_64/sse2/packedpair.rs: +/Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/memchr-2.8.0/src/arch/x86_64/memchr.rs: +/Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/memchr-2.8.0/src/cow.rs: +/Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/memchr-2.8.0/src/ext.rs: +/Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/memchr-2.8.0/src/memchr.rs: +/Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/memchr-2.8.0/src/memmem/mod.rs: +/Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/memchr-2.8.0/src/memmem/searcher.rs: +/Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/memchr-2.8.0/src/vector.rs: diff --git a/.tmp-check-windows/x86_64-pc-windows-msvc/debug/deps/num_conv-72f863fdde84cf03.d b/.tmp-check-windows/x86_64-pc-windows-msvc/debug/deps/num_conv-72f863fdde84cf03.d new file mode 100644 index 000000000..47124ab40 --- /dev/null +++ b/.tmp-check-windows/x86_64-pc-windows-msvc/debug/deps/num_conv-72f863fdde84cf03.d @@ -0,0 +1,5 @@ +/Users/coso/Documents/dev/ai/aiclientproxy/lime/.tmp-check-windows/x86_64-pc-windows-msvc/debug/deps/num_conv-72f863fdde84cf03.d: /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/num-conv-0.2.0/src/lib.rs + +/Users/coso/Documents/dev/ai/aiclientproxy/lime/.tmp-check-windows/x86_64-pc-windows-msvc/debug/deps/libnum_conv-72f863fdde84cf03.rmeta: /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/num-conv-0.2.0/src/lib.rs + +/Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/num-conv-0.2.0/src/lib.rs: diff --git a/.tmp-check-windows/x86_64-pc-windows-msvc/debug/deps/num_traits-eecd31492af8a27c.d b/.tmp-check-windows/x86_64-pc-windows-msvc/debug/deps/num_traits-eecd31492af8a27c.d new file mode 100644 index 000000000..18ae2a6d1 --- /dev/null +++ b/.tmp-check-windows/x86_64-pc-windows-msvc/debug/deps/num_traits-eecd31492af8a27c.d @@ -0,0 +1,23 @@ +/Users/coso/Documents/dev/ai/aiclientproxy/lime/.tmp-check-windows/x86_64-pc-windows-msvc/debug/deps/num_traits-eecd31492af8a27c.d: /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/num-traits-0.2.19/src/lib.rs /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/num-traits-0.2.19/src/macros.rs /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/num-traits-0.2.19/src/bounds.rs /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/num-traits-0.2.19/src/cast.rs /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/num-traits-0.2.19/src/float.rs /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/num-traits-0.2.19/src/identities.rs /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/num-traits-0.2.19/src/int.rs /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/num-traits-0.2.19/src/ops/mod.rs /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/num-traits-0.2.19/src/ops/bytes.rs /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/num-traits-0.2.19/src/ops/checked.rs /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/num-traits-0.2.19/src/ops/euclid.rs /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/num-traits-0.2.19/src/ops/inv.rs /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/num-traits-0.2.19/src/ops/mul_add.rs /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/num-traits-0.2.19/src/ops/overflowing.rs /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/num-traits-0.2.19/src/ops/saturating.rs /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/num-traits-0.2.19/src/ops/wrapping.rs /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/num-traits-0.2.19/src/pow.rs /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/num-traits-0.2.19/src/real.rs /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/num-traits-0.2.19/src/sign.rs + +/Users/coso/Documents/dev/ai/aiclientproxy/lime/.tmp-check-windows/x86_64-pc-windows-msvc/debug/deps/libnum_traits-eecd31492af8a27c.rmeta: /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/num-traits-0.2.19/src/lib.rs /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/num-traits-0.2.19/src/macros.rs /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/num-traits-0.2.19/src/bounds.rs /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/num-traits-0.2.19/src/cast.rs /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/num-traits-0.2.19/src/float.rs /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/num-traits-0.2.19/src/identities.rs /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/num-traits-0.2.19/src/int.rs /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/num-traits-0.2.19/src/ops/mod.rs /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/num-traits-0.2.19/src/ops/bytes.rs /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/num-traits-0.2.19/src/ops/checked.rs /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/num-traits-0.2.19/src/ops/euclid.rs /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/num-traits-0.2.19/src/ops/inv.rs /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/num-traits-0.2.19/src/ops/mul_add.rs /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/num-traits-0.2.19/src/ops/overflowing.rs /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/num-traits-0.2.19/src/ops/saturating.rs /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/num-traits-0.2.19/src/ops/wrapping.rs /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/num-traits-0.2.19/src/pow.rs /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/num-traits-0.2.19/src/real.rs /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/num-traits-0.2.19/src/sign.rs + +/Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/num-traits-0.2.19/src/lib.rs: +/Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/num-traits-0.2.19/src/macros.rs: +/Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/num-traits-0.2.19/src/bounds.rs: +/Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/num-traits-0.2.19/src/cast.rs: +/Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/num-traits-0.2.19/src/float.rs: +/Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/num-traits-0.2.19/src/identities.rs: +/Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/num-traits-0.2.19/src/int.rs: +/Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/num-traits-0.2.19/src/ops/mod.rs: +/Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/num-traits-0.2.19/src/ops/bytes.rs: +/Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/num-traits-0.2.19/src/ops/checked.rs: +/Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/num-traits-0.2.19/src/ops/euclid.rs: +/Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/num-traits-0.2.19/src/ops/inv.rs: +/Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/num-traits-0.2.19/src/ops/mul_add.rs: +/Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/num-traits-0.2.19/src/ops/overflowing.rs: +/Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/num-traits-0.2.19/src/ops/saturating.rs: +/Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/num-traits-0.2.19/src/ops/wrapping.rs: +/Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/num-traits-0.2.19/src/pow.rs: +/Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/num-traits-0.2.19/src/real.rs: +/Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/num-traits-0.2.19/src/sign.rs: diff --git a/.tmp-check-windows/x86_64-pc-windows-msvc/debug/deps/once_cell-23f8f2fae52687b1.d b/.tmp-check-windows/x86_64-pc-windows-msvc/debug/deps/once_cell-23f8f2fae52687b1.d new file mode 100644 index 000000000..66432c4ad --- /dev/null +++ b/.tmp-check-windows/x86_64-pc-windows-msvc/debug/deps/once_cell-23f8f2fae52687b1.d @@ -0,0 +1,7 @@ +/Users/coso/Documents/dev/ai/aiclientproxy/lime/.tmp-check-windows/x86_64-pc-windows-msvc/debug/deps/once_cell-23f8f2fae52687b1.d: /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/once_cell-1.21.3/src/lib.rs /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/once_cell-1.21.3/src/imp_std.rs /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/once_cell-1.21.3/src/race.rs + +/Users/coso/Documents/dev/ai/aiclientproxy/lime/.tmp-check-windows/x86_64-pc-windows-msvc/debug/deps/libonce_cell-23f8f2fae52687b1.rmeta: /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/once_cell-1.21.3/src/lib.rs /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/once_cell-1.21.3/src/imp_std.rs /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/once_cell-1.21.3/src/race.rs + +/Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/once_cell-1.21.3/src/lib.rs: +/Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/once_cell-1.21.3/src/imp_std.rs: +/Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/once_cell-1.21.3/src/race.rs: diff --git a/.tmp-check-windows/x86_64-pc-windows-msvc/debug/deps/parking_lot-ba860a093d33ef7b.d b/.tmp-check-windows/x86_64-pc-windows-msvc/debug/deps/parking_lot-ba860a093d33ef7b.d new file mode 100644 index 000000000..278bef0d6 --- /dev/null +++ b/.tmp-check-windows/x86_64-pc-windows-msvc/debug/deps/parking_lot-ba860a093d33ef7b.d @@ -0,0 +1,17 @@ +/Users/coso/Documents/dev/ai/aiclientproxy/lime/.tmp-check-windows/x86_64-pc-windows-msvc/debug/deps/parking_lot-ba860a093d33ef7b.d: /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/parking_lot-0.12.5/src/lib.rs /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/parking_lot-0.12.5/src/condvar.rs /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/parking_lot-0.12.5/src/elision.rs /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/parking_lot-0.12.5/src/fair_mutex.rs /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/parking_lot-0.12.5/src/mutex.rs /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/parking_lot-0.12.5/src/once.rs /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/parking_lot-0.12.5/src/raw_fair_mutex.rs /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/parking_lot-0.12.5/src/raw_mutex.rs /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/parking_lot-0.12.5/src/raw_rwlock.rs /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/parking_lot-0.12.5/src/remutex.rs /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/parking_lot-0.12.5/src/rwlock.rs /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/parking_lot-0.12.5/src/util.rs /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/parking_lot-0.12.5/src/deadlock.rs + +/Users/coso/Documents/dev/ai/aiclientproxy/lime/.tmp-check-windows/x86_64-pc-windows-msvc/debug/deps/libparking_lot-ba860a093d33ef7b.rmeta: /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/parking_lot-0.12.5/src/lib.rs /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/parking_lot-0.12.5/src/condvar.rs /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/parking_lot-0.12.5/src/elision.rs /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/parking_lot-0.12.5/src/fair_mutex.rs /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/parking_lot-0.12.5/src/mutex.rs /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/parking_lot-0.12.5/src/once.rs /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/parking_lot-0.12.5/src/raw_fair_mutex.rs /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/parking_lot-0.12.5/src/raw_mutex.rs /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/parking_lot-0.12.5/src/raw_rwlock.rs /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/parking_lot-0.12.5/src/remutex.rs /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/parking_lot-0.12.5/src/rwlock.rs /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/parking_lot-0.12.5/src/util.rs /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/parking_lot-0.12.5/src/deadlock.rs + +/Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/parking_lot-0.12.5/src/lib.rs: +/Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/parking_lot-0.12.5/src/condvar.rs: +/Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/parking_lot-0.12.5/src/elision.rs: +/Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/parking_lot-0.12.5/src/fair_mutex.rs: +/Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/parking_lot-0.12.5/src/mutex.rs: +/Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/parking_lot-0.12.5/src/once.rs: +/Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/parking_lot-0.12.5/src/raw_fair_mutex.rs: +/Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/parking_lot-0.12.5/src/raw_mutex.rs: +/Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/parking_lot-0.12.5/src/raw_rwlock.rs: +/Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/parking_lot-0.12.5/src/remutex.rs: +/Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/parking_lot-0.12.5/src/rwlock.rs: +/Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/parking_lot-0.12.5/src/util.rs: +/Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/parking_lot-0.12.5/src/deadlock.rs: diff --git a/.tmp-check-windows/x86_64-pc-windows-msvc/debug/deps/parking_lot_core-1515055616085f74.d b/.tmp-check-windows/x86_64-pc-windows-msvc/debug/deps/parking_lot_core-1515055616085f74.d new file mode 100644 index 000000000..d036824c8 --- /dev/null +++ b/.tmp-check-windows/x86_64-pc-windows-msvc/debug/deps/parking_lot_core-1515055616085f74.d @@ -0,0 +1,14 @@ +/Users/coso/Documents/dev/ai/aiclientproxy/lime/.tmp-check-windows/x86_64-pc-windows-msvc/debug/deps/parking_lot_core-1515055616085f74.d: /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/parking_lot_core-0.9.12/src/lib.rs /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/parking_lot_core-0.9.12/src/parking_lot.rs /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/parking_lot_core-0.9.12/src/spinwait.rs /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/parking_lot_core-0.9.12/src/thread_parker/mod.rs /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/parking_lot_core-0.9.12/src/util.rs /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/parking_lot_core-0.9.12/src/word_lock.rs /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/parking_lot_core-0.9.12/src/thread_parker/windows/mod.rs /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/parking_lot_core-0.9.12/src/thread_parker/windows/bindings.rs /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/parking_lot_core-0.9.12/src/thread_parker/windows/keyed_event.rs /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/parking_lot_core-0.9.12/src/thread_parker/windows/waitaddress.rs + +/Users/coso/Documents/dev/ai/aiclientproxy/lime/.tmp-check-windows/x86_64-pc-windows-msvc/debug/deps/libparking_lot_core-1515055616085f74.rmeta: /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/parking_lot_core-0.9.12/src/lib.rs /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/parking_lot_core-0.9.12/src/parking_lot.rs /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/parking_lot_core-0.9.12/src/spinwait.rs /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/parking_lot_core-0.9.12/src/thread_parker/mod.rs /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/parking_lot_core-0.9.12/src/util.rs /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/parking_lot_core-0.9.12/src/word_lock.rs /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/parking_lot_core-0.9.12/src/thread_parker/windows/mod.rs /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/parking_lot_core-0.9.12/src/thread_parker/windows/bindings.rs /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/parking_lot_core-0.9.12/src/thread_parker/windows/keyed_event.rs /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/parking_lot_core-0.9.12/src/thread_parker/windows/waitaddress.rs + +/Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/parking_lot_core-0.9.12/src/lib.rs: +/Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/parking_lot_core-0.9.12/src/parking_lot.rs: +/Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/parking_lot_core-0.9.12/src/spinwait.rs: +/Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/parking_lot_core-0.9.12/src/thread_parker/mod.rs: +/Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/parking_lot_core-0.9.12/src/util.rs: +/Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/parking_lot_core-0.9.12/src/word_lock.rs: +/Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/parking_lot_core-0.9.12/src/thread_parker/windows/mod.rs: +/Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/parking_lot_core-0.9.12/src/thread_parker/windows/bindings.rs: +/Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/parking_lot_core-0.9.12/src/thread_parker/windows/keyed_event.rs: +/Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/parking_lot_core-0.9.12/src/thread_parker/windows/waitaddress.rs: diff --git a/.tmp-check-windows/x86_64-pc-windows-msvc/debug/deps/percent_encoding-e35dd42ea1a2b4d6.d b/.tmp-check-windows/x86_64-pc-windows-msvc/debug/deps/percent_encoding-e35dd42ea1a2b4d6.d new file mode 100644 index 000000000..7e222213d --- /dev/null +++ b/.tmp-check-windows/x86_64-pc-windows-msvc/debug/deps/percent_encoding-e35dd42ea1a2b4d6.d @@ -0,0 +1,6 @@ +/Users/coso/Documents/dev/ai/aiclientproxy/lime/.tmp-check-windows/x86_64-pc-windows-msvc/debug/deps/percent_encoding-e35dd42ea1a2b4d6.d: /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/percent-encoding-2.3.2/src/lib.rs /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/percent-encoding-2.3.2/src/ascii_set.rs + +/Users/coso/Documents/dev/ai/aiclientproxy/lime/.tmp-check-windows/x86_64-pc-windows-msvc/debug/deps/libpercent_encoding-e35dd42ea1a2b4d6.rmeta: /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/percent-encoding-2.3.2/src/lib.rs /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/percent-encoding-2.3.2/src/ascii_set.rs + +/Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/percent-encoding-2.3.2/src/lib.rs: +/Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/percent-encoding-2.3.2/src/ascii_set.rs: diff --git a/.tmp-check-windows/x86_64-pc-windows-msvc/debug/deps/pin_project_lite-fbf35e178affa77b.d b/.tmp-check-windows/x86_64-pc-windows-msvc/debug/deps/pin_project_lite-fbf35e178affa77b.d new file mode 100644 index 000000000..09a83f75c --- /dev/null +++ b/.tmp-check-windows/x86_64-pc-windows-msvc/debug/deps/pin_project_lite-fbf35e178affa77b.d @@ -0,0 +1,5 @@ +/Users/coso/Documents/dev/ai/aiclientproxy/lime/.tmp-check-windows/x86_64-pc-windows-msvc/debug/deps/pin_project_lite-fbf35e178affa77b.d: /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/pin-project-lite-0.2.16/src/lib.rs + +/Users/coso/Documents/dev/ai/aiclientproxy/lime/.tmp-check-windows/x86_64-pc-windows-msvc/debug/deps/libpin_project_lite-fbf35e178affa77b.rmeta: /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/pin-project-lite-0.2.16/src/lib.rs + +/Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/pin-project-lite-0.2.16/src/lib.rs: diff --git a/.tmp-check-windows/x86_64-pc-windows-msvc/debug/deps/pin_utils-8c959579c72b059b.d b/.tmp-check-windows/x86_64-pc-windows-msvc/debug/deps/pin_utils-8c959579c72b059b.d new file mode 100644 index 000000000..7091c11d3 --- /dev/null +++ b/.tmp-check-windows/x86_64-pc-windows-msvc/debug/deps/pin_utils-8c959579c72b059b.d @@ -0,0 +1,7 @@ +/Users/coso/Documents/dev/ai/aiclientproxy/lime/.tmp-check-windows/x86_64-pc-windows-msvc/debug/deps/pin_utils-8c959579c72b059b.d: /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/pin-utils-0.1.0/src/lib.rs /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/pin-utils-0.1.0/src/stack_pin.rs /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/pin-utils-0.1.0/src/projection.rs + +/Users/coso/Documents/dev/ai/aiclientproxy/lime/.tmp-check-windows/x86_64-pc-windows-msvc/debug/deps/libpin_utils-8c959579c72b059b.rmeta: /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/pin-utils-0.1.0/src/lib.rs /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/pin-utils-0.1.0/src/stack_pin.rs /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/pin-utils-0.1.0/src/projection.rs + +/Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/pin-utils-0.1.0/src/lib.rs: +/Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/pin-utils-0.1.0/src/stack_pin.rs: +/Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/pin-utils-0.1.0/src/projection.rs: diff --git a/.tmp-check-windows/x86_64-pc-windows-msvc/debug/deps/powerfmt-4add946197a93d53.d b/.tmp-check-windows/x86_64-pc-windows-msvc/debug/deps/powerfmt-4add946197a93d53.d new file mode 100644 index 000000000..e9fc77ffb --- /dev/null +++ b/.tmp-check-windows/x86_64-pc-windows-msvc/debug/deps/powerfmt-4add946197a93d53.d @@ -0,0 +1,9 @@ +/Users/coso/Documents/dev/ai/aiclientproxy/lime/.tmp-check-windows/x86_64-pc-windows-msvc/debug/deps/powerfmt-4add946197a93d53.d: /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/powerfmt-0.2.0/src/lib.rs /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/powerfmt-0.2.0/src/buf.rs /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/powerfmt-0.2.0/src/ext.rs /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/powerfmt-0.2.0/src/smart_display.rs /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/powerfmt-0.2.0/src/smart_display_impls.rs + +/Users/coso/Documents/dev/ai/aiclientproxy/lime/.tmp-check-windows/x86_64-pc-windows-msvc/debug/deps/libpowerfmt-4add946197a93d53.rmeta: /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/powerfmt-0.2.0/src/lib.rs /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/powerfmt-0.2.0/src/buf.rs /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/powerfmt-0.2.0/src/ext.rs /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/powerfmt-0.2.0/src/smart_display.rs /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/powerfmt-0.2.0/src/smart_display_impls.rs + +/Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/powerfmt-0.2.0/src/lib.rs: +/Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/powerfmt-0.2.0/src/buf.rs: +/Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/powerfmt-0.2.0/src/ext.rs: +/Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/powerfmt-0.2.0/src/smart_display.rs: +/Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/powerfmt-0.2.0/src/smart_display_impls.rs: diff --git a/.tmp-check-windows/x86_64-pc-windows-msvc/debug/deps/rand_core-d8053f433e650b94.d b/.tmp-check-windows/x86_64-pc-windows-msvc/debug/deps/rand_core-d8053f433e650b94.d new file mode 100644 index 000000000..29d4c76eb --- /dev/null +++ b/.tmp-check-windows/x86_64-pc-windows-msvc/debug/deps/rand_core-d8053f433e650b94.d @@ -0,0 +1,10 @@ +/Users/coso/Documents/dev/ai/aiclientproxy/lime/.tmp-check-windows/x86_64-pc-windows-msvc/debug/deps/rand_core-d8053f433e650b94.d: /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/rand_core-0.6.4/src/lib.rs /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/rand_core-0.6.4/src/block.rs /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/rand_core-0.6.4/src/error.rs /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/rand_core-0.6.4/src/impls.rs /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/rand_core-0.6.4/src/le.rs /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/rand_core-0.6.4/src/os.rs + +/Users/coso/Documents/dev/ai/aiclientproxy/lime/.tmp-check-windows/x86_64-pc-windows-msvc/debug/deps/librand_core-d8053f433e650b94.rmeta: /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/rand_core-0.6.4/src/lib.rs /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/rand_core-0.6.4/src/block.rs /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/rand_core-0.6.4/src/error.rs /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/rand_core-0.6.4/src/impls.rs /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/rand_core-0.6.4/src/le.rs /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/rand_core-0.6.4/src/os.rs + +/Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/rand_core-0.6.4/src/lib.rs: +/Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/rand_core-0.6.4/src/block.rs: +/Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/rand_core-0.6.4/src/error.rs: +/Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/rand_core-0.6.4/src/impls.rs: +/Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/rand_core-0.6.4/src/le.rs: +/Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/rand_core-0.6.4/src/os.rs: diff --git a/.tmp-check-windows/x86_64-pc-windows-msvc/debug/deps/ryu-c06dec971409c7ba.d b/.tmp-check-windows/x86_64-pc-windows-msvc/debug/deps/ryu-c06dec971409c7ba.d new file mode 100644 index 000000000..0761980b8 --- /dev/null +++ b/.tmp-check-windows/x86_64-pc-windows-msvc/debug/deps/ryu-c06dec971409c7ba.d @@ -0,0 +1,16 @@ +/Users/coso/Documents/dev/ai/aiclientproxy/lime/.tmp-check-windows/x86_64-pc-windows-msvc/debug/deps/ryu-c06dec971409c7ba.d: /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/ryu-1.0.23/src/lib.rs /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/ryu-1.0.23/src/buffer/mod.rs /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/ryu-1.0.23/src/common.rs /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/ryu-1.0.23/src/d2s.rs /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/ryu-1.0.23/src/d2s_full_table.rs /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/ryu-1.0.23/src/d2s_intrinsics.rs /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/ryu-1.0.23/src/digit_table.rs /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/ryu-1.0.23/src/f2s.rs /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/ryu-1.0.23/src/f2s_intrinsics.rs /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/ryu-1.0.23/src/pretty/mod.rs /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/ryu-1.0.23/src/pretty/exponent.rs /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/ryu-1.0.23/src/pretty/mantissa.rs + +/Users/coso/Documents/dev/ai/aiclientproxy/lime/.tmp-check-windows/x86_64-pc-windows-msvc/debug/deps/libryu-c06dec971409c7ba.rmeta: /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/ryu-1.0.23/src/lib.rs /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/ryu-1.0.23/src/buffer/mod.rs /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/ryu-1.0.23/src/common.rs /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/ryu-1.0.23/src/d2s.rs /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/ryu-1.0.23/src/d2s_full_table.rs /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/ryu-1.0.23/src/d2s_intrinsics.rs /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/ryu-1.0.23/src/digit_table.rs /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/ryu-1.0.23/src/f2s.rs /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/ryu-1.0.23/src/f2s_intrinsics.rs /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/ryu-1.0.23/src/pretty/mod.rs /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/ryu-1.0.23/src/pretty/exponent.rs /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/ryu-1.0.23/src/pretty/mantissa.rs + +/Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/ryu-1.0.23/src/lib.rs: +/Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/ryu-1.0.23/src/buffer/mod.rs: +/Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/ryu-1.0.23/src/common.rs: +/Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/ryu-1.0.23/src/d2s.rs: +/Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/ryu-1.0.23/src/d2s_full_table.rs: +/Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/ryu-1.0.23/src/d2s_intrinsics.rs: +/Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/ryu-1.0.23/src/digit_table.rs: +/Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/ryu-1.0.23/src/f2s.rs: +/Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/ryu-1.0.23/src/f2s_intrinsics.rs: +/Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/ryu-1.0.23/src/pretty/mod.rs: +/Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/ryu-1.0.23/src/pretty/exponent.rs: +/Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/ryu-1.0.23/src/pretty/mantissa.rs: diff --git a/.tmp-check-windows/x86_64-pc-windows-msvc/debug/deps/scopeguard-8eafdb6a52f0b313.d b/.tmp-check-windows/x86_64-pc-windows-msvc/debug/deps/scopeguard-8eafdb6a52f0b313.d new file mode 100644 index 000000000..96e8f5938 --- /dev/null +++ b/.tmp-check-windows/x86_64-pc-windows-msvc/debug/deps/scopeguard-8eafdb6a52f0b313.d @@ -0,0 +1,5 @@ +/Users/coso/Documents/dev/ai/aiclientproxy/lime/.tmp-check-windows/x86_64-pc-windows-msvc/debug/deps/scopeguard-8eafdb6a52f0b313.d: /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/scopeguard-1.2.0/src/lib.rs + +/Users/coso/Documents/dev/ai/aiclientproxy/lime/.tmp-check-windows/x86_64-pc-windows-msvc/debug/deps/libscopeguard-8eafdb6a52f0b313.rmeta: /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/scopeguard-1.2.0/src/lib.rs + +/Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/scopeguard-1.2.0/src/lib.rs: diff --git a/.tmp-check-windows/x86_64-pc-windows-msvc/debug/deps/serde_core-68d7e1636b061fe9.d b/.tmp-check-windows/x86_64-pc-windows-msvc/debug/deps/serde_core-68d7e1636b061fe9.d new file mode 100644 index 000000000..9f9c4ada5 --- /dev/null +++ b/.tmp-check-windows/x86_64-pc-windows-msvc/debug/deps/serde_core-68d7e1636b061fe9.d @@ -0,0 +1,25 @@ +/Users/coso/Documents/dev/ai/aiclientproxy/lime/.tmp-check-windows/x86_64-pc-windows-msvc/debug/deps/serde_core-68d7e1636b061fe9.d: /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/serde_core-1.0.228/src/lib.rs /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/serde_core-1.0.228/src/crate_root.rs /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/serde_core-1.0.228/src/macros.rs /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/serde_core-1.0.228/src/de/mod.rs /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/serde_core-1.0.228/src/de/value.rs /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/serde_core-1.0.228/src/de/ignored_any.rs /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/serde_core-1.0.228/src/de/impls.rs /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/serde_core-1.0.228/src/ser/mod.rs /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/serde_core-1.0.228/src/ser/fmt.rs /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/serde_core-1.0.228/src/ser/impls.rs /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/serde_core-1.0.228/src/ser/impossible.rs /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/serde_core-1.0.228/src/format.rs /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/serde_core-1.0.228/src/private/mod.rs /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/serde_core-1.0.228/src/private/content.rs /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/serde_core-1.0.228/src/private/seed.rs /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/serde_core-1.0.228/src/private/doc.rs /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/serde_core-1.0.228/src/private/size_hint.rs /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/serde_core-1.0.228/src/private/string.rs /Users/coso/Documents/dev/ai/aiclientproxy/lime/.tmp-check-windows/x86_64-pc-windows-msvc/debug/build/serde_core-025a74d7fa54aa68/out/private.rs + +/Users/coso/Documents/dev/ai/aiclientproxy/lime/.tmp-check-windows/x86_64-pc-windows-msvc/debug/deps/libserde_core-68d7e1636b061fe9.rmeta: /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/serde_core-1.0.228/src/lib.rs /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/serde_core-1.0.228/src/crate_root.rs /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/serde_core-1.0.228/src/macros.rs /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/serde_core-1.0.228/src/de/mod.rs /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/serde_core-1.0.228/src/de/value.rs /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/serde_core-1.0.228/src/de/ignored_any.rs /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/serde_core-1.0.228/src/de/impls.rs /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/serde_core-1.0.228/src/ser/mod.rs /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/serde_core-1.0.228/src/ser/fmt.rs /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/serde_core-1.0.228/src/ser/impls.rs /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/serde_core-1.0.228/src/ser/impossible.rs /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/serde_core-1.0.228/src/format.rs /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/serde_core-1.0.228/src/private/mod.rs /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/serde_core-1.0.228/src/private/content.rs /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/serde_core-1.0.228/src/private/seed.rs /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/serde_core-1.0.228/src/private/doc.rs /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/serde_core-1.0.228/src/private/size_hint.rs /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/serde_core-1.0.228/src/private/string.rs /Users/coso/Documents/dev/ai/aiclientproxy/lime/.tmp-check-windows/x86_64-pc-windows-msvc/debug/build/serde_core-025a74d7fa54aa68/out/private.rs + +/Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/serde_core-1.0.228/src/lib.rs: +/Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/serde_core-1.0.228/src/crate_root.rs: +/Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/serde_core-1.0.228/src/macros.rs: +/Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/serde_core-1.0.228/src/de/mod.rs: +/Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/serde_core-1.0.228/src/de/value.rs: +/Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/serde_core-1.0.228/src/de/ignored_any.rs: +/Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/serde_core-1.0.228/src/de/impls.rs: +/Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/serde_core-1.0.228/src/ser/mod.rs: +/Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/serde_core-1.0.228/src/ser/fmt.rs: +/Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/serde_core-1.0.228/src/ser/impls.rs: +/Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/serde_core-1.0.228/src/ser/impossible.rs: +/Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/serde_core-1.0.228/src/format.rs: +/Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/serde_core-1.0.228/src/private/mod.rs: +/Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/serde_core-1.0.228/src/private/content.rs: +/Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/serde_core-1.0.228/src/private/seed.rs: +/Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/serde_core-1.0.228/src/private/doc.rs: +/Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/serde_core-1.0.228/src/private/size_hint.rs: +/Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/serde_core-1.0.228/src/private/string.rs: +/Users/coso/Documents/dev/ai/aiclientproxy/lime/.tmp-check-windows/x86_64-pc-windows-msvc/debug/build/serde_core-025a74d7fa54aa68/out/private.rs: + +# env-dep:OUT_DIR=/Users/coso/Documents/dev/ai/aiclientproxy/lime/.tmp-check-windows/x86_64-pc-windows-msvc/debug/build/serde_core-025a74d7fa54aa68/out diff --git a/.tmp-check-windows/x86_64-pc-windows-msvc/debug/deps/serde_json-003fd9a9d6f94e41.d b/.tmp-check-windows/x86_64-pc-windows-msvc/debug/deps/serde_json-003fd9a9d6f94e41.d new file mode 100644 index 000000000..c3de03665 --- /dev/null +++ b/.tmp-check-windows/x86_64-pc-windows-msvc/debug/deps/serde_json-003fd9a9d6f94e41.d @@ -0,0 +1,21 @@ +/Users/coso/Documents/dev/ai/aiclientproxy/lime/.tmp-check-windows/x86_64-pc-windows-msvc/debug/deps/serde_json-003fd9a9d6f94e41.d: /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/serde_json-1.0.149/src/lib.rs /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/serde_json-1.0.149/src/macros.rs /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/serde_json-1.0.149/src/de.rs /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/serde_json-1.0.149/src/error.rs /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/serde_json-1.0.149/src/map.rs /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/serde_json-1.0.149/src/ser.rs /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/serde_json-1.0.149/src/value/mod.rs /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/serde_json-1.0.149/src/value/de.rs /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/serde_json-1.0.149/src/value/from.rs /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/serde_json-1.0.149/src/value/index.rs /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/serde_json-1.0.149/src/value/partial_eq.rs /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/serde_json-1.0.149/src/value/ser.rs /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/serde_json-1.0.149/src/io/mod.rs /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/serde_json-1.0.149/src/iter.rs /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/serde_json-1.0.149/src/number.rs /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/serde_json-1.0.149/src/read.rs /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/serde_json-1.0.149/src/raw.rs + +/Users/coso/Documents/dev/ai/aiclientproxy/lime/.tmp-check-windows/x86_64-pc-windows-msvc/debug/deps/libserde_json-003fd9a9d6f94e41.rmeta: /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/serde_json-1.0.149/src/lib.rs /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/serde_json-1.0.149/src/macros.rs /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/serde_json-1.0.149/src/de.rs /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/serde_json-1.0.149/src/error.rs /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/serde_json-1.0.149/src/map.rs /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/serde_json-1.0.149/src/ser.rs /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/serde_json-1.0.149/src/value/mod.rs /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/serde_json-1.0.149/src/value/de.rs /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/serde_json-1.0.149/src/value/from.rs /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/serde_json-1.0.149/src/value/index.rs /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/serde_json-1.0.149/src/value/partial_eq.rs /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/serde_json-1.0.149/src/value/ser.rs /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/serde_json-1.0.149/src/io/mod.rs /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/serde_json-1.0.149/src/iter.rs /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/serde_json-1.0.149/src/number.rs /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/serde_json-1.0.149/src/read.rs /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/serde_json-1.0.149/src/raw.rs + +/Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/serde_json-1.0.149/src/lib.rs: +/Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/serde_json-1.0.149/src/macros.rs: +/Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/serde_json-1.0.149/src/de.rs: +/Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/serde_json-1.0.149/src/error.rs: +/Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/serde_json-1.0.149/src/map.rs: +/Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/serde_json-1.0.149/src/ser.rs: +/Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/serde_json-1.0.149/src/value/mod.rs: +/Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/serde_json-1.0.149/src/value/de.rs: +/Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/serde_json-1.0.149/src/value/from.rs: +/Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/serde_json-1.0.149/src/value/index.rs: +/Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/serde_json-1.0.149/src/value/partial_eq.rs: +/Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/serde_json-1.0.149/src/value/ser.rs: +/Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/serde_json-1.0.149/src/io/mod.rs: +/Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/serde_json-1.0.149/src/iter.rs: +/Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/serde_json-1.0.149/src/number.rs: +/Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/serde_json-1.0.149/src/read.rs: +/Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/serde_json-1.0.149/src/raw.rs: diff --git a/.tmp-check-windows/x86_64-pc-windows-msvc/debug/deps/slab-f5b6997ae8b4f72e.d b/.tmp-check-windows/x86_64-pc-windows-msvc/debug/deps/slab-f5b6997ae8b4f72e.d new file mode 100644 index 000000000..c326954fe --- /dev/null +++ b/.tmp-check-windows/x86_64-pc-windows-msvc/debug/deps/slab-f5b6997ae8b4f72e.d @@ -0,0 +1,6 @@ +/Users/coso/Documents/dev/ai/aiclientproxy/lime/.tmp-check-windows/x86_64-pc-windows-msvc/debug/deps/slab-f5b6997ae8b4f72e.d: /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/slab-0.4.12/src/lib.rs /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/slab-0.4.12/src/builder.rs + +/Users/coso/Documents/dev/ai/aiclientproxy/lime/.tmp-check-windows/x86_64-pc-windows-msvc/debug/deps/libslab-f5b6997ae8b4f72e.rmeta: /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/slab-0.4.12/src/lib.rs /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/slab-0.4.12/src/builder.rs + +/Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/slab-0.4.12/src/lib.rs: +/Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/slab-0.4.12/src/builder.rs: diff --git a/.tmp-check-windows/x86_64-pc-windows-msvc/debug/deps/smallvec-7621bb04b0d0ac7f.d b/.tmp-check-windows/x86_64-pc-windows-msvc/debug/deps/smallvec-7621bb04b0d0ac7f.d new file mode 100644 index 000000000..585788125 --- /dev/null +++ b/.tmp-check-windows/x86_64-pc-windows-msvc/debug/deps/smallvec-7621bb04b0d0ac7f.d @@ -0,0 +1,5 @@ +/Users/coso/Documents/dev/ai/aiclientproxy/lime/.tmp-check-windows/x86_64-pc-windows-msvc/debug/deps/smallvec-7621bb04b0d0ac7f.d: /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/smallvec-1.15.1/src/lib.rs + +/Users/coso/Documents/dev/ai/aiclientproxy/lime/.tmp-check-windows/x86_64-pc-windows-msvc/debug/deps/libsmallvec-7621bb04b0d0ac7f.rmeta: /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/smallvec-1.15.1/src/lib.rs + +/Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/smallvec-1.15.1/src/lib.rs: diff --git a/.tmp-check-windows/x86_64-pc-windows-msvc/debug/deps/socket2-ce777d24433f6fb0.d b/.tmp-check-windows/x86_64-pc-windows-msvc/debug/deps/socket2-ce777d24433f6fb0.d new file mode 100644 index 000000000..3ddc2fc80 --- /dev/null +++ b/.tmp-check-windows/x86_64-pc-windows-msvc/debug/deps/socket2-ce777d24433f6fb0.d @@ -0,0 +1,9 @@ +/Users/coso/Documents/dev/ai/aiclientproxy/lime/.tmp-check-windows/x86_64-pc-windows-msvc/debug/deps/socket2-ce777d24433f6fb0.d: /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/socket2-0.6.2/src/lib.rs /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/socket2-0.6.2/src/sockaddr.rs /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/socket2-0.6.2/src/socket.rs /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/socket2-0.6.2/src/sockref.rs /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/socket2-0.6.2/src/sys/windows.rs + +/Users/coso/Documents/dev/ai/aiclientproxy/lime/.tmp-check-windows/x86_64-pc-windows-msvc/debug/deps/libsocket2-ce777d24433f6fb0.rmeta: /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/socket2-0.6.2/src/lib.rs /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/socket2-0.6.2/src/sockaddr.rs /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/socket2-0.6.2/src/socket.rs /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/socket2-0.6.2/src/sockref.rs /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/socket2-0.6.2/src/sys/windows.rs + +/Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/socket2-0.6.2/src/lib.rs: +/Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/socket2-0.6.2/src/sockaddr.rs: +/Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/socket2-0.6.2/src/socket.rs: +/Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/socket2-0.6.2/src/sockref.rs: +/Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/socket2-0.6.2/src/sys/windows.rs: diff --git a/.tmp-check-windows/x86_64-pc-windows-msvc/debug/deps/stable_deref_trait-3c5b002665830fa0.d b/.tmp-check-windows/x86_64-pc-windows-msvc/debug/deps/stable_deref_trait-3c5b002665830fa0.d new file mode 100644 index 000000000..6d0000f90 --- /dev/null +++ b/.tmp-check-windows/x86_64-pc-windows-msvc/debug/deps/stable_deref_trait-3c5b002665830fa0.d @@ -0,0 +1,5 @@ +/Users/coso/Documents/dev/ai/aiclientproxy/lime/.tmp-check-windows/x86_64-pc-windows-msvc/debug/deps/stable_deref_trait-3c5b002665830fa0.d: /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/stable_deref_trait-1.2.1/src/lib.rs + +/Users/coso/Documents/dev/ai/aiclientproxy/lime/.tmp-check-windows/x86_64-pc-windows-msvc/debug/deps/libstable_deref_trait-3c5b002665830fa0.rmeta: /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/stable_deref_trait-1.2.1/src/lib.rs + +/Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/stable_deref_trait-1.2.1/src/lib.rs: diff --git a/.tmp-check-windows/x86_64-pc-windows-msvc/debug/deps/subtle-93ef9b8880b3a020.d b/.tmp-check-windows/x86_64-pc-windows-msvc/debug/deps/subtle-93ef9b8880b3a020.d new file mode 100644 index 000000000..3386f2817 --- /dev/null +++ b/.tmp-check-windows/x86_64-pc-windows-msvc/debug/deps/subtle-93ef9b8880b3a020.d @@ -0,0 +1,5 @@ +/Users/coso/Documents/dev/ai/aiclientproxy/lime/.tmp-check-windows/x86_64-pc-windows-msvc/debug/deps/subtle-93ef9b8880b3a020.d: /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/subtle-2.6.1/src/lib.rs + +/Users/coso/Documents/dev/ai/aiclientproxy/lime/.tmp-check-windows/x86_64-pc-windows-msvc/debug/deps/libsubtle-93ef9b8880b3a020.rmeta: /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/subtle-2.6.1/src/lib.rs + +/Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/subtle-2.6.1/src/lib.rs: diff --git a/.tmp-check-windows/x86_64-pc-windows-msvc/debug/deps/time-0e83d7eadd1b29f8.d b/.tmp-check-windows/x86_64-pc-windows-msvc/debug/deps/time-0e83d7eadd1b29f8.d new file mode 100644 index 000000000..4480daccd --- /dev/null +++ b/.tmp-check-windows/x86_64-pc-windows-msvc/debug/deps/time-0e83d7eadd1b29f8.d @@ -0,0 +1,74 @@ +/Users/coso/Documents/dev/ai/aiclientproxy/lime/.tmp-check-windows/x86_64-pc-windows-msvc/debug/deps/time-0e83d7eadd1b29f8.d: /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/time-0.3.47/src/lib.rs /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/time-0.3.47/src/date.rs /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/time-0.3.47/src/duration.rs /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/time-0.3.47/src/error/mod.rs /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/time-0.3.47/src/error/component_range.rs /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/time-0.3.47/src/error/conversion_range.rs /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/time-0.3.47/src/error/different_variant.rs /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/time-0.3.47/src/error/format.rs /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/time-0.3.47/src/error/indeterminate_offset.rs /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/time-0.3.47/src/error/invalid_format_description.rs /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/time-0.3.47/src/error/invalid_variant.rs /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/time-0.3.47/src/error/parse.rs /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/time-0.3.47/src/error/parse_from_description.rs /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/time-0.3.47/src/error/try_from_parsed.rs /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/time-0.3.47/src/ext/mod.rs /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/time-0.3.47/src/ext/digit_count.rs /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/time-0.3.47/src/ext/instant.rs /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/time-0.3.47/src/ext/numerical_duration.rs /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/time-0.3.47/src/ext/numerical_std_duration.rs /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/time-0.3.47/src/ext/systemtime.rs /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/time-0.3.47/src/format_description/mod.rs /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/time-0.3.47/src/format_description/borrowed_format_item.rs /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/time-0.3.47/src/format_description/component.rs /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/time-0.3.47/src/format_description/modifier.rs /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/time-0.3.47/src/format_description/owned_format_item.rs /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/time-0.3.47/src/format_description/parse/mod.rs /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/time-0.3.47/src/format_description/parse/ast.rs /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/time-0.3.47/src/format_description/parse/format_item.rs /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/time-0.3.47/src/format_description/parse/lexer.rs /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/time-0.3.47/src/format_description/parse/strftime.rs /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/time-0.3.47/src/format_description/well_known/iso8601.rs /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/time-0.3.47/src/format_description/well_known/iso8601/adt_hack.rs /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/time-0.3.47/src/format_description/well_known/rfc2822.rs /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/time-0.3.47/src/format_description/well_known/rfc3339.rs /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/time-0.3.47/src/formatting/mod.rs /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/time-0.3.47/src/formatting/component_provider.rs /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/time-0.3.47/src/formatting/formattable.rs /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/time-0.3.47/src/formatting/iso8601.rs /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/time-0.3.47/src/hint.rs /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/time-0.3.47/src/instant.rs /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/time-0.3.47/src/internal_macros.rs /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/time-0.3.47/src/interop/mod.rs /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/time-0.3.47/src/interop/offsetdatetime_systemtime.rs /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/time-0.3.47/src/interop/offsetdatetime_utcdatetime.rs /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/time-0.3.47/src/interop/utcdatetime_systemtime.rs /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/time-0.3.47/src/macros.rs /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/time-0.3.47/src/month.rs /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/time-0.3.47/src/offset_date_time.rs /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/time-0.3.47/src/parsing/mod.rs /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/time-0.3.47/src/parsing/combinator/mod.rs /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/time-0.3.47/src/parsing/combinator/rfc/mod.rs /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/time-0.3.47/src/parsing/combinator/rfc/iso8601.rs /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/time-0.3.47/src/parsing/combinator/rfc/rfc2234.rs /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/time-0.3.47/src/parsing/combinator/rfc/rfc2822.rs /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/time-0.3.47/src/parsing/component.rs /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/time-0.3.47/src/parsing/iso8601.rs /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/time-0.3.47/src/parsing/parsable.rs /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/time-0.3.47/src/parsing/parsed.rs /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/time-0.3.47/src/parsing/shim.rs /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/time-0.3.47/src/primitive_date_time.rs /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/time-0.3.47/src/sys/mod.rs /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/time-0.3.47/src/sys/local_offset_at/mod.rs /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/time-0.3.47/src/sys/local_offset_at/windows.rs /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/time-0.3.47/src/sys/refresh_tz/mod.rs /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/time-0.3.47/src/sys/refresh_tz/imp.rs /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/time-0.3.47/src/time.rs /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/time-0.3.47/src/utc_date_time.rs /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/time-0.3.47/src/utc_offset.rs /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/time-0.3.47/src/util.rs /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/time-0.3.47/src/weekday.rs + +/Users/coso/Documents/dev/ai/aiclientproxy/lime/.tmp-check-windows/x86_64-pc-windows-msvc/debug/deps/libtime-0e83d7eadd1b29f8.rmeta: /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/time-0.3.47/src/lib.rs /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/time-0.3.47/src/date.rs /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/time-0.3.47/src/duration.rs /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/time-0.3.47/src/error/mod.rs /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/time-0.3.47/src/error/component_range.rs /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/time-0.3.47/src/error/conversion_range.rs /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/time-0.3.47/src/error/different_variant.rs /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/time-0.3.47/src/error/format.rs /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/time-0.3.47/src/error/indeterminate_offset.rs /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/time-0.3.47/src/error/invalid_format_description.rs /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/time-0.3.47/src/error/invalid_variant.rs /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/time-0.3.47/src/error/parse.rs /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/time-0.3.47/src/error/parse_from_description.rs /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/time-0.3.47/src/error/try_from_parsed.rs /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/time-0.3.47/src/ext/mod.rs /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/time-0.3.47/src/ext/digit_count.rs /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/time-0.3.47/src/ext/instant.rs /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/time-0.3.47/src/ext/numerical_duration.rs /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/time-0.3.47/src/ext/numerical_std_duration.rs /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/time-0.3.47/src/ext/systemtime.rs /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/time-0.3.47/src/format_description/mod.rs /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/time-0.3.47/src/format_description/borrowed_format_item.rs /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/time-0.3.47/src/format_description/component.rs /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/time-0.3.47/src/format_description/modifier.rs /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/time-0.3.47/src/format_description/owned_format_item.rs /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/time-0.3.47/src/format_description/parse/mod.rs /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/time-0.3.47/src/format_description/parse/ast.rs /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/time-0.3.47/src/format_description/parse/format_item.rs /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/time-0.3.47/src/format_description/parse/lexer.rs /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/time-0.3.47/src/format_description/parse/strftime.rs /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/time-0.3.47/src/format_description/well_known/iso8601.rs /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/time-0.3.47/src/format_description/well_known/iso8601/adt_hack.rs /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/time-0.3.47/src/format_description/well_known/rfc2822.rs /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/time-0.3.47/src/format_description/well_known/rfc3339.rs /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/time-0.3.47/src/formatting/mod.rs /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/time-0.3.47/src/formatting/component_provider.rs /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/time-0.3.47/src/formatting/formattable.rs /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/time-0.3.47/src/formatting/iso8601.rs /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/time-0.3.47/src/hint.rs /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/time-0.3.47/src/instant.rs /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/time-0.3.47/src/internal_macros.rs /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/time-0.3.47/src/interop/mod.rs /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/time-0.3.47/src/interop/offsetdatetime_systemtime.rs /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/time-0.3.47/src/interop/offsetdatetime_utcdatetime.rs /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/time-0.3.47/src/interop/utcdatetime_systemtime.rs /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/time-0.3.47/src/macros.rs /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/time-0.3.47/src/month.rs /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/time-0.3.47/src/offset_date_time.rs /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/time-0.3.47/src/parsing/mod.rs /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/time-0.3.47/src/parsing/combinator/mod.rs /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/time-0.3.47/src/parsing/combinator/rfc/mod.rs /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/time-0.3.47/src/parsing/combinator/rfc/iso8601.rs /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/time-0.3.47/src/parsing/combinator/rfc/rfc2234.rs /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/time-0.3.47/src/parsing/combinator/rfc/rfc2822.rs /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/time-0.3.47/src/parsing/component.rs /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/time-0.3.47/src/parsing/iso8601.rs /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/time-0.3.47/src/parsing/parsable.rs /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/time-0.3.47/src/parsing/parsed.rs /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/time-0.3.47/src/parsing/shim.rs /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/time-0.3.47/src/primitive_date_time.rs /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/time-0.3.47/src/sys/mod.rs /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/time-0.3.47/src/sys/local_offset_at/mod.rs /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/time-0.3.47/src/sys/local_offset_at/windows.rs /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/time-0.3.47/src/sys/refresh_tz/mod.rs /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/time-0.3.47/src/sys/refresh_tz/imp.rs /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/time-0.3.47/src/time.rs /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/time-0.3.47/src/utc_date_time.rs /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/time-0.3.47/src/utc_offset.rs /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/time-0.3.47/src/util.rs /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/time-0.3.47/src/weekday.rs + +/Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/time-0.3.47/src/lib.rs: +/Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/time-0.3.47/src/date.rs: +/Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/time-0.3.47/src/duration.rs: +/Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/time-0.3.47/src/error/mod.rs: +/Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/time-0.3.47/src/error/component_range.rs: +/Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/time-0.3.47/src/error/conversion_range.rs: +/Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/time-0.3.47/src/error/different_variant.rs: +/Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/time-0.3.47/src/error/format.rs: +/Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/time-0.3.47/src/error/indeterminate_offset.rs: +/Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/time-0.3.47/src/error/invalid_format_description.rs: +/Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/time-0.3.47/src/error/invalid_variant.rs: +/Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/time-0.3.47/src/error/parse.rs: +/Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/time-0.3.47/src/error/parse_from_description.rs: +/Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/time-0.3.47/src/error/try_from_parsed.rs: +/Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/time-0.3.47/src/ext/mod.rs: +/Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/time-0.3.47/src/ext/digit_count.rs: +/Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/time-0.3.47/src/ext/instant.rs: +/Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/time-0.3.47/src/ext/numerical_duration.rs: +/Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/time-0.3.47/src/ext/numerical_std_duration.rs: +/Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/time-0.3.47/src/ext/systemtime.rs: +/Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/time-0.3.47/src/format_description/mod.rs: +/Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/time-0.3.47/src/format_description/borrowed_format_item.rs: +/Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/time-0.3.47/src/format_description/component.rs: +/Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/time-0.3.47/src/format_description/modifier.rs: +/Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/time-0.3.47/src/format_description/owned_format_item.rs: +/Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/time-0.3.47/src/format_description/parse/mod.rs: +/Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/time-0.3.47/src/format_description/parse/ast.rs: +/Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/time-0.3.47/src/format_description/parse/format_item.rs: +/Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/time-0.3.47/src/format_description/parse/lexer.rs: +/Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/time-0.3.47/src/format_description/parse/strftime.rs: +/Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/time-0.3.47/src/format_description/well_known/iso8601.rs: +/Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/time-0.3.47/src/format_description/well_known/iso8601/adt_hack.rs: +/Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/time-0.3.47/src/format_description/well_known/rfc2822.rs: +/Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/time-0.3.47/src/format_description/well_known/rfc3339.rs: +/Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/time-0.3.47/src/formatting/mod.rs: +/Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/time-0.3.47/src/formatting/component_provider.rs: +/Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/time-0.3.47/src/formatting/formattable.rs: +/Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/time-0.3.47/src/formatting/iso8601.rs: +/Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/time-0.3.47/src/hint.rs: +/Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/time-0.3.47/src/instant.rs: +/Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/time-0.3.47/src/internal_macros.rs: +/Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/time-0.3.47/src/interop/mod.rs: +/Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/time-0.3.47/src/interop/offsetdatetime_systemtime.rs: +/Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/time-0.3.47/src/interop/offsetdatetime_utcdatetime.rs: +/Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/time-0.3.47/src/interop/utcdatetime_systemtime.rs: +/Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/time-0.3.47/src/macros.rs: +/Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/time-0.3.47/src/month.rs: +/Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/time-0.3.47/src/offset_date_time.rs: +/Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/time-0.3.47/src/parsing/mod.rs: +/Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/time-0.3.47/src/parsing/combinator/mod.rs: +/Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/time-0.3.47/src/parsing/combinator/rfc/mod.rs: +/Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/time-0.3.47/src/parsing/combinator/rfc/iso8601.rs: +/Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/time-0.3.47/src/parsing/combinator/rfc/rfc2234.rs: +/Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/time-0.3.47/src/parsing/combinator/rfc/rfc2822.rs: +/Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/time-0.3.47/src/parsing/component.rs: +/Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/time-0.3.47/src/parsing/iso8601.rs: +/Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/time-0.3.47/src/parsing/parsable.rs: +/Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/time-0.3.47/src/parsing/parsed.rs: +/Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/time-0.3.47/src/parsing/shim.rs: +/Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/time-0.3.47/src/primitive_date_time.rs: +/Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/time-0.3.47/src/sys/mod.rs: +/Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/time-0.3.47/src/sys/local_offset_at/mod.rs: +/Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/time-0.3.47/src/sys/local_offset_at/windows.rs: +/Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/time-0.3.47/src/sys/refresh_tz/mod.rs: +/Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/time-0.3.47/src/sys/refresh_tz/imp.rs: +/Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/time-0.3.47/src/time.rs: +/Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/time-0.3.47/src/utc_date_time.rs: +/Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/time-0.3.47/src/utc_offset.rs: +/Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/time-0.3.47/src/util.rs: +/Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/time-0.3.47/src/weekday.rs: diff --git a/.tmp-check-windows/x86_64-pc-windows-msvc/debug/deps/time_core-17b148b2e499200f.d b/.tmp-check-windows/x86_64-pc-windows-msvc/debug/deps/time_core-17b148b2e499200f.d new file mode 100644 index 000000000..7ac039deb --- /dev/null +++ b/.tmp-check-windows/x86_64-pc-windows-msvc/debug/deps/time_core-17b148b2e499200f.d @@ -0,0 +1,8 @@ +/Users/coso/Documents/dev/ai/aiclientproxy/lime/.tmp-check-windows/x86_64-pc-windows-msvc/debug/deps/time_core-17b148b2e499200f.d: /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/time-core-0.1.8/src/lib.rs /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/time-core-0.1.8/src/convert.rs /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/time-core-0.1.8/src/hint.rs /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/time-core-0.1.8/src/util.rs + +/Users/coso/Documents/dev/ai/aiclientproxy/lime/.tmp-check-windows/x86_64-pc-windows-msvc/debug/deps/libtime_core-17b148b2e499200f.rmeta: /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/time-core-0.1.8/src/lib.rs /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/time-core-0.1.8/src/convert.rs /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/time-core-0.1.8/src/hint.rs /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/time-core-0.1.8/src/util.rs + +/Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/time-core-0.1.8/src/lib.rs: +/Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/time-core-0.1.8/src/convert.rs: +/Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/time-core-0.1.8/src/hint.rs: +/Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/time-core-0.1.8/src/util.rs: diff --git a/.tmp-check-windows/x86_64-pc-windows-msvc/debug/deps/tower_service-24c5a499258b1f52.d b/.tmp-check-windows/x86_64-pc-windows-msvc/debug/deps/tower_service-24c5a499258b1f52.d new file mode 100644 index 000000000..d32a9444e --- /dev/null +++ b/.tmp-check-windows/x86_64-pc-windows-msvc/debug/deps/tower_service-24c5a499258b1f52.d @@ -0,0 +1,5 @@ +/Users/coso/Documents/dev/ai/aiclientproxy/lime/.tmp-check-windows/x86_64-pc-windows-msvc/debug/deps/tower_service-24c5a499258b1f52.d: /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/tower-service-0.3.3/src/lib.rs + +/Users/coso/Documents/dev/ai/aiclientproxy/lime/.tmp-check-windows/x86_64-pc-windows-msvc/debug/deps/libtower_service-24c5a499258b1f52.rmeta: /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/tower-service-0.3.3/src/lib.rs + +/Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/tower-service-0.3.3/src/lib.rs: diff --git a/.tmp-check-windows/x86_64-pc-windows-msvc/debug/deps/tracing_core-f90da36bb76f6319.d b/.tmp-check-windows/x86_64-pc-windows-msvc/debug/deps/tracing_core-f90da36bb76f6319.d new file mode 100644 index 000000000..204b28545 --- /dev/null +++ b/.tmp-check-windows/x86_64-pc-windows-msvc/debug/deps/tracing_core-f90da36bb76f6319.d @@ -0,0 +1,14 @@ +/Users/coso/Documents/dev/ai/aiclientproxy/lime/.tmp-check-windows/x86_64-pc-windows-msvc/debug/deps/tracing_core-f90da36bb76f6319.d: /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/tracing-core-0.1.36/src/lib.rs /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/tracing-core-0.1.36/src/lazy.rs /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/tracing-core-0.1.36/src/callsite.rs /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/tracing-core-0.1.36/src/dispatcher.rs /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/tracing-core-0.1.36/src/event.rs /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/tracing-core-0.1.36/src/field.rs /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/tracing-core-0.1.36/src/metadata.rs /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/tracing-core-0.1.36/src/parent.rs /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/tracing-core-0.1.36/src/span.rs /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/tracing-core-0.1.36/src/subscriber.rs + +/Users/coso/Documents/dev/ai/aiclientproxy/lime/.tmp-check-windows/x86_64-pc-windows-msvc/debug/deps/libtracing_core-f90da36bb76f6319.rmeta: /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/tracing-core-0.1.36/src/lib.rs /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/tracing-core-0.1.36/src/lazy.rs /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/tracing-core-0.1.36/src/callsite.rs /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/tracing-core-0.1.36/src/dispatcher.rs /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/tracing-core-0.1.36/src/event.rs /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/tracing-core-0.1.36/src/field.rs /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/tracing-core-0.1.36/src/metadata.rs /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/tracing-core-0.1.36/src/parent.rs /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/tracing-core-0.1.36/src/span.rs /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/tracing-core-0.1.36/src/subscriber.rs + +/Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/tracing-core-0.1.36/src/lib.rs: +/Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/tracing-core-0.1.36/src/lazy.rs: +/Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/tracing-core-0.1.36/src/callsite.rs: +/Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/tracing-core-0.1.36/src/dispatcher.rs: +/Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/tracing-core-0.1.36/src/event.rs: +/Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/tracing-core-0.1.36/src/field.rs: +/Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/tracing-core-0.1.36/src/metadata.rs: +/Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/tracing-core-0.1.36/src/parent.rs: +/Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/tracing-core-0.1.36/src/span.rs: +/Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/tracing-core-0.1.36/src/subscriber.rs: diff --git a/.tmp-check-windows/x86_64-pc-windows-msvc/debug/deps/typenum-a0883a424d17bffd.d b/.tmp-check-windows/x86_64-pc-windows-msvc/debug/deps/typenum-a0883a424d17bffd.d new file mode 100644 index 000000000..8f62c73be --- /dev/null +++ b/.tmp-check-windows/x86_64-pc-windows-msvc/debug/deps/typenum-a0883a424d17bffd.d @@ -0,0 +1,16 @@ +/Users/coso/Documents/dev/ai/aiclientproxy/lime/.tmp-check-windows/x86_64-pc-windows-msvc/debug/deps/typenum-a0883a424d17bffd.d: /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/typenum-1.19.0/src/lib.rs /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/typenum-1.19.0/src/bit.rs /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/typenum-1.19.0/src/gen.rs /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/typenum-1.19.0/src/gen/consts.rs /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/typenum-1.19.0/src/gen/op.rs /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/typenum-1.19.0/src/int.rs /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/typenum-1.19.0/src/marker_traits.rs /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/typenum-1.19.0/src/operator_aliases.rs /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/typenum-1.19.0/src/private.rs /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/typenum-1.19.0/src/type_operators.rs /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/typenum-1.19.0/src/uint.rs /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/typenum-1.19.0/src/array.rs + +/Users/coso/Documents/dev/ai/aiclientproxy/lime/.tmp-check-windows/x86_64-pc-windows-msvc/debug/deps/libtypenum-a0883a424d17bffd.rmeta: /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/typenum-1.19.0/src/lib.rs /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/typenum-1.19.0/src/bit.rs /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/typenum-1.19.0/src/gen.rs /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/typenum-1.19.0/src/gen/consts.rs /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/typenum-1.19.0/src/gen/op.rs /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/typenum-1.19.0/src/int.rs /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/typenum-1.19.0/src/marker_traits.rs /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/typenum-1.19.0/src/operator_aliases.rs /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/typenum-1.19.0/src/private.rs /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/typenum-1.19.0/src/type_operators.rs /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/typenum-1.19.0/src/uint.rs /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/typenum-1.19.0/src/array.rs + +/Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/typenum-1.19.0/src/lib.rs: +/Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/typenum-1.19.0/src/bit.rs: +/Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/typenum-1.19.0/src/gen.rs: +/Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/typenum-1.19.0/src/gen/consts.rs: +/Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/typenum-1.19.0/src/gen/op.rs: +/Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/typenum-1.19.0/src/int.rs: +/Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/typenum-1.19.0/src/marker_traits.rs: +/Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/typenum-1.19.0/src/operator_aliases.rs: +/Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/typenum-1.19.0/src/private.rs: +/Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/typenum-1.19.0/src/type_operators.rs: +/Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/typenum-1.19.0/src/uint.rs: +/Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/typenum-1.19.0/src/array.rs: diff --git a/.tmp-check-windows/x86_64-pc-windows-msvc/debug/deps/untrusted-e2c8cbe29abdff55.d b/.tmp-check-windows/x86_64-pc-windows-msvc/debug/deps/untrusted-e2c8cbe29abdff55.d new file mode 100644 index 000000000..967c1632c --- /dev/null +++ b/.tmp-check-windows/x86_64-pc-windows-msvc/debug/deps/untrusted-e2c8cbe29abdff55.d @@ -0,0 +1,8 @@ +/Users/coso/Documents/dev/ai/aiclientproxy/lime/.tmp-check-windows/x86_64-pc-windows-msvc/debug/deps/untrusted-e2c8cbe29abdff55.d: /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/untrusted-0.9.0/src/lib.rs /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/untrusted-0.9.0/src/input.rs /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/untrusted-0.9.0/src/no_panic.rs /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/untrusted-0.9.0/src/reader.rs + +/Users/coso/Documents/dev/ai/aiclientproxy/lime/.tmp-check-windows/x86_64-pc-windows-msvc/debug/deps/libuntrusted-e2c8cbe29abdff55.rmeta: /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/untrusted-0.9.0/src/lib.rs /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/untrusted-0.9.0/src/input.rs /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/untrusted-0.9.0/src/no_panic.rs /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/untrusted-0.9.0/src/reader.rs + +/Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/untrusted-0.9.0/src/lib.rs: +/Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/untrusted-0.9.0/src/input.rs: +/Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/untrusted-0.9.0/src/no_panic.rs: +/Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/untrusted-0.9.0/src/reader.rs: diff --git a/.tmp-check-windows/x86_64-pc-windows-msvc/debug/deps/utf16_iter-411badac6ceaeb85.d b/.tmp-check-windows/x86_64-pc-windows-msvc/debug/deps/utf16_iter-411badac6ceaeb85.d new file mode 100644 index 000000000..ced2b0473 --- /dev/null +++ b/.tmp-check-windows/x86_64-pc-windows-msvc/debug/deps/utf16_iter-411badac6ceaeb85.d @@ -0,0 +1,7 @@ +/Users/coso/Documents/dev/ai/aiclientproxy/lime/.tmp-check-windows/x86_64-pc-windows-msvc/debug/deps/utf16_iter-411badac6ceaeb85.d: /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/utf16_iter-1.0.5/src/lib.rs /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/utf16_iter-1.0.5/src/indices.rs /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/utf16_iter-1.0.5/src/report.rs + +/Users/coso/Documents/dev/ai/aiclientproxy/lime/.tmp-check-windows/x86_64-pc-windows-msvc/debug/deps/libutf16_iter-411badac6ceaeb85.rmeta: /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/utf16_iter-1.0.5/src/lib.rs /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/utf16_iter-1.0.5/src/indices.rs /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/utf16_iter-1.0.5/src/report.rs + +/Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/utf16_iter-1.0.5/src/lib.rs: +/Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/utf16_iter-1.0.5/src/indices.rs: +/Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/utf16_iter-1.0.5/src/report.rs: diff --git a/.tmp-check-windows/x86_64-pc-windows-msvc/debug/deps/utf8_iter-52b07de95ec095ba.d b/.tmp-check-windows/x86_64-pc-windows-msvc/debug/deps/utf8_iter-52b07de95ec095ba.d new file mode 100644 index 000000000..cbf5a21a2 --- /dev/null +++ b/.tmp-check-windows/x86_64-pc-windows-msvc/debug/deps/utf8_iter-52b07de95ec095ba.d @@ -0,0 +1,7 @@ +/Users/coso/Documents/dev/ai/aiclientproxy/lime/.tmp-check-windows/x86_64-pc-windows-msvc/debug/deps/utf8_iter-52b07de95ec095ba.d: /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/utf8_iter-1.0.4/src/lib.rs /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/utf8_iter-1.0.4/src/indices.rs /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/utf8_iter-1.0.4/src/report.rs + +/Users/coso/Documents/dev/ai/aiclientproxy/lime/.tmp-check-windows/x86_64-pc-windows-msvc/debug/deps/libutf8_iter-52b07de95ec095ba.rmeta: /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/utf8_iter-1.0.4/src/lib.rs /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/utf8_iter-1.0.4/src/indices.rs /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/utf8_iter-1.0.4/src/report.rs + +/Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/utf8_iter-1.0.4/src/lib.rs: +/Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/utf8_iter-1.0.4/src/indices.rs: +/Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/utf8_iter-1.0.4/src/report.rs: diff --git a/.tmp-check-windows/x86_64-pc-windows-msvc/debug/deps/windows_link-a27f7050f0a20c5f.d b/.tmp-check-windows/x86_64-pc-windows-msvc/debug/deps/windows_link-a27f7050f0a20c5f.d new file mode 100644 index 000000000..e65bbc06d --- /dev/null +++ b/.tmp-check-windows/x86_64-pc-windows-msvc/debug/deps/windows_link-a27f7050f0a20c5f.d @@ -0,0 +1,6 @@ +/Users/coso/Documents/dev/ai/aiclientproxy/lime/.tmp-check-windows/x86_64-pc-windows-msvc/debug/deps/windows_link-a27f7050f0a20c5f.d: /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/windows-link-0.1.3/src/lib.rs /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/windows-link-0.1.3/src/../readme.md + +/Users/coso/Documents/dev/ai/aiclientproxy/lime/.tmp-check-windows/x86_64-pc-windows-msvc/debug/deps/libwindows_link-a27f7050f0a20c5f.rmeta: /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/windows-link-0.1.3/src/lib.rs /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/windows-link-0.1.3/src/../readme.md + +/Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/windows-link-0.1.3/src/lib.rs: +/Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/windows-link-0.1.3/src/../readme.md: diff --git a/.tmp-check-windows/x86_64-pc-windows-msvc/debug/deps/windows_link-f6430f731f37844c.d b/.tmp-check-windows/x86_64-pc-windows-msvc/debug/deps/windows_link-f6430f731f37844c.d new file mode 100644 index 000000000..37eaaaf72 --- /dev/null +++ b/.tmp-check-windows/x86_64-pc-windows-msvc/debug/deps/windows_link-f6430f731f37844c.d @@ -0,0 +1,6 @@ +/Users/coso/Documents/dev/ai/aiclientproxy/lime/.tmp-check-windows/x86_64-pc-windows-msvc/debug/deps/windows_link-f6430f731f37844c.d: /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/windows-link-0.2.1/src/lib.rs /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/windows-link-0.2.1/src/../readme.md + +/Users/coso/Documents/dev/ai/aiclientproxy/lime/.tmp-check-windows/x86_64-pc-windows-msvc/debug/deps/libwindows_link-f6430f731f37844c.rmeta: /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/windows-link-0.2.1/src/lib.rs /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/windows-link-0.2.1/src/../readme.md + +/Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/windows-link-0.2.1/src/lib.rs: +/Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/windows-link-0.2.1/src/../readme.md: diff --git a/.tmp-check-windows/x86_64-pc-windows-msvc/debug/deps/windows_result-21a720bcba341419.d b/.tmp-check-windows/x86_64-pc-windows-msvc/debug/deps/windows_result-21a720bcba341419.d new file mode 100644 index 000000000..5a3efd810 --- /dev/null +++ b/.tmp-check-windows/x86_64-pc-windows-msvc/debug/deps/windows_result-21a720bcba341419.d @@ -0,0 +1,14 @@ +/Users/coso/Documents/dev/ai/aiclientproxy/lime/.tmp-check-windows/x86_64-pc-windows-msvc/debug/deps/windows_result-21a720bcba341419.d: /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/windows-result-0.3.4/src/lib.rs /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/windows-result-0.3.4/src/bindings.rs /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/windows-result-0.3.4/src/com.rs /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/windows-result-0.3.4/src/strings.rs /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/windows-result-0.3.4/src/bstr.rs /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/windows-result-0.3.4/src/error.rs /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/windows-result-0.3.4/src/hresult.rs /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/windows-result-0.3.4/src/bool.rs /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/windows-result-0.3.4/src/../readme.md /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/windows-result-0.3.4/src/../windows-result.natvis + +/Users/coso/Documents/dev/ai/aiclientproxy/lime/.tmp-check-windows/x86_64-pc-windows-msvc/debug/deps/libwindows_result-21a720bcba341419.rmeta: /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/windows-result-0.3.4/src/lib.rs /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/windows-result-0.3.4/src/bindings.rs /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/windows-result-0.3.4/src/com.rs /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/windows-result-0.3.4/src/strings.rs /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/windows-result-0.3.4/src/bstr.rs /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/windows-result-0.3.4/src/error.rs /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/windows-result-0.3.4/src/hresult.rs /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/windows-result-0.3.4/src/bool.rs /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/windows-result-0.3.4/src/../readme.md /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/windows-result-0.3.4/src/../windows-result.natvis + +/Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/windows-result-0.3.4/src/lib.rs: +/Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/windows-result-0.3.4/src/bindings.rs: +/Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/windows-result-0.3.4/src/com.rs: +/Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/windows-result-0.3.4/src/strings.rs: +/Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/windows-result-0.3.4/src/bstr.rs: +/Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/windows-result-0.3.4/src/error.rs: +/Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/windows-result-0.3.4/src/hresult.rs: +/Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/windows-result-0.3.4/src/bool.rs: +/Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/windows-result-0.3.4/src/../readme.md: +/Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/windows-result-0.3.4/src/../windows-result.natvis: diff --git a/.tmp-check-windows/x86_64-pc-windows-msvc/debug/deps/windows_strings-48f931985cbdbaeb.d b/.tmp-check-windows/x86_64-pc-windows-msvc/debug/deps/windows_strings-48f931985cbdbaeb.d new file mode 100644 index 000000000..287dfa71a --- /dev/null +++ b/.tmp-check-windows/x86_64-pc-windows-msvc/debug/deps/windows_strings-48f931985cbdbaeb.d @@ -0,0 +1,19 @@ +/Users/coso/Documents/dev/ai/aiclientproxy/lime/.tmp-check-windows/x86_64-pc-windows-msvc/debug/deps/windows_strings-48f931985cbdbaeb.d: /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/windows-strings-0.4.2/src/lib.rs /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/windows-strings-0.4.2/src/bstr.rs /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/windows-strings-0.4.2/src/hstring.rs /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/windows-strings-0.4.2/src/hstring_builder.rs /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/windows-strings-0.4.2/src/hstring_header.rs /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/windows-strings-0.4.2/src/bindings.rs /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/windows-strings-0.4.2/src/decode.rs /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/windows-strings-0.4.2/src/ref_count.rs /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/windows-strings-0.4.2/src/literals.rs /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/windows-strings-0.4.2/src/pcstr.rs /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/windows-strings-0.4.2/src/pcwstr.rs /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/windows-strings-0.4.2/src/pstr.rs /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/windows-strings-0.4.2/src/pwstr.rs /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/windows-strings-0.4.2/src/../readme.md /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/windows-strings-0.4.2/src/../windows-strings.natvis + +/Users/coso/Documents/dev/ai/aiclientproxy/lime/.tmp-check-windows/x86_64-pc-windows-msvc/debug/deps/libwindows_strings-48f931985cbdbaeb.rmeta: /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/windows-strings-0.4.2/src/lib.rs /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/windows-strings-0.4.2/src/bstr.rs /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/windows-strings-0.4.2/src/hstring.rs /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/windows-strings-0.4.2/src/hstring_builder.rs /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/windows-strings-0.4.2/src/hstring_header.rs /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/windows-strings-0.4.2/src/bindings.rs /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/windows-strings-0.4.2/src/decode.rs /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/windows-strings-0.4.2/src/ref_count.rs /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/windows-strings-0.4.2/src/literals.rs /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/windows-strings-0.4.2/src/pcstr.rs /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/windows-strings-0.4.2/src/pcwstr.rs /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/windows-strings-0.4.2/src/pstr.rs /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/windows-strings-0.4.2/src/pwstr.rs /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/windows-strings-0.4.2/src/../readme.md /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/windows-strings-0.4.2/src/../windows-strings.natvis + +/Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/windows-strings-0.4.2/src/lib.rs: +/Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/windows-strings-0.4.2/src/bstr.rs: +/Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/windows-strings-0.4.2/src/hstring.rs: +/Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/windows-strings-0.4.2/src/hstring_builder.rs: +/Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/windows-strings-0.4.2/src/hstring_header.rs: +/Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/windows-strings-0.4.2/src/bindings.rs: +/Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/windows-strings-0.4.2/src/decode.rs: +/Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/windows-strings-0.4.2/src/ref_count.rs: +/Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/windows-strings-0.4.2/src/literals.rs: +/Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/windows-strings-0.4.2/src/pcstr.rs: +/Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/windows-strings-0.4.2/src/pcwstr.rs: +/Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/windows-strings-0.4.2/src/pstr.rs: +/Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/windows-strings-0.4.2/src/pwstr.rs: +/Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/windows-strings-0.4.2/src/../readme.md: +/Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/windows-strings-0.4.2/src/../windows-strings.natvis: diff --git a/.tmp-check-windows/x86_64-pc-windows-msvc/debug/deps/windows_sys-350b46e9a7ff3f21.d b/.tmp-check-windows/x86_64-pc-windows-msvc/debug/deps/windows_sys-350b46e9a7ff3f21.d new file mode 100644 index 000000000..3f5d79daa --- /dev/null +++ b/.tmp-check-windows/x86_64-pc-windows-msvc/debug/deps/windows_sys-350b46e9a7ff3f21.d @@ -0,0 +1,43 @@ +/Users/coso/Documents/dev/ai/aiclientproxy/lime/.tmp-check-windows/x86_64-pc-windows-msvc/debug/deps/windows_sys-350b46e9a7ff3f21.d: /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/windows-sys-0.61.2/src/lib.rs /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/windows-sys-0.61.2/src/core/mod.rs /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/windows-sys-0.61.2/src/core/literals.rs /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/windows-sys-0.61.2/src/Windows/mod.rs /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/windows-sys-0.61.2/src/Windows/Wdk/mod.rs /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/windows-sys-0.61.2/src/Windows/Wdk/Foundation/mod.rs /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/windows-sys-0.61.2/src/Windows/Wdk/Storage/mod.rs /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/windows-sys-0.61.2/src/Windows/Wdk/Storage/FileSystem/mod.rs /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/windows-sys-0.61.2/src/Windows/Wdk/System/mod.rs /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/windows-sys-0.61.2/src/Windows/Wdk/System/IO/mod.rs /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/windows-sys-0.61.2/src/Windows/Win32/mod.rs /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/windows-sys-0.61.2/src/Windows/Win32/Foundation/mod.rs /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/windows-sys-0.61.2/src/Windows/Win32/Globalization/mod.rs /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/windows-sys-0.61.2/src/Windows/Win32/Graphics/mod.rs /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/windows-sys-0.61.2/src/Windows/Win32/Graphics/Gdi/mod.rs /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/windows-sys-0.61.2/src/Windows/Win32/Networking/mod.rs /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/windows-sys-0.61.2/src/Windows/Win32/Networking/WinSock/mod.rs /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/windows-sys-0.61.2/src/Windows/Win32/Security/mod.rs /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/windows-sys-0.61.2/src/Windows/Win32/Security/Authentication/mod.rs /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/windows-sys-0.61.2/src/Windows/Win32/Security/Authentication/Identity/mod.rs /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/windows-sys-0.61.2/src/Windows/Win32/Security/Credentials/mod.rs /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/windows-sys-0.61.2/src/Windows/Win32/Security/Cryptography/mod.rs /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/windows-sys-0.61.2/src/Windows/Win32/Storage/mod.rs /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/windows-sys-0.61.2/src/Windows/Win32/Storage/FileSystem/mod.rs /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/windows-sys-0.61.2/src/Windows/Win32/System/mod.rs /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/windows-sys-0.61.2/src/Windows/Win32/System/Com/mod.rs /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/windows-sys-0.61.2/src/Windows/Win32/System/Console/mod.rs /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/windows-sys-0.61.2/src/Windows/Win32/System/IO/mod.rs /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/windows-sys-0.61.2/src/Windows/Win32/System/LibraryLoader/mod.rs /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/windows-sys-0.61.2/src/Windows/Win32/System/Memory/mod.rs /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/windows-sys-0.61.2/src/Windows/Win32/System/Pipes/mod.rs /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/windows-sys-0.61.2/src/Windows/Win32/System/Registry/mod.rs /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/windows-sys-0.61.2/src/Windows/Win32/System/SystemInformation/mod.rs /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/windows-sys-0.61.2/src/Windows/Win32/System/SystemServices/mod.rs /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/windows-sys-0.61.2/src/Windows/Win32/System/Threading/mod.rs /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/windows-sys-0.61.2/src/Windows/Win32/System/WindowsProgramming/mod.rs /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/windows-sys-0.61.2/src/Windows/Win32/UI/mod.rs /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/windows-sys-0.61.2/src/Windows/Win32/UI/Shell/mod.rs /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/windows-sys-0.61.2/src/Windows/Win32/UI/WindowsAndMessaging/mod.rs + +/Users/coso/Documents/dev/ai/aiclientproxy/lime/.tmp-check-windows/x86_64-pc-windows-msvc/debug/deps/libwindows_sys-350b46e9a7ff3f21.rmeta: /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/windows-sys-0.61.2/src/lib.rs /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/windows-sys-0.61.2/src/core/mod.rs /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/windows-sys-0.61.2/src/core/literals.rs /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/windows-sys-0.61.2/src/Windows/mod.rs /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/windows-sys-0.61.2/src/Windows/Wdk/mod.rs /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/windows-sys-0.61.2/src/Windows/Wdk/Foundation/mod.rs /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/windows-sys-0.61.2/src/Windows/Wdk/Storage/mod.rs /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/windows-sys-0.61.2/src/Windows/Wdk/Storage/FileSystem/mod.rs /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/windows-sys-0.61.2/src/Windows/Wdk/System/mod.rs /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/windows-sys-0.61.2/src/Windows/Wdk/System/IO/mod.rs /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/windows-sys-0.61.2/src/Windows/Win32/mod.rs /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/windows-sys-0.61.2/src/Windows/Win32/Foundation/mod.rs /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/windows-sys-0.61.2/src/Windows/Win32/Globalization/mod.rs /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/windows-sys-0.61.2/src/Windows/Win32/Graphics/mod.rs /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/windows-sys-0.61.2/src/Windows/Win32/Graphics/Gdi/mod.rs /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/windows-sys-0.61.2/src/Windows/Win32/Networking/mod.rs /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/windows-sys-0.61.2/src/Windows/Win32/Networking/WinSock/mod.rs /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/windows-sys-0.61.2/src/Windows/Win32/Security/mod.rs /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/windows-sys-0.61.2/src/Windows/Win32/Security/Authentication/mod.rs /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/windows-sys-0.61.2/src/Windows/Win32/Security/Authentication/Identity/mod.rs /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/windows-sys-0.61.2/src/Windows/Win32/Security/Credentials/mod.rs /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/windows-sys-0.61.2/src/Windows/Win32/Security/Cryptography/mod.rs /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/windows-sys-0.61.2/src/Windows/Win32/Storage/mod.rs /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/windows-sys-0.61.2/src/Windows/Win32/Storage/FileSystem/mod.rs /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/windows-sys-0.61.2/src/Windows/Win32/System/mod.rs /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/windows-sys-0.61.2/src/Windows/Win32/System/Com/mod.rs /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/windows-sys-0.61.2/src/Windows/Win32/System/Console/mod.rs /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/windows-sys-0.61.2/src/Windows/Win32/System/IO/mod.rs /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/windows-sys-0.61.2/src/Windows/Win32/System/LibraryLoader/mod.rs /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/windows-sys-0.61.2/src/Windows/Win32/System/Memory/mod.rs /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/windows-sys-0.61.2/src/Windows/Win32/System/Pipes/mod.rs /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/windows-sys-0.61.2/src/Windows/Win32/System/Registry/mod.rs /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/windows-sys-0.61.2/src/Windows/Win32/System/SystemInformation/mod.rs /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/windows-sys-0.61.2/src/Windows/Win32/System/SystemServices/mod.rs /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/windows-sys-0.61.2/src/Windows/Win32/System/Threading/mod.rs /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/windows-sys-0.61.2/src/Windows/Win32/System/WindowsProgramming/mod.rs /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/windows-sys-0.61.2/src/Windows/Win32/UI/mod.rs /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/windows-sys-0.61.2/src/Windows/Win32/UI/Shell/mod.rs /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/windows-sys-0.61.2/src/Windows/Win32/UI/WindowsAndMessaging/mod.rs + +/Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/windows-sys-0.61.2/src/lib.rs: +/Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/windows-sys-0.61.2/src/core/mod.rs: +/Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/windows-sys-0.61.2/src/core/literals.rs: +/Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/windows-sys-0.61.2/src/Windows/mod.rs: +/Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/windows-sys-0.61.2/src/Windows/Wdk/mod.rs: +/Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/windows-sys-0.61.2/src/Windows/Wdk/Foundation/mod.rs: +/Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/windows-sys-0.61.2/src/Windows/Wdk/Storage/mod.rs: +/Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/windows-sys-0.61.2/src/Windows/Wdk/Storage/FileSystem/mod.rs: +/Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/windows-sys-0.61.2/src/Windows/Wdk/System/mod.rs: +/Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/windows-sys-0.61.2/src/Windows/Wdk/System/IO/mod.rs: +/Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/windows-sys-0.61.2/src/Windows/Win32/mod.rs: +/Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/windows-sys-0.61.2/src/Windows/Win32/Foundation/mod.rs: +/Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/windows-sys-0.61.2/src/Windows/Win32/Globalization/mod.rs: +/Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/windows-sys-0.61.2/src/Windows/Win32/Graphics/mod.rs: +/Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/windows-sys-0.61.2/src/Windows/Win32/Graphics/Gdi/mod.rs: +/Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/windows-sys-0.61.2/src/Windows/Win32/Networking/mod.rs: +/Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/windows-sys-0.61.2/src/Windows/Win32/Networking/WinSock/mod.rs: +/Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/windows-sys-0.61.2/src/Windows/Win32/Security/mod.rs: +/Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/windows-sys-0.61.2/src/Windows/Win32/Security/Authentication/mod.rs: +/Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/windows-sys-0.61.2/src/Windows/Win32/Security/Authentication/Identity/mod.rs: +/Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/windows-sys-0.61.2/src/Windows/Win32/Security/Credentials/mod.rs: +/Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/windows-sys-0.61.2/src/Windows/Win32/Security/Cryptography/mod.rs: +/Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/windows-sys-0.61.2/src/Windows/Win32/Storage/mod.rs: +/Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/windows-sys-0.61.2/src/Windows/Win32/Storage/FileSystem/mod.rs: +/Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/windows-sys-0.61.2/src/Windows/Win32/System/mod.rs: +/Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/windows-sys-0.61.2/src/Windows/Win32/System/Com/mod.rs: +/Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/windows-sys-0.61.2/src/Windows/Win32/System/Console/mod.rs: +/Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/windows-sys-0.61.2/src/Windows/Win32/System/IO/mod.rs: +/Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/windows-sys-0.61.2/src/Windows/Win32/System/LibraryLoader/mod.rs: +/Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/windows-sys-0.61.2/src/Windows/Win32/System/Memory/mod.rs: +/Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/windows-sys-0.61.2/src/Windows/Win32/System/Pipes/mod.rs: +/Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/windows-sys-0.61.2/src/Windows/Win32/System/Registry/mod.rs: +/Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/windows-sys-0.61.2/src/Windows/Win32/System/SystemInformation/mod.rs: +/Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/windows-sys-0.61.2/src/Windows/Win32/System/SystemServices/mod.rs: +/Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/windows-sys-0.61.2/src/Windows/Win32/System/Threading/mod.rs: +/Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/windows-sys-0.61.2/src/Windows/Win32/System/WindowsProgramming/mod.rs: +/Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/windows-sys-0.61.2/src/Windows/Win32/UI/mod.rs: +/Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/windows-sys-0.61.2/src/Windows/Win32/UI/Shell/mod.rs: +/Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/windows-sys-0.61.2/src/Windows/Win32/UI/WindowsAndMessaging/mod.rs: diff --git a/.tmp-check-windows/x86_64-pc-windows-msvc/debug/deps/windows_sys-e1498cb96446f0e4.d b/.tmp-check-windows/x86_64-pc-windows-msvc/debug/deps/windows_sys-e1498cb96446f0e4.d new file mode 100644 index 000000000..ab6ae720f --- /dev/null +++ b/.tmp-check-windows/x86_64-pc-windows-msvc/debug/deps/windows_sys-e1498cb96446f0e4.d @@ -0,0 +1,40 @@ +/Users/coso/Documents/dev/ai/aiclientproxy/lime/.tmp-check-windows/x86_64-pc-windows-msvc/debug/deps/windows_sys-e1498cb96446f0e4.d: /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/windows-sys-0.60.2/src/lib.rs /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/windows-sys-0.60.2/src/core/mod.rs /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/windows-sys-0.60.2/src/core/literals.rs /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/windows-sys-0.60.2/src/Windows/mod.rs /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/windows-sys-0.60.2/src/Windows/Win32/mod.rs /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/windows-sys-0.60.2/src/Windows/Win32/Foundation/mod.rs /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/windows-sys-0.60.2/src/Windows/Win32/Globalization/mod.rs /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/windows-sys-0.60.2/src/Windows/Win32/Graphics/mod.rs /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/windows-sys-0.60.2/src/Windows/Win32/Graphics/Dwm/mod.rs /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/windows-sys-0.60.2/src/Windows/Win32/Graphics/Gdi/mod.rs /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/windows-sys-0.60.2/src/Windows/Win32/Networking/mod.rs /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/windows-sys-0.60.2/src/Windows/Win32/Networking/WinSock/mod.rs /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/windows-sys-0.60.2/src/Windows/Win32/Security/mod.rs /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/windows-sys-0.60.2/src/Windows/Win32/Security/Credentials/mod.rs /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/windows-sys-0.60.2/src/Windows/Win32/Storage/mod.rs /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/windows-sys-0.60.2/src/Windows/Win32/Storage/FileSystem/mod.rs /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/windows-sys-0.60.2/src/Windows/Win32/System/mod.rs /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/windows-sys-0.60.2/src/Windows/Win32/System/Com/mod.rs /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/windows-sys-0.60.2/src/Windows/Win32/System/DataExchange/mod.rs /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/windows-sys-0.60.2/src/Windows/Win32/System/IO/mod.rs /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/windows-sys-0.60.2/src/Windows/Win32/System/LibraryLoader/mod.rs /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/windows-sys-0.60.2/src/Windows/Win32/System/Memory/mod.rs /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/windows-sys-0.60.2/src/Windows/Win32/System/Ole/mod.rs /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/windows-sys-0.60.2/src/Windows/Win32/System/SystemInformation/mod.rs /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/windows-sys-0.60.2/src/Windows/Win32/System/SystemServices/mod.rs /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/windows-sys-0.60.2/src/Windows/Win32/System/Threading/mod.rs /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/windows-sys-0.60.2/src/Windows/Win32/System/WindowsProgramming/mod.rs /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/windows-sys-0.60.2/src/Windows/Win32/UI/mod.rs /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/windows-sys-0.60.2/src/Windows/Win32/UI/Accessibility/mod.rs /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/windows-sys-0.60.2/src/Windows/Win32/UI/Controls/mod.rs /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/windows-sys-0.60.2/src/Windows/Win32/UI/HiDpi/mod.rs /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/windows-sys-0.60.2/src/Windows/Win32/UI/Input/mod.rs /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/windows-sys-0.60.2/src/Windows/Win32/UI/Input/KeyboardAndMouse/mod.rs /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/windows-sys-0.60.2/src/Windows/Win32/UI/Shell/mod.rs /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/windows-sys-0.60.2/src/Windows/Win32/UI/Shell/Common/mod.rs /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/windows-sys-0.60.2/src/Windows/Win32/UI/WindowsAndMessaging/mod.rs + +/Users/coso/Documents/dev/ai/aiclientproxy/lime/.tmp-check-windows/x86_64-pc-windows-msvc/debug/deps/libwindows_sys-e1498cb96446f0e4.rmeta: /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/windows-sys-0.60.2/src/lib.rs /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/windows-sys-0.60.2/src/core/mod.rs /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/windows-sys-0.60.2/src/core/literals.rs /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/windows-sys-0.60.2/src/Windows/mod.rs /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/windows-sys-0.60.2/src/Windows/Win32/mod.rs /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/windows-sys-0.60.2/src/Windows/Win32/Foundation/mod.rs /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/windows-sys-0.60.2/src/Windows/Win32/Globalization/mod.rs /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/windows-sys-0.60.2/src/Windows/Win32/Graphics/mod.rs /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/windows-sys-0.60.2/src/Windows/Win32/Graphics/Dwm/mod.rs /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/windows-sys-0.60.2/src/Windows/Win32/Graphics/Gdi/mod.rs /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/windows-sys-0.60.2/src/Windows/Win32/Networking/mod.rs /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/windows-sys-0.60.2/src/Windows/Win32/Networking/WinSock/mod.rs /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/windows-sys-0.60.2/src/Windows/Win32/Security/mod.rs /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/windows-sys-0.60.2/src/Windows/Win32/Security/Credentials/mod.rs /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/windows-sys-0.60.2/src/Windows/Win32/Storage/mod.rs /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/windows-sys-0.60.2/src/Windows/Win32/Storage/FileSystem/mod.rs /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/windows-sys-0.60.2/src/Windows/Win32/System/mod.rs /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/windows-sys-0.60.2/src/Windows/Win32/System/Com/mod.rs /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/windows-sys-0.60.2/src/Windows/Win32/System/DataExchange/mod.rs /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/windows-sys-0.60.2/src/Windows/Win32/System/IO/mod.rs /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/windows-sys-0.60.2/src/Windows/Win32/System/LibraryLoader/mod.rs /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/windows-sys-0.60.2/src/Windows/Win32/System/Memory/mod.rs /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/windows-sys-0.60.2/src/Windows/Win32/System/Ole/mod.rs /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/windows-sys-0.60.2/src/Windows/Win32/System/SystemInformation/mod.rs /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/windows-sys-0.60.2/src/Windows/Win32/System/SystemServices/mod.rs /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/windows-sys-0.60.2/src/Windows/Win32/System/Threading/mod.rs /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/windows-sys-0.60.2/src/Windows/Win32/System/WindowsProgramming/mod.rs /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/windows-sys-0.60.2/src/Windows/Win32/UI/mod.rs /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/windows-sys-0.60.2/src/Windows/Win32/UI/Accessibility/mod.rs /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/windows-sys-0.60.2/src/Windows/Win32/UI/Controls/mod.rs /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/windows-sys-0.60.2/src/Windows/Win32/UI/HiDpi/mod.rs /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/windows-sys-0.60.2/src/Windows/Win32/UI/Input/mod.rs /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/windows-sys-0.60.2/src/Windows/Win32/UI/Input/KeyboardAndMouse/mod.rs /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/windows-sys-0.60.2/src/Windows/Win32/UI/Shell/mod.rs /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/windows-sys-0.60.2/src/Windows/Win32/UI/Shell/Common/mod.rs /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/windows-sys-0.60.2/src/Windows/Win32/UI/WindowsAndMessaging/mod.rs + +/Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/windows-sys-0.60.2/src/lib.rs: +/Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/windows-sys-0.60.2/src/core/mod.rs: +/Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/windows-sys-0.60.2/src/core/literals.rs: +/Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/windows-sys-0.60.2/src/Windows/mod.rs: +/Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/windows-sys-0.60.2/src/Windows/Win32/mod.rs: +/Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/windows-sys-0.60.2/src/Windows/Win32/Foundation/mod.rs: +/Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/windows-sys-0.60.2/src/Windows/Win32/Globalization/mod.rs: +/Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/windows-sys-0.60.2/src/Windows/Win32/Graphics/mod.rs: +/Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/windows-sys-0.60.2/src/Windows/Win32/Graphics/Dwm/mod.rs: +/Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/windows-sys-0.60.2/src/Windows/Win32/Graphics/Gdi/mod.rs: +/Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/windows-sys-0.60.2/src/Windows/Win32/Networking/mod.rs: +/Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/windows-sys-0.60.2/src/Windows/Win32/Networking/WinSock/mod.rs: +/Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/windows-sys-0.60.2/src/Windows/Win32/Security/mod.rs: +/Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/windows-sys-0.60.2/src/Windows/Win32/Security/Credentials/mod.rs: +/Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/windows-sys-0.60.2/src/Windows/Win32/Storage/mod.rs: +/Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/windows-sys-0.60.2/src/Windows/Win32/Storage/FileSystem/mod.rs: +/Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/windows-sys-0.60.2/src/Windows/Win32/System/mod.rs: +/Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/windows-sys-0.60.2/src/Windows/Win32/System/Com/mod.rs: +/Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/windows-sys-0.60.2/src/Windows/Win32/System/DataExchange/mod.rs: +/Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/windows-sys-0.60.2/src/Windows/Win32/System/IO/mod.rs: +/Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/windows-sys-0.60.2/src/Windows/Win32/System/LibraryLoader/mod.rs: +/Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/windows-sys-0.60.2/src/Windows/Win32/System/Memory/mod.rs: +/Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/windows-sys-0.60.2/src/Windows/Win32/System/Ole/mod.rs: +/Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/windows-sys-0.60.2/src/Windows/Win32/System/SystemInformation/mod.rs: +/Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/windows-sys-0.60.2/src/Windows/Win32/System/SystemServices/mod.rs: +/Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/windows-sys-0.60.2/src/Windows/Win32/System/Threading/mod.rs: +/Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/windows-sys-0.60.2/src/Windows/Win32/System/WindowsProgramming/mod.rs: +/Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/windows-sys-0.60.2/src/Windows/Win32/UI/mod.rs: +/Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/windows-sys-0.60.2/src/Windows/Win32/UI/Accessibility/mod.rs: +/Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/windows-sys-0.60.2/src/Windows/Win32/UI/Controls/mod.rs: +/Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/windows-sys-0.60.2/src/Windows/Win32/UI/HiDpi/mod.rs: +/Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/windows-sys-0.60.2/src/Windows/Win32/UI/Input/mod.rs: +/Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/windows-sys-0.60.2/src/Windows/Win32/UI/Input/KeyboardAndMouse/mod.rs: +/Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/windows-sys-0.60.2/src/Windows/Win32/UI/Shell/mod.rs: +/Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/windows-sys-0.60.2/src/Windows/Win32/UI/Shell/Common/mod.rs: +/Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/windows-sys-0.60.2/src/Windows/Win32/UI/WindowsAndMessaging/mod.rs: diff --git a/.tmp-check-windows/x86_64-pc-windows-msvc/debug/deps/windows_targets-599f14682482add4.d b/.tmp-check-windows/x86_64-pc-windows-msvc/debug/deps/windows_targets-599f14682482add4.d new file mode 100644 index 000000000..c8b2b4838 --- /dev/null +++ b/.tmp-check-windows/x86_64-pc-windows-msvc/debug/deps/windows_targets-599f14682482add4.d @@ -0,0 +1,6 @@ +/Users/coso/Documents/dev/ai/aiclientproxy/lime/.tmp-check-windows/x86_64-pc-windows-msvc/debug/deps/windows_targets-599f14682482add4.d: /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/windows-targets-0.53.5/src/lib.rs /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/windows-targets-0.53.5/src/../readme.md + +/Users/coso/Documents/dev/ai/aiclientproxy/lime/.tmp-check-windows/x86_64-pc-windows-msvc/debug/deps/libwindows_targets-599f14682482add4.rmeta: /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/windows-targets-0.53.5/src/lib.rs /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/windows-targets-0.53.5/src/../readme.md + +/Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/windows-targets-0.53.5/src/lib.rs: +/Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/windows-targets-0.53.5/src/../readme.md: diff --git a/.tmp-check-windows/x86_64-pc-windows-msvc/debug/deps/windows_targets-8045cca9d729b55e.d b/.tmp-check-windows/x86_64-pc-windows-msvc/debug/deps/windows_targets-8045cca9d729b55e.d new file mode 100644 index 000000000..f3966e707 --- /dev/null +++ b/.tmp-check-windows/x86_64-pc-windows-msvc/debug/deps/windows_targets-8045cca9d729b55e.d @@ -0,0 +1,5 @@ +/Users/coso/Documents/dev/ai/aiclientproxy/lime/.tmp-check-windows/x86_64-pc-windows-msvc/debug/deps/windows_targets-8045cca9d729b55e.d: /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/windows-targets-0.52.6/src/lib.rs + +/Users/coso/Documents/dev/ai/aiclientproxy/lime/.tmp-check-windows/x86_64-pc-windows-msvc/debug/deps/libwindows_targets-8045cca9d729b55e.rmeta: /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/windows-targets-0.52.6/src/lib.rs + +/Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/windows-targets-0.52.6/src/lib.rs: diff --git a/.tmp-check-windows/x86_64-pc-windows-msvc/debug/deps/windows_x86_64_msvc-b8d0ed6d1d2d1861.d b/.tmp-check-windows/x86_64-pc-windows-msvc/debug/deps/windows_x86_64_msvc-b8d0ed6d1d2d1861.d new file mode 100644 index 000000000..42c66b937 --- /dev/null +++ b/.tmp-check-windows/x86_64-pc-windows-msvc/debug/deps/windows_x86_64_msvc-b8d0ed6d1d2d1861.d @@ -0,0 +1,5 @@ +/Users/coso/Documents/dev/ai/aiclientproxy/lime/.tmp-check-windows/x86_64-pc-windows-msvc/debug/deps/windows_x86_64_msvc-b8d0ed6d1d2d1861.d: /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/windows_x86_64_msvc-0.53.1/src/lib.rs + +/Users/coso/Documents/dev/ai/aiclientproxy/lime/.tmp-check-windows/x86_64-pc-windows-msvc/debug/deps/libwindows_x86_64_msvc-b8d0ed6d1d2d1861.rmeta: /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/windows_x86_64_msvc-0.53.1/src/lib.rs + +/Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/windows_x86_64_msvc-0.53.1/src/lib.rs: diff --git a/.tmp-check-windows/x86_64-pc-windows-msvc/debug/deps/windows_x86_64_msvc-f72ea594af6116cf.d b/.tmp-check-windows/x86_64-pc-windows-msvc/debug/deps/windows_x86_64_msvc-f72ea594af6116cf.d new file mode 100644 index 000000000..524de54b2 --- /dev/null +++ b/.tmp-check-windows/x86_64-pc-windows-msvc/debug/deps/windows_x86_64_msvc-f72ea594af6116cf.d @@ -0,0 +1,5 @@ +/Users/coso/Documents/dev/ai/aiclientproxy/lime/.tmp-check-windows/x86_64-pc-windows-msvc/debug/deps/windows_x86_64_msvc-f72ea594af6116cf.d: /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/windows_x86_64_msvc-0.52.6/src/lib.rs + +/Users/coso/Documents/dev/ai/aiclientproxy/lime/.tmp-check-windows/x86_64-pc-windows-msvc/debug/deps/libwindows_x86_64_msvc-f72ea594af6116cf.rmeta: /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/windows_x86_64_msvc-0.52.6/src/lib.rs + +/Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/windows_x86_64_msvc-0.52.6/src/lib.rs: diff --git a/.tmp-check-windows/x86_64-pc-windows-msvc/debug/deps/write16-61eb410e7bee75d5.d b/.tmp-check-windows/x86_64-pc-windows-msvc/debug/deps/write16-61eb410e7bee75d5.d new file mode 100644 index 000000000..237384991 --- /dev/null +++ b/.tmp-check-windows/x86_64-pc-windows-msvc/debug/deps/write16-61eb410e7bee75d5.d @@ -0,0 +1,5 @@ +/Users/coso/Documents/dev/ai/aiclientproxy/lime/.tmp-check-windows/x86_64-pc-windows-msvc/debug/deps/write16-61eb410e7bee75d5.d: /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/write16-1.0.0/src/lib.rs + +/Users/coso/Documents/dev/ai/aiclientproxy/lime/.tmp-check-windows/x86_64-pc-windows-msvc/debug/deps/libwrite16-61eb410e7bee75d5.rmeta: /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/write16-1.0.0/src/lib.rs + +/Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/write16-1.0.0/src/lib.rs: diff --git a/.tmp-check-windows/x86_64-pc-windows-msvc/debug/deps/writeable-e9e67b9743be3a74.d b/.tmp-check-windows/x86_64-pc-windows-msvc/debug/deps/writeable-e9e67b9743be3a74.d new file mode 100644 index 000000000..fee3c9fe7 --- /dev/null +++ b/.tmp-check-windows/x86_64-pc-windows-msvc/debug/deps/writeable-e9e67b9743be3a74.d @@ -0,0 +1,12 @@ +/Users/coso/Documents/dev/ai/aiclientproxy/lime/.tmp-check-windows/x86_64-pc-windows-msvc/debug/deps/writeable-e9e67b9743be3a74.d: /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/writeable-0.6.2/src/lib.rs /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/writeable-0.6.2/src/cmp.rs /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/writeable-0.6.2/src/impls.rs /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/writeable-0.6.2/src/ops.rs /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/writeable-0.6.2/src/parts_write_adapter.rs /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/writeable-0.6.2/src/testing.rs /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/writeable-0.6.2/src/to_string_or_borrow.rs /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/writeable-0.6.2/src/try_writeable.rs + +/Users/coso/Documents/dev/ai/aiclientproxy/lime/.tmp-check-windows/x86_64-pc-windows-msvc/debug/deps/libwriteable-e9e67b9743be3a74.rmeta: /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/writeable-0.6.2/src/lib.rs /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/writeable-0.6.2/src/cmp.rs /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/writeable-0.6.2/src/impls.rs /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/writeable-0.6.2/src/ops.rs /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/writeable-0.6.2/src/parts_write_adapter.rs /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/writeable-0.6.2/src/testing.rs /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/writeable-0.6.2/src/to_string_or_borrow.rs /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/writeable-0.6.2/src/try_writeable.rs + +/Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/writeable-0.6.2/src/lib.rs: +/Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/writeable-0.6.2/src/cmp.rs: +/Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/writeable-0.6.2/src/impls.rs: +/Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/writeable-0.6.2/src/ops.rs: +/Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/writeable-0.6.2/src/parts_write_adapter.rs: +/Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/writeable-0.6.2/src/testing.rs: +/Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/writeable-0.6.2/src/to_string_or_borrow.rs: +/Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/writeable-0.6.2/src/try_writeable.rs: diff --git a/.tmp-check-windows/x86_64-pc-windows-msvc/debug/deps/zerocopy-14fc192b4b0dd1d9.d b/.tmp-check-windows/x86_64-pc-windows-msvc/debug/deps/zerocopy-14fc192b4b0dd1d9.d new file mode 100644 index 000000000..42b8698b2 --- /dev/null +++ b/.tmp-check-windows/x86_64-pc-windows-msvc/debug/deps/zerocopy-14fc192b4b0dd1d9.d @@ -0,0 +1,25 @@ +/Users/coso/Documents/dev/ai/aiclientproxy/lime/.tmp-check-windows/x86_64-pc-windows-msvc/debug/deps/zerocopy-14fc192b4b0dd1d9.d: /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/zerocopy-0.8.39/src/lib.rs /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/zerocopy-0.8.39/src/util/mod.rs /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/zerocopy-0.8.39/src/util/macros.rs /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/zerocopy-0.8.39/src/util/macro_util.rs /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/zerocopy-0.8.39/src/byte_slice.rs /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/zerocopy-0.8.39/src/byteorder.rs /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/zerocopy-0.8.39/src/deprecated.rs /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/zerocopy-0.8.39/src/error.rs /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/zerocopy-0.8.39/src/impls.rs /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/zerocopy-0.8.39/src/layout.rs /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/zerocopy-0.8.39/src/macros.rs /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/zerocopy-0.8.39/src/pointer/mod.rs /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/zerocopy-0.8.39/src/pointer/inner.rs /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/zerocopy-0.8.39/src/pointer/invariant.rs /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/zerocopy-0.8.39/src/pointer/ptr.rs /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/zerocopy-0.8.39/src/pointer/transmute.rs /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/zerocopy-0.8.39/src/ref.rs /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/zerocopy-0.8.39/src/split_at.rs /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/zerocopy-0.8.39/src/wrappers.rs + +/Users/coso/Documents/dev/ai/aiclientproxy/lime/.tmp-check-windows/x86_64-pc-windows-msvc/debug/deps/libzerocopy-14fc192b4b0dd1d9.rmeta: /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/zerocopy-0.8.39/src/lib.rs /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/zerocopy-0.8.39/src/util/mod.rs /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/zerocopy-0.8.39/src/util/macros.rs /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/zerocopy-0.8.39/src/util/macro_util.rs /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/zerocopy-0.8.39/src/byte_slice.rs /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/zerocopy-0.8.39/src/byteorder.rs /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/zerocopy-0.8.39/src/deprecated.rs /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/zerocopy-0.8.39/src/error.rs /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/zerocopy-0.8.39/src/impls.rs /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/zerocopy-0.8.39/src/layout.rs /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/zerocopy-0.8.39/src/macros.rs /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/zerocopy-0.8.39/src/pointer/mod.rs /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/zerocopy-0.8.39/src/pointer/inner.rs /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/zerocopy-0.8.39/src/pointer/invariant.rs /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/zerocopy-0.8.39/src/pointer/ptr.rs /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/zerocopy-0.8.39/src/pointer/transmute.rs /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/zerocopy-0.8.39/src/ref.rs /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/zerocopy-0.8.39/src/split_at.rs /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/zerocopy-0.8.39/src/wrappers.rs + +/Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/zerocopy-0.8.39/src/lib.rs: +/Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/zerocopy-0.8.39/src/util/mod.rs: +/Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/zerocopy-0.8.39/src/util/macros.rs: +/Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/zerocopy-0.8.39/src/util/macro_util.rs: +/Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/zerocopy-0.8.39/src/byte_slice.rs: +/Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/zerocopy-0.8.39/src/byteorder.rs: +/Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/zerocopy-0.8.39/src/deprecated.rs: +/Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/zerocopy-0.8.39/src/error.rs: +/Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/zerocopy-0.8.39/src/impls.rs: +/Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/zerocopy-0.8.39/src/layout.rs: +/Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/zerocopy-0.8.39/src/macros.rs: +/Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/zerocopy-0.8.39/src/pointer/mod.rs: +/Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/zerocopy-0.8.39/src/pointer/inner.rs: +/Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/zerocopy-0.8.39/src/pointer/invariant.rs: +/Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/zerocopy-0.8.39/src/pointer/ptr.rs: +/Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/zerocopy-0.8.39/src/pointer/transmute.rs: +/Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/zerocopy-0.8.39/src/ref.rs: +/Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/zerocopy-0.8.39/src/split_at.rs: +/Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/zerocopy-0.8.39/src/wrappers.rs: + +# env-dep:CARGO_PKG_VERSION=0.8.39 diff --git a/.tmp-check-windows/x86_64-pc-windows-msvc/debug/deps/zeroize-f5ce34c3eee9e52c.d b/.tmp-check-windows/x86_64-pc-windows-msvc/debug/deps/zeroize-f5ce34c3eee9e52c.d new file mode 100644 index 000000000..2be6739a6 --- /dev/null +++ b/.tmp-check-windows/x86_64-pc-windows-msvc/debug/deps/zeroize-f5ce34c3eee9e52c.d @@ -0,0 +1,6 @@ +/Users/coso/Documents/dev/ai/aiclientproxy/lime/.tmp-check-windows/x86_64-pc-windows-msvc/debug/deps/zeroize-f5ce34c3eee9e52c.d: /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/zeroize-1.8.2/src/lib.rs /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/zeroize-1.8.2/src/x86.rs + +/Users/coso/Documents/dev/ai/aiclientproxy/lime/.tmp-check-windows/x86_64-pc-windows-msvc/debug/deps/libzeroize-f5ce34c3eee9e52c.rmeta: /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/zeroize-1.8.2/src/lib.rs /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/zeroize-1.8.2/src/x86.rs + +/Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/zeroize-1.8.2/src/lib.rs: +/Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/zeroize-1.8.2/src/x86.rs: diff --git a/.tmp-check-windows/x86_64-pc-windows-msvc/debug/deps/zmij-c5fdde5403450856.d b/.tmp-check-windows/x86_64-pc-windows-msvc/debug/deps/zmij-c5fdde5403450856.d new file mode 100644 index 000000000..d1f0ca310 --- /dev/null +++ b/.tmp-check-windows/x86_64-pc-windows-msvc/debug/deps/zmij-c5fdde5403450856.d @@ -0,0 +1,7 @@ +/Users/coso/Documents/dev/ai/aiclientproxy/lime/.tmp-check-windows/x86_64-pc-windows-msvc/debug/deps/zmij-c5fdde5403450856.d: /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/zmij-1.0.21/src/lib.rs /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/zmij-1.0.21/src/stdarch_x86.rs /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/zmij-1.0.21/src/traits.rs + +/Users/coso/Documents/dev/ai/aiclientproxy/lime/.tmp-check-windows/x86_64-pc-windows-msvc/debug/deps/libzmij-c5fdde5403450856.rmeta: /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/zmij-1.0.21/src/lib.rs /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/zmij-1.0.21/src/stdarch_x86.rs /Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/zmij-1.0.21/src/traits.rs + +/Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/zmij-1.0.21/src/lib.rs: +/Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/zmij-1.0.21/src/stdarch_x86.rs: +/Users/coso/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/zmij-1.0.21/src/traits.rs: diff --git a/AGENTS.md b/AGENTS.md index eabdf8d80..bf5750340 100644 --- a/AGENTS.md +++ b/AGENTS.md @@ -53,6 +53,7 @@ - **任务 / 子代理 taxonomy**:`docs/aiprompts/task-agent-taxonomy.md` - **远程运行时**:`docs/aiprompts/remote-runtime.md` - **记忆 / 压缩主链**:`docs/aiprompts/memory-compaction.md` +- **文件持久化主链**:`docs/aiprompts/persistence-map.md` - **状态 / 历史 / 遥测主链**:`docs/aiprompts/state-history-telemetry.md` - **治理与收口**:`docs/aiprompts/governance.md` - **Harness Engine 治理**:`docs/aiprompts/harness-engine-governance.md` diff --git a/RELEASE_NOTES.md b/RELEASE_NOTES.md index a517685a2..2a56180c7 100644 --- a/RELEASE_NOTES.md +++ b/RELEASE_NOTES.md @@ -1,8 +1,8 @@ -## Lime v1.11.0 +## Lime v1.12.0 ### ✨ 主要更新 -- 本次 `v1.11.0` 重点把 Harness Engine 的验证事实源进一步收口到同一条主链:`evidence / analysis / review / dashboard / cleanup` 现在共享同一套 verification facts 语义,前端 review 与 evidence 展示也开始复用统一的验证结果区块 +- 本次 `v1.12.0` 重点把 Harness Engine 的验证事实源进一步收口到同一条主链:`evidence / analysis / review / dashboard / cleanup` 现在共享同一套 verification facts 语义,前端 review 与 evidence 展示也开始复用统一的验证结果区块 - Agent 工作台继续围绕 General Workbench、Harness 状态、Tool Search / Tool Call、Inline Process Step、Message List 与 Review Decision 做交互收敛,工作区输入发送与场景运行时同步补齐了一批回归测试 - 资源工作台补上图片资源工作台与分类浏览能力,Provider Pool 同步把 Prompt Cache 认知前置到配置 UI,`anthropic-compatible` 渠道与官方兼容 Host 的展示口径进一步统一 - 仓库治理继续做减法:独立 `terminal / tools / image-gen / video` 页面面已下线,只保留当前主路径需要的运行时与 API 能力,侧边栏与旧页面残留同步清退 @@ -10,10 +10,10 @@ ### 🔗 版本与发布同步 -- 应用、Rust workspace 与 CLI npm wrapper 版本已统一提升到 `1.11.0` +- 应用、Rust workspace 与 CLI npm wrapper 版本已统一提升到 `1.12.0` - 应用版本入口已对齐到 `package.json`、`src-tauri/Cargo.toml`、`src-tauri/tauri.conf.json`、`src-tauri/tauri.conf.headless.json` - `package-lock.json`、`src-tauri/Cargo.lock`、`packages/lime-cli-npm/package.json` 与 CLI README 示例已同步到当前版本 -- 本次发布目标 tag 为 `v1.11.0` +- 本次发布目标 tag 为 `v1.12.0` ### 🧪 已执行校验 @@ -25,7 +25,7 @@ ### ⏳ 待执行发布动作 - `cargo fmt --manifest-path "src-tauri/Cargo.toml" --all` -- 创建并推送 `v1.11.0` tag +- 创建并推送 `v1.12.0` tag - 推送当前分支到 GitHub ### 📝 发布说明 @@ -35,4 +35,4 @@ --- -**完整变更**: `v1.10.0` -> `v1.11.0` +**完整变更**: `v1.11.0` -> `v1.12.0` diff --git a/docs/README.md b/docs/README.md index c3de230f7..4123dacbc 100644 --- a/docs/README.md +++ b/docs/README.md @@ -37,6 +37,7 @@ - `aiprompts/task-agent-taxonomy.md`:Task / Agent / Coordinator current taxonomy 与边界归属 - `aiprompts/remote-runtime.md`:Remote runtime current 主链、current/compat 分类与远程入口归属 - `aiprompts/memory-compaction.md`:Memory / Compaction current 主链、来源链/持久记忆/压缩边界与 current/compat 分类 +- `aiprompts/persistence-map.md`:Runtime 文件快照持久化主链、FileArtifact/sidecar/version/checkpoint 边界 - `aiprompts/state-history-telemetry.md`:State / History / Telemetry current 主链、session/thread/request/evidence/history 边界与 current/compat 分类 - `develop/scheduler-task-governance-p1.md`:调度任务治理 P1(连续失败、自动停用、冷却恢复) - `roadmap/lime-skills-standardization-roadmap.md`:Skills 标准化与产品化路线图 diff --git a/docs/aiprompts/README.md b/docs/aiprompts/README.md index fccc03faa..46518ef6a 100644 --- a/docs/aiprompts/README.md +++ b/docs/aiprompts/README.md @@ -20,6 +20,7 @@ - `task-agent-taxonomy.md` - Task / Agent / Coordinator current taxonomy、current/compat 分类与协调边界 - `remote-runtime.md` - Remote runtime current 主链、远程入口 current/compat 分类与控制面归属 - `memory-compaction.md` - Memory / Compaction current 主链、来源链/持久记忆/压缩边界与 current/compat 分类 +- `persistence-map.md` - Runtime 文件快照持久化主链、artifact sidecar/version/checkpoint 边界 - `state-history-telemetry.md` - State / History / Telemetry current 主链、session/thread/request/evidence/history 边界与 current/compat 分类 - `governance.md` - 新旧并存治理、迁移收口、禁止回流 - `harness-engine-governance.md` - Harness Engine 事实源、evidence pack、replay / analysis / review 治理规范 @@ -67,6 +68,7 @@ - **改 subagent / automation / execution tracker / scheduler taxonomy**:先读 `task-agent-taxonomy.md` - **改 channels / browser connector / DevBridge / OpenClaw remote runtime**:先读 `remote-runtime.md` - **改记忆来源链 / working memory / durable memory / Team Memory / compaction**:先读 `memory-compaction.md` +- **改 FileArtifact / artifact sidecar / versions / file checkpoint / evidence 中的文件快照**:先读 `persistence-map.md` - **改 session detail / thread read / requestTelemetry / evidence / history-record**:先读 `state-history-telemetry.md` - **改 Tauri 命令 / Bridge / mock**:先读 `commands.md`,再看 `quality-workflow.md` - **改 `@` / `/` / 轻卡 / viewer / ServiceSkill 场景**:先读 `command-runtime.md` diff --git a/docs/aiprompts/commands.md b/docs/aiprompts/commands.md index 0c5de7678..600c06dff 100644 --- a/docs/aiprompts/commands.md +++ b/docs/aiprompts/commands.md @@ -97,6 +97,22 @@ - 若服务端下发的 `renderContract` 超出 Lime 当前支持范围,优先由服务端回退到已支持类型,客户端也必须退化到通用 timeline / artifact 展示 - `scene` 的展示命名、推荐文案和补参标题应继续围绕创作生产语义收敛;`@发布合规` 只是发布前风控检查,不应被产品文案扩写成独立“法务场景”,也不要在目录里长出“建立”这类脱离创作目标的泛入口 +`SceneApp` 的统一目录与运行前规划命令同样只允许走单一网关。当前前端主入口为 `src/lib/api/sceneapp.ts`,统一承接: + +- `sceneapp_list_catalog` +- `sceneapp_get_descriptor` +- `sceneapp_plan_launch` +- `sceneapp_create_automation_job` +- `sceneapp_list_runs` +- `sceneapp_get_run_summary` +- `sceneapp_get_scorecard` + +固定约束: + +- `SceneApp` 命令当前属于目录查询、运行前规划与治理摘要主链,不应在页面组件里直接裸 `invoke` +- 新的 SceneApp UI 先消费 `SceneAppDescriptor / SceneAppPlanResult / SceneAppScorecard`,不要重新从 `serviceSkills.ts`、`skillCatalog.ts`、卡片配置和 selector 里各自拼语义 +- 真正的执行仍应通过 runtime adapter 继续挂回现有 `agent turn / browser_assist / automation_job / cloud_scene` 主链;`sceneapp_*` 不用于重新发明第二套 runtime taxonomy + 技能脚手架创建同样只允许走当前命令网关主链: - 前端统一经由 `src/lib/api/skills.ts -> create_skill_scaffold_for_app` diff --git a/docs/aiprompts/design-language.md b/docs/aiprompts/design-language.md index e08138da4..1107008d9 100644 --- a/docs/aiprompts/design-language.md +++ b/docs/aiprompts/design-language.md @@ -106,12 +106,28 @@ Lime 的整体界面应当接近以下气质: 每一层都要有独立职责,不要把标题、筛选、统计、主操作全挤进一行。 +复杂工作台默认再加一层判断: + +- 如果页面同时承载“目录、详情、治理、自动化、历史运行”等不同任务阶段,不要继续堆在同一屏 +- 优先拆成分页、子页或明确的二级导航,而不是靠一长页从上往下堆卡片 +- 一个分页只回答一类核心问题: + - 目录页回答“选哪条场景” + - 详情页回答“这条场景如何启动、交付什么、依赖什么” + - 治理页回答“最近运行是否值得继续放量、问题卡在哪里” +- 分页切换后仍要保留“当前场景”摘要,避免用户在子页里失去上下文 +- 复杂工作台的默认目标是降低认知切换成本,而不是在一屏里展示更多信息 +- 分页级空态不能只写“暂无数据”;必须明确告诉用户下一步该回目录、清空筛选,还是先去详情页完成首轮启动 +- 如果分页之间的先后关系明确,优先提供工作流导轨或分步卡,让用户知道自己正处在“选品 / 启动 / 治理”的哪一步 + ### 3. 卡片型列表页 - 卡片页优先考虑桌面端横向效率 - 列数根据容器宽度自适应 - 卡片之间的间距要比普通表单更大 - 同一行卡片高度尽量对齐 +- 如果卡片承担“进入下一层”的职责,必须提供明确导航语义 +- 不要只给“选中态边框”却没有后续页面变化,避免用户误以为点击无效 +- 可点击卡片应直接进入详情、配置或治理下一层;提示文案要和点击结果一致 ## 文字排版 @@ -223,6 +239,11 @@ Lime 的整体界面应当接近以下气质: - 工作台主操作应与统计信息分栏,而不是挤成一行 - 分组标题应使用“中文主标题 + 英文辅助标签”的组合,而不是反过来 - Team Workspace / 浮层类界面应避免半透明主体和多层套卡,否则会放大遮挡感与层级混乱 +- `SceneApp` 这类复杂工作台不应把“场景目录、场景详情、治理复盘”继续堆在同一页里,而应按用户任务路径拆成分页 +- 目录卡片如果承担“进入详情”的职责,就应点击后直接切页,不要停留在只有选中态的伪交互 +- 分页工作台要在顶部持续展示“当前场景”摘要,让用户在目录、详情、治理之间切换时始终知道自己正在处理哪条场景 +- 分页工作台的空态也必须按任务路径设计,直接把用户引回“回目录选场景 / 清空筛选 / 先做首轮运行”这些下一步动作 +- 分页工作台如果存在天然顺序,就应用业务向的 step rail 或流程导轨把“先选场景、再补启动、最后看治理”直接说清楚 ## 关联文档 diff --git a/docs/aiprompts/memory-compaction.md b/docs/aiprompts/memory-compaction.md index e9682353b..628bd826c 100644 --- a/docs/aiprompts/memory-compaction.md +++ b/docs/aiprompts/memory-compaction.md @@ -55,14 +55,19 @@ 当前这里负责: 1. 解析 managed / user / project / local / rules / durable / additional 记忆来源。 -2. 读取与写入自动记忆入口 `MEMORY.md` 及主题 note。 +2. 初始化 `memdir` 套件,并读取与写入 `MEMORY.md`、四类 `README.md` 与 topic note。 3. 生成 `.lime/AGENTS.md` / `.lime/AGENTS.local.md` 模板与 `.gitignore` 守卫。 -4. 为 runtime prefetch 和 Memory 页面提供统一来源链读模型。 +4. 为 `feedback / project` 写入执行结构化约束,并拒绝相对日期项目记忆。 +5. `memory_cleanup_memdir` 负责去重索引、裁剪 README 历史段落,并把旧 topic 日志收口为当前有效版本。 +6. 为 runtime prefetch 和 Memory 页面提供统一来源链读模型,包括 `source_bucket / provider / memory_type / updated_at` 等 memdir 元数据。 固定规则: - 来源链解析统一收口到 `resolve_effective_sources(...)`。 - 自动记忆目录定位与入口索引统一收口到 `auto_memory_service.rs`。 +- `memdir` 默认以 `MEMORY.md -> user|feedback|project|reference` 四类目录组织;topic 文件必须继续挂在这条索引主链下。 +- typed topic note 默认按“同 topic 一条当前记忆”维护,后续写入应覆盖旧内容,而不是无限追加时间戳历史。 +- `memory_cleanup_memdir` 只做治理减法:清掉重复链接、缺失链接、过旧 README 历史段落和 topic 日志,不再额外长第二套归档真相。 - 页面、Hook 或 runtime 不允许再各自扫描另一套“真实来源链”。 ### 2. 单回合 prefetch、工作记忆与压缩状态 @@ -148,11 +153,13 @@ 2. 设置页复用同一套来源链、自动记忆与命中层状态,而不是再长另一份配置解释。 3. 线程可靠性面板与记忆预演卡片继续消费 `memory_runtime_prefetch_for_turn` 的结果。 4. DevBridge dispatcher、mock priority 和默认 mock 只为 current 命令提供桥接与兜底,不构成新的事实源。 +5. `MemorySettings` 里的 `整理 memdir` 入口必须继续直连 `memory_cleanup_memdir`,不能在前端本地伪造“已整理”状态。 固定规则: - 页面层只消费 `memory_runtime_*` / `unified_memory_*` 输出,不自己读磁盘或数据库重组另一套真相。 - 浏览器模式下的 mock priority 只允许模拟 current 命令结果,不能发明额外字段或第二套状态含义。 +- memdir prompt source 的 linked item 预取优先级应继续偏向“更具体的 topic note + 最近更新时间”,而不是把 README 索引长期压过真正的当前记忆。 ## current / compat / deprecated / dead diff --git a/docs/aiprompts/persistence-map.md b/docs/aiprompts/persistence-map.md new file mode 100644 index 000000000..ae96be4a8 --- /dev/null +++ b/docs/aiprompts/persistence-map.md @@ -0,0 +1,110 @@ +# Runtime Persistence Map + +本文件定义 Lime 当前与 Claude Code 持久化对齐相关的单一事实源,重点回答: + +- 线程里的文件快照到底从哪里来 +- `SessionDetail / thread_read / export / replay` 各自应该消费哪层事实 +- 哪些路径属于 current,哪些只是 sidecar 或兼容辅助层 + +## Current 主链 + +当前文件持久化主链固定为: + +`runtime_turn ArtifactSnapshot -> AgentTimeline FileArtifact -> artifact_document_service sidecar versions -> SessionDetail / AgentRuntimeThreadReadModel / agent_runtime_* -> evidence / replay` + +含义如下: + +1. `RuntimeAgentEvent::ArtifactSnapshot` 是运行时写入文件快照的唯一事件入口 +2. 时间线里的 `AgentThreadItemPayload::FileArtifact` 是线程侧唯一事实源 +3. `artifact_document_service` 负责把当前文档与 `versions/vNNNN.artifact.json` 历史快照落到工作区 sidecar +4. `AgentRuntimeThreadReadModel.file_checkpoint_summary` 只做轻量摘要,不复制第二套 transcript +5. 深一点的读取统一走: + - `agent_runtime_list_file_checkpoints` + - `agent_runtime_get_file_checkpoint` + - `agent_runtime_diff_file_checkpoint` +6. `runtime_evidence_pack_service` 与 `runtime_replay_case_service` 统一消费同一份 file checkpoint 读模型,不再各自重新解析 artifact 状态 + +## 事实源分层 + +### 1. Timeline facts + +文件: + +- `src-tauri/src/services/agent_timeline_service.rs` +- `src-tauri/crates/core/src/database/dao/agent_timeline.rs` + +职责: + +- 记录线程里“有哪份文件快照” +- 保留 `path / source / content / metadata` +- 为 `SessionDetail.items` 与 `thread_read` 提供稳定事实 + +约束: + +- 不再为“文件持久化”新增第二套并列事件模型 +- 不从 UI 状态反写 timeline 真相 + +### 2. Sidecar snapshot store + +文件: + +- `src-tauri/src/services/artifact_document_service.rs` + +职责: + +- 把当前 artifact 文档落到工作区 +- 维护 `artifactVersion*` metadata 与历史 `versions/` 快照 +- 提供 `artifactVersionDiff / artifactVersions / artifactDocument / previewText` + +约束: + +- sidecar 负责详情补充,不单独定义 thread 真相 +- 当前 / 历史版本路径都必须继续走工作区相对路径 + +### 3. Runtime read models + +文件: + +- `src-tauri/src/services/runtime_file_checkpoint_service.rs` +- `src-tauri/src/commands/aster_agent_cmd/dto.rs` +- `src/lib/api/agentRuntime/threadClient.ts` + +职责: + +- 把 `FileArtifact + metadata + sidecar snapshot` 收敛成统一读模型 +- 在线程面板暴露“最近文件快照”摘要 +- 给前端、导出与后续治理提供稳定命令边界 + +约束: + +- `thread_read` 只保留轻摘要 +- list / detail / diff 复用同一 service,不在各个导出服务重复解析 + +## Export / Replay 消费口径 + +文件: + +- `src-tauri/src/services/runtime_evidence_pack_service.rs` +- `src-tauri/src/services/runtime_replay_case_service.rs` + +当前约束: + +1. `runtime.json` 与 `artifacts.json` 必须带 `fileCheckpoints / fileCheckpointCount` +2. replay `input.json` 必须带 `fileCheckpoints / fileCheckpointCount` +3. `recentArtifacts` 继续保留,用于路径级快速摘要;`fileCheckpoints` 才是正式快照读模型 + +## 非 current 路径 + +以下不再视为文件持久化 current 主链: + +- 组件本地推导的 artifact 状态 +- 额外维护一套 Claude Code 式 transcript 文件真相 +- analysis / replay / review 各自单独扫描工作区再猜“最新版本” + +如果需要补持久化能力,优先继续扩展: + +- `runtime_file_checkpoint_service` +- `AgentRuntimeThreadReadModel.file_checkpoint_summary` +- `agent_runtime_*file_checkpoint*` 命令边界 + +而不是再开平级旁路。 diff --git a/docs/aiprompts/terminal.md b/docs/aiprompts/terminal.md index b29bde372..c1c526567 100644 --- a/docs/aiprompts/terminal.md +++ b/docs/aiprompts/terminal.md @@ -2,7 +2,7 @@ ## 概述 -Lime 仍保留终端底层能力,用于复用运行时、诊断与会话管理;独立前端 `terminal / sysinfo / files / web` 页面已经下线,不再保留 `src/components/terminal/` 页面模块。 +Lime 仍保留终端底层能力,用于复用运行时、诊断与会话管理;独立前端 `terminal / sysinfo / files / web` 页面已经下线,旧 `src/components/terminal/` 页面模块与 `src/lib/terminal/` 状态侧链都已删除。 ## 目录结构 @@ -14,10 +14,6 @@ src-tauri/src/terminal/ └── commands.rs # 终端命令 src/lib/api/terminal.ts -src/lib/terminal/ -├── store/ # 终端状态与输入态 -├── stickers/ # 终端贴纸状态 -└── vdom/ # VDOM 状态与类型 ``` ## PTY 管理 @@ -53,7 +49,7 @@ impl PtyManager { ## 前端边界 -前端当前只允许通过 `src/lib/api/terminal.ts` 和 `src/lib/terminal/*` 复用终端会话、事件和状态能力,不再新增独立页面壳。 +前端当前只允许通过 `src/lib/api/terminal.ts` 复用终端会话与事件能力;旧 `src/lib/terminal/*` 状态、VDOM、贴纸侧链已删除,不再恢复。 ## Tauri 命令 diff --git a/docs/exec-plans/claude-code-agent-task-runtime-alignment-plan.md b/docs/exec-plans/claude-code-agent-task-runtime-alignment-plan.md index 02d925bba..65d2a089d 100644 --- a/docs/exec-plans/claude-code-agent-task-runtime-alignment-plan.md +++ b/docs/exec-plans/claude-code-agent-task-runtime-alignment-plan.md @@ -79,7 +79,7 @@ ### 已完成 - `npx vitest run "src/components/agent/chat/components/Inputbar/index.test.tsx" "src/components/agent/chat/components/MessageList.test.tsx" "src/components/agent/chat/utils/agentTaskRuntime.test.ts"` -- `npx eslint "src/components/agent/chat/components/AgentTaskRuntimeCard.tsx" "src/components/agent/chat/components/Inputbar/index.tsx" "src/components/agent/chat/components/Inputbar/components/InputbarComposerSection.tsx" "src/components/agent/chat/components/MessageList.tsx" "src/components/agent/chat/workspace/useWorkspaceInputbarSceneRuntime.tsx" "src/components/agent/chat/utils/agentTaskRuntime.ts"` +- `npx eslint "src/components/agent/chat/components/Inputbar/index.tsx" "src/components/agent/chat/components/Inputbar/components/InputbarComposerSection.tsx" "src/components/agent/chat/components/MessageList.tsx" "src/components/agent/chat/workspace/useWorkspaceInputbarSceneRuntime.tsx" "src/components/agent/chat/utils/agentTaskRuntime.ts"` ### 进行中 diff --git a/docs/exec-plans/limenext-plan.md b/docs/exec-plans/limenext-plan.md index 1020214da..3312e91ac 100644 --- a/docs/exec-plans/limenext-plan.md +++ b/docs/exec-plans/limenext-plan.md @@ -1,7 +1,7 @@ # LimeNext 总实施计划 > 状态:进行中 -> 更新时间:2026-04-15 +> 更新时间:2026-04-16 > 上位总纲:`docs/roadmap/limenext/` > 目标:把 LimeNext 从“上位平台定义”推进到“可持续实施的主线计划”,统一产品对象、运行时骨架、远程入口、长时执行、证据治理与场景选品的推进顺序。 @@ -35,6 +35,59 @@ LimeNext 当前不是缺一篇愿景文档,而是缺一条能持续推进的 9. `base-setup-projection-lifecycle.md` 已把装配包发布、灰度、seeded 兜底与回滚链收口成可讨论的事实源。 10. `base-setup-implementation.md` 已把 validator / compiler / rollout gate 的第一版代码落点收口到现有 `ServiceSkillCatalog` 与 launch/runtime 锚点。 11. `src/lib/base-setup/*` 已新增第一版代码骨架,开始把基础设置包下沉到实际 TypeScript 模块与单测。 +12. `src/lib/base-setup/storage.ts`、`bootstrap.ts` 已落地,把基础设置包快照、bootstrap 提取与 compat 编译链收口成独立模块。 +13. `src/lib/api/serviceSkills.ts`、`src/lib/serviceSkillCatalogBootstrap.ts` 已正式接入 `Base Setup Package` 主链,远端刷新与 bootstrap 同步都能直接消费装配包并落基础设置快照。 +14. 默认云端 seeded 目录已从手写 `ServiceSkillCatalog` 迁到手写 `Base Setup Package` + compat 编译产物,开始把装配层推进为真正的内置事实源。 +15. seeded 本地 `local_custom` 项也已迁到手写 `Base Setup Package` + compat 编译产物,`x-article-export` 不再依赖手写 `ServiceSkillItem` 补丁。 +16. `SceneApp` 的 `project pack` 合同已经从基础设置编译层正式接到产品读模型、目录详情页和经营评分页: + - 统一暴露 `deliveryProfile / compositionProfile / scorecardProfile` + - 目录页已经能说明最终交付部件、组合步骤和经营关注点 + - mock 与 Tauri seeded DTO 已同步对齐,避免只在前端测试里存在结构字段 +17. `project pack` 已继续接到真实 `run summary / scorecard` 聚合: + - `artifactCount` 不再是唯一运行结果语义 + - 运行详情已经能解释“交齐几项、还缺什么、卡在哪个失败信号” + - `project pack` 经营评分已改成 `complete_pack_rate / review_pass_rate / publish_conversion_rate` + - `observedFailureSignals / topFailureSignal` 已从真实运行样本回流到产品面 +18. `project pack` 第二阶段已开始接到 `session / evidence` 主链: + - `SceneApp run summary` 在拿到 `sessionId` 时会优先读取真实 `SessionDetail + FileArtifact` + - runtime verification failure 已开始回挂到 `review_blocked` + - 只有缺少 session evidence 时才回退 `AgentRun.metadata.artifact_paths` +19. `project pack` 已开始补齐结构化结果入口,而不是只在运行详情里展示 viewer 文案: + - `SceneAppRunSummary` 已新增稳定 `deliveryArtifactRefs` + - 结果入口会优先从 runtime evidence 解析真实会话产物,并在缺失 session evidence 时回退 metadata artifact path + - 前端已改为复用现有 Agent 文件预览入口打开主稿 / 结果文件,不新增新的 viewer 协议 +20. `project pack` 已把治理入口接到 SceneApp 运行详情,而不再只展示“已接入会话证据”的文字判断: + - `SceneAppRunSummary` 已新增稳定 `governanceArtifactRefs` + - Rust 会按 `sessionId` 组装 `evidence/summary.md` 与 `review/review-decision.*` 的稳定引用 + - 前端继续复用现有 Agent 文件预览入口打开证据摘要、人工复核记录与复核 JSON,不新增新的 SceneApp viewer 协议 +21. `project pack` 已开始把治理入口从“可打开”推进到“缺失时自动补生成”: + - 新增 `sceneapp_prepare_run_governance_artifact` 当前命令 + - SceneApp 页面点击治理入口时会先按制品类型触发 evidence / review 导出,再继续打开对应文件 + - 页面仍只消费 `src/lib/api/sceneapp.ts` 网关,不直接耦合 `agent_runtime_export_*` 命令名 +22. `project pack` 已继续把治理入口从“单文件打开”推进到“业务动作”: + - 运行详情已新增 `治理动作` 区块,而不只是列出治理文件 + - 当前已支持: + - `准备周会复盘包` + - `准备结构化治理包` + - 两类动作都会先经由 `src/lib/api/sceneapp.ts` 批量补齐 evidence / review 制品,再打开对应主治理文件 + - SceneApp 页面仍不直接理解底层 runtime export 命令,也不自己拼接治理路径 +23. `project pack` 已开始把治理能力从“单次运行详情”推进到“页面级治理看板”: + - `SceneAppsPage` 已新增独立 `治理看板` + - 当前会把 `run + scorecard + evidence / review` 翻译成业务向状态,而不是只展示底层技术字段 + - 目录主视图已经能判断这条场景当前更适合: + - 周会复盘 + - 任务中心 / 看板消费 + - 自动化任务跟进 + - 结果编辑 / 发布 + - 页面级治理动作继续复用 `src/lib/api/sceneapp.ts` 与既有文件打开链,不新增平行协议 +24. `SceneAppsPage` 已开始从“单页堆叠工作台”收口到“分页式信息架构”: + - 当前固定拆成 `场景目录 / 场景详情 / 治理复盘` 三个分页 + - `catalog` 只负责选品与筛选,不再同时承载详情和治理解释 + - 目录卡片点击后会直接进入对应 `detail` 分页,而不是只停留在选中态 + - 顶部继续保留“当前场景”摘要,确保分页切换时不丢业务上下文 + - `detail / governance` 已补齐分页级空态与回退动作,不再让用户停在无下一步的空白页 + - 顶部已新增业务向工作流导轨,明确表达 `选场景 -> 补启动 -> 看治理` 的跨页顺序 + - 这条规则已经同步写回 `docs/aiprompts/design-language.md`,作为后续复杂工作台默认设计约束 尚未完成: @@ -47,10 +100,12 @@ LimeNext 当前不是缺一篇愿景文档,而是缺一条能持续推进的 7. 把“主 App 宿主内核”与“基础设置包”分层固定下来,减少场景扩张对客户端发版的依赖。 8. 让基础设置包的 schema 继续下沉到 bootstrap / seeded catalog 可消费的目录投影。 9. 把 `composition blueprint` 从文档口径继续收口到可校验、可投影的装配对象。 -10. 把 `project pack` 的最小交付合同继续对齐 artifact profile 与 viewer 主链。 -11. 把装配包的 validator / projection compiler / rollout gate 真正落成代码或脚本。 -12. 决定第一版是“客户端内编译 package”还是“服务端下发预编译 projection,客户端只做 gate + fallback”。 -13. 决定 `src/lib/base-setup/*` 何时正式接入 `src/lib/api/serviceSkills.ts`,替换当前手写 catalog 来源。 +10. 继续把 `project pack` 的结构化读模型从当前已接通的 `session / evidence + deliveryArtifactRefs` 优先聚合,扩展到更完整的 `artifact validator / request telemetry / evidence summary` 主链。 +11. 把 `project pack` 的治理闭环从当前已接通的“页面级治理看板 + 周会复盘包 / 结构化治理包”继续扩展到自动化任务中心、场景选品与更强的 evidence/review 闭环。 +12. 把装配包从已接通的 `service_skill_catalog + scene_catalog` 继续扩到 `command_catalog` 投影代码。 +13. 决定第一版是“客户端内编译 package”还是“服务端下发预编译 projection,客户端只做 gate + fallback”。 +14. 把剩余 seeded 来源继续收口,重点转到 `command` 与 automation 相关入口,不再保留新的手写 `local_custom` 补丁。 +15. 把分页式 `SceneAppsPage` 继续补成真正的多页面工作台;当前跨页入口、分页级空态和工作流导轨已补齐,剩余重点转到 GUI smoke 交付证明与更强的子页级信息头部。 ## 3. 总目标 @@ -178,7 +233,15 @@ LimeNext 的实施总目标固定为: - `Local Durable SceneApp` 当前样板已固定为 `每日趋势摘要 / 账号增长跟踪` - `x-article-export` 的当前产品合同已固定为“资料包优先 + 同一路径后处理” - `Base Setup` 解耦规则已单独成文,开始固定“什么该下发,什么必须跟宿主升级” -- 下一步不再只是写定义,而是要明确具体聚合对象、入口和周会使用方式 +- `project pack` 已不再只是 schema 词汇,而是已经进入 SceneApp 目录和经营评分读模型 +- `project pack` 已进一步接到真实 `run summary / scorecard` 聚合对象 +- `project pack` 已开始改成 `session / evidence` 优先聚合,而不是只看 tracker metadata +- `project pack` 已开始把真实结果文件入口接到 SceneApp 运行详情,不再只展示 viewer kind 文案 +- `project pack` 已开始把证据摘要 / 人工复核记录 / 复核 JSON 接到同一条运行详情治理面 +- `project pack` 已开始在治理入口点击时自动补生成 evidence / review 文件,而不是让用户先回到 Agent 手动导出 +- `project pack` 已开始把治理面升级成业务动作,当前可直接准备周会复盘包与结构化治理包 +- `project pack` 已开始把治理面抬到 SceneApp 页面级看板,而不再只停留在单次运行详情里 +- 下一步不再只是补页面,而是要把这套治理看板继续接到任务中心、选品口径和后续自动治理主链 ## 5. 默认样板链路 @@ -266,4 +329,37 @@ LimeNext 的实施总目标固定为: 当前下一刀建议固定为: -**把 `composition blueprint` 从文档对象继续收口到基础设置包 schema 与目录投影,再把 `SceneScorecard` 接到真实聚合来源、任务中心 / 场景看板入口与周会节奏;这样 LimeNext 才会从“样板闭环成立”继续推进到“经营面可执行”。** +**把 LimeNext 从“durable automation 已回到装配主链”推进到“gate 定版与组合交付主链收口”。** + +当前已经成立的恢复协议: + +1. `automation -> automation job` +2. `chat / skill -> agent session` +3. `browser_assist -> browser runtime` +4. `cloud_scene -> structured cloud scene resume` +5. `native_skill -> structured service skill resume` + +当前已经补齐的装配收口: + +1. 保持 `SceneAppRunSummary` 继续只暴露稳定恢复引用,而不是让 UI 直接理解底层 metadata: + - `sourceRef` + - `sessionId` + - `browserRuntimeRef` + - `cloudSceneRuntimeRef` + - `nativeSkillRuntimeRef` + - `deliveryArtifactRefs` +2. durable 场景的 automation projection / fallback 已继续收回同一装配主链: + - `Base Setup Package` 已支持 `automationProfiles[]` + - `catalogProjection.automationProfileRef` 已进入 validator / parser / projection metadata / snapshot index + - durable seeded 样板已显式声明 automation profile + - `service-skills/automationDraft.ts` 现已优先消费装配层 schedule / delivery / retry / enabled 预设 +3. `browser-runtime` GUI smoke 与 `verify:local` 当前已重新通过,GUI 交付门槛不再被此前的 CDP 环境问题卡住 + +当前下一步转为: + +1. 决定客户端编译 vs 服务端预编译 gate 的最终定版位置 +2. 把多模态组合样板的 `project pack` 从已接通的真实 artifact + 页面级治理看板继续扩到任务中心与自动治理消费入口 +3. 把 `SceneScorecard` 与周会模板、页面级治理看板和任务中心口径继续打通 +4. 继续让 automation detail / SceneApp run / scorecard 聚合消费同一组 base-setup refs,而不是回退到运行时猜测 + +这样 LimeNext 才会从“目录、启动、复盘、恢复、durable 装配都闭环”继续推进到“装配 gate 定版、组合交付与经营聚合也闭环”。 diff --git a/docs/exec-plans/limenext-progress.md b/docs/exec-plans/limenext-progress.md index ef7ec402b..0e483f70f 100644 --- a/docs/exec-plans/limenext-progress.md +++ b/docs/exec-plans/limenext-progress.md @@ -1,9 +1,424 @@ # LimeNext 推进日志 +## 2026-04-16 + +### 已完成 + +- 把 `smoke:agent-runtime-tool-surface-page` 继续从“依赖全局配置写入”收口成“页面级调试覆盖 + 阶段日志”: + - 新增前端 `workspace harness` 调试覆盖读取: + - `src/lib/developerFeatures.ts` + - `src/hooks/useDeveloperFeatureFlags.ts` + - 当前支持通过 `localStorage["lime:debug:workspace-harness-enabled:v1"]` 临时打开处理工作台,而不必为了 smoke 去调用 `save_config` + - 这让页级 smoke 不再为了打开工作台去碰全局配置文件和环境变量应用链,进一步符合 LimeNext 当前主线里的“场景页 / smoke / 基础设置解耦”原则 + - `scripts/agent-runtime-tool-surface-page-smoke.mjs` 已同步改成: + - 仅注入本地 `localStorage` 调试覆盖 + - 不再在 `finally` 里回写全局配置 + - 每个关键阶段都会输出 `stage=...` 日志,便于继续定位真实卡点 + - 已补最小回归: + - `src/lib/developerFeatures.test.ts` + - 当前已确认通过: + - `npm test -- "src/lib/developerFeatures.test.ts"` + - `npx eslint --no-warn-ignored "src/lib/developerFeatures.ts" "src/lib/developerFeatures.test.ts" "src/hooks/useDeveloperFeatureFlags.ts" "scripts/agent-runtime-tool-surface-page-smoke.mjs"` + - 当前未完成但已确认环境状态: + - 正在重新拉起隔离 `headless Tauri` 环境,当前还卡在冷编译阶段,`http://127.0.0.1:3030/health` 暂未恢复 + - 下一步继续等 `DevBridge` 就绪后重跑 `npm run smoke:agent-runtime-tool-surface-page -- --timeout-ms 180000 --interval-ms 1000` + +- 重新执行 `npm run verify:gui-smoke`,当前主链进度已经前推到页级 runtime tool surface,而不再卡在最早的 `bridge:health`: + - 已确认通过: + - `smoke:workspace-ready` + - `smoke:browser-runtime` + - `smoke:site-adapters` + - `smoke:agent-service-skill-entry` + - `smoke:agent-runtime-tool-surface` + - 当前最终阻塞已缩小到: + - `smoke:agent-runtime-tool-surface-page` + - 具体现象: + - `browser_execute_action` 持续 `fetch failed` + - `close_cdp_session` 持续 `fetch failed` + - `close_chrome_profile_session` 持续 `fetch failed` + - 这说明本轮 SceneApp 分页改动没有把前面的 GUI 壳主链打断,剩余阻塞更像是页级浏览器动作链与 DevBridge/CDP 清理的稳定性问题 + +- 把 `SceneAppsPage` 的跨页路径继续从“标签切页”推进到“业务向工作流导轨”: + - 新增 `SceneAppsWorkflowRail`,固定把 SceneApp 主路径表达为: + - `选场景` + - `补启动` + - `看治理` + - 导轨不只是展示步骤,还会根据当前上下文给出不同动作: + - 已有运行样本时可直接进入治理 + - 还没有运行样本时,治理步骤会回指详情页先完成首轮启动 + - 没有选中场景时,详情与治理步骤会明确回到目录 + - 已同步更新: + - `src/components/sceneapps/SceneAppsWorkflowRail.tsx` + - `src/components/sceneapps/SceneAppsPage.tsx` + - `src/components/sceneapps/SceneAppsPage.test.tsx` + - `docs/aiprompts/design-language.md` + - `docs/exec-plans/limenext-plan.md` + - 当前已确认通过: + - `npm test -- "src/components/sceneapps/SceneAppsPage.test.tsx"` + - `npx eslint --no-warn-ignored "src/components/sceneapps/SceneAppsWorkflowRail.tsx" "src/components/sceneapps/SceneAppsPage.tsx" "src/components/sceneapps/SceneAppsPage.test.tsx"` + - 本轮额外沉淀: + - 复杂分页工作台不应只给标签页,还应给任务路径导轨 + - 跨页按钮要根据业务状态自适应目标页,而不是机械地固定跳某一页 + +- 把 `SceneAppsPage` 的分页式工作台继续补成“可回退、可引导”的分页级空态,而不只是标签切页: + - 新增 `SceneAppsPageEmptyState`,统一承接 `detail / governance` 两页的分页级空态 + - `detail` 分页在没有匹配 SceneApp 时,会明确提示这是筛选结果为空,而不是继续落到“左侧目录”这种旧布局文案 + - 当前已支持一键: + - 回到场景目录 + - 清空筛选并返回目录 + - `governance` 分页在还没有任何运行样本时,不再只显示空表,而是明确引导用户先回到详情页启动首轮结果链 + - 已同步更新: + - `src/components/sceneapps/SceneAppsPageEmptyState.tsx` + - `src/components/sceneapps/SceneAppsPage.tsx` + - `src/components/sceneapps/useSceneAppsPageRuntime.ts` + - `src/components/sceneapps/SceneAppDetailPanel.tsx` + - `src/components/sceneapps/SceneAppsPage.test.tsx` + - 当前已确认通过: + - `npm test -- "src/components/sceneapps/SceneAppsPage.test.tsx"` + - `npx eslint --no-warn-ignored "src/components/sceneapps/SceneAppsPageEmptyState.tsx" "src/components/sceneapps/SceneAppsPage.tsx" "src/components/sceneapps/SceneAppDetailPanel.tsx" "src/components/sceneapps/useSceneAppsPageRuntime.ts" "src/components/sceneapps/SceneAppsPage.test.tsx"` + - 本轮额外沉淀: + - 分页工作台不能只把内容拆开,还要把“当前无数据时下一步去哪”直接写进页面 + - 治理页的首轮空态默认应回指详情页启动,而不是把用户留在没有运行样本的复盘页里 + +- 把 `SceneAppsPage` 从“同页堆叠目录 + 详情 + 治理”继续收口成“分页式信息架构”: + - 当前固定拆成三页: + - `场景目录` + - `场景详情` + - `治理复盘` + - 顶部继续保留统一 `当前场景` 摘要和跨页入口,避免切页后丢失业务上下文 + - 目录卡片点击现在会直接进入对应详情分页,不再只是停留在选中态边框 + - 自动化摘要卡片与治理摘要的读模型残留问题已顺手收口: + - 修掉 `buildSceneAppAutomationWorkspaceCardViewModel(...)` 对 `getSceneAppPatternSummary(...)` 的错误入参 + - 删除 `buildSceneAppGovernancePanelViewModel(...)` 重构后遗留的未使用局部变量 + - 已同步更新: + - `src/components/sceneapps/SceneAppsCatalogPanel.tsx` + - `src/components/sceneapps/useSceneAppsPageRuntime.ts` + - `src/components/sceneapps/SceneAppsPage.test.tsx` + - `src/lib/sceneapp/product.ts` + - `src/lib/sceneapp/product.test.ts` + - `docs/aiprompts/design-language.md` + - `docs/exec-plans/limenext-plan.md` + - 当前已确认通过: + - `npm test -- "src/lib/sceneapp/product.test.ts" "src/components/sceneapps/SceneAppsPage.test.tsx"` + - `npx eslint --no-warn-ignored "src/lib/sceneapp/product.ts" "src/lib/sceneapp/product.test.ts" "src/components/sceneapps/useSceneAppsPageRuntime.ts" "src/components/sceneapps/SceneAppsCatalogPanel.tsx" "src/components/sceneapps/SceneAppsPage.test.tsx"` + - 本轮额外沉淀: + - 复杂工作台默认按任务阶段分页,不再把目录、详情、治理继续堆在一屏 + - 承担导航职责的目录卡片必须有明确点击结果,不能只保留“选中态”伪反馈 + +- 把 `SceneApp project pack` 的治理闭环从“单次运行详情”推进到“页面级治理看板”: + - 新增 `SceneAppGovernancePanel`,不再只在运行详情里解释治理动作 + - `buildSceneAppGovernancePanelViewModel(...)` 已把: + - `run summary` + - `scorecard` + - `evidence / review` + 收口成同一份业务向治理视图 + - 页面级治理看板当前已经能表达: + - 当前治理状态 + - 当前适合投放到哪里 + - 周会材料 / 结构化治理 / 请求链路 / 结果校验是否已齐 + - 推荐治理动作与继续处理入口 + - 页面级治理动作继续复用既有主链: + - `prepareSceneAppRunGovernanceArtifacts(...)` + - `prepareSceneAppRunGovernanceArtifact(...)` + - `initialProjectFileOpenTarget` + - `open automation job / agent session / browser runtime` + - 已同步更新: + - `src/lib/sceneapp/product.ts` + - `src/lib/sceneapp/product.test.ts` + - `src/components/sceneapps/SceneAppGovernancePanel.tsx` + - `src/components/sceneapps/SceneAppsPage.tsx` + - `src/components/sceneapps/useSceneAppsPageRuntime.ts` + - `src/components/sceneapps/SceneAppsPage.test.tsx` + - `docs/exec-plans/limenext-plan.md` + - 当前已确认通过: + - `npx eslint --no-warn-ignored "src/lib/sceneapp/product.ts" "src/lib/sceneapp/product.test.ts" "src/components/sceneapps/SceneAppGovernancePanel.tsx" "src/components/sceneapps/SceneAppsPage.tsx" "src/components/sceneapps/useSceneAppsPageRuntime.ts" "src/components/sceneapps/SceneAppsPage.test.tsx"` + - `npm test -- "src/lib/sceneapp/product.test.ts" "src/components/sceneapps/SceneAppsPage.test.tsx"` + - 当前已发起但尚未拿到最终结果: + - `npm run verify:gui-smoke` + - 本机冷编译阶段长时间卡在 `bridge:health -> DevBridge` 启动前,日志持续显示 `rustc` 编译与 `fetch failed`,暂时无法给出 smoke 通过结论 + +- 把 `SceneApp project pack` 第二阶段从 `metadata artifact_paths` 启发式推进到 `session / evidence` 事实源: + - `runtime_evidence_pack_service` 已抽出可复用 helper: + - `resolve_runtime_export_workspace_root(...)` + - `build_runtime_evidence_sceneapp_snapshot(...)` + - `SceneApp` 运行摘要在拿到 `sessionId` 时,已优先读取: + - `SessionDetail` + - `AgentRuntimeThreadReadModel` + - 最近 `FileArtifact` + - verification failure outcomes + - `SceneApp project pack` 不再默认先信 `AgentRun.metadata.artifact_paths`,而是改成: + - 有 runtime evidence 时优先用真实会话产物 + - 只有缺少 session evidence 时才回退 metadata + - 交付覆盖率判断已纠正: + - 如果 session evidence 明确存在但没有产物,现在会把覆盖率视为“已知为 0”,而不是继续落成“未知” + - 因此运行详情能够明确给出 `missing parts / 0% / pack_incomplete` + - `verification failure outcomes` 已开始回挂到 SceneApp 失败信号: + - 即使部件齐全,只要 runtime evidence 里还有未恢复校验失败,也会标记为 `review_blocked` + - `SceneAppService` 已统一改走 `build_sceneapp_run_summary_from_agent_run_with_db(...)`,避免 tracker 和 automation 侧继续各自走旧启发式 + - 已补 Rust 定向回归: + - runtime evidence 优先于 metadata artifact 列表 + - runtime verification failure 会回挂成 `review_blocked` + - 已同步更新: + - `src-tauri/src/services/runtime_evidence_pack_service.rs` + - `src-tauri/src/commands/aster_agent_cmd/command_api/runtime_api.rs` + - `src-tauri/src/sceneapp/adapters.rs` + - `src-tauri/src/sceneapp/application.rs` + - `src-tauri/src/services/execution_tracker_service.rs` + - 本轮校验已确认通过: + - `cargo fmt --manifest-path "src-tauri/Cargo.toml"` 已执行 + - `cargo test --manifest-path "src-tauri/Cargo.toml" sceneapp::adapters -- --nocapture` + - `cargo test --manifest-path "src-tauri/Cargo.toml" sceneapp::governance -- --nocapture` + +- 把 `SceneApp project pack` 的结果入口从“viewer 文案”推进到“稳定可打开的交付文件引用”: + - Rust `SceneAppRunSummary` 已新增 `deliveryArtifactRefs` + - 结果入口聚合规则已固定为: + - 有 runtime evidence 时优先读取真实 `FileArtifact` + - 缺少 session evidence 时再回退 `metadata artifact_paths` + - 继续在 DTO 层暴露 `relativePath / absolutePath / partKey / projectId / workspaceId / source` + - 前端运行详情页已新增“结果入口”区块: + - 会按 `primaryPart` 优先标记主稿 + - 点击后继续复用现有 `Agent initialProjectFileOpenTarget` 打开结果文件 + - 不新增新的 SceneApp viewer 协议,也不让 UI 直接解读底层 metadata + - 已同步更新: + - `src-tauri/src/services/runtime_evidence_pack_service.rs` + - `src-tauri/src/sceneapp/dto.rs` + - `src-tauri/src/sceneapp/adapters.rs` + - `src-tauri/src/sceneapp/application.rs` + - `src-tauri/src/sceneapp/governance.rs` + - `src/lib/sceneapp/types.ts` + - `src/lib/sceneapp/product.ts` + - `src/components/sceneapps/SceneAppRunDetailPanel.tsx` + - `src/components/sceneapps/useSceneAppsPageRuntime.ts` + - `src/components/sceneapps/SceneAppsPage.tsx` + - 当前已确认通过: + - `cargo fmt --manifest-path "src-tauri/Cargo.toml"` + - `npx eslint "src/lib/sceneapp/types.ts" "src/lib/sceneapp/product.ts" "src/lib/sceneapp/product.test.ts" "src/components/sceneapps/SceneAppRunDetailPanel.tsx" "src/components/sceneapps/SceneAppsPage.tsx" "src/components/sceneapps/useSceneAppsPageRuntime.ts" "src/components/sceneapps/SceneAppsPage.test.tsx" "src/lib/tauri-mock/core.ts"` + - `npm test -- "src/lib/sceneapp/product.test.ts" "src/components/sceneapps/SceneAppsPage.test.tsx"` + - `cargo test --manifest-path "src-tauri/Cargo.toml" sceneapp::adapters -- --nocapture` + - `cargo test --manifest-path "src-tauri/Cargo.toml" sceneapp::governance -- --nocapture` + - Rust 定向测试最终结果已确认通过: + - `cargo test --manifest-path "src-tauri/Cargo.toml" sceneapp::adapters -- --nocapture` + - `cargo test --manifest-path "src-tauri/Cargo.toml" sceneapp::governance -- --nocapture` + +- 把 `SceneApp project pack` 的治理面继续从“有证据文案”推进到“有治理入口文件引用”: + - Rust `SceneAppRunSummary` 已新增 `governanceArtifactRefs` + - 适配层会按 `sessionId` 组装三类稳定治理路径: + - `.lime/harness/sessions/{sessionId}/evidence/summary.md` + - `.lime/harness/sessions/{sessionId}/review/review-decision.md` + - `.lime/harness/sessions/{sessionId}/review/review-decision.json` + - 前端运行详情页已在“证据与复核”区块新增“治理入口”卡片: + - 证据摘要 + - 人工复核记录 + - 复核 JSON + - 点击后继续复用现有 `Agent initialProjectFileOpenTarget` 打开文件,不新增新的 SceneApp viewer 协议,也不让 UI 直接拼底层 metadata + - 已同步更新: + - `src-tauri/src/sceneapp/dto.rs` + - `src-tauri/src/sceneapp/adapters.rs` + - `src-tauri/src/sceneapp/application.rs` + - `src-tauri/src/sceneapp/governance.rs` + - `src/lib/sceneapp/types.ts` + - `src/lib/sceneapp/product.ts` + - `src/components/sceneapps/SceneAppRunDetailPanel.tsx` + - `src/components/sceneapps/SceneAppsPage.tsx` + - `src/components/sceneapps/useSceneAppsPageRuntime.ts` + - `src/components/sceneapps/SceneAppsPage.test.tsx` + - `src/lib/sceneapp/product.test.ts` + - `src/lib/tauri-mock/core.ts` + - 当前已确认通过: + - `cargo fmt --manifest-path "src-tauri/Cargo.toml"` + - `npx eslint "src/lib/sceneapp/types.ts" "src/lib/sceneapp/product.ts" "src/lib/sceneapp/product.test.ts" "src/components/sceneapps/SceneAppRunDetailPanel.tsx" "src/components/sceneapps/SceneAppsPage.tsx" "src/components/sceneapps/SceneAppsPage.test.tsx" "src/components/sceneapps/useSceneAppsPageRuntime.ts" "src/lib/tauri-mock/core.ts"` + - `npm test -- "src/lib/sceneapp/product.test.ts" "src/components/sceneapps/SceneAppsPage.test.tsx"` + - 当前未完成但已定位的阻塞: + - `cargo test --manifest-path "src-tauri/Cargo.toml" sceneapp::adapters -- --nocapture` + - `cargo test --manifest-path "src-tauri/Cargo.toml" sceneapp::governance -- --nocapture` + - 两条 Rust 定向测试都会被仓库里无关编译错误挡住: + - `crates/services/src/api_key_provider_service.rs:1152` + - `cannot find value 'provider_type' in this scope` + +- 把 `SceneApp project pack` 的治理入口继续从“可打开”推进到“缺失时自动补生成”: + - 新增当前命令: + - `sceneapp_prepare_run_governance_artifact` + - 命令职责固定为: + - `evidence_summary` 只补导出 evidence pack + - `review_decision_markdown / review_decision_json` 走统一 review decision 模板导出链 + - 这样 SceneApp 页面不需要直接调用 `agent_runtime_export_evidence_pack` / `agent_runtime_export_review_decision_template` + - 前端交互已改成: + - 点击治理入口时先调用 `src/lib/api/sceneapp.ts` + - 导出成功后继续复用 `initialProjectFileOpenTarget` 打开对应治理文件 + - 命令边界已同步更新: + - `src-tauri/src/commands/sceneapp_cmd.rs` + - `src-tauri/src/app/runner.rs` + - `src/lib/api/sceneapp.ts` + - `src/lib/api/sceneapp.test.ts` + - `src/lib/dev-bridge/mockPriorityCommands.ts` + - `src/lib/governance/agentCommandCatalog.json` + - `src/lib/tauri-mock/core.ts` + - 页面与回归已同步更新: + - `src/components/sceneapps/useSceneAppsPageRuntime.ts` + - `src/components/sceneapps/SceneAppsPage.test.tsx` + - `src/lib/sceneapp/product.ts` + - 当前已确认通过: + - `cargo fmt --manifest-path "src-tauri/Cargo.toml"` + - `npx eslint --no-warn-ignored "src/lib/api/sceneapp.ts" "src/lib/api/sceneapp.test.ts" "src/lib/sceneapp/product.ts" "src/lib/sceneapp/product.test.ts" "src/components/sceneapps/useSceneAppsPageRuntime.ts" "src/components/sceneapps/SceneAppsPage.test.tsx" "src/lib/dev-bridge/mockPriorityCommands.ts" "src/lib/tauri-mock/core.ts"` + - `npm test -- "src/lib/api/sceneapp.test.ts" "src/lib/sceneapp/product.test.ts" "src/components/sceneapps/SceneAppsPage.test.tsx"` + - `npm run test:contracts` + - 当前未完成但已定位的阻塞: + - `cargo test --manifest-path "src-tauri/Cargo.toml" sceneapp::adapters -- --nocapture` + - 仍会被仓库里无关编译错误挡住: + - `crates/services/src/api_key_provider_service.rs:1439` + - `cannot find value 'provider_type' in this scope` + +- 把 `SceneApp project pack` 的治理面继续从“文件入口”推进到“业务动作”: + - 前端运行详情页已新增 `治理动作` 区块,而不只是列出治理文件: + - `准备周会复盘包` + - `准备结构化治理包` + - 当前动作语义固定为: + - 周会复盘包:批量补齐 `evidence_summary + review_decision_markdown`,随后直接打开人工复核记录 + - 结构化治理包:批量补齐 `evidence_summary + review_decision_markdown + review_decision_json`,随后直接打开复核 JSON + - 批量治理仍继续经由 `src/lib/api/sceneapp.ts` 网关串行调用当前 `sceneapp_prepare_run_governance_artifact`,不让页面直接耦合底层 runtime export 命令名 + - 运行详情文案已开始改成业务向表达: + - 什么动作适合周会复盘 + - 什么动作适合任务中心 / 看板 / 后续自动治理消费 + - 已同步更新: + - `src/lib/api/sceneapp.ts` + - `src/lib/api/sceneapp.test.ts` + - `src/lib/sceneapp/product.ts` + - `src/lib/sceneapp/product.test.ts` + - `src/components/sceneapps/SceneAppRunDetailPanel.tsx` + - `src/components/sceneapps/SceneAppsPage.tsx` + - `src/components/sceneapps/useSceneAppsPageRuntime.ts` + - `src/components/sceneapps/SceneAppsPage.test.tsx` + - `docs/exec-plans/limenext-plan.md` + - 当前已确认通过: + - `npx eslint --no-warn-ignored "src/lib/api/sceneapp.ts" "src/lib/api/sceneapp.test.ts" "src/lib/sceneapp/product.ts" "src/lib/sceneapp/product.test.ts" "src/components/sceneapps/SceneAppRunDetailPanel.tsx" "src/components/sceneapps/SceneAppsPage.tsx" "src/components/sceneapps/useSceneAppsPageRuntime.ts" "src/components/sceneapps/SceneAppsPage.test.tsx"` + - `npm test -- "src/lib/api/sceneapp.test.ts" "src/lib/sceneapp/product.test.ts" "src/components/sceneapps/SceneAppsPage.test.tsx"` + - 正在补充: + - `npm run verify:gui-smoke` + - 当前仍在冷启动 Rust GUI smoke 编译链,尚未拿到最终结果 + ## 2026-04-15 ### 已完成 +- 把 `SceneApp project pack` 从“目录描述”推进到“真实运行与经营聚合”,不再只靠静态 profile 讲故事: + - Rust `run summary` 已补齐业务级交付字段: + - `deliveryRequiredParts` + - `deliveryCompletedParts` + - `deliveryMissingParts` + - `deliveryCompletionRate` + - `deliveryPartCoverageKnown` + - `failureSignal` + - `AgentRun.metadata.artifact_paths` 与 `AutomationJob.last_delivery` 现在都会统一装配到同一份 `delivery state`,前端不再只看到 `artifactCount` + - `project pack` 的 scorecard 已改成专用聚合,而不是继续混在通用成功率面板里: + - `complete_pack_rate` + - `review_pass_rate` + - `publish_conversion_rate` + - `observedFailureSignals` + - `topFailureSignal` + - SceneApp 运行详情页已能直接解释: + - 这次交齐了几项 + - 还缺哪些部件 + - 当前卡在哪个失败信号 + - 经营评分页已能同时区分: + - 基础设置包声明的静态经营口径 + - 真实运行样本回流出来的实际失败信号 + - 已同步更新: + - `src-tauri/src/sceneapp/dto.rs` + - `src-tauri/src/sceneapp/adapters.rs` + - `src-tauri/src/sceneapp/application.rs` + - `src-tauri/src/sceneapp/governance.rs` + - `src/lib/sceneapp/types.ts` + - `src/lib/sceneapp/product.ts` + - `src/components/sceneapps/SceneAppRunList.tsx` + - `src/components/sceneapps/SceneAppRunDetailPanel.tsx` + - `src/components/sceneapps/SceneAppScorecardPanel.tsx` + - `src/lib/tauri-mock/core.ts` + - 本轮已确认通过: + - `npx eslint "src/lib/sceneapp/product.ts" "src/lib/sceneapp/product.test.ts" "src/components/sceneapps/SceneAppRunList.tsx" "src/components/sceneapps/SceneAppRunDetailPanel.tsx" "src/components/sceneapps/SceneAppScorecardPanel.tsx" "src/components/sceneapps/SceneAppsPage.test.tsx" "src/lib/tauri-mock/core.ts"` + - `npm test -- "src/lib/sceneapp/product.test.ts" "src/components/sceneapps/SceneAppsPage.test.tsx"` + - `npm run test:contracts` + - Rust 定向测试已发起,但当前本机还有另一条长时间运行的 cargo 编译链占用构建资源,SceneApp 相关测试还在等待最终结果,后续需要补回最终通过记录 + +- 把多模态 `SceneApp` 的 `project pack` 合同正式接到统一目录、产品视图与 GUI 主链,而不是继续停留在 `blueprint ref / profile ref` 级别: + - `src/lib/sceneapp/types.ts` + - `src/lib/sceneapp/catalog.ts` + - `src/lib/sceneapp/product.ts` + - `src/components/sceneapps/SceneAppDetailPanel.tsx` + - `src/components/sceneapps/SceneAppScorecardPanel.tsx` + - 当前 `SceneAppDescriptor` 已新增三块稳定结构: + - `deliveryProfile` + - `compositionProfile` + - `scorecardProfile` + - `project pack` 相关的: + - `artifact profile` + - `viewer kind` + - `required parts` + - `composition steps` + - `failure signals` + 现在都能从编译层一路进入业务向详情面板和经营评分面板 + - 目录页不再只展示技术 ref,而会明确表达: + - 最终交付什么项目包 + - 这条链分几步完成 + - 当前经营判断重点看什么 + - `SceneApp` 的 mock 与 Tauri seeded DTO 也已同步对齐,避免只在前端测试环境里有字段、真实命令却没有: + - `src/lib/tauri-mock/core.ts` + - `src-tauri/src/sceneapp/dto.rs` + - `src-tauri/src/sceneapp/catalog.rs` + - 定向回归已覆盖: + - `src/lib/sceneapp/catalog.test.ts` + - `src/lib/sceneapp/product.test.ts` + - `src/components/sceneapps/SceneAppsPage.test.tsx` + - 本轮已确认通过: + - `npm test -- "src/lib/sceneapp/catalog.test.ts" "src/lib/sceneapp/product.test.ts" "src/components/sceneapps/SceneAppsPage.test.tsx"` + - `npx eslint "src/lib/sceneapp/types.ts" "src/lib/sceneapp/catalog.ts" "src/lib/sceneapp/presentation.ts" "src/lib/sceneapp/product.ts" "src/lib/sceneapp/catalog.test.ts" "src/lib/sceneapp/product.test.ts" "src/components/sceneapps/SceneAppDetailPanel.tsx" "src/components/sceneapps/SceneAppScorecardPanel.tsx" "src/components/sceneapps/SceneAppsPage.test.tsx" "src/lib/tauri-mock/core.ts"` + - `npm run test:contracts` + - `rustfmt --check "src-tauri/src/sceneapp/dto.rs" "src-tauri/src/sceneapp/catalog.rs"` + - 当前仓库级阻塞仍存在: + - `npm run typecheck` 会被无关现有错误挡住: + - `src/components/provider-pool/api-key/ProviderConfigForm.ui.test.tsx` + - `src/components/settings-v2/general/memory/index.tsx` + - `npm run verify:gui-smoke` 在 `smoke:browser-runtime` 阶段被现有环境问题挡住: + - `launch_browser_session` 持续超时,`180000ms` 内未收到 DevBridge 响应 + - 日志中还出现 `libsqlite3-sys ... bindgen.rs: No such file or directory` 的临时构建噪音,需要后续单独排查 + +- 把 `SceneApp` 前端启动编排继续收口成共享 runtime,而不是让目录页和聊天空态各写一套 launch 分支: + - 新增共享启动状态机与错误格式化: + - `src/lib/sceneapp/error.ts` + - `src/lib/sceneapp/launcher.ts` + - 把前端 action bridge 正式迁到共享层: + - `src/lib/sceneapp/launchBridge.ts` + - `src/components/agent/chat/workspace/sceneAppLaunch.ts` + - 统一由共享层负责: + - `sceneAppLaunchingId` + - 自动化弹窗开关与初始值 + - automation workspace 加载 + - `workspace_entry / automation_job` 启动收口 + - SceneApp 相关错误文案格式化 + - 两个高频入口现在都已消费同一套共享 runtime: + - `src/components/agent/chat/workspace/useWorkspaceSceneAppEntryActions.ts` + - `src/components/sceneapps/useSceneAppsPageRuntime.ts` + - `sceneAppLaunch.ts` 旧路径暂时保留为 re-export,避免现有调用方与测试路径立刻断裂 +- 完成 SceneApp 统一启动 runtime 的一轮针对性校验: + - `npm test -- "src/components/agent/chat/workspace/sceneAppLaunch.test.ts" "src/components/agent/chat/workspace/useWorkspaceSceneAppEntryActions.test.tsx" "src/components/sceneapps/SceneAppsPage.test.tsx" "src/lib/sceneapp/product.test.ts"` 通过 + - `npx eslint "src/lib/sceneapp/error.ts" "src/lib/sceneapp/launchBridge.ts" "src/lib/sceneapp/launcher.ts" "src/components/agent/chat/workspace/useWorkspaceSceneAppEntryActions.ts" "src/components/sceneapps/useSceneAppsPageRuntime.ts" "src/components/agent/chat/workspace/sceneAppLaunch.ts"` 通过 + - `npm run typecheck` 通过 + - `npm run verify:gui-smoke` 在沙箱内仍会因为 `listen EPERM: operation not permitted 127.0.0.1:1420` 失败 + - 提权后重跑 `npm run verify:gui-smoke` 已证明: + - 前端壳就绪 + - `workspace-ready` 通过 + - `browser-runtime` 通过 + - `site-adapters` 通过 + - `agent-service-skill-entry` 通过 + - `agent-runtime-tool-surface` 通过 + - `agent-runtime-tool-surface-page` 通过 + - 仓库级页面 smoke 阻塞已收口: + - `scripts/agent-runtime-tool-surface-page-smoke.mjs` 现在补齐了首页 origin / storage 就绪门禁 + - `browser_execute_action` 增加了针对 `CDP 调试端口不可用` 的重试 + - 首页输入提交改成 `focus + native setter + input/change + 短暂让步 + 鼠标事件链`,避免卡在发送按钮未真正推进运行态 + - 当前这条 GUI 主路径已完成最终验证: + - `npm run verify:gui-smoke` 通过 + - `npm run smoke:agent-runtime-tool-surface-page -- --timeout-ms 180000 --interval-ms 1000` 通过 + - 新增基础设置包第一版代码骨架: - `src/lib/base-setup/types.ts` - `src/lib/base-setup/validator.ts` @@ -12,11 +427,74 @@ - `src/lib/base-setup/compat/serviceSkillCatalogProjection.ts` - 固定第一版先把 `Base Setup Package` 编译成 compat `ServiceSkillCatalog` - 固定 runtime 侧暂不新增执行链,继续只吃 current `request_metadata` +- 新增基础设置包主链接线模块: + - `src/lib/base-setup/storage.ts` + - `src/lib/base-setup/bootstrap.ts` + - `src/lib/base-setup/serviceSkillCatalogAdapter.ts` + - 固定“解析 package -> gate -> compile -> 生成快照”由基础设置层统一负责 + - 固定基础设置快照与当前激活目录一起落缓存,避免后续 `scene / command` projection 再次各自找事实源 +- 把基础设置包正式接回当前目录主链: + - `src/lib/api/serviceSkills.ts` + - `src/lib/serviceSkillCatalogBootstrap.ts` + - 远端 `refresh`、本地 `save`、bootstrap `sync` 都已支持直接消费 `Base Setup Package` + - 普通 catalog 覆盖时会清理旧基础设置快照,保证当前激活目录与装配快照一致 +- 把基础设置包继续接到统一 `skill / command / scene` 目录主链: + - `src/lib/base-setup/compat/sceneCatalogProjection.ts` + - `src/lib/api/skillCatalog.ts` + - `src/lib/skillCatalogBootstrap.ts` + - `Base Setup Package` 现在已经不只会编译 compat `ServiceSkillCatalog`,也会继续投影到真实 `SkillCatalog` + - 显式 `scene_catalog` projection 已能进入 slash / scene 面板真实消费链,而不是只停在 schema 或 compat 层 + - `skillCatalog` 的 `refresh`、本地 `save`、bootstrap `sync` 现在都支持直接消费 `Base Setup Package` + - 显式 scene projection 会优先覆盖 compat 自动 scene,避免场景面板继续吃到旧的 auto scene 文案 +- 把 `Base Setup Package -> command_catalog projection` 正式接回当前输入触发层,而不是继续停在 seeded 手写 command 定义: + - `src/lib/base-setup/compat/commandCatalogProjection.ts` + - `src/lib/api/skillCatalog.ts` + - `src/lib/skillCatalogBootstrap.ts` + - `src/components/agent/chat/workspace/useWorkspaceSendActions.ts` + - `skillCatalog` 现在会和 `scene_catalog` 一样继续编译显式 `command_catalog` + - 显式 command projection 会优先覆盖 seeded command 定义,避免同一 `commandKey` 继续双轨并存 + - 工作区发送层不再只读模块加载时的 seeded command map,而会按当前目录快照解析 `mention -> commandKey -> bound skill` + - 这一步把 LimeNext 从“目录主链回到装配层”继续推进到了“现有命令语义的输入触发层也开始回到装配层” +- 把剩余 seeded command fallback 也迁回基础设置包事实源,清掉 `SEEDED_COMMAND_ENTRY_DEFINITIONS` 这条 compat 双轨: + - `src/lib/base-setup/types.ts` + - `src/lib/base-setup/serviceSkillCatalogAdapter.ts` + - `src/lib/base-setup/validator.ts` + - `src/lib/base-setup/compat/commandCatalogProjection.ts` + - `src/lib/base-setup/seededCommandPackage.ts` + - `src/lib/api/skillCatalog.ts` + - `command_catalog` projection 现在支持命令侧显式 `commandBinding / commandRenderContract` + - seeded fallback 不再维护手写 command entry 数组,而是直接编译 seeded `Base Setup Package` + - 这一步把 LimeNext 从“显式 command projection 可覆盖 seeded”继续推进到了“seeded command 事实源本身也回到装配层” +- 把默认云端 seeded 目录迁到装配层事实源: + - `src/lib/base-setup/seededServiceSkillPackage.ts` + - `src/lib/api/serviceSkills.ts` + - 默认 `7` 个内置云端场景不再手写为 `ServiceSkillCatalog`,而是改成手写 `Base Setup Package` 后编译出 compat catalog +- 把 seeded 本地 `local_custom` 项也迁到装配层事实源: + - `src/lib/base-setup/seededServiceSkillPackage.ts` + - `src/lib/base-setup/compat/serviceSkillCatalogProjection.ts` + - `src/lib/api/serviceSkills.ts` + - `x-article-export` 不再手写为 `ServiceSkillItem` 补丁,而是改成手写 `Base Setup Package` 后编译出 `local_custom` 目录项 + - 当前 seeded 目录已经从“编译产物 + 手写补丁”推进到“云端默认包编译产物 + 本地定制包编译产物” + - 同步纠正了 `sceneBinding` 不应强行把 `runnerType` 覆盖成 `managed` 的 compat 编译逻辑 - 新增基础设置包单测: - `src/lib/base-setup/validator.test.ts` - `src/lib/base-setup/compiler.test.ts` - `src/lib/base-setup/rolloutGate.test.ts` + - `src/lib/base-setup/storage.test.ts` + - `src/lib/base-setup/bootstrap.test.ts` + - `src/lib/base-setup/seededServiceSkillPackage.test.ts` - 证明结构校验、引用校验、catalog projection 与 rollout gate 决策已跑通 +- 新增 `scene_catalog` 接线回归: + - `src/lib/api/skillCatalog.test.ts` + - `src/lib/skillCatalogBootstrap.test.ts` + - 证明 `Base Setup Package -> SkillCatalog` 已跑通 + - 证明 bootstrap payload 直接下发 `baseSetupPackage` 时,`scene_catalog` projection 与基础设置快照都能落到真实消费链 + - 证明显式 scene projection 已能覆盖 compat 自动 scene +- 新增 seeded 本地定制装配回归: + - `src/lib/base-setup/seededServiceSkillPackage.test.ts` + - `src/lib/api/serviceSkills.test.ts` + - 证明 `x-article-export` 已由本地定制基础设置包编译生成,而不是继续依赖手写补丁 + - 证明 `local_custom` 来源、`browser_assist` binding、`sceneBinding` 与 skill bundle metadata 都已稳定保留 - 新增基础设置包实现设计专题: - [base-setup-implementation.md](../roadmap/limenext/base-setup-implementation.md) - 固定第一版先以 `Base Setup Package -> compat ServiceSkillCatalog projection` 落地 @@ -65,7 +543,351 @@ - [execution-plan.md](../roadmap/limenext/execution-plan.md) - [limenext-plan.md](./limenext-plan.md) - 明确多模态组合样板成为第五条默认样板链路 - - 明确下一刀是把 `composition blueprint` 继续收口到 schema 与目录投影 + - 明确当前下一刀已经切到“seeded 事实源迁移 + scene / command projection 扩展” +- 把 `SceneApp` 第一阶段全栈骨架正式落地到当前代码主链: + - `src/lib/sceneapp/*` + - `src/lib/api/sceneapp.ts` + - `src-tauri/src/sceneapp/*` + - `src-tauri/src/commands/sceneapp_cmd.rs` + - `docs/roadmap/limenext/sceneapp-*.md` + - 固定 `SceneApp` 不新增 runtime taxonomy,继续只作为 `Scene / ServiceSkill + 执行实体 + 基础设施画像 + 交付治理` 的装配层 +- 把第一条真实 `SceneApp` adapter 固定为 `SceneApp -> automation job`: + - `sceneapp_create_automation_job` 已接通 automation draft / tracker metadata / run summary 主链 + - `daily-trend-briefing` 已作为 `Local Durable SceneApp` 的 seeded descriptor、mock catalog 与测试样板统一事实源 + - `browser_assist / cloud_scene / native_skill / agent_turn` 其他 adapter 继续留在下一阶段推进 +- 把 `sceneapp_plan_launch` 从抽象 planner 推进到半结构化 adapter planner: + - `SceneAppPlanResult.plan.adapterPlan` 已能明确输出 `runtimeAction / targetRef / requestMetadata / launchPayload` + - 当前已覆盖 `cloud_scene / browser_assist / automation_job / native_skill / agent_turn` 五类 adapter draft + - 这让后续 SceneApp UI 和执行入口可以复用 current runtime,而不是再拼第二套 SceneApp 执行协议 +- 把 `SceneAppPlanResult.plan.adapterPlan` 继续收口成前端统一执行 facade: + - `src/lib/sceneapp/launch.ts` + - `buildSceneAppExecutionDraft(...)` 现已固定输出两类 current runtime 草稿: + - `workspace_entry` + - `automation_job` + - `workspace_entry` 继续复用当前工作区启动语义: + - `prompt` + - `initialAutoSendRequestMetadata` + - `projectId / contentId` + - `openBrowserAssistOnMount` + - `automation_job` 同时兼容当前两条自动化主链: + - `SceneAppAutomationIntent` + - `AutomationJobRequest` + - `AutomationJobDialogInitialValues` + - 这意味着 SceneApp 前端后续接线时,不必再让各个页面自己理解 `adapterPlan.launchPayload` 的 snake_case 草稿 + - 新增 SceneApp 执行 facade 回归: + - `src/lib/sceneapp/launch.test.ts` + - 覆盖 `cloud_scene / browser_assist / automation_job` 三条主链翻译 + - 证明 `story-video-suite / x-article-export / daily-trend-briefing` 已有可复用的前端执行草稿 +- 把 SceneApp 前端执行草稿继续接到真实前端 action bridge: + - `src/components/agent/chat/workspace/sceneAppLaunch.ts` + - 当前已形成统一 `SceneApp launch action bridge`: + - `resolveSceneAppLaunchAction(...)` + - `executeSceneAppLaunchAction(...)` + - `workspace_entry` 现在会继续翻译成真实 `resolveWorkspaceEntry(...)` 结果,而不是让 UI 自己再拼导航参数 + - `automation_job` 现在支持两条 current 前端路径: + - 打开标准自动化表单 + - 直接调用 `sceneapp_create_automation_job` + - 这让未来的 SceneApp 目录页、详情页、推荐位都可以复用同一套启动动作桥,而不是各写一份 launch 分支 +- 新增 SceneApp action bridge 回归: + - `src/components/agent/chat/workspace/sceneAppLaunch.test.ts` + - 覆盖: + - `workspace_entry -> agent navigation` + - `workspace_entry -> missing project` + - `workspace_entry -> missing navigate callback` + - `automation_job -> open dialog` + - `automation_job -> create job` + - 再补 `workspaceEntry.test.ts` 联动回归,证明新桥未偏离现有工作区导航合同 +- 把 SceneApp 统一启动桥真正接到主工作区空态入口: + - `src/components/agent/chat/workspace/useWorkspaceSceneAppEntryActions.ts` + - `src/components/agent/chat/components/EmptyStateSceneAppsPanel.tsx` + - `src/components/agent/chat/sceneappEntryTypes.ts` + - `src/components/agent/chat/components/EmptyState.tsx` + - `src/components/agent/chat/workspace/chatSurfaceProps.ts` + - `src/components/agent/chat/workspace/WorkspaceConversationScene.tsx` + - `src/components/agent/chat/workspace/useWorkspaceConversationSceneRuntime.tsx` + - `src/components/agent/chat/AgentChatWorkspace.tsx` + - 当前 `SceneApp` 已不再只停在库层: + - `story-video-suite` 会从空态推荐位直接进入当前会话继续 + - `daily-trend-briefing` 会直接打开标准自动化表单 + - `x-article-export` 会在检测到 URL 上下文时进入推荐位 + - 固定 `SceneApp` 自动化仍复用标准 `AutomationJobDialog` 与 `create_automation_job` 主链,只在 UI 层补回 `sceneapp` metadata,不新增第二套 editor +- 新增 SceneApp 工作区入口回归: + - `src/components/agent/chat/workspace/useWorkspaceSceneAppEntryActions.test.tsx` + - `src/components/agent/chat/components/EmptyState.test.tsx` + - `src/components/agent/chat/workspace/useWorkspaceConversationSceneRuntime.test.ts` + - 覆盖: + - featured SceneApp 卡片分类 + - URL 条件显示 `x-article-export` + - `workspace_entry -> agent` 导航 + - `automation_job -> 标准自动化表单 -> create_automation_job` +- 把 `SceneApp` 从“空态推荐位”推进成真正的目录工作台: + - 新增独立页面与信息架构入口: + - `src/components/sceneapps/SceneAppsPage.tsx` + - `src/components/sceneapps/useSceneAppsPageRuntime.ts` + - `src/components/sceneapps/SceneAppsCatalogPanel.tsx` + - `src/components/sceneapps/SceneAppDetailPanel.tsx` + - `src/components/sceneapps/SceneAppScorecardPanel.tsx` + - `src/components/sceneapps/SceneAppRunList.tsx` + - `src/components/sceneapps/index.ts` + - `src/types/page.ts` + - `src/components/AppPageContent.tsx` + - `src/lib/navigation/sidebarNav.ts` + - 当前目录页已经具备完整闭环: + - 业务向目录检索与模式筛选 + - 详情页、启动输入、项目工作区选择 + - `workspace_entry -> agent` 启动 + - `automation_job -> AutomationJobDialog -> create_automation_job` + - `scorecard + recent runs` 统一回流展示 + - 同时把 `SceneApp` 展示语义和自动化辅助从聊天工作区抽成共享层: + - `src/lib/sceneapp/presentation.ts` + - `src/lib/sceneapp/automation.ts` + - 这意味着后续再扩: + - 首页推荐位 + - 目录页 + - 详情页 + - 未来更多入口 + 都不需要各写一份 `SceneApp` 文案、seed、project gate、automation metadata merge +- 把 `SceneApp` 目录页入口继续收口成可恢复的跨入口协议: + - `src/lib/sceneapp/entry.ts` + - `src/lib/sceneapp/storage.ts` + - 当前已固定三种目录进入模式: + - `browse` + - `resume_latest` + - `prefer_latest` + - 这让侧边栏、聊天空态、未来插件入口都不需要自己拼“最近访问优先还是浏览目录”的判断 + - 最近访问存储同时新增统一订阅能力,跨入口 UI 可以感知“是否存在可恢复场景”,而不用自己读取 localStorage 细节 +- 把 `SceneApp` 最近恢复能力接回两个高频入口: + - `src/lib/navigation/sidebarNav.ts` + - `src/components/AppSidebar.tsx` + - `src/components/agent/chat/AgentChatWorkspace.tsx` + - `src/components/agent/chat/components/EmptyStateSceneAppsPanel.tsx` + - `src/components/agent/chat/components/EmptyState.tsx` + - `src/components/agent/chat/workspace/chatSurfaceProps.ts` + - `src/components/agent/chat/workspace/WorkspaceConversationScene.tsx` + - `src/components/agent/chat/workspace/useWorkspaceConversationSceneRuntime.tsx` + - 当前交互已经更清楚: + - 侧边栏“场景应用”默认恢复最近一次 SceneApp 上下文 + - 聊天空态显式区分“继续最近场景”和“查看全部场景” + - 浏览目录与恢复上次上下文不再共用一个语义模糊的按钮 +- 新增最近恢复链路回归: + - `src/lib/sceneapp/entry.test.ts` + - `src/lib/sceneapp/storage.test.ts` + - `src/components/AppSidebar.test.tsx` + - `src/components/agent/chat/components/EmptyState.test.tsx` + - 证明: + - 最近访问订阅已生效 + - 侧边栏点击会优先恢复最近 SceneApp + - 空态会显式暴露“继续最近场景”动作 +- 把 `SceneApp` 目录页继续推进到独立的产品视图模型层: + - `src/lib/sceneapp/product.ts` + - `src/components/sceneapps/useSceneAppsPageRuntime.ts` + - `src/components/sceneapps/SceneAppsPage.tsx` + - `src/components/sceneapps/SceneAppsCatalogPanel.tsx` + - `src/components/sceneapps/SceneAppDetailPanel.tsx` + - `src/components/sceneapps/SceneAppScorecardPanel.tsx` + - `src/components/sceneapps/SceneAppRunList.tsx` + - `src/components/sceneapps/SceneAppRunDetailPanel.tsx` + - 当前 `SceneAppsPage` 已不再让组件自己直接解释底层 DTO: + - workbench summary stats + - catalog card copy + - detail panel copy + - scorecard view + - run list / run detail + 都统一收口到 `SceneApp product view model` + - 这让后续首页推荐位、独立详情页、经营面板可以复用同一层业务解释,而不是重复从 `descriptor / run / scorecard` 重新拼 UI +- 新增产品视图模型回归: + - `src/lib/sceneapp/product.test.ts` + - `src/components/sceneapps/SceneAppsPage.test.tsx` + - 证明目录统计、详情视图和运行详情已经可以通过共享产品层稳定产出 +- 把空态 SceneApp 面板补上“查看全部场景”入口,并接到统一 `sceneapps` 目录页: + - `src/components/agent/chat/components/EmptyStateSceneAppsPanel.tsx` + - `src/components/agent/chat/components/EmptyState.tsx` + - `src/components/agent/chat/workspace/chatSurfaceProps.ts` + - `src/components/agent/chat/workspace/WorkspaceConversationScene.tsx` + - `src/components/agent/chat/workspace/useWorkspaceConversationSceneRuntime.tsx` + - `src/components/agent/chat/AgentChatWorkspace.tsx` + - 现在用户可以: + - 在聊天空态直接启动精选 SceneApp + - 或跳到完整目录页再选型、看 scorecard、看 runs、再启动 +- 新增 SceneApp 目录页回归与路由回归: + - `src/components/sceneapps/SceneAppsPage.test.tsx` + - `src/components/AppPageContent.test.tsx` + - `src/hooks/useAppNavigation.test.tsx` + - `src/lib/navigation/sidebarNav.test.ts` + - 覆盖: + - 目录页渲染与详情联动 + - `workspace_entry -> agent` + - `automation_job -> 标准自动化弹窗` + - 侧边栏与页面分发接线 +- 把 SceneApp 目录页继续补到“运行详情可经营”的状态: + - `src/components/sceneapps/SceneAppRunDetailPanel.tsx` + - `src/components/sceneapps/SceneAppRunList.tsx` + - `src/components/sceneapps/useSceneAppsPageRuntime.ts` + - `src/lib/sceneapp/presentation.ts` + - 当前目录页已经形成: + - `runs -> selected run -> run summary` 的独立状态流 + - `scorecard` 与 `runs` 解耦加载,不再因为一个接口失败把另一块也清空 + - 运行来源、运行阶段、下一步动作的共享解释层 + - 这意味着目录页不再只展示“最近运行列表”,而开始具备真实的运行复盘面板 + - 后续再接首页推荐位、运营面板或更细颗粒的 evidence 视图时,可以继续复用同一套 run presentation 语义 +- 把 SceneApp 目录页继续补到“状态可恢复、可分享”的状态: + - `src/components/sceneapps/useSceneAppsPageRuntime.ts` + - `src/components/sceneapps/SceneAppsPage.test.tsx` + - `src/components/AppPageContent.test.tsx` + - `src/types/page.ts` + - 当前目录页现在已经支持把以下状态安全回写到 `pageParams`: + - `sceneappId` + - `runId` + - `projectId` + - `search` + - `prefillIntent` + - `typeFilter / patternFilter` + - 同时补了反向回灌: + - 同页再次导航到 `sceneapps` 时,目录页会用新的 `pageParams` 覆盖本地状态 +- 把 SceneApp 运行详情继续补到“可回到业务入口”的状态: + - `src/lib/sceneapp/types.ts` + - `src/lib/sceneapp/product.ts` + - `src/components/sceneapps/SceneAppRunDetailPanel.tsx` + - `src/components/sceneapps/useSceneAppsPageRuntime.ts` + - `src/components/sceneapps/SceneAppsPage.tsx` + - `src-tauri/src/sceneapp/dto.rs` + - `src-tauri/src/sceneapp/adapters.rs` + - `src-tauri/src/sceneapp/application.rs` + - 当前目录页已经不再只是解释“这次跑完了什么”,还开始解释“现在该回哪里继续”: + - `SceneAppRunSummary` 新增 `sourceRef` + - 运行详情视图模型新增 `entryAction` + - 第一条真实恢复动作先固定为 `automation -> job detail` + - 第二条真实恢复动作已补成 `chat / skill -> agent session` + - 目录页运行详情现在可以直接跳回对应自动化任务: + - `source=automation` + - `sourceRef=jobId` + - 页面 runtime 会统一翻译成 `automation / selectedJobId / workspaceTab=tasks` + - 目录页运行详情现在也可以直接回到对应 Agent 会话: + - `SceneAppRunSummary` 新增 `sessionId` + - Agent 页新增 `initialSessionId` + - `source=chat / skill` 且存在 `sessionId` 时,会统一翻译成 `agent -> initialSessionId` + - 这一步把 `SceneApp` 从“可启动、可复盘”继续推进到“可恢复到业务入口”,为后续 agent / browser runtime 深链收口留出统一合同 +- 把 `browser_assist` 场景的运行恢复也接回统一协议,而不是继续由 UI 猜测浏览器上下文: + - `src/lib/sceneapp/types.ts` + - `src/lib/sceneapp/product.ts` + - `src/components/sceneapps/useSceneAppsPageRuntime.ts` + - `src/components/sceneapps/SceneAppsPage.test.tsx` + - `src-tauri/src/sceneapp/dto.rs` + - `src-tauri/src/sceneapp/adapters.rs` + - `src-tauri/src/commands/aster_agent_cmd/run_metadata/social_artifacts.rs` + - `src-tauri/src/commands/aster_agent_cmd/tests.rs` + - 当前已固定第一版浏览器恢复对象为: + - `browserRuntimeRef = { profileKey, sessionId, targetId }` + - 运行详情视图模型新增 `open_browser_runtime` 动作: + - 浏览器场景存在 `browserRuntimeRef` 时,优先回到 `browser-runtime` + - 没有浏览器引用时,`chat / skill -> agent session` 仍作为稳定兜底 + - Rust 侧运行摘要现在会统一合并两类事实源: + - 运行终态 metadata 里的 `browser_runtime_ref / browser_session` + - request metadata 里的 `browser_assist` + - 运行观测层也开始把 tool result metadata 中的浏览器会话回写到 run metadata: + - `profile_key` + - `session_id` + - `target_id` + - 这意味着 `x-article-export` 这类 `Browser-grounded SceneApp` 终于可以从目录页直接回到真实浏览器运行时,而不是只回聊天页 +- 把 `cloud_scene / native_skill` 也补进同一套 SceneApp 启动与恢复合同,而不是继续在 UI 层分散猜测 metadata: + - `src/lib/sceneapp/types.ts` + - `src/lib/sceneapp/product.ts` + - `src/lib/sceneapp/launch.ts` + - `src/components/sceneapps/useSceneAppsPageRuntime.ts` + - `src/components/agent/chat/workspaceEntry.ts` + - `src/components/agent/chat/workspace/useWorkspaceServiceSkillEntryActions.ts` + - `src/components/agent/chat/AgentChatWorkspace.tsx` + - `src/types/page.ts` + - `src-tauri/src/sceneapp/dto.rs` + - `src-tauri/src/sceneapp/adapters.rs` + - 当前已固定两类新恢复引用: + - `cloudSceneRuntimeRef` + - `nativeSkillRuntimeRef` + - 当前目录页运行详情新增两类结构化业务动作: + - `open_cloud_scene_session` + - `open_native_skill_session` + - `cloud_scene` 现在不再只回退到普通会话: + - 有 `sessionId` 时优先回到原 Agent 会话 + - 没有 `sessionId` 时,会基于 `service_scene_launch` 结构化引用重新恢复云端 Scene 上下文 + - `native_skill` 启动桥也不再伪装成普通 prompt: + - SceneApp launch facade 现在会产出 `initialPendingServiceSkillLaunch` + - `AgentPendingServiceSkillLaunch` 新增 `skillKey / launchUserInput` + - 挂起技能入口现在可以保留原始 SceneApp 用户意图和已补齐 slots,再交给现有服务技能主链继续执行 + - Rust 侧运行摘要现在会统一提取两类事实源: + - `service_scene_launch` + - `sceneapp_native_skill_launch` + - 这意味着 SceneApp 的五类 current 执行体已经全部进入统一协议: + - `automation_job` + - `agent_turn` + - `browser_assist` + - `cloud_scene` + - `native_skill` +- 把 SceneApp 运行复盘与评分从 seeded 模板推进到真实聚合: + - `src-tauri/src/sceneapp/adapters.rs` + - `src-tauri/src/sceneapp/application.rs` + - `src-tauri/src/sceneapp/governance.rs` + - `src-tauri/src/commands/sceneapp_cmd.rs` + - `sceneapp_list_runs` 现在会统一聚合: + - `ExecutionTracker` 里的 chat / skill / automation 真实运行 + - 自动化任务的 durable job 记录 + - 没有真实样本时才回退 seeded baseline + - `sceneapp_get_scorecard` 现在会基于真实 runs 计算: + - 运行样本充足度 + - 执行成功率 + - 结果产出率 + - 重复使用率 + - 推荐动作也不再只按 `sceneapp_type` 写死,而会根据真实运行表现切到: + - `launch` + - `keep` + - `optimize` + - `retire` + - 同时补了 Rust 定向回归,覆盖: + - artifact count 从 run metadata / automation delivery 提取 + - scorecard 的 `keep` / seeded fallback / `retire` 决策 + - 不再只在首次挂载时读取参数 + - 固定实现规则: + - 文本类参数使用轻量防抖同步,避免输入时触发导航风暴 + - 统一 `normalize + serialize` 单一键值比较,不让页面和导航层各自发明一套相等性判断 + - 这意味着未来再做: + - 最近访问的 SceneApp 恢复 + - 可复制的目录页深链接 + - 从聊天页/推荐位/运营面板跳回目录的状态保持 + 都可以继续复用当前参数协议 +- 把 SceneApp 前台继续接到 `Base Setup Package` 的 scorecard / composition 装配层: + - `src/lib/sceneapp/catalog.ts` + - `src/lib/sceneapp/product.ts` + - `src/components/sceneapps/SceneAppDetailPanel.tsx` + - `src/components/sceneapps/SceneAppScorecardPanel.tsx` + - `src/components/sceneapps/useSceneAppsPageRuntime.ts` + - `src/lib/sceneapp/catalog.test.ts` + - `src/lib/sceneapp/product.test.ts` + - `src/components/sceneapps/SceneAppsPage.test.tsx` + - 当前目录页已经不再只显示 seeded 业务文案,而会继续暴露基础设置包里的: + - `compositionBlueprintRef / compositionStepCount` + - `scorecardProfileRef / scorecardMetricKeys` + - 详情面板现在可以直接看到组合蓝图和评分 profile + - 评分面板现在也会沿 view model 主链显示当前 scorecard profile 与 metric keys,而不是重新耦合 raw descriptor + - 即使还没有真实评分样本,评分面板也会先保留基础设置包里的观察口径,不再整块退回“纯空态” + - 即使评分接口暂时失败,评分面板也会继续保留当前 profile 与指标口径,不再因为 error state 把装配层上下文一起抹掉 + - 这意味着 `Base Setup Package -> SceneApp descriptor -> product view model -> SceneAppsPage` 这条前台消费链已经闭环 +- 把 SceneApp 目录页继续补到“最近访问 / 一键继续”的状态: + - `src/lib/sceneapp/navigation.ts` + - `src/lib/sceneapp/storage.ts` + - `src/lib/sceneapp/storage.test.ts` + - `src/components/sceneapps/SceneAppsRecentPanel.tsx` + - `src/components/sceneapps/useSceneAppsPageRuntime.ts` + - 当前目录页现在已经具备: + - `SceneApp` 最近访问记录的统一本地事实源 + - `sceneappId + projectId` 维度去重更新,而不是无上限堆积重复记录 + - “继续上次上下文”与最近场景列表的业务入口 + - 同时补了一个重要门禁: + - 空参打开目录页时,默认首项自动选中不会立刻写回导航和最近访问 + - 只有显式页面参数或用户真实交互后,才会触发同步与持久化 + - 这意味着后续再接: + - 侧边栏空参进入后的恢复入口 + - 首页推荐位跳转后的回流继续 + - 场景运营面板的最近活跃列表 + 都可以复用同一套 `SceneApp page state + recent visit` 协议 ### 当前判断 @@ -76,12 +898,35 @@ - 基础设置包现在不仅回答“长什么样”,也开始回答“怎么发布、怎么灰度、怎么回滚” - 基础设置包这条线现在也开始回答“第一版先改什么代码、先不改什么代码” - 基础设置包这条线现在已经不只是文档设计,而有了第一版代码骨架和最小单测闭环 +- 基础设置包这条线现在也不再只是“独立模块可跑”,而是已经接回 `serviceSkills.ts` 与 bootstrap 的真实主链 +- 基础设置包这条线现在还开始接管默认 seeded 云端目录,说明装配层已经不再只是“远端来的东西才走” +- 基础设置包这条线现在也开始接管 seeded 本地定制项,说明内置目录的主要来源已经都回到装配层 +- 基础设置包这条线现在也已经接回 `skillCatalog.ts` 与 `skillCatalogBootstrap.ts`,说明 `scene_catalog` 不再只是未来规划,而是进入真实产品入口 +- `SceneApp` 这一层现在也不再只是路线图术语,而已经具备前后端统一 descriptor、命令边界、durable adapter 与治理 metadata 主链 +- `SceneApp` planner 现在也不再只会输出“解释性步骤”,而开始输出可执行的 current runtime adapter draft +- `SceneApp` 前端现在也不再只有 planner 结果,而开始具备统一 execution draft facade,说明 `adapterPlan` 已经进入可接线阶段 +- `SceneApp` 前端现在也不再只有 execution draft facade,而开始具备真实 action bridge 与首个空态业务入口,说明“库层桥接”这一刀已经完成 +- `SceneApp` 统一恢复协议现在也不再只覆盖前三条浅链,而是已经把 `browser_assist / cloud_scene / native_skill` 的深链恢复一起收口 +- 当前 `SceneApp` 首页入口已经开始用业务语言而不是 runtime 术语表达: + - 多模态组合 + - 资料沉淀 + - 持续研究 +- `SceneApp` 消费层现在已经不再只有空态推荐,而开始具备真正的目录工作台、详情页、scorecard 和 recent runs 视图 - 当前四类样板已经覆盖: - 浏览器采集导出 - 云端托管媒体生产 - 本地持续跟踪 - 多模态组合结果链 - 基础设置包现在已经不只是“目录下发”,还承担多步骤组合链的业务装配语义 +- durable 场景的 automation 装配现在也不再只靠 `slot.type=schedule_time` 和运行时临时拼装: + - `Base Setup Package` 已新增 `automationProfiles[]` + - `catalogProjection.automationProfileRef` 已进入 validator / parser / projection metadata / snapshot index + - `每日趋势摘要 / 账号增长跟踪` seeded durable 样板已显式声明 automation profile + - `service-skills/automationDraft.ts` 现在会优先消费装配层的 schedule / delivery / retry / enabled 预设,再回退到旧的 slot fallback +- durable 场景的 automation fallback 现在也开始回到同一装配主链: + - `src/lib/base-setup/automationProjection.ts` 已成为统一解析层 + - 当前 durable 启动不再需要直接读页面层或手写 seeded 补丁来猜 automation 默认值 + - `service_skill.request_metadata.base_setup` 也开始携带稳定的 package / projection / automation profile 引用,方便后续 automation detail / SceneApp run / scorecard 继续对齐同一事实源 ### 风险 @@ -89,28 +934,156 @@ - 如果后续让 `catalog projection`、`binding profile`、`artifact profile` 分别在不同文档里各说各话,基础设置包会再次失去顶层约束 - 如果后续只写 schema,不把 validator / rollout / seeded fallback 做成真实门禁,团队还是会退回“改了文档等于完成” - 如果后续跳过 compat projection,直接要求所有前台入口原生理解 `Base Setup Package`,改动面会过大,容易再次拖慢主线 -- 如果后续长期只停在独立模块和单测,不接回 `serviceSkills.ts` 的真实 catalog 主链,这套骨架会再次漂浮 +- 如果后续 `command_catalog` 或 automation projection 继续停在手写补丁层,装配主线仍然会长期半双轨 +- 如果后续把新增 `command_catalog` projection 误判成“已经支持任意新命令 DSL”,会高估当前阶段;现阶段仍主要服务现有命令语义的事实源收口 +- 如果后续 `SceneApp` UI 又回到从 `serviceSkills.ts`、`skillCatalog.ts`、selector 各自拼语义,统一 descriptor 主链会再次失效 - 如果后续给组合型场景单独发明 viewer 或 binding,宿主边界会再次变模糊 - 如果后续只看最终视频草稿成败,不看 `project pack` 接受率与阶段返工率,组合场景很容易被误判 ### 下一刀 -- 把基础设置包 schema 继续下沉到 bootstrap / seeded catalog 可消费的目录投影与最小 validator -- 把 `base-setup-projection-lifecycle.md` 继续下沉为 validator / projection compiler / rollout gate 的代码级设计 -- 基于 `base-setup-implementation.md` 决定第一版真实实现路线:客户端编译,还是服务端预编译 + 客户端 gate -- 把 `src/lib/base-setup/*` 正式接回 `src/lib/api/serviceSkills.ts` 的 seeded / bootstrap 主链 -- 把多模态组合样板的 `project pack` 接到真实 artifact / viewer / scorecard 聚合入口 -- 把 `SceneScorecard` 与周会模板、场景看板和任务中心口径继续打通 +- durable 场景的 automation projection / fallback 已收口到装配主链,下一步转为: + - 基于 `base-setup-implementation.md` 决定第一版真实实现路线:客户端编译,还是服务端预编译 + 客户端 gate + - 把多模态组合样板的 `project pack` 接到真实 artifact / viewer / scorecard 聚合入口 + - 把 `SceneScorecard` 与周会模板、场景看板和任务中心口径继续打通 + - 继续把 automation detail / SceneApp run / scorecard 聚合层消费同一组 base-setup refs,而不是各自回退到运行时猜测 +- `SceneApp` 恢复协议当前已稳定收口到: + - `sourceRef` + - `sessionId` + - `browserRuntimeRef` + - `cloudSceneRuntimeRef` + - `nativeSkillRuntimeRef` +- `browser-runtime` GUI smoke 当前也已恢复通过,所以后续主线不再是“先救 smoke 环境”,而是“把组合交付和经营聚合真正接起来” ### 验证 - 已执行: - `npm run harness:doc-freshness` - 结果:`clean` - - `npm test -- "src/lib/base-setup/validator.test.ts" "src/lib/base-setup/compiler.test.ts" "src/lib/base-setup/rolloutGate.test.ts"` - - 结果:`3 files / 8 tests passed` + - `npm test -- "src/lib/base-setup/validator.test.ts" "src/lib/base-setup/compiler.test.ts" "src/lib/base-setup/rolloutGate.test.ts" "src/lib/base-setup/storage.test.ts" "src/lib/base-setup/bootstrap.test.ts" "src/lib/base-setup/seededServiceSkillPackage.test.ts" "src/lib/api/serviceSkills.test.ts" "src/lib/serviceSkillCatalogBootstrap.test.ts"` + - 结果:`8 files / 34 tests passed` + - `npm test -- "src/lib/api/skillCatalog.test.ts" "src/lib/skillCatalogBootstrap.test.ts"` + - 结果:`2 files / 9 tests passed` + - `npm test -- "src/components/agent/chat/workspace/useWorkspaceSceneAppEntryActions.test.tsx" "src/components/agent/chat/components/EmptyState.test.tsx" "src/components/agent/chat/workspace/sceneAppLaunch.test.ts"` + - 结果:`3 files / 33 tests passed` + - `npm test -- "src/lib/sceneapp/product.test.ts" "src/lib/sceneapp/launch.test.ts" "src/components/agent/chat/workspace/sceneAppLaunch.test.ts" "src/components/agent/chat/workspaceEntry.test.ts" "src/components/sceneapps/SceneAppsPage.test.tsx" "src/lib/api/sceneapp.test.ts"` + - 结果:`6 files / 47 tests passed` + - `cargo test --manifest-path "src-tauri/Cargo.toml" sceneapp::adapters` + - 结果:`5 tests passed` + - `cargo test --manifest-path "src-tauri/Cargo.toml" sceneapp::governance` + - 结果:`3 tests passed` - `npm run typecheck` - - 结果:未通过,当前阻塞来自仓库其他已有类型错误;本轮新增 `src/lib/base-setup/*` 未再报新错 + - 结果:`passed` + - `npm test -- "src/components/agent/chat/workspace/useWorkspaceConversationSceneRuntime.test.ts"` + - 结果:`1 file / 7 tests passed` + - `npx eslint "src/components/agent/chat/workspace/useWorkspaceSceneAppEntryActions.ts" "src/components/agent/chat/workspace/useWorkspaceSceneAppEntryActions.test.tsx" "src/components/agent/chat/components/EmptyStateSceneAppsPanel.tsx" "src/components/agent/chat/components/EmptyState.test.tsx" "src/components/agent/chat/components/EmptyState.tsx" "src/components/agent/chat/AgentChatWorkspace.tsx" "src/components/agent/chat/workspace/useWorkspaceConversationSceneRuntime.tsx" "src/components/agent/chat/workspace/WorkspaceConversationScene.tsx" "src/components/agent/chat/workspace/chatSurfaceProps.ts"` + - 结果:`passed` + - `npm test -- "src/lib/base-setup/seededServiceSkillPackage.test.ts" "src/lib/api/serviceSkills.test.ts" "src/lib/api/skillCatalog.test.ts" "src/lib/serviceSkillCatalogBootstrap.test.ts" "src/lib/skillCatalogBootstrap.test.ts"` + - 结果:`5 files / 32 tests passed` + - `npm test -- "src/lib/base-setup/compat/commandCatalogProjection.test.ts" "src/lib/api/skillCatalog.test.ts" "src/lib/skillCatalogBootstrap.test.ts" "src/components/agent/chat/workspace/useWorkspaceSendActions.test.tsx"` + - 结果:`4 files / 94 tests passed` + - `npx eslint "src/lib/base-setup/compat/commandCatalogProjection.ts" "src/lib/base-setup/compat/commandCatalogProjection.test.ts" "src/lib/api/skillCatalog.ts" "src/lib/api/skillCatalog.test.ts" "src/lib/skillCatalogBootstrap.test.ts" "src/components/agent/chat/workspace/useWorkspaceSendActions.ts" "src/components/agent/chat/workspace/useWorkspaceSendActions.test.tsx"` + - 结果:`passed` + - `npm run verify:gui-smoke` + - 结果:通过 + - `npm run verify:local` + - 结果:通过 + - `npm test -- "src/lib/base-setup/automationProjection.test.ts" "src/lib/base-setup/validator.test.ts" "src/lib/base-setup/compiler.test.ts" "src/lib/base-setup/storage.test.ts" "src/lib/base-setup/seededServiceSkillPackage.test.ts" "src/components/agent/chat/service-skills/automationDraft.test.ts"` + - 结果:`6 files / 21 tests passed` + - `npm run typecheck` + - 结果:通过 + - `npx eslint "src/lib/base-setup/types.ts" "src/lib/base-setup/serviceSkillCatalogAdapter.ts" "src/lib/base-setup/validator.ts" "src/lib/base-setup/compat/serviceSkillCatalogProjection.ts" "src/lib/base-setup/seededServiceSkillPackage.ts" "src/lib/base-setup/automationProjection.ts" "src/lib/base-setup/automationProjection.test.ts" "src/lib/base-setup/storage.test.ts" "src/lib/base-setup/seededServiceSkillPackage.test.ts" "src/lib/base-setup/validator.test.ts" "src/lib/sceneapp/catalog.test.ts" "src/components/agent/chat/service-skills/automationDraft.ts" "src/components/agent/chat/service-skills/automationDraft.test.ts"` + - 结果:通过 + - `npm run verify:local` + - 结果:未通过;当前仓库另一路改动在 `src/components/settings-v2/general/memory/index.tsx:269` 存在已有 lint parse error,阻塞全仓门槛,但不在本轮 `base-setup automation projection / durable automation draft` 变更范围内 + - `npm test -- "src/lib/sceneapp/product.test.ts" "src/components/sceneapps/SceneAppsPage.test.tsx" "src/lib/api/sceneapp.test.ts"` + - 结果:`3 files / 13 tests passed` + - `npm test -- "src/components/AppPageContent.test.tsx" "src/components/agent/chat/workspace/useWorkspaceInitialSessionNavigation.test.tsx"` + - 结果:`2 files / 12 tests passed` + - `cargo check --manifest-path "src-tauri/Cargo.toml"` + - 结果:通过 + - `npm run test:contracts` + - 结果:通过 + - `npm run verify:gui-smoke` + - 结果:失败;`smoke:browser-runtime` 持续卡在 `launch_browser_session` 超时,`180000ms` 内未收到 DevBridge 响应 + - `npm run verify:local` + - 结果:失败;同样阻塞于 `smoke:browser-runtime`,非本轮 SceneApp / Agent session 恢复代码直接触发的断言失败 + - `npm run typecheck` + - 结果:通过 + - `npm test -- src/lib/sceneapp/catalog.test.ts src/lib/api/sceneapp.test.ts src/lib/dev-bridge/mockPriorityCommands.test.ts src/lib/tauri-mock/core.test.ts` + - 结果:`4 files / 18 tests passed` + - `cargo check --manifest-path "src-tauri/Cargo.toml"` + - 结果:通过 + - `npm test -- "src/components/sceneapps/SceneAppsPage.test.tsx"` + - 结果:`1 file / 4 tests passed` + - `npx eslint "src/components/sceneapps/SceneAppsPage.tsx" "src/components/sceneapps/useSceneAppsPageRuntime.ts" "src/components/sceneapps/SceneAppRunList.tsx" "src/components/sceneapps/SceneAppRunDetailPanel.tsx" "src/lib/sceneapp/presentation.ts" "src/components/sceneapps/SceneAppsPage.test.tsx"` + - 结果:通过 + - `npm run typecheck` + - 结果:通过 + - `npm run verify:gui-smoke` + - 结果:未通过;当前环境无法监听 `127.0.0.1:1420`,报错 `listen EPERM: operation not permitted 127.0.0.1:1420` + - `npm test -- "src/components/sceneapps/SceneAppsPage.test.tsx" "src/components/AppPageContent.test.tsx"` + - 结果:`2 files / 14 tests passed` + - `npx eslint "src/components/sceneapps/useSceneAppsPageRuntime.ts" "src/components/sceneapps/SceneAppsPage.test.tsx" "src/components/AppPageContent.test.tsx" "src/types/page.ts"` + - 结果:通过 + - `npm run typecheck` + - 结果:通过 + - `npm run verify:gui-smoke` + - 结果:未通过;当前环境无法监听 `127.0.0.1:1420`,报错 `listen EPERM: operation not permitted 127.0.0.1:1420` + - `npm test -- "src/lib/sceneapp/storage.test.ts" "src/components/sceneapps/SceneAppsPage.test.tsx" "src/components/AppPageContent.test.tsx"` + - 结果:`3 files / 18 tests passed` + - `npx eslint "src/lib/sceneapp/navigation.ts" "src/lib/sceneapp/storage.ts" "src/lib/sceneapp/storage.test.ts" "src/components/sceneapps/useSceneAppsPageRuntime.ts" "src/components/sceneapps/SceneAppsRecentPanel.tsx" "src/components/sceneapps/SceneAppsPage.tsx" "src/components/sceneapps/SceneAppsPage.test.tsx" "src/components/AppPageContent.test.tsx" "src/types/page.ts"` + - 结果:通过 + - `npm run typecheck` + - 结果:通过 + - `npm run verify:gui-smoke` + - 结果:未通过;当前环境无法监听 `127.0.0.1:1420`,报错 `listen EPERM: operation not permitted 127.0.0.1:1420` + - `npm test -- src/lib/api/sceneapp.test.ts src/lib/tauri-mock/core.test.ts` + - 结果:`2 files / 14 tests passed` + - `npm test -- "src/lib/sceneapp/launch.test.ts" "src/lib/api/sceneapp.test.ts" "src/lib/tauri-mock/core.test.ts"` + - 结果:`3 files / 17 tests passed` + - `npm test -- "src/components/agent/chat/workspace/sceneAppLaunch.test.ts" "src/lib/sceneapp/launch.test.ts" "src/lib/api/sceneapp.test.ts"` + - 结果:`3 files / 13 tests passed` + - `npm test -- "src/components/agent/chat/workspaceEntry.test.ts" "src/components/agent/chat/workspace/sceneAppLaunch.test.ts"` + - 结果:`2 files / 14 tests passed` + - `npx eslint "src/components/agent/chat/workspace/sceneAppLaunch.ts" "src/components/agent/chat/workspace/sceneAppLaunch.test.ts" "src/lib/sceneapp/launch.ts"` + - 结果:通过 + - `npx eslint "src/lib/sceneapp/launch.ts" "src/lib/sceneapp/launch.test.ts" "src/lib/sceneapp/types.ts" "src/lib/api/sceneapp.ts"` + - 结果:通过 + - `npm run test:contracts` + - 结果:通过 + - `npm test -- "src/components/sceneapps/SceneAppsPage.test.tsx" "src/components/AppPageContent.test.tsx" "src/hooks/useAppNavigation.test.tsx" "src/lib/navigation/sidebarNav.test.ts" "src/components/agent/chat/components/EmptyState.test.tsx" "src/components/agent/chat/workspace/useWorkspaceSceneAppEntryActions.test.tsx" "src/components/agent/chat/workspace/sceneAppLaunch.test.ts" "src/lib/sceneapp/launch.test.ts"` + - 结果:`8 files / 56 tests passed` + - `npx eslint "src/components/sceneapps/SceneAppsPage.tsx" "src/components/sceneapps/SceneAppsPage.test.tsx" "src/components/sceneapps/SceneAppsCatalogPanel.tsx" "src/components/sceneapps/SceneAppDetailPanel.tsx" "src/components/sceneapps/SceneAppScorecardPanel.tsx" "src/components/sceneapps/SceneAppRunList.tsx" "src/components/sceneapps/useSceneAppsPageRuntime.ts" "src/components/AppPageContent.tsx" "src/components/AppPageContent.test.tsx" "src/components/agent/chat/components/EmptyState.tsx" "src/components/agent/chat/components/EmptyState.test.tsx" "src/components/agent/chat/components/EmptyStateSceneAppsPanel.tsx" "src/components/agent/chat/workspace/useWorkspaceSceneAppEntryActions.ts" "src/components/agent/chat/workspace/useWorkspaceSceneAppEntryActions.test.tsx" "src/components/agent/chat/workspace/sceneAppLaunch.test.ts" "src/components/agent/chat/workspace/WorkspaceConversationScene.tsx" "src/components/agent/chat/workspace/useWorkspaceConversationSceneRuntime.tsx" "src/components/agent/chat/workspace/chatSurfaceProps.ts" "src/components/agent/chat/AgentChatWorkspace.tsx" "src/lib/navigation/sidebarNav.ts" "src/lib/navigation/sidebarNav.test.ts" "src/types/page.ts" "src/lib/sceneapp/presentation.ts" "src/lib/sceneapp/automation.ts" "src/lib/sceneapp/launch.ts" "src/lib/sceneapp/launch.test.ts"` + - 结果:通过 + - `npm run typecheck` + - 结果:通过 + - `npm run verify:gui-smoke` + - 结果:失败,当前环境无法监听 `127.0.0.1:1420`,报错 `listen EPERM: operation not permitted 127.0.0.1:1420` + - `npm run verify:local` + - 结果:失败,但失败项仍为仓库已有无关问题,不在本轮 `SceneApp execution facade` 改动范围: + - `src/components/agent/chat/hooks/agentStreamFlowControl.test.ts` + - `src/components/agent/chat/utils/turnSummaryPresentation.ts` + - `src/lib/api/serviceSkills.ts` + - `src/lib/base-setup/serviceSkillCatalogAdapter.ts` + - `npm run lint` + - 结果:失败,但当前失败项为仓库已有无关问题,不在本轮 `SceneApp` 改动范围: + - `src/components/agent/chat/hooks/agentStreamFlowControl.test.ts` + - `src/components/agent/chat/utils/turnSummaryPresentation.ts` + - `src/lib/api/serviceSkills.ts` + - `src/lib/base-setup/serviceSkillCatalogAdapter.ts` + - `npm test -- "src/lib/sceneapp/product.test.ts" "src/components/sceneapps/SceneAppsPage.test.tsx" "src/lib/api/sceneapp.test.ts"` + - 结果:`3 files / 24 tests passed` + - `cargo test --manifest-path "src-tauri/Cargo.toml" browser_runtime_ref` + - 结果:`2 tests passed` + - `cargo check --manifest-path "src-tauri/Cargo.toml"` + - 结果:通过 + - `npm run typecheck` + - 结果:通过 + - `npx eslint "src/lib/sceneapp/types.ts" "src/lib/sceneapp/product.ts" "src/components/sceneapps/useSceneAppsPageRuntime.ts" "src/lib/sceneapp/product.test.ts" "src/components/sceneapps/SceneAppsPage.test.tsx" "src/lib/api/sceneapp.ts"` + - 结果:通过 + - `npm run verify:gui-smoke` + - 结果:失败;`smoke:browser-runtime` 仍阻塞于 `launch_browser_session`,报错 `读取 CDP 标签页失败: error sending request for url (http://127.0.0.1:14509/json/list)` ## 2026-04-14 diff --git a/docs/exec-plans/upstream-runtime-alignment-progress.md b/docs/exec-plans/upstream-runtime-alignment-progress.md index d7eb72a1f..9d955eff9 100644 --- a/docs/exec-plans/upstream-runtime-alignment-progress.md +++ b/docs/exec-plans/upstream-runtime-alignment-progress.md @@ -1,15 +1,155 @@ # 参考运行时主链对齐进度日志 +## 2026-04-16 + +### 已完成 + +- 在 [auto_memory_service.rs](../../src-tauri/src/services/auto_memory_service.rs) 把 `memdir` 从“无限追加日志”收成“有界目录”: + - `feedback / project / user / reference` 的 typed topic note 现在按“同 topic 一条当前记忆”覆盖更新,不再持续追加时间戳段落 + - 新增 `cleanup_memdir(...)`,统一负责去重入口链接、裁剪 README 历史段落,并把旧 topic 日志收口为当前有效版本 + - `MEMORY.md` 入口的时间戳 note 现在会在写入时自动去重并保留有界窗口,避免入口长期劣化成无上限流水账 +- 在 [memory_management_cmd.rs](../../src-tauri/src/commands/memory_management_cmd.rs)、[memory_runtime.rs](../../src-tauri/src/dev_bridge/dispatcher/memory_runtime.rs)、[runner.rs](../../src-tauri/src/app/runner.rs)、[memoryRuntime.ts](../../src/lib/api/memoryRuntime.ts)、[memoryRuntimeTypes.ts](../../src/lib/api/memoryRuntimeTypes.ts)、[core.ts](../../src/lib/tauri-mock/core.ts) 与 [mockPriorityCommands.ts](../../src/lib/dev-bridge/mockPriorityCommands.ts) 补齐 `memory_cleanup_memdir` 这条 current control-plane 命令,不再让 memdir 整理只停留在本地脚本或人工编辑 +- 在 [memory_source_resolver_service.rs](../../src-tauri/src/services/memory_source_resolver_service.rs) 调整 memdir linked item 的 prompt 预取优先级:具体 topic note 会优先于类型 `README.md`,同层内优先看最近更新时间,减少索引文件长期压过真正当前记忆的噪音 +- 在 [index.tsx](../../src/components/settings-v2/general/memory/index.tsx) 补上真实的 `整理 memdir` 入口,并把“同一 topic 会覆盖旧内容”的行为写回设置页说明;MemorySettings 不再只是能写、能初始化,还能直接治理已有脏记忆 +- 补回归: + - [auto_memory_service.rs](../../src-tauri/src/services/auto_memory_service.rs) 新增 typed topic overwrite 与 memdir cleanup 定向测试 + - [memory_source_resolver_service.rs](../../src-tauri/src/services/memory_source_resolver_service.rs) 新增“具体 topic 优先于 README”测试 + - [memoryRuntime.test.ts](../../src/lib/api/memoryRuntime.test.ts) 与 [index.test.tsx](../../src/components/settings-v2/general/memory/index.test.tsx) 新增 `memory_cleanup_memdir / 整理 memdir` 前端链路回归 +- 已执行校验: + - `npx prettier --write "src/lib/api/memoryRuntime.ts" "src/lib/api/memoryRuntimeTypes.ts" "src/lib/api/memoryRuntime.test.ts" "src/lib/tauri-mock/core.ts" "src/lib/dev-bridge/mockPriorityCommands.ts" "src/components/settings-v2/general/memory/index.tsx" "src/components/settings-v2/general/memory/index.test.tsx"` 通过 + - `rustfmt --edition 2021 "src-tauri/src/services/auto_memory_service.rs" "src-tauri/src/services/memory_source_resolver_service.rs" "src-tauri/src/commands/memory_management_cmd.rs" "src-tauri/src/dev_bridge/dispatcher/memory_runtime.rs" "src-tauri/src/app/runner.rs"` 通过 + - `npm exec vitest run "src/lib/api/memoryRuntime.test.ts" "src/components/settings-v2/general/memory/index.test.tsx" "src/lib/dev-bridge/mockPriorityCommands.test.ts"` 通过(`18 passed`) + +- 在 [verify-gui-smoke.mjs](../../scripts/verify-gui-smoke.mjs) 收紧 `waitForBridgeHealth` 的启动判定:不再把 `tauri dev` 父进程退出直接等同为失败,而是继续观察 GUI smoke 进程组是否仍有活跃 `cargo/rustc/tauri` 链路;同时把“编译结束后的 boot grace”放宽到“父进程仍活着或进程组仍活着”两种场景,避免冷启动时因为父进程提前退场而误判 `headless Tauri 在 DevBridge 就绪前提前退出` +- 已重新执行 `npm run verify:gui-smoke -- --timeout-ms 1200000 --cargo-target-dir "/tmp/lime-gui-smoke-target-debug-parent-exit"` 并通过:`workspace-ready`、`browser-runtime`、`site-adapters`、`agent-service-skill-entry`、`agent-runtime-tool-surface`、`agent-runtime-tool-surface-page` 全链路冒烟通过,GUI smoke 主路径重新恢复到 Lime 可交付门槛 +- 已再次核对 smoke Chrome profile 清理收口:GUI smoke 收尾后 `find "$HOME/Library/Application Support/lime/chrome_profiles" -maxdepth 1 -type d \( -name 'smoke-browser-runtime*' -o -name 'smoke-agent-runtime-tool-surface-page*' \) | sort` 结果为空;本轮预清理日志显示共回收 `78` 个历史 profile、结束 `264` 个残留进程,收尾阶段再清掉本轮新增的 `5` 个 profile 与 `2` 个残留进程 +- 在 [webview_cmd.rs](../../src-tauri/src/commands/webview_cmd.rs)、[runner.rs](../../src-tauri/src/app/runner.rs)、[bridge.rs](../../src-tauri/src/dev_bridge/dispatcher/browser/bridge.rs) 与 [core.ts](../../src/lib/tauri-mock/core.ts) 补上 `cleanup_gui_smoke_chrome_profiles` 这条 DevBridge current 清理命令:它只识别 `smoke-browser-runtime*` 与 `smoke-agent-runtime-tool-surface-page*` 两类 GUI smoke 专用 Chrome profile,统一收口“关闭受管 session / 关闭 runtime session / 杀掉孤儿 Chrome 进程 / 清 singleton 锁 / 删除 profile 目录”,不再把历史遗留清理逻辑散落在脚本层自己拼 `ps/find/rm` +- 在 [verify-gui-smoke.mjs](../../scripts/verify-gui-smoke.mjs) 接上新的清理主链:health URL 现在会自动推导 `invoke` 地址,bridge 就绪后会先做一次历史 `smoke-*` Chrome profile 预清理,所有 smoke 结束后再做一次收尾清理,失败场景也会走兜底清理日志;后续 GUI smoke 不再只解决“本轮别再新增泄漏”,而是开始回收旧 profile 垃圾 +- 在 [webview_cmd.rs](../../src-tauri/src/commands/webview_cmd.rs) 补定向回归:新增 `is_gui_smoke_chrome_profile_key_should_only_match_expected_prefixes` 与 `cleanup_gui_smoke_chrome_profiles_should_remove_only_smoke_dirs`,锁定只清 GUI smoke profile、不误删普通浏览器资料的边界 +- 已执行校验: + - `node --check "scripts/verify-gui-smoke.mjs"` 通过 + - `env CARGO_TARGET_DIR="/tmp/lime-target-gui-smoke-cleanup" cargo test --manifest-path "src-tauri/Cargo.toml" cleanup_gui_smoke_chrome_profiles_should_remove_only_smoke_dirs --lib -- --nocapture` 通过(`1 passed`) + - `npm run test:contracts` 通过 + - `npm run verify:gui-smoke -- --timeout-ms 1200000 --cargo-target-dir "/tmp/lime-gui-smoke-target-debug-parent-exit"` 通过 + +### 当前观察 + +- `verify:gui-smoke` 这条质量门槛本轮已经恢复为绿色,不再阻塞 `memdir` / memory 主线继续推进 +- 本次长冷启动通过时,现场另一个本地 `lime` 进程最终占住了 `127.0.0.1:3030`(当前可见 PID `32676`),因此我这条独立 headless binary 在真正启动后记录了 `Dev Bridge 启动失败: Address already in use (os error 48)`;也就是说,这次通过证明了脚本不会再因为冷启动等待而误判失败,但若后续要证明“本实例独占 3030 也能启动”,仍应在更干净的本地环境或独立端口策略下复验 + +### 继续推进(file checkpoint UI) + +- 在 [AgentThreadFileCheckpointDialog.tsx](../../src/components/agent/chat/components/AgentThreadFileCheckpointDialog.tsx) 新增最小 file checkpoint dialog,直接消费 `agent_runtime_list_file_checkpoints / agent_runtime_get_file_checkpoint / agent_runtime_diff_file_checkpoint` 这条 current 主链;弹窗打开时拉 list,默认选中最近 checkpoint,并在切换条目时并行刷新 detail / diff,不再只停留在可靠性面板上的单条“最近文件快照”摘要 +- 在 [AgentThreadReliabilityPanel.tsx](../../src/components/agent/chat/components/AgentThreadReliabilityPanel.tsx) 给“最近文件快照”卡片补上 `查看快照详情` 入口,并把弹窗状态维持在面板当前上下文内:只有存在 `diagnosticRuntimeContext.sessionId` 时才暴露入口,继续沿当前 thread/session 真相消费,不额外长第二套文件持久化读模型 +- 在 [AgentThreadReliabilityPanel.test.tsx](../../src/components/agent/chat/components/AgentThreadReliabilityPanel.test.tsx) 补上 file checkpoint 交互回归,覆盖入口出现、打开弹窗后拉 list、默认选中最近 checkpoint 拉 detail/diff,以及切换到旧版本 checkpoint 后重新刷新 detail/diff 与关键字段渲染 +- 在 [agent_sessions.rs](../../src-tauri/src/dev_bridge/dispatcher/agent_sessions.rs) 把 `agent_runtime_list_file_checkpoints / agent_runtime_get_file_checkpoint / agent_runtime_diff_file_checkpoint` 接回 browser DevBridge current 分发,不再让真实 GUI 在弹窗打开后掉回 `[DevBridge] 未知命令` +- 在 [dispatcher.rs](../../src-tauri/src/dev_bridge/dispatcher.rs) 补上 `agent_runtime_file_checkpoint_commands_are_bridged` 定向回归,锁定这 3 个命令至少已经进入 `agent_sessions` bridge 分支;即使测试态没有 `AppHandle`,也应报 `Dev Bridge 未持有 AppHandle`,而不是回退成 unknown command +- 为恢复本地真实 GUI 续测,又顺手收掉了当前工作区里会卡死 `tauri:dev:headless` 的一组 Rust 编译半状态:当前确认需要把 [api_key_provider_service.rs](../../src-tauri/crates/services/src/api_key_provider_service.rs) 中 `test_codex_responses_endpoint(...)` 的签名与 3 处调用点对齐到同一套 5 参链路,避免 `provider_type` 在调用侧 / 定义侧来回失配把整条 DevBridge 启动链卡死 +- 已用真实 GUI 复测打通 file checkpoint 弹窗主链:本地 `npm run tauri:dev:headless` 已成功启动 `target/debug/lime`,`npm run bridge:health -- --timeout-ms 30000` 返回 `status=ok`;随后在历史会话 `Hello greeting`(`session=6e7f8e4b-129a-4f78-9ad0-41d8a7a801ec`)里进入 `任务中心 -> 切换历史 -> Hello greeting -> 展开工作台 -> 线程可靠性 -> 查看快照详情`,弹窗已真实显示 `共 1 个` checkpoint、默认选中 `v1`、标题 `你好!👋`、状态 `draft`、`live_path / snapshot_path / currentVersionId` 以及完整 `ArtifactDocument` JSON,说明 browser DevBridge 已经从“unknown command”前进到真实 `list / detail / diff` 数据面 +- 已执行校验: + - `npx vitest run "src/components/agent/chat/components/AgentThreadReliabilityPanel.test.tsx"` 通过(`15 passed`) + - `npm run test:contracts` 通过 + - `npm run typecheck` 通过 + - `npm run tauri:dev:headless` 通过增量重编成功启动 `target/debug/lime` + - `npm run bridge:health -- --timeout-ms 30000` 通过(`status=ok`) + - `npm run verify:local` 已尝试执行,但当前仓库存在 `291` 个脏改,smart 模式被放大为全仓 workflow;本轮仅确认其已通过 `verify:app-version / lint / typecheck` 并进入 `vitest-smart` 多批次执行,随后为避免被无关改动长期占用而手动停止 + - `npm run verify:gui-smoke` 的这轮旧阻塞已在本节上方收口;当前 file checkpoint 弹窗链路也已补到真实 GUI 证据,不过现场仍可见与本轮主线无关的 browser DevBridge 缺口:`sceneapp_list_catalog`、`gateway_channel_status` 仍报 unknown command;其中历史会话里 `agent_runtime_update_session` 的 `full-access` / `full_access` 枚举别名 warning 已开始在 current DTO/agent runtime 边界收口,尚未单独做一次真实 GUI 复测 + +### 继续推进(recent_access_mode alias cleanup) + +- 在 [session_execution_runtime.rs](../../src-tauri/crates/agent/src/session_execution_runtime.rs) 把 `SessionExecutionRuntimeAccessMode` 的 serde 口径从只认 `snake_case` 收口为 `kebab-case` current 真相,并为历史 `read_only / full_access` 增加兼容 alias;后续 `recent_access_mode` 的序列化结果会稳定回到前端与运行时元数据已经在使用的 `read-only / current / full-access` +- 在 [tests.rs](../../src-tauri/src/commands/aster_agent_cmd/tests.rs) 补上 `agent_runtime_update_session` 的 `recentAccessMode` 反序列化回归,锁定 browser DevBridge / GUI 历史会话当前实际发送的 `full-access` 不会再因为 Rust DTO 只认 `full_access` 而掉 warning +- 已执行校验: + - `rustfmt --edition 2021 "src-tauri/crates/agent/src/session_execution_runtime.rs" "src-tauri/src/commands/aster_agent_cmd/tests.rs"` 通过 + - `npx vitest run "src/components/agent/chat/components/AgentThreadReliabilityPanel.test.tsx"` 通过(复跑,`15 passed`) + - `src-tauri/target/debug/deps/lime_lib-f738bc5b97ece89b --exact commands::aster_agent_cmd::tests::test_agent_runtime_update_session_request_deserializes_recent_access_mode_aliases --nocapture` 通过(`1 passed`) + - 已做真实 GUI 续测:`npm run bridge:health -- --timeout-ms 15000` 返回 `status=ok` 后,复用 `http://127.0.0.1:1420/` 现有页签重载首页,再沿 `任务中心 -> 切换历史 -> Hello greeting -> 展开工作台 -> 查看快照详情` 复走 file checkpoint 弹窗链路;控制台只剩既有的 `gateway_channel_status` / `sceneapp_list_catalog` unknown command 与 `i18n` warning,未再出现 `agent_runtime_update_session` 或 `full-access / full_access` 相关 warning + - `SessionExecutionRuntimeAccessMode` 自身的 agent crate 单测已补代码,但本地存在其他长期 `cargo run` 进程占用默认 Cargo cache;尝试绕开锁时会退化成重新下载整套 crates,因此本轮未继续等待 agent crate 独立测试跑完 + ## 2026-04-15 ### 已完成 +- 在 [runtime_file_checkpoint_service.rs](../../src-tauri/src/services/runtime_file_checkpoint_service.rs)、[dto.rs](../../src-tauri/src/commands/aster_agent_cmd/dto.rs) 与 [runtime_api.rs](../../src-tauri/src/commands/aster_agent_cmd/command_api/runtime_api.rs) 补上 runtime file checkpoint current 主链:继续以 `SessionDetail.items -> FileArtifact -> artifact_document_service sidecar` 为唯一事实源,新增 `thread_read.file_checkpoint_summary` 轻摘要,以及 `agent_runtime_list_file_checkpoints / agent_runtime_get_file_checkpoint / agent_runtime_diff_file_checkpoint` 三个 current 命令,不再引入第二套 transcript 文件真相 +- 在 [runtime_evidence_pack_service.rs](../../src-tauri/src/services/runtime_evidence_pack_service.rs) 与 [runtime_replay_case_service.rs](../../src-tauri/src/services/runtime_replay_case_service.rs) 把 `fileCheckpoints / fileCheckpointCount` 正式接入 evidence / replay sidecar,analysis / review / replay 后续统一复用同一份 checkpoint 读模型,不再各自重新扫描 artifact 状态 +- 在 [types.ts](../../src/lib/api/agentRuntime/types.ts)、[threadClient.ts](../../src/lib/api/agentRuntime/threadClient.ts)、[agentRuntimeCommandSchema.json](../../src/lib/governance/agentRuntimeCommandSchema.json)、[agentCommandCatalog.json](../../src/lib/governance/agentCommandCatalog.json)、[mockPriorityCommands.ts](../../src/lib/dev-bridge/mockPriorityCommands.ts) 与 [core.ts](../../src/lib/tauri-mock/core.ts) 同步命令边界五侧,生成清单 [commandManifest.generated.ts](../../src/lib/api/agentRuntime/commandManifest.generated.ts) 也已刷新,新的 file checkpoint 命令继续落在 `agent_runtime_*` current gateway,而不是 compat/legacy 旁路 +- 在 [AgentThreadReliabilityPanel.tsx](../../src/components/agent/chat/components/AgentThreadReliabilityPanel.tsx) 新增“最近文件快照”摘要块,并在 [AgentThreadReliabilityPanel.test.tsx](../../src/components/agent/chat/components/AgentThreadReliabilityPanel.test.tsx) 补稳定断言;同时建立持久化 current 文档 [persistence-map.md](../aiprompts/persistence-map.md),并回挂到 [docs/README.md](../README.md)、[docs/aiprompts/README.md](../aiprompts/README.md) 与 [AGENTS.md](../../AGENTS.md) +- 在 [runtime_evidence_pack_service.rs](../../src-tauri/src/services/runtime_evidence_pack_service.rs) 与 [runtime_replay_case_service.rs](../../src-tauri/src/services/runtime_replay_case_service.rs) 的现有测试里补上 `fileCheckpointCount / fileCheckpoints / checkpoint_id / path` 断言,确保 evidence / replay 已真实消费新的 checkpoint 读模型,而不是只在实现侧悄悄接线 +- 已执行校验: + - `node scripts/generate-agent-runtime-clients.mjs` 通过 + - `npx vitest run "src/components/agent/chat/components/AgentThreadReliabilityPanel.test.tsx" "src/lib/dev-bridge/mockPriorityCommands.test.ts"` 通过(`17 passed`) + - `npm run test:contracts` 通过 + - `npm run typecheck` 通过 + - `npx vitest run "src/components/provider-pool/api-key/ProviderConfigForm.ui.test.tsx" "src/components/settings-v2/general/memory/index.test.tsx"` 通过(`19 passed`) + - `env CARGO_TARGET_DIR="/Users/coso/Documents/dev/ai/aiclientproxy/lime/.codex-target" cargo check --manifest-path "src-tauri/Cargo.toml" --lib` 通过 + - `env CARGO_TARGET_DIR="/Users/coso/Documents/dev/ai/aiclientproxy/lime/.codex-target" cargo test --manifest-path "src-tauri/Cargo.toml" runtime_file_checkpoint_service::tests:: --lib -- --nocapture` 通过(`3 passed`) + - `env CARGO_TARGET_DIR="/Users/coso/Documents/dev/ai/aiclientproxy/lime/.codex-target" cargo test --manifest-path "src-tauri/Cargo.toml" should_export_runtime_ --lib -- --nocapture` 通过(`6 passed`) + - `npm run verify:gui-smoke` 通过(复用现有 headless 环境,`workspace-ready / browser-runtime / site-adapters / agent-service-skill-entry / agent-runtime-tool-surface / agent-runtime-tool-surface-page` 全部通过) + - `npm run verify:local` 通过 +- 当前更高层验证状态: + - 之前记录里的 `should_export_runtime_` / `SceneAppRunSummary` 阻塞已不再复现;当前仓库中的 `sceneapp` 初始化点已补齐新字段,本轮实际阻塞改为 [claude_custom.rs](../../src-tauri/crates/providers/src/providers/claude_custom.rs) 的 `Default` 实现缺口,现已修复并复测通过 + - 之前记录里的 `verify:local` TypeScript 阻塞也已修复;[ProviderConfigForm.ui.test.tsx](../../src/components/provider-pool/api-key/ProviderConfigForm.ui.test.tsx) 与 [index.tsx](../../src/components/settings-v2/general/memory/index.tsx) 的类型问题不再复现,本轮已重新从统一入口跑通 `npm run verify:local` + +- 在 [auto_memory_service.rs](../../src-tauri/src/services/auto_memory_service.rs) 将自动记忆入口收口为 `memdir` 主链:新增 `user / feedback / project / reference` 四类目录脚手架、最小 provider seam、topic 文件递归索引与 `memory_type / provider / updated_at` 元数据;`feedback / project` 写入现在强制要求 `Why:` 与 `How to apply:` 结构,`project` 同时拒绝 `今天 / tomorrow / next week` 这类相对时间词,避免记忆过期后继续误导执行 +- 在 [memory_source_resolver_service.rs](../../src-tauri/src/services/memory_source_resolver_service.rs) 为来源链读模型补齐 `source_bucket / provider / memory_type / updated_at`,并让 `auto_memory_item` 真正进入 runtime 解析与 prompt 来源链;同时把 `memory_type` 约束到 memdir 来源,不再误打到普通项目规则或其它非 memdir 文件 +- 在 [memoryRuntimeTypes.ts](../../src/lib/api/memoryRuntimeTypes.ts)、[index.tsx](../../src/components/settings-v2/general/memory/index.tsx) 与 [MemoryPage.tsx](../../src/components/memory/MemoryPage.tsx) 同步前端主链:设置页可以直接初始化 `memdir`、按类型写入真实 note,并在前端先做结构化/绝对日期拦截;Memory 页面与设置页当前都按 `memdir` 分类、provider、最近更新时间展示真实来源,不再沿用旧的外部工具记忆心智文案 +- 将这轮 `memdir` 约束与元数据回写到 [memory-compaction.md](../aiprompts/memory-compaction.md),明确 `MEMORY.md -> user|feedback|project|reference` 是 current 组织方式,topic 文件必须继续挂在同一条索引主链下 +- 在 [browser-runtime-smoke.mjs](../../scripts/browser-runtime-smoke.mjs) 与 [agent-runtime-tool-surface-page-smoke.mjs](../../scripts/agent-runtime-tool-surface-page-smoke.mjs) 补上固定 smoke profile key 与 `close_chrome_profile_session` 前后清理,避免每次 GUI smoke 都遗留新的 headless Chrome profile 进程,连带拖慢后续 `browser_execute_action` 页面 smoke +- 已执行校验: + - `npm exec vitest run "src/lib/api/memoryRuntime.test.ts" "src/components/settings-v2/general/memory/index.test.tsx" "src/components/memory/MemoryPage.test.tsx"` 通过(`26 passed`) + - `npm run test:contracts` 通过 + - `npm run verify:gui-smoke -- --cargo-target-dir "/tmp/lime-gui-smoke-target-memdir-codex"` 通过(`workspace-ready / browser-runtime / site-adapters / agent-service-skill-entry / agent-runtime-tool-surface / agent-runtime-tool-surface-page` 全部通过) + - 在 [tests.rs](../../src-tauri/src/commands/aster_agent_cmd/tests.rs) 新增基础 Prompt 主链源码守卫,固定 `runtime_turn` 的 current 组装顺序:入口段必须保持 `RuntimeAgents -> ExplicitLocalPathFocus -> FullRuntime/FastChat 分流`,`build_full_runtime_system_prompt(...)` 必须保持 `Memory -> ... -> AutoContinue` 的既定 augmentation 顺序,`ServiceSkillLaunchPreload` 只能在 FullRuntime 下作为尾部追加阶段 - 同步把 `service_skill_launch_preload` 相关重复测试 fixture 收口为共享 helper,减少同一预执行样例在多条测试里重复内联,避免后续调整站点技能预执行 contract 时只改一半测试 - 补最贴边界的定向校验: - `env CARGO_TARGET_DIR="/Users/coso/Documents/dev/ai/aiclientproxy/lime/.codex-target" cargo test --manifest-path "src-tauri/Cargo.toml" runtime_turn_source_keeps --lib -- --nocapture` 通过(`3 passed`) - `env CARGO_TARGET_DIR="/Users/coso/Documents/dev/ai/aiclientproxy/lime/.codex-target" cargo test --manifest-path "src-tauri/Cargo.toml" service_skill_launch_preload --lib -- --nocapture` 通过(`3 passed`) +### 继续推进(browser DevBridge sceneapp / channels current 收口) + +- 在 [sceneapp.rs](../../src-tauri/src/dev_bridge/dispatcher/sceneapp.rs)、[channels.rs](../../src-tauri/src/dev_bridge/dispatcher/channels.rs) 与 [dispatcher.rs](../../src-tauri/src/dev_bridge/dispatcher.rs) 把 `sceneapp_list_catalog`、`gateway_channel_status`、`wechat_channel_list_accounts` 继续接回 browser DevBridge current 分发;[dispatcher.rs](../../src-tauri/src/dev_bridge/dispatcher.rs) 也新增 `sceneapp_list_catalog_is_bridged`、`gateway_channel_status_is_bridged`、`wechat_channel_list_accounts_is_bridged` 定向守卫,锁定这些命令已进入对应 bridge 分支,不再回退成 `[DevBridge] 未知命令` +- 在 [agentCommandCatalog.json](../../src/lib/governance/agentCommandCatalog.json)、[mockPriorityCommands.ts](../../src/lib/dev-bridge/mockPriorityCommands.ts)、[mockPriorityCommands.test.ts](../../src/lib/dev-bridge/mockPriorityCommands.test.ts) 与 [core.ts](../../src/lib/tauri-mock/core.ts) 同步命令边界四侧: + - `gateway_channel_status` 与 `wechat_channel_list_accounts` 现在都被视为 browser 模式下必须走 bridge 真相的 current runtime gateway 命令 + - `wechat_channel_list_accounts` 同步补进默认 mock,避免非 browser 模式的开发回路缺少返回形态 +- 在 [wechat_channel_cmd.rs](../../src-tauri/src/commands/wechat_channel_cmd.rs) 抽出纯 helper `list_wechat_configured_accounts(...)`,让 Tauri 命令与 browser DevBridge 共享同一段“列微信账号”逻辑;不再把 `tauri::State` 包装态直接透传进 bridge 分支,避免 bridge 场景里额外引入命令包装态阻塞 +- 已执行校验: + - `npm test -- src/lib/dev-bridge/mockPriorityCommands.test.ts` 通过(`3 passed`) + - `npm run test:bridge` 通过(`22 passed`) + - `npm run test:contracts` 通过 + - `env CARGO_TARGET_DIR="/tmp/lime-devbridge-current-tests" cargo test --manifest-path "src-tauri/Cargo.toml" sceneapp_list_catalog_is_bridged --lib -- --nocapture` 通过(`1 passed`) + - `env CARGO_TARGET_DIR="/tmp/lime-devbridge-current-tests" cargo test --manifest-path "src-tauri/Cargo.toml" gateway_channel_status_is_bridged --lib -- --nocapture` 通过(`1 passed`) + - `env CARGO_TARGET_DIR="/tmp/lime-devbridge-current-tests" cargo test --manifest-path "src-tauri/Cargo.toml" wechat_channel_list_accounts_is_bridged --lib -- --nocapture` 通过(`1 passed`) +- 已补现场证据: + - 活跃在 `127.0.0.1:3030` 的旧 bridge 一度是 Codex 自己遗留的 [lime](/Users/coso/Documents/dev/ai/aiclientproxy/lime/src-tauri/target/debug/lime) 实例;该旧进程对 `sceneapp_list_catalog`、`gateway_channel_status` 的 `curl /invoke` 已能返回 `200`,但 `wechat_channel_list_accounts` 仍返回 `[DevBridge] 未知命令`,说明真实 GUI 当时看到的是“上一刀已生效、这一刀尚未热更新”的混合现场 + - 在清掉这条 Codex 遗留 bridge 后,`127.0.0.1:3030` 一度空闲,随后又被另一条 Codex 派生的 [lime](/Users/coso/Documents/dev/ai/aiclientproxy/lime/src-tauri/target/debug/lime) 实例接管;`/health` 与 `gateway_channel_status` 已恢复 `200` + - 当前活跃 bridge 上,`curl /invoke` 已能真实返回 `wechat_channel_list_accounts` 的账号目录,例如 `774304b339c6@im.bot` 这条已启用账号会返回 `baseUrl=https://ilinkai.weixin.qq.com`、`cdnBaseUrl=https://novac2c.cdn.weixin.qq.com/c2c`、`hasToken=true` 与 `scannerUserId` + - 真实 GUI 续测到的错误类型已经从 `[DevBridge] 未知命令` 前移为 bridge 级超时:在 `消息渠道 -> 高级排障 -> 微信` 页,控制台已出现 `wechat_channel_list_accounts` / `gateway_channel_status` 的调用与 `timeout after 1800ms`,不再是 `unknown command` +- 在 [http-client.ts](../../src/lib/dev-bridge/http-client.ts) 收紧 browser DevBridge HTTP client 的时序策略: + - `sceneapp_list_catalog`、`gateway_channel_status`、`wechat_channel_list_accounts` 等“必须以 bridge 为真相”的命令现在统一使用 `5000ms` 请求超时,不再沿用默认 `1800ms` + - `fetch_provider_models_auto`、`test_api_key_provider_connection`、`test_api_key_provider_chat` 三条 provider 探测命令继续使用 `30000ms` 长超时,避免模型目录探测在浏览器模式下过早被前端判死 + - `ensureBridgeReachable()` 对“首个 health probe timeout”不再直接写入 cooldown;只有硬连接失败才进入 `bridge cooldown active`,避免首页第一次慢探测把后续数秒都拖进假性不可用 +- 在 [http-client.test.ts](../../src/lib/dev-bridge/http-client.test.ts) 补齐回归护栏: + - 区分“硬连接失败会进入 cooldown”和“timeout 只会触发重试,不会立刻 cooldown” + - 锁定 bridge 真相命令的 `5000ms` 超时窗口与 provider 探测命令的 `30000ms` 超时窗口 + - 锁定事件流监听只会在硬连接失败后的短退避窗口里阻止新 `EventSource` 建连 +- 本轮追加校验: + - `npm test -- src/lib/dev-bridge/http-client.test.ts` 通过(`10 passed`) + - `npm test -- src/lib/dev-bridge/mockPriorityCommands.test.ts` 通过(`3 passed`) + - `npm run test:bridge` 通过(`22 passed`) + - `npm run test:contracts` 通过 +- 本轮追加 live 证据: + - `curl -sS -m 5 "http://127.0.0.1:3030/health"` 返回 `{"service":"DevBridge","status":"ok","version":"1.0.0"}` + - `curl -sS -m 10 -X POST "http://127.0.0.1:3030/invoke" -d '{"cmd":"sceneapp_list_catalog"}'` 返回 scene app catalog + - `curl -sS -m 10 -X POST "http://127.0.0.1:3030/invoke" -d '{"cmd":"gateway_channel_status","args":{"request":{"channel":"wechat"}}}'` 返回 `{"channel":"wechat","status":{"accounts":[],"runningAccounts":0}}` + - `curl -sS -m 10 -X POST "http://127.0.0.1:3030/invoke" -d '{"cmd":"wechat_channel_list_accounts"}'` 返回真实微信账号目录,当前可见 `774304b339c6@im.bot` + +### 当前观察 + +- `sceneapp_list_catalog`、`gateway_channel_status`、`wechat_channel_list_accounts` 三条 current bridge 命令现在都已经具备代码、契约、Rust 定向测试与 live `/invoke` 证据;消息渠道页的真实 blocker 已经从 `unknown command` 前移到 bridge 性能/时序层,而不再是命令缺口 +- 由于现场存在多条长期 `tauri dev` / `lime` 进程,本轮继续保留“用隔离 `CARGO_TARGET_DIR` 串行验证 bridge 改动”的做法,避免再次和默认 Cargo target 抢锁;后续若继续做消息渠道页的 GUI 续测,应优先复用当前已经接管 `3030` 的新版 bridge,而不是再让 Codex 遗留实例占住端口 +- 本轮尝试继续做 GUI 复测时,`Playwright MCP` 仍直接报 `Target page/context/browser has been closed`,`chrome_devtools` 也出现 page/transport 提前断开;因此当前已经拿到“bridge live 可用 + 前端定向状态机回归通过”的证据,但“消息渠道页控制台里 `1800ms timeout` 是否已显著减少”还需要在更稳定的 MCP 浏览器会话下补一次真实 GUI 复测 + ## 2026-04-14 ### 已完成 @@ -180,17 +320,19 @@ - 在 [inventory.rs](../../src-tauri/src/agent_tools/inventory.rs)、[runtime_api.rs](../../src-tauri/src/commands/aster_agent_cmd/command_api/runtime_api.rs)、[types.ts](../../src/lib/api/agentRuntime/types.ts)、[core.ts](../../src/lib/tauri-mock/core.ts) 与 [HarnessStatusPanel.tsx](../../src/components/agent/chat/components/HarnessStatusPanel.tsx) 已补统一 `runtime_tools` 视图后,本轮继续把前端 usage 从“只在工具库存面板里看四张表”往“主界面直接消费实际 runtime tool surface”推进 - [useWorkspaceHarnessInventoryRuntime.ts](../../src/components/agent/chat/workspace/useWorkspaceHarnessInventoryRuntime.ts) 现在会在主界面启用时预取工具库存,不再等 Harness 面板展开后才第一次拉取 - 新增 [runtimeToolAvailability.ts](../../src/components/agent/chat/utils/runtimeToolAvailability.ts),把 `runtime_tools` 优先、`registry_tools` 兜底的真实 current surface 收口为 `webSearch / subagent(team) / task` 三组 capability 派生 - - [useWorkspaceInputbarSceneRuntime.tsx](../../src/components/agent/chat/workspace/useWorkspaceInputbarSceneRuntime.tsx)、[AgentRuntimeStrip.tsx](../../src/components/agent/chat/components/AgentRuntimeStrip.tsx)、[WorkspaceConversationScene.tsx](../../src/components/agent/chat/workspace/WorkspaceConversationScene.tsx)、[EmptyState.tsx](../../src/components/agent/chat/components/EmptyState.tsx) 与 [EmptyStateComposerPanel.tsx](../../src/components/agent/chat/components/EmptyStateComposerPanel.tsx) 已开始直接消费这份派生结果:Runtime strip 会显示实际 runtime tool surface 规模与 team/task gap,首页主输入区也会在用户开启 `联网搜索 / 任务拆分` 偏好但 runtime current tools 尚未接通时给出明确提示,不再把静态偏好误显示成“真实可用能力” + - [useWorkspaceInputbarSceneRuntime.tsx](../../src/components/agent/chat/workspace/useWorkspaceInputbarSceneRuntime.tsx)、[AgentRuntimeStrip.tsx](../../src/components/agent/chat/components/AgentRuntimeStrip.tsx)、[WorkspaceConversationScene.tsx](../../src/components/agent/chat/workspace/WorkspaceConversationScene.tsx)、[EmptyState.tsx](../../src/components/agent/chat/components/EmptyState.tsx) 与 [EmptyStateComposerPanel.tsx](../../src/components/agent/chat/components/EmptyStateComposerPanel.tsx) 已开始直接消费这份派生结果:Runtime strip 会显示实际 runtime tool surface 规模与 team/task gap,首页主输入区也会在用户开启 `联网搜索 / 任务拆分` 偏好但 runtime current tools 尚未接通时给出明确提示,不再把静态偏好误显示成“真实可用能力”;此前误导性的两条页级黄提示已从主路径移除,只在工作台诊断位保留真实缺口摘要 - 本轮继续补齐测试与 smoke: - 新增 [runtimeToolAvailability.test.ts](../../src/components/agent/chat/utils/runtimeToolAvailability.test.ts),覆盖 `runtime_tools` current surface 派生与开发态 override - 新增 [AgentRuntimeStrip.test.tsx](../../src/components/agent/chat/components/AgentRuntimeStrip.test.tsx) 与 [EmptyState.test.tsx](../../src/components/agent/chat/components/EmptyState.test.tsx) 的 `runtime tool surface` 页级断言,验证 runtime strip 的 team/task gap 与首页空态告警都能真实透传 - 在 [HarnessStatusPanel.tsx](../../src/components/agent/chat/components/HarnessStatusPanel.tsx) 新增 `Runtime 能力摘要`,让工具库存面板也直接消费 `deriveRuntimeToolAvailability(...)`,显式展示 `WebSearch / 子任务核心 tools / Team current tools / Task current tools` 的已接通状态或缺口,不再只显示 raw runtime tool list - 在 [HarnessStatusPanel.test.tsx](../../src/components/agent/chat/components/HarnessStatusPanel.test.tsx) 新增 `runtime tool surface` 断言,覆盖 team/task gap 暴露与 current surface 完整接通两种情况 - 新增 [agent-runtime-tool-surface-smoke.mjs](../../scripts/agent-runtime-tool-surface-smoke.mjs),并接入 [verify-gui-smoke.mjs](../../scripts/verify-gui-smoke.mjs) 与 [package.json](../../package.json) 的 `smoke:agent-runtime-tool-surface` current smoke 入口,避免这条主线只停留在局部单测 + - 新增 [agent-runtime-tool-surface-page-smoke.mjs](../../scripts/agent-runtime-tool-surface-page-smoke.mjs),通过真实页面执行 `onboarding -> 最小发送 -> 工作台` 链路,断言 `Runtime 能力摘要` 中的 `WebSearch / 子任务核心 tools / Team current tools / Task current tools` 缺口文案,同时确认旧页级黄提示不再回到页面主路径;脚本固定使用 `stream_mode=events`,避开真实页面在 `cdp_direct + frames/both` 下会把 `Runtime.evaluate` 挤到超时的已知运行时特性 - 本轮已执行校验: - `npm run smoke:agent-runtime-tool-surface` 通过 - - `npm run verify:gui-smoke` 通过(已串联新的 `smoke:agent-runtime-tool-surface`) - - Playwright MCP 真实页面续测通过:首页在开发态 override 下可稳定出现 `runtime tool surface` 告警,且 `toggle-web-search` / `toggle-subagent-mode` 可直接驱动真实空态提示 + - `npm run smoke:agent-runtime-tool-surface-page` 通过 + - `npm run verify:gui-smoke` 已接入新的 `smoke:agent-runtime-tool-surface-page` + - 真实页面自动 smoke 已验证:开发态 override 下可稳定进入工作台 `Runtime 能力摘要`,并且旧页级黄提示不会重新出现 ### 当前判断 diff --git a/docs/test/README.md b/docs/test/README.md index 3556cf707..f167325ff 100644 --- a/docs/test/README.md +++ b/docs/test/README.md @@ -109,6 +109,7 @@ npm run smoke:workspace-ready npm run smoke:browser-runtime npm run smoke:site-adapters npm run smoke:agent-runtime-tool-surface +npm run smoke:agent-runtime-tool-surface-page ``` ### 运行 Harness eval 摘要 diff --git a/docs/test/e2e-tests.md b/docs/test/e2e-tests.md index 869d84764..ca1356ad1 100644 --- a/docs/test/e2e-tests.md +++ b/docs/test/e2e-tests.md @@ -13,7 +13,8 @@ - `npm run smoke:workspace-ready`:当前自包含 smoke,覆盖 DevBridge 就绪与默认 workspace 基础链路 - `npm run smoke:browser-runtime`:当前自包含 smoke,覆盖 browser runtime 的启动、状态读取、最小动作与审计关联键 - `npm run smoke:site-adapters`:当前自包含 smoke,覆盖站点适配器目录状态、列表、推荐与检索主链 -- `npm run smoke:agent-runtime-tool-surface`:当前自包含 smoke,覆盖 runtime inventory 到主界面提示、Runtime strip 与 HarnessStatusPanel 的 team/task current surface 透传 +- `npm run smoke:agent-runtime-tool-surface`:当前自包含 smoke,覆盖 runtime inventory 到应用层透传、Runtime strip 与 HarnessStatusPanel 的 team/task current surface 派生 +- `npm run smoke:agent-runtime-tool-surface-page`:当前真实页面 smoke,覆盖 onboarding 跳过、最小发送、工作台 `Runtime 能力摘要`,并确认旧页级黄提示不再回到主路径 ### supplement @@ -82,7 +83,7 @@ npm run bridge:health -- --timeout-ms 120000 1. 首页可加载,主导航可见 2. 社媒内容工作流可进入 3. 页面交互后控制台不新增关键 error -4. runtime inventory、Runtime strip、空态提示与 HarnessStatusPanel 对 team/task current tools 的展示保持一致 +4. runtime inventory、Runtime strip、工作台 `Runtime 能力摘要` 与应用层透传对 team/task current tools 的展示保持一致,且旧页级黄提示不回流 详细点击路径、控制台检查要求、交接格式,以 `docs/aiprompts/playwright-e2e.md` 为准。 @@ -96,7 +97,8 @@ npm run bridge:health -- --timeout-ms 120000 | Workspace 自包含 smoke | `npm run smoke:workspace-ready` | current | 验证 DevBridge、默认 workspace、路径回查链路 | | Browser Runtime smoke | `npm run smoke:browser-runtime` | current | 验证 browser runtime 最短主链与审计关联键 | | Site Adapter smoke | `npm run smoke:site-adapters` | current | 验证站点适配器目录、推荐与检索最短主链 | -| Runtime Tool Surface smoke | `npm run smoke:agent-runtime-tool-surface` | current | 验证 runtime inventory 到 EmptyState / Runtime strip / HarnessStatusPanel 的 current surface 透传 | +| Runtime Tool Surface smoke | `npm run smoke:agent-runtime-tool-surface` | current | 验证 runtime inventory 到应用层透传 / Runtime strip / HarnessStatusPanel 的 current surface 派生 | +| Runtime Tool Surface page smoke | `npm run smoke:agent-runtime-tool-surface-page` | current | 验证真实页面最小发送后工作台 `Runtime 能力摘要` 的缺口诊断,并确认旧页级黄提示已删除 | | 校验跨层命令契约 | `npm run test:contracts` | current | 检查前端命令、Rust 注册、catalog、mock 集合漂移 | | 浏览器续测细则 | `docs/aiprompts/playwright-e2e.md` | current | Playwright MCP 唯一详细事实源 | | 专项 bridge 排障 | `npm run bridge:e2e` | supplement | 适合排障,不是统一门禁 | diff --git a/docs/test/testing-strategy-2026.md b/docs/test/testing-strategy-2026.md index c2244fea7..145192494 100644 --- a/docs/test/testing-strategy-2026.md +++ b/docs/test/testing-strategy-2026.md @@ -40,7 +40,7 @@ - 旧权限表面治理护栏已经补齐:`src/lib/governance/legacyToolPermissionGuard.test.ts` + `npm run governance:legacy-report` - 跨层命令契约检查基础版已经落地:`npm run test:contracts` 已进入 `scripts/local-ci.mjs` - 命令契约延期例外已经收口:`agent_terminal_command_response`、`agent_term_scrollback_response` 已退出 `runtimeGatewayCommands`,改为 `dead-candidate` 治理监控 -- 自包含 smoke 最小基线已落地:`npm run smoke:workspace-ready`、`npm run smoke:browser-runtime`、`npm run smoke:site-adapters` 都无需人工准备;另外,`npm run smoke:agent-runtime-tool-surface` 已补齐“runtime inventory -> 主界面提示/runtime strip”这条应用层主线 smoke,`npm run verify:gui-smoke` 现已默认串联这四条 current smoke +- 自包含 smoke 最小基线已落地:`npm run smoke:workspace-ready`、`npm run smoke:browser-runtime`、`npm run smoke:site-adapters` 都无需人工准备;另外,`npm run smoke:agent-runtime-tool-surface` 与 `npm run smoke:agent-runtime-tool-surface-page` 已补齐“runtime inventory -> 应用层透传 / Runtime strip / 工作台 Runtime 能力摘要”这条应用层主线 smoke,`npm run verify:gui-smoke` 现已默认串联这组 current smoke - 测试文档事实源已经收口:`docs/test/README.md`、`docs/test/e2e-tests.md`、`docs/aiprompts/playwright-e2e.md` 已按“索引 / 总览 / 详细事实源”分层 ## 3. 当前仍未解决的问题优先级 diff --git a/eslint.config.js b/eslint.config.js index 154a84cd7..079f85ae2 100644 --- a/eslint.config.js +++ b/eslint.config.js @@ -1190,6 +1190,7 @@ export default [ "src/lib/api/providerRuntime.ts", "src/lib/api/serverTools.ts", "src/lib/api/voiceTools.ts", + "src/lib/api/sceneapp.ts", ], rules: { "no-restricted-syntax": "off", diff --git a/package-lock.json b/package-lock.json index a01584d63..e55be84c5 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1,12 +1,12 @@ { "name": "lime", - "version": "1.11.0", + "version": "1.12.0", "lockfileVersion": 3, "requires": true, "packages": { "": { "name": "lime", - "version": "1.11.0", + "version": "1.12.0", "dependencies": { "@babel/standalone": "^7.29.0", "@fabianlars/tauri-plugin-oauth": "^2", diff --git a/package.json b/package.json index 236530bff..c69b96e82 100644 --- a/package.json +++ b/package.json @@ -1,7 +1,7 @@ { "name": "lime", "private": true, - "version": "1.11.0", + "version": "1.12.0", "type": "module", "engines": { "node": ">=22.0.0" @@ -75,6 +75,7 @@ "smoke:browser-runtime": "node scripts/browser-runtime-smoke.mjs", "smoke:site-adapters": "node scripts/site-adapter-catalog-smoke.mjs", "smoke:agent-runtime-tool-surface": "node scripts/agent-runtime-tool-surface-smoke.mjs", + "smoke:agent-runtime-tool-surface-page": "node scripts/agent-runtime-tool-surface-page-smoke.mjs", "smoke:agent-service-skill-entry": "node scripts/agent-service-skill-entry-smoke.mjs", "smoke:social-workbench": "node scripts/social-workbench-e2e-smoke.mjs", "dev:web-bridge": "node scripts/start-web-bridge-dev.mjs", diff --git a/packages/lime-cli-npm/README.md b/packages/lime-cli-npm/README.md index 55794e62f..a7a9af12e 100644 --- a/packages/lime-cli-npm/README.md +++ b/packages/lime-cli-npm/README.md @@ -112,7 +112,7 @@ npm run build:release -- \ ```bash npm run build:release -- \ --target-triple "aarch64-apple-darwin" \ - --version "1.11.0" \ + --version "1.12.0" \ --out-dir "./dist" ``` diff --git a/packages/lime-cli-npm/package.json b/packages/lime-cli-npm/package.json index a6a9785b6..c87d4e159 100644 --- a/packages/lime-cli-npm/package.json +++ b/packages/lime-cli-npm/package.json @@ -1,6 +1,6 @@ { "name": "@limecloud/lime-cli", - "version": "1.11.0", + "version": "1.12.0", "description": "Lime 官方任务 CLI", "bin": { "lime": "scripts/run.js" diff --git a/scripts/agent-runtime-tool-surface-page-smoke.mjs b/scripts/agent-runtime-tool-surface-page-smoke.mjs index 65249a233..2bc96dd58 100644 --- a/scripts/agent-runtime-tool-surface-page-smoke.mjs +++ b/scripts/agent-runtime-tool-surface-page-smoke.mjs @@ -13,12 +13,16 @@ const DEFAULTS = { const INVOKE_TIMEOUT_CEILING_MS = 180_000; const INVOKE_RETRY_COUNT = 10; const INVOKE_RETRY_DELAY_MS = 1_000; +const BROWSER_ACTION_RETRY_COUNT = 6; +const BROWSER_ACTION_RETRY_DELAY_MS = 1_000; const POST_HEALTH_SETTLE_MS = 1_500; -const POST_CONFIG_SETTLE_MS = 1_000; const POST_LAUNCH_SETTLE_MS = 1_500; -const DEFAULT_ACTION_TIMEOUT_MS = 15_000; +const DEFAULT_ACTION_TIMEOUT_MS = 45_000; const ONBOARDING_VERSION = "1.1.0"; const PROMPT_TEXT = "请回复一句:smoke harness"; +const SMOKE_PROFILE_KEY = "smoke-agent-runtime-tool-surface-page"; +const WORKSPACE_HARNESS_DEBUG_OVERRIDE_KEY = + "lime:debug:workspace-harness-enabled:v1"; const RUNTIME_TOOL_AVAILABILITY_OVERRIDE = { known: true, agentInitialized: true, @@ -133,6 +137,10 @@ function assert(condition, message) { } } +function logStage(label) { + console.log(`[smoke:agent-runtime-tool-surface-page] stage=${label}`); +} + function deepClone(value) { return JSON.parse(JSON.stringify(value)); } @@ -193,6 +201,20 @@ async function invoke(options, cmd, args) { ); } +async function closeSmokeProfileSession(options, profileKey, label) { + try { + await invoke(options, "close_chrome_profile_session", { + profile_key: profileKey, + }); + } catch (error) { + console.warn( + `[smoke:agent-runtime-tool-surface-page] ${label}: ${ + error instanceof Error ? error.message : String(error) + }`, + ); + } +} + async function waitForHealth(options) { const startedAt = Date.now(); let lastError = null; @@ -230,6 +252,10 @@ function buildHarnessBootstrapScript() { localStorage.setItem("lime_onboarding_complete", "true"); localStorage.setItem("lime_onboarding_version", ${JSON.stringify(ONBOARDING_VERSION)}); localStorage.setItem("lime_user_profile", "developer"); + localStorage.setItem( + ${JSON.stringify(WORKSPACE_HARNESS_DEBUG_OVERRIDE_KEY)}, + "true" + ); localStorage.setItem("lime.chat.harness-panel.visible.v1", "true"); localStorage.setItem( "lime:debug:runtime-tool-availability:v1", @@ -239,17 +265,53 @@ function buildHarnessBootstrapScript() { })()`; } -function buildFillPromptAndSendScript(prompt) { +function buildPageStorageReadyScript(appUrl) { return `(() => { + try { + const href = window.location.href; + const readyState = document.readyState; + void window.localStorage; + return { + ok: href.startsWith(${JSON.stringify(appUrl)}) && readyState !== "loading", + href, + readyState, + title: document.title, + }; + } catch (error) { + return { + ok: false, + href: window.location.href, + readyState: document.readyState, + title: document.title, + error: error instanceof Error ? error.message : String(error), + }; + } + })()`; +} + +function buildFillPromptScript(prompt) { + return `(() => { + const collectButtons = () => + Array.from(document.querySelectorAll("button")).map((button) => ({ + text: (button.textContent || "").trim(), + aria: button.getAttribute("aria-label"), + disabled: Boolean(button.disabled), + })); const textarea = document.querySelector('textarea[placeholder="有什么我可以帮你的?"]'); - const send = document.querySelector('button[aria-label="发送"]'); - if (!textarea || !send) { - return { ok: false, reason: "missing-input-or-send" }; + const initialSend = document.querySelector('button[aria-label="发送"]'); + if (!textarea || !initialSend) { + return { + ok: false, + reason: "missing-input-or-send", + buttons: collectButtons(), + }; } const setter = Object.getOwnPropertyDescriptor(window.HTMLTextAreaElement.prototype, "value")?.set; if (!setter) { return { ok: false, reason: "missing-native-textarea-setter" }; } + + textarea.focus(); setter.call(textarea, ${JSON.stringify(prompt)}); textarea.dispatchEvent(new InputEvent("input", { bubbles: true, @@ -257,10 +319,33 @@ function buildFillPromptAndSendScript(prompt) { inputType: "insertText", })); textarea.dispatchEvent(new Event("change", { bubbles: true })); + + const currentTextarea = + document.querySelector('textarea[placeholder="有什么我可以帮你的?"]') || + textarea; + const currentSend = document.querySelector('button[aria-label="发送"]'); return { ok: true, - value: textarea.value, - sendDisabled: Boolean(send.disabled), + value: currentTextarea?.value ?? "", + sendDisabled: Boolean(currentSend?.disabled), + buttons: collectButtons(), + }; + })()`; +} + +function buildSendReadyScript() { + return `(() => { + const textarea = document.querySelector('textarea[placeholder="有什么我可以帮你的?"]'); + const send = document.querySelector('button[aria-label="发送"]'); + return { + ok: + Boolean(textarea) && + typeof textarea?.value === "string" && + textarea.value.trim().length > 0 && + Boolean(send) && + send.disabled === false, + value: textarea?.value ?? "", + sendDisabled: Boolean(send?.disabled), }; })()`; } @@ -269,21 +354,50 @@ function buildClickSendScript() { return `(() => { const send = document.querySelector('button[aria-label="发送"]'); if (!send) { - return { ok: false, reason: "missing-send-button" }; + return { + ok: false, + reason: "missing-send-button", + }; } - send.click(); + if (send.disabled) { + return { + ok: false, + reason: "send-disabled", + }; + } + + send.dispatchEvent(new MouseEvent("mousedown", { + bubbles: true, + cancelable: true, + view: window, + })); + send.dispatchEvent(new MouseEvent("mouseup", { + bubbles: true, + cancelable: true, + view: window, + })); + send.dispatchEvent(new MouseEvent("click", { + bubbles: true, + cancelable: true, + view: window, + })); + return { ok: true, - disabled: Boolean(send.disabled), - ariaExpanded: send.getAttribute("aria-expanded"), + submitted: true, }; })()`; } function buildOpenWorkbenchScript() { return `(() => { + const bodyText = document.body ? document.body.innerText : ""; const target = Array.from(document.querySelectorAll("button")).find( - (button) => (button.textContent || "").trim() === "工作台", + (button) => + ((button.textContent || "").trim() === "工作台" || + (button.getAttribute("aria-label") || "").includes("工作台") || + (button.getAttribute("title") || "").includes("工作台")) && + button instanceof HTMLButtonElement, ); if (!target) { return { @@ -294,10 +408,28 @@ function buildOpenWorkbenchScript() { })), }; } + + const alreadyOpen = + bodyText.includes("处理工作台") || + target.getAttribute("aria-expanded") === "true" || + (target.getAttribute("aria-label") || "").includes("收起工作台") || + (target.getAttribute("title") || "").includes("收起工作台"); + + if (alreadyOpen) { + return { + ok: true, + alreadyOpen: true, + ariaExpanded: target.getAttribute("aria-expanded"), + ariaLabel: target.getAttribute("aria-label"), + }; + } + target.click(); return { ok: true, + alreadyOpen: false, ariaExpanded: target.getAttribute("aria-expanded"), + ariaLabel: target.getAttribute("aria-label"), }; })()`; } @@ -321,30 +453,72 @@ function buildRuntimeSummaryCheckScript() { function extractJavascriptValue(actionResult) { return ( - actionResult?.data?.result?.result?.value ?? + actionResult?.data?.result ?? + actionResult?.data?.value ?? + actionResult?.data?.result?.result ?? actionResult?.data?.result?.value ?? actionResult?.data?.result ?? null ); } -async function runBrowserAction(options, profileKey, action, args = {}) { - return invoke(options, "browser_execute_action", { - request: { - profile_key: profileKey, - backend: "cdp_direct", - action, - args, - timeout_ms: DEFAULT_ACTION_TIMEOUT_MS, - }, - }); +function isRetryableBrowserActionFailure(detail) { + return ( + typeof detail === "string" && + (detail.includes("CDP 调试端口不可用") || + detail.includes("没有可用的 Chrome 会话")) + ); } -async function runJavascript(options, profileKey, expression) { - const result = await runBrowserAction(options, profileKey, "javascript", { - expression, - return_by_value: true, - }); +async function runBrowserAction(options, profileKey, action, args = {}, label = action) { + for (let attempt = 1; attempt <= BROWSER_ACTION_RETRY_COUNT; attempt += 1) { + const result = await invoke(options, "browser_execute_action", { + request: { + profile_key: profileKey, + backend: "cdp_direct", + action, + args, + timeout_ms: DEFAULT_ACTION_TIMEOUT_MS, + }, + }); + + if (result?.success === true) { + return result; + } + + const detail = String(result?.error || JSON.stringify(result ?? null)); + if ( + isRetryableBrowserActionFailure(detail) && + attempt < BROWSER_ACTION_RETRY_COUNT + ) { + console.warn( + `[smoke:agent-runtime-tool-surface-page] browser_execute_action(${label}) 第 ${attempt} 次失败,${BROWSER_ACTION_RETRY_DELAY_MS}ms 后重试: ${detail}`, + ); + await sleep(BROWSER_ACTION_RETRY_DELAY_MS); + continue; + } + + throw new Error( + `[smoke:agent-runtime-tool-surface-page] browser_execute_action(${label}) 失败: ${detail}`, + ); + } + + throw new Error( + `[smoke:agent-runtime-tool-surface-page] browser_execute_action(${label}) 失败: unknown error`, + ); +} + +async function runJavascript(options, profileKey, expression, label = "javascript") { + const result = await runBrowserAction( + options, + profileKey, + "javascript", + { + expression, + return_by_value: true, + }, + `javascript:${label}`, + ); return extractJavascriptValue(result); } @@ -372,51 +546,36 @@ async function waitForCheck(options, label, check) { ); } -async function ensureHarnessEnabled(options) { - const originalConfig = await invoke(options, "get_config"); - const enabled = - originalConfig?.developer?.workspace_harness_enabled === true; - if (enabled) { - return { - originalConfig, - changed: false, - }; - } - - const nextConfig = deepClone(originalConfig); - nextConfig.developer = { - ...(nextConfig.developer || {}), - workspace_harness_enabled: true, - }; - await invoke(options, "save_config", nextConfig); - await sleep(POST_CONFIG_SETTLE_MS); - return { - originalConfig, - changed: true, - }; -} - async function main() { if (typeof fetch !== "function") { throw new Error("当前 Node 运行时不支持 fetch,请使用 Node 18+"); } const options = parseArgs(process.argv.slice(2)); + logStage("wait-health"); await waitForHealth(options); await sleep(POST_HEALTH_SETTLE_MS); - - const { originalConfig, changed } = await ensureHarnessEnabled(options); - const profileKey = `smoke-agent-runtime-tool-surface-page-${Date.now()}`; + const profileKey = SMOKE_PROFILE_KEY; let sessionId = null; try { + logStage("cleanup-old-profile"); + await closeSmokeProfileSession( + options, + profileKey, + "预清理旧 smoke profile 失败", + ); + + logStage("launch-browser-session"); const launchResponse = await invoke(options, "launch_browser_session", { request: { profile_key: profileKey, url: options.appUrl, headless: true, open_window: false, - stream_mode: "both", + // 真实 Lime 页面在 cdp_direct + frames/both 下会持续产出 frame 流, + // 这里会把后续 Runtime.evaluate 挤到超时;页面 smoke 只需要事件流即可。 + stream_mode: "events", }, }); @@ -427,14 +586,37 @@ async function main() { ); await sleep(POST_LAUNCH_SETTLE_MS); - await runJavascript(options, profileKey, buildHarnessBootstrapScript()); + logStage("wait-page-storage-ready"); + await waitForCheck(options, "Lime 首页 origin 可访问", async () => { + const value = await runJavascript( + options, + profileKey, + buildPageStorageReadyScript(options.appUrl), + "wait-page-storage-ready", + ); + return { + ok: value?.ok === true, + value, + }; + }); + + logStage("bootstrap-harness-storage"); + await runJavascript( + options, + profileKey, + buildHarnessBootstrapScript(), + "bootstrap-harness-storage", + ); + logStage("refresh-page"); await runBrowserAction(options, profileKey, "refresh_page"); + logStage("wait-empty-state"); await waitForCheck(options, "首页空态加载", async () => { const text = await runJavascript( options, profileKey, 'document.body ? document.body.innerText : ""', + "wait-empty-state-text", ); return { ok: @@ -445,32 +627,55 @@ async function main() { }; }); - const prepared = await runJavascript( + logStage("fill-prompt"); + const filled = await runJavascript( options, profileKey, - buildFillPromptAndSendScript(PROMPT_TEXT), + buildFillPromptScript(PROMPT_TEXT), + "fill-prompt", ); assert( - prepared?.ok === true, - `准备输入失败: ${JSON.stringify(prepared ?? null)}`, + filled?.ok === true, + `准备输入失败: ${JSON.stringify(filled ?? null)}`, ); - assert(prepared?.sendDisabled === false, "发送按钮仍处于禁用状态"); - const sendResult = await runJavascript( + logStage("wait-send-ready"); + const sendReady = await waitForCheck(options, "发送按钮可用", async () => { + const value = await runJavascript( + options, + profileKey, + buildSendReadyScript(), + "wait-send-ready", + ); + return { + ok: value?.ok === true, + value, + }; + }); + assert( + sendReady?.ok === true, + `发送按钮未就绪: ${JSON.stringify(sendReady ?? null)}`, + ); + + logStage("click-send"); + const submitted = await runJavascript( options, profileKey, buildClickSendScript(), + "click-send", ); assert( - sendResult?.ok === true, - `发送最小请求失败: ${JSON.stringify(sendResult ?? null)}`, + submitted?.ok === true, + `提交输入失败: ${JSON.stringify(submitted ?? null)}`, ); + logStage("wait-workbench-button"); await waitForCheck(options, "运行态工作台按钮出现", async () => { const text = await runJavascript( options, profileKey, 'document.body ? document.body.innerText : ""', + "wait-workbench-button", ); return { ok: typeof text === "string" && text.includes("工作台"), @@ -478,16 +683,19 @@ async function main() { }; }); + logStage("open-workbench"); const openWorkbench = await runJavascript( options, profileKey, buildOpenWorkbenchScript(), + "open-workbench", ); assert( openWorkbench?.ok === true, `打开工作台失败: ${JSON.stringify(openWorkbench ?? null)}`, ); + logStage("wait-runtime-summary"); const summaryFlags = await waitForCheck( options, "Runtime 能力摘要出现", @@ -496,6 +704,7 @@ async function main() { options, profileKey, buildRuntimeSummaryCheckScript(), + "check-runtime-summary", ); const hasAllRequired = REQUIRED_RUNTIME_SUMMARY_FLAGS.every( (key) => value?.[key] === true, @@ -509,6 +718,7 @@ async function main() { }, ); + logStage("read-page-markdown"); const pageMarkdown = await readPageMarkdown(options, profileKey); for (const warning of FORBIDDEN_PAGE_WARNINGS) { assert( @@ -525,6 +735,7 @@ async function main() { ); } finally { if (sessionId) { + logStage("close-cdp-session"); try { await invoke(options, "close_cdp_session", { request: { @@ -540,17 +751,12 @@ async function main() { } } - if (changed) { - try { - await invoke(options, "save_config", originalConfig); - } catch (error) { - console.warn( - `[smoke:agent-runtime-tool-surface-page] 恢复 developer.workspace_harness_enabled 失败: ${ - error instanceof Error ? error.message : String(error) - }`, - ); - } - } + logStage("close-profile-session"); + await closeSmokeProfileSession( + options, + profileKey, + "关闭 smoke profile 失败", + ); } } diff --git a/scripts/agent-runtime-tool-surface-smoke.mjs b/scripts/agent-runtime-tool-surface-smoke.mjs index 3002bcf1b..4a4bf8306 100644 --- a/scripts/agent-runtime-tool-surface-smoke.mjs +++ b/scripts/agent-runtime-tool-surface-smoke.mjs @@ -34,7 +34,7 @@ function runVitest(label, args) { } function main() { - runVitest("runtime tool surface 派生与页级提示", [ + runVitest("runtime tool surface 派生与应用层透传", [ "src/components/agent/chat/utils/runtimeToolAvailability.test.ts", "src/components/agent/chat/components/AgentRuntimeStrip.test.tsx", "src/components/agent/chat/components/EmptyState.test.tsx", diff --git a/scripts/browser-runtime-smoke.mjs b/scripts/browser-runtime-smoke.mjs index 3b4d60141..780b4de05 100644 --- a/scripts/browser-runtime-smoke.mjs +++ b/scripts/browser-runtime-smoke.mjs @@ -19,6 +19,7 @@ const INVOKE_RETRY_DELAY_MS = 1_000; const POST_HEALTH_SETTLE_MS = 3_000; const POST_LAUNCH_SETTLE_MS = 1_500; const READ_PAGE_TIMEOUT_MS = 45_000; +const SMOKE_PROFILE_KEY = "smoke-browser-runtime"; function printHelp() { console.log(` @@ -170,6 +171,20 @@ async function invoke(options, cmd, args) { throw new Error(`[smoke:browser-runtime] ${cmd} 请求失败: unknown error`); } +async function closeSmokeProfileSession(options, profileKey, label) { + try { + await invoke(options, "close_chrome_profile_session", { + profile_key: profileKey, + }); + } catch (error) { + console.warn( + `[smoke:browser-runtime] ${label}: ${ + error instanceof Error ? error.message : String(error) + }`, + ); + } +} + async function waitForHealth(options) { const startedAt = Date.now(); let lastError = null; @@ -215,10 +230,16 @@ async function main() { await waitForHealth(options); await sleep(POST_HEALTH_SETTLE_MS); - const profileKey = `smoke-browser-runtime-${Date.now()}`; + const profileKey = SMOKE_PROFILE_KEY; let sessionId = null; try { + await closeSmokeProfileSession( + options, + profileKey, + "预清理旧 smoke profile 失败", + ); + const launchResponse = await invoke(options, "launch_browser_session", { request: { profile_key: profileKey, @@ -332,6 +353,12 @@ async function main() { ); } } + + await closeSmokeProfileSession( + options, + profileKey, + "关闭 smoke profile 失败", + ); } } diff --git a/scripts/site-adapter-catalog-smoke.mjs b/scripts/site-adapter-catalog-smoke.mjs index 4aeff87e6..e929fd492 100644 --- a/scripts/site-adapter-catalog-smoke.mjs +++ b/scripts/site-adapter-catalog-smoke.mjs @@ -9,6 +9,8 @@ const DEFAULTS = { intervalMs: 1_000, invokeTimeoutMs: 20_000, }; +const INVOKE_RETRY_COUNT = 3; +const INVOKE_RETRY_DELAY_MS = 1_000; function printHelp() { console.log(` @@ -126,35 +128,49 @@ async function waitForHealth(options) { async function invoke(options, cmd, args) { console.log(`[smoke:site-adapters] invoke ${cmd}`); - let response; - try { - response = await fetch(options.invokeUrl, { - method: "POST", - headers: { - "content-type": "application/json", - }, - body: JSON.stringify({ cmd, args }), - signal: AbortSignal.timeout(options.invokeTimeoutMs), - }); - } catch (error) { - if (error?.name === "TimeoutError") { - throw new Error( - `[smoke:site-adapters] ${cmd} 超时,${options.invokeTimeoutMs}ms 内未收到 DevBridge 响应`, - ); + for (let attempt = 1; attempt <= INVOKE_RETRY_COUNT; attempt += 1) { + let response; + try { + response = await fetch(options.invokeUrl, { + method: "POST", + headers: { + "content-type": "application/json", + }, + body: JSON.stringify({ cmd, args }), + signal: AbortSignal.timeout(options.invokeTimeoutMs), + }); + } catch (error) { + const isTimeout = error?.name === "TimeoutError"; + const isFetchFailed = + error instanceof TypeError && error.message === "fetch failed"; + if ((isTimeout || isFetchFailed) && attempt < INVOKE_RETRY_COUNT) { + console.warn( + `[smoke:site-adapters] ${cmd} 第 ${attempt} 次请求失败,${INVOKE_RETRY_DELAY_MS}ms 后重试: ${ + isTimeout ? "timeout" : error.message + }`, + ); + await sleep(INVOKE_RETRY_DELAY_MS); + continue; + } + if (isTimeout) { + throw new Error( + `[smoke:site-adapters] ${cmd} 超时,${options.invokeTimeoutMs}ms 内未收到 DevBridge 响应`, + ); + } + throw error; } - throw error; - } - if (!response.ok) { - throw new Error(`HTTP ${response.status}: ${response.statusText}`); - } + if (!response.ok) { + throw new Error(`HTTP ${response.status}: ${response.statusText}`); + } - const payload = await response.json(); - if (payload?.error) { - throw new Error(String(payload.error)); - } + const payload = await response.json(); + if (payload?.error) { + throw new Error(String(payload.error)); + } - return payload?.result; + return payload?.result; + } } async function main() { diff --git a/scripts/verify-gui-smoke.mjs b/scripts/verify-gui-smoke.mjs index 501a6babc..a4051a35b 100644 --- a/scripts/verify-gui-smoke.mjs +++ b/scripts/verify-gui-smoke.mjs @@ -16,6 +16,7 @@ const LIME_DISABLE_SINGLE_INSTANCE = "LIME_DISABLE_SINGLE_INSTANCE"; const LIME_WEB_BRIDGE_REUSE_EXISTING_ONLY = "LIME_WEB_BRIDGE_REUSE_EXISTING_ONLY"; const LIME_WEB_BRIDGE_URL = "LIME_WEB_BRIDGE_URL"; +const DEFAULT_HEALTH_URL = "http://127.0.0.1:3030/health"; const ROOT_MARKERS = ["Lime", '
']; const SHARED_TAURI_TARGET_DIR = path.join(rootDir, "src-tauri", "target"); const ISOLATED_GUI_SMOKE_TARGET_DIR = path.join( @@ -29,6 +30,10 @@ const GUI_SMOKE_BRIDGE_HEARTBEAT_MS = 30_000; const GUI_SMOKE_COMPILE_GRACE_MS = 900_000; const GUI_SMOKE_MAX_COMPILE_GRACE_EXTENSIONS = 2; const GUI_SMOKE_BOOT_GRACE_MS = 60_000; +const GUI_SMOKE_CHILD_EXIT_GRACE_MS = 30_000; +const INVOKE_TIMEOUT_CEILING_MS = 180_000; +const INVOKE_RETRY_COUNT = 10; +const INVOKE_RETRY_DELAY_MS = 1_000; const HEADLESS_TAURI_CONFIG_PATH = path.join( rootDir, "src-tauri", @@ -95,7 +100,8 @@ function resolveDefaultTimeoutMs(cargoTargetDir) { const DEFAULTS = { appUrl: "http://127.0.0.1:1420/", - healthUrl: "http://127.0.0.1:3030/health", + healthUrl: DEFAULT_HEALTH_URL, + invokeUrl: "http://127.0.0.1:3030/invoke", cargoTargetDir: resolvePreferredCargoTargetDir(), intervalMs: 1_000, reuseRunning: false, @@ -103,6 +109,18 @@ const DEFAULTS = { }; DEFAULTS.timeoutMs = resolveDefaultTimeoutMs(DEFAULTS.cargoTargetDir); +function resolveInvokeUrl(healthUrl) { + try { + const url = new URL(healthUrl); + url.pathname = "/invoke"; + url.search = ""; + url.hash = ""; + return url.toString(); + } catch { + return "http://127.0.0.1:3030/invoke"; + } +} + function printHelp() { console.log(` Lime GUI 冒烟入口 @@ -118,6 +136,7 @@ Lime GUI 冒烟入口 选项: --app-url 前端地址,默认 http://127.0.0.1:1420/ --health-url DevBridge 健康检查地址,默认 http://127.0.0.1:3030/health + --invoke-url DevBridge invoke 地址,默认随 health-url 推导 /invoke --timeout-ms 等待 headless / bridge / smoke 的超时,默认冷启动 1800000 / 热启动 600000 --interval-ms 轮询间隔,默认 1000 --sample-project-name workspace 路径校验使用的示例项目名 @@ -129,6 +148,7 @@ Lime GUI 冒烟入口 function parseArgs(argv) { const options = { ...DEFAULTS }; + let invokeUrlExplicit = false; for (let index = 0; index < argv.length; index += 1) { const arg = argv[index]; @@ -145,6 +165,13 @@ function parseArgs(argv) { continue; } + if (arg === "--invoke-url" && argv[index + 1]) { + options.invokeUrl = String(argv[index + 1]).trim(); + invokeUrlExplicit = true; + index += 1; + continue; + } + if (arg === "--timeout-ms" && argv[index + 1]) { options.timeoutMs = Number(argv[index + 1]); index += 1; @@ -196,6 +223,13 @@ function parseArgs(argv) { throw new Error("--health-url 不能为空"); } + if (!invokeUrlExplicit) { + options.invokeUrl = resolveInvokeUrl(options.healthUrl); + } + if (!options.invokeUrl) { + throw new Error("--invoke-url 不能为空"); + } + if (!options.sampleProjectName) { throw new Error("--sample-project-name 不能为空"); } @@ -211,6 +245,57 @@ function sleep(ms) { return new Promise((resolve) => setTimeout(resolve, ms)); } +function isTransientInvokeError(error) { + return ( + error?.name === "TimeoutError" || + (error instanceof TypeError && error.message === "fetch failed") + ); +} + +async function invokeBridgeCommand(options, cmd, args) { + const invokeTimeoutMs = Math.min(options.timeoutMs, INVOKE_TIMEOUT_CEILING_MS); + const requestInit = { + method: "POST", + headers: { + "content-type": "application/json", + }, + body: JSON.stringify({ cmd, args }), + signal: AbortSignal.timeout(invokeTimeoutMs), + }; + + for (let attempt = 1; attempt <= INVOKE_RETRY_COUNT; attempt += 1) { + try { + const response = await fetch(options.invokeUrl, requestInit); + if (!response.ok) { + throw new Error(`HTTP ${response.status}: ${response.statusText}`); + } + + const payload = await response.json(); + if (payload?.error) { + throw new Error(String(payload.error)); + } + return payload?.result; + } catch (error) { + const detail = error instanceof Error ? error.message : String(error); + if (!isTransientInvokeError(error) || attempt >= INVOKE_RETRY_COUNT) { + if (error?.name === "TimeoutError") { + throw new Error( + `[verify:gui-smoke] ${cmd} 超时,${invokeTimeoutMs}ms 内未收到 DevBridge 响应`, + ); + } + throw new Error(`[verify:gui-smoke] ${cmd} 请求失败: ${detail}`); + } + + console.warn( + `[verify:gui-smoke] ${cmd} 第 ${attempt} 次请求失败,${INVOKE_RETRY_DELAY_MS}ms 后重试: ${detail}`, + ); + await sleep(INVOKE_RETRY_DELAY_MS); + } + } + + throw new Error(`[verify:gui-smoke] ${cmd} 请求失败: unknown error`); +} + function assert(condition, message) { if (!condition) { throw new Error(message); @@ -433,8 +518,22 @@ function listGuiSmokeGroupProcesses(startedByScript) { return listProcessStats().filter((item) => item.pgid === targetGroupId); } +function isZombieProcess(item) { + return typeof item?.stat === "string" && item.stat.includes("Z"); +} + +function listActiveGuiSmokeGroupProcesses(startedByScript) { + return listGuiSmokeGroupProcesses(startedByScript).filter( + (item) => !isZombieProcess(item), + ); +} + +function hasActiveGuiSmokeProcesses(startedByScript) { + return listActiveGuiSmokeGroupProcesses(startedByScript).length > 0; +} + function hasActiveGuiSmokeCompile(startedByScript) { - return listGuiSmokeGroupProcesses(startedByScript).some( + return listActiveGuiSmokeGroupProcesses(startedByScript).some( (item) => item.command.includes("/bin/rustc") || item.command.includes("cargo run --no-default-features"), @@ -442,7 +541,7 @@ function hasActiveGuiSmokeCompile(startedByScript) { } function describeGuiSmokeHeartbeat(startedByScript) { - const interestingProcesses = listGuiSmokeGroupProcesses(startedByScript) + const interestingProcesses = listActiveGuiSmokeGroupProcesses(startedByScript) .filter( (item) => item.command.includes("tauri dev") || @@ -565,6 +664,61 @@ async function cleanupStaleGuiSmokeProcesses() { return snapshot.stale.length; } +async function cleanupStaleGuiSmokeChromeProfiles( + options, + { label, required, skipIfBridgeUnavailable = false }, +) { + if ( + skipIfBridgeUnavailable && + !(await isUrlReady(options.healthUrl, Math.min(options.intervalMs, 1_500))) + ) { + console.warn(`[verify:gui-smoke] ${label}: DevBridge 未就绪,跳过。`); + return null; + } + + try { + const result = await invokeBridgeCommand( + options, + "cleanup_gui_smoke_chrome_profiles", + ); + const matchedProfiles = Array.isArray(result?.matched_profiles) + ? result.matched_profiles + : []; + const removedProfiles = Array.isArray(result?.removed_profiles) + ? result.removed_profiles + : []; + const skippedProfiles = Array.isArray(result?.skipped_profiles) + ? result.skipped_profiles + : []; + const terminatedProcessCount = Number.isFinite( + result?.terminated_process_count, + ) + ? Number(result.terminated_process_count) + : 0; + + if (matchedProfiles.length === 0) { + return result; + } + + console.log( + `[verify:gui-smoke] ${label}: 匹配 ${matchedProfiles.length} 个 smoke Chrome profiles,删除 ${removedProfiles.length} 个目录,结束 ${terminatedProcessCount} 个残留进程。`, + ); + if (skippedProfiles.length > 0) { + console.warn( + `[verify:gui-smoke] ${label}: 仍有 ${skippedProfiles.length} 个 profile 未删掉:${skippedProfiles.join(", ")}`, + ); + } + return result; + } catch (error) { + const detail = error instanceof Error ? error.message : String(error); + if (required) { + throw error; + } + console.warn(`[verify:gui-smoke] ${label}: ${detail}`); + return null; + } +} + function listListeningCommandsForPort(port) { if (!port || process.platform === "win32") { return []; @@ -767,6 +921,8 @@ async function waitForBridgeHealth(options, startedByScript) { let deadlineAt = startedAt + options.timeoutMs; let compileGraceCount = 0; let bootGraceUsed = false; + let childExitObservedAt = null; + let lastExitedChildLogAt = 0; let lastError = null; let lastHeartbeatAt = startedAt; @@ -778,14 +934,40 @@ async function waitForBridgeHealth(options, startedByScript) { state.child && (typeof state.child.exitCode === "number" || state.child.signalCode) ) { + const now = Date.now(); + if (childExitObservedAt === null) { + childExitObservedAt = now; + } + const exitDetail = describeChildExit(state.child); - const lastDetail = - lastError instanceof Error - ? `;最近一次健康检查错误: ${lastError.message}` - : ""; - throw new Error( - `[verify:gui-smoke] headless Tauri 在 DevBridge 就绪前提前退出(${exitDetail})${lastDetail}`, - ); + const activeProcessCount = listActiveGuiSmokeGroupProcesses( + startedByScript, + ).length; + const heartbeat = describeGuiSmokeHeartbeat(startedByScript); + + if (activeProcessCount > 0) { + if (now - lastExitedChildLogAt >= GUI_SMOKE_BRIDGE_HEARTBEAT_MS) { + lastExitedChildLogAt = now; + console.log( + `[bridge:health] headless Tauri 父进程已退出(${exitDetail}),但进程组仍有 ${activeProcessCount} 个活跃进程,继续等待 DevBridge${heartbeat ? `;进程组: ${heartbeat}` : ""}`, + ); + } + } else if ( + now - childExitObservedAt >= GUI_SMOKE_CHILD_EXIT_GRACE_MS + ) { + const lastDetail = + lastError instanceof Error + ? `;最近一次健康检查错误: ${lastError.message}` + : ""; + throw new Error( + `[verify:gui-smoke] headless Tauri 在 DevBridge 就绪前提前退出(${exitDetail}),且 ${GUI_SMOKE_CHILD_EXIT_GRACE_MS}ms 内未检测到仍在运行的 GUI smoke 进程组${lastDetail}`, + ); + } else if (now - lastExitedChildLogAt >= GUI_SMOKE_BRIDGE_HEARTBEAT_MS) { + lastExitedChildLogAt = now; + console.log( + `[bridge:health] headless Tauri 父进程已退出(${exitDetail}),等待最多 ${GUI_SMOKE_CHILD_EXIT_GRACE_MS}ms 确认是否还有后续启动链。`, + ); + } } try { @@ -833,9 +1015,10 @@ async function waitForBridgeHealth(options, startedByScript) { if ( !bootGraceUsed && startedByScript && - state.child && - state.child.exitCode === null && - !state.child.signalCode + ((state.child && + state.child.exitCode === null && + !state.child.signalCode) || + hasActiveGuiSmokeProcesses(startedByScript)) ) { bootGraceUsed = true; deadlineAt = heartbeatAt + GUI_SMOKE_BOOT_GRACE_MS; @@ -1040,6 +1223,11 @@ async function main() { await waitForAppShell(options); + await cleanupStaleGuiSmokeChromeProfiles(options, { + label: "预清理历史残留 smoke Chrome profiles", + required: true, + }); + runCommand( npmCommand, [ @@ -1102,8 +1290,25 @@ async function main() { options.timeoutMs + 30_000, ); + runCommand( + npmCommand, + ["run", "smoke:agent-runtime-tool-surface-page"], + "smoke:agent-runtime-tool-surface-page", + options.timeoutMs + 30_000, + ); + + await cleanupStaleGuiSmokeChromeProfiles(options, { + label: "收尾清理本轮 smoke Chrome profiles", + required: true, + }); + console.log("\n[verify:gui-smoke] 通过"); } finally { + await cleanupStaleGuiSmokeChromeProfiles(options, { + label: "兜底清理 smoke Chrome profiles", + required: false, + skipIfBridgeUnavailable: true, + }); if (startedByScript) { await stopHeadlessTauri(); } diff --git a/src-tauri/Cargo.lock b/src-tauri/Cargo.lock index 0656599b9..d420d09f1 100644 --- a/src-tauri/Cargo.lock +++ b/src-tauri/Cargo.lock @@ -5101,7 +5101,7 @@ dependencies = [ [[package]] name = "lime" -version = "1.11.0" +version = "1.12.0" dependencies = [ "anyhow", "arboard", @@ -5206,7 +5206,7 @@ dependencies = [ [[package]] name = "lime-agent" -version = "1.11.0" +version = "1.12.0" dependencies = [ "anyhow", "aster-core", @@ -5235,7 +5235,7 @@ dependencies = [ [[package]] name = "lime-browser-runtime" -version = "1.11.0" +version = "1.12.0" dependencies = [ "chrono", "futures", @@ -5252,7 +5252,7 @@ dependencies = [ [[package]] name = "lime-cli" -version = "1.11.0" +version = "1.12.0" dependencies = [ "clap", "lime-core", @@ -5264,7 +5264,7 @@ dependencies = [ [[package]] name = "lime-config" -version = "1.11.0" +version = "1.12.0" dependencies = [ "async-trait", "lime-core", @@ -5280,7 +5280,7 @@ dependencies = [ [[package]] name = "lime-core" -version = "1.11.0" +version = "1.12.0" dependencies = [ "aster-models", "async-trait", @@ -5320,7 +5320,7 @@ dependencies = [ [[package]] name = "lime-credential" -version = "1.11.0" +version = "1.12.0" dependencies = [ "axum 0.7.9", "base64 0.22.1", @@ -5355,7 +5355,7 @@ dependencies = [ [[package]] name = "lime-gateway" -version = "1.11.0" +version = "1.12.0" dependencies = [ "aes", "axum 0.7.9", @@ -5385,7 +5385,7 @@ dependencies = [ [[package]] name = "lime-infra" -version = "1.11.0" +version = "1.12.0" dependencies = [ "chrono", "dashmap 5.5.3", @@ -5405,7 +5405,7 @@ dependencies = [ [[package]] name = "lime-mcp" -version = "1.11.0" +version = "1.12.0" dependencies = [ "async-trait", "dirs 5.0.1", @@ -5421,7 +5421,7 @@ dependencies = [ [[package]] name = "lime-media-runtime" -version = "1.11.0" +version = "1.12.0" dependencies = [ "axum 0.7.9", "chrono", @@ -5452,7 +5452,7 @@ dependencies = [ [[package]] name = "lime-processor" -version = "1.11.0" +version = "1.12.0" dependencies = [ "async-trait", "lime-core", @@ -5471,7 +5471,7 @@ dependencies = [ [[package]] name = "lime-providers" -version = "1.11.0" +version = "1.12.0" dependencies = [ "anyhow", "async-stream", @@ -5526,7 +5526,7 @@ dependencies = [ [[package]] name = "lime-server" -version = "1.11.0" +version = "1.12.0" dependencies = [ "aster-core", "async-stream", @@ -5571,7 +5571,7 @@ dependencies = [ [[package]] name = "lime-server-utils" -version = "1.11.0" +version = "1.12.0" dependencies = [ "axum 0.7.9", "futures", @@ -5586,7 +5586,7 @@ dependencies = [ [[package]] name = "lime-services" -version = "1.11.0" +version = "1.12.0" dependencies = [ "anyhow", "aster-core", @@ -5628,7 +5628,7 @@ dependencies = [ [[package]] name = "lime-skills" -version = "1.11.0" +version = "1.12.0" dependencies = [ "async-trait", "dirs 5.0.1", @@ -5646,7 +5646,7 @@ dependencies = [ [[package]] name = "lime-terminal" -version = "1.11.0" +version = "1.12.0" dependencies = [ "async-trait", "base64 0.22.1", @@ -5673,7 +5673,7 @@ dependencies = [ [[package]] name = "lime-websocket" -version = "1.11.0" +version = "1.12.0" dependencies = [ "axum 0.7.9", "chrono", diff --git a/src-tauri/Cargo.toml b/src-tauri/Cargo.toml index d4618cc26..10eeef9da 100644 --- a/src-tauri/Cargo.toml +++ b/src-tauri/Cargo.toml @@ -4,7 +4,7 @@ exclude = ["crates/aster", "crates/aster-models", "crates/aster-rust"] resolver = "2" [workspace.package] -version = "1.11.0" +version = "1.12.0" edition = "2021" authors = ["coso"] repository = "https://github.com/aiclientproxy/lime" @@ -189,7 +189,7 @@ version = "2.4" [package] name = "lime" -version = "1.11.0" +version = "1.12.0" description = "AI API Proxy Desktop App" authors = ["you"] edition = "2021" diff --git a/src-tauri/crates/agent/src/credential_bridge.rs b/src-tauri/crates/agent/src/credential_bridge.rs index 58be8922d..d22892062 100644 --- a/src-tauri/crates/agent/src/credential_bridge.rs +++ b/src-tauri/crates/agent/src/credential_bridge.rs @@ -12,7 +12,7 @@ use aster::model::ModelConfig; use aster::providers::base::Provider; -use lime_core::database::dao::api_key_provider::ApiProviderType; +use lime_core::database::dao::api_key_provider::{infer_managed_runtime_spec, ApiProviderType}; use lime_core::database::DbConnection; use lime_core::models::provider_pool_model::{ CredentialData, PoolProviderType, ProviderCredential, @@ -559,6 +559,28 @@ fn split_url_host_and_path(url: &str) -> (String, String) { } } +fn resolve_anthropic_env_key(config: &AsterProviderConfig) -> &'static str { + let api_host = config + .base_url + .as_deref() + .unwrap_or("https://api.anthropic.com"); + let hinted_provider_type = config + .provider_selector + .as_deref() + .and_then(|value| value.parse::().ok()) + .unwrap_or(ApiProviderType::Anthropic); + let runtime_spec = infer_managed_runtime_spec(hinted_provider_type, api_host); + + if runtime_spec + .auth_header + .eq_ignore_ascii_case("authorization") + { + "ANTHROPIC_AUTH_TOKEN" + } else { + "ANTHROPIC_API_KEY" + } +} + fn set_provider_env_vars(config: &AsterProviderConfig) { tracing::info!( "[CredentialBridge] set_provider_env_vars: provider_name={}, has_api_key={}, base_url={:?}", @@ -569,7 +591,7 @@ fn set_provider_env_vars(config: &AsterProviderConfig) { let env_key = match config.provider_name.as_str() { "openai" => "OPENAI_API_KEY", - "anthropic" => "ANTHROPIC_API_KEY", + "anthropic" => resolve_anthropic_env_key(config), "google" => "GOOGLE_API_KEY", "bedrock" => "AWS_ACCESS_KEY_ID", // Bedrock 使用 AWS 凭证 "gcpvertexai" => "GOOGLE_API_KEY", @@ -585,6 +607,13 @@ fn set_provider_env_vars(config: &AsterProviderConfig) { if let Some(api_key) = &config.api_key { std::env::set_var(env_key, api_key); + if config.provider_name == "anthropic" { + match env_key { + "ANTHROPIC_AUTH_TOKEN" => std::env::remove_var("ANTHROPIC_API_KEY"), + "ANTHROPIC_API_KEY" => std::env::remove_var("ANTHROPIC_AUTH_TOKEN"), + _ => {} + } + } } if config.provider_name == "openai" { @@ -601,19 +630,8 @@ fn set_provider_env_vars(config: &AsterProviderConfig) { if let Some(base_url) = &config.base_url { match config.provider_name.as_str() { "openai" => { - // 当显式强制 responses 模式时,需要将路径前缀保留在 OPENAI_HOST 中, - // 因为 Aster OpenAI provider 在 responses 模式下固定请求 v1/responses, - // 不会读取 OPENAI_BASE_PATH。 - if config.force_responses_api { - std::env::set_var("OPENAI_HOST", base_url); - std::env::remove_var("OPENAI_BASE_PATH"); - tracing::info!( - "[CredentialBridge] 强制 Responses 模式: 设置 OPENAI_HOST={}, 清理 OPENAI_BASE_PATH", - base_url - ); - return; - } - // 解析 base_url,将路径部分拆分到 OPENAI_BASE_PATH + // 解析 base_url,将路径部分拆分到 OPENAI_BASE_PATH。 + // Responses 模式也复用这条前缀推导,避免出现 /v1/v1/responses。 // 例如 https://open.bigmodel.cn/api/paas/v4 // -> OPENAI_HOST = https://open.bigmodel.cn // -> OPENAI_BASE_PATH = api/paas/v4/chat/completions @@ -777,7 +795,7 @@ mod tests { } #[test] - fn test_set_provider_env_vars_openai_codex_responses_keeps_full_base_url() { + fn test_set_provider_env_vars_openai_codex_responses_splits_prefixed_base_url() { std::env::remove_var("OPENAI_HOST"); std::env::remove_var("OPENAI_BASE_PATH"); std::env::remove_var("OPENAI_FORCE_RESPONSES_API"); @@ -799,9 +817,47 @@ mod tests { assert_eq!( std::env::var("OPENAI_HOST").ok(), - Some("https://example.com/openai".to_string()) + Some("https://example.com".to_string()) + ); + assert_eq!( + std::env::var("OPENAI_BASE_PATH").ok(), + Some("openai/chat/completions".to_string()) + ); + assert_eq!( + std::env::var("OPENAI_FORCE_RESPONSES_API").ok().as_deref(), + Some("1") + ); + } + + #[test] + fn test_set_provider_env_vars_openai_codex_responses_normalizes_v1_base_url() { + std::env::remove_var("OPENAI_HOST"); + std::env::remove_var("OPENAI_BASE_PATH"); + std::env::remove_var("OPENAI_FORCE_RESPONSES_API"); + + let config = AsterProviderConfig { + provider_name: "openai".to_string(), + provider_selector: Some("codex".to_string()), + model_name: "gpt-5.4".to_string(), + api_key: Some("test-key".to_string()), + base_url: Some("https://api.openai.com/v1".to_string()), + credential_uuid: "test-uuid".to_string(), + force_responses_api: true, + credential_path: None, + toolshim: false, + toolshim_model: None, + }; + + set_provider_env_vars(&config); + + assert_eq!( + std::env::var("OPENAI_HOST").ok(), + Some("https://api.openai.com".to_string()) + ); + assert_eq!( + std::env::var("OPENAI_BASE_PATH").ok(), + Some("v1/chat/completions".to_string()) ); - assert!(std::env::var("OPENAI_BASE_PATH").is_err()); assert_eq!( std::env::var("OPENAI_FORCE_RESPONSES_API").ok().as_deref(), Some("1") @@ -898,6 +954,9 @@ mod tests { #[test] fn test_set_provider_env_vars_anthropic_sets_host_and_base_url() { + std::env::remove_var("ANTHROPIC_API_KEY"); + std::env::remove_var("ANTHROPIC_AUTH_TOKEN"); + let config = AsterProviderConfig { provider_name: "anthropic".to_string(), provider_selector: Some("anthropic".to_string()), @@ -921,6 +980,38 @@ mod tests { std::env::var("ANTHROPIC_BASE_URL").ok().as_deref(), Some("https://open.bigmodel.cn/api/anthropic") ); + assert_eq!( + std::env::var("ANTHROPIC_AUTH_TOKEN").ok().as_deref(), + Some("test-key") + ); + assert!(std::env::var("ANTHROPIC_API_KEY").is_err()); + } + + #[test] + fn test_set_provider_env_vars_official_anthropic_keeps_api_key_env() { + std::env::remove_var("ANTHROPIC_API_KEY"); + std::env::remove_var("ANTHROPIC_AUTH_TOKEN"); + + let config = AsterProviderConfig { + provider_name: "anthropic".to_string(), + provider_selector: Some("anthropic".to_string()), + model_name: "claude-sonnet-4-5".to_string(), + api_key: Some("official-key".to_string()), + base_url: Some("https://api.anthropic.com".to_string()), + credential_uuid: "test-uuid".to_string(), + force_responses_api: false, + credential_path: None, + toolshim: false, + toolshim_model: None, + }; + + set_provider_env_vars(&config); + + assert_eq!( + std::env::var("ANTHROPIC_API_KEY").ok().as_deref(), + Some("official-key") + ); + assert!(std::env::var("ANTHROPIC_AUTH_TOKEN").is_err()); } #[test] diff --git a/src-tauri/crates/agent/src/session_execution_runtime.rs b/src-tauri/crates/agent/src/session_execution_runtime.rs index 317d4feea..b43bf514d 100644 --- a/src-tauri/crates/agent/src/session_execution_runtime.rs +++ b/src-tauri/crates/agent/src/session_execution_runtime.rs @@ -26,10 +26,12 @@ pub enum SessionExecutionRuntimeSource { } #[derive(Debug, Clone, Copy, Serialize, Deserialize, PartialEq, Eq)] -#[serde(rename_all = "snake_case")] +#[serde(rename_all = "kebab-case")] pub enum SessionExecutionRuntimeAccessMode { + #[serde(alias = "read_only")] ReadOnly, Current, + #[serde(alias = "full_access")] FullAccess, } @@ -524,7 +526,6 @@ fn extract_recent_harness_context_from_metadata( _ => None, } }; - RecentHarnessContext { theme: resolve_text(&["theme", "harness_theme", "harnessTheme"]), session_mode: normalize_session_mode(resolve_text(&["session_mode", "sessionMode"])), @@ -1032,6 +1033,25 @@ mod tests { ); } + #[test] + fn access_mode_serde_prefers_kebab_case_and_accepts_legacy_snake_case() { + assert_eq!( + serde_json::to_value(SessionExecutionRuntimeAccessMode::FullAccess) + .expect("serialize access mode"), + json!("full-access") + ); + assert_eq!( + serde_json::from_value::(json!("full-access")) + .expect("deserialize kebab-case access mode"), + SessionExecutionRuntimeAccessMode::FullAccess + ); + assert_eq!( + serde_json::from_value::(json!("full_access")) + .expect("deserialize legacy snake_case access mode"), + SessionExecutionRuntimeAccessMode::FullAccess + ); + } + #[test] fn keeps_recent_team_selection_from_latest_turn_metadata() { let now = Utc::now(); diff --git a/src-tauri/crates/agent/src/session_query.rs b/src-tauri/crates/agent/src/session_query.rs index a9cb9185f..ecf560fb6 100644 --- a/src-tauri/crates/agent/src/session_query.rs +++ b/src-tauri/crates/agent/src/session_query.rs @@ -1,17 +1,9 @@ use aster::session::{ - list_subagent_child_sessions, list_subagent_sessions_with_metadata, - resolve_subagent_session_metadata, Session, SessionManager, SessionType, + collect_subagent_cascade_session_ids as collect_query_subagent_cascade_session_ids, + query_all_subagent_sessions_with_metadata, query_child_subagent_sessions, query_session, + query_subagent_parent_session_id, query_subagent_session, Session, SessionType, }; -use std::collections::{HashMap, HashSet, VecDeque}; - -fn normalize_optional_text(value: Option) -> Option { - let trimmed = value?.trim().to_string(); - if trimmed.is_empty() { - None - } else { - Some(trimmed) - } -} +use std::collections::HashSet; pub(crate) fn ensure_subagent_session(session: &Session) -> Result<(), String> { if session.session_type != SessionType::SubAgent { @@ -28,7 +20,7 @@ pub async fn read_session( with_conversation: bool, error_context: &str, ) -> Result { - SessionManager::get_session(session_id, with_conversation) + query_session(session_id, with_conversation) .await .map_err(|error| format!("{error_context}: {error}")) } @@ -37,13 +29,13 @@ pub async fn list_child_subagent_sessions( parent_session_id: &str, error_context: &str, ) -> Result, String> { - list_subagent_child_sessions(parent_session_id) + query_child_subagent_sessions(parent_session_id) .await .map_err(|error| format!("{error_context}: {error}")) } async fn list_subagent_sessions_with_metadata_query() -> Result, String> { - list_subagent_sessions_with_metadata() + query_all_subagent_sessions_with_metadata() .await .map_err(|error| format!("读取 subagent session 列表失败: {error}")) } @@ -52,14 +44,13 @@ pub(crate) async fn read_subagent_session( session_id: &str, error_context: &str, ) -> Result { - let session = read_session(session_id, false, error_context).await?; - ensure_subagent_session(&session)?; - Ok(session) + query_subagent_session(session_id) + .await + .map_err(|error| format!("{error_context}: {error}")) } pub(crate) fn resolve_subagent_parent_session_id(session: &Session) -> Option { - let metadata = resolve_subagent_session_metadata(&session.extension_data)?; - normalize_optional_text(Some(metadata.parent_session_id)) + query_subagent_parent_session_id(session) } pub async fn list_subagent_status_scope_session_ids(session_id: &str) -> Vec { @@ -99,29 +90,7 @@ pub async fn list_subagent_cascade_session_ids(session_id: &str) -> Result Vec { - let mut children_by_parent: HashMap> = HashMap::new(); - for session in sessions { - let Some(parent_session_id) = resolve_subagent_parent_session_id(session) else { - continue; - }; - children_by_parent - .entry(parent_session_id) - .or_default() - .push(session.id.clone()); - } - - let mut ordered = vec![session_id.to_string()]; - let mut queue = VecDeque::from([session_id.to_string()]); - while let Some(parent_id) = queue.pop_front() { - let Some(children) = children_by_parent.get(&parent_id) else { - continue; - }; - for child_id in children { - ordered.push(child_id.clone()); - queue.push_back(child_id.clone()); - } - } - ordered + collect_query_subagent_cascade_session_ids(session_id, sessions) } #[cfg(test)] diff --git a/src-tauri/crates/agent/src/session_update.rs b/src-tauri/crates/agent/src/session_update.rs index 41ddce9af..73b50918d 100644 --- a/src-tauri/crates/agent/src/session_update.rs +++ b/src-tauri/crates/agent/src/session_update.rs @@ -1,6 +1,10 @@ use aster::conversation::Conversation; use aster::session::extension_data::ExtensionData; -use aster::session::{Session, SessionManager, SessionType}; +use aster::session::{ + apply_session_update, create_subagent_session as create_aster_subagent_session, + persist_session_extension_data as persist_aster_session_extension_data, + replace_session_conversation as replace_aster_session_conversation, Session, +}; use std::path::PathBuf; #[derive(Debug, Clone, PartialEq, Eq)] @@ -20,9 +24,7 @@ pub async fn persist_session_extension_data( extension_data: ExtensionData, action_label: &str, ) -> Result<(), String> { - SessionManager::update_session(session_id) - .extension_data(extension_data) - .apply() + persist_aster_session_extension_data(session_id, extension_data) .await .map_err(|error| format!("{action_label}失败: {error}")) } @@ -32,7 +34,7 @@ pub async fn create_subagent_session( working_dir: PathBuf, session_name: String, ) -> Result { - SessionManager::create_session(working_dir, session_name, SessionType::SubAgent) + create_aster_subagent_session(working_dir, session_name) .await .map_err(|error| format!("创建 subagent session 失败: {error}")) } @@ -43,7 +45,7 @@ pub async fn replace_session_conversation( conversation: &Conversation, action_label: &str, ) -> Result<(), String> { - SessionManager::replace_conversation(session_id, conversation) + replace_aster_session_conversation(session_id, conversation) .await .map_err(|error| format!("{action_label}失败: {error}")) } @@ -53,18 +55,19 @@ pub async fn persist_compaction_session_metrics_update( session_id: &str, update: &CompactionSessionMetricsUpdate, ) -> Result<(), String> { - SessionManager::update_session(session_id) + apply_session_update(session_id, |session| { // 显式保留已有 schedule_id,避免把保留旧值的行为隐含在 store 的 COALESCE 语义里。 - .schedule_id(update.schedule_id.clone()) - .total_tokens(Some(update.current_window_tokens)) - .input_tokens(Some(update.current_window_tokens)) - .output_tokens(Some(0)) - .cached_input_tokens(update.cached_input_tokens) - .cache_creation_input_tokens(update.cache_creation_input_tokens) - .accumulated_total_tokens(update.accumulated_total_tokens) - .accumulated_input_tokens(update.accumulated_input_tokens) - .accumulated_output_tokens(update.accumulated_output_tokens) - .apply() - .await - .map_err(|error| format!("更新压缩后的 token 统计失败: {error}")) + session + .schedule_id(update.schedule_id.clone()) + .total_tokens(Some(update.current_window_tokens)) + .input_tokens(Some(update.current_window_tokens)) + .output_tokens(Some(0)) + .cached_input_tokens(update.cached_input_tokens) + .cache_creation_input_tokens(update.cache_creation_input_tokens) + .accumulated_total_tokens(update.accumulated_total_tokens) + .accumulated_input_tokens(update.accumulated_input_tokens) + .accumulated_output_tokens(update.accumulated_output_tokens) + }) + .await + .map_err(|error| format!("更新压缩后的 token 统计失败: {error}")) } diff --git a/src-tauri/crates/aster-rust/crates/aster/examples/agent.rs b/src-tauri/crates/aster-rust/crates/aster/examples/agent.rs index f06ed550c..81cbec2af 100644 --- a/src-tauri/crates/aster-rust/crates/aster/examples/agent.rs +++ b/src-tauri/crates/aster-rust/crates/aster/examples/agent.rs @@ -3,8 +3,8 @@ use aster::config::{DEFAULT_EXTENSION_DESCRIPTION, DEFAULT_EXTENSION_TIMEOUT}; use aster::conversation::message::Message; use aster::providers::create_with_named_model; use aster::providers::databricks::DATABRICKS_DEFAULT_MODEL; +use aster::session::create_managed_session; use aster::session::session_manager::SessionType; -use aster::session::SessionManager; use dotenvy::dotenv; use futures::StreamExt; use std::path::PathBuf; @@ -17,7 +17,7 @@ async fn main() -> anyhow::Result<()> { let agent = Agent::new(); - let session = SessionManager::create_session( + let session = create_managed_session( PathBuf::default(), "max-turn-test".to_string(), SessionType::Hidden, diff --git a/src-tauri/crates/aster-rust/crates/aster/src/agents/agent.rs b/src-tauri/crates/aster-rust/crates/aster/src/agents/agent.rs index 8cc59b558..19e108799 100644 --- a/src-tauri/crates/aster-rust/crates/aster/src/agents/agent.rs +++ b/src-tauri/crates/aster-rust/crates/aster/src/agents/agent.rs @@ -47,14 +47,14 @@ use crate::scheduler_trait::SchedulerTrait; use crate::security::security_inspector::SecurityInspector; use crate::session::extension_data::{EnabledExtensionsState, ExtensionState}; use crate::session::{ - load_session_runtime_snapshot, require_shared_thread_runtime_store, save_summary, + apply_session_update, load_managed_session_runtime_snapshot, query_session, + replace_session_conversation, require_shared_session_runtime_store, save_summary, InMemoryThreadRuntimeStore, ItemRuntime, ItemRuntimePayload, ItemStatus, Session, SessionManager, SessionRuntimeSnapshot, SessionStore, SessionType, TeamMembershipState, TeamSessionState, ThreadRuntime, ThreadRuntimeStore, TurnContextOverride, TurnOutputSchemaRuntime, TurnOutputSchemaSource, TurnOutputSchemaStrategy, TurnRuntime, TurnStatus, }; -use crate::session_context::current_turn_context; use crate::tool_inspection::ToolInspectionManager; use crate::tool_monitor::RepetitionInspector; use crate::tools::{ @@ -115,15 +115,6 @@ const SUBAGENT_TEAMMATE_ALLOWED_TOOL_NAMES: [&str; 5] = [ ]; const AUTO_COMPACTION_DISABLED_CONTEXT_LIMIT_TEXT: &str = "Automatic compaction is disabled for this turn. The conversation reached the context limit. Compact the session manually or start a new session before retrying."; -const LIME_RUNTIME_METADATA_KEY: &str = "lime_runtime"; -const LIME_RUNTIME_TOOL_SURFACE_KEY: &str = "tool_surface"; -const TURN_TOOL_SURFACE_LOCAL_WORKSPACE: &str = "local_workspace"; -const LOCAL_WORKSPACE_TOOL_BATCH_PHASE: &str = "local_workspace_tool_batch"; -const LOCAL_WORKSPACE_STAGE_SUMMARY_REMINDER: &str = - "你刚完成一批本地工作区工具调用。下一步先直接输出 1 到 2 句用户可见的结论正文:说明已经确认了什么、还缺什么、为什么还要继续;不要额外输出“阶段结论”标题。只有仍缺关键证据时,才继续下一批;若继续,请把 2 到 4 个彼此独立的只读工具调用放在同一条回复里一起发起,不要退回单步长链侦查,也不要只说“继续检查”却不给过程结论。若用户已点名绝对路径、仓库根或具体文件,下一批也必须继续优先围绕这些显式路径,不要无故回扫默认工作目录。"; -const LOCAL_WORKSPACE_EMPTY_FOLLOWUP_CONTINUE_PROMPT: &str = - "请继续。你上一轮已经完成本地工作区侦查,但没有给出新的用户可见结论。现在必须继续:若仍缺关键证据,就立刻发起下一批必要的只读工具;证据已足够时,直接给出完整对比结论。不要停在空白,也不要重复已经完成的工具。"; -const ASSISTANT_PHASE_SUMMARY_FALLBACK_TITLE: &str = "已整理当前发现"; const PROPOSED_PLAN_OPEN: &str = ""; const PROPOSED_PLAN_CLOSE: &str = ""; const FILE_ARTIFACT_METADATA_KEYS: [&str; 9] = [ @@ -217,401 +208,6 @@ fn extract_proposed_plan_block(text: &str) -> Option { } } -#[derive(Debug, Clone, Copy, PartialEq, Eq)] -enum ToolBatchOperationKind { - List, - Search, - Read, - Command, - Other, -} - -#[derive(Debug, Default)] -struct LocalWorkspaceToolBatchAccumulator { - total_requests: usize, - list_count: usize, - search_count: usize, - read_count: usize, - command_count: usize, - latest_hint: Option, - latest_list_hint: Option, - latest_search_hint: Option, - latest_read_hint: Option, - latest_command_hint: Option, -} - -impl LocalWorkspaceToolBatchAccumulator { - fn record_request(&mut self, request: &ToolRequest) { - let Ok(tool_call) = &request.tool_call else { - return; - }; - - self.total_requests += 1; - - let operation_kind = resolve_tool_batch_operation_kind( - tool_call.name.as_ref(), - tool_call.arguments.as_ref(), - ); - let hint = resolve_tool_batch_latest_hint(request); - if let Some(latest_hint) = hint.clone() { - self.latest_hint = Some(latest_hint); - } - - match operation_kind { - ToolBatchOperationKind::List => { - self.list_count += 1; - if let Some(latest_hint) = hint { - self.latest_list_hint = Some(latest_hint); - } - } - ToolBatchOperationKind::Search => { - self.search_count += 1; - if let Some(latest_hint) = hint { - self.latest_search_hint = Some(latest_hint); - } - } - ToolBatchOperationKind::Read => { - self.read_count += 1; - if let Some(latest_hint) = hint { - self.latest_read_hint = Some(latest_hint); - } - } - ToolBatchOperationKind::Command => { - self.command_count += 1; - if let Some(latest_hint) = hint { - self.latest_command_hint = Some(latest_hint); - } - } - ToolBatchOperationKind::Other => {} - } - } -} - -fn normalize_tool_batch_name_key(tool_name: &str) -> String { - let mut normalized = String::with_capacity(tool_name.len()); - let mut previous_was_separator = true; - - for ch in tool_name.chars() { - if ch.is_ascii_uppercase() { - if !normalized.is_empty() && !previous_was_separator { - normalized.push('_'); - } - normalized.push(ch.to_ascii_lowercase()); - previous_was_separator = false; - } else if ch.is_ascii_alphanumeric() { - normalized.push(ch.to_ascii_lowercase()); - previous_was_separator = false; - } else if !previous_was_separator && !normalized.is_empty() { - normalized.push('_'); - previous_was_separator = true; - } - } - - normalized.trim_matches('_').to_string() -} - -fn shorten_tool_batch_hint(value: &str) -> Option { - let collapsed = value.split_whitespace().collect::>().join(" "); - let trimmed = collapsed.trim(); - if trimmed.is_empty() { - return None; - } - - const MAX_HINT_CHARS: usize = 72; - let shortened = trimmed.chars().take(MAX_HINT_CHARS).collect::(); - if trimmed.chars().count() > MAX_HINT_CHARS { - Some(format!("{shortened}...")) - } else { - Some(shortened) - } -} - -fn read_tool_batch_argument( - arguments: Option<&rmcp::model::JsonObject>, - keys: &[&str], -) -> Option { - let arguments = arguments?; - - for key in keys { - let Some(value) = arguments.get(*key) else { - continue; - }; - match value { - Value::String(text) => { - if let Some(value) = shorten_tool_batch_hint(text) { - return Some(value); - } - } - Value::Number(number) => return Some(number.to_string()), - Value::Bool(boolean) => return Some(boolean.to_string()), - Value::Array(items) => { - let joined = items - .iter() - .filter_map(|item| item.as_str()) - .map(str::trim) - .filter(|item| !item.is_empty()) - .take(3) - .collect::>() - .join(", "); - if let Some(value) = shorten_tool_batch_hint(&joined) { - return Some(value); - } - } - _ => {} - } - } - - None -} - -fn resolve_tool_batch_path( - tool_name: &str, - arguments: Option<&rmcp::model::JsonObject>, -) -> Option { - fn read_raw_path_argument( - arguments: Option<&rmcp::model::JsonObject>, - keys: &[&str], - ) -> Option { - let arguments = arguments?; - for key in keys { - let Some(value) = arguments.get(*key) else { - continue; - }; - if let Some(text) = value.as_str() { - let trimmed = text.trim(); - if !trimmed.is_empty() { - return Some(trimmed.to_string()); - } - } - } - None - } - - let normalized_name = normalize_tool_batch_name_key(tool_name); - let candidate = if normalized_name.contains("read") { - read_raw_path_argument( - arguments, - &["file_path", "filePath", "path", "absolute_path", "cwd"], - ) - } else if normalized_name.contains("glob") - || normalized_name.contains("list") - || normalized_name.contains("tree") - { - read_raw_path_argument(arguments, &["path", "root", "cwd", "workdir"]) - } else if normalized_name.contains("grep") || normalized_name.contains("search") { - read_raw_path_argument(arguments, &["path", "root", "cwd", "workdir"]) - } else if normalized_name.contains("bash") - || normalized_name.contains("shell") - || normalized_name.contains("power") - { - read_raw_path_argument(arguments, &["cwd", "workdir", "path"]) - } else { - read_raw_path_argument( - arguments, - &[ - "file_path", - "filePath", - "path", - "absolute_path", - "root", - "cwd", - "workdir", - ], - ) - }?; - - Some(candidate) -} - -fn file_name_from_tool_batch_path(path: &str) -> Option { - let trimmed = path.trim().trim_matches('"').trim_matches('\''); - if trimmed.is_empty() { - return None; - } - - std::path::Path::new(trimmed) - .file_name() - .and_then(|value| value.to_str()) - .and_then(shorten_tool_batch_hint) - .or_else(|| shorten_tool_batch_hint(trimmed)) -} - -fn resolve_shell_like_operation_kind(command: &str) -> ToolBatchOperationKind { - let trimmed = command.trim(); - if trimmed.is_empty() { - return ToolBatchOperationKind::Command; - } - - let normalized = trimmed.to_ascii_lowercase(); - let first_token = normalized - .lines() - .find(|line| !line.trim().is_empty()) - .and_then(|line| line.split_whitespace().next()) - .unwrap_or_default() - .trim_matches('"') - .trim_matches('\''); - - if matches!(first_token, "ls" | "dir" | "tree" | "find" | "fd") { - return ToolBatchOperationKind::List; - } - if matches!(first_token, "rg" | "grep" | "findstr") || normalized.contains(" rg ") { - return ToolBatchOperationKind::Search; - } - if matches!( - first_token, - "cat" | "sed" | "head" | "tail" | "awk" | "wc" | "type" | "bat" - ) { - return ToolBatchOperationKind::Read; - } - - ToolBatchOperationKind::Command -} - -fn resolve_tool_batch_operation_kind( - tool_name: &str, - arguments: Option<&rmcp::model::JsonObject>, -) -> ToolBatchOperationKind { - let normalized_name = normalize_tool_batch_name_key(tool_name); - - if normalized_name.contains("read") { - ToolBatchOperationKind::Read - } else if normalized_name.contains("glob") - || normalized_name.contains("list") - || normalized_name.contains("tree") - { - ToolBatchOperationKind::List - } else if normalized_name.contains("grep") || normalized_name.contains("search") { - ToolBatchOperationKind::Search - } else if normalized_name.contains("bash") - || normalized_name.contains("shell") - || normalized_name.contains("power") - { - let command = - read_tool_batch_argument(arguments, &["command", "script"]).unwrap_or_default(); - resolve_shell_like_operation_kind(&command) - } else { - ToolBatchOperationKind::Other - } -} - -fn resolve_tool_batch_latest_hint(request: &ToolRequest) -> Option { - let tool_call = request.tool_call.as_ref().ok()?; - let arguments = tool_call.arguments.as_ref(); - let operation_kind = resolve_tool_batch_operation_kind(tool_call.name.as_ref(), arguments); - let path_hint = resolve_tool_batch_path(tool_call.name.as_ref(), arguments) - .and_then(|path| file_name_from_tool_batch_path(&path).or(Some(path))); - let pattern_hint = - read_tool_batch_argument(arguments, &["pattern", "query", "q", "regex", "search"]); - - match operation_kind { - ToolBatchOperationKind::Read | ToolBatchOperationKind::List => path_hint, - ToolBatchOperationKind::Search => match (path_hint, pattern_hint) { - (Some(path), Some(pattern)) => shorten_tool_batch_hint(&format!("{path} / {pattern}")), - (Some(path), None) => Some(path), - (None, Some(pattern)) => Some(pattern), - (None, None) => shorten_tool_batch_hint(tool_call.name.as_ref()), - }, - ToolBatchOperationKind::Command => { - read_tool_batch_argument(arguments, &["command", "script"]) - .and_then(|command| shorten_tool_batch_hint(&command)) - .or(path_hint) - } - ToolBatchOperationKind::Other => { - path_hint.or_else(|| shorten_tool_batch_hint(tool_call.name.as_ref())) - } - } -} - -fn build_local_workspace_tool_batch_runtime_status( - frontend_requests: &[ToolRequest], - remaining_requests: &[ToolRequest], -) -> Option<(String, String, String, Vec)> { - let mut accumulator = LocalWorkspaceToolBatchAccumulator::default(); - for request in frontend_requests.iter().chain(remaining_requests.iter()) { - accumulator.record_request(request); - } - - if accumulator.total_requests == 0 { - return None; - } - - let mut activities = Vec::new(); - if accumulator.list_count > 0 { - activities.push("目录扫描"); - } - if accumulator.search_count > 0 { - activities.push("关键检索"); - } - if accumulator.read_count > 0 { - activities.push("文件读取"); - } - if accumulator.command_count > 0 { - activities.push("命令探查"); - } - if activities.is_empty() { - activities.push("本地工具分析"); - } - - let activity_text = match activities.as_slice() { - [] => "本地工具分析".to_string(), - [single] => (*single).to_string(), - [left, right] => format!("{left}和{right}"), - _ => { - let head = activities[..activities.len() - 1].join("、"); - let tail = activities.last().copied().unwrap_or("本地工具分析"); - format!("{head}和{tail}") - } - }; - - let detail = match accumulator.latest_hint.as_deref() { - Some(latest_hint) => format!( - "已完成这一批本地仓库的{activity_text},当前线索集中在“{latest_hint}”,正在整理这一批结果并判断是否还需要继续取证。" - ), - None => format!( - "已完成这一批本地仓库的{activity_text},正在整理这一批结果并判断是否还需要继续取证。" - ), - }; - - let mut checkpoints = Vec::new(); - if accumulator.list_count > 0 { - checkpoints.push(match accumulator.latest_list_hint.as_deref() { - Some(latest_hint) => format!("目录扫描:{latest_hint}"), - None => format!("目录扫描 {} 次", accumulator.list_count), - }); - } - if accumulator.search_count > 0 { - checkpoints.push(match accumulator.latest_search_hint.as_deref() { - Some(latest_hint) => format!("关键检索:{latest_hint}"), - None => format!("关键检索 {} 次", accumulator.search_count), - }); - } - if accumulator.read_count > 0 { - checkpoints.push(match accumulator.latest_read_hint.as_deref() { - Some(latest_hint) => format!("文件读取:{latest_hint}"), - None => format!("文件读取 {} 次", accumulator.read_count), - }); - } - if accumulator.command_count > 0 { - checkpoints.push(match accumulator.latest_command_hint.as_deref() { - Some(latest_hint) => format!("命令探查:{latest_hint}"), - None => format!("命令探查 {} 次", accumulator.command_count), - }); - } - if checkpoints.is_empty() { - checkpoints.push(format!( - "本批共发起 {} 个工具调用", - accumulator.total_requests - )); - } - - Some(( - LOCAL_WORKSPACE_TOOL_BATCH_PHASE.to_string(), - "已完成一批本地分析".to_string(), - detail, - checkpoints, - )) -} - #[derive(Debug, Clone)] struct ToolExecutionBatch { is_concurrency_safe: bool, @@ -673,47 +269,6 @@ fn partition_tool_requests_for_execution(requests: &[ToolRequest]) -> Vec Option { - let marker = ["阶段结论:", "阶段结论:"] - .into_iter() - .filter_map(|candidate| text.rfind(candidate).map(|index| (index, candidate))) - .max_by_key(|(index, _)| *index); - if let Some(marker) = marker { - let summary_tail = text.get(marker.0 + marker.1.len()..)?.trim_start(); - if summary_tail.is_empty() { - return None; - } - - let detail = summary_tail - .split("\n\n") - .next() - .map(str::trim) - .filter(|value| !value.is_empty())?; - return Some(detail.to_string()); - } - - let mut offset = 0usize; - let mut last_heading_end = None; - for line in text.split('\n') { - if is_assistant_phase_summary_heading_line(line.trim()) { - last_heading_end = Some(offset + line.len()); - } - offset += line.len() + 1; - } - - let summary_tail = text.get(last_heading_end?..)?.trim_start(); - if summary_tail.is_empty() { - return None; - } - - let detail = summary_tail - .split("\n\n") - .next() - .map(str::trim) - .filter(|value| !value.is_empty())?; - Some(detail.to_string()) -} - fn is_assistant_phase_summary_heading_line(line: &str) -> bool { let trimmed = line.trim(); if trimmed == "阶段结论" { @@ -1045,81 +600,6 @@ fn tool_surface_updated_from_call_tool_result(result: &CallToolResult) -> bool { .unwrap_or(false) } -fn resolve_current_turn_tool_surface_mode() -> Option { - current_turn_context()? - .metadata - .get(LIME_RUNTIME_METADATA_KEY) - .and_then(|value| value.get(LIME_RUNTIME_TOOL_SURFACE_KEY)) - .and_then(Value::as_str) - .map(str::trim) - .filter(|value| !value.is_empty()) - .map(str::to_string) -} - -fn is_local_workspace_stage_summary_reminder(message: &Message) -> bool { - is_agent_only_runtime_prompt(message, LOCAL_WORKSPACE_STAGE_SUMMARY_REMINDER) -} - -fn is_local_workspace_empty_followup_continue_prompt(message: &Message) -> bool { - is_agent_only_runtime_prompt(message, LOCAL_WORKSPACE_EMPTY_FOLLOWUP_CONTINUE_PROMPT) -} - -fn is_agent_only_runtime_prompt(message: &Message, expected_text: &str) -> bool { - message.metadata.agent_visible - && !message.metadata.user_visible - && message.role == Role::User - && message - .content - .iter() - .filter_map(MessageContent::as_text) - .any(|text| text.trim() == expected_text) -} - -fn already_has_local_workspace_stage_summary_reminder( - conversation: &Conversation, - pending_messages: &Conversation, -) -> bool { - pending_messages - .messages() - .last() - .or_else(|| conversation.messages().last()) - .is_some_and(is_local_workspace_stage_summary_reminder) -} - -fn already_has_local_workspace_empty_followup_continue_prompt( - conversation: &Conversation, - pending_messages: &Conversation, -) -> bool { - pending_messages - .messages() - .last() - .or_else(|| conversation.messages().last()) - .is_some_and(is_local_workspace_empty_followup_continue_prompt) -} - -fn should_queue_local_workspace_stage_summary_prompt( - tool_surface_mode: Option<&str>, - tool_request_count: usize, - already_has_pending_prompt: bool, -) -> bool { - matches!(tool_surface_mode, Some(TURN_TOOL_SURFACE_LOCAL_WORKSPACE)) - && tool_request_count > 0 - && !already_has_pending_prompt -} - -fn should_retry_local_workspace_empty_followup( - tool_surface_mode: Option<&str>, - conversation: &Conversation, - pending_messages: &Conversation, -) -> bool { - matches!(tool_surface_mode, Some(TURN_TOOL_SURFACE_LOCAL_WORKSPACE)) - && already_has_local_workspace_stage_summary_reminder(conversation, pending_messages) - && !already_has_local_workspace_empty_followup_continue_prompt( - conversation, - pending_messages, - ) -} - fn normalize_agent_optional_text(value: Option) -> Option { let trimmed = value?.trim().to_string(); if trimmed.is_empty() { @@ -1575,46 +1055,6 @@ impl TurnItemRuntimeProjector { )); } - if let Some(detail) = extract_assistant_phase_summary_detail(&raw_next_text) { - let status_item_id = Agent::runtime_status_item_id(&self.turn_id); - let summary_title = self - .items - .get(&status_item_id) - .and_then(|item| match &item.payload { - ItemRuntimePayload::RuntimeStatus { phase, title, .. } - if phase == LOCAL_WORKSPACE_TOOL_BATCH_PHASE - && !title.trim().is_empty() => - { - Some(title.clone()) - } - _ => None, - }) - .unwrap_or_else(|| ASSISTANT_PHASE_SUMMARY_FALLBACK_TITLE.to_string()); - let should_emit_runtime_status = !matches!( - self.items.get(&status_item_id).map(|item| &item.payload), - Some(ItemRuntimePayload::RuntimeStatus { - phase, - detail: existing_detail, - checkpoints, - .. - }) if phase == LOCAL_WORKSPACE_TOOL_BATCH_PHASE - && existing_detail == &detail - && checkpoints.is_empty() - ); - - if should_emit_runtime_status { - events.push(self.upsert_in_progress( - status_item_id, - ItemRuntimePayload::RuntimeStatus { - phase: LOCAL_WORKSPACE_TOOL_BATCH_PHASE.to_string(), - title: summary_title, - detail, - checkpoints: Vec::new(), - }, - )); - } - } - events } @@ -1966,8 +1406,8 @@ impl Agent { } } - pub fn new_with_required_shared_thread_runtime_store() -> Result { - Ok(Self::new().with_thread_runtime_store(require_shared_thread_runtime_store()?)) + pub fn new_with_required_session_runtime_store() -> Result { + Ok(Self::new().with_thread_runtime_store(require_shared_session_runtime_store()?)) } /// 设置自定义 session 存储 @@ -2214,7 +1654,7 @@ impl Agent { if let Some(store) = &self.session_store { store.get_session(session_id, include_messages).await } else { - SessionManager::get_session(session_id, include_messages).await + query_session(session_id, include_messages).await } } @@ -2227,7 +1667,7 @@ impl Agent { if let Some(store) = &self.session_store { store.replace_conversation(session_id, conversation).await } else { - SessionManager::replace_conversation(session_id, conversation).await + replace_session_conversation(session_id, conversation).await } } @@ -2242,10 +1682,7 @@ impl Agent { .update_extension_data(session_id, extension_data) .await } else { - SessionManager::update_session(session_id) - .extension_data(extension_data) - .apply() - .await + apply_session_update(session_id, |update| update.extension_data(extension_data)).await } } @@ -2261,11 +1698,12 @@ impl Agent { .update_provider_config(session_id, Some(provider_name), Some(model_config)) .await } else { - SessionManager::update_session(session_id) - .provider_name(provider_name) - .model_config(model_config) - .apply() - .await + apply_session_update(session_id, |update| { + update + .provider_name(provider_name) + .model_config(model_config) + }) + .await } } @@ -2679,7 +2117,7 @@ impl Agent { } pub async fn runtime_snapshot(&self, session_id: &str) -> Result { - load_session_runtime_snapshot(self.thread_runtime_store.as_ref(), session_id).await + load_managed_session_runtime_snapshot(self.thread_runtime_store.as_ref(), session_id).await } // ========== End Session 存储辅助方法 ========== @@ -3796,7 +3234,7 @@ impl Agent { let updated_session = if let Some(store) = &session_store_clone { store.get_session(&session_id_clone, true).await } else { - SessionManager::get_session(&session_id_clone, true).await + query_session(&session_id_clone, true).await } .map_err(|e| anyhow!("Failed to fetch updated session: {}", e))?; let updated_conversation = updated_session @@ -4064,7 +3502,6 @@ impl Agent { let mut turns_taken = 0u32; let max_turns = session_config.max_turns.unwrap_or(DEFAULT_MAX_TURNS); let mut overflow_handler = OverflowHandler::new(2); - let turn_tool_surface_mode = resolve_current_turn_tool_surface_mode(); if emit_context_trace && !context_trace.is_empty() { yield AgentEvent::ContextTrace { steps: context_trace }; @@ -4345,43 +3782,6 @@ impl Agent { } } - if turn_tool_surface_mode.as_deref() - == Some(TURN_TOOL_SURFACE_LOCAL_WORKSPACE) - { - if let Some((phase, title, detail, checkpoints)) = - build_local_workspace_tool_batch_runtime_status( - &frontend_requests, - &remaining_requests, - ) - { - let runtime_status_event = self - .upsert_runtime_status_item( - &session_config, - phase, - title, - detail, - checkpoints, - ) - .await?; - yield runtime_status_event; - } - } - - if should_queue_local_workspace_stage_summary_prompt( - turn_tool_surface_mode.as_deref(), - num_tool_requests, - already_has_local_workspace_stage_summary_reminder( - &conversation, - &messages_to_add, - ), - ) { - messages_to_add.push( - Message::user() - .with_text(LOCAL_WORKSPACE_STAGE_SUMMARY_REMINDER) - .agent_only(), - ); - } - no_tools_called = false; } } @@ -4523,16 +3923,6 @@ impl Agent { } } else if did_recovery_compact_this_iteration { // Avoid setting exit_chat; continue from last user message in the conversation - } else if should_retry_local_workspace_empty_followup( - turn_tool_surface_mode.as_deref(), - &conversation, - &messages_to_add, - ) { - let message = Message::user() - .with_text(LOCAL_WORKSPACE_EMPTY_FOLLOWUP_CONTINUE_PROMPT) - .agent_only(); - messages_to_add.push(message.clone()); - yield AgentEvent::Message(message); } else { match self.handle_retry_logic(&mut conversation, &session_config, &initial_messages).await { Ok(should_retry) => { @@ -4885,7 +4275,7 @@ mod tests { use crate::providers::base::{Provider, ProviderMetadata, ProviderUsage}; use crate::providers::errors::ProviderError; use crate::session::{ - extension_data::ExtensionData, initialize_shared_thread_runtime_store, ChatHistoryMatch, + extension_data::ExtensionData, initialize_session_runtime_store, ChatHistoryMatch, CommitOptions, CommitReport, InMemoryThreadRuntimeStore, MemoryCategory, MemoryHealth, MemoryRecord, MemorySearchResult, MemoryStats, SessionInsights, SessionManager, SessionStore, SessionType, TokenStatsUpdate, TurnContextOverride, @@ -5205,9 +4595,9 @@ mod tests { } #[test] - fn test_new_with_required_shared_thread_runtime_store_uses_initialized_store() { - initialize_shared_thread_runtime_store(Arc::new(InMemoryThreadRuntimeStore::default())); - assert!(Agent::new_with_required_shared_thread_runtime_store().is_ok()); + fn test_new_with_required_session_runtime_store_uses_initialized_store() { + initialize_session_runtime_store(Arc::new(InMemoryThreadRuntimeStore::default())); + assert!(Agent::new_with_required_session_runtime_store().is_ok()); } #[test] @@ -5231,105 +4621,6 @@ mod tests { assert_eq!(build_reasoning_summary_sections(" "), None); } - #[test] - fn test_build_local_workspace_tool_batch_runtime_status() { - let frontend_requests = vec![ToolRequest { - id: "tool-1".to_string(), - tool_call: Ok(CallToolRequestParam { - name: "Glob".into(), - arguments: Some( - serde_json::json!({ - "path": "/Users/coso/Documents/dev/js/claudecode/src" - }) - .as_object() - .cloned() - .expect("glob arguments should be an object"), - ), - }), - metadata: None, - tool_meta: None, - }]; - let remaining_requests = vec![ - ToolRequest { - id: "tool-2".to_string(), - tool_call: Ok(CallToolRequestParam { - name: "Grep".into(), - arguments: Some( - serde_json::json!({ - "pattern": "scripts", - "path": "/Users/coso/Documents/dev/js/claudecode/package.json" - }) - .as_object() - .cloned() - .expect("grep arguments should be an object"), - ), - }), - metadata: None, - tool_meta: None, - }, - ToolRequest { - id: "tool-3".to_string(), - tool_call: Ok(CallToolRequestParam { - name: "Read".into(), - arguments: Some( - serde_json::json!({ - "file_path": "/Users/coso/Documents/dev/js/claudecode/package.json" - }) - .as_object() - .cloned() - .expect("read arguments should be an object"), - ), - }), - metadata: None, - tool_meta: None, - }, - ]; - - let runtime_status = build_local_workspace_tool_batch_runtime_status( - &frontend_requests, - &remaining_requests, - ) - .expect("should build local workspace runtime status"); - - assert_eq!(runtime_status.0, LOCAL_WORKSPACE_TOOL_BATCH_PHASE); - assert_eq!(runtime_status.1, "已完成一批本地分析"); - assert!( - runtime_status.2.contains("目录扫描、关键检索和文件读取"), - "detail should summarize batched operations" - ); - assert!( - runtime_status.2.contains("package.json"), - "detail should retain latest hint" - ); - assert_eq!( - runtime_status.3, - vec![ - "目录扫描:src".to_string(), - "关键检索:package.json / scripts".to_string(), - "文件读取:package.json".to_string(), - ] - ); - } - - #[test] - fn test_extract_assistant_phase_summary_detail() { - let text = "先说明\n阶段结论:第一次结论\n\n继续\n阶段结论:已确认主入口和长链路瓶颈,下一步只需补一个证据点。\n\n再继续"; - assert_eq!( - extract_assistant_phase_summary_detail(text).as_deref(), - Some("已确认主入口和长链路瓶颈,下一步只需补一个证据点。") - ); - let markdown_text = - "先说明\n## 阶段结论\n\n已确认主入口和长链路瓶颈,下一步只需补一个证据点。\n\n再继续"; - assert_eq!( - extract_assistant_phase_summary_detail(markdown_text).as_deref(), - Some("已确认主入口和长链路瓶颈,下一步只需补一个证据点。") - ); - assert_eq!( - extract_assistant_phase_summary_detail("阶段结论: "), - None - ); - } - #[test] fn test_strip_assistant_phase_summary_title() { assert_eq!( @@ -5370,7 +4661,7 @@ mod tests { } #[test] - fn test_project_message_emits_phase_summary_runtime_item() { + fn test_project_message_strips_phase_summary_title() { let turn = TurnRuntime::new( "turn-phase-summary", "session-1", @@ -5379,15 +4670,6 @@ mod tests { None, ); let mut projector = TurnItemRuntimeProjector::new(&turn); - projector.upsert_in_progress( - Agent::runtime_status_item_id(&turn.id), - ItemRuntimePayload::RuntimeStatus { - phase: LOCAL_WORKSPACE_TOOL_BATCH_PHASE.to_string(), - title: "已完成一批本地分析".to_string(), - detail: "启发式摘要".to_string(), - checkpoints: vec!["目录扫描:src".to_string()], - }, - ); let message = Message::assistant() .with_id("assistant-msg-phase") @@ -5398,7 +4680,7 @@ mod tests { assert!( events.iter().any(|event| matches!( event, - AgentEvent::ItemUpdated { item } + AgentEvent::ItemStarted { item } | AgentEvent::ItemUpdated { item } if item.id == "assistant:assistant-msg-phase" && matches!( &item.payload, @@ -5408,27 +4690,6 @@ mod tests { )), "assistant 消息正文不应再保留“阶段结论”标题" ); - - assert!( - events.iter().any(|event| matches!( - event, - AgentEvent::ItemUpdated { item } - if item.id == Agent::runtime_status_item_id(&turn.id) - && matches!( - &item.payload, - ItemRuntimePayload::RuntimeStatus { - phase, - title, - detail, - checkpoints, - } if phase == LOCAL_WORKSPACE_TOOL_BATCH_PHASE - && title == "已完成一批本地分析" - && detail == "已确认主入口和长链路瓶颈,下一步只需补一个证据点。" - && checkpoints.is_empty() - ) - )), - "assistant 阶段结论应覆盖同一条 turn_summary" - ); } #[test] @@ -5545,7 +4806,7 @@ mod tests { #[tokio::test] async fn test_ensure_runtime_turn_initialized_reuses_existing_thread_without_reloading_session() { - initialize_shared_thread_runtime_store(Arc::new(InMemoryThreadRuntimeStore::default())); + initialize_session_runtime_store(Arc::new(InMemoryThreadRuntimeStore::default())); let store = Arc::new(CountingSessionStore::new(Session { id: "session-runtime-cache".to_string(), @@ -5573,7 +4834,7 @@ mod tests { model_config: None, })); - let agent = Agent::new_with_required_shared_thread_runtime_store() + let agent = Agent::new_with_required_session_runtime_store() .expect("初始化 agent 失败") .with_session_store(store.clone()); let session_config = SessionConfig { @@ -5602,7 +4863,7 @@ mod tests { #[tokio::test] async fn test_prepare_tools_and_prompt_reuses_listed_tools_for_subagent_prompt_flag() { - initialize_shared_thread_runtime_store(Arc::new(InMemoryThreadRuntimeStore::default())); + initialize_session_runtime_store(Arc::new(InMemoryThreadRuntimeStore::default())); let store = Arc::new(CountingSessionStore::new(Session { id: "session-prompt-surface".to_string(), @@ -5630,7 +4891,7 @@ mod tests { model_config: None, })); - let agent = Agent::new_with_required_shared_thread_runtime_store() + let agent = Agent::new_with_required_session_runtime_store() .expect("初始化 agent 失败") .with_session_store(store.clone()); agent @@ -5656,7 +4917,7 @@ mod tests { #[tokio::test] async fn test_prepare_tools_and_prompt_reuses_session_type_hint_after_runtime_init() { - initialize_shared_thread_runtime_store(Arc::new(InMemoryThreadRuntimeStore::default())); + initialize_session_runtime_store(Arc::new(InMemoryThreadRuntimeStore::default())); let store = Arc::new(CountingSessionStore::new(Session { id: "session-runtime-hint".to_string(), @@ -5684,7 +4945,7 @@ mod tests { model_config: None, })); - let agent = Agent::new_with_required_shared_thread_runtime_store() + let agent = Agent::new_with_required_session_runtime_store() .expect("初始化 agent 失败") .with_session_store(store.clone()); let session_config = SessionConfig { @@ -5719,7 +4980,7 @@ mod tests { #[tokio::test] async fn test_reply_reuses_session_type_hint_after_loading_session() -> Result<()> { - initialize_shared_thread_runtime_store(Arc::new(InMemoryThreadRuntimeStore::default())); + initialize_session_runtime_store(Arc::new(InMemoryThreadRuntimeStore::default())); let store = Arc::new(CountingSessionStore::new(Session { id: "session-reply-hint".to_string(), @@ -5747,7 +5008,7 @@ mod tests { model_config: None, })); - let agent = Agent::new_with_required_shared_thread_runtime_store() + let agent = Agent::new_with_required_session_runtime_store() .expect("初始化 agent 失败") .with_session_store(store.clone()); agent @@ -5789,7 +5050,7 @@ mod tests { #[tokio::test] async fn test_dispatch_tool_call_skips_session_reload_for_non_agent_tools() -> Result<()> { - initialize_shared_thread_runtime_store(Arc::new(InMemoryThreadRuntimeStore::default())); + initialize_session_runtime_store(Arc::new(InMemoryThreadRuntimeStore::default())); let store = Arc::new(CountingSessionStore::new(Session { id: "session-tool-dispatch".to_string(), @@ -5817,7 +5078,7 @@ mod tests { model_config: None, })); - let agent = Agent::new_with_required_shared_thread_runtime_store() + let agent = Agent::new_with_required_session_runtime_store() .expect("初始化 agent 失败") .with_session_store(store.clone()); agent @@ -6309,7 +5570,7 @@ mod tests { #[tokio::test] async fn test_list_tools_includes_current_agent_tool_without_extensions() -> Result<()> { - initialize_shared_thread_runtime_store(Arc::new(InMemoryThreadRuntimeStore::default())); + initialize_session_runtime_store(Arc::new(InMemoryThreadRuntimeStore::default())); let agent = Agent::new(); let session = SessionManager::create_session( @@ -6335,7 +5596,7 @@ mod tests { #[tokio::test] async fn test_list_tools_excludes_legacy_agent_control_surface() -> Result<()> { - initialize_shared_thread_runtime_store(Arc::new(InMemoryThreadRuntimeStore::default())); + initialize_session_runtime_store(Arc::new(InMemoryThreadRuntimeStore::default())); let agent = Agent::new(); let session = SessionManager::create_session( @@ -6551,7 +5812,7 @@ mod tests { #[tokio::test] async fn test_list_tools_hides_resource_helpers_without_resource_extensions() -> Result<()> { - initialize_shared_thread_runtime_store(Arc::new(InMemoryThreadRuntimeStore::default())); + initialize_session_runtime_store(Arc::new(InMemoryThreadRuntimeStore::default())); let agent = Agent::new(); let session = SessionManager::create_session( @@ -6584,7 +5845,7 @@ mod tests { #[tokio::test] async fn test_list_tools_applies_current_surface_main_thread_gates() -> Result<()> { - initialize_shared_thread_runtime_store(Arc::new(InMemoryThreadRuntimeStore::default())); + initialize_session_runtime_store(Arc::new(InMemoryThreadRuntimeStore::default())); let agent = Agent::new(); let session = SessionManager::create_session( @@ -6618,7 +5879,7 @@ mod tests { #[tokio::test] async fn test_list_tools_hides_main_thread_only_tools_for_subagent_sessions() -> Result<()> { - initialize_shared_thread_runtime_store(Arc::new(InMemoryThreadRuntimeStore::default())); + initialize_session_runtime_store(Arc::new(InMemoryThreadRuntimeStore::default())); let agent = Agent::new(); let session = SessionManager::create_session( @@ -6698,7 +5959,7 @@ mod tests { TeamSessionState, }; - initialize_shared_thread_runtime_store(Arc::new(InMemoryThreadRuntimeStore::default())); + initialize_session_runtime_store(Arc::new(InMemoryThreadRuntimeStore::default())); let manager = AgentManager::new_with_thread_runtime_store( None, @@ -6773,7 +6034,7 @@ mod tests { TeamSessionState, }; - initialize_shared_thread_runtime_store(Arc::new(InMemoryThreadRuntimeStore::default())); + initialize_session_runtime_store(Arc::new(InMemoryThreadRuntimeStore::default())); let manager = AgentManager::new_with_thread_runtime_store( None, @@ -6849,7 +6110,7 @@ mod tests { TeamSessionState, }; - initialize_shared_thread_runtime_store(Arc::new(InMemoryThreadRuntimeStore::default())); + initialize_session_runtime_store(Arc::new(InMemoryThreadRuntimeStore::default())); let spawn_agent_callback = Arc::new(move |_request: SpawnAgentRequest| { Box::pin(async move { @@ -6961,7 +6222,7 @@ mod tests { #[tokio::test] async fn test_agent_tool_routes_async_current_surface_through_callbacks() -> Result<()> { - initialize_shared_thread_runtime_store(Arc::new(InMemoryThreadRuntimeStore::default())); + initialize_session_runtime_store(Arc::new(InMemoryThreadRuntimeStore::default())); let captured = Arc::new(std::sync::Mutex::new(None::)); let captured_clone = captured.clone(); @@ -7047,7 +6308,7 @@ mod tests { #[tokio::test] async fn test_agent_tool_routes_cwd_override_through_callbacks() -> Result<()> { - initialize_shared_thread_runtime_store(Arc::new(InMemoryThreadRuntimeStore::default())); + initialize_session_runtime_store(Arc::new(InMemoryThreadRuntimeStore::default())); let captured = Arc::new(std::sync::Mutex::new(None::)); let captured_clone = captured.clone(); @@ -7352,60 +6613,4 @@ mod tests { Ok(()) } - - #[test] - fn test_should_queue_local_workspace_stage_summary_prompt() { - assert!(should_queue_local_workspace_stage_summary_prompt( - Some(TURN_TOOL_SURFACE_LOCAL_WORKSPACE), - 3, - false, - )); - assert!(should_queue_local_workspace_stage_summary_prompt( - Some(TURN_TOOL_SURFACE_LOCAL_WORKSPACE), - 3, - false, - )); - assert!(!should_queue_local_workspace_stage_summary_prompt( - Some("direct_answer"), - 3, - false, - )); - assert!(!should_queue_local_workspace_stage_summary_prompt( - Some(TURN_TOOL_SURFACE_LOCAL_WORKSPACE), - 3, - true, - )); - } - - #[test] - fn test_already_has_local_workspace_stage_summary_reminder() { - let conversation = Conversation::new_unvalidated(vec![Message::user() - .with_text(LOCAL_WORKSPACE_STAGE_SUMMARY_REMINDER) - .agent_only()]); - assert!(already_has_local_workspace_stage_summary_reminder( - &conversation, - &Conversation::default(), - )); - } - - #[test] - fn test_should_retry_local_workspace_empty_followup() { - let conversation = Conversation::new_unvalidated(vec![Message::user() - .with_text(LOCAL_WORKSPACE_STAGE_SUMMARY_REMINDER) - .agent_only()]); - assert!(should_retry_local_workspace_empty_followup( - Some(TURN_TOOL_SURFACE_LOCAL_WORKSPACE), - &conversation, - &Conversation::default(), - )); - - let already_retried = Conversation::new_unvalidated(vec![Message::user() - .with_text(LOCAL_WORKSPACE_EMPTY_FOLLOWUP_CONTINUE_PROMPT) - .agent_only()]); - assert!(!should_retry_local_workspace_empty_followup( - Some(TURN_TOOL_SURFACE_LOCAL_WORKSPACE), - &already_retried, - &Conversation::default(), - )); - } } diff --git a/src-tauri/crates/aster-rust/crates/aster/src/agents/chatrecall_extension.rs b/src-tauri/crates/aster-rust/crates/aster/src/agents/chatrecall_extension.rs index 5d45976c8..544d05466 100644 --- a/src-tauri/crates/aster-rust/crates/aster/src/agents/chatrecall_extension.rs +++ b/src-tauri/crates/aster-rust/crates/aster/src/agents/chatrecall_extension.rs @@ -1,6 +1,6 @@ use crate::agents::extension::PlatformExtensionContext; use crate::agents::mcp_client::{Error, McpClientTrait}; -use crate::session::SessionManager; +use crate::session::{query_session, SessionManager}; use anyhow::Result; use async_trait::async_trait; use indoc::indoc; @@ -91,7 +91,7 @@ impl ChatRecallClient { if let Some(sid) = session_id { // LOAD MODE: Get session summary (first and last few messages) - match SessionManager::get_session(&sid, true).await { + match query_session(&sid, true).await { Ok(loaded_session) => { let conversation = loaded_session.conversation.as_ref(); diff --git a/src-tauri/crates/aster-rust/crates/aster/src/agents/execute_commands.rs b/src-tauri/crates/aster-rust/crates/aster/src/agents/execute_commands.rs index 4f8741113..3c3155b41 100644 --- a/src-tauri/crates/aster-rust/crates/aster/src/agents/execute_commands.rs +++ b/src-tauri/crates/aster-rust/crates/aster/src/agents/execute_commands.rs @@ -5,7 +5,7 @@ use anyhow::{anyhow, Result}; use crate::context_mgmt::compact_messages_with_summary; use crate::conversation::message::{Message, SystemNotificationType}; use crate::recipe::build_recipe::build_recipe_from_template_with_positional_params; -use crate::session::{save_summary, SessionManager}; +use crate::session::{apply_session_update, save_summary}; use super::Agent; @@ -140,13 +140,14 @@ impl Agent { ) .await?; } else { - SessionManager::update_session(session_id) - .total_tokens(Some(0)) - .input_tokens(Some(0)) - .output_tokens(Some(0)) - .cache_creation_input_tokens(Some(0)) - .apply() - .await?; + apply_session_update(session_id, |update| { + update + .total_tokens(Some(0)) + .input_tokens(Some(0)) + .output_tokens(Some(0)) + .cache_creation_input_tokens(Some(0)) + }) + .await?; } Ok(Some(Message::assistant().with_system_notification( diff --git a/src-tauri/crates/aster-rust/crates/aster/src/agents/reply_parts.rs b/src-tauri/crates/aster-rust/crates/aster/src/agents/reply_parts.rs index 882cdc6f3..3c1a22b69 100644 --- a/src-tauri/crates/aster-rust/crates/aster/src/agents/reply_parts.rs +++ b/src-tauri/crates/aster-rust/crates/aster/src/agents/reply_parts.rs @@ -20,9 +20,9 @@ use crate::session_context::current_turn_context; use crate::agents::code_execution_extension::EXTENSION_NAME as CODE_EXECUTION_EXTENSION; use crate::agents::subagent_tool::AGENT_TOOL_NAME; +use crate::session::{apply_session_update, query_session, SessionStore, TokenStatsUpdate}; #[cfg(test)] -use crate::session::SessionType; -use crate::session::{SessionManager, SessionStore, TokenStatsUpdate}; +use crate::session::{SessionManager, SessionType}; use rmcp::model::Tool; const LIME_RUNTIME_METADATA_KEY: &str = "lime_runtime"; @@ -477,7 +477,7 @@ impl Agent { let session = if let Some(store) = session_store { store.get_session(session_id, false).await? } else { - SessionManager::get_session(session_id, false).await? + query_session(session_id, false).await? }; let accumulate = |a: Option, b: Option| -> Option { @@ -534,18 +534,19 @@ impl Agent { ) .await?; } else { - SessionManager::update_session(session_id) - .schedule_id(session_config.schedule_id.clone()) - .total_tokens(current_total) - .input_tokens(current_input) - .output_tokens(current_output) - .cached_input_tokens(current_cached_input) - .cache_creation_input_tokens(current_cache_creation_input) - .accumulated_total_tokens(accumulated_total) - .accumulated_input_tokens(accumulated_input) - .accumulated_output_tokens(accumulated_output) - .apply() - .await?; + apply_session_update(session_id, |update| { + update + .schedule_id(session_config.schedule_id.clone()) + .total_tokens(current_total) + .input_tokens(current_input) + .output_tokens(current_output) + .cached_input_tokens(current_cached_input) + .cache_creation_input_tokens(current_cache_creation_input) + .accumulated_total_tokens(accumulated_total) + .accumulated_input_tokens(accumulated_input) + .accumulated_output_tokens(accumulated_output) + }) + .await?; } Ok(()) diff --git a/src-tauri/crates/aster-rust/crates/aster/src/agents/schedule_tool.rs b/src-tauri/crates/aster-rust/crates/aster/src/agents/schedule_tool.rs index ea05b5469..5c0e47e32 100644 --- a/src-tauri/crates/aster-rust/crates/aster/src/agents/schedule_tool.rs +++ b/src-tauri/crates/aster-rust/crates/aster/src/agents/schedule_tool.rs @@ -441,7 +441,7 @@ impl Agent { ) })?; - let session = match crate::session::SessionManager::get_session(session_id, true).await { + let session = match crate::session::query_session(session_id, true).await { Ok(metadata) => metadata, Err(e) => { return Err(ErrorData::new( diff --git a/src-tauri/crates/aster-rust/crates/aster/src/agents/subagent_tool.rs b/src-tauri/crates/aster-rust/crates/aster/src/agents/subagent_tool.rs index b7a83c9a0..4a27eb816 100644 --- a/src-tauri/crates/aster-rust/crates/aster/src/agents/subagent_tool.rs +++ b/src-tauri/crates/aster-rust/crates/aster/src/agents/subagent_tool.rs @@ -17,7 +17,9 @@ use crate::providers; use crate::recipe::build_recipe::build_recipe_from_template; use crate::recipe::local_recipes::load_local_recipe_file; use crate::recipe::{Recipe, SubRecipe}; -use crate::session::{SessionManager, SubagentSessionMetadata}; +use crate::session::{ + create_subagent_session, persist_session_extension_data, SubagentSessionMetadata, +}; pub const AGENT_TOOL_NAME: &str = "Agent"; const SUBAGENT_TASK_SUMMARY_MAX_CHARS: usize = 160; @@ -444,17 +446,14 @@ async fn execute_subagent( data: None, })?; - let session = SessionManager::create_session( - working_dir, - build_subagent_session_name(¶ms, &recipe), - crate::session::session_manager::SessionType::SubAgent, - ) - .await - .map_err(|e| ErrorData { - code: ErrorCode::INTERNAL_ERROR, - message: Cow::from(format!("Failed to create session: {}", e)), - data: None, - })?; + let session = + create_subagent_session(working_dir, build_subagent_session_name(¶ms, &recipe)) + .await + .map_err(|e| ErrorData { + code: ErrorCode::INTERNAL_ERROR, + message: Cow::from(format!("Failed to create session: {}", e)), + data: None, + })?; persist_subagent_session_metadata( &session.id, @@ -636,10 +635,7 @@ async fn persist_subagent_session_metadata( metadata: SubagentSessionMetadata, ) -> Result<()> { let extension_data = metadata.into_updated_extension_data(session)?; - SessionManager::update_session(session_id) - .extension_data(extension_data) - .apply() - .await + persist_session_extension_data(session_id, extension_data).await } fn build_recipe( diff --git a/src-tauri/crates/aster-rust/crates/aster/src/execution/manager.rs b/src-tauri/crates/aster-rust/crates/aster/src/execution/manager.rs index d9ed53eeb..7c7c746bf 100644 --- a/src-tauri/crates/aster-rust/crates/aster/src/execution/manager.rs +++ b/src-tauri/crates/aster-rust/crates/aster/src/execution/manager.rs @@ -6,10 +6,13 @@ use crate::conversation::message::Message; use crate::scheduler::Scheduler; use crate::scheduler_trait::SchedulerTrait; use crate::session::{ - require_shared_thread_runtime_store, save_team_membership, save_team_state, QueuedTurnRuntime, - RuntimeQueueSubmitResult, SessionManager, SessionRuntimeQueueService, SessionType, - SubagentSessionMetadata, TeamMember, TeamMembershipState, TeamSessionState, ThreadRuntimeStore, + create_subagent_session, persist_session_extension_data, query_session, + require_shared_session_runtime_store, save_team_membership, save_team_state, QueuedTurnRuntime, + RuntimeQueueSubmitResult, SessionRuntimeQueueService, SubagentSessionMetadata, TeamMember, + TeamMembershipState, TeamSessionState, ThreadRuntimeStore, }; +#[cfg(test)] +use crate::session::{SessionManager, SessionType}; use crate::tools::{ AgentControlToolConfig, SendInputRequest, SendInputResponse, SpawnAgentRequest, SpawnAgentResponse, ToolRegistrationConfig, @@ -246,7 +249,7 @@ async fn send_input_with_runtime( request: SendInputRequest, ) -> Result { let message = require_non_empty_text(request.message.clone(), "message")?; - SessionManager::get_session(&request.id, false) + query_session(&request.id, false) .await .map_err(|error| format!("目标 agent 不存在: {error}"))?; @@ -313,7 +316,7 @@ async fn register_spawned_teammate( teammate_name: String, agent_type: Option, ) -> Result<(), String> { - let parent_session = SessionManager::get_session(parent_session_id, false) + let parent_session = query_session(parent_session_id, false) .await .map_err(|error| format!("读取父会话失败: {error}"))?; let Some(mut team_state) = TeamSessionState::from_session(&parent_session) else { @@ -358,15 +361,14 @@ async fn spawn_agent_with_runtime( request: SpawnAgentRequest, ) -> Result { let initial_message = require_non_empty_text(request.message.clone(), "message")?; - let parent_session = SessionManager::get_session(&request.parent_session_id, false) + let parent_session = query_session(&request.parent_session_id, false) .await .map_err(|error| format!("读取父会话失败: {error}"))?; let working_dir = resolve_spawn_working_dir(&parent_session.working_dir, request.cwd.clone())?; let session_name = session_name_for_spawn(&request); - let child_session = - SessionManager::create_session(working_dir, session_name, SessionType::SubAgent) - .await - .map_err(|error| format!("创建子会话失败: {error}"))?; + let child_session = create_subagent_session(working_dir, session_name) + .await + .map_err(|error| format!("创建子会话失败: {error}"))?; let metadata = SubagentSessionMetadata::new(request.parent_session_id.clone()) .with_task_summary(Some(message_preview(&initial_message))) @@ -377,9 +379,7 @@ async fn spawn_agent_with_runtime( let extension_data = metadata .into_updated_extension_data(&child_session) .map_err(|error| format!("构建子会话元数据失败: {error}"))?; - SessionManager::update_session(&child_session.id) - .extension_data(extension_data) - .apply() + persist_session_extension_data(&child_session.id, extension_data) .await .map_err(|error| format!("保存子会话元数据失败: {error}"))?; @@ -486,7 +486,7 @@ impl AgentManager { .unwrap_or(DEFAULT_MAX_SESSION); let manager = Self::new_with_thread_runtime_store( Some(max_sessions), - require_shared_thread_runtime_store() + require_shared_session_runtime_store() .context("AgentManager 启动前必须先初始化 shared thread runtime store")?, ) .await?; @@ -901,9 +901,7 @@ mod tests { .await .unwrap(); - let spawned_session = SessionManager::get_session(&spawned.agent_id, false) - .await - .unwrap(); + let spawned_session = query_session(&spawned.agent_id, false).await.unwrap(); assert_eq!(spawned_session.working_dir, temp_dir.path()); let peers_result = ListPeersTool::new() diff --git a/src-tauri/crates/aster-rust/crates/aster/src/providers/anthropic.rs b/src-tauri/crates/aster-rust/crates/aster/src/providers/anthropic.rs index 8472cbd16..9b9104dc7 100644 --- a/src-tauri/crates/aster-rust/crates/aster/src/providers/anthropic.rs +++ b/src-tauri/crates/aster-rust/crates/aster/src/providers/anthropic.rs @@ -37,6 +37,39 @@ const ANTHROPIC_KNOWN_MODELS: &[&str] = &[ const ANTHROPIC_DOC_URL: &str = "https://docs.anthropic.com/en/docs/about-claude/models"; const ANTHROPIC_API_VERSION: &str = "2023-06-01"; +fn normalize_anthropic_host(host: &str) -> String { + host.trim().trim_end_matches('/').to_ascii_lowercase() +} + +fn should_use_bearer_auth_for_anthropic_host(host: &str) -> bool { + let normalized_host = normalize_anthropic_host(host); + if normalized_host.is_empty() { + return false; + } + + [ + "bigmodel.cn/api/anthropic", + "moonshot.cn/anthropic", + "moonshot.ai/anthropic", + "minimaxi.com/anthropic", + "minimax.io/anthropic", + "token-plan-cn.xiaomimimo.com/anthropic", + ] + .iter() + .any(|needle| normalized_host.contains(needle)) +} + +fn resolve_anthropic_auth(host: &str, secret: String) -> AuthMethod { + if should_use_bearer_auth_for_anthropic_host(host) { + AuthMethod::BearerToken(secret) + } else { + AuthMethod::ApiKey { + header_name: "x-api-key".to_string(), + key: secret, + } + } +} + #[derive(serde::Serialize)] pub struct AnthropicProvider { #[serde(skip)] @@ -51,17 +84,22 @@ impl AnthropicProvider { let model = model.with_fast(ANTHROPIC_DEFAULT_FAST_MODEL.to_string()); let config = crate::config::Config::global(); - let api_key: String = config.get_secret("ANTHROPIC_API_KEY")?; let host: String = config .get_param("ANTHROPIC_HOST") .or_else(|_| config.get_param("ANTHROPIC_BASE_URL")) .unwrap_or_else(|_| "https://api.anthropic.com".to_string()); - - let auth = AuthMethod::ApiKey { - header_name: "x-api-key".to_string(), - key: api_key, + let api_key: String = if should_use_bearer_auth_for_anthropic_host(&host) { + config + .get_secret("ANTHROPIC_AUTH_TOKEN") + .or_else(|_| config.get_secret("ANTHROPIC_API_KEY"))? + } else { + config + .get_secret("ANTHROPIC_API_KEY") + .or_else(|_| config.get_secret("ANTHROPIC_AUTH_TOKEN"))? }; + let auth = resolve_anthropic_auth(&host, api_key); + let api_client = ApiClient::new(host, auth)?.with_header("anthropic-version", ANTHROPIC_API_VERSION)?; @@ -82,10 +120,7 @@ impl AnthropicProvider { .get_secret(&config.api_key_env) .map_err(|_| anyhow::anyhow!("Missing API key: {}", config.api_key_env))?; - let auth = AuthMethod::ApiKey { - header_name: "x-api-key".to_string(), - key: api_key, - }; + let auth = resolve_anthropic_auth(&config.base_url, api_key); let api_client = ApiClient::new(config.base_url, auth)? .with_header("anthropic-version", ANTHROPIC_API_VERSION)?; @@ -181,6 +216,7 @@ impl Provider for AnthropicProvider { ANTHROPIC_DOC_URL, vec![ ConfigKey::new("ANTHROPIC_API_KEY", true, true, None), + ConfigKey::new("ANTHROPIC_AUTH_TOKEN", true, true, None), ConfigKey::new( "ANTHROPIC_HOST", true, @@ -302,3 +338,42 @@ impl Provider for AnthropicProvider { self.supports_streaming } } + +#[cfg(test)] +mod tests { + use super::{resolve_anthropic_auth, should_use_bearer_auth_for_anthropic_host}; + use crate::providers::api_client::AuthMethod; + + #[test] + fn test_known_official_anthropic_compatible_hosts_use_bearer_auth() { + assert!(should_use_bearer_auth_for_anthropic_host( + "https://api.minimaxi.com/anthropic" + )); + assert!(should_use_bearer_auth_for_anthropic_host( + "https://open.bigmodel.cn/api/anthropic" + )); + } + + #[test] + fn test_official_anthropic_host_keeps_x_api_key_auth() { + assert!(!should_use_bearer_auth_for_anthropic_host( + "https://api.anthropic.com" + )); + } + + #[test] + fn test_resolve_anthropic_auth_uses_expected_auth_method() { + match resolve_anthropic_auth("https://api.minimaxi.com/anthropic", "k1".to_string()) { + AuthMethod::BearerToken(token) => assert_eq!(token, "k1"), + _ => panic!("expected bearer token auth"), + } + + match resolve_anthropic_auth("https://api.anthropic.com", "k2".to_string()) { + AuthMethod::ApiKey { header_name, key } => { + assert_eq!(header_name, "x-api-key"); + assert_eq!(key, "k2"); + } + _ => panic!("expected x-api-key auth"), + } + } +} diff --git a/src-tauri/crates/aster-rust/crates/aster/src/providers/openai.rs b/src-tauri/crates/aster-rust/crates/aster/src/providers/openai.rs index d2dc0300f..e18e9dae9 100644 --- a/src-tauri/crates/aster-rust/crates/aster/src/providers/openai.rs +++ b/src-tauri/crates/aster-rust/crates/aster/src/providers/openai.rs @@ -209,6 +209,34 @@ impl OpenAiProvider { Self::force_responses_api() || Self::looks_like_codex_responses_model(model_name) } + fn responses_path_from_base_path(base_path: &str) -> String { + let trimmed = base_path.trim_matches('/'); + if trimmed.is_empty() { + return "v1/responses".to_string(); + } + + if let Some(prefix) = trimmed.strip_suffix("/chat/completions") { + if prefix.is_empty() { + return "responses".to_string(); + } + return format!("{prefix}/responses"); + } + + if trimmed == "chat/completions" { + return "responses".to_string(); + } + + if trimmed.ends_with("/responses") || trimmed == "responses" { + return trimmed.to_string(); + } + + if trimmed.ends_with("/v1") || trimmed == "v1" { + return format!("{trimmed}/responses"); + } + + format!("{trimmed}/responses") + } + fn normalize_optional_text(value: Option<&str>) -> Option { value .map(str::trim) @@ -310,9 +338,10 @@ impl OpenAiProvider { } async fn post_responses(&self, payload: &Value) -> Result { + let responses_path = Self::responses_path_from_base_path(&self.base_path); let response = self .api_client - .response_post("v1/responses", payload) + .response_post(&responses_path, payload) .await?; handle_response_openai_compat(response).await } @@ -502,9 +531,10 @@ impl Provider for OpenAiProvider { let response = self .with_retry(|| async { let payload_clone = payload.clone(); + let responses_path = Self::responses_path_from_base_path(&self.base_path); let resp = self .api_client - .response_post("v1/responses", &payload_clone) + .response_post(&responses_path, &payload_clone) .await?; handle_status_openai_compat(resp).await }) @@ -645,6 +675,26 @@ mod tests { std::env::remove_var("OPENAI_FORCE_RESPONSES_API"); } + #[test] + fn test_responses_path_from_base_path_reuses_existing_prefix() { + assert_eq!( + OpenAiProvider::responses_path_from_base_path("v1/chat/completions"), + "v1/responses" + ); + assert_eq!( + OpenAiProvider::responses_path_from_base_path("openai/chat/completions"), + "openai/responses" + ); + assert_eq!( + OpenAiProvider::responses_path_from_base_path("openai/v1/chat/completions"), + "openai/v1/responses" + ); + assert_eq!( + OpenAiProvider::responses_path_from_base_path("v1"), + "v1/responses" + ); + } + #[tokio::test] async fn test_resolve_responses_request_context_uses_previous_response_id_from_turn_context() { let mut metadata = HashMap::new(); diff --git a/src-tauri/crates/aster-rust/crates/aster/src/scheduler.rs b/src-tauri/crates/aster-rust/crates/aster/src/scheduler.rs index 03ece05ce..74001e8aa 100644 --- a/src-tauri/crates/aster-rust/crates/aster/src/scheduler.rs +++ b/src-tauri/crates/aster-rust/crates/aster/src/scheduler.rs @@ -28,6 +28,8 @@ use tokio::sync::Mutex; use tokio_cron_scheduler::{job::JobId, Job, JobScheduler as TokioJobScheduler}; use tokio_util::sync::CancellationToken; +use crate::session::{apply_session_update, create_managed_session}; + use crate::agents::AgentEvent; use crate::agents::{Agent, SessionConfig}; use crate::config::paths::Paths; @@ -897,7 +899,7 @@ async fn execute_job( } }; - let agent = Agent::new_with_required_shared_thread_runtime_store() + let agent = Agent::new_with_required_session_runtime_store() .context("Scheduler 执行任务前必须先初始化 shared thread runtime store")?; let config = Config::global(); @@ -913,7 +915,7 @@ async fn execute_job( } } - let session = SessionManager::create_session( + let session = create_managed_session( std::env::current_dir()?, format!("Scheduled job: {}", job.id), SessionType::Scheduled, @@ -990,11 +992,12 @@ async fn execute_job( } } - SessionManager::update_session(&session.id) - .schedule_id(Some(job.id.clone())) - .recipe(Some(recipe)) - .apply() - .await?; + apply_session_update(&session.id, |update| { + update + .schedule_id(Some(job.id.clone())) + .recipe(Some(recipe)) + }) + .await?; let duration_secs = start_time.elapsed().as_secs(); tokio::spawn(async move { diff --git a/src-tauri/crates/aster-rust/crates/aster/src/session/archive.rs b/src-tauri/crates/aster-rust/crates/aster/src/session/archive.rs index 54fd4e1dd..fbed41c59 100644 --- a/src-tauri/crates/aster-rust/crates/aster/src/session/archive.rs +++ b/src-tauri/crates/aster-rust/crates/aster/src/session/archive.rs @@ -3,7 +3,7 @@ //! Provides functionality for archiving sessions. use crate::config::paths::Paths; -use crate::session::SessionManager; +use crate::session::{delete_managed_session, SessionManager}; use anyhow::Result; use std::fs; use std::path::PathBuf; @@ -60,7 +60,7 @@ pub async fn archive_session(session_id: &str) -> Result { /// * `session_id` - The session ID to archive and delete pub async fn archive_and_delete_session(session_id: &str) -> Result { let archive_path = archive_session(session_id).await?; - SessionManager::delete_session(session_id).await?; + delete_managed_session(session_id).await?; info!("Session {} deleted after archiving", session_id); Ok(archive_path) } diff --git a/src-tauri/crates/aster-rust/crates/aster/src/session/bootstrap.rs b/src-tauri/crates/aster-rust/crates/aster/src/session/bootstrap.rs index 11530070b..9fcbb469a 100644 --- a/src-tauri/crates/aster-rust/crates/aster/src/session/bootstrap.rs +++ b/src-tauri/crates/aster-rust/crates/aster/src/session/bootstrap.rs @@ -1,6 +1,6 @@ use super::{ - initialize_default_shared_sqlite_thread_runtime_store, is_global_session_store_set, - load_session_runtime_snapshot, require_shared_thread_runtime_store, set_global_session_store, + initialize_default_sqlite_session_runtime_store, install_global_session_store, + is_global_session_store_set, load_runtime_snapshot_from_store, require_session_runtime_store, SessionRuntimeSnapshot, SessionStore, ThreadRuntimeStore, }; use crate::config::paths::{initialize_path_root, Paths}; @@ -16,8 +16,8 @@ pub async fn initialize_shared_session_runtime_with_root( initialize_path_root(root).map_err(anyhow::Error::msg)?; ensure_shared_session_runtime_dirs()?; - if require_shared_thread_runtime_store().is_err() { - initialize_default_shared_sqlite_thread_runtime_store(); + if require_session_runtime_store().is_err() { + initialize_default_sqlite_session_runtime_store(); } if let Some(session_store) = session_store { @@ -28,14 +28,21 @@ pub async fn initialize_shared_session_runtime_with_root( } pub fn require_shared_session_runtime_store() -> Result> { - require_shared_thread_runtime_store() + require_session_runtime_store() } pub async fn load_shared_session_runtime_snapshot( session_id: &str, ) -> Result { let store = require_shared_session_runtime_store()?; - load_session_runtime_snapshot(store.as_ref(), session_id).await + load_managed_session_runtime_snapshot(store.as_ref(), session_id).await +} + +pub async fn load_managed_session_runtime_snapshot( + store: &(impl ThreadRuntimeStore + ?Sized), + session_id: &str, +) -> Result { + load_runtime_snapshot_from_store(store, session_id).await } fn ensure_shared_session_runtime_dirs() -> Result<()> { @@ -56,7 +63,7 @@ async fn ensure_global_session_store(store: Arc) -> Result<()> return Ok(()); } - if let Err(error) = set_global_session_store(store).await { + if let Err(error) = install_global_session_store(store).await { if is_global_session_store_set() { return Ok(()); } diff --git a/src-tauri/crates/aster-rust/crates/aster/src/session/export.rs b/src-tauri/crates/aster-rust/crates/aster/src/session/export.rs index cae66de93..c3176fce1 100644 --- a/src-tauri/crates/aster-rust/crates/aster/src/session/export.rs +++ b/src-tauri/crates/aster-rust/crates/aster/src/session/export.rs @@ -3,7 +3,7 @@ //! Provides multi-format export functionality for sessions. use crate::conversation::message::MessageContent; -use crate::session::{Session, SessionManager}; +use crate::session::{query_session, Session}; use anyhow::Result; /// Export format options @@ -56,7 +56,7 @@ impl ExportOptions { /// Export a session to the specified format pub async fn export_session(session_id: &str, options: ExportOptions) -> Result { - let session = SessionManager::get_session(session_id, options.include_messages).await?; + let session = query_session(session_id, options.include_messages).await?; match options.format { ExportFormat::Json => export_to_json(&session, &options), diff --git a/src-tauri/crates/aster-rust/crates/aster/src/session/fork.rs b/src-tauri/crates/aster-rust/crates/aster/src/session/fork.rs index 71b109750..42dbea74a 100644 --- a/src-tauri/crates/aster-rust/crates/aster/src/session/fork.rs +++ b/src-tauri/crates/aster-rust/crates/aster/src/session/fork.rs @@ -2,7 +2,10 @@ //! //! Provides functionality for forking sessions and managing session branches, -use crate::session::{Session, SessionManager}; +use crate::session::{ + apply_session_update, create_managed_session, query_session, replace_session_conversation, + Session, +}; use anyhow::Result; use serde::{Deserialize, Serialize}; @@ -117,7 +120,7 @@ impl ForkMetadata { /// Fork a session to create a new branch pub async fn fork_session(source_session_id: &str, options: ForkOptions) -> Result { - let source_session = SessionManager::get_session(source_session_id, true).await?; + let source_session = query_session(source_session_id, true).await?; let from_index = options.from_message_index.unwrap_or(0); let new_name = options @@ -125,7 +128,7 @@ pub async fn fork_session(source_session_id: &str, options: ForkOptions) -> Resu .unwrap_or_else(|| format!("{} (fork)", source_session.name)); // Create new session - let new_session = SessionManager::create_session( + let new_session = create_managed_session( source_session.working_dir.clone(), new_name.clone(), source_session.session_type, @@ -152,7 +155,7 @@ pub async fn fork_session(source_session_id: &str, options: ForkOptions) -> Resu if !messages_to_copy.is_empty() { let new_conversation = crate::conversation::Conversation::new_unvalidated(messages_to_copy); - SessionManager::replace_conversation(&new_session.id, &new_conversation).await?; + replace_session_conversation(&new_session.id, &new_conversation).await?; } } @@ -167,10 +170,10 @@ pub async fn fork_session(source_session_id: &str, options: ForkOptions) -> Resu let mut new_extension_data = new_session.extension_data.clone(); fork_metadata.to_extension_data(&mut new_extension_data)?; - SessionManager::update_session(&new_session.id) - .extension_data(new_extension_data) - .apply() - .await?; + apply_session_update(&new_session.id, |update| { + update.extension_data(new_extension_data) + }) + .await?; // Update source session's branches list let mut source_fork_metadata = ForkMetadata::from_session(&source_session).unwrap_or_default(); @@ -179,12 +182,12 @@ pub async fn fork_session(source_session_id: &str, options: ForkOptions) -> Resu let mut source_extension_data = source_session.extension_data.clone(); source_fork_metadata.to_extension_data(&mut source_extension_data)?; - SessionManager::update_session(source_session_id) - .extension_data(source_extension_data) - .apply() - .await?; + apply_session_update(source_session_id, |update| { + update.extension_data(source_extension_data) + }) + .await?; - SessionManager::get_session(&new_session.id, true).await + query_session(&new_session.id, true).await } /// Merge one session into another @@ -193,8 +196,8 @@ pub async fn merge_sessions( source_session_id: &str, options: MergeOptions, ) -> Result { - let target_session = SessionManager::get_session(target_session_id, true).await?; - let source_session = SessionManager::get_session(source_session_id, true).await?; + let target_session = query_session(target_session_id, true).await?; + let source_session = query_session(source_session_id, true).await?; let target_messages = target_session .conversation @@ -228,41 +231,7 @@ pub async fn merge_sessions( if !merged_messages.is_empty() { let merged_conversation = crate::conversation::Conversation::new_unvalidated(merged_messages); - SessionManager::replace_conversation(target_session_id, &merged_conversation).await?; - } - - // Update metadata based on strategy - let mut update_builder = SessionManager::update_session(target_session_id); - - match options.keep_metadata { - MetadataStrategy::Source => { - update_builder = update_builder - .total_tokens(source_session.total_tokens) - .input_tokens(source_session.input_tokens) - .output_tokens(source_session.output_tokens); - } - MetadataStrategy::Merge => { - let merged_total = target_session - .total_tokens - .unwrap_or(0) - .saturating_add(source_session.total_tokens.unwrap_or(0)); - let merged_input = target_session - .input_tokens - .unwrap_or(0) - .saturating_add(source_session.input_tokens.unwrap_or(0)); - let merged_output = target_session - .output_tokens - .unwrap_or(0) - .saturating_add(source_session.output_tokens.unwrap_or(0)); - - update_builder = update_builder - .total_tokens(Some(merged_total)) - .input_tokens(Some(merged_input)) - .output_tokens(Some(merged_output)); - } - MetadataStrategy::Target => { - // Keep target metadata, no changes needed - } + replace_session_conversation(target_session_id, &merged_conversation).await?; } // Record merge in fork metadata @@ -274,28 +243,55 @@ pub async fn merge_sessions( let mut extension_data = target_session.extension_data.clone(); fork_metadata.to_extension_data(&mut extension_data)?; - update_builder - .extension_data(extension_data) - .apply() - .await?; + apply_session_update(target_session_id, |update_builder| { + let update_builder = match options.keep_metadata { + MetadataStrategy::Source => update_builder + .total_tokens(source_session.total_tokens) + .input_tokens(source_session.input_tokens) + .output_tokens(source_session.output_tokens), + MetadataStrategy::Merge => { + let merged_total = target_session + .total_tokens + .unwrap_or(0) + .saturating_add(source_session.total_tokens.unwrap_or(0)); + let merged_input = target_session + .input_tokens + .unwrap_or(0) + .saturating_add(source_session.input_tokens.unwrap_or(0)); + let merged_output = target_session + .output_tokens + .unwrap_or(0) + .saturating_add(source_session.output_tokens.unwrap_or(0)); - SessionManager::get_session(target_session_id, true).await + update_builder + .total_tokens(Some(merged_total)) + .input_tokens(Some(merged_input)) + .output_tokens(Some(merged_output)) + } + MetadataStrategy::Target => update_builder, + }; + + update_builder.extension_data(extension_data) + }) + .await?; + + query_session(target_session_id, true).await } /// Get the branch tree for a session pub async fn get_session_branch_tree(session_id: &str) -> Result { - let session = SessionManager::get_session(session_id, false).await?; + let session = query_session(session_id, false).await?; let fork_metadata = ForkMetadata::from_session(&session).unwrap_or_default(); let parent = if let Some(parent_id) = &fork_metadata.parent_id { - SessionManager::get_session(parent_id, false).await.ok() + query_session(parent_id, false).await.ok() } else { None }; let mut branches = Vec::new(); for branch_id in &fork_metadata.branches { - if let Ok(branch) = SessionManager::get_session(branch_id, false).await { + if let Ok(branch) = query_session(branch_id, false).await { branches.push(branch); } } diff --git a/src-tauri/crates/aster-rust/crates/aster/src/session/mod.rs b/src-tauri/crates/aster-rust/crates/aster/src/session/mod.rs index 165249ed1..a0ccb3a10 100644 --- a/src-tauri/crates/aster-rust/crates/aster/src/session/mod.rs +++ b/src-tauri/crates/aster-rust/crates/aster/src/session/mod.rs @@ -9,8 +9,8 @@ //! //! ### 方式 1: 使用默认 SQLite 存储(向后兼容) //! ```ignore -//! use aster::session::SessionManager; -//! let session = SessionManager::create_session(dir, name, session_type).await?; +//! use aster::session::create_managed_session; +//! let session = create_managed_session(dir, name, session_type).await?; //! ``` //! //! ### 方式 2: 注入自定义存储(推荐) @@ -37,6 +37,7 @@ mod memory_extractor; mod memory_pipeline; mod memory_repository; mod memory_retriever; +mod query; pub mod resume; mod runtime_queue; mod runtime_store; @@ -45,15 +46,16 @@ mod statistics; mod store; mod subagent; mod team; +mod update; mod worktree; // 导出存储抽象 pub use bootstrap::{ - initialize_shared_session_runtime_with_root, load_shared_session_runtime_snapshot, - require_shared_session_runtime_store, + initialize_shared_session_runtime_with_root, load_managed_session_runtime_snapshot, + load_shared_session_runtime_snapshot, require_shared_session_runtime_store, }; pub use store::{ - get_global_session_store, is_global_session_store_set, set_global_session_store, + get_global_session_store, install_global_session_store, is_global_session_store_set, ChatHistoryMatch, NoopSessionStore, SessionStore, TokenStatsUpdate, }; @@ -82,6 +84,12 @@ pub use memory::{ CommitOptions, CommitReport, MemoryCategory, MemoryHealth, MemoryRecord, MemorySearchResult, MemoryStats, }; +pub use query::{ + collect_subagent_cascade_session_ids, query_all_subagent_sessions_with_metadata, + query_child_subagent_sessions, query_session, query_subagent_cascade_session_ids, + query_subagent_parent_session_id, query_subagent_session, + query_subagent_status_scope_session_ids, +}; pub use resume::{ build_resume_message, delete_summary, has_summary, list_summaries, load_summary, load_summary_data, save_summary, SummaryCacheData, @@ -91,16 +99,18 @@ pub use runtime_queue::{ SessionRuntimeQueueService, }; pub use runtime_store::{ - delete_shared_thread_runtime_session, initialize_default_shared_sqlite_thread_runtime_store, - initialize_shared_sqlite_thread_runtime_store, initialize_shared_thread_runtime_store, - load_session_runtime_snapshot, require_shared_thread_runtime_store, InMemoryThreadRuntimeStore, + delete_session_runtime_state, initialize_default_sqlite_session_runtime_store, + initialize_session_runtime_store, initialize_sqlite_session_runtime_store, + load_runtime_snapshot_from_store, require_session_runtime_store, InMemoryThreadRuntimeStore, ItemRuntime, ItemRuntimePayload, ItemStatus, NoopThreadRuntimeStore, QueuedTurnRuntime, SessionExecutionGate, SessionRuntimeSnapshot, SqliteThreadRuntimeStore, ThreadRuntime, ThreadRuntimeSnapshot, ThreadRuntimeStore, ThreadStatus, TurnContextOverride, TurnOutputSchemaRuntime, TurnOutputSchemaSource, TurnOutputSchemaStrategy, TurnRuntime, TurnStatus, RUNTIME_DB_NAME, }; -pub use session_manager::{Session, SessionInsights, SessionManager, SessionType}; +pub use session_manager::{ + Session, SessionInsights, SessionManager, SessionType, SessionUpdateBuilder, +}; pub use statistics::{ calculate_statistics, generate_report, get_all_statistics, SessionStatistics, SessionSummary, }; @@ -113,4 +123,8 @@ pub use team::{ resolve_team_context, resolve_team_task_list_id, save_team_membership, save_team_state, ResolvedTeamContext, TeamMember, TeamMembershipState, TeamSessionState, TEAM_LEAD_NAME, }; +pub use update::{ + apply_session_update, create_managed_session, create_subagent_session, delete_managed_session, + persist_session_extension_data, replace_session_conversation, +}; pub use worktree::WorktreeSessionState; diff --git a/src-tauri/crates/aster-rust/crates/aster/src/session/query.rs b/src-tauri/crates/aster-rust/crates/aster/src/session/query.rs new file mode 100644 index 000000000..be7f1bcbd --- /dev/null +++ b/src-tauri/crates/aster-rust/crates/aster/src/session/query.rs @@ -0,0 +1,110 @@ +use crate::session::subagent::{ + list_subagent_child_sessions, list_subagent_sessions_with_metadata, + resolve_subagent_session_metadata, +}; +use crate::session::{Session, SessionManager, SessionType}; +use anyhow::{anyhow, Result}; +use std::collections::{HashMap, HashSet, VecDeque}; + +fn normalize_optional_text(value: Option) -> Option { + let trimmed = value?.trim().to_string(); + if trimmed.is_empty() { + None + } else { + Some(trimmed) + } +} + +fn ensure_subagent_session(session: &Session) -> Result<()> { + if session.session_type != SessionType::SubAgent { + return Err(anyhow!( + "会话不是 subagent session: session_id={}, session_type={}", + session.id, + session.session_type + )); + } + Ok(()) +} + +pub async fn query_session(session_id: &str, include_messages: bool) -> Result { + SessionManager::get_session(session_id, include_messages).await +} + +pub async fn query_child_subagent_sessions(parent_session_id: &str) -> Result> { + list_subagent_child_sessions(parent_session_id).await +} + +pub async fn query_all_subagent_sessions_with_metadata() -> Result> { + list_subagent_sessions_with_metadata().await +} + +pub async fn query_subagent_session(session_id: &str) -> Result { + let session = query_session(session_id, false).await?; + ensure_subagent_session(&session)?; + Ok(session) +} + +pub fn query_subagent_parent_session_id(session: &Session) -> Option { + let metadata = resolve_subagent_session_metadata(&session.extension_data)?; + normalize_optional_text(Some(metadata.parent_session_id)) +} + +pub async fn query_subagent_status_scope_session_ids(session_id: &str) -> Vec { + let mut scope_ids = Vec::new(); + let mut seen = HashSet::new(); + let mut current_session_id = session_id.to_string(); + + while seen.insert(current_session_id.clone()) { + scope_ids.push(current_session_id.clone()); + + let session = match query_session(¤t_session_id, false).await { + Ok(session) => session, + Err(error) => { + tracing::warn!( + "[SessionQuery] 解析 team 事件 scope 失败: session_id={}, error={}", + current_session_id, + error + ); + break; + } + }; + let Some(parent_session_id) = query_subagent_parent_session_id(&session) else { + break; + }; + current_session_id = parent_session_id; + } + + scope_ids +} + +pub async fn query_subagent_cascade_session_ids(session_id: &str) -> Result> { + let _ = query_subagent_session(session_id).await?; + let sessions = query_all_subagent_sessions_with_metadata().await?; + Ok(collect_subagent_cascade_session_ids(session_id, &sessions)) +} + +pub fn collect_subagent_cascade_session_ids(session_id: &str, sessions: &[Session]) -> Vec { + let mut children_by_parent: HashMap> = HashMap::new(); + for session in sessions { + let Some(parent_session_id) = query_subagent_parent_session_id(session) else { + continue; + }; + children_by_parent + .entry(parent_session_id) + .or_default() + .push(session.id.clone()); + } + + let mut ordered = vec![session_id.to_string()]; + let mut queue = VecDeque::from([session_id.to_string()]); + while let Some(parent_id) = queue.pop_front() { + let Some(children) = children_by_parent.get(&parent_id) else { + continue; + }; + for child_id in children { + ordered.push(child_id.clone()); + queue.push_back(child_id.clone()); + } + } + ordered +} diff --git a/src-tauri/crates/aster-rust/crates/aster/src/session/runtime_queue.rs b/src-tauri/crates/aster-rust/crates/aster/src/session/runtime_queue.rs index 9fca9b8d9..7300894a0 100644 --- a/src-tauri/crates/aster-rust/crates/aster/src/session/runtime_queue.rs +++ b/src-tauri/crates/aster-rust/crates/aster/src/session/runtime_queue.rs @@ -2,14 +2,13 @@ use anyhow::{anyhow, Result}; use std::sync::{Arc, OnceLock}; use super::runtime_store::{ - require_shared_thread_runtime_store, QueuedTurnRuntime, SessionExecutionGate, - ThreadRuntimeStore, + require_session_runtime_store, QueuedTurnRuntime, SessionExecutionGate, ThreadRuntimeStore, }; static SHARED_SESSION_RUNTIME_QUEUE_SERVICE: OnceLock> = OnceLock::new(); const SHARED_SESSION_RUNTIME_QUEUE_SERVICE_INIT_ERROR: &str = - "shared session runtime queue service is not initialized; call initialize_shared_thread_runtime_store first"; + "shared session runtime queue service is not initialized; call initialize_session_runtime_store first"; #[derive(Debug, Clone, PartialEq)] pub enum RuntimeQueueSubmitResult { @@ -128,7 +127,7 @@ impl SessionRuntimeQueueService { } } -pub(crate) fn initialize_shared_session_runtime_queue_service( +pub(crate) fn initialize_session_runtime_queue_service( store: Arc, ) -> Arc { let _ = @@ -140,7 +139,7 @@ pub(crate) fn initialize_shared_session_runtime_queue_service( } pub fn require_shared_session_runtime_queue_service() -> Result> { - require_shared_thread_runtime_store()?; + require_session_runtime_store()?; SHARED_SESSION_RUNTIME_QUEUE_SERVICE .get() .cloned() @@ -154,7 +153,7 @@ mod tests { SessionRuntimeQueueService, }; use crate::session::{ - initialize_shared_thread_runtime_store, InMemoryThreadRuntimeStore, QueuedTurnRuntime, + initialize_session_runtime_store, InMemoryThreadRuntimeStore, QueuedTurnRuntime, ThreadRuntimeStore, }; use serde_json::json; @@ -176,7 +175,7 @@ mod tests { #[test] fn require_shared_session_runtime_queue_service_uses_initialized_store() { - initialize_shared_thread_runtime_store(Arc::new(InMemoryThreadRuntimeStore::default())); + initialize_session_runtime_store(Arc::new(InMemoryThreadRuntimeStore::default())); assert!(require_shared_session_runtime_queue_service().is_ok()); } diff --git a/src-tauri/crates/aster-rust/crates/aster/src/session/runtime_store.rs b/src-tauri/crates/aster-rust/crates/aster/src/session/runtime_store.rs index cdb3a97b0..4046797fd 100644 --- a/src-tauri/crates/aster-rust/crates/aster/src/session/runtime_store.rs +++ b/src-tauri/crates/aster-rust/crates/aster/src/session/runtime_store.rs @@ -11,7 +11,7 @@ use std::time::Duration; use tokio::sync::{OnceCell, RwLock}; use utoipa::ToSchema; -use super::runtime_queue::initialize_shared_session_runtime_queue_service; +use super::runtime_queue::initialize_session_runtime_queue_service; use crate::config::paths::Paths; use crate::session::session_manager::SESSIONS_FOLDER; use sqlx::sqlite::{SqliteConnectOptions, SqliteJournalMode, SqliteRow}; @@ -20,7 +20,7 @@ use sqlx::{Pool, Row, Sqlite}; pub const RUNTIME_DB_NAME: &str = "runtime.db"; static SHARED_THREAD_RUNTIME_STORE: OnceLock> = OnceLock::new(); const SHARED_THREAD_RUNTIME_STORE_INIT_ERROR: &str = - "shared thread runtime store is not initialized; call initialize_shared_thread_runtime_store first"; + "shared thread runtime store is not initialized; call initialize_session_runtime_store first"; #[derive(Debug, Clone, Default, PartialEq, Serialize, Deserialize, ToSchema)] #[serde(rename_all = "camelCase")] @@ -381,7 +381,7 @@ fn default_runtime_db_path() -> PathBuf { .join(RUNTIME_DB_NAME) } -pub fn initialize_shared_thread_runtime_store( +pub fn initialize_session_runtime_store( store: Arc, ) -> Arc { let _ = SHARED_THREAD_RUNTIME_STORE.set(store); @@ -389,28 +389,26 @@ pub fn initialize_shared_thread_runtime_store( .get() .expect("shared thread runtime store should be initialized") .clone(); - initialize_shared_session_runtime_queue_service(store.clone()); + initialize_session_runtime_queue_service(store.clone()); store } -pub fn initialize_shared_sqlite_thread_runtime_store( - db_path: PathBuf, -) -> Arc { - initialize_shared_thread_runtime_store(Arc::new(SqliteThreadRuntimeStore::new(db_path))) +pub fn initialize_sqlite_session_runtime_store(db_path: PathBuf) -> Arc { + initialize_session_runtime_store(Arc::new(SqliteThreadRuntimeStore::new(db_path))) } -pub fn initialize_default_shared_sqlite_thread_runtime_store() -> Arc { - initialize_shared_sqlite_thread_runtime_store(default_runtime_db_path()) +pub fn initialize_default_sqlite_session_runtime_store() -> Arc { + initialize_sqlite_session_runtime_store(default_runtime_db_path()) } -pub fn require_shared_thread_runtime_store() -> Result> { +pub fn require_session_runtime_store() -> Result> { SHARED_THREAD_RUNTIME_STORE .get() .cloned() .ok_or_else(|| anyhow!(SHARED_THREAD_RUNTIME_STORE_INIT_ERROR)) } -pub async fn load_session_runtime_snapshot( +pub async fn load_runtime_snapshot_from_store( store: &(impl ThreadRuntimeStore + ?Sized), session_id: &str, ) -> Result { @@ -433,8 +431,8 @@ pub async fn load_session_runtime_snapshot( }) } -pub async fn delete_shared_thread_runtime_session(session_id: &str) -> Result<()> { - require_shared_thread_runtime_store()? +pub async fn delete_session_runtime_state(session_id: &str) -> Result<()> { + require_session_runtime_store()? .delete_session(session_id) .await } @@ -1476,15 +1474,15 @@ mod tests { use tempfile::tempdir; #[test] - fn require_shared_thread_runtime_store_returns_initialized_store() { - initialize_shared_thread_runtime_store(Arc::new(InMemoryThreadRuntimeStore::default())); - assert!(require_shared_thread_runtime_store().is_ok()); + fn require_session_runtime_store_returns_initialized_store() { + initialize_session_runtime_store(Arc::new(InMemoryThreadRuntimeStore::default())); + assert!(require_session_runtime_store().is_ok()); } #[tokio::test] - async fn delete_shared_thread_runtime_session_uses_initialized_store() { - initialize_shared_thread_runtime_store(Arc::new(InMemoryThreadRuntimeStore::default())); - let store = require_shared_thread_runtime_store().unwrap(); + async fn delete_session_runtime_state_uses_initialized_store() { + initialize_session_runtime_store(Arc::new(InMemoryThreadRuntimeStore::default())); + let store = require_session_runtime_store().unwrap(); store .upsert_thread(ThreadRuntime::new( "thread-delete", @@ -1494,7 +1492,7 @@ mod tests { .await .unwrap(); - delete_shared_thread_runtime_session("session-delete") + delete_session_runtime_state("session-delete") .await .unwrap(); @@ -1839,7 +1837,7 @@ mod tests { } #[tokio::test] - async fn load_session_runtime_snapshot_collects_all_thread_runtime_data() { + async fn load_runtime_snapshot_from_store_collects_all_thread_runtime_data() { let store = InMemoryThreadRuntimeStore::default(); let thread = ThreadRuntime::new("thread-1", "session-1", PathBuf::from("/tmp")); let turn = TurnRuntime::new( @@ -1873,7 +1871,7 @@ mod tests { store.create_turn(turn.clone()).await.unwrap(); store.create_item(item.clone()).await.unwrap(); - let snapshot = load_session_runtime_snapshot(&store, "session-1") + let snapshot = load_runtime_snapshot_from_store(&store, "session-1") .await .unwrap(); diff --git a/src-tauri/crates/aster-rust/crates/aster/src/session/session_manager.rs b/src-tauri/crates/aster-rust/crates/aster/src/session/session_manager.rs index 8661ac5e3..6fc224a67 100644 --- a/src-tauri/crates/aster-rust/crates/aster/src/session/session_manager.rs +++ b/src-tauri/crates/aster-rust/crates/aster/src/session/session_manager.rs @@ -1725,7 +1725,7 @@ impl SessionStorage { tx.commit().await?; - if let Err(error) = super::delete_shared_thread_runtime_session(session_id).await { + if let Err(error) = super::delete_session_runtime_state(session_id).await { warn!( "Failed to delete runtime session residue after deleting session {}: {}", session_id, error diff --git a/src-tauri/crates/aster-rust/crates/aster/src/session/store.rs b/src-tauri/crates/aster-rust/crates/aster/src/session/store.rs index 9d090e7eb..08d75fb44 100644 --- a/src-tauri/crates/aster-rust/crates/aster/src/session/store.rs +++ b/src-tauri/crates/aster-rust/crates/aster/src/session/store.rs @@ -361,7 +361,7 @@ static GLOBAL_SESSION_STORE: tokio::sync::OnceCell> = /// /// 必须在使用 `SessionManager` 静态方法之前调用。 /// 通常在应用启动时调用一次。 -pub async fn set_global_session_store(store: Arc) -> Result<()> { +pub async fn install_global_session_store(store: Arc) -> Result<()> { GLOBAL_SESSION_STORE .set(store) .map_err(|_| anyhow::anyhow!("Global session store already set")) diff --git a/src-tauri/crates/aster-rust/crates/aster/src/session/team.rs b/src-tauri/crates/aster-rust/crates/aster/src/session/team.rs index d7f4e431f..583b226f0 100644 --- a/src-tauri/crates/aster-rust/crates/aster/src/session/team.rs +++ b/src-tauri/crates/aster-rust/crates/aster/src/session/team.rs @@ -2,8 +2,10 @@ use anyhow::Result; use chrono::Utc; use serde::{Deserialize, Serialize}; +#[cfg(test)] +use crate::session::create_managed_session; use crate::session::extension_data::{ExtensionData, ExtensionState}; -use crate::session::{Session, SessionManager}; +use crate::session::{persist_session_extension_data, query_session, Session}; pub const TEAM_LEAD_NAME: &str = "team-lead"; @@ -156,7 +158,7 @@ pub async fn resolve_team_context(session_id: &str) -> Result session, Err(_) => return Ok(None), }; @@ -173,7 +175,7 @@ pub async fn resolve_team_context(session_id: &str) -> Result session, Err(_) => return Ok(None), }; @@ -194,7 +196,7 @@ pub async fn save_team_state( lead_session_id: &str, team_state: Option, ) -> Result<()> { - let mut session = SessionManager::get_session(lead_session_id, false).await?; + let mut session = query_session(lead_session_id, false).await?; match team_state { Some(team_state) => { team_state.to_extension_data(&mut session.extension_data)?; @@ -207,17 +209,14 @@ pub async fn save_team_state( } } - SessionManager::update_session(lead_session_id) - .extension_data(session.extension_data) - .apply() - .await + persist_session_extension_data(lead_session_id, session.extension_data).await } pub async fn save_team_membership( session_id: &str, membership: Option, ) -> Result<()> { - let mut session = SessionManager::get_session(session_id, false).await?; + let mut session = query_session(session_id, false).await?; match membership { Some(membership) => { membership.to_extension_data(&mut session.extension_data)?; @@ -230,10 +229,7 @@ pub async fn save_team_membership( } } - SessionManager::update_session(session_id) - .extension_data(session.extension_data) - .apply() - .await + persist_session_extension_data(session_id, session.extension_data).await } #[cfg(test)] @@ -264,13 +260,13 @@ mod tests { #[tokio::test] async fn resolve_team_context_reads_membership_from_child_session() -> anyhow::Result<()> { let temp_dir = tempdir()?; - let lead = SessionManager::create_session( + let lead = create_managed_session( temp_dir.path().to_path_buf(), format!("team-lead-{}", Uuid::new_v4()), SessionType::Hidden, ) .await?; - let child = SessionManager::create_session( + let child = create_managed_session( temp_dir.path().to_path_buf(), format!("team-child-{}", Uuid::new_v4()), SessionType::SubAgent, diff --git a/src-tauri/crates/aster-rust/crates/aster/src/session/update.rs b/src-tauri/crates/aster-rust/crates/aster/src/session/update.rs new file mode 100644 index 000000000..f0e5ffbf1 --- /dev/null +++ b/src-tauri/crates/aster-rust/crates/aster/src/session/update.rs @@ -0,0 +1,47 @@ +use crate::conversation::Conversation; +use crate::session::extension_data::ExtensionData; +use crate::session::{Session, SessionManager, SessionType, SessionUpdateBuilder}; +use anyhow::Result; +use std::path::PathBuf; + +pub async fn apply_session_update( + session_id: &str, + configure: impl FnOnce(SessionUpdateBuilder) -> SessionUpdateBuilder, +) -> Result<()> { + configure(SessionManager::update_session(session_id)) + .apply() + .await +} + +pub async fn delete_managed_session(session_id: &str) -> Result<()> { + SessionManager::delete_session(session_id).await +} + +pub async fn create_managed_session( + working_dir: PathBuf, + session_name: String, + session_type: SessionType, +) -> Result { + SessionManager::create_session(working_dir, session_name, session_type).await +} + +pub async fn create_subagent_session( + working_dir: PathBuf, + session_name: String, +) -> Result { + create_managed_session(working_dir, session_name, SessionType::SubAgent).await +} + +pub async fn replace_session_conversation( + session_id: &str, + conversation: &Conversation, +) -> Result<()> { + SessionManager::replace_conversation(session_id, conversation).await +} + +pub async fn persist_session_extension_data( + session_id: &str, + extension_data: ExtensionData, +) -> Result<()> { + apply_session_update(session_id, |update| update.extension_data(extension_data)).await +} diff --git a/src-tauri/crates/aster-rust/crates/aster/src/tools/plan_mode_tool.rs b/src-tauri/crates/aster-rust/crates/aster/src/tools/plan_mode_tool.rs index 600cadac0..535d8982e 100644 --- a/src-tauri/crates/aster-rust/crates/aster/src/tools/plan_mode_tool.rs +++ b/src-tauri/crates/aster-rust/crates/aster/src/tools/plan_mode_tool.rs @@ -11,7 +11,7 @@ // - 计划持久化存储 // - 用户权限确认机制 -use crate::session::{resolve_team_context, SessionManager, SessionType}; +use crate::session::{query_session, resolve_team_context, SessionType}; use crate::tools::{ base::{PermissionCheckResult, Tool}, context::{ToolContext, ToolOptions, ToolResult}, @@ -153,7 +153,7 @@ async fn session_is_subagent_context(context: &ToolContext) -> bool { return false; } - SessionManager::get_session(session_id, false) + query_session(session_id, false) .await .map(|session| matches!(session.session_type, SessionType::SubAgent)) .unwrap_or(false) @@ -1062,8 +1062,8 @@ Before using this tool, ensure your plan is clear and unambiguous. If there are mod tests { use super::*; use crate::session::{ - save_team_membership, save_team_state, SessionManager, SessionType, TeamMember, - TeamMembershipState, TeamSessionState, + delete_managed_session, save_team_membership, save_team_state, SessionManager, SessionType, + TeamMember, TeamMembershipState, TeamSessionState, }; use crate::tools::{context::ToolContext, PermissionBehavior, SendInputResponse}; use serde_json::{json, Value}; @@ -1259,7 +1259,7 @@ mod tests { Some("EnterPlanMode tool cannot be used in agent contexts".to_string()) ); - let _ = SessionManager::delete_session(&context.session_id).await; + let _ = delete_managed_session(&context.session_id).await; Ok(()) } @@ -1309,7 +1309,7 @@ mod tests { assert!(matches!(result.behavior, PermissionBehavior::Allow)); GLOBAL_STATE.set_plan_mode(false, None, None); - let _ = SessionManager::delete_session(&context.session_id).await; + let _ = delete_managed_session(&context.session_id).await; Ok(()) } @@ -1356,7 +1356,7 @@ mod tests { .to_string() .contains("EnterPlanMode tool cannot be used in agent contexts")); - let _ = SessionManager::delete_session(&context.session_id).await; + let _ = delete_managed_session(&context.session_id).await; Ok(()) } @@ -1418,7 +1418,7 @@ mod tests { serde_json::from_str(result.output.as_ref().unwrap()).expect("valid exit plan output"); assert_eq!(output["isAgent"], json!(true)); - let _ = SessionManager::delete_session(&context.session_id).await; + let _ = delete_managed_session(&context.session_id).await; Ok(()) } @@ -1497,8 +1497,8 @@ mod tests { ); assert_eq!(result.metadata["pending_request_id"], json!(request_id)); - let _ = SessionManager::delete_session(&context.session_id).await; - let _ = SessionManager::delete_session(&lead_session_id).await; + let _ = delete_managed_session(&context.session_id).await; + let _ = delete_managed_session(&lead_session_id).await; Ok(()) } diff --git a/src-tauri/crates/aster-rust/crates/aster/src/tools/task_list_tools.rs b/src-tauri/crates/aster-rust/crates/aster/src/tools/task_list_tools.rs index 5e74f9a91..74bc551b9 100644 --- a/src-tauri/crates/aster-rust/crates/aster/src/tools/task_list_tools.rs +++ b/src-tauri/crates/aster-rust/crates/aster/src/tools/task_list_tools.rs @@ -22,9 +22,11 @@ use crate::session::extension_data::{ persist_task_board_state, resolve_task_board_state, TaskBoardItem, TaskBoardItemStatus, TaskBoardState, }; +#[cfg(test)] +use crate::session::SessionManager; use crate::session::{ - resolve_team_context, resolve_team_task_list_id, SessionManager, SessionType, - TeamMembershipState, TeamSessionState, + apply_session_update, query_session, resolve_team_context, resolve_team_task_list_id, + SessionType, TeamMembershipState, TeamSessionState, }; use crate::user_message_manager::UserMessageManager; @@ -151,7 +153,7 @@ async fn resolve_task_board_binding(context: &ToolContext) -> ResolvedTaskBoardB }; } - if let Ok(session) = SessionManager::get_session(&context.session_id, false).await { + if let Ok(session) = query_session(&context.session_id, false).await { if let Some(task_list_id) = resolve_team_task_list_id(&session.extension_data) { return ResolvedTaskBoardBinding { task_list_id, @@ -319,7 +321,7 @@ async fn load_task_board_state( binding: &ResolvedTaskBoardBinding, ) -> TaskBoardState { if let Some(owner_session_id) = binding.owner_session_id.as_deref() { - if let Ok(session) = SessionManager::get_session(owner_session_id, false).await { + if let Ok(session) = query_session(owner_session_id, false).await { if let Some(state) = resolve_task_board_state(&session.extension_data) { storage.set(&binding.task_list_id, state.clone()); return state; @@ -341,12 +343,12 @@ async fn persist_task_board( return; }; - if let Ok(mut session) = SessionManager::get_session(owner_session_id, false).await { + if let Ok(mut session) = query_session(owner_session_id, false).await { if persist_task_board_state(&mut session.extension_data, state).is_ok() { - let _ = SessionManager::update_session(owner_session_id) - .extension_data(session.extension_data) - .apply() - .await; + let _ = apply_session_update(owner_session_id, |update| { + update.extension_data(session.extension_data) + }) + .await; } } } @@ -398,9 +400,7 @@ async fn resolve_assignment_target_session_id( owner_name: &str, ) -> Option { let member = team_state.find_member_by_name(owner_name)?.clone(); - let session = SessionManager::get_session(&member.agent_id, false) - .await - .ok()?; + let session = query_session(&member.agent_id, false).await.ok()?; if member.is_lead { let lead_state = TeamSessionState::from_session(&session)?; @@ -1135,11 +1135,10 @@ impl Tool for TaskUpdateTool { "to": task_status_label(&task.status) }) }); - let should_emit_verification_nudge = - SessionManager::get_session(&context.session_id, false) - .await - .map(|session| session.session_type != SessionType::SubAgent) - .unwrap_or(true); + let should_emit_verification_nudge = query_session(&context.session_id, false) + .await + .map(|session| session.session_type != SessionType::SubAgent) + .unwrap_or(true); let verification_nudge_needed = should_emit_verification_nudge && previous_status != TaskBoardItemStatus::Completed && task.status == TaskBoardItemStatus::Completed diff --git a/src-tauri/crates/aster-rust/crates/aster/src/tools/team_tools.rs b/src-tauri/crates/aster-rust/crates/aster/src/tools/team_tools.rs index d420a2cdd..65167549b 100644 --- a/src-tauri/crates/aster-rust/crates/aster/src/tools/team_tools.rs +++ b/src-tauri/crates/aster-rust/crates/aster/src/tools/team_tools.rs @@ -1,7 +1,8 @@ use crate::session::{ - require_shared_session_runtime_queue_service, resolve_team_context, save_team_membership, - save_team_state, ExtensionState, SessionManager, SessionRuntimeQueueService, SessionType, - TeamMember, TeamMembershipState, TeamSessionState, TEAM_LEAD_NAME, + apply_session_update, query_session, require_shared_session_runtime_queue_service, + resolve_team_context, save_team_membership, save_team_state, ExtensionState, SessionManager, + SessionRuntimeQueueService, SessionType, TeamMember, TeamMembershipState, TeamSessionState, + TEAM_LEAD_NAME, }; use crate::tools::{ base::Tool, @@ -216,7 +217,7 @@ impl Tool for TeamCreateTool { .map_err(|error| ToolError::invalid_params(format!("TeamCreate 参数无效: {error}")))?; let session_id = require_session_id(context)?; let team_name = normalize_required_text(&input.team_name, "team_name")?; - let mut session = SessionManager::get_session(&session_id, false) + let mut session = query_session(&session_id, false) .await .map_err(|error| ToolError::execution_failed(format!("读取 session 失败: {error}")))?; @@ -240,11 +241,11 @@ impl Tool for TeamCreateTool { team_state .to_extension_data(&mut session.extension_data) .map_err(|error| ToolError::execution_failed(format!("保存 team 状态失败: {error}")))?; - SessionManager::update_session(&session.id) - .extension_data(session.extension_data) - .apply() - .await - .map_err(|error| ToolError::execution_failed(format!("更新 session 失败: {error}")))?; + apply_session_update(&session.id, |update| { + update.extension_data(session.extension_data) + }) + .await + .map_err(|error| ToolError::execution_failed(format!("更新 session 失败: {error}")))?; let output = TeamCreateOutput { team_name: team_name.clone(), @@ -532,7 +533,7 @@ async fn resolve_team_member_state( team_state: &TeamSessionState, runtime_queue_service: Option<&SessionRuntimeQueueService>, ) -> Result, ToolError> { - let session = match SessionManager::get_session(&member.agent_id, false).await { + let session = match query_session(&member.agent_id, false).await { Ok(session) => session, Err(_) => return Ok(None), }; @@ -594,7 +595,7 @@ async fn resolve_team_member_state( mod tests { use super::*; use crate::session::{ - initialize_shared_thread_runtime_store, require_shared_session_runtime_queue_service, + initialize_session_runtime_store, require_shared_session_runtime_queue_service, save_team_membership, InMemoryThreadRuntimeStore, QueuedTurnRuntime, SessionType, TeamMember, TEAM_LEAD_NAME, }; @@ -653,7 +654,7 @@ mod tests { "/teams/{}/config.json", sanitize_team_name(&team_name) ))); - let updated = SessionManager::get_session(&session.id, false).await?; + let updated = query_session(&session.id, false).await?; let team_state = TeamSessionState::from_extension_data(&updated.extension_data) .expect("team state should exist"); assert_eq!(team_state.team_name, team_name); @@ -725,7 +726,7 @@ mod tests { ) .await?; - let updated = SessionManager::get_session(&session.id, false).await?; + let updated = query_session(&session.id, false).await?; let team_state = TeamSessionState::from_extension_data(&updated.extension_data) .expect("team state should exist"); assert_eq!( @@ -738,7 +739,7 @@ mod tests { #[tokio::test] async fn team_delete_refuses_when_members_remain() -> anyhow::Result<()> { let temp_dir = tempdir()?; - initialize_shared_thread_runtime_store(Arc::new(InMemoryThreadRuntimeStore::default())); + initialize_session_runtime_store(Arc::new(InMemoryThreadRuntimeStore::default())); let lead = SessionManager::create_session( temp_dir.path().to_path_buf(), format!("team-delete-{}", Uuid::new_v4()), @@ -801,7 +802,7 @@ mod tests { async fn team_delete_succeeds_when_members_are_idle_and_clears_membership() -> anyhow::Result<()> { let temp_dir = tempdir()?; - initialize_shared_thread_runtime_store(Arc::new(InMemoryThreadRuntimeStore::default())); + initialize_session_runtime_store(Arc::new(InMemoryThreadRuntimeStore::default())); let lead = SessionManager::create_session( temp_dir.path().to_path_buf(), format!("team-delete-idle-{}", Uuid::new_v4()), @@ -850,10 +851,10 @@ mod tests { assert!(result.success); assert_eq!(result.metadata["success"], json!(true)); - let updated_lead = SessionManager::get_session(&lead.id, false).await?; + let updated_lead = query_session(&lead.id, false).await?; assert!(TeamSessionState::from_extension_data(&updated_lead.extension_data).is_none()); - let updated_child = SessionManager::get_session(&child.id, false).await?; + let updated_child = query_session(&child.id, false).await?; assert!(TeamMembershipState::from_extension_data(&updated_child.extension_data).is_none()); Ok(()) } diff --git a/src-tauri/crates/aster-rust/crates/aster/src/tools/worktree_tools.rs b/src-tauri/crates/aster-rust/crates/aster/src/tools/worktree_tools.rs index 505137179..0ca52d224 100644 --- a/src-tauri/crates/aster-rust/crates/aster/src/tools/worktree_tools.rs +++ b/src-tauri/crates/aster-rust/crates/aster/src/tools/worktree_tools.rs @@ -1,4 +1,6 @@ -use crate::session::{ExtensionState, SessionManager, WorktreeSessionState}; +use crate::session::{apply_session_update, query_session, ExtensionState, WorktreeSessionState}; +#[cfg(test)] +use crate::session::{create_managed_session, SessionManager}; use crate::tools::{ base::{PermissionCheckResult, Tool}, context::{ToolContext, ToolResult}, @@ -129,7 +131,7 @@ impl Tool for EnterWorktreeTool { ToolError::invalid_params(format!("EnterWorktree 参数无效: {error}")) })?; let session_id = require_session_id(context)?; - let mut session = SessionManager::get_session(&session_id, false) + let mut session = query_session(&session_id, false) .await .map_err(|error| ToolError::execution_failed(format!("读取 session 失败: {error}")))?; @@ -175,14 +177,15 @@ impl Tool for EnterWorktreeTool { .to_extension_data(&mut session.extension_data) .map_err(|error| ToolError::execution_failed(format!("保存工作树状态失败: {error}")))?; - SessionManager::update_session(&session_id) - .working_dir(worktree_path.clone()) - .extension_data(session.extension_data) - .apply() - .await - .map_err(|error| { - ToolError::execution_failed(format!("更新 session 工作目录失败: {error}")) - })?; + apply_session_update(&session_id, |update| { + update + .working_dir(worktree_path.clone()) + .extension_data(session.extension_data) + }) + .await + .map_err(|error| { + ToolError::execution_failed(format!("更新 session 工作目录失败: {error}")) + })?; let output = EnterWorktreeOutput { worktree_path: worktree_path.display().to_string(), @@ -249,7 +252,7 @@ impl Tool for ExitWorktreeTool { ); }; - match SessionManager::get_session(&session_id, false).await { + match query_session(&session_id, false).await { Ok(session) => { if WorktreeSessionState::from_extension_data(&session.extension_data).is_some() { PermissionCheckResult::ask( @@ -270,7 +273,7 @@ impl Tool for ExitWorktreeTool { ToolError::invalid_params(format!("ExitWorktree 参数无效: {error}")) })?; let session_id = require_session_id(context)?; - let mut session = SessionManager::get_session(&session_id, false) + let mut session = query_session(&session_id, false) .await .map_err(|error| ToolError::execution_failed(format!("读取 session 失败: {error}")))?; @@ -342,14 +345,15 @@ impl Tool for ExitWorktreeTool { match input.action { ExitWorktreeAction::Keep => { - SessionManager::update_session(&session_id) - .working_dir(PathBuf::from(&original_cwd)) - .extension_data(session.extension_data) - .apply() - .await - .map_err(|error| { - ToolError::execution_failed(format!("恢复 session 工作目录失败: {error}")) - })?; + apply_session_update(&session_id, |update| { + update + .working_dir(PathBuf::from(&original_cwd)) + .extension_data(session.extension_data) + }) + .await + .map_err(|error| { + ToolError::execution_failed(format!("恢复 session 工作目录失败: {error}")) + })?; let output = ExitWorktreeOutput { action: ExitWorktreeAction::Keep, @@ -388,14 +392,15 @@ impl Tool for ExitWorktreeTool { ) .await?; - SessionManager::update_session(&session_id) - .working_dir(PathBuf::from(&original_cwd)) - .extension_data(session.extension_data) - .apply() - .await - .map_err(|error| { - ToolError::execution_failed(format!("恢复 session 工作目录失败: {error}")) - })?; + apply_session_update(&session_id, |update| { + update + .working_dir(PathBuf::from(&original_cwd)) + .extension_data(session.extension_data) + }) + .await + .map_err(|error| { + ToolError::execution_failed(format!("恢复 session 工作目录失败: {error}")) + })?; let discard_note = build_discard_note(summary); let output = ExitWorktreeOutput { @@ -762,7 +767,7 @@ mod tests { assert!(result.success); - let updated = SessionManager::get_session(&session.id, false).await?; + let updated = query_session(&session.id, false).await?; let state = WorktreeSessionState::from_extension_data(&updated.extension_data) .expect("worktree state should exist"); @@ -791,7 +796,7 @@ mod tests { .execute(json!({ "name": "keep/demo" }), &context) .await?; - let after_enter = SessionManager::get_session(&session.id, false).await?; + let after_enter = query_session(&session.id, false).await?; let state = WorktreeSessionState::from_extension_data(&after_enter.extension_data) .expect("worktree state should exist"); @@ -805,7 +810,7 @@ mod tests { git_local_branch_exists(Path::new(&state.git_root), "aster/worktree/keep+demo").await? ); - let restored = SessionManager::get_session(&session.id, false).await?; + let restored = query_session(&session.id, false).await?; assert_eq!(restored.working_dir, repo.path()); assert!(WorktreeSessionState::from_extension_data(&restored.extension_data).is_none()); @@ -824,7 +829,7 @@ mod tests { .execute(json!({ "name": "dirty/demo" }), &context) .await?; - let updated = SessionManager::get_session(&session.id, false).await?; + let updated = query_session(&session.id, false).await?; let state = WorktreeSessionState::from_extension_data(&updated.extension_data) .expect("worktree state should exist"); let dirty_file = Path::new(&state.worktree_path).join("dirty.txt"); @@ -838,7 +843,7 @@ mod tests { assert!(error.to_string().contains("discard_changes: true")); assert!(Path::new(&state.worktree_path).exists()); - let after_error = SessionManager::get_session(&session.id, false).await?; + let after_error = query_session(&session.id, false).await?; assert!(WorktreeSessionState::from_extension_data(&after_error.extension_data).is_some()); Ok(()) @@ -856,7 +861,7 @@ mod tests { .execute(json!({ "name": "remove/demo" }), &context) .await?; - let updated = SessionManager::get_session(&session.id, false).await?; + let updated = query_session(&session.id, false).await?; let state = WorktreeSessionState::from_extension_data(&updated.extension_data) .expect("worktree state should exist"); @@ -874,7 +879,7 @@ mod tests { .await? ); - let restored = SessionManager::get_session(&session.id, false).await?; + let restored = query_session(&session.id, false).await?; assert_eq!(restored.working_dir, repo.path()); assert!(WorktreeSessionState::from_extension_data(&restored.extension_data).is_none()); @@ -915,7 +920,7 @@ mod tests { } async fn create_hidden_session(working_dir: &Path) -> anyhow::Result { - SessionManager::create_session( + create_managed_session( working_dir.to_path_buf(), format!("worktree-test-{}", Uuid::new_v4()), SessionType::Hidden, diff --git a/src-tauri/crates/browser-runtime/src/manager.rs b/src-tauri/crates/browser-runtime/src/manager.rs index 685c0c6a6..7980096ea 100644 --- a/src-tauri/crates/browser-runtime/src/manager.rs +++ b/src-tauri/crates/browser-runtime/src/manager.rs @@ -42,6 +42,7 @@ pub struct OpenSessionRequest { pub struct BrowserRuntimeManager { sessions: RwLock>, + open_session_gate: Mutex<()>, } impl Default for BrowserRuntimeManager { @@ -54,6 +55,7 @@ impl BrowserRuntimeManager { pub fn new() -> Self { Self { sessions: RwLock::new(HashMap::new()), + open_session_gate: Mutex::new(()), } } @@ -69,21 +71,47 @@ impl BrowserRuntimeManager { } pub async fn find_session_by_profile_key(&self, profile_key: &str) -> Option { - let sessions = self.sessions.read().await; - for session in sessions.values() { - let state = session.state().await; - if state.profile_key == profile_key && state.connected { - return Some(state); - } + let mut sessions = self + .session_states_by_profile_key(profile_key) + .await + .into_iter() + .filter(|state| state.connected) + .collect::>(); + sessions.sort_by(|left, right| left.created_at.cmp(&right.created_at)); + sessions.pop() + } + + pub async fn close_sessions_by_profile_key(&self, profile_key: &str) -> Vec { + let session_ids = self + .session_states_by_profile_key(profile_key) + .await + .into_iter() + .map(|state| state.session_id) + .collect::>(); + + for session_id in &session_ids { + let _ = self.close_session(session_id).await; } - None + + session_ids } pub async fn open_session( &self, request: OpenSessionRequest, ) -> Result { + let _open_guard = self.open_session_gate.lock().await; if let Some(existing) = self.find_session_by_profile_key(&request.profile_key).await { + let duplicate_session_ids = self + .session_states_by_profile_key(&request.profile_key) + .await + .into_iter() + .filter(|state| state.connected && state.session_id != existing.session_id) + .map(|state| state.session_id) + .collect::>(); + for session_id in duplicate_session_ids { + let _ = self.close_session(&session_id).await; + } if existing.environment_preset_id == request.environment_preset_id { return Ok(existing); } @@ -303,6 +331,24 @@ impl BrowserRuntimeManager { .cloned() .ok_or_else(|| format!("未找到 session_id={session_id}")) } + + async fn session_states_by_profile_key(&self, profile_key: &str) -> Vec { + let session_handles = self + .sessions + .read() + .await + .values() + .cloned() + .collect::>(); + let mut matches = Vec::new(); + for session in session_handles { + let state = session.state().await; + if state.profile_key == profile_key { + matches.push(state); + } + } + matches + } } fn cdp_http_client(timeout_secs: u64) -> Result { @@ -875,9 +921,14 @@ impl CdpSessionHandle { .await; } "Page.loadEventFired" => { - if let Ok(page_info) = self.capture_page_info().await { - self.update_page_info(page_info).await; - } + // 不要在 reader_loop 内直接等待 Runtime.evaluate, + // 否则会把“等待响应”和“接收响应”锁在同一个任务里。 + let session = self.clone(); + tokio::spawn(async move { + if let Ok(page_info) = session.capture_page_info().await { + session.update_page_info(page_info).await; + } + }); } "Page.screencastFrame" => { let data = params @@ -906,13 +957,16 @@ impl CdpSessionHandle { .await; self.promote_to_live_if_needed().await; if let Some(session_id) = params.get("sessionId").and_then(Value::as_u64) { - let _ = self - .send_command( - "Page.screencastFrameAck", - json!({ "sessionId": session_id }), - DEFAULT_CDP_TIMEOUT_MS, - ) - .await; + let session = self.clone(); + tokio::spawn(async move { + let _ = session + .send_command( + "Page.screencastFrameAck", + json!({ "sessionId": session_id }), + DEFAULT_CDP_TIMEOUT_MS, + ) + .await; + }); } } _ => { diff --git a/src-tauri/crates/core/src/app_paths.rs b/src-tauri/crates/core/src/app_paths.rs index ba777e3c7..fdc4d4a86 100644 --- a/src-tauri/crates/core/src/app_paths.rs +++ b/src-tauri/crates/core/src/app_paths.rs @@ -26,9 +26,7 @@ const USER_SIGNAL_TABLES: &[&str] = &[ pub const WORKSPACE_LOCAL_RUNTIME_AGENTS_GITIGNORE_ENTRY: &str = ".lime/AGENTS.local.md"; pub fn preferred_data_dir() -> Result { - let dir = dirs::data_dir() - .ok_or_else(|| "无法获取应用数据目录".to_string())? - .join(APP_DATA_DIR_NAME); + let dir = preferred_data_parent_dir()?.join(APP_DATA_DIR_NAME); fs::create_dir_all(&dir).map_err(|e| format!("无法创建应用数据目录 {}: {e}", dir.display()))?; Ok(dir) } @@ -40,9 +38,7 @@ pub fn legacy_home_dir() -> Result { } fn legacy_app_data_dir() -> Result { - Ok(dirs::data_dir() - .ok_or_else(|| "无法获取应用数据目录".to_string())? - .join(LEGACY_APP_DATA_DIR_NAME)) + Ok(roaming_data_parent_dir()?.join(LEGACY_APP_DATA_DIR_NAME)) } fn compat_home_dir() -> Result { @@ -123,15 +119,12 @@ pub fn resolve_user_memory_path() -> Result { let preferred_root = compat_home_dir()?; let mut legacy_roots = Vec::new(); - for root in [ - preferred_data_dir()?, - legacy_app_data_dir()?, - legacy_home_dir()?, - ] { - if !legacy_roots.iter().any(|existing| existing == &root) { - legacy_roots.push(root); - } - } + #[cfg(target_os = "windows")] + push_unique_root(&mut legacy_roots, legacy_windows_roaming_app_data_dir()?); + + push_unique_root(&mut legacy_roots, preferred_data_dir()?); + push_unique_root(&mut legacy_roots, legacy_app_data_dir()?); + push_unique_root(&mut legacy_roots, legacy_home_dir()?); resolve_user_memory_path_from_source_roots(&preferred_root, &legacy_roots) } @@ -158,10 +151,12 @@ pub fn best_effort_runtime_subdir(subdir: &str) -> PathBuf { resolve_runtime_subdir(subdir).unwrap_or_else(|_| fallback_runtime_subdir(subdir)) } +pub fn best_effort_data_dir() -> PathBuf { + preferred_data_dir().unwrap_or_else(|_| fallback_app_data_dir()) +} + pub fn best_effort_app_data_file(file_name: &str) -> PathBuf { - preferred_data_dir() - .unwrap_or_else(|_| fallback_app_data_dir()) - .join(file_name) + best_effort_data_dir().join(file_name) } pub fn migrate_legacy_install_data() -> Result<(), String> { @@ -198,6 +193,29 @@ pub fn migrate_legacy_install_data() -> Result<(), String> { Ok(()) } +fn preferred_data_parent_dir() -> Result { + #[cfg(target_os = "windows")] + { + return dirs::data_local_dir() + .or_else(dirs::data_dir) + .ok_or_else(|| "无法获取本地应用数据目录".to_string()); + } + + #[cfg(not(target_os = "windows"))] + { + roaming_data_parent_dir() + } +} + +fn roaming_data_parent_dir() -> Result { + dirs::data_dir().ok_or_else(|| "无法获取应用数据目录".to_string()) +} + +#[cfg(target_os = "windows")] +fn legacy_windows_roaming_app_data_dir() -> Result { + Ok(roaming_data_parent_dir()?.join(APP_DATA_DIR_NAME)) +} + fn with_app_roots( resolver: impl FnOnce(&Path, &[PathBuf]) -> Result, ) -> Result { @@ -242,19 +260,22 @@ fn fallback_app_data_dir() -> PathBuf { fn migration_source_roots() -> Result, String> { let mut roots = Vec::new(); - for root in [ - legacy_app_data_dir()?, - legacy_home_dir()?, - compat_home_dir()?, - ] { - if !roots.iter().any(|existing| existing == &root) { - roots.push(root); - } - } + #[cfg(target_os = "windows")] + push_unique_root(&mut roots, legacy_windows_roaming_app_data_dir()?); + + push_unique_root(&mut roots, legacy_app_data_dir()?); + push_unique_root(&mut roots, legacy_home_dir()?); + push_unique_root(&mut roots, compat_home_dir()?); Ok(roots) } +fn push_unique_root(roots: &mut Vec, root: PathBuf) { + if !roots.iter().any(|existing| existing == &root) { + roots.push(root); + } +} + fn resolve_default_project_dir_from_source_roots( preferred_root: &Path, legacy_roots: &[PathBuf], diff --git a/src-tauri/crates/core/src/database/dao/api_key_provider.rs b/src-tauri/crates/core/src/database/dao/api_key_provider.rs index 7d02aa6ed..f104bc66e 100644 --- a/src-tauri/crates/core/src/database/dao/api_key_provider.rs +++ b/src-tauri/crates/core/src/database/dao/api_key_provider.rs @@ -178,6 +178,28 @@ impl ApiProviderType { } } +pub fn infer_managed_runtime_spec( + provider_type: ApiProviderType, + api_host: &str, +) -> ProviderRuntimeSpec { + let effective_provider_type = infer_managed_provider_type(provider_type, api_host); + + if effective_provider_type == ApiProviderType::AnthropicCompatible + && is_known_automatic_anthropic_compatible_host(Some(api_host)) + { + return ProviderRuntimeSpec { + protocol_family: ProviderProtocolFamily::Anthropic, + default_api_host: "https://api.anthropic.com", + auth_header: "Authorization", + auth_prefix: Some("Bearer"), + extra_headers: &ANTHROPIC_EXTRA_HEADERS, + aster_provider_name: "anthropic", + }; + } + + effective_provider_type.runtime_spec() +} + impl std::fmt::Display for ApiProviderPromptCacheMode { fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result { match self { @@ -222,8 +244,9 @@ impl std::fmt::Display for ApiProviderType { #[cfg(test)] mod tests { use super::{ - infer_managed_prompt_cache_mode, ApiKeyProvider, ApiProviderPromptCacheMode, - ApiProviderType, ProviderGroup, ProviderProtocolFamily, + infer_managed_prompt_cache_mode, infer_managed_provider_type, infer_managed_runtime_spec, + ApiKeyProvider, ApiProviderPromptCacheMode, ApiProviderType, ProviderGroup, + ProviderProtocolFamily, }; use chrono::Utc; @@ -292,7 +315,7 @@ mod tests { let provider = ApiKeyProvider { id: "custom-provider".to_string(), name: "Official Anthropic-Compatible".to_string(), - provider_type: ApiProviderType::AnthropicCompatible, + provider_type: ApiProviderType::Openai, api_host: "https://api.minimaxi.com/anthropic".to_string(), is_system: false, group: ProviderGroup::Custom, @@ -312,6 +335,56 @@ mod tests { provider.effective_prompt_cache_mode(), Some(ApiProviderPromptCacheMode::Automatic) ); + assert_eq!( + provider.effective_provider_type(), + ApiProviderType::AnthropicCompatible + ); + } + + #[test] + fn test_known_official_anthropic_compatible_hosts_should_normalize_provider_type() { + for provider_type in [ + ApiProviderType::Openai, + ApiProviderType::OpenaiResponse, + ApiProviderType::Anthropic, + ApiProviderType::Gateway, + ] { + assert_eq!( + infer_managed_provider_type(provider_type, "https://api.minimaxi.com/anthropic"), + ApiProviderType::AnthropicCompatible + ); + } + + assert_eq!( + infer_managed_provider_type( + ApiProviderType::Gemini, + "https://api.minimaxi.com/anthropic" + ), + ApiProviderType::Gemini + ); + } + + #[test] + fn test_known_official_anthropic_compatible_hosts_should_use_authorization_header() { + let spec = infer_managed_runtime_spec( + ApiProviderType::Anthropic, + "https://api.minimaxi.com/anthropic", + ); + + assert_eq!(spec.protocol_family, ProviderProtocolFamily::Anthropic); + assert_eq!(spec.auth_header, "Authorization"); + assert_eq!(spec.auth_prefix, Some("Bearer")); + assert_eq!(spec.extra_headers[0], ("anthropic-version", "2023-06-01")); + } + + #[test] + fn test_unknown_anthropic_hosts_should_keep_x_api_key_header() { + let spec = + infer_managed_runtime_spec(ApiProviderType::Anthropic, "https://api.anthropic.com"); + + assert_eq!(spec.protocol_family, ProviderProtocolFamily::Anthropic); + assert_eq!(spec.auth_header, "x-api-key"); + assert_eq!(spec.auth_prefix, None); } #[test] @@ -579,19 +652,48 @@ fn infer_managed_prompt_cache_mode( None } +pub fn infer_managed_provider_type( + provider_type: ApiProviderType, + api_host: &str, +) -> ApiProviderType { + if is_known_automatic_anthropic_compatible_host(Some(api_host)) { + match provider_type { + ApiProviderType::Anthropic + | ApiProviderType::AnthropicCompatible + | ApiProviderType::Openai + | ApiProviderType::OpenaiResponse + | ApiProviderType::NewApi + | ApiProviderType::Gateway => return ApiProviderType::AnthropicCompatible, + _ => {} + } + } + + provider_type +} + impl ApiKeyProvider { + pub fn effective_provider_type(&self) -> ApiProviderType { + infer_managed_provider_type(self.provider_type, &self.api_host) + } + + pub fn effective_runtime_spec(&self) -> ProviderRuntimeSpec { + infer_managed_runtime_spec(self.provider_type, &self.api_host) + } + pub fn effective_prompt_cache_mode(&self) -> Option { + let effective_provider_type = self.effective_provider_type(); + if let Some(managed_mode) = - infer_managed_prompt_cache_mode(self.provider_type, &self.api_host) + infer_managed_prompt_cache_mode(effective_provider_type, &self.api_host) { return Some(managed_mode); } - match self.provider_type { + match effective_provider_type { ApiProviderType::AnthropicCompatible => self .prompt_cache_mode - .or_else(|| self.provider_type.default_prompt_cache_mode()), - _ => self.provider_type.default_prompt_cache_mode(), + .or_else(|| effective_provider_type.default_prompt_cache_mode()), + _ => effective_provider_type.default_prompt_cache_mode(), } } diff --git a/src-tauri/crates/core/src/database/mod.rs b/src-tauri/crates/core/src/database/mod.rs index 5e3db590b..67f5b48a0 100644 --- a/src-tauri/crates/core/src/database/mod.rs +++ b/src-tauri/crates/core/src/database/mod.rs @@ -17,6 +17,20 @@ use rusqlite::Connection; use std::path::PathBuf; use std::sync::{Arc, Mutex}; +const SQLITE_WAL_PRAGMAS: &str = r#" +PRAGMA journal_mode = WAL; +PRAGMA synchronous = NORMAL; +PRAGMA cache_size = -64000; +PRAGMA temp_store = MEMORY; +"#; + +const SQLITE_FALLBACK_PRAGMAS: &str = r#" +PRAGMA journal_mode = DELETE; +PRAGMA synchronous = NORMAL; +PRAGMA cache_size = -64000; +PRAGMA temp_store = MEMORY; +"#; + /// 进程内共享的 SQLite 连接。 /// /// 注意: @@ -60,15 +74,7 @@ pub fn init_database() -> Result { .map_err(|e| format!("设置 busy_timeout 失败: {e}"))?; // 启用 WAL 模式提升并发性能 - conn.execute_batch( - "PRAGMA journal_mode = WAL; - PRAGMA synchronous = NORMAL; - PRAGMA cache_size = -64000; - PRAGMA temp_store = MEMORY;", - ) - .map_err(|e| format!("设置数据库优化参数失败: {e}"))?; - - tracing::info!("[数据库] 已启用 WAL 模式和性能优化参数"); + apply_database_pragmas(&conn)?; // 创建表结构 schema::create_tables(&conn).map_err(|e| e.to_string())?; @@ -77,3 +83,24 @@ pub fn init_database() -> Result { Ok(Arc::new(Mutex::new(conn))) } + +fn apply_database_pragmas(conn: &Connection) -> Result<(), String> { + match conn.execute_batch(SQLITE_WAL_PRAGMAS) { + Ok(()) => { + tracing::info!("[数据库] 已启用 WAL 模式和性能优化参数"); + Ok(()) + } + Err(wal_error) => { + tracing::warn!( + "[数据库] 启用 WAL 模式失败,将回退到兼容模式: {}", + wal_error + ); + conn.execute_batch(SQLITE_FALLBACK_PRAGMAS) + .map_err(|fallback_error| { + format!("设置数据库优化参数失败: WAL={wal_error}; fallback={fallback_error}") + })?; + tracing::info!("[数据库] 已回退到 DELETE journal 兼容模式"); + Ok(()) + } + } +} diff --git a/src-tauri/crates/core/src/plugin/loader.rs b/src-tauri/crates/core/src/plugin/loader.rs index 0832c1e2f..777bf741e 100644 --- a/src-tauri/crates/core/src/plugin/loader.rs +++ b/src-tauri/crates/core/src/plugin/loader.rs @@ -3,6 +3,7 @@ use super::types::{ HookResult, Plugin, PluginConfig, PluginContext, PluginError, PluginManifest, PluginType, }; +use crate::app_paths; use async_trait::async_trait; use std::collections::HashMap; use std::path::{Path, PathBuf}; @@ -19,12 +20,7 @@ impl PluginLoader { } pub fn default_plugins_dir() -> PathBuf { - // 使用 data_dir 而不是 config_dir,与 PluginInstaller 保持一致 - // 在 macOS 上两者相同,但在其他平台上可能不同 - dirs::data_dir() - .unwrap_or_else(|| PathBuf::from(".")) - .join("lime") - .join("plugins") + app_paths::best_effort_runtime_subdir("plugins") } pub fn with_defaults() -> Self { diff --git a/src-tauri/crates/providers/src/providers/claude_custom.rs b/src-tauri/crates/providers/src/providers/claude_custom.rs index 76c288f5f..a763106b3 100644 --- a/src-tauri/crates/providers/src/providers/claude_custom.rs +++ b/src-tauri/crates/providers/src/providers/claude_custom.rs @@ -1,4 +1,7 @@ //! Claude Custom Provider (自定义 Claude API) +use lime_core::database::dao::api_key_provider::{ + infer_managed_runtime_spec, ApiProviderType, ProviderRuntimeSpec, +}; use lime_core::models::anthropic::AnthropicMessagesRequest; use lime_core::models::openai::{ChatCompletionRequest, ContentPart, MessageContent}; use reqwest::Client; @@ -15,13 +18,31 @@ pub enum PromptCacheMode { ExplicitOnly, } -#[derive(Debug, Clone, Serialize, Deserialize, Default)] +#[derive(Debug, Clone, Serialize, Deserialize)] pub struct ClaudeCustomConfig { pub api_key: Option, pub base_url: Option, pub enabled: bool, #[serde(default)] pub prompt_cache_mode: PromptCacheMode, + #[serde(default = "default_provider_type")] + pub provider_type: ApiProviderType, +} + +const fn default_provider_type() -> ApiProviderType { + ApiProviderType::Anthropic +} + +impl Default for ClaudeCustomConfig { + fn default() -> Self { + Self { + api_key: None, + base_url: None, + enabled: false, + prompt_cache_mode: PromptCacheMode::default(), + provider_type: default_provider_type(), + } + } } pub struct ClaudeCustomProvider { @@ -78,6 +99,20 @@ impl ClaudeCustomProvider { api_key: String, base_url: Option, prompt_cache_mode: PromptCacheMode, + ) -> Self { + Self::with_provider_type_and_prompt_cache_mode( + api_key, + base_url, + ApiProviderType::Anthropic, + prompt_cache_mode, + ) + } + + pub fn with_provider_type_and_prompt_cache_mode( + api_key: String, + base_url: Option, + provider_type: ApiProviderType, + prompt_cache_mode: PromptCacheMode, ) -> Self { Self { config: ClaudeCustomConfig { @@ -85,6 +120,7 @@ impl ClaudeCustomProvider { base_url, enabled: true, prompt_cache_mode, + provider_type, }, client: create_http_client(), } @@ -341,6 +377,44 @@ impl ClaudeCustomProvider { Self::apply_prompt_cache_control_for_mode(self.config.prompt_cache_mode, payload); } + fn effective_runtime_spec(&self) -> ProviderRuntimeSpec { + infer_managed_runtime_spec(self.config.provider_type, &self.get_base_url()) + } + + fn apply_runtime_headers( + &self, + request: reqwest::RequestBuilder, + api_key: &str, + ) -> reqwest::RequestBuilder { + let api_key = api_key.trim(); + let runtime_spec = self.effective_runtime_spec(); + let auth_value = runtime_spec + .auth_prefix + .map(|prefix| format!("{prefix} {api_key}")) + .unwrap_or_else(|| api_key.to_string()); + + let mut request = request + .header(runtime_spec.auth_header, auth_value) + .header("Content-Type", "application/json"); + + // 部分 Anthropic 协议上游在官方示例里会同时携带 + // `Authorization` 与 `x-api-key`;双写可尽量贴近 SDK 实际行为。 + if runtime_spec.protocol_family + == lime_core::database::dao::api_key_provider::ProviderProtocolFamily::Anthropic + && runtime_spec + .auth_header + .eq_ignore_ascii_case("Authorization") + { + request = request.header("x-api-key", api_key); + } + + for (name, value) in runtime_spec.extra_headers { + request = request.header(*name, *value); + } + + request + } + fn anthropic_prompt_tokens(response: &Value) -> u64 { let usage = response .get("usage") @@ -396,11 +470,7 @@ impl ClaudeCustomProvider { self.maybe_apply_prompt_cache_control(&mut payload); let resp = self - .client - .post(&url) - .header("x-api-key", api_key) - .header("anthropic-version", "2023-06-01") - .header("Content-Type", "application/json") + .apply_runtime_headers(self.client.post(&url), api_key) .json(&payload) .send() .await?; @@ -519,11 +589,7 @@ impl ClaudeCustomProvider { ); let resp = self - .client - .post(&url) - .header("x-api-key", api_key) - .header("anthropic-version", "2023-06-01") - .header("Content-Type", "application/json") + .apply_runtime_headers(self.client.post(&url), api_key) .json(&anthropic_body) .send() .await?; @@ -619,11 +685,7 @@ impl ClaudeCustomProvider { self.maybe_apply_prompt_cache_control(&mut payload); let resp = self - .client - .post(&url) - .header("x-api-key", api_key) - .header("anthropic-version", "2023-06-01") - .header("Content-Type", "application/json") + .apply_runtime_headers(self.client.post(&url), api_key) .json(&payload) .send() .await?; @@ -651,11 +713,7 @@ impl ClaudeCustomProvider { let url = self.build_url("messages/count_tokens"); let resp = self - .client - .post(&url) - .header("x-api-key", api_key) - .header("anthropic-version", "2023-06-01") - .header("Content-Type", "application/json") + .apply_runtime_headers(self.client.post(&url), api_key) .json(request) .send() .await?; @@ -851,11 +909,7 @@ impl StreamingProvider for ClaudeCustomProvider { ); let resp = self - .client - .post(&url) - .header("x-api-key", api_key) - .header("anthropic-version", "2023-06-01") - .header("Content-Type", "application/json") + .apply_runtime_headers(self.client.post(&url), api_key) .header("Accept", "text/event-stream") .json(&anthropic_body) .send() @@ -892,6 +946,7 @@ impl StreamingProvider for ClaudeCustomProvider { #[cfg(test)] mod tests { use super::*; + use lime_core::database::dao::api_key_provider::ProviderProtocolFamily; use lime_core::models::openai::{FunctionDef, Tool}; #[test] @@ -1190,4 +1245,93 @@ mod tests { 10 ); } + + #[test] + fn test_effective_runtime_spec_uses_authorization_for_minimax_host() { + let provider = ClaudeCustomProvider::with_config( + "test-key".to_string(), + Some("https://api.minimaxi.com/anthropic".to_string()), + ); + + let spec = provider.effective_runtime_spec(); + assert_eq!(spec.protocol_family, ProviderProtocolFamily::Anthropic); + assert_eq!(spec.auth_header, "Authorization"); + assert_eq!(spec.auth_prefix, Some("Bearer")); + } + + #[test] + fn test_effective_runtime_spec_keeps_x_api_key_for_official_anthropic() { + let provider = ClaudeCustomProvider::with_config( + "test-key".to_string(), + Some("https://api.anthropic.com".to_string()), + ); + + let spec = provider.effective_runtime_spec(); + assert_eq!(spec.protocol_family, ProviderProtocolFamily::Anthropic); + assert_eq!(spec.auth_header, "x-api-key"); + assert_eq!(spec.auth_prefix, None); + } + + #[test] + fn test_apply_runtime_headers_adds_dual_auth_headers_for_minimax_host() { + let provider = ClaudeCustomProvider::with_config( + "test-key".to_string(), + Some("https://api.minimaxi.com/anthropic".to_string()), + ); + + let request = provider + .apply_runtime_headers( + reqwest::Client::new().post("https://example.com"), + "test-key", + ) + .build() + .expect("构建请求失败"); + + assert_eq!( + request + .headers() + .get("Authorization") + .and_then(|value| value.to_str().ok()), + Some("Bearer test-key") + ); + assert_eq!( + request + .headers() + .get("x-api-key") + .and_then(|value| value.to_str().ok()), + Some("test-key") + ); + assert_eq!( + request + .headers() + .get("anthropic-version") + .and_then(|value| value.to_str().ok()), + Some("2023-06-01") + ); + } + + #[test] + fn test_apply_runtime_headers_keeps_official_anthropic_single_auth_header() { + let provider = ClaudeCustomProvider::with_config( + "test-key".to_string(), + Some("https://api.anthropic.com".to_string()), + ); + + let request = provider + .apply_runtime_headers( + reqwest::Client::new().post("https://example.com"), + "test-key", + ) + .build() + .expect("构建请求失败"); + + assert_eq!( + request + .headers() + .get("x-api-key") + .and_then(|value| value.to_str().ok()), + Some("test-key") + ); + assert!(request.headers().get("Authorization").is_none()); + } } diff --git a/src-tauri/crates/server/src/handlers/api_key_provider_utils.rs b/src-tauri/crates/server/src/handlers/api_key_provider_utils.rs index 4b99d5825..778dde085 100644 --- a/src-tauri/crates/server/src/handlers/api_key_provider_utils.rs +++ b/src-tauri/crates/server/src/handlers/api_key_provider_utils.rs @@ -2,7 +2,9 @@ //! //! 统一 provider_id 候选映射和鉴权请求头构建,避免各 handler 规则漂移。 -use lime_core::database::dao::api_key_provider::{ApiProviderType, ProviderProtocolFamily}; +use lime_core::database::dao::api_key_provider::{ + infer_managed_runtime_spec, ApiProviderType, ProviderProtocolFamily, +}; /// 收集 API Key Provider ID 候选列表(按优先级) /// @@ -59,11 +61,12 @@ pub(crate) fn collect_api_key_provider_ids(provider_type: &str) -> Vec { /// 根据 API Provider 类型构建额外请求头 pub(crate) fn build_api_key_headers( provider_type: &ApiProviderType, + api_host: &str, api_key: &str, ) -> std::collections::HashMap { let mut headers = std::collections::HashMap::new(); - let spec = provider_type.runtime_spec(); + let spec = infer_managed_runtime_spec(*provider_type, api_host); let auth_value = match spec.auth_prefix { Some(prefix) => format!("{prefix} {api_key}"), None => api_key.to_string(), @@ -112,12 +115,30 @@ mod tests { #[test] fn test_build_api_key_headers_supports_anthropic_compatible() { - let headers = build_api_key_headers(&ApiProviderType::AnthropicCompatible, "test-key"); - assert_eq!(headers.get("x-api-key"), Some(&"test-key".to_string())); + let headers = build_api_key_headers( + &ApiProviderType::AnthropicCompatible, + "https://api.minimaxi.com/anthropic", + "test-key", + ); + assert_eq!( + headers.get("Authorization"), + Some(&"Bearer test-key".to_string()) + ); assert_eq!( headers.get("anthropic-version"), Some(&"2023-06-01".to_string()) ); + assert!(!headers.contains_key("x-api-key")); + } + + #[test] + fn test_build_api_key_headers_keeps_x_api_key_for_official_anthropic() { + let headers = build_api_key_headers( + &ApiProviderType::Anthropic, + "https://api.anthropic.com", + "test-key", + ); + assert_eq!(headers.get("x-api-key"), Some(&"test-key".to_string())); assert!(!headers.contains_key("Authorization")); } } diff --git a/src-tauri/crates/server/src/handlers/credentials_api.rs b/src-tauri/crates/server/src/handlers/credentials_api.rs index d85deaec8..1fca43813 100644 --- a/src-tauri/crates/server/src/handlers/credentials_api.rs +++ b/src-tauri/crates/server/src/handlers/credentials_api.rs @@ -242,7 +242,8 @@ async fn try_select_api_key_credential( }; // 构建额外的请求头 - let extra_headers = build_api_key_headers(&provider.provider_type, &api_key); + let extra_headers = + build_api_key_headers(&provider.provider_type, &provider.api_host, &api_key); let response = CredentialResponse { uuid: key_id, @@ -469,7 +470,8 @@ async fn try_get_api_key_token( })?; // 构建额外的请求头 - let extra_headers = build_api_key_headers(&provider.provider_type, &api_key); + let extra_headers = + build_api_key_headers(&provider.provider_type, &provider.api_host, &api_key); let response = CredentialResponse { uuid: api_key_entry.id.clone(), diff --git a/src-tauri/crates/server/src/handlers/provider_calls.rs b/src-tauri/crates/server/src/handlers/provider_calls.rs index 6872b6f52..746d5c597 100644 --- a/src-tauri/crates/server/src/handlers/provider_calls.rs +++ b/src-tauri/crates/server/src/handlers/provider_calls.rs @@ -50,6 +50,7 @@ use axum::{ use futures::StreamExt; use crate::AppState; +use lime_core::database::dao::api_key_provider::ApiProviderType; use lime_core::models::anthropic::AnthropicMessagesRequest; use lime_core::models::openai::ChatCompletionRequest; use lime_core::models::provider_pool_model::{CredentialData, ProviderCredential}; @@ -556,9 +557,10 @@ pub async fn call_provider_anthropic( } else { PromptCacheMode::ExplicitOnly }; - let claude = ClaudeCustomProvider::with_prompt_cache_mode( + let claude = ClaudeCustomProvider::with_provider_type_and_prompt_cache_mode( api_key.clone(), base_url.clone(), + ApiProviderType::AnthropicCompatible, prompt_cache_mode, ); let request_url = claude.get_base_url(); @@ -785,9 +787,10 @@ pub async fn call_provider_anthropic( // Anthropic API Key - 根据 base_url 决定调用方式 CredentialData::AnthropicKey { api_key, base_url } => { // 使用 Anthropic 原生格式调用(无论是否有自定义 base_url) - let claude = ClaudeCustomProvider::with_prompt_cache_mode( + let claude = ClaudeCustomProvider::with_provider_type_and_prompt_cache_mode( api_key.clone(), base_url.clone(), + ApiProviderType::Anthropic, PromptCacheMode::Automatic, ); let request_url = claude.get_base_url(); @@ -1691,9 +1694,10 @@ pub async fn call_provider_openai( } else { PromptCacheMode::ExplicitOnly }; - let claude = ClaudeCustomProvider::with_prompt_cache_mode( + let claude = ClaudeCustomProvider::with_provider_type_and_prompt_cache_mode( api_key.clone(), base_url.clone(), + ApiProviderType::AnthropicCompatible, prompt_cache_mode, ); diff --git a/src-tauri/crates/server/src/handlers/websocket.rs b/src-tauri/crates/server/src/handlers/websocket.rs index c95acc139..a0455b8a6 100644 --- a/src-tauri/crates/server/src/handlers/websocket.rs +++ b/src-tauri/crates/server/src/handlers/websocket.rs @@ -12,6 +12,7 @@ use axum::{ response::IntoResponse, }; use futures::{SinkExt, StreamExt as FuturesStreamExt}; +use lime_core::database::dao::api_key_provider::ApiProviderType; use serde::Deserialize; use std::sync::Arc; use tokio::sync::Mutex; @@ -679,9 +680,10 @@ pub async fn call_provider_openai_for_ws( } else { PromptCacheMode::ExplicitOnly }; - let provider = ClaudeCustomProvider::with_prompt_cache_mode( + let provider = ClaudeCustomProvider::with_provider_type_and_prompt_cache_mode( api_key.clone(), base_url.clone(), + ApiProviderType::AnthropicCompatible, prompt_cache_mode, ); match provider.call_openai_api(request).await { @@ -832,9 +834,10 @@ pub async fn call_provider_anthropic_for_ws( } else { PromptCacheMode::ExplicitOnly }; - let provider = ClaudeCustomProvider::with_prompt_cache_mode( + let provider = ClaudeCustomProvider::with_provider_type_and_prompt_cache_mode( api_key.clone(), base_url.clone(), + ApiProviderType::AnthropicCompatible, prompt_cache_mode, ); let resp = match provider.call_api(request).await { diff --git a/src-tauri/crates/services/src/api_key_provider_service.rs b/src-tauri/crates/services/src/api_key_provider_service.rs index 57f954a92..99e198830 100644 --- a/src-tauri/crates/services/src/api_key_provider_service.rs +++ b/src-tauri/crates/services/src/api_key_provider_service.rs @@ -9,8 +9,8 @@ use crate::provider_type_mapping::pool_provider_type_to_api_type; use base64::{engine::general_purpose::STANDARD as BASE64, Engine}; use chrono::Utc; use lime_core::database::dao::api_key_provider::{ - ApiKeyEntry, ApiKeyProvider, ApiKeyProviderDao, ApiProviderPromptCacheMode, ApiProviderType, - ProviderGroup, ProviderWithKeys, + infer_managed_provider_type, ApiKeyEntry, ApiKeyProvider, ApiKeyProviderDao, + ApiProviderPromptCacheMode, ApiProviderType, ProviderGroup, ProviderWithKeys, }; use lime_core::database::system_providers::{get_system_providers, to_api_key_provider}; use lime_core::database::DbConnection; @@ -20,7 +20,7 @@ use lime_core::models::{ use lime_core::provider_prompt_cache_support::is_known_automatic_anthropic_compatible_host; use serde::{Deserialize, Serialize}; use sha2::{Digest, Sha256}; -use std::collections::HashMap; +use std::collections::{HashMap, HashSet}; use std::sync::atomic::{AtomicUsize, Ordering}; use std::sync::RwLock; @@ -172,6 +172,80 @@ data: [DONE]\n"; )); } + #[test] + fn test_format_anthropic_http_api_error_uses_protocol_level_guidance() { + let body = r#"{"type":"error","error":{"type":"authentication_error","message":"login fail: Please carry the API secret key in the 'Authorization' field of the request header"}}"#; + + let formatted = ApiKeyProviderService::format_anthropic_http_api_error( + reqwest::StatusCode::UNAUTHORIZED, + body, + "https://example.com/anthropic", + ApiProviderType::AnthropicCompatible, + "k-cp-looks-truncated", + ); + + assert!(formatted.contains("Lime 已按 Anthropic 协议发送兼容鉴权")); + assert!(formatted.contains("核对 API Key 是否完整")); + assert!(!formatted.contains("MiniMax")); + } + + #[test] + fn test_format_anthropic_http_api_error_keeps_base_message_for_non_anthropic_protocol() { + let body = r#"{"type":"error","error":{"type":"authentication_error","message":"Please carry the API secret key in the 'Authorization' field of the request header"}}"#; + + let formatted = ApiKeyProviderService::format_anthropic_http_api_error( + reqwest::StatusCode::UNAUTHORIZED, + body, + "https://example.com/compatible", + ApiProviderType::Openai, + "k-cp-looks-truncated", + ); + + assert_eq!( + formatted, + "API 返回错误: 401 Unauthorized - Please carry the API secret key in the 'Authorization' field of the request header" + ); + } + + #[test] + fn test_format_anthropic_http_api_error_marks_upstream_overload() { + let body = r#"{"type":"error","error":{"type":"overloaded_error","message":"overloaded_error (529)"}}"#; + + let formatted = ApiKeyProviderService::format_anthropic_http_api_error( + reqwest::StatusCode::from_u16(529).expect("status"), + body, + "https://example.com/anthropic", + ApiProviderType::AnthropicCompatible, + "test-key", + ); + + assert!(formatted.contains("上游 Anthropic 兼容接口当前暂时过载或限流")); + assert!(formatted.contains("overloaded_error (529)")); + assert!(formatted.contains("这通常不是 Base URL、鉴权头或模型配置错误")); + } + + #[test] + fn test_is_transient_anthropic_upstream_error_supports_json_and_status_detection() { + assert!( + ApiKeyProviderService::is_transient_anthropic_upstream_error( + reqwest::StatusCode::from_u16(529).expect("status"), + r#"{"type":"error","error":{"type":"overloaded_error","message":"overloaded_error (529)"}}"#, + ) + ); + assert!( + ApiKeyProviderService::is_transient_anthropic_upstream_error( + reqwest::StatusCode::TOO_MANY_REQUESTS, + r#"{"error":{"message":"rate_limit exceeded"}}"#, + ) + ); + assert!( + !ApiKeyProviderService::is_transient_anthropic_upstream_error( + reqwest::StatusCode::UNAUTHORIZED, + r#"{"error":{"message":"invalid api key"}}"#, + ) + ); + } + #[test] fn test_pick_test_model_priority() { let with_explicit = ApiKeyProviderService::pick_test_model( @@ -186,7 +260,14 @@ data: [DONE]\n"; &["custom-model".to_string()], &["fallback-model".to_string(), "fallback-mini".to_string()], ); - assert_eq!(with_custom.as_deref(), Some("custom-model")); + assert_eq!(with_custom.as_deref(), Some("fallback-mini")); + + let with_matching_custom = ApiKeyProviderService::pick_test_model( + None, + &["MiniMax-M2.7".to_string()], + &["MiniMax-M2.7".to_string(), "MiniMax-M2.5".to_string()], + ); + assert_eq!(with_matching_custom.as_deref(), Some("MiniMax-M2.7")); let with_local_fallback = ApiKeyProviderService::pick_test_model(None, &[], &["fallback-model".to_string()]); @@ -253,7 +334,7 @@ data: [DONE]\n"; .add_custom_provider( &db, "MiMo Anthropic".to_string(), - ApiProviderType::AnthropicCompatible, + ApiProviderType::Openai, "https://token-plan-cn.xiaomimimo.com/anthropic".to_string(), None, None, @@ -263,6 +344,7 @@ data: [DONE]\n"; ) .expect("创建自定义 Provider 失败"); + assert_eq!(provider.provider_type, ApiProviderType::AnthropicCompatible); assert_eq!( provider.prompt_cache_mode, Some(ApiProviderPromptCacheMode::Automatic) @@ -272,6 +354,10 @@ data: [DONE]\n"; let persisted = ApiKeyProviderDao::get_provider_by_id(&conn, &provider.id) .expect("读取 Provider 失败") .expect("Provider 应存在"); + assert_eq!( + persisted.provider_type, + ApiProviderType::AnthropicCompatible + ); assert_eq!( persisted.prompt_cache_mode, Some(ApiProviderPromptCacheMode::Automatic) @@ -307,7 +393,7 @@ data: [DONE]\n"; &db, &provider.id, None, - None, + Some(ApiProviderType::Openai), Some("https://api.minimaxi.com/anthropic".to_string()), None, None, @@ -320,6 +406,7 @@ data: [DONE]\n"; ) .expect("更新 Provider 失败"); + assert_eq!(updated.provider_type, ApiProviderType::AnthropicCompatible); assert_eq!( updated.prompt_cache_mode, Some(ApiProviderPromptCacheMode::Automatic) @@ -824,6 +911,13 @@ impl ApiKeyProviderService { } } + fn normalize_custom_provider_type( + provider_type: ApiProviderType, + api_host: &str, + ) -> ApiProviderType { + infer_managed_provider_type(provider_type, api_host) + } + fn to_credential_prompt_cache_mode( mode: ApiProviderPromptCacheMode, ) -> ProviderPromptCacheMode { @@ -923,6 +1017,7 @@ impl ApiKeyProviderService { .ok_or_else(|| format!("Provider not found: {provider_id}"))?; let provider = &provider_with_keys.provider; + let effective_provider_type = provider.effective_provider_type(); let api_key = self .get_next_api_key(db, provider_id)? @@ -935,7 +1030,7 @@ impl ApiKeyProviderService { let start = Instant::now(); // 根据 Provider 协议类型选择测试方式 - let result = match provider.provider_type { + let result = match effective_provider_type { // Codex 协议直接走 /responses 端点 ApiProviderType::Codex => { self.test_codex_responses_endpoint( @@ -943,6 +1038,7 @@ impl ApiKeyProviderService { &provider.api_host, &test_model, &prompt, + effective_provider_type, ) .await } @@ -959,13 +1055,20 @@ impl ApiKeyProviderService { &test_model, &prompt, provider.supports_automatic_prompt_cache(), + effective_provider_type, ) .await } // 其余默认 OpenAI 兼容 _ => { - self.test_openai_chat_once(&api_key, &provider.api_host, &test_model, &prompt) - .await + self.test_openai_chat_once( + &api_key, + &provider.api_host, + &test_model, + &prompt, + effective_provider_type, + ) + .await } }; let latency_ms = start.elapsed().as_millis() as u64; @@ -1019,9 +1122,34 @@ impl ApiKeyProviderService { custom_models: &[String], fallback_models: &[String], ) -> Option { - model_name - .or_else(|| custom_models.first().cloned()) + let explicit_model = model_name.and_then(|model| { + let normalized = model.trim(); + (!normalized.is_empty()).then(|| normalized.to_string()) + }); + if explicit_model.is_some() { + return explicit_model; + } + + let fallback_model_set: HashSet = fallback_models + .iter() + .map(|model| model.trim().to_lowercase()) + .filter(|model| !model.is_empty()) + .collect(); + + let matching_custom_model = custom_models.iter().find_map(|model| { + let normalized = model.trim(); + (!normalized.is_empty() && fallback_model_set.contains(&normalized.to_lowercase())) + .then(|| normalized.to_string()) + }); + + matching_custom_model .or_else(|| Self::pick_preferred_fallback_model(fallback_models)) + .or_else(|| { + custom_models.iter().find_map(|model| { + let normalized = model.trim(); + (!normalized.is_empty()).then(|| normalized.to_string()) + }) + }) } async fn test_openai_chat_once( @@ -1030,6 +1158,7 @@ impl ApiKeyProviderService { api_host: &str, model: &str, prompt: &str, + provider_type: ApiProviderType, ) -> Result<(String, String), String> { use lime_core::models::openai::{ChatCompletionRequest, ChatMessage, MessageContent}; use lime_providers::providers::openai_custom::OpenAICustomProvider; @@ -1101,7 +1230,7 @@ impl ApiKeyProviderService { // 部分上游(如 Codex relay)不支持 messages 参数,需要走 /responses 端点 if status.as_u16() == 400 && body.contains("Unsupported parameter: messages") { return self - .test_codex_responses_endpoint(api_key, api_host, model, prompt) + .test_codex_responses_endpoint(api_key, api_host, model, prompt, provider_type) .await; } @@ -1115,6 +1244,7 @@ impl ApiKeyProviderService { model: &str, prompt: &str, enable_automatic_prompt_cache: bool, + provider_type: ApiProviderType, ) -> Result<(String, String), String> { use lime_providers::providers::claude_custom::{ClaudeCustomProvider, PromptCacheMode}; @@ -1123,9 +1253,10 @@ impl ApiKeyProviderService { } else { PromptCacheMode::ExplicitOnly }; - let provider = ClaudeCustomProvider::with_prompt_cache_mode( + let provider = ClaudeCustomProvider::with_provider_type_and_prompt_cache_mode( api_key.to_string(), Some(api_host.to_string()), + provider_type, prompt_cache_mode, ); @@ -1135,16 +1266,22 @@ impl ApiKeyProviderService { "messages": [{"role": "user", "content": prompt}] }); - let resp = provider - .messages(&request) - .await - .map_err(|e| format!("API 调用失败: {e}"))?; - - let status = resp.status(); - let body = resp.text().await.unwrap_or_default(); + let (status, body) = Self::execute_anthropic_test_request_with_retries(|| async { + provider + .messages(&request) + .await + .map_err(|e| format!("API 调用失败: {e}")) + }) + .await?; if !status.is_success() { - return Err(Self::format_http_api_error(status, &body)); + return Err(Self::format_anthropic_http_api_error( + status, + &body, + api_host, + provider_type, + api_key, + )); } let parsed: serde_json::Value = @@ -1263,6 +1400,79 @@ impl ApiKeyProviderService { } } + fn is_transient_anthropic_upstream_error(status: reqwest::StatusCode, body: &str) -> bool { + if matches!(status.as_u16(), 429 | 503 | 529) { + return true; + } + + let message = Self::extract_json_error_message(body) + .unwrap_or_else(|| body.to_string()) + .to_ascii_lowercase(); + + message.contains("overloaded_error") + || message.contains("rate_limit") + || message.contains("rate limit") + } + + async fn execute_anthropic_test_request_with_retries( + mut send_request: F, + ) -> Result<(reqwest::StatusCode, String), String> + where + F: FnMut() -> Fut, + Fut: std::future::Future>, + { + const RETRY_DELAYS_MS: [u64; 5] = [0, 400, 1200, 2500, 5000]; + + for (attempt_index, delay_ms) in RETRY_DELAYS_MS.iter().enumerate() { + if attempt_index > 0 { + tokio::time::sleep(std::time::Duration::from_millis(*delay_ms)).await; + } + + let response = send_request().await?; + let status = response.status(); + let body = response.text().await.unwrap_or_default(); + + if !Self::is_transient_anthropic_upstream_error(status, &body) + || attempt_index + 1 == RETRY_DELAYS_MS.len() + { + return Ok((status, body)); + } + } + + unreachable!("Anthropic 重试循环必须在最后一次尝试返回结果"); + } + + fn format_anthropic_http_api_error( + status: reqwest::StatusCode, + body: &str, + _api_host: &str, + provider_type: ApiProviderType, + _api_key: &str, + ) -> String { + let base = Self::format_http_api_error(status, body); + let uses_anthropic_protocol = Self::uses_anthropic_protocol(provider_type); + let looks_like_misleading_auth_error = body.contains( + "Please carry the API secret key in the 'Authorization' field of the request header", + ); + + if uses_anthropic_protocol && Self::is_transient_anthropic_upstream_error(status, body) { + return format!( + "{base}。上游 Anthropic 兼容接口当前暂时过载或限流,请稍后重试;这通常不是 Base URL、鉴权头或模型配置错误。" + ); + } + + if status == reqwest::StatusCode::UNAUTHORIZED + && uses_anthropic_protocol + && looks_like_misleading_auth_error + { + return format!( + "{base}。Lime 已按 Anthropic 协议发送兼容鉴权;若仍返回此错误,请优先核对 API Key 是否完整、未被截断,并确认该 Key 已开通当前 Base URL / 模型对应的接口权限。" + ); + } + + base + } + fn build_codex_responses_request(model: &str, prompt: &str) -> serde_json::Value { Self::build_openai_responses_request(model, prompt, true) } @@ -1329,6 +1539,7 @@ impl ApiKeyProviderService { api_host: &str, model: &str, prompt: &str, + provider_type: ApiProviderType, ) -> Result<(String, String), String> { use lime_providers::providers::codex::CodexProvider; @@ -1351,7 +1562,13 @@ impl ApiKeyProviderService { let body = resp.text().await.unwrap_or_default(); if !status.is_success() { - return Err(Self::format_http_api_error(status, &body)); + return Err(Self::format_anthropic_http_api_error( + status, + &body, + api_host, + provider_type, + api_key, + )); } // 解析 Codex SSE 响应 @@ -1494,6 +1711,7 @@ impl ApiKeyProviderService { ) -> Result { let now = Utc::now(); let id = format!("custom-{}", uuid::Uuid::new_v4()); + let provider_type = Self::normalize_custom_provider_type(provider_type, &api_host); let normalized_prompt_cache_mode = Self::normalize_custom_prompt_cache_mode(provider_type, &api_host, prompt_cache_mode); @@ -1575,6 +1793,8 @@ impl ApiKeyProviderService { if let Some(models) = custom_models { provider.custom_models = models; } + provider.provider_type = + Self::normalize_custom_provider_type(provider.provider_type, &provider.api_host); provider.prompt_cache_mode = Self::normalize_custom_prompt_cache_mode( provider.provider_type, &provider.api_host, @@ -2280,9 +2500,10 @@ impl ApiKeyProviderService { let conn = lime_core::database::lock_db(db)?; self.decrypt_api_key_entry_with_migration(&conn, candidate_key)? }; + let effective_provider_type = provider.effective_provider_type(); // 检查客户端兼容性(仅对 Anthropic 类型进行检查) - if provider.provider_type == ApiProviderType::Anthropic { + if effective_provider_type == ApiProviderType::Anthropic { if let Some(client) = client_type { // 对于 Claude Code 客户端,可以使用任何 Claude 凭证 if matches!( @@ -2344,7 +2565,7 @@ impl ApiKeyProviderService { "[智能降级] 成功通过 provider_id 找到凭证: {} (key: {}, type: {:?})", provider.name, selected_key.alias.as_deref().unwrap_or(&selected_key.id), - provider.provider_type + provider.effective_provider_type() ); Ok(Some(credential)) @@ -2357,7 +2578,7 @@ impl ApiKeyProviderService { key_id: &str, api_key: &str, ) -> Result { - let (credential_data, pool_type) = match provider.provider_type { + let (credential_data, pool_type) = match provider.effective_provider_type() { ApiProviderType::Anthropic => { // Anthropic 类型使用 ClaudeKey let data = CredentialData::ClaudeKey { @@ -2526,6 +2747,7 @@ impl ApiKeyProviderService { .ok_or_else(|| format!("Provider not found: {provider_id}"))?; let provider = &provider_with_keys.provider; + let effective_provider_type = provider.effective_provider_type(); // 获取一个可用的 API Key let api_key = self @@ -2535,7 +2757,7 @@ impl ApiKeyProviderService { let start_time = Instant::now(); // 根据 Provider 类型选择测试方式 - let result = match provider.provider_type { + let result = match effective_provider_type { provider_type if Self::uses_anthropic_protocol(provider_type) => { // Anthropic / AnthropicCompatible 不支持 /models,统一发送 /messages 测试请求 let test_model = Self::pick_test_model( @@ -2551,6 +2773,7 @@ impl ApiKeyProviderService { &provider.api_host, &test_model, provider.supports_automatic_prompt_cache(), + effective_provider_type, ) .await { @@ -2579,9 +2802,15 @@ impl ApiKeyProviderService { ) .ok_or_else(|| "缺少模型名称:请在自定义模型中填写一个模型名".to_string())?; - self.test_codex_responses_endpoint(&api_key, &provider.api_host, &test_model, "hi") - .await - .map(|_| vec![test_model]) + self.test_codex_responses_endpoint( + &api_key, + &provider.api_host, + &test_model, + "hi", + effective_provider_type, + ) + .await + .map(|_| vec![test_model]) } provider_type if Self::uses_openai_responses_protocol(provider_type) => { let test_model = Self::pick_test_model( @@ -2703,7 +2932,7 @@ impl ApiKeyProviderService { api_host: &str, model: &str, ) -> Result, String> { - self.test_openai_chat_once(api_key, api_host, model, "hi") + self.test_openai_chat_once(api_key, api_host, model, "hi", ApiProviderType::Openai) .await .map(|_| vec![model.to_string()]) } @@ -2762,6 +2991,7 @@ impl ApiKeyProviderService { api_host: &str, model: &str, enable_automatic_prompt_cache: bool, + provider_type: ApiProviderType, ) -> Result, String> { use lime_providers::providers::claude_custom::{ClaudeCustomProvider, PromptCacheMode}; @@ -2770,9 +3000,10 @@ impl ApiKeyProviderService { } else { PromptCacheMode::ExplicitOnly }; - let provider = ClaudeCustomProvider::with_prompt_cache_mode( + let provider = ClaudeCustomProvider::with_provider_type_and_prompt_cache_mode( api_key.to_string(), Some(api_host.to_string()), + provider_type, prompt_cache_mode, ); @@ -2783,23 +3014,29 @@ impl ApiKeyProviderService { "messages": [{"role": "user", "content": "hi"}] }); - let response = provider - .messages(&request) - .await - .map_err(|e| format!("API 调用失败: {e}"))?; + let (status, body) = Self::execute_anthropic_test_request_with_retries(|| async { + provider + .messages(&request) + .await + .map_err(|e| format!("API 调用失败: {e}")) + }) + .await?; - if response.status().is_success() { + if status.is_success() { Ok(vec![model.to_string()]) } else { - let status = response.status(); - let body = response.text().await.unwrap_or_default(); - // 检查是否是 Claude Code 专用凭证限制错误 if body.contains("only authorized for use with Claude Code") { return Err("CLAUDE_CODE_ONLY".to_string()); } - Err(format!("API 返回错误: {status} - {body}")) + Err(Self::format_anthropic_http_api_error( + status, + &body, + api_host, + provider_type, + api_key, + )) } } diff --git a/src-tauri/crates/services/src/model_registry_service.rs b/src-tauri/crates/services/src/model_registry_service.rs index 5dbeda366..06c4f0306 100644 --- a/src-tauri/crates/services/src/model_registry_service.rs +++ b/src-tauri/crates/services/src/model_registry_service.rs @@ -3,7 +3,7 @@ //! 从内嵌资源加载模型数据,管理本地缓存,提供模型搜索等功能 //! 模型数据在构建时从 aiclientproxy/models 仓库打包进应用 -use lime_core::database::dao::api_key_provider::ApiProviderType; +use lime_core::database::dao::api_key_provider::{infer_managed_runtime_spec, ApiProviderType}; use lime_core::database::DbConnection; use lime_core::models::model_registry::{ EnhancedModelMetadata, ModelCapabilities, ModelLimits, ModelPricing, ModelSource, ModelStatus, @@ -926,6 +926,8 @@ impl ModelRegistryService { /// 1. 精确匹配 custom_models /// 2. 按 provider_id / provider_type / api_host 推断候选 provider /// 3. 使用本地资源中的候选 provider 模型列表 + /// + /// 对 Anthropic 兼容 Provider,不执行本地模型兜底,避免误显示其它厂商模型。 pub async fn fetch_models_from_api_with_hints( &self, provider_id: &str, @@ -979,6 +981,54 @@ impl ModelRegistryService { api_error.message ); + if Self::should_disable_registry_fallback(api_host, provider_type) { + let scoped_provider_candidates = self + .collect_explicit_model_provider_ids(provider_id, api_host) + .await; + let matched_custom_models = self + .match_local_models_by_ids( + custom_models, + Some(scoped_provider_candidates.as_slice()), + ) + .await; + let keeps_custom_models = !matched_custom_models.is_empty(); + let is_anthropic_models_not_found = + api_error.kind == ModelFetchErrorKind::NotFound; + let adjusted_hint = if is_anthropic_models_not_found { + None + } else { + diagnostic_hint + }; + let error = if is_anthropic_models_not_found { + if keeps_custom_models { + "当前 Anthropic 兼容入口未提供标准 /models 接口,已保留当前 Provider 的自定义模型。" + .to_string() + } else { + "当前 Anthropic 兼容入口未提供标准 /models 接口。".to_string() + } + } else if keeps_custom_models { + format!( + "API 获取失败: {},已保留当前 Provider 的自定义模型;同时不再回退通用本地目录,避免误显示其它厂商模型。", + api_error.message + ) + } else { + format!( + "API 获取失败: {},当前 Provider 不再回退通用本地目录,避免误显示其它厂商模型。", + api_error.message + ) + }; + + return Ok(FetchModelsResult { + models: matched_custom_models, + source: ModelFetchSource::CustomModels, + error: Some(error), + request_url: api_url, + diagnostic_hint: adjusted_hint, + error_kind: Some(api_error.kind.clone()), + should_prompt_error: false, + }); + } + // 回退到本地资源模型(多级匹配) let local_models = self .resolve_local_fallback_models( @@ -1039,7 +1089,12 @@ impl ModelRegistryService { custom_models: &[String], ) -> Vec { // 优先精确匹配 custom_models(最贴近用户配置) - let matched_custom_models = self.match_local_models_by_ids(custom_models).await; + let scoped_provider_candidates = self + .collect_explicit_model_provider_ids(provider_id, api_host) + .await; + let matched_custom_models = self + .match_local_models_by_ids(custom_models, Some(scoped_provider_candidates.as_slice())) + .await; if !matched_custom_models.is_empty() { tracing::info!( "[ModelRegistry] 本地兜底命中 custom_models: provider={}, matched={}", @@ -1049,6 +1104,15 @@ impl ModelRegistryService { return matched_custom_models; } + if Self::should_disable_registry_fallback(api_host, provider_type) { + tracing::info!( + "[ModelRegistry] 当前协议禁用通用本地模型兜底: provider={}, host={}", + provider_id, + api_host + ); + return Vec::new(); + } + let candidate_provider_ids = self .collect_fallback_provider_ids(provider_id, api_host, provider_type, custom_models) .await; @@ -1074,7 +1138,11 @@ impl ModelRegistryService { models } - async fn match_local_models_by_ids(&self, model_ids: &[String]) -> Vec { + async fn match_local_models_by_ids( + &self, + model_ids: &[String], + provider_candidates: Option<&[String]>, + ) -> Vec { if model_ids.is_empty() { return Vec::new(); } @@ -1089,10 +1157,23 @@ impl ModelRegistryService { return Vec::new(); } + let provider_candidates = provider_candidates.map(|candidates| { + candidates + .iter() + .map(|candidate| candidate.trim().to_lowercase()) + .filter(|candidate| !candidate.is_empty()) + .collect::>() + }); + let cache = self.models_cache.read().await; cache .iter() - .filter(|m| target_ids.contains(&m.id.to_lowercase())) + .filter(|model| { + target_ids.contains(&model.id.to_lowercase()) + && provider_candidates.as_ref().is_none_or(|candidates| { + candidates.contains(&model.provider_id.to_lowercase()) + }) + }) .cloned() .collect() } @@ -1150,6 +1231,33 @@ impl ModelRegistryService { candidates } + async fn collect_explicit_model_provider_ids( + &self, + provider_id: &str, + api_host: &str, + ) -> Vec { + let mut candidates = Vec::new(); + + Self::push_unique_candidate(&mut candidates, provider_id); + + if let Some(stripped) = provider_id.strip_suffix("_api_key") { + Self::push_unique_candidate(&mut candidates, stripped); + } + + let host_alias_candidates = self.infer_provider_ids_from_host_aliases(api_host); + if host_alias_candidates.is_empty() { + for inferred_id in Self::infer_provider_ids_from_api_host(api_host) { + Self::push_unique_candidate(&mut candidates, inferred_id); + } + } else { + for inferred_id in host_alias_candidates { + Self::push_unique_candidate(&mut candidates, &inferred_id); + } + } + + candidates + } + fn push_unique_candidate(candidates: &mut Vec, candidate: &str) { if candidate.trim().is_empty() { return; @@ -1411,6 +1519,18 @@ impl ModelRegistryService { ModelFetchProtocol::OpenAiCompatible } + fn should_disable_registry_fallback( + api_host: &str, + provider_type: Option, + ) -> bool { + if matches!(provider_type, Some(ApiProviderType::AnthropicCompatible)) { + return true; + } + + let host = api_host.trim().to_lowercase(); + host.contains("/anthropic") + } + /// 构建模型枚举 API URL fn build_models_api_url(api_host: &str) -> String { let host = api_host.trim_end_matches('/'); @@ -1618,13 +1738,24 @@ impl ModelRegistryService { }; let mut headers = vec![("Content-Type".to_string(), "application/json".to_string())]; - let runtime_spec = request_type.runtime_spec(); + let runtime_spec = infer_managed_runtime_spec(request_type, normalized_host); if !api_key.trim().is_empty() { + let trimmed_api_key = api_key.trim(); let auth_value = runtime_spec .auth_prefix - .map(|prefix| format!("{prefix} {api_key}")) - .unwrap_or_else(|| api_key.to_string()); + .map(|prefix| format!("{prefix} {trimmed_api_key}")) + .unwrap_or_else(|| trimmed_api_key.to_string()); headers.push((runtime_spec.auth_header.to_string(), auth_value)); + + if matches!( + request_type, + ApiProviderType::Anthropic | ApiProviderType::AnthropicCompatible + ) && runtime_spec + .auth_header + .eq_ignore_ascii_case("Authorization") + { + headers.push(("x-api-key".to_string(), trimmed_api_key.to_string())); + } } for (name, value) in runtime_spec.extra_headers { @@ -1664,8 +1795,13 @@ impl ModelRegistryService { let models = match request.protocol { ModelFetchProtocol::OpenAiCompatible => { - let body = - Self::send_models_api_request(&client, &request.url, &request.headers).await?; + let body = Self::send_models_api_request( + &client, + &request.url, + &request.headers, + request.protocol, + ) + .await?; Self::parse_openai_models_response(&body)? } ModelFetchProtocol::Anthropic => { @@ -1675,8 +1811,13 @@ impl ModelRegistryService { Self::call_gemini_models_api(&client, &request.url, &request.headers).await? } ModelFetchProtocol::Ollama => { - let body = - Self::send_models_api_request(&client, &request.url, &request.headers).await?; + let body = Self::send_models_api_request( + &client, + &request.url, + &request.headers, + request.protocol, + ) + .await?; Self::parse_ollama_models_response(&body)? } ModelFetchProtocol::Unsupported => unreachable!(), @@ -1685,10 +1826,64 @@ impl ModelRegistryService { Ok((models, request.url)) } + fn summarize_http_error_body(body: &str) -> Option { + let normalized = body.split_whitespace().collect::>().join(" "); + if normalized.is_empty() { + return None; + } + + if Self::looks_like_html_error_body(&normalized) { + return Some("上游返回了 HTML 错误页".to_string()); + } + + const MAX_BODY_CHARS: usize = 240; + let mut summarized = String::new(); + for (index, ch) in normalized.chars().enumerate() { + if index >= MAX_BODY_CHARS { + summarized.push_str("..."); + break; + } + summarized.push(ch); + } + + Some(summarized) + } + + fn looks_like_html_error_body(body: &str) -> bool { + let preview = body.trim_start().chars().take(256).collect::(); + if preview.is_empty() { + return false; + } + + let preview = preview.to_ascii_lowercase(); + preview.starts_with("") + || preview.contains("") + } + + fn format_models_api_not_found_message(protocol: ModelFetchProtocol, body: &str) -> String { + match protocol { + ModelFetchProtocol::Anthropic => "当前 Anthropic 兼容入口未提供标准 /models 接口;若消息测试可用,请直接使用已配置的自定义模型,或改用厂商文档提供的模型枚举入口。" + .to_string(), + _ => { + let base_message = match Self::summarize_http_error_body(body) { + Some(summary) => format!("API 返回错误 404 Not Found: {summary}。"), + None => "API 返回错误 404 Not Found。".to_string(), + }; + + format!( + "{base_message}这通常表示 Base URL 路径不兼容,请检查 Provider Base URL 是否已经包含版本路径,或是否应直接使用 /models 端点。" + ) + } + } + } + async fn send_models_api_request( client: &reqwest::Client, url: &str, headers: &[(String, String)], + protocol: ModelFetchProtocol, ) -> Result { let mut request_builder = client.get(url); for (name, value) in headers { @@ -1708,9 +1903,7 @@ impl ModelRegistryService { if status == reqwest::StatusCode::NOT_FOUND { return Err(ModelsApiError::new( ModelFetchErrorKind::NotFound, - format!( - "API 返回错误 {status}: {body}(请求地址: {url})。这通常表示 Base URL 路径不兼容,请检查 Provider Base URL 是否已经包含版本路径,或是否应直接使用 /models 端点。" - ), + Self::format_models_api_not_found_message(protocol, &body), )); } let kind = if status == reqwest::StatusCode::UNAUTHORIZED { @@ -1720,10 +1913,11 @@ impl ModelRegistryService { } else { ModelFetchErrorKind::Other }; - return Err(ModelsApiError::new( - kind, - format!("API 返回错误 {status}: {body}(请求地址: {url})"), - )); + let message = match Self::summarize_http_error_body(&body) { + Some(summary) => format!("API 返回错误 {status}: {summary}"), + None => format!("API 返回错误 {status}"), + }; + return Err(ModelsApiError::new(kind, message)); } response.text().await.map_err(|e| { @@ -1765,7 +1959,13 @@ impl ModelRegistryService { request_url.query_pairs_mut().append_pair("after_id", after); } - let body = Self::send_models_api_request(client, request_url.as_ref(), headers).await?; + let body = Self::send_models_api_request( + client, + request_url.as_ref(), + headers, + ModelFetchProtocol::Anthropic, + ) + .await?; let response = Self::parse_anthropic_models_response(&body)?; models.extend(response.models); @@ -1838,7 +2038,13 @@ impl ModelRegistryService { .append_pair("pageToken", page_token); } - let body = Self::send_models_api_request(client, request_url.as_ref(), headers).await?; + let body = Self::send_models_api_request( + client, + request_url.as_ref(), + headers, + ModelFetchProtocol::Gemini, + ) + .await?; let response = Self::parse_gemini_models_response(&body)?; models.extend(response.models); @@ -2094,6 +2300,10 @@ struct OllamaModelDetails { pub enum ModelFetchSource { /// 从 API 获取 Api, + /// 从厂商目录获取 + Catalog, + /// 使用当前 Provider 显式配置的自定义模型 + CustomModels, /// 从本地文件回退 LocalFallback, } @@ -2254,6 +2464,73 @@ mod tests { .contains("https://open.bigmodel.cn/api/paas/v4")); } + #[test] + fn test_format_models_api_not_found_message_for_anthropic() { + let message = ModelRegistryService::format_models_api_not_found_message( + ModelFetchProtocol::Anthropic, + "404", + ); + + assert!(message.contains("当前 Anthropic 兼容入口未提供标准 /models 接口")); + assert!(!message.contains("")); + assert!(!message.contains("404 Not Found")); + assert!(!message.contains("Base URL 路径不兼容")); + } + + #[test] + fn test_format_models_api_not_found_message_summarizes_html_body_for_non_anthropic() { + let message = ModelRegistryService::format_models_api_not_found_message( + ModelFetchProtocol::OpenAiCompatible, + "404 Not Foundoops", + ); + + assert!(message.contains("API 返回错误 404 Not Found: 上游返回了 HTML 错误页。")); + assert!(!message.contains("")); + assert!(message.contains("Base URL 路径不兼容")); + } + + #[test] + fn test_prepare_model_fetch_request_adds_dual_auth_for_anthropic_compatible_host() { + let request = ModelRegistryService::prepare_model_fetch_request( + "compatible-test", + "https://api.minimaxi.com/anthropic", + "test-key", + Some(ApiProviderType::AnthropicCompatible), + ) + .expect("anthropic-compatible request should be prepared"); + + assert_eq!(request.protocol, ModelFetchProtocol::Anthropic); + assert_eq!(request.url, "https://api.minimaxi.com/anthropic/v1/models"); + assert!(request + .headers + .iter() + .any(|(name, value)| name == "Authorization" && value == "Bearer test-key")); + assert!(request + .headers + .iter() + .any(|(name, value)| name == "x-api-key" && value == "test-key")); + } + + #[test] + fn test_prepare_model_fetch_request_keeps_x_api_key_for_official_anthropic() { + let request = ModelRegistryService::prepare_model_fetch_request( + "anthropic", + "https://api.anthropic.com", + "test-key", + Some(ApiProviderType::Anthropic), + ) + .expect("request should be prepared"); + + assert!(request + .headers + .iter() + .any(|(name, value)| name == "x-api-key" && value == "test-key")); + assert!(!request + .headers + .iter() + .any(|(name, _)| name == "Authorization")); + } + fn create_service_with_resource_dir(resource_dir: std::path::PathBuf) -> ModelRegistryService { let conn = Connection::open_in_memory().expect("in-memory db"); let db: DbConnection = Arc::new(Mutex::new(conn)); @@ -2262,6 +2539,12 @@ mod tests { service } + fn create_service_with_repo_resource_dir() -> ModelRegistryService { + create_service_with_resource_dir( + std::path::PathBuf::from(env!("CARGO_MANIFEST_DIR")).join("../.."), + ) + } + #[test] fn test_infer_provider_ids_from_host_aliases_resources() { let temp = tempdir().expect("tempdir"); @@ -2340,6 +2623,77 @@ mod tests { ); } + #[test] + fn test_build_diagnostic_models_api_url_keeps_anthropic_compatible_provider_request() { + assert_eq!( + ModelRegistryService::build_diagnostic_models_api_url( + "compatible-test", + "https://api.minimaxi.com/anthropic", + Some(ApiProviderType::AnthropicCompatible), + ), + Some("https://api.minimaxi.com/anthropic/v1/models".to_string()) + ); + } + + #[test] + fn test_should_disable_registry_fallback_for_anthropic_compatible() { + assert!(ModelRegistryService::should_disable_registry_fallback( + "https://example.com/api/anthropic", + Some(ApiProviderType::AnthropicCompatible), + )); + assert!(ModelRegistryService::should_disable_registry_fallback( + "https://open.bigmodel.cn/api/anthropic", + None, + )); + assert!(!ModelRegistryService::should_disable_registry_fallback( + "https://api.openai.com/v1", + Some(ApiProviderType::Openai), + )); + } + + #[tokio::test] + async fn test_anthropic_compatible_local_fallback_returns_empty() { + let service = create_service_with_repo_resource_dir(); + service + .initialize() + .await + .expect("initialize model registry"); + + let fallback_models = service + .get_local_fallback_model_ids_with_hints( + "custom-minimax", + "https://api.minimaxi.com/anthropic", + Some(ApiProviderType::AnthropicCompatible), + &[ + "claude-opus-4-6".to_string(), + "claude-opus-4-5-20251101".to_string(), + ], + ) + .await; + + assert!(fallback_models.is_empty()); + } + + #[tokio::test] + async fn test_anthropic_compatible_local_fallback_keeps_explicit_custom_models() { + let service = create_service_with_repo_resource_dir(); + service + .initialize() + .await + .expect("initialize model registry"); + + let fallback_models = service + .get_local_fallback_model_ids_with_hints( + "custom-minimax", + "https://api.minimaxi.com/anthropic", + Some(ApiProviderType::AnthropicCompatible), + &["MiniMax-M2.7".to_string()], + ) + .await; + + assert_eq!(fallback_models, vec!["MiniMax-M2.7".to_string()]); + } + #[test] fn test_map_provider_type_to_registry_ids() { assert_eq!( diff --git a/src-tauri/crates/services/src/model_service.rs b/src-tauri/crates/services/src/model_service.rs index 7e997b178..d26816f40 100644 --- a/src-tauri/crates/services/src/model_service.rs +++ b/src-tauri/crates/services/src/model_service.rs @@ -2,6 +2,7 @@ //! //! 提供统一的模型获取、缓存和查询接口,支持从不同 Provider 获取模型列表。 +use lime_core::database::dao::api_key_provider::{infer_managed_runtime_spec, ApiProviderType}; use lime_core::database::dao::provider_pool::ProviderPoolDao; use lime_core::database::DbConnection; use lime_core::models::provider_pool_model::{ @@ -205,18 +206,29 @@ impl ModelService { url ); - let response = self + let runtime_spec = infer_managed_runtime_spec( + ApiProviderType::Anthropic, + base_url.unwrap_or("https://api.anthropic.com"), + ); + let auth_value = runtime_spec + .auth_prefix + .map(|prefix| format!("{prefix} {api_key}")) + .unwrap_or_else(|| api_key.to_string()); + + let mut request = self .client .get(&url) - .header("x-api-key", api_key) - .header("anthropic-version", "2023-06-01") - .timeout(self.timeout) - .send() - .await - .map_err(|e| { - tracing::error!("[MODEL_SERVICE] Anthropic 请求失败: {}", e); - format!("请求失败: {e}") - })?; + .header(runtime_spec.auth_header, auth_value) + .timeout(self.timeout); + + for (name, value) in runtime_spec.extra_headers { + request = request.header(*name, *value); + } + + let response = request.send().await.map_err(|e| { + tracing::error!("[MODEL_SERVICE] Anthropic 请求失败: {}", e); + format!("请求失败: {e}") + })?; let status = response.status(); tracing::info!("[MODEL_SERVICE] Anthropic 响应状态码: {}", status); diff --git a/src-tauri/crates/services/src/provider_pool_service.rs b/src-tauri/crates/services/src/provider_pool_service.rs index b6c2ffd36..bf4af4e97 100644 --- a/src-tauri/crates/services/src/provider_pool_service.rs +++ b/src-tauri/crates/services/src/provider_pool_service.rs @@ -10,6 +10,7 @@ use crate::provider_type_mapping::{ resolve_pool_provider_type_or_default, }; use chrono::Utc; +use lime_core::database::dao::api_key_provider::{infer_managed_runtime_spec, ApiProviderType}; use lime_core::database::dao::provider_pool::ProviderPoolDao; use lime_core::database::DbConnection; use lime_core::models::client_type::ClientType; @@ -1531,16 +1532,24 @@ impl ProviderPoolService { tracing::debug!("[HEALTH_CHECK] Claude API URL: {}, model: {}", url, model); - let response = self + let runtime_spec = infer_managed_runtime_spec(ApiProviderType::Anthropic, base); + let auth_value = runtime_spec + .auth_prefix + .map(|prefix| format!("{prefix} {api_key}")) + .unwrap_or_else(|| api_key.to_string()); + + let mut request = self .client .post(&url) - .header("x-api-key", api_key) - .header("anthropic-version", "2023-06-01") + .header(runtime_spec.auth_header, auth_value) .json(&request_body) - .timeout(self.health_check_timeout) - .send() - .await - .map_err(|e| format!("请求失败: {e}"))?; + .timeout(self.health_check_timeout); + + for (name, value) in runtime_spec.extra_headers { + request = request.header(*name, *value); + } + + let response = request.send().await.map_err(|e| format!("请求失败: {e}"))?; if response.status().is_success() { Ok(()) diff --git a/src-tauri/crates/skills/src/lime_llm_provider.rs b/src-tauri/crates/skills/src/lime_llm_provider.rs index 4b6bf40c0..64ab49516 100644 --- a/src-tauri/crates/skills/src/lime_llm_provider.rs +++ b/src-tauri/crates/skills/src/lime_llm_provider.rs @@ -7,6 +7,7 @@ use std::sync::Arc; use async_trait::async_trait; +use lime_core::database::dao::api_key_provider::ApiProviderType; use lime_core::database::DbConnection; use lime_core::models::anthropic::AnthropicMessagesRequest; #[cfg(test)] @@ -132,6 +133,7 @@ impl LimeLlmProvider { self.call_claude_api( api_key, base_url.as_deref(), + ApiProviderType::AnthropicCompatible, if matches!( credential.effective_prompt_cache_mode(), Some(lime_core::models::ProviderPromptCacheMode::Automatic) @@ -161,6 +163,7 @@ impl LimeLlmProvider { self.call_claude_api( api_key, base_url.as_deref(), + ApiProviderType::Anthropic, if matches!( credential.effective_prompt_cache_mode(), Some(lime_core::models::ProviderPromptCacheMode::Automatic) @@ -253,6 +256,7 @@ impl LimeLlmProvider { &self, api_key: &str, base_url: Option<&str>, + provider_type: ApiProviderType, prompt_cache_mode: PromptCacheMode, system_prompt: &str, user_message: &str, @@ -260,9 +264,10 @@ impl LimeLlmProvider { ) -> Result { use lime_core::models::anthropic::AnthropicMessage; - let claude = ClaudeCustomProvider::with_prompt_cache_mode( + let claude = ClaudeCustomProvider::with_provider_type_and_prompt_cache_mode( api_key.to_string(), base_url.map(|s| s.to_string()), + provider_type, prompt_cache_mode, ); diff --git a/src-tauri/resources/models/host_aliases.json b/src-tauri/resources/models/host_aliases.json index fafde79e2..df9405580 100644 --- a/src-tauri/resources/models/host_aliases.json +++ b/src-tauri/resources/models/host_aliases.json @@ -76,6 +76,18 @@ "contains": "mistral.ai", "providers": ["mistral"] }, + { + "contains": "minimaxi.com", + "providers": ["minimax"] + }, + { + "contains": "minimax.io", + "providers": ["minimax"] + }, + { + "contains": "xiaomimimo.com", + "providers": ["minimax-cn", "minimax"] + }, { "contains": "dashscope.aliyuncs.com", "providers": ["alibaba-cn", "alibaba"] diff --git a/src-tauri/resources/models/providers/minimax-cn.json b/src-tauri/resources/models/providers/minimax-cn.json index a323b8a31..bac4ee48b 100644 --- a/src-tauri/resources/models/providers/minimax-cn.json +++ b/src-tauri/resources/models/providers/minimax-cn.json @@ -5,6 +5,70 @@ "name": "MiniMax (China)" }, "models": [ + { + "id": "MiniMax-M2.7", + "name": "MiniMax-M2.7", + "family": "minimax", + "tier": "pro", + "capabilities": { + "vision": false, + "tools": true, + "streaming": true, + "json_mode": true, + "function_calling": true, + "reasoning": true + }, + "status": "active", + "is_latest": true + }, + { + "id": "MiniMax-M2.7-highspeed", + "name": "MiniMax-M2.7-highspeed", + "family": "minimax", + "tier": "mini", + "capabilities": { + "vision": false, + "tools": true, + "streaming": true, + "json_mode": true, + "function_calling": true, + "reasoning": true + }, + "status": "active", + "is_latest": false + }, + { + "id": "MiniMax-M2.5", + "name": "MiniMax-M2.5", + "family": "minimax", + "tier": "pro", + "capabilities": { + "vision": false, + "tools": true, + "streaming": true, + "json_mode": true, + "function_calling": true, + "reasoning": true + }, + "status": "active", + "is_latest": false + }, + { + "id": "MiniMax-M2.5-highspeed", + "name": "MiniMax-M2.5-highspeed", + "family": "minimax", + "tier": "mini", + "capabilities": { + "vision": false, + "tools": true, + "streaming": true, + "json_mode": true, + "function_calling": true, + "reasoning": true + }, + "status": "active", + "is_latest": false + }, { "id": "MiniMax-M2.1", "name": "MiniMax-M2.1", @@ -18,46 +82,10 @@ "function_calling": true, "reasoning": true }, - "pricing": { - "input": 0.3, - "output": 1.2, - "currency": "USD" - }, - "limits": { - "context": 204800, - "max_output": 131072 - }, "status": "active", - "release_date": "2025-12-23", - "is_latest": false - }, - { - "id": "MiniMax-M2", - "name": "MiniMax-M2", - "family": "minimax", - "tier": "mini", - "capabilities": { - "vision": false, - "tools": true, - "streaming": true, - "json_mode": true, - "function_calling": true, - "reasoning": true - }, - "pricing": { - "input": 0.3, - "output": 1.2, - "currency": "USD" - }, - "limits": { - "context": 196608, - "max_output": 128000 - }, - "status": "active", - "release_date": "2025-10-27", "is_latest": false } ], - "updated_at": "2026-01-06T10:24:55.370Z", + "updated_at": "2026-04-15T22:40:00.000Z", "source": "models.dev" } diff --git a/src-tauri/resources/models/providers/minimax.json b/src-tauri/resources/models/providers/minimax.json index b03558716..4f60f7fe9 100644 --- a/src-tauri/resources/models/providers/minimax.json +++ b/src-tauri/resources/models/providers/minimax.json @@ -5,6 +5,70 @@ "name": "MiniMax" }, "models": [ + { + "id": "MiniMax-M2.7", + "name": "MiniMax-M2.7", + "family": "minimax", + "tier": "pro", + "capabilities": { + "vision": false, + "tools": true, + "streaming": true, + "json_mode": true, + "function_calling": true, + "reasoning": true + }, + "status": "active", + "is_latest": true + }, + { + "id": "MiniMax-M2.7-highspeed", + "name": "MiniMax-M2.7-highspeed", + "family": "minimax", + "tier": "mini", + "capabilities": { + "vision": false, + "tools": true, + "streaming": true, + "json_mode": true, + "function_calling": true, + "reasoning": true + }, + "status": "active", + "is_latest": false + }, + { + "id": "MiniMax-M2.5", + "name": "MiniMax-M2.5", + "family": "minimax", + "tier": "pro", + "capabilities": { + "vision": false, + "tools": true, + "streaming": true, + "json_mode": true, + "function_calling": true, + "reasoning": true + }, + "status": "active", + "is_latest": false + }, + { + "id": "MiniMax-M2.5-highspeed", + "name": "MiniMax-M2.5-highspeed", + "family": "minimax", + "tier": "mini", + "capabilities": { + "vision": false, + "tools": true, + "streaming": true, + "json_mode": true, + "function_calling": true, + "reasoning": true + }, + "status": "active", + "is_latest": false + }, { "id": "MiniMax-M2.1", "name": "MiniMax-M2.1", @@ -18,46 +82,10 @@ "function_calling": true, "reasoning": true }, - "pricing": { - "input": 0.3, - "output": 1.2, - "currency": "USD" - }, - "limits": { - "context": 204800, - "max_output": 131072 - }, "status": "active", - "release_date": "2025-12-23", - "is_latest": false - }, - { - "id": "MiniMax-M2", - "name": "MiniMax-M2", - "family": "minimax", - "tier": "mini", - "capabilities": { - "vision": false, - "tools": true, - "streaming": true, - "json_mode": true, - "function_calling": true, - "reasoning": true - }, - "pricing": { - "input": 0.3, - "output": 1.2, - "currency": "USD" - }, - "limits": { - "context": 196608, - "max_output": 128000 - }, - "status": "active", - "release_date": "2025-10-27", "is_latest": false } ], - "updated_at": "2026-01-06T10:24:55.368Z", + "updated_at": "2026-04-15T22:40:00.000Z", "source": "models.dev" } diff --git a/src-tauri/src/app/bootstrap.rs b/src-tauri/src/app/bootstrap.rs index d3af3a79b..e4ce1745d 100644 --- a/src-tauri/src/app/bootstrap.rs +++ b/src-tauri/src/app/bootstrap.rs @@ -323,10 +323,7 @@ fn build_context_memory_config(config: &Config) -> ContextMemoryConfig { /// 初始化插件安装器 fn init_plugin_installer() -> Result { let db_path = database::get_db_path().map_err(|e| format!("获取数据库路径失败: {e}"))?; - let plugins_dir = dirs::data_dir() - .unwrap_or_else(|| std::path::PathBuf::from(".")) - .join("lime") - .join("plugins"); + let plugins_dir = lime_core::app_paths::best_effort_runtime_subdir("plugins"); let temp_dir = std::env::temp_dir().join("lime_plugin_install"); let _ = std::fs::create_dir_all(&plugins_dir); diff --git a/src-tauri/src/app/commands/api_test.rs b/src-tauri/src/app/commands/api_test.rs index 53848af2c..a7c9ff165 100644 --- a/src-tauri/src/app/commands/api_test.rs +++ b/src-tauri/src/app/commands/api_test.rs @@ -46,14 +46,14 @@ pub async fn check_api_compatibility( logs.write().await.add( "info", - &format!("[API检测] 开始检测 {provider_type} API 兼容性 (Claude Code 功能测试)..."), + &format!("[API检测] 开始检测 {provider_type} API 兼容性(代理工具调用能力测试)..."), ); let s = state.read().await; let mut results: Vec = Vec::new(); let mut warnings: Vec = Vec::new(); - // Claude Code 需要的测试项目 + // 代理工具调用主链需要的测试项目 let test_cases: Vec<(&str, &str)> = match provider_type { ProviderType::Kiro => vec![ ("claude-sonnet-4-5", "basic"), @@ -97,7 +97,7 @@ pub async fn check_api_compatibility( // 根据测试类型构建不同的请求 let test_request = match test_type { "tool_call" => { - // 测试 Tool Calls - Claude Code 核心功能 + // 测试 Tool Calls - 代理工具调用主链能力 crate::models::openai::ChatCompletionRequest { model: model.to_string(), messages: vec![crate::models::openai::ChatMessage { @@ -178,7 +178,7 @@ pub async fn check_api_compatibility( body.contains("\"name\"") && body.contains("\"toolUseId\""); if !has_tool_use { warnings.push(format!( - "{test_name}: 响应未包含 tool_use,Claude Code 可能无法正常工作" + "{test_name}: 响应未包含 tool_use,兼容代理工具调用能力可能无法正常工作" )); } } diff --git a/src-tauri/src/app/commands/config.rs b/src-tauri/src/app/commands/config.rs index 8336e48f2..365aeffb6 100644 --- a/src-tauri/src/app/commands/config.rs +++ b/src-tauri/src/app/commands/config.rs @@ -230,7 +230,7 @@ pub async fn update_provider_env_vars( let home = dirs::home_dir().ok_or("Cannot find home directory")?; // 根据 provider_type 确定要更新的环境变量 - // 参考 Claude Code 文档:https://code.claude.com/docs/en/llm-gateway + // 参考 Claude 兼容网关文档:https://code.claude.com/docs/en/llm-gateway let parsed_api_provider_type = provider_type.parse::().ok(); let env_vars = build_provider_env_vars(&provider_type, &api_host, api_key.as_deref()); diff --git a/src-tauri/src/app/runner.rs b/src-tauri/src/app/runner.rs index de7137cfd..404fe1d14 100644 --- a/src-tauri/src/app/runner.rs +++ b/src-tauri/src/app/runner.rs @@ -7,6 +7,8 @@ use tauri::{Emitter, Manager}; #[cfg(desktop)] use tauri::Listener; +#[cfg(target_os = "windows")] +use winapi::um::winuser::{MessageBoxW, MB_ICONERROR, MB_OK}; use crate::commands; use crate::tray::{TrayIconStatus, TrayManager, TrayStateSnapshot}; @@ -62,6 +64,42 @@ fn reveal_main_window(window: &tauri::WebviewWindow) { run_action("聚焦", &|| window.set_focus()); } +fn report_fatal_startup_error(stage: &str, error: &str) { + let message = format!("Lime 启动失败({stage})\n\n{error}"); + tracing::error!("{message}"); + eprintln!("{message}"); + show_fatal_startup_dialog("Lime 启动失败", &message); +} + +#[cfg(target_os = "windows")] +fn show_fatal_startup_dialog(title: &str, message: &str) { + use std::ffi::OsStr; + use std::iter; + use std::os::windows::ffi::OsStrExt; + + fn to_wide(value: &str) -> Vec { + OsStr::new(value) + .encode_wide() + .chain(iter::once(0)) + .collect() + } + + let title_wide = to_wide(title); + let message_wide = to_wide(message); + + unsafe { + MessageBoxW( + std::ptr::null_mut(), + message_wide.as_ptr(), + title_wide.as_ptr(), + MB_OK | MB_ICONERROR, + ); + } +} + +#[cfg(not(target_os = "windows"))] +fn show_fatal_startup_dialog(_title: &str, _message: &str) {} + /// 运行 Tauri 应用 /// /// 这是应用的主入口点,负责: @@ -78,8 +116,7 @@ pub fn run() { let config = match bootstrap::load_and_validate_config() { Ok(cfg) => cfg, Err(err) => { - tracing::error!("{}", err); - eprintln!("{err}"); + report_fatal_startup_error("加载配置", &err.to_string()); return; } }; @@ -95,8 +132,7 @@ pub fn run() { let states = match bootstrap::init_states(&config) { Ok(s) => s, Err(err) => { - tracing::error!("应用状态初始化失败: {}", err); - eprintln!("应用状态初始化失败: {err}"); + report_fatal_startup_error("初始化应用状态", &err); return; } }; @@ -212,7 +248,7 @@ pub fn run() { tracing::info!("[启动] 已禁用单实例插件(当前会话允许并行实例)"); } - builder + let run_result = builder .manage(state) .manage(logs) .manage(db) @@ -537,10 +573,7 @@ pub fn run() { { let app_handle = app.handle().clone(); tauri::async_runtime::spawn(async move { - // 获取应用数据目录 - let app_data_dir = dirs::data_dir() - .unwrap_or_else(|| std::path::PathBuf::from(".")) - .join("lime"); + let app_data_dir = lime_core::app_paths::best_effort_data_dir(); // 初始化 Connect 状态 match crate::commands::connect_cmd::init_connect_state(app_data_dir).await { @@ -1245,6 +1278,15 @@ pub fn run() { commands::execution_run_cmd::execution_run_get, commands::execution_run_cmd::execution_run_get_general_workbench_state, commands::execution_run_cmd::execution_run_list_general_workbench_history, + // SceneApp commands + commands::sceneapp_cmd::sceneapp_list_catalog, + commands::sceneapp_cmd::sceneapp_get_descriptor, + commands::sceneapp_cmd::sceneapp_plan_launch, + commands::sceneapp_cmd::sceneapp_create_automation_job, + commands::sceneapp_cmd::sceneapp_list_runs, + commands::sceneapp_cmd::sceneapp_get_run_summary, + commands::sceneapp_cmd::sceneapp_prepare_run_governance_artifact, + commands::sceneapp_cmd::sceneapp_get_scorecard, // Ecommerce Review Reply commands commands::ecommerce_review_reply_cmd::execute_ecommerce_review_reply, // Provider Pool commands @@ -1448,6 +1490,9 @@ pub fn run() { commands::aster_agent_cmd::command_api::session_api::agent_runtime_list_sessions, commands::aster_agent_cmd::command_api::runtime_api::agent_runtime_get_session, commands::aster_agent_cmd::command_api::runtime_api::agent_runtime_get_thread_read, + commands::aster_agent_cmd::command_api::runtime_api::agent_runtime_list_file_checkpoints, + commands::aster_agent_cmd::command_api::runtime_api::agent_runtime_get_file_checkpoint, + commands::aster_agent_cmd::command_api::runtime_api::agent_runtime_diff_file_checkpoint, commands::aster_agent_cmd::command_api::runtime_api::agent_runtime_export_analysis_handoff, commands::aster_agent_cmd::command_api::runtime_api::agent_runtime_export_handoff_bundle, commands::aster_agent_cmd::command_api::runtime_api::agent_runtime_export_evidence_pack, @@ -1595,6 +1640,7 @@ pub fn run() { commands::webview_cmd::open_chrome_profile_window, commands::webview_cmd::get_chrome_profile_sessions, commands::webview_cmd::close_chrome_profile_session, + commands::webview_cmd::cleanup_gui_smoke_chrome_profiles, commands::webview_cmd::get_chrome_bridge_endpoint_info, commands::webview_cmd::get_chrome_bridge_status, commands::webview_cmd::disconnect_browser_connector_session, @@ -1766,6 +1812,8 @@ pub fn run() { commands::memory_management_cmd::memory_get_auto_index, commands::memory_management_cmd::memory_toggle_auto, commands::memory_management_cmd::memory_update_auto_note, + commands::memory_management_cmd::memory_cleanup_memdir, + commands::memory_management_cmd::memory_scaffold_memdir, commands::memory_management_cmd::memory_scaffold_runtime_agents_template, commands::memory_management_cmd::memory_ensure_workspace_local_agents_gitignore, // Unified Memory commands @@ -1857,8 +1905,11 @@ pub fn run() { commands::telegram_remote_cmd::stop_telegram_remote, commands::telegram_remote_cmd::get_telegram_remote_status, ]) - .run(tauri::generate_context!()) - .expect("error while running tauri application"); + .run(tauri::generate_context!()); + + if let Err(error) = run_result { + report_fatal_startup_error("启动 Tauri 应用", &error.to_string()); + } } #[cfg(test)] diff --git a/src-tauri/src/commands/api_key_provider_cmd.rs b/src-tauri/src/commands/api_key_provider_cmd.rs index 8e9260112..d69b283ae 100644 --- a/src-tauri/src/commands/api_key_provider_cmd.rs +++ b/src-tauri/src/commands/api_key_provider_cmd.rs @@ -149,7 +149,7 @@ fn provider_to_display(provider: &ApiKeyProvider, api_key_count: usize) -> Provi ProviderDisplay { id: provider.id.clone(), name: provider.name.clone(), - provider_type: provider.provider_type.to_string(), + provider_type: provider.effective_provider_type().to_string(), api_host: provider.api_host.clone(), is_system: provider.is_system, group: provider.group.to_string(), @@ -539,7 +539,7 @@ pub async fn test_api_key_provider_connection( .get_local_fallback_model_ids_with_hints( &provider_id, &provider.provider.api_host, - Some(provider.provider.provider_type), + Some(provider.provider.effective_provider_type()), &provider.provider.custom_models, ) .await @@ -575,7 +575,7 @@ pub async fn test_api_key_provider_chat( .get_local_fallback_model_ids_with_hints( &provider_id, &provider.provider.api_host, - Some(provider.provider.provider_type), + Some(provider.provider.effective_provider_type()), &provider.provider.custom_models, ) .await diff --git a/src-tauri/src/commands/aster_agent_cmd/analysis_skill_launch.rs b/src-tauri/src/commands/aster_agent_cmd/analysis_skill_launch.rs index b750a12d2..084b6bb45 100644 --- a/src-tauri/src/commands/aster_agent_cmd/analysis_skill_launch.rs +++ b/src-tauri/src/commands/aster_agent_cmd/analysis_skill_launch.rs @@ -21,6 +21,32 @@ fn extract_object_string( .map(str::to_string) } +fn extract_object_bool( + object: &serde_json::Map, + keys: &[&str], +) -> Option { + keys.iter() + .filter_map(|key| object.get(*key)) + .find_map(serde_json::Value::as_bool) +} + +fn extract_object_string_array( + object: &serde_json::Map, + keys: &[&str], +) -> Vec { + keys.iter() + .filter_map(|key| object.get(*key)) + .find_map(|value| value.as_array().cloned()) + .map(|items| { + items + .into_iter() + .filter_map(|item| item.as_str().map(str::trim).map(str::to_string)) + .filter(|item| !item.is_empty()) + .collect::>() + }) + .unwrap_or_default() +} + fn ensure_harness_workbench_chat_mode(value: &mut serde_json::Value, launch_keys: &[&str]) { let Some(root) = value.as_object_mut() else { return; @@ -190,6 +216,15 @@ fn build_analysis_skill_launch_system_prompt( let focus = extract_object_string(analysis_request, &["focus"]); let style = extract_object_string(analysis_request, &["style"]); let output_format = extract_object_string(analysis_request, &["output_format", "outputFormat"]); + let analysis_mode = extract_object_string(analysis_request, &["analysis_mode", "analysisMode"]); + let explicit_paths = extract_object_string_array(analysis_request, &["paths"]); + let require_fresh_read = extract_object_bool( + analysis_request, + &["require_fresh_read", "requireFreshRead"], + ) + .unwrap_or(false); + let follow_up = + extract_object_bool(analysis_request, &["follow_up", "followUp"]).unwrap_or(false); let project_id = extract_object_string(analysis_request, &["project_id", "projectId"]); let content_id = extract_object_string(analysis_request, &["content_id", "contentId"]); let entry_source = extract_object_string(analysis_request, &["entry_source", "entrySource"]) @@ -237,6 +272,40 @@ fn build_analysis_skill_launch_system_prompt( format!("- 当前分析目标:{prompt}"), ]; + if let Some(value) = analysis_mode.as_deref() { + lines.push(format!("- 当前分析模式:{value}。")); + } + if !explicit_paths.is_empty() { + lines.push("- 当前存在显式本地路径,优先围绕这些路径做第一批只读工具调用。".to_string()); + for path in explicit_paths.iter().take(3) { + lines.push(format!("- 优先路径:{path}。")); + } + } + if follow_up { + lines.push( + "- 这是基于上一轮仓库分析的 follow-up,必须沿用已有路径与上下文继续深挖,不要退回普通聊天直答。" + .to_string(), + ); + } + if require_fresh_read { + lines.push( + "- 当前请求要求重新读取或补齐新证据;至少先完成一批新的只读工具调用,再输出最终结论。不要只基于上一轮缓存或当前记忆直接作答。" + .to_string(), + ); + } + if matches!(analysis_mode.as_deref(), Some("local_repo")) { + lines.push( + "- 当前任务属于本地项目 / 仓库分析,不要只读 1 个文件就仓促下结论;至少补齐多个关键证据点后再给总评。" + .to_string(), + ); + if matches!(output_format.as_deref(), Some(value) if value.contains("架构图")) { + lines.push( + "- 用户要求输出架构图时,优先覆盖依赖清单、前端入口、后端入口等关键事实源,再整理成架构结论;若证据仍不足,明确写出缺口。" + .to_string(), + ); + } + } + if let Some(value) = content.as_deref() { lines.push(format!("- 当前显式正文:{value}。")); } diff --git a/src-tauri/src/commands/aster_agent_cmd/command_api.rs b/src-tauri/src/commands/aster_agent_cmd/command_api.rs index ae300a75d..9bfe53733 100644 --- a/src-tauri/src/commands/aster_agent_cmd/command_api.rs +++ b/src-tauri/src/commands/aster_agent_cmd/command_api.rs @@ -68,13 +68,14 @@ pub(crate) use provider_api::{ aster_agent_reset, aster_agent_status, }; pub(crate) use runtime_api::{ - agent_runtime_compact_session, agent_runtime_export_analysis_handoff, - agent_runtime_export_evidence_pack, agent_runtime_export_handoff_bundle, - agent_runtime_export_replay_case, agent_runtime_get_session, agent_runtime_get_thread_read, + agent_runtime_compact_session, agent_runtime_diff_file_checkpoint, + agent_runtime_export_analysis_handoff, agent_runtime_export_evidence_pack, + agent_runtime_export_handoff_bundle, agent_runtime_export_replay_case, + agent_runtime_get_file_checkpoint, agent_runtime_get_session, agent_runtime_get_thread_read, agent_runtime_get_tool_inventory, agent_runtime_interrupt_turn, - agent_runtime_promote_queued_turn, agent_runtime_remove_queued_turn, - agent_runtime_replay_request, agent_runtime_resume_thread, agent_runtime_save_review_decision, - agent_runtime_submit_turn, + agent_runtime_list_file_checkpoints, agent_runtime_promote_queued_turn, + agent_runtime_remove_queued_turn, agent_runtime_replay_request, agent_runtime_resume_thread, + agent_runtime_save_review_decision, agent_runtime_submit_turn, }; pub(crate) use session_api::{ agent_runtime_create_session, agent_runtime_list_sessions, agent_runtime_update_session, diff --git a/src-tauri/src/commands/aster_agent_cmd/command_api/runtime_api.rs b/src-tauri/src/commands/aster_agent_cmd/command_api/runtime_api.rs index ec9c3cb95..8de115640 100644 --- a/src-tauri/src/commands/aster_agent_cmd/command_api/runtime_api.rs +++ b/src-tauri/src/commands/aster_agent_cmd/command_api/runtime_api.rs @@ -3,7 +3,11 @@ use crate::services::runtime_analysis_handoff_service::{ export_runtime_analysis_handoff, RuntimeAnalysisHandoffExportResult, }; use crate::services::runtime_evidence_pack_service::{ - export_runtime_evidence_pack, RuntimeEvidencePackExportResult, + export_runtime_evidence_pack, resolve_runtime_export_workspace_root, + RuntimeEvidencePackExportResult, +}; +use crate::services::runtime_file_checkpoint_service::{ + diff_file_checkpoint, get_file_checkpoint, list_file_checkpoints, }; use crate::services::runtime_handoff_artifact_service::{ export_runtime_handoff_bundle, RuntimeHandoffBundleExportResult, @@ -17,7 +21,6 @@ use crate::services::runtime_review_decision_service::{ }; use crate::services::thread_reliability_projection_service::sync_thread_reliability_projection; use std::path::PathBuf; - async fn resume_runtime_queue_with_warning( runtime: &RuntimeCommandContext, session_id: &str, @@ -219,44 +222,111 @@ pub async fn agent_runtime_get_thread_read( )) } +/// 统一运行时:列出当前线程的文件快照。 +#[tauri::command] +pub async fn agent_runtime_list_file_checkpoints( + app: AppHandle, + state: State<'_, AsterAgentState>, + db: State<'_, DbConnection>, + api_key_provider_service: State<'_, ApiKeyProviderServiceState>, + logs: State<'_, LogState>, + config_manager: State<'_, GlobalConfigManagerState>, + mcp_manager: State<'_, McpManagerState>, + automation_state: State<'_, AutomationServiceState>, + request: AgentRuntimeListFileCheckpointsRequest, +) -> Result { + let runtime = build_runtime_command_context( + app, + state, + db, + api_key_provider_service, + logs, + config_manager, + mcp_manager, + automation_state, + ); + tracing::info!("[AsterAgent] 列出文件快照: {}", request.session_id); + let context = + load_runtime_export_context(&runtime, &request.session_id, "列出文件快照前").await?; + Ok(list_file_checkpoints(&context.detail)) +} + +/// 统一运行时:获取单个文件快照详情。 +#[tauri::command] +pub async fn agent_runtime_get_file_checkpoint( + app: AppHandle, + state: State<'_, AsterAgentState>, + db: State<'_, DbConnection>, + api_key_provider_service: State<'_, ApiKeyProviderServiceState>, + logs: State<'_, LogState>, + config_manager: State<'_, GlobalConfigManagerState>, + mcp_manager: State<'_, McpManagerState>, + automation_state: State<'_, AutomationServiceState>, + request: AgentRuntimeGetFileCheckpointRequest, +) -> Result { + let runtime = build_runtime_command_context( + app, + state, + db, + api_key_provider_service, + logs, + config_manager, + mcp_manager, + automation_state, + ); + tracing::info!( + "[AsterAgent] 获取文件快照详情: session_id={}, checkpoint_id={}", + request.session_id, + request.checkpoint_id + ); + let context = + load_runtime_export_context(&runtime, &request.session_id, "获取文件快照详情前").await?; + get_file_checkpoint( + &context.detail, + &context.workspace_root, + request.checkpoint_id.as_str(), + ) +} + +/// 统一运行时:获取单个文件快照 diff。 +#[tauri::command] +pub async fn agent_runtime_diff_file_checkpoint( + app: AppHandle, + state: State<'_, AsterAgentState>, + db: State<'_, DbConnection>, + api_key_provider_service: State<'_, ApiKeyProviderServiceState>, + logs: State<'_, LogState>, + config_manager: State<'_, GlobalConfigManagerState>, + mcp_manager: State<'_, McpManagerState>, + automation_state: State<'_, AutomationServiceState>, + request: AgentRuntimeDiffFileCheckpointRequest, +) -> Result { + let runtime = build_runtime_command_context( + app, + state, + db, + api_key_provider_service, + logs, + config_manager, + mcp_manager, + automation_state, + ); + tracing::info!( + "[AsterAgent] 获取文件快照 diff: session_id={}, checkpoint_id={}", + request.session_id, + request.checkpoint_id + ); + let context = + load_runtime_export_context(&runtime, &request.session_id, "获取文件快照 diff 前").await?; + diff_file_checkpoint(&context.detail, request.checkpoint_id.as_str()) +} + struct RuntimeExportContext { detail: SessionDetail, thread_read: AgentRuntimeThreadReadModel, workspace_root: PathBuf, } -fn resolve_runtime_export_workspace_root( - db: &DbConnection, - detail: &SessionDetail, -) -> Result { - if let Some(workspace_id) = detail - .workspace_id - .as_deref() - .map(str::trim) - .filter(|value| !value.is_empty()) - { - let manager = WorkspaceManager::new(db.clone()); - let workspace_id = workspace_id.to_string(); - let workspace = manager - .get(&workspace_id) - .map_err(|error| format!("读取 workspace 失败: {error}"))? - .ok_or_else(|| format!("Workspace 不存在: {workspace_id}"))?; - let ensured = ensure_workspace_ready_with_auto_relocate(&manager, &workspace)?; - return Ok(ensured.root_path); - } - - if let Some(working_dir) = detail - .working_dir - .as_deref() - .map(str::trim) - .filter(|value| !value.is_empty()) - { - return Ok(PathBuf::from(working_dir)); - } - - Err("当前会话缺少 workspace / working_dir,无法导出运行时制品".to_string()) -} - async fn load_runtime_export_context( runtime: &RuntimeCommandContext, session_id: &str, diff --git a/src-tauri/src/commands/aster_agent_cmd/dto.rs b/src-tauri/src/commands/aster_agent_cmd/dto.rs index a904ce1ac..060d9a295 100644 --- a/src-tauri/src/commands/aster_agent_cmd/dto.rs +++ b/src-tauri/src/commands/aster_agent_cmd/dto.rs @@ -1,4 +1,5 @@ use super::*; +use crate::services::runtime_file_checkpoint_service; use chrono::{DateTime, Utc}; use lime_core::models::model_registry::ModelCapabilities; @@ -249,6 +250,28 @@ pub struct AgentRuntimeReplayRequestRequest { pub request_id: String, } +#[derive(Debug, Deserialize)] +pub struct AgentRuntimeListFileCheckpointsRequest { + #[serde(alias = "sessionId")] + pub session_id: String, +} + +#[derive(Debug, Deserialize)] +pub struct AgentRuntimeGetFileCheckpointRequest { + #[serde(alias = "sessionId")] + pub session_id: String, + #[serde(alias = "checkpointId")] + pub checkpoint_id: String, +} + +#[derive(Debug, Deserialize)] +pub struct AgentRuntimeDiffFileCheckpointRequest { + #[serde(alias = "sessionId")] + pub session_id: String, + #[serde(alias = "checkpointId")] + pub checkpoint_id: String, +} + #[derive(Debug, Deserialize)] pub struct AgentRuntimeRemoveQueuedTurnRequest { #[serde(alias = "sessionId")] @@ -424,6 +447,82 @@ pub struct AgentRuntimeCompactionBoundarySnapshot { pub detail: Option, } +#[derive(Debug, Clone, Serialize, Deserialize)] +pub struct AgentRuntimeFileCheckpointSummary { + pub checkpoint_id: String, + pub turn_id: String, + pub path: String, + pub source: String, + pub updated_at: String, + #[serde(skip_serializing_if = "Option::is_none")] + pub version_no: Option, + #[serde(skip_serializing_if = "Option::is_none")] + pub version_id: Option, + #[serde(skip_serializing_if = "Option::is_none")] + pub request_id: Option, + #[serde(skip_serializing_if = "Option::is_none")] + pub title: Option, + #[serde(skip_serializing_if = "Option::is_none")] + pub kind: Option, + #[serde(skip_serializing_if = "Option::is_none")] + pub status: Option, + #[serde(skip_serializing_if = "Option::is_none")] + pub preview_text: Option, + #[serde(skip_serializing_if = "Option::is_none")] + pub snapshot_path: Option, + pub validation_issue_count: usize, +} + +#[derive(Debug, Clone, Serialize, Deserialize)] +pub struct AgentRuntimeFileCheckpointThreadSummary { + pub count: usize, + #[serde(skip_serializing_if = "Option::is_none")] + pub latest_checkpoint: Option, +} + +#[derive(Debug, Clone, Serialize, Deserialize)] +pub struct AgentRuntimeFileCheckpointListResult { + pub session_id: String, + pub thread_id: String, + pub checkpoint_count: usize, + #[serde(default)] + pub checkpoints: Vec, +} + +#[derive(Debug, Clone, Serialize, Deserialize)] +pub struct AgentRuntimeFileCheckpointDetail { + pub session_id: String, + pub thread_id: String, + pub checkpoint: AgentRuntimeFileCheckpointSummary, + pub live_path: String, + pub snapshot_path: String, + #[serde(skip_serializing_if = "Option::is_none")] + pub checkpoint_document: Option, + #[serde(skip_serializing_if = "Option::is_none")] + pub live_document: Option, + #[serde(default)] + pub version_history: Vec, + #[serde(default)] + pub validation_issues: Vec, + #[serde(skip_serializing_if = "Option::is_none")] + pub metadata: Option, + #[serde(skip_serializing_if = "Option::is_none")] + pub content: Option, +} + +#[derive(Debug, Clone, Serialize, Deserialize)] +pub struct AgentRuntimeFileCheckpointDiffResult { + pub session_id: String, + pub thread_id: String, + pub checkpoint: AgentRuntimeFileCheckpointSummary, + #[serde(skip_serializing_if = "Option::is_none")] + pub current_version_id: Option, + #[serde(skip_serializing_if = "Option::is_none")] + pub previous_version_id: Option, + #[serde(skip_serializing_if = "Option::is_none")] + pub diff: Option, +} + #[derive(Debug, Clone, Serialize, Deserialize)] pub struct AgentRuntimeThreadDiagnostics { #[serde(skip_serializing_if = "Option::is_none")] @@ -492,6 +591,8 @@ pub struct AgentRuntimeThreadReadModel { #[serde(skip_serializing_if = "Option::is_none")] pub latest_compaction_boundary: Option, #[serde(skip_serializing_if = "Option::is_none")] + pub file_checkpoint_summary: Option, + #[serde(skip_serializing_if = "Option::is_none")] pub diagnostics: Option, } @@ -649,6 +750,8 @@ impl AgentRuntimeThreadReadModel { .as_ref() .and_then(|value| value.latest_context_compaction.as_ref()), ); + let file_checkpoint_summary = + runtime_file_checkpoint_service::build_thread_file_checkpoint_summary(detail); let active_turn = detail .turns .iter() @@ -713,6 +816,7 @@ impl AgentRuntimeThreadReadModel { .map(|turn| turn.updated_at.clone()) .or_else(|| Some(detail.updated_at.to_string())), latest_compaction_boundary, + file_checkpoint_summary, diagnostics, } } diff --git a/src-tauri/src/commands/aster_agent_cmd/mod.rs b/src-tauri/src/commands/aster_agent_cmd/mod.rs index a2245550b..7a68d3f05 100644 --- a/src-tauri/src/commands/aster_agent_cmd/mod.rs +++ b/src-tauri/src/commands/aster_agent_cmd/mod.rs @@ -335,15 +335,17 @@ pub(crate) use browser_assist::{ #[allow(unused_imports)] pub(crate) use command_api::{ agent_runtime_close_subagent, agent_runtime_compact_session, agent_runtime_create_session, - agent_runtime_export_analysis_handoff, agent_runtime_export_evidence_pack, - agent_runtime_export_handoff_bundle, agent_runtime_export_replay_case, - agent_runtime_get_session, agent_runtime_get_thread_read, agent_runtime_get_tool_inventory, - agent_runtime_interrupt_turn, agent_runtime_list_sessions, agent_runtime_promote_queued_turn, - agent_runtime_remove_queued_turn, agent_runtime_replay_request, agent_runtime_resume_subagent, - agent_runtime_resume_thread, agent_runtime_save_review_decision, - agent_runtime_send_subagent_input, agent_runtime_spawn_subagent, agent_runtime_submit_turn, - agent_runtime_update_session, agent_runtime_wait_subagents, aster_agent_configure_from_pool, - aster_agent_configure_provider, aster_agent_init, aster_agent_reset, aster_agent_status, + agent_runtime_diff_file_checkpoint, agent_runtime_export_analysis_handoff, + agent_runtime_export_evidence_pack, agent_runtime_export_handoff_bundle, + agent_runtime_export_replay_case, agent_runtime_get_file_checkpoint, agent_runtime_get_session, + agent_runtime_get_thread_read, agent_runtime_get_tool_inventory, agent_runtime_interrupt_turn, + agent_runtime_list_file_checkpoints, agent_runtime_list_sessions, + agent_runtime_promote_queued_turn, agent_runtime_remove_queued_turn, + agent_runtime_replay_request, agent_runtime_resume_subagent, agent_runtime_resume_thread, + agent_runtime_save_review_decision, agent_runtime_send_subagent_input, + agent_runtime_spawn_subagent, agent_runtime_submit_turn, agent_runtime_update_session, + agent_runtime_wait_subagents, aster_agent_configure_from_pool, aster_agent_configure_provider, + aster_agent_init, aster_agent_reset, aster_agent_status, }; pub(crate) use cover_skill_launch::{ append_cover_skill_launch_session_permissions, merge_system_prompt_with_cover_skill_launch, @@ -360,8 +362,12 @@ pub(crate) use dto::{ build_incidents, build_last_outcome, build_pending_requests, AgentRuntimeActionType, AgentRuntimeCloseSubagentRequest, AgentRuntimeCloseSubagentResponse, AgentRuntimeCompactSessionRequest, AgentRuntimeDiagnosticPendingRequestSample, - AgentRuntimeDiagnosticWarningSample, AgentRuntimeIncidentView, - AgentRuntimeInterruptTurnRequest, AgentRuntimeOutcomeView, + AgentRuntimeDiagnosticWarningSample, AgentRuntimeDiffFileCheckpointRequest, + AgentRuntimeFileCheckpointDetail, AgentRuntimeFileCheckpointDiffResult, + AgentRuntimeFileCheckpointListResult, AgentRuntimeFileCheckpointSummary, + AgentRuntimeFileCheckpointThreadSummary, AgentRuntimeGetFileCheckpointRequest, + AgentRuntimeIncidentView, AgentRuntimeInterruptTurnRequest, + AgentRuntimeListFileCheckpointsRequest, AgentRuntimeOutcomeView, AgentRuntimePromoteQueuedTurnRequest, AgentRuntimeRemoveQueuedTurnRequest, AgentRuntimeReplayRequestRequest, AgentRuntimeReplayedActionRequiredView, AgentRuntimeRequestView, AgentRuntimeRespondActionRequest, AgentRuntimeResumeSubagentRequest, diff --git a/src-tauri/src/commands/aster_agent_cmd/run_metadata/social_artifacts.rs b/src-tauri/src/commands/aster_agent_cmd/run_metadata/social_artifacts.rs index 3f8347182..a05f11f42 100644 --- a/src-tauri/src/commands/aster_agent_cmd/run_metadata/social_artifacts.rs +++ b/src-tauri/src/commands/aster_agent_cmd/run_metadata/social_artifacts.rs @@ -26,6 +26,14 @@ pub(in crate::commands::aster_agent_cmd) struct ChatRunObservation { Option, pub(in crate::commands::aster_agent_cmd) provider_continuation: Option, + pub(in crate::commands::aster_agent_cmd) browser_runtime_ref: Option, +} + +#[derive(Debug, Clone, Default, PartialEq, Eq)] +pub(in crate::commands::aster_agent_cmd) struct ObservedBrowserRuntimeRef { + pub(in crate::commands::aster_agent_cmd) profile_key: Option, + pub(in crate::commands::aster_agent_cmd) session_id: Option, + pub(in crate::commands::aster_agent_cmd) target_id: Option, } impl ChatRunObservation { @@ -58,6 +66,11 @@ impl ChatRunObservation { ) { self.record_provider_continuation(provider_continuation); } + if let Some(browser_runtime_ref) = + extract_browser_runtime_ref_from_tool_result_metadata(metadata) + { + self.record_browser_runtime_ref(browser_runtime_ref); + } for path in extract_artifact_paths_from_tool_result_metadata(metadata, workspace_root) { @@ -94,6 +107,22 @@ impl ChatRunObservation { self.provider_continuation = Some(provider_continuation); } + fn record_browser_runtime_ref(&mut self, browser_runtime_ref: ObservedBrowserRuntimeRef) { + let current = self.browser_runtime_ref.clone().unwrap_or_default(); + let merged = ObservedBrowserRuntimeRef { + profile_key: browser_runtime_ref.profile_key.or(current.profile_key), + session_id: browser_runtime_ref.session_id.or(current.session_id), + target_id: browser_runtime_ref.target_id.or(current.target_id), + }; + + if merged.profile_key.is_none() && merged.session_id.is_none() && merged.target_id.is_none() + { + return; + } + + self.browser_runtime_ref = Some(merged); + } + pub(in crate::commands::aster_agent_cmd) fn record_artifact_path( &mut self, path: String, @@ -255,6 +284,75 @@ fn extract_artifact_paths_from_tool_result_metadata( paths } +fn extract_nested_value<'a>( + value: &'a serde_json::Value, + path: &[&str], +) -> Option<&'a serde_json::Value> { + let mut current = value; + for segment in path { + current = current.get(*segment)?; + } + Some(current) +} + +fn read_first_string_from_value_objects( + candidates: &[Option<&serde_json::Value>], + keys: &[&str], +) -> Option { + candidates.iter().find_map(|candidate| { + let object = candidate.and_then(serde_json::Value::as_object)?; + keys.iter().find_map(|key| { + object + .get(*key) + .and_then(serde_json::Value::as_str) + .map(str::trim) + .filter(|value| !value.is_empty()) + .map(str::to_string) + }) + }) +} + +fn extract_browser_runtime_ref_from_tool_result_metadata( + metadata: &HashMap, +) -> Option { + let candidates = [ + metadata.get("browser_runtime_ref"), + metadata.get("browserRuntimeRef"), + metadata.get("browser_session"), + metadata.get("browserSession"), + metadata.get("session"), + metadata.get("result"), + metadata + .get("result") + .and_then(|value| value.get("browser_session")), + metadata + .get("result") + .and_then(|value| value.get("browserSession")), + metadata + .get("result") + .and_then(|value| extract_nested_value(value, &["data", "browser_session"])), + metadata + .get("result") + .and_then(|value| extract_nested_value(value, &["data", "browserSession"])), + ]; + + let profile_key = + read_first_string_from_value_objects(&candidates, &["profile_key", "profileKey"]); + let session_id = + read_first_string_from_value_objects(&candidates, &["session_id", "sessionId"]); + let target_id = read_first_string_from_value_objects(&candidates, &["target_id", "targetId"]); + + if profile_key.is_none() && session_id.is_none() && target_id.is_none() { + return None; + } + + Some(ObservedBrowserRuntimeRef { + profile_key, + session_id, + target_id, + }) +} + fn should_track_social_artifact(request_metadata: Option<&serde_json::Value>, path: &str) -> bool { if extract_harness_string(request_metadata, &["theme", "harness_theme"]) .map(|theme| theme == "general") @@ -545,5 +643,16 @@ pub(in crate::commands::aster_agent_cmd) fn build_chat_run_finish_metadata( ); } + if let Some(browser_runtime_ref) = observation.browser_runtime_ref.as_ref() { + metadata.insert( + "browser_runtime_ref".to_string(), + serde_json::json!({ + "profile_key": browser_runtime_ref.profile_key, + "session_id": browser_runtime_ref.session_id, + "target_id": browser_runtime_ref.target_id, + }), + ); + } + serde_json::Value::Object(metadata) } diff --git a/src-tauri/src/commands/aster_agent_cmd/runtime_turn.rs b/src-tauri/src/commands/aster_agent_cmd/runtime_turn.rs index d40dcd3fe..c9d8f6027 100644 --- a/src-tauri/src/commands/aster_agent_cmd/runtime_turn.rs +++ b/src-tauri/src/commands/aster_agent_cmd/runtime_turn.rs @@ -19,7 +19,6 @@ const TURN_LOCAL_PATH_FOCUS_PROMPT_MARKER: &str = "【本回合本地路径焦 const LIME_RUNTIME_METADATA_KEY: &str = "lime_runtime"; const LIME_RUNTIME_AUTO_COMPACT_KEY: &str = "auto_compact"; const LIME_RUNTIME_TOOL_SURFACE_KEY: &str = "tool_surface"; -const FAST_CHAT_TOOL_SURFACE_DIRECT_ANSWER: &str = "direct_answer"; const FAST_CHAT_TOOL_SURFACE_LOCAL_WORKSPACE: &str = "local_workspace"; const AUTO_RUNTIME_MEMORY_MIN_USER_CHARS: usize = 12; const AUTO_RUNTIME_MEMORY_MIN_ASSISTANT_CHARS: usize = 48; @@ -226,6 +225,10 @@ fn merge_system_prompt_with_explicit_local_path_focus( "- 第一批只围绕这些显式路径做 2 到 4 个只读工具调用,优先精确搜索和读取关键文件。" .to_string(), ); + lines.push( + "- 如果有多个彼此独立的目录或文件需要核对,优先在同一批里并行完成这些只读调用,不要一轮只看一个。" + .to_string(), + ); if should_warn_about_workspace { lines.push(format!( "- 不要先扫描当前默认工作目录 {workspace_root} 或其它无关目录,除非这些显式路径证据不足,或用户明确要求比较当前工作区。" @@ -235,6 +238,10 @@ fn merge_system_prompt_with_explicit_local_path_focus( "- 如果这些显式路径不存在、无法读取,或必须回退到其它路径,先在用户可见结论正文里说明原因,再继续下一批。" .to_string(), ); + lines.push( + "- 不要在只拿到一两个证据点时就仓促下结论;如果证据还不够,继续下一批读取后再总结。" + .to_string(), + ); let focus_prompt = lines.join("\n"); match base_prompt { @@ -2802,53 +2809,6 @@ fn request_metadata_contains_full_runtime_context( .unwrap_or(false) } -fn message_suggests_local_workspace_tooling(message: &str) -> bool { - let trimmed = message.trim(); - if trimmed.contains('/') - || trimmed.contains('\\') - || trimmed.contains(".rs") - || trimmed.contains(".ts") - || trimmed.contains(".tsx") - || trimmed.contains(".js") - || trimmed.contains(".json") - || trimmed.contains("AGENTS.md") - || trimmed.contains("Cargo.toml") - || trimmed.contains("package.json") - { - return true; - } - - let normalized = trimmed.to_ascii_lowercase(); - [ - "项目", - "代码", - "仓库", - "目录", - "文件", - "路径", - "读一下", - "读取", - "分析代码", - "修复", - "报错", - "repo", - "repository", - "project", - "codebase", - "source tree", - "read ", - "grep", - "cargo", - "npm", - "bug", - "fix", - "path", - "workspace", - ] - .iter() - .any(|keyword| normalized.contains(keyword)) -} - fn resolve_fast_chat_tool_surface_mode( request: &AsterChatRequest, execution_profile: TurnExecutionProfile, @@ -2860,10 +2820,10 @@ fn resolve_fast_chat_tool_surface_mode( return None; } - if message_suggests_local_workspace_tooling(&request.message) { + if !extract_explicit_local_focus_paths_from_message(&request.message).is_empty() { Some(FAST_CHAT_TOOL_SURFACE_LOCAL_WORKSPACE) } else { - Some(FAST_CHAT_TOOL_SURFACE_DIRECT_ANSWER) + None } } @@ -4655,8 +4615,8 @@ mod tests { use aster::providers::base::{Provider, ProviderMetadata, ProviderUsage, Usage}; use aster::providers::errors::ProviderError; use aster::session::{ - initialize_shared_session_runtime_with_root, is_global_session_store_set, SessionManager, - SessionType, + delete_managed_session, initialize_shared_session_runtime_with_root, + is_global_session_store_set, SessionManager, SessionType, }; use async_trait::async_trait; use chrono::Utc; @@ -4890,18 +4850,18 @@ mod tests { } #[test] - fn resolve_fast_chat_tool_surface_mode_should_use_direct_answer_for_greeting() { + fn resolve_fast_chat_tool_surface_mode_should_not_guess_surface_for_plain_greeting() { let request = build_runtime_turn_test_request("你好", None); let policy = lime_agent::resolve_request_tool_policy(Some(false), false); assert_eq!( resolve_fast_chat_tool_surface_mode(&request, TurnExecutionProfile::FastChat, &policy,), - Some(FAST_CHAT_TOOL_SURFACE_DIRECT_ANSWER) + None ); } #[test] - fn resolve_fast_chat_tool_surface_mode_should_use_local_workspace_for_repo_analysis() { + fn resolve_fast_chat_tool_surface_mode_should_use_local_workspace_for_explicit_local_path() { let request = build_runtime_turn_test_request( "请读取并分析项目 /Users/coso/Documents/dev/js/claudecode", None, @@ -4914,6 +4874,17 @@ mod tests { ); } + #[test] + fn resolve_fast_chat_tool_surface_mode_should_not_infer_local_workspace_from_repo_keywords() { + let request = build_runtime_turn_test_request("帮我看看这个仓库哪里慢", None); + let policy = lime_agent::resolve_request_tool_policy(Some(false), false); + + assert_eq!( + resolve_fast_chat_tool_surface_mode(&request, TurnExecutionProfile::FastChat, &policy,), + None + ); + } + #[test] fn extract_explicit_local_focus_paths_from_message_should_keep_existing_absolute_paths() { let temp_dir = tempfile::TempDir::new().expect("create temp dir"); @@ -5481,7 +5452,7 @@ mod tests { assert_eq!(updated.accumulated_input_tokens, Some(320)); assert_eq!(updated.accumulated_output_tokens, Some(145)); - SessionManager::delete_session(&session.id) + delete_managed_session(&session.id) .await .expect("清理测试会话失败"); } @@ -5536,7 +5507,7 @@ mod tests { assert_eq!(updated.accumulated_input_tokens, Some(500)); assert_eq!(updated.accumulated_output_tokens, Some(200)); - SessionManager::delete_session(&session.id) + delete_managed_session(&session.id) .await .expect("清理测试会话失败"); } @@ -5594,7 +5565,7 @@ mod tests { assert_eq!(updated.accumulated_input_tokens, Some(150)); assert_eq!(updated.accumulated_output_tokens, Some(95)); - SessionManager::delete_session(&session.id) + delete_managed_session(&session.id) .await .expect("清理测试会话失败"); } @@ -5636,7 +5607,7 @@ mod tests { other => panic!("收到意外事件: {:?}", other), } - SessionManager::delete_session(&session.id) + delete_managed_session(&session.id) .await .expect("清理测试会话失败"); } @@ -5661,7 +5632,7 @@ mod tests { other => panic!("收到意外事件: {:?}", other), } - SessionManager::delete_session(&session.id) + delete_managed_session(&session.id) .await .expect("清理测试会话失败"); } diff --git a/src-tauri/src/commands/aster_agent_cmd/tests.rs b/src-tauri/src/commands/aster_agent_cmd/tests.rs index d3504a879..a2e15b8a9 100644 --- a/src-tauri/src/commands/aster_agent_cmd/tests.rs +++ b/src-tauri/src/commands/aster_agent_cmd/tests.rs @@ -93,7 +93,10 @@ mod tests { continue; } let extension = path.extension().and_then(|ext| ext.to_str()); - let file_name = path.file_name().and_then(|name| name.to_str()).unwrap_or(""); + let file_name = path + .file_name() + .and_then(|name| name.to_str()) + .unwrap_or(""); if extension == Some("md") || file_name.starts_with("README") { files.push(path); } @@ -3167,6 +3170,33 @@ mod tests { ); } + #[test] + fn test_agent_runtime_update_session_request_deserializes_recent_access_mode_aliases() { + let request: AgentRuntimeUpdateSessionRequest = serde_json::from_value(serde_json::json!({ + "sessionId": "session-1", + "recentAccessMode": "full-access" + })) + .expect("request should deserialize"); + + assert_eq!(request.session_id, "session-1"); + assert_eq!( + request.recent_access_mode, + Some(lime_agent::SessionExecutionRuntimeAccessMode::FullAccess) + ); + + let legacy_request: AgentRuntimeUpdateSessionRequest = + serde_json::from_value(serde_json::json!({ + "sessionId": "session-1", + "recentAccessMode": "full_access" + })) + .expect("legacy request should deserialize"); + + assert_eq!( + legacy_request.recent_access_mode, + Some(lime_agent::SessionExecutionRuntimeAccessMode::FullAccess) + ); + } + #[test] fn test_agent_runtime_update_session_request_deserializes_recent_team_selection_aliases() { let request: AgentRuntimeUpdateSessionRequest = serde_json::from_value(serde_json::json!({ @@ -3825,6 +3855,44 @@ mod tests { ); } + #[test] + fn test_build_chat_run_finish_metadata_includes_browser_runtime_ref() { + let mut observation = ChatRunObservation::default(); + observation.record_event( + &RuntimeAgentEvent::ToolEnd { + tool_id: "tool-browser".to_string(), + result: lime_agent::AgentToolResult { + success: true, + output: "done".to_string(), + error: None, + images: None, + metadata: Some(HashMap::from([( + "browser_session".to_string(), + serde_json::json!({ + "profile_key": "general_browser_assist", + "session_id": "browser-session-1", + "target_id": "target-1" + }), + )])), + }, + }, + "/tmp/workspace", + None, + ProviderContinuationCapability::HistoryReplayOnly, + ); + + let metadata = build_chat_run_finish_metadata(&serde_json::Map::new(), &observation); + + assert_eq!( + metadata.get("browser_runtime_ref"), + Some(&serde_json::json!({ + "profile_key": "general_browser_assist", + "session_id": "browser-session-1", + "target_id": "target-1" + })) + ); + } + #[test] fn test_chat_run_observation_records_previous_response_id_from_message_event() { let mut observation = ChatRunObservation::default(); @@ -6124,9 +6192,7 @@ mod tests { return None; } if content.contains(".reply(") || content.contains("stream_reply_with_policy(") { - Some( - relative_path, - ) + Some(relative_path) } else { None } @@ -6156,7 +6222,8 @@ mod tests { .expect("src 文件应位于 crate 根下") .to_string_lossy() .replace('\\', "/"); - if relative_path.starts_with("src/commands/") || relative_path.ends_with("/tests.rs") + if relative_path.starts_with("src/commands/") + || relative_path.ends_with("/tests.rs") { return None; } diff --git a/src-tauri/src/commands/config_cmd.rs b/src-tauri/src/commands/config_cmd.rs index 4f8dc2a6a..19533b839 100644 --- a/src-tauri/src/commands/config_cmd.rs +++ b/src-tauri/src/commands/config_cmd.rs @@ -162,7 +162,7 @@ pub async fn get_tool_versions() -> Result, String> { // 定义要检测的工具列表 let tools = vec![ - ("Claude Code", "claude", vec!["--version"]), + ("Claude CLI", "claude", vec!["--version"]), ("Codex", "codex", vec!["--version"]), ("Gemini CLI", "gemini", vec!["--version"]), ]; diff --git a/src-tauri/src/commands/memory_management_cmd.rs b/src-tauri/src/commands/memory_management_cmd.rs index 5c4a1e5e7..955cc6317 100644 --- a/src-tauri/src/commands/memory_management_cmd.rs +++ b/src-tauri/src/commands/memory_management_cmd.rs @@ -12,7 +12,8 @@ use crate::commands::unified_memory_cmd::{list_unified_memories, ListFilters}; use crate::config::GlobalConfigManagerState; use crate::database::DbConnection; use crate::services::auto_memory_service::{ - get_auto_memory_index, update_auto_memory_note, AutoMemoryIndexResponse, + cleanup_memdir, get_auto_memory_index, scaffold_memdir, update_auto_memory_note, + AutoMemoryIndexResponse, MemdirCleanupResult, MemdirMemoryType, MemdirScaffoldResult, }; use crate::services::chat_history_service::{load_memory_source_candidates, MemorySourceCandidate}; use crate::services::memory_source_resolver_service::{ @@ -459,6 +460,7 @@ pub async fn memory_update_auto_note( working_dir: Option, note: String, topic: Option, + memory_type: Option, ) -> Result { let config = global_config.config(); let resolved_working_dir = resolve_working_dir(working_dir)?; @@ -467,6 +469,34 @@ pub async fn memory_update_auto_note( &resolved_working_dir, ¬e, topic.as_deref(), + memory_type, + ) +} + +/// 整理 memdir:去重链接、裁剪历史段落并收口 topic note。 +#[tauri::command] +pub async fn memory_cleanup_memdir( + global_config: State<'_, GlobalConfigManagerState>, + working_dir: Option, +) -> Result { + let config = global_config.config(); + let resolved_working_dir = resolve_working_dir(working_dir)?; + cleanup_memdir(&config.memory, &resolved_working_dir) +} + +/// 初始化 memdir 套件 +#[tauri::command] +pub async fn memory_scaffold_memdir( + global_config: State<'_, GlobalConfigManagerState>, + working_dir: Option, + overwrite: Option, +) -> Result { + let config = global_config.config(); + let resolved_working_dir = resolve_working_dir(working_dir)?; + scaffold_memdir( + &config.memory, + &resolved_working_dir, + overwrite.unwrap_or(false), ) } diff --git a/src-tauri/src/commands/mod.rs b/src-tauri/src/commands/mod.rs index 242f27f75..b3c504b86 100644 --- a/src-tauri/src/commands/mod.rs +++ b/src-tauri/src/commands/mod.rs @@ -48,6 +48,7 @@ pub mod plugin_install_cmd; pub mod plugin_rpc_cmd; pub mod prompt_cmd; pub mod provider_pool_cmd; +pub mod sceneapp_cmd; pub mod screenshot_cmd; pub mod security_perf_cmd; pub mod session_files_cmd; diff --git a/src-tauri/src/commands/model_registry_cmd.rs b/src-tauri/src/commands/model_registry_cmd.rs index 27e1c7629..c43e7b100 100644 --- a/src-tauri/src/commands/model_registry_cmd.rs +++ b/src-tauri/src/commands/model_registry_cmd.rs @@ -270,7 +270,7 @@ pub async fn fetch_provider_models_auto( return Err("Provider 没有配置 API Host".to_string()); } - let provider_type = provider.provider.provider_type; + let provider_type = provider.provider.effective_provider_type(); let requires_api_key = ModelRegistryService::requires_api_key_for_model_fetch( &provider_id, &api_host, diff --git a/src-tauri/src/commands/sceneapp_cmd.rs b/src-tauri/src/commands/sceneapp_cmd.rs new file mode 100644 index 000000000..d211b06b2 --- /dev/null +++ b/src-tauri/src/commands/sceneapp_cmd.rs @@ -0,0 +1,96 @@ +use crate::database::DbConnection; +use crate::sceneapp::application::SceneAppService; +use crate::sceneapp::dto::{ + SceneAppAutomationIntent, SceneAppAutomationResult, SceneAppCatalog, SceneAppDescriptor, + SceneAppGovernanceArtifactKind, SceneAppLaunchIntent, SceneAppPlanResult, SceneAppRunSummary, + SceneAppScorecard, +}; +use crate::services::automation_service::AutomationServiceState; +use crate::services::execution_tracker_service::ExecutionTracker; +use tauri::State; + +#[tauri::command] +pub async fn sceneapp_list_catalog() -> Result { + Ok(SceneAppService::list_catalog()) +} + +#[tauri::command] +pub async fn sceneapp_get_descriptor(id: String) -> Result, String> { + let normalized = id.trim(); + if normalized.is_empty() { + return Err("sceneapp id 不能为空".to_string()); + } + Ok(SceneAppService::get_descriptor(normalized)) +} + +#[tauri::command] +pub async fn sceneapp_plan_launch( + intent: SceneAppLaunchIntent, +) -> Result { + SceneAppService::plan_launch(intent) +} + +#[tauri::command] +pub async fn sceneapp_create_automation_job( + automation_state: State<'_, AutomationServiceState>, + intent: SceneAppAutomationIntent, +) -> Result { + let service = automation_state.0.read().await; + SceneAppService::create_automation_job(&service, intent).await +} + +#[tauri::command] +pub async fn sceneapp_list_runs( + automation_state: State<'_, AutomationServiceState>, + db: State<'_, DbConnection>, + sceneapp_id: Option, +) -> Result, String> { + let service = automation_state.0.read().await; + let tracker = ExecutionTracker::new(db.inner().clone()); + SceneAppService::collect_runs(&tracker, &service, sceneapp_id.as_deref()) +} + +#[tauri::command] +pub async fn sceneapp_get_run_summary( + db: State<'_, DbConnection>, + run_id: String, +) -> Result, String> { + let normalized = run_id.trim(); + if normalized.is_empty() { + return Err("run_id 不能为空".to_string()); + } + let tracker = ExecutionTracker::new(db.inner().clone()); + if let Some(summary) = SceneAppService::get_run_summary_from_tracker(&tracker, normalized)? { + return Ok(Some(summary)); + } + Ok(SceneAppService::get_run_summary(normalized)) +} + +#[tauri::command] +pub async fn sceneapp_prepare_run_governance_artifact( + db: State<'_, DbConnection>, + run_id: String, + kind: SceneAppGovernanceArtifactKind, +) -> Result, String> { + let normalized = run_id.trim(); + if normalized.is_empty() { + return Err("run_id 不能为空".to_string()); + } + + let tracker = ExecutionTracker::new(db.inner().clone()); + SceneAppService::prepare_run_governance_artifact(&tracker, normalized, &kind) +} + +#[tauri::command] +pub async fn sceneapp_get_scorecard( + automation_state: State<'_, AutomationServiceState>, + db: State<'_, DbConnection>, + sceneapp_id: String, +) -> Result { + let normalized = sceneapp_id.trim(); + if normalized.is_empty() { + return Err("sceneapp_id 不能为空".to_string()); + } + let service = automation_state.0.read().await; + SceneAppService::get_scorecard(db.inner(), &service, normalized) +} diff --git a/src-tauri/src/commands/webview_cmd.rs b/src-tauri/src/commands/webview_cmd.rs index 7361142f8..9816e0818 100644 --- a/src-tauri/src/commands/webview_cmd.rs +++ b/src-tauri/src/commands/webview_cmd.rs @@ -116,6 +116,34 @@ impl ChromeProfileProcess { } } +#[derive(Debug, Clone)] +struct ManagedChromeProfileSnapshot { + profile_key: String, + browser_source: String, + browser_path: String, + profile_dir: String, + remote_debugging_port: u16, + started_at: String, + last_url: String, + child_pid: u32, + child_running: bool, +} + +impl ManagedChromeProfileSnapshot { + fn to_session_info(&self, pid: u32) -> ChromeProfileSessionInfo { + ChromeProfileSessionInfo { + profile_key: self.profile_key.clone(), + browser_source: self.browser_source.clone(), + browser_path: self.browser_path.clone(), + profile_dir: self.profile_dir.clone(), + remote_debugging_port: self.remote_debugging_port, + pid, + started_at: self.started_at.clone(), + last_url: self.last_url.clone(), + } + } +} + /// Chrome Profile 会话管理器状态 pub struct ChromeProfileManagerState { sessions: HashMap, @@ -146,6 +174,10 @@ static BROWSER_STREAM_RELAY_TASKS: Lazy>>> Lazy::new(|| Mutex::new(HashMap::new())); const MANAGED_CHROME_RECOVERY_WAIT_MS: u64 = 800; +const GUI_SMOKE_CHROME_PROFILE_PREFIXES: [&str; 2] = [ + "smoke-browser-runtime", + "smoke-agent-runtime-tool-surface-page", +]; static WINDOW_SCROLL_SCRIPT_TOP_REGEX: Lazy = Lazy::new(|| { Regex::new(r#"(?is)window\.scroll(?:By|To)\s*\(\s*\{[^}]*top\s*:\s*(?P-?\d+)"#) .expect("window scroll top regex should be valid") @@ -268,6 +300,14 @@ pub struct ChromeProfileSessionInfo { pub last_url: String, } +#[derive(Debug, Clone, Serialize, Default, PartialEq, Eq)] +pub struct CleanupGuiSmokeChromeProfilesResult { + pub matched_profiles: Vec, + pub removed_profiles: Vec, + pub skipped_profiles: Vec, + pub terminated_process_count: usize, +} + /// Chrome 扩展桥接端点信息 #[derive(Debug, Clone, Serialize)] pub struct ChromeBridgeEndpointInfo { @@ -1113,11 +1153,22 @@ async fn close_chrome_profile_session_with_manager( manager: Arc>, profile_key: String, ) -> Result { - let key = normalize_profile_key(&profile_key); - let mut manager = manager.lock().await; + close_chrome_profile_session_with_runtime(manager, shared_browser_runtime(), profile_key).await +} - let closed = if let Some(mut process) = manager.sessions.remove(&key) { - match process.child.try_wait() { +async fn close_chrome_profile_session_with_runtime( + manager: Arc>, + runtime: Arc, + profile_key: String, +) -> Result { + let key = normalize_profile_key(&profile_key); + let mut profile_dir_to_cleanup = None; + let mut manager = manager.lock().await; + let mut closed = false; + + if let Some(mut process) = manager.sessions.remove(&key) { + profile_dir_to_cleanup = Some(PathBuf::from(process.profile_dir.clone())); + closed = match process.child.try_wait() { Ok(Some(_)) => true, Ok(None) => { if let Err(e) = process.child.kill() { @@ -1130,25 +1181,59 @@ async fn close_chrome_profile_session_with_manager( tracing::warn!("[ChromeProfile] 读取进程状态失败: key={}, err={}", key, e); true } - } - } else { - false - }; + }; + } drop(manager); - if let Some(cdp_session) = shared_browser_runtime() - .find_session_by_profile_key(&key) - .await - { - let _ = shared_browser_runtime() - .close_session(&cdp_session.session_id) - .await; - cleanup_browser_stream_relay(&cdp_session.session_id).await; + if profile_dir_to_cleanup.is_none() && is_gui_smoke_chrome_profile_key(&key) { + let base_dir = lime_core::app_paths::preferred_data_dir() + .map_err(|error| format!("获取应用数据目录失败: {error}"))?; + let profile_dir = resolve_chrome_profile_data_dir_from_base(&base_dir, &key); + if profile_dir.exists() { + profile_dir_to_cleanup = Some(profile_dir); + } } + if let Some(profile_dir) = profile_dir_to_cleanup { + if !collect_chrome_profile_processes(&profile_dir).is_empty() { + closed = cleanup_orphan_chrome_profile_processes(&profile_dir).await? || closed; + } else { + cleanup_chrome_profile_singleton_artifacts(&profile_dir); + } + } + + close_browser_runtime_session_for_profile_key(runtime, &key).await; + Ok(closed) } +#[tauri::command] +pub async fn cleanup_gui_smoke_chrome_profiles( + state: tauri::State<'_, ChromeProfileManagerWrapper>, +) -> Result { + let base_dir = lime_core::app_paths::preferred_data_dir() + .map_err(|error| format!("获取应用数据目录失败: {error}"))?; + cleanup_gui_smoke_chrome_profiles_with_runtime( + state.0.clone(), + shared_browser_runtime(), + &base_dir, + ) + .await +} + +#[cfg_attr(any(test, not(debug_assertions)), allow(dead_code))] +pub async fn cleanup_gui_smoke_chrome_profiles_global( +) -> Result { + let base_dir = lime_core::app_paths::preferred_data_dir() + .map_err(|error| format!("获取应用数据目录失败: {error}"))?; + cleanup_gui_smoke_chrome_profiles_with_runtime( + shared_chrome_profile_manager(), + shared_browser_runtime(), + &base_dir, + ) + .await +} + /// 获取 ChromeBridge 连接端点信息 #[tauri::command] pub async fn get_chrome_bridge_endpoint_info( @@ -2197,18 +2282,10 @@ async fn enrich_browser_action_value( if let Ok(profile_session) = select_profile_session(manager, Some(resolved_profile_key.clone())).await { - if runtime - .is_cdp_endpoint_alive(profile_session.remote_debugging_port) - .await - { - cdp_session = ensure_cdp_runtime_session( - &runtime, - &profile_session, - target_id.as_deref(), - ) - .await - .ok(); - } + cdp_session = + ensure_cdp_runtime_session(&runtime, &profile_session, target_id.as_deref()) + .await + .ok(); } } } @@ -2791,6 +2868,43 @@ async fn cleanup_browser_stream_relay(session_id: &str) { } } +async fn close_browser_runtime_session_for_profile_key( + runtime: Arc, + profile_key: &str, +) { + let session_ids = runtime.close_sessions_by_profile_key(profile_key).await; + for session_id in session_ids { + cleanup_browser_stream_relay(&session_id).await; + } +} + +async fn resolve_managed_profile_snapshot( + snapshot: &ManagedChromeProfileSnapshot, +) -> Option { + let profile_dir = Path::new(&snapshot.profile_dir); + let discovered_pid = find_chrome_profile_process_pid(profile_dir); + let endpoint_alive = if snapshot.child_running || discovered_pid.is_some() { + false + } else { + shared_browser_runtime() + .is_cdp_endpoint_alive(snapshot.remote_debugging_port) + .await + }; + + if !(snapshot.child_running || discovered_pid.is_some() || endpoint_alive) { + return None; + } + + let effective_pid = discovered_pid.unwrap_or_else(|| { + if snapshot.child_running { + snapshot.child_pid + } else { + 0 + } + }); + Some(snapshot.to_session_info(effective_pid)) +} + async fn discover_unmanaged_profile_session( profile_key: &str, ) -> Result, String> { @@ -2805,15 +2919,28 @@ async fn discover_unmanaged_profile_session( let remote_debugging_port = profile_remote_debugging_port(&normalized_profile_key); let runtime = shared_browser_runtime(); let targets = match runtime.list_targets(remote_debugging_port).await { - Ok(value) => value, - Err(_) => return Ok(None), + Ok(value) => Some(value), + Err(error) => { + if !runtime.is_cdp_endpoint_alive(remote_debugging_port).await { + return Ok(None); + } + tracing::debug!( + "[ChromeProfile] 读取未受管 profile target 列表失败,但 CDP 仍可用: key={}, port={}, err={}", + normalized_profile_key, + remote_debugging_port, + error + ); + None + } }; let pid = find_chrome_profile_process_pid(&profile_dir).unwrap_or_default(); let (browser_path, browser_source) = get_available_chrome_path().unwrap_or_else(|| (String::new(), "system".to_string())); let last_url = targets - .iter() + .as_ref() + .into_iter() + .flat_map(|items| items.iter()) .find(|target| target.target_type == "page" && !target.url.trim().is_empty()) .map(|target| target.url.trim().to_string()) .unwrap_or_else(|| "about:blank".to_string()); @@ -2847,12 +2974,25 @@ async fn discover_bridge_backed_profile_session( let remote_debugging_port = profile_remote_debugging_port(&normalized_profile_key); let runtime = shared_browser_runtime(); let targets = match runtime.list_targets(remote_debugging_port).await { - Ok(value) => value, - Err(_) => return Ok(None), + Ok(value) => Some(value), + Err(error) => { + if !runtime.is_cdp_endpoint_alive(remote_debugging_port).await { + return Ok(None); + } + tracing::debug!( + "[ChromeProfile] 读取扩展附着 profile target 列表失败,但 CDP 仍可用: key={}, port={}, err={}", + normalized_profile_key, + remote_debugging_port, + error + ); + None + } }; let last_url = targets - .iter() + .as_ref() + .into_iter() + .flat_map(|items| items.iter()) .find(|target| target.target_type == "page" && !target.url.trim().is_empty()) .map(|target| target.url.trim().to_string()) .or_else(|| { @@ -2906,6 +3046,126 @@ async fn discover_unmanaged_profile_sessions() -> Result bool { + let normalized = normalize_profile_key(profile_key); + GUI_SMOKE_CHROME_PROFILE_PREFIXES + .iter() + .any(|prefix| normalized == *prefix || normalized.starts_with(&format!("{prefix}-"))) +} + +fn list_gui_smoke_chrome_profile_dirs(base_dir: &Path) -> Result, String> { + let chrome_profiles_dir = base_dir.join("chrome_profiles"); + if !chrome_profiles_dir.exists() { + return Ok(Vec::new()); + } + + let mut matches = Vec::new(); + let entries = std::fs::read_dir(&chrome_profiles_dir) + .map_err(|error| format!("读取 GUI smoke Chrome profile 目录失败: {error}"))?; + for entry in entries { + let entry = entry.map_err(|error| format!("读取 GUI smoke profile 条目失败: {error}"))?; + let file_type = entry + .file_type() + .map_err(|error| format!("读取 GUI smoke profile 类型失败: {error}"))?; + if !file_type.is_dir() { + continue; + } + + let profile_key = entry.file_name().to_string_lossy().to_string(); + if !is_gui_smoke_chrome_profile_key(&profile_key) { + continue; + } + + matches.push((profile_key, entry.path())); + } + + matches.sort_by(|left, right| left.0.cmp(&right.0)); + Ok(matches) +} + +async fn cleanup_gui_smoke_chrome_profiles_with_runtime( + manager: Arc>, + runtime: Arc, + base_dir: &Path, +) -> Result { + let managed_profile_keys = { + let guard = manager.lock().await; + guard + .sessions + .keys() + .filter(|profile_key| is_gui_smoke_chrome_profile_key(profile_key)) + .cloned() + .collect::>() + }; + + for profile_key in managed_profile_keys { + let _ = close_chrome_profile_session_with_runtime( + manager.clone(), + runtime.clone(), + profile_key, + ) + .await?; + } + + let matched_profile_dirs = list_gui_smoke_chrome_profile_dirs(base_dir)?; + if matched_profile_dirs.is_empty() { + return Ok(CleanupGuiSmokeChromeProfilesResult::default()); + } + + let matched_profiles = matched_profile_dirs + .iter() + .map(|(profile_key, _)| profile_key.clone()) + .collect::>(); + let mut removed_profiles = Vec::new(); + let mut skipped_profiles = Vec::new(); + let mut terminated_process_count = 0usize; + + for (profile_key, profile_dir) in matched_profile_dirs { + close_browser_runtime_session_for_profile_key(runtime.clone(), &profile_key).await; + + let process_count = collect_chrome_profile_processes(&profile_dir).len(); + terminated_process_count += process_count; + if process_count > 0 { + let _ = cleanup_orphan_chrome_profile_processes(&profile_dir).await?; + } else { + cleanup_chrome_profile_singleton_artifacts(&profile_dir); + } + + if !collect_chrome_profile_processes(&profile_dir).is_empty() { + tracing::warn!( + "[ChromeProfile] GUI smoke profile 清理后仍有残留进程,跳过删目录: key={}, dir={:?}", + profile_key, + profile_dir + ); + skipped_profiles.push(profile_key); + continue; + } + + match std::fs::remove_dir_all(&profile_dir) { + Ok(()) => removed_profiles.push(profile_key), + Err(error) if error.kind() == std::io::ErrorKind::NotFound => { + removed_profiles.push(profile_key); + } + Err(error) => { + tracing::warn!( + "[ChromeProfile] 删除 GUI smoke profile 目录失败: key={}, dir={:?}, err={}", + profile_key, + profile_dir, + error + ); + skipped_profiles.push(profile_key); + } + } + } + + Ok(CleanupGuiSmokeChromeProfilesResult { + matched_profiles, + removed_profiles, + skipped_profiles, + terminated_process_count, + }) +} + async fn discover_bridge_backed_profile_sessions() -> Result, String> { let bridge_status = chrome_bridge::chrome_bridge_hub() @@ -2932,27 +3192,45 @@ async fn discover_bridge_backed_profile_sessions() -> Result>, ) -> Vec { - let mut guard = manager.lock().await; + let snapshots = { + let mut guard = manager.lock().await; + guard + .sessions + .iter_mut() + .map(|(key, process)| ManagedChromeProfileSnapshot { + profile_key: key.clone(), + browser_source: process.browser_source.clone(), + browser_path: process.browser_path.clone(), + profile_dir: process.profile_dir.clone(), + remote_debugging_port: process.remote_debugging_port, + started_at: process.started_at.clone(), + last_url: process.last_url.clone(), + child_pid: process.child.id(), + child_running: matches!(process.child.try_wait(), Ok(None)), + }) + .collect::>() + }; + let mut stale_keys = Vec::new(); let mut sessions = Vec::new(); - - for (key, process) in &mut guard.sessions { - match process.child.try_wait() { - Ok(None) => sessions.push(process.as_info()), - Ok(Some(_)) => stale_keys.push(key.clone()), - Err(_) => stale_keys.push(key.clone()), + for snapshot in snapshots { + match resolve_managed_profile_snapshot(&snapshot).await { + Some(session) => sessions.push(session), + None => stale_keys.push(snapshot.profile_key), } } - for key in stale_keys { - guard.sessions.remove(&key); + if !stale_keys.is_empty() { + let mut guard = manager.lock().await; + for key in stale_keys { + guard.sessions.remove(&key); + } } let mut known_profile_keys = sessions .iter() .map(|session| session.profile_key.clone()) .collect::>(); - drop(guard); let unmanaged_sessions = match discover_unmanaged_profile_sessions().await { Ok(items) => items, @@ -3684,6 +3962,7 @@ mod tests { use crate::services::browser_profile_service::sanitize_browser_profile_key; use rusqlite::Connection; use std::sync::{Arc, Mutex}; + use tempfile::TempDir; use tokio::sync::Mutex as AsyncMutex; static BROWSER_RUNTIME_AUDIT_TEST_LOCK: Lazy> = @@ -3744,6 +4023,63 @@ mod tests { assert_eq!(safe, "search_google_zh-CN"); } + #[test] + fn is_gui_smoke_chrome_profile_key_should_only_match_expected_prefixes() { + assert!(is_gui_smoke_chrome_profile_key("smoke-browser-runtime")); + assert!(is_gui_smoke_chrome_profile_key( + "smoke-browser-runtime-1776268837197" + )); + assert!(is_gui_smoke_chrome_profile_key( + "smoke-agent-runtime-tool-surface-page" + )); + assert!(is_gui_smoke_chrome_profile_key( + "smoke-agent-runtime-tool-surface-page-1776268952231" + )); + assert!(!is_gui_smoke_chrome_profile_key("general_browser_assist")); + assert!(!is_gui_smoke_chrome_profile_key("smoke-browser")); + } + + #[tokio::test] + async fn cleanup_gui_smoke_chrome_profiles_should_remove_only_smoke_dirs() { + let temp_dir = TempDir::new().unwrap(); + let chrome_profiles_dir = temp_dir.path().join("chrome_profiles"); + std::fs::create_dir_all(&chrome_profiles_dir).unwrap(); + + let smoke_dir = chrome_profiles_dir.join("smoke-browser-runtime"); + let smoke_legacy_dir = + chrome_profiles_dir.join("smoke-agent-runtime-tool-surface-page-1776268952231"); + let unrelated_dir = chrome_profiles_dir.join("general_browser_assist"); + + std::fs::create_dir_all(&smoke_dir).unwrap(); + std::fs::create_dir_all(&smoke_legacy_dir).unwrap(); + std::fs::create_dir_all(&unrelated_dir).unwrap(); + std::fs::write(smoke_dir.join("SingletonLock"), "lock").unwrap(); + std::fs::write(smoke_legacy_dir.join("Preferences"), "{}").unwrap(); + std::fs::write(unrelated_dir.join("Preferences"), "{}").unwrap(); + + let result = cleanup_gui_smoke_chrome_profiles_with_runtime( + Arc::new(tokio::sync::Mutex::new(ChromeProfileManagerState::new())), + Arc::new(BrowserRuntimeManager::new()), + temp_dir.path(), + ) + .await + .expect("cleanup should succeed"); + + assert_eq!( + result.matched_profiles, + vec![ + "smoke-agent-runtime-tool-surface-page-1776268952231".to_string(), + "smoke-browser-runtime".to_string(), + ] + ); + assert_eq!(result.removed_profiles, result.matched_profiles); + assert!(result.skipped_profiles.is_empty()); + assert_eq!(result.terminated_process_count, 0); + assert!(!smoke_dir.exists()); + assert!(!smoke_legacy_dir.exists()); + assert!(unrelated_dir.exists()); + } + #[test] fn normalize_profile_key_should_fallback_to_default() { let normalized = normalize_profile_key("///"); diff --git a/src-tauri/src/commands/wechat_channel_cmd.rs b/src-tauri/src/commands/wechat_channel_cmd.rs index 43deeb666..929e80c58 100644 --- a/src-tauri/src/commands/wechat_channel_cmd.rs +++ b/src-tauri/src/commands/wechat_channel_cmd.rs @@ -307,10 +307,9 @@ pub async fn wechat_channel_set_runtime_model( persist_wechat_runtime_model(config_manager.inner(), logs.inner(), &request).await } -#[tauri::command] -pub async fn wechat_channel_list_accounts( - config_manager: State<'_, GlobalConfigManagerState>, -) -> Result, String> { +pub fn list_wechat_configured_accounts( + config_manager: &GlobalConfigManagerState, +) -> Vec { let config = config_manager.config(); let mut accounts = config .channels @@ -333,7 +332,14 @@ pub async fn wechat_channel_list_accounts( }) .collect::>(); accounts.sort_by(|left, right| left.account_id.cmp(&right.account_id)); - Ok(accounts) + accounts +} + +#[tauri::command] +pub async fn wechat_channel_list_accounts( + config_manager: State<'_, GlobalConfigManagerState>, +) -> Result, String> { + Ok(list_wechat_configured_accounts(config_manager.inner())) } #[tauri::command] diff --git a/src-tauri/src/dev_bridge/dispatcher.rs b/src-tauri/src/dev_bridge/dispatcher.rs index be0c2e597..6f32f3387 100644 --- a/src-tauri/src/dev_bridge/dispatcher.rs +++ b/src-tauri/src/dev_bridge/dispatcher.rs @@ -6,6 +6,7 @@ mod agent_sessions; mod app_runtime; mod automation; mod browser; +mod channels; mod companion; mod content; mod logs; @@ -18,6 +19,7 @@ mod plugins; mod project_resources; mod providers; mod runtime_queries; +mod sceneapp; mod skills; mod tray; mod voice; @@ -97,6 +99,10 @@ pub async fn handle_command( return Ok(result); } + if let Some(result) = channels::try_handle(state, cmd, args.as_ref()).await? { + return Ok(result); + } + if let Some(result) = automation::try_handle(state, cmd, args.as_ref()).await? { return Ok(result); } @@ -129,6 +135,10 @@ pub async fn handle_command( return Ok(result); } + if let Some(result) = sceneapp::try_handle(state, cmd, args.as_ref()).await? { + return Ok(result); + } + if let Some(result) = memory_runtime::try_handle(state, cmd, args.as_ref()).await? { return Ok(result); } @@ -595,6 +605,51 @@ mod tests { assert!(error.to_string().contains("Dev Bridge 未持有 AppHandle")); } + #[tokio::test] + async fn agent_runtime_file_checkpoint_commands_are_bridged() { + let state = make_test_state(); + let cases = [ + ( + "agent_runtime_list_file_checkpoints", + serde_json::json!({ + "request": { + "session_id": "session-1" + } + }), + ), + ( + "agent_runtime_get_file_checkpoint", + serde_json::json!({ + "request": { + "session_id": "session-1", + "checkpoint_id": "checkpoint-1" + } + }), + ), + ( + "agent_runtime_diff_file_checkpoint", + serde_json::json!({ + "request": { + "session_id": "session-1", + "checkpoint_id": "checkpoint-1" + } + }), + ), + ]; + + for (cmd, args) in cases { + let error = handle_command(&state, cmd, Some(args)) + .await + .expect_err("missing app handle should fail after bridge routing"); + + let error_text = error.to_string(); + assert!( + error_text.contains("Dev Bridge 未持有 AppHandle"), + "command {cmd} should route into agent_sessions bridge, got: {error_text}" + ); + } + } + #[tokio::test] async fn fetch_provider_models_auto_is_bridged() { let state = make_test_state(); @@ -611,4 +666,85 @@ mod tests { assert!(error.to_string().contains("Provider 不存在: ollama")); } + + #[tokio::test] + async fn test_api_key_provider_connection_is_bridged() { + let state = make_test_state(); + + let error = handle_command( + &state, + "test_api_key_provider_connection", + Some(serde_json::json!({ + "providerId": "missing-provider" + })), + ) + .await + .expect_err("missing provider should fail after bridge routing"); + + assert!(error + .to_string() + .contains("Provider 不存在: missing-provider")); + } + + #[tokio::test] + async fn test_api_key_provider_chat_is_bridged() { + let state = make_test_state(); + + let error = handle_command( + &state, + "test_api_key_provider_chat", + Some(serde_json::json!({ + "providerId": "missing-provider", + "prompt": "hello" + })), + ) + .await + .expect_err("missing provider should fail after bridge routing"); + + assert!(error + .to_string() + .contains("Provider 不存在: missing-provider")); + } + + #[tokio::test] + async fn sceneapp_list_catalog_is_bridged() { + let state = make_test_state(); + + let value = handle_command(&state, "sceneapp_list_catalog", None) + .await + .unwrap(); + + assert!(value["items"].is_array()); + assert!(value["version"].is_string()); + } + + #[tokio::test] + async fn gateway_channel_status_is_bridged() { + let state = make_test_state(); + + let error = handle_command( + &state, + "gateway_channel_status", + Some(serde_json::json!({ + "request": { + "channel": "telegram" + } + })), + ) + .await + .expect_err("missing app handle should fail after bridge routing"); + + assert!(error.to_string().contains("Dev Bridge 未持有 AppHandle")); + } + + #[tokio::test] + async fn wechat_channel_list_accounts_is_bridged() { + let state = make_test_state(); + + let error = handle_command(&state, "wechat_channel_list_accounts", None) + .await + .expect_err("missing app handle should fail after bridge routing"); + + assert!(error.to_string().contains("Dev Bridge 未持有 AppHandle")); + } } diff --git a/src-tauri/src/dev_bridge/dispatcher/agent_sessions.rs b/src-tauri/src/dev_bridge/dispatcher/agent_sessions.rs index ff66f060a..7f9483cfa 100644 --- a/src-tauri/src/dev_bridge/dispatcher/agent_sessions.rs +++ b/src-tauri/src/dev_bridge/dispatcher/agent_sessions.rs @@ -28,6 +28,9 @@ pub(super) async fn try_handle( | "agent_runtime_list_sessions" | "agent_runtime_get_session" | "agent_runtime_get_thread_read" + | "agent_runtime_list_file_checkpoints" + | "agent_runtime_get_file_checkpoint" + | "agent_runtime_diff_file_checkpoint" | "agent_runtime_get_tool_inventory" | "agent_runtime_replay_request" | "agent_runtime_update_session" @@ -225,6 +228,96 @@ pub(super) async fn try_handle( .await?, )? } + "agent_runtime_list_file_checkpoints" => { + let request = parse_request::< + crate::commands::aster_agent_cmd::AgentRuntimeListFileCheckpointsRequest, + >(args)?; + let aster_state = app_handle.state::(); + let db = app_handle.state::(); + let api_key_provider_service = + app_handle + .state::(); + let logs = app_handle.state::(); + let config_manager = app_handle.state::(); + let mcp_manager = app_handle.state::(); + let automation_state = + app_handle.state::(); + + serde_json::to_value( + crate::commands::aster_agent_cmd::agent_runtime_list_file_checkpoints( + app_handle.clone(), + aster_state, + db, + api_key_provider_service, + logs, + config_manager, + mcp_manager, + automation_state, + request, + ) + .await?, + )? + } + "agent_runtime_get_file_checkpoint" => { + let request = parse_request::< + crate::commands::aster_agent_cmd::AgentRuntimeGetFileCheckpointRequest, + >(args)?; + let aster_state = app_handle.state::(); + let db = app_handle.state::(); + let api_key_provider_service = + app_handle + .state::(); + let logs = app_handle.state::(); + let config_manager = app_handle.state::(); + let mcp_manager = app_handle.state::(); + let automation_state = + app_handle.state::(); + + serde_json::to_value( + crate::commands::aster_agent_cmd::agent_runtime_get_file_checkpoint( + app_handle.clone(), + aster_state, + db, + api_key_provider_service, + logs, + config_manager, + mcp_manager, + automation_state, + request, + ) + .await?, + )? + } + "agent_runtime_diff_file_checkpoint" => { + let request = parse_request::< + crate::commands::aster_agent_cmd::AgentRuntimeDiffFileCheckpointRequest, + >(args)?; + let aster_state = app_handle.state::(); + let db = app_handle.state::(); + let api_key_provider_service = + app_handle + .state::(); + let logs = app_handle.state::(); + let config_manager = app_handle.state::(); + let mcp_manager = app_handle.state::(); + let automation_state = + app_handle.state::(); + + serde_json::to_value( + crate::commands::aster_agent_cmd::agent_runtime_diff_file_checkpoint( + app_handle.clone(), + aster_state, + db, + api_key_provider_service, + logs, + config_manager, + mcp_manager, + automation_state, + request, + ) + .await?, + )? + } "agent_runtime_get_tool_inventory" => { let request = parse_optional_nested_arg::< crate::commands::aster_agent_cmd::AgentRuntimeToolInventoryRequest, diff --git a/src-tauri/src/dev_bridge/dispatcher/browser/bridge.rs b/src-tauri/src/dev_bridge/dispatcher/browser/bridge.rs index 9d58e5ef7..b4ee380f6 100644 --- a/src-tauri/src/dev_bridge/dispatcher/browser/bridge.rs +++ b/src-tauri/src/dev_bridge/dispatcher/browser/bridge.rs @@ -20,6 +20,9 @@ pub(super) async fn try_handle( .await?, )? } + "cleanup_gui_smoke_chrome_profiles" => serde_json::to_value( + crate::commands::webview_cmd::cleanup_gui_smoke_chrome_profiles_global().await?, + )?, "get_chrome_bridge_endpoint_info" => serde_json::to_value( crate::commands::webview_cmd::get_chrome_bridge_endpoint_info_global( state.server.clone(), diff --git a/src-tauri/src/dev_bridge/dispatcher/channels.rs b/src-tauri/src/dev_bridge/dispatcher/channels.rs new file mode 100644 index 000000000..51a0d313d --- /dev/null +++ b/src-tauri/src/dev_bridge/dispatcher/channels.rs @@ -0,0 +1,49 @@ +use super::{args_or_default, parse_nested_arg, require_app_handle}; +use crate::dev_bridge::DevBridgeState; +use serde_json::Value as JsonValue; +use tauri::Manager; + +type DynError = Box; + +pub(super) async fn try_handle( + state: &DevBridgeState, + cmd: &str, + args: Option<&JsonValue>, +) -> Result, DynError> { + let result = match cmd { + "gateway_channel_status" => { + let app_handle = require_app_handle(state)?; + let args = args_or_default(args); + let request: crate::commands::gateway_channel_cmd::GatewayChannelStatusRequest = + parse_nested_arg(&args, "request")?; + + let telegram_state = app_handle.state::(); + let feishu_state = app_handle.state::(); + let discord_state = app_handle.state::(); + let wechat_state = app_handle.state::(); + + serde_json::to_value( + crate::commands::gateway_channel_cmd::gateway_channel_status( + telegram_state, + feishu_state, + discord_state, + wechat_state, + request, + ) + .await?, + )? + } + "wechat_channel_list_accounts" => { + let app_handle = require_app_handle(state)?; + let config_manager = app_handle.state::(); + serde_json::to_value( + crate::commands::wechat_channel_cmd::list_wechat_configured_accounts( + config_manager.inner(), + ), + )? + } + _ => return Ok(None), + }; + + Ok(Some(result)) +} diff --git a/src-tauri/src/dev_bridge/dispatcher/memory_runtime.rs b/src-tauri/src/dev_bridge/dispatcher/memory_runtime.rs index c619b119c..3227c5452 100644 --- a/src-tauri/src/dev_bridge/dispatcher/memory_runtime.rs +++ b/src-tauri/src/dev_bridge/dispatcher/memory_runtime.rs @@ -181,6 +181,11 @@ pub(super) async fn try_handle( .get("topic") .and_then(|value| value.as_str()) .map(ToString::to_string); + let memory_type = args + .get("memoryType") + .cloned() + .map(serde_json::from_value) + .transpose()?; let global_config = app_handle.state::(); serde_json::to_value( crate::commands::memory_management_cmd::memory_update_auto_note( @@ -188,11 +193,48 @@ pub(super) async fn try_handle( working_dir, note, topic, + memory_type, ) .await .map_err(|e| format!("更新自动记忆失败: {e}"))?, )? } + "memory_cleanup_memdir" => { + let app_handle = require_app_handle(state)?; + let args = args_or_default(args); + let working_dir = args + .get("workingDir") + .and_then(|value| value.as_str()) + .map(ToString::to_string); + let global_config = app_handle.state::(); + serde_json::to_value( + crate::commands::memory_management_cmd::memory_cleanup_memdir( + global_config, + working_dir, + ) + .await + .map_err(|e| format!("整理 memdir 失败: {e}"))?, + )? + } + "memory_scaffold_memdir" => { + let app_handle = require_app_handle(state)?; + let args = args_or_default(args); + let working_dir = args + .get("workingDir") + .and_then(|value| value.as_str()) + .map(ToString::to_string); + let overwrite = args.get("overwrite").and_then(|value| value.as_bool()); + let global_config = app_handle.state::(); + serde_json::to_value( + crate::commands::memory_management_cmd::memory_scaffold_memdir( + global_config, + working_dir, + overwrite, + ) + .await + .map_err(|e| format!("初始化 memdir 失败: {e}"))?, + )? + } "memory_scaffold_runtime_agents_template" => { let args = args_or_default(args); let target = serde_json::from_value( diff --git a/src-tauri/src/dev_bridge/dispatcher/providers.rs b/src-tauri/src/dev_bridge/dispatcher/providers.rs index f3f567332..ecbd372a3 100644 --- a/src-tauri/src/dev_bridge/dispatcher/providers.rs +++ b/src-tauri/src/dev_bridge/dispatcher/providers.rs @@ -49,7 +49,10 @@ fn api_key_provider_with_keys_to_display( provider: crate::commands::api_key_provider_cmd::ProviderDisplay { id: provider_with_keys.provider.id.clone(), name: provider_with_keys.provider.name.clone(), - provider_type: provider_with_keys.provider.provider_type.to_string(), + provider_type: provider_with_keys + .provider + .effective_provider_type() + .to_string(), api_host: provider_with_keys.provider.api_host.clone(), is_system: provider_with_keys.provider.is_system, group: provider_with_keys.provider.group.to_string(), @@ -181,6 +184,98 @@ pub(super) async fn try_handle( .map_err(|e| format!("获取系统 Provider Catalog 失败: {e}"))?; serde_json::to_value(catalog)? } + "test_api_key_provider_connection" => { + let args = args_or_default(args); + let provider_id = get_string_arg(&args, "providerId", "provider_id")?; + let model_name = args + .get("modelName") + .or_else(|| args.get("model_name")) + .and_then(|value| value.as_str()) + .map(ToString::to_string); + let db = state + .db + .as_ref() + .ok_or_else(|| "Database not initialized".to_string())?; + let provider = state + .api_key_provider_service + .get_provider(db, &provider_id)? + .ok_or_else(|| format!("Provider 不存在: {provider_id}"))?; + + let fallback_models = { + let guard = state.model_registry.read().await; + if let Some(model_registry) = guard.as_ref() { + model_registry + .get_local_fallback_model_ids_with_hints( + &provider_id, + &provider.provider.api_host, + Some(provider.provider.effective_provider_type()), + &provider.provider.custom_models, + ) + .await + } else { + Vec::new() + } + }; + + serde_json::to_value( + state + .api_key_provider_service + .test_connection_with_fallback_models( + db, + &provider_id, + model_name, + fallback_models, + ) + .await?, + )? + } + "test_api_key_provider_chat" => { + let args = args_or_default(args); + let provider_id = get_string_arg(&args, "providerId", "provider_id")?; + let model_name = args + .get("modelName") + .or_else(|| args.get("model_name")) + .and_then(|value| value.as_str()) + .map(ToString::to_string); + let prompt = get_string_arg(&args, "prompt", "prompt")?; + let db = state + .db + .as_ref() + .ok_or_else(|| "Database not initialized".to_string())?; + let provider = state + .api_key_provider_service + .get_provider(db, &provider_id)? + .ok_or_else(|| format!("Provider 不存在: {provider_id}"))?; + + let fallback_models = { + let guard = state.model_registry.read().await; + if let Some(model_registry) = guard.as_ref() { + model_registry + .get_local_fallback_model_ids_with_hints( + &provider_id, + &provider.provider.api_host, + Some(provider.provider.effective_provider_type()), + &provider.provider.custom_models, + ) + .await + } else { + Vec::new() + } + }; + + serde_json::to_value( + state + .api_key_provider_service + .test_chat_with_fallback_models( + db, + &provider_id, + model_name, + prompt, + fallback_models, + ) + .await?, + )? + } "get_provider_pool_credentials" => { if let Some(db) = &state.db { let conn = db.lock().map_err(|e| e.to_string())?; @@ -240,3 +335,50 @@ pub(super) async fn try_handle( Ok(Some(result)) } + +#[cfg(test)] +mod tests { + use super::api_key_provider_with_keys_to_display; + use chrono::Utc; + use lime_core::database::dao::api_key_provider::{ + ApiKeyProvider, ApiProviderType, ProviderGroup, ProviderWithKeys, + }; + use lime_services::api_key_provider_service::ApiKeyProviderService; + + #[test] + fn known_anthropic_host_should_display_effective_provider_type() { + let provider = ApiKeyProvider { + id: "custom-minimax".to_string(), + name: "MiniMax".to_string(), + provider_type: ApiProviderType::Openai, + api_host: "https://api.minimaxi.com/anthropic".to_string(), + is_system: false, + group: ProviderGroup::Custom, + enabled: true, + sort_order: 0, + api_version: None, + project: None, + location: None, + region: None, + custom_models: vec![], + prompt_cache_mode: None, + created_at: Utc::now(), + updated_at: Utc::now(), + }; + let provider_with_keys = ProviderWithKeys { + provider, + api_keys: vec![], + }; + + let display = api_key_provider_with_keys_to_display( + &provider_with_keys, + &ApiKeyProviderService::new(), + ); + + assert_eq!(display.provider.provider_type, "anthropic-compatible"); + assert_eq!( + display.provider.prompt_cache_mode.as_deref(), + Some("automatic") + ); + } +} diff --git a/src-tauri/src/dev_bridge/dispatcher/sceneapp.rs b/src-tauri/src/dev_bridge/dispatcher/sceneapp.rs new file mode 100644 index 000000000..4a23803f7 --- /dev/null +++ b/src-tauri/src/dev_bridge/dispatcher/sceneapp.rs @@ -0,0 +1,19 @@ +use crate::dev_bridge::DevBridgeState; +use serde_json::Value as JsonValue; + +type DynError = Box; + +pub(super) async fn try_handle( + _state: &DevBridgeState, + cmd: &str, + _args: Option<&JsonValue>, +) -> Result, DynError> { + if cmd != "sceneapp_list_catalog" { + return Ok(None); + } + + let result = + serde_json::to_value(crate::commands::sceneapp_cmd::sceneapp_list_catalog().await?)?; + + Ok(Some(result)) +} diff --git a/src-tauri/src/lib.rs b/src-tauri/src/lib.rs index 5bffec4c4..2b1bd57a9 100644 --- a/src-tauri/src/lib.rs +++ b/src-tauri/src/lib.rs @@ -42,6 +42,7 @@ pub mod agent; pub mod agent_tools; pub mod app; pub mod plugin; +pub mod sceneapp; pub mod screenshot; pub mod services; pub mod skills; diff --git a/src-tauri/src/sceneapp/adapters.rs b/src-tauri/src/sceneapp/adapters.rs new file mode 100644 index 000000000..4df6b1524 --- /dev/null +++ b/src-tauri/src/sceneapp/adapters.rs @@ -0,0 +1,2456 @@ +use super::dto::*; +use crate::agent::AsterAgentWrapper; +use crate::commands::aster_agent_cmd::AgentRuntimeThreadReadModel; +use crate::database::dao::agent_run::{AgentRun, AgentRunStatus}; +use crate::database::DbConnection; +use crate::services::automation_service::{ + AutomationCycleResult, AutomationJobDraft, AutomationJobRecord, AutomationPayload, +}; +use crate::services::runtime_evidence_pack_service::{ + build_runtime_evidence_sceneapp_snapshot, export_runtime_evidence_pack, + resolve_runtime_export_workspace_root, RuntimeEvidenceSceneAppSnapshot, +}; +use crate::services::runtime_review_decision_service::export_runtime_review_decision_template; +use crate::services::thread_reliability_projection_service::sync_thread_reliability_projection; +use chrono::{DateTime, Utc}; +use lime_core::config::{AutomationExecutionMode, DeliveryConfig, TaskSchedule}; +use serde_json::{json, Map, Value}; +use std::collections::{BTreeMap, BTreeSet}; +use std::path::PathBuf; + +const GENERAL_BROWSER_ASSIST_PROFILE_KEY: &str = "general_browser_assist"; +const SCENEAPP_RUNTIME_SESSION_RELATIVE_ROOT: &str = ".lime/harness/sessions"; +const SCENEAPP_EVIDENCE_SUMMARY_RELATIVE_PATH: &str = "evidence/summary.md"; +const SCENEAPP_REVIEW_DECISION_MARKDOWN_RELATIVE_PATH: &str = "review/review-decision.md"; +const SCENEAPP_REVIEW_DECISION_JSON_RELATIVE_PATH: &str = "review/review-decision.json"; + +struct SceneAppRunExportContext { + detail: crate::agent::SessionDetail, + thread_read: AgentRuntimeThreadReadModel, + workspace_root: PathBuf, +} + +fn normalize_optional_string(value: Option<&str>) -> Option { + value + .map(str::trim) + .filter(|value| !value.is_empty()) + .map(str::to_string) +} + +fn primary_binding_family(descriptor: &SceneAppDescriptor) -> SceneAppBindingFamily { + descriptor + .entry_bindings + .first() + .map(|binding| binding.binding_family.clone()) + .unwrap_or(SceneAppBindingFamily::AgentTurn) +} + +fn default_sceneapp_schedule() -> TaskSchedule { + TaskSchedule::Every { every_secs: 3600 } +} + +fn default_sceneapp_delivery() -> DeliveryConfig { + DeliveryConfig::default() +} + +fn binding_family_to_string(binding: &SceneAppBindingFamily) -> &'static str { + match binding { + SceneAppBindingFamily::AgentTurn => "agent_turn", + SceneAppBindingFamily::BrowserAssist => "browser_assist", + SceneAppBindingFamily::AutomationJob => "automation_job", + SceneAppBindingFamily::CloudScene => "cloud_scene", + SceneAppBindingFamily::NativeSkill => "native_skill", + } +} + +fn pattern_to_string(pattern: &SceneAppPattern) -> &'static str { + match pattern { + SceneAppPattern::Pipeline => "pipeline", + SceneAppPattern::Generator => "generator", + SceneAppPattern::Reviewer => "reviewer", + SceneAppPattern::Inversion => "inversion", + SceneAppPattern::ToolWrapper => "tool_wrapper", + } +} + +fn sceneapp_type_to_string(sceneapp_type: &SceneAppType) -> &'static str { + match sceneapp_type { + SceneAppType::LocalInstant => "local_instant", + SceneAppType::LocalDurable => "local_durable", + SceneAppType::BrowserGrounded => "browser_grounded", + SceneAppType::CloudManaged => "cloud_managed", + SceneAppType::Hybrid => "hybrid", + } +} + +fn delivery_contract_to_string(delivery_contract: &SceneAppDeliveryContract) -> &'static str { + match delivery_contract { + SceneAppDeliveryContract::ArtifactBundle => "artifact_bundle", + SceneAppDeliveryContract::ProjectPack => "project_pack", + SceneAppDeliveryContract::TableReport => "table_report", + } +} + +fn build_sceneapp_metadata_sceneapp_value(descriptor: &SceneAppDescriptor) -> Value { + json!({ + "id": descriptor.id.clone(), + "title": descriptor.title.clone(), + "sceneapp_type": sceneapp_type_to_string(&descriptor.sceneapp_type), + "pattern_primary": pattern_to_string(&descriptor.pattern_primary), + "pattern_stack": descriptor.pattern_stack.iter().map(pattern_to_string).collect::>(), + "infra_profile": descriptor.infra_profile.clone(), + "delivery_contract": delivery_contract_to_string(&descriptor.delivery_contract), + "source_package_id": descriptor.source_package_id.clone(), + "source_package_version": descriptor.source_package_version.clone(), + }) +} + +fn build_sceneapp_launch_harness_value( + descriptor: &SceneAppDescriptor, + launch_intent: &SceneAppLaunchIntent, +) -> Value { + json!({ + "sceneapp_id": descriptor.id.clone(), + "sceneapp_type": sceneapp_type_to_string(&descriptor.sceneapp_type), + "pattern_primary": pattern_to_string(&descriptor.pattern_primary), + "pattern_stack": descriptor.pattern_stack.iter().map(pattern_to_string).collect::>(), + "infra_profile": descriptor.infra_profile.clone(), + "delivery_contract": delivery_contract_to_string(&descriptor.delivery_contract), + "entry_source": launch_intent.entry_source.clone(), + "workspace_id": launch_intent.workspace_id.clone(), + "project_id": launch_intent.project_id.clone(), + "linked_service_skill_id": descriptor.linked_service_skill_id.clone(), + "linked_scene_key": descriptor.linked_scene_key.clone(), + }) +} + +fn build_sceneapp_harness_map( + descriptor: &SceneAppDescriptor, + launch_intent: &SceneAppLaunchIntent, +) -> Map { + let mut harness = Map::new(); + harness.insert("sceneapp_id".to_string(), json!(descriptor.id.clone())); + harness.insert( + "sceneapp_type".to_string(), + json!(sceneapp_type_to_string(&descriptor.sceneapp_type)), + ); + harness.insert( + "pattern_primary".to_string(), + json!(pattern_to_string(&descriptor.pattern_primary)), + ); + harness.insert( + "pattern_stack".to_string(), + json!(descriptor + .pattern_stack + .iter() + .map(pattern_to_string) + .collect::>()), + ); + harness.insert( + "infra_profile".to_string(), + json!(descriptor.infra_profile.clone()), + ); + harness.insert( + "entry_source".to_string(), + json!(launch_intent.entry_source.clone()), + ); + harness.insert( + "project_id".to_string(), + json!(launch_intent.project_id.clone()), + ); + harness.insert( + "workspace_id".to_string(), + json!(launch_intent.workspace_id.clone()), + ); + harness.insert( + "sceneapp_launch".to_string(), + build_sceneapp_launch_harness_value(descriptor, launch_intent), + ); + harness +} + +fn build_sceneapp_metadata_root( + descriptor: &SceneAppDescriptor, + launch_intent: &SceneAppLaunchIntent, +) -> Map { + let mut root = Map::new(); + root.insert( + "sceneapp".to_string(), + build_sceneapp_metadata_sceneapp_value(descriptor), + ); + + if descriptor.linked_service_skill_id.is_some() || descriptor.linked_scene_key.is_some() { + root.insert( + "service_skill".to_string(), + json!({ + "id": descriptor.linked_service_skill_id.clone(), + "scene_key": descriptor.linked_scene_key.clone(), + }), + ); + } + + root.insert( + "harness".to_string(), + Value::Object(build_sceneapp_harness_map(descriptor, launch_intent)), + ); + + if !launch_intent.slots.is_empty() { + root.insert( + "sceneapp_slots".to_string(), + json!(launch_intent.slots.clone()), + ); + } + + root +} + +fn extract_launch_slot(launch_intent: &SceneAppLaunchIntent, keys: &[&str]) -> Option { + keys.iter().find_map(|key| { + launch_intent + .slots + .get(*key) + .map(String::as_str) + .and_then(|value| normalize_optional_string(Some(value))) + }) +} + +fn extract_first_url_candidate(value: &str) -> Option { + value + .split_whitespace() + .find(|segment| segment.starts_with("http://") || segment.starts_with("https://")) + .map(|segment| { + segment + .trim_end_matches(|ch: char| { + matches!( + ch, + '"' | '\'' | ')' | ']' | '}' | ',' | '.' | '>' | ',' | '。' | ')' + ) + }) + .to_string() + }) + .filter(|segment| !segment.is_empty()) +} + +fn browser_assist_adapter_name(descriptor: &SceneAppDescriptor) -> Option<&'static str> { + match descriptor.id.as_str() { + "x-article-export" => Some("x/article-export"), + _ => None, + } +} + +fn build_browser_assist_args( + descriptor: &SceneAppDescriptor, + launch_intent: &SceneAppLaunchIntent, +) -> Map { + let mut args = Map::new(); + + if descriptor.id == "x-article-export" { + if let Some(url) = + extract_launch_slot(launch_intent, &["article_url", "url"]).or_else(|| { + launch_intent + .user_input + .as_deref() + .and_then(extract_first_url_candidate) + }) + { + args.insert("url".to_string(), json!(url)); + } + + if let Some(target_language) = + extract_launch_slot(launch_intent, &["target_language", "language"]) + { + args.insert("target_language".to_string(), json!(target_language)); + } + } + + if args.is_empty() { + if let Some(user_input) = normalize_optional_string(launch_intent.user_input.as_deref()) { + args.insert("prompt".to_string(), json!(user_input)); + } + if !launch_intent.slots.is_empty() { + args.insert("slots".to_string(), json!(launch_intent.slots.clone())); + } + } + + args +} + +fn build_sceneapp_runtime_request_metadata( + descriptor: &SceneAppDescriptor, + launch_intent: &SceneAppLaunchIntent, + adapter_kind: &SceneAppBindingFamily, +) -> Map { + let mut root = build_sceneapp_metadata_root(descriptor, launch_intent); + let Some(Value::Object(harness)) = root.get_mut("harness") else { + return root; + }; + + match adapter_kind { + SceneAppBindingFamily::CloudScene => { + harness.insert( + "service_scene_launch".to_string(), + json!({ + "kind": "cloud_scene", + "service_scene_run": { + "sceneapp_id": descriptor.id.clone(), + "scene_key": descriptor.linked_scene_key.clone(), + "linked_skill_id": descriptor.linked_service_skill_id.clone(), + "skill_id": descriptor.linked_service_skill_id.clone(), + "skill_title": descriptor.title.clone(), + "skill_summary": descriptor.summary.clone(), + "execution_kind": "cloud_scene", + "entry_source": launch_intent.entry_source.clone().unwrap_or_else(|| "sceneapp_plan".to_string()), + "workspace_id": launch_intent.workspace_id.clone(), + "project_id": launch_intent.project_id.clone(), + "user_input": launch_intent.user_input.clone(), + "slots": launch_intent.slots.clone(), + } + }), + ); + } + SceneAppBindingFamily::BrowserAssist => { + let adapter_name = browser_assist_adapter_name(descriptor) + .map(str::to_string) + .or_else(|| descriptor.linked_scene_key.clone()) + .unwrap_or_else(|| descriptor.id.clone()); + let args = build_browser_assist_args(descriptor, launch_intent); + + harness.insert("browser_requirement".to_string(), json!("required")); + harness.insert( + "browser_requirement_reason".to_string(), + json!("当前 SceneApp 依赖真实浏览器上下文与登录态,不应回退到纯 WebSearch。"), + ); + harness.insert( + "browser_assist".to_string(), + json!({ + "enabled": true, + "profile_key": GENERAL_BROWSER_ASSIST_PROFILE_KEY, + "preferred_backend": "lime_extension_bridge", + "auto_launch": false, + "stream_mode": "both", + }), + ); + harness.insert( + "service_skill_launch".to_string(), + json!({ + "kind": "site_adapter", + "skill_id": descriptor.linked_service_skill_id.clone(), + "skill_title": descriptor.title.clone(), + "adapter_name": adapter_name, + "args": Value::Object(args), + "save_mode": "project_resource", + "project_id": launch_intent.project_id.clone(), + }), + ); + } + SceneAppBindingFamily::AutomationJob => { + harness.insert( + "sceneapp_runtime_action".to_string(), + json!("create_automation_job"), + ); + } + SceneAppBindingFamily::NativeSkill => { + harness.insert( + "sceneapp_runtime_action".to_string(), + json!("launch_native_skill"), + ); + harness.insert( + "sceneapp_native_skill_launch".to_string(), + json!({ + "skill_id": descriptor.linked_service_skill_id.clone(), + "skill_key": descriptor.linked_scene_key.clone(), + "project_id": launch_intent.project_id.clone(), + "workspace_id": launch_intent.workspace_id.clone(), + "user_input": launch_intent.user_input.clone(), + "slots": launch_intent.slots.clone(), + }), + ); + } + SceneAppBindingFamily::AgentTurn => { + harness.insert( + "sceneapp_runtime_action".to_string(), + json!("submit_agent_turn"), + ); + } + } + + root +} + +fn run_status_from_agent_run(status: &AgentRunStatus) -> SceneAppRunStatus { + match status { + AgentRunStatus::Queued => SceneAppRunStatus::Queued, + AgentRunStatus::Running => SceneAppRunStatus::Running, + AgentRunStatus::Success => SceneAppRunStatus::Success, + AgentRunStatus::Error => SceneAppRunStatus::Error, + AgentRunStatus::Canceled => SceneAppRunStatus::Canceled, + AgentRunStatus::Timeout => SceneAppRunStatus::Timeout, + } +} + +fn run_status_from_job_status(status: Option<&str>) -> SceneAppRunStatus { + match status.unwrap_or("queued") { + "running" => SceneAppRunStatus::Running, + "success" => SceneAppRunStatus::Success, + "error" | "failed" => SceneAppRunStatus::Error, + "canceled" => SceneAppRunStatus::Canceled, + "timeout" => SceneAppRunStatus::Timeout, + _ => SceneAppRunStatus::Queued, + } +} + +#[derive(Debug, Clone, Default, PartialEq)] +struct SceneAppDeliveryState { + required_parts: Vec, + completed_parts: Vec, + missing_parts: Vec, + completion_rate: Option, + part_coverage_known: bool, + failure_signal: Option, +} + +fn round_percentage(value: f64) -> f64 { + (value * 10.0).round() / 10.0 +} + +fn count_delivery_artifacts(value: &Value) -> usize { + match value.get("delivery").and_then(Value::as_object) { + Some(delivery) + if delivery + .get("success") + .and_then(Value::as_bool) + .unwrap_or(false) => + { + 1 + } + _ => 0, + } +} + +fn extract_delivery_success_from_metadata_value(value: &Value) -> bool { + value + .get("delivery") + .and_then(Value::as_object) + .and_then(|delivery| delivery.get("success")) + .and_then(Value::as_bool) + .unwrap_or(false) +} + +fn read_string_array(value: &Value, path: &[&str]) -> Vec { + extract_nested_value(value, path) + .and_then(Value::as_array) + .map(|items| { + items + .iter() + .filter_map(Value::as_str) + .filter_map(|item| normalize_optional_string(Some(item))) + .collect::>() + }) + .unwrap_or_default() +} + +fn extract_artifact_paths_from_metadata_value(value: &Value) -> Vec { + let mut paths = Vec::new(); + for candidate in [ + read_string_array(value, &["artifact_paths"]), + read_string_array(value, &["request_metadata", "artifact_paths"]), + read_string_array(value, &["snapshot_metadata", "artifact_paths"]), + ] { + paths.extend(candidate); + } + + let mut deduped = BTreeSet::new(); + paths + .into_iter() + .filter(|path| deduped.insert(path.clone())) + .collect() +} + +fn extract_sceneapp_project_context_from_metadata_value( + parsed: &Value, +) -> (Option, Option) { + let candidates = [ + parsed.get("harness"), + extract_nested_value(parsed, &["request_metadata", "harness"]), + parsed.get("sceneapp_launch"), + parsed.get("sceneappLaunch"), + extract_nested_value(parsed, &["harness", "sceneapp_launch"]), + extract_nested_value(parsed, &["harness", "sceneappLaunch"]), + extract_nested_value(parsed, &["request_metadata", "sceneapp_launch"]), + extract_nested_value(parsed, &["request_metadata", "sceneappLaunch"]), + extract_nested_value(parsed, &["request_metadata", "harness", "sceneapp_launch"]), + extract_nested_value(parsed, &["request_metadata", "harness", "sceneappLaunch"]), + extract_nested_value(parsed, &["harness", "service_skill_launch"]), + extract_nested_value(parsed, &["harness", "serviceSkillLaunch"]), + extract_nested_value( + parsed, + &["request_metadata", "harness", "service_skill_launch"], + ), + extract_nested_value( + parsed, + &["request_metadata", "harness", "serviceSkillLaunch"], + ), + extract_nested_value(parsed, &["harness", "service_scene_launch"]), + extract_nested_value(parsed, &["harness", "serviceSceneLaunch"]), + extract_nested_value( + parsed, + &["request_metadata", "harness", "service_scene_launch"], + ), + extract_nested_value( + parsed, + &["request_metadata", "harness", "serviceSceneLaunch"], + ), + extract_nested_value(parsed, &["harness", "sceneapp_native_skill_launch"]), + extract_nested_value(parsed, &["harness", "sceneappNativeSkillLaunch"]), + extract_nested_value( + parsed, + &[ + "request_metadata", + "harness", + "sceneapp_native_skill_launch", + ], + ), + extract_nested_value( + parsed, + &["request_metadata", "harness", "sceneappNativeSkillLaunch"], + ), + ]; + + ( + read_first_string_from_value_objects(candidates.as_slice(), &["project_id", "projectId"]), + read_first_string_from_value_objects( + candidates.as_slice(), + &["workspace_id", "workspaceId"], + ), + ) +} + +fn normalize_match_token(value: &str) -> String { + value.trim().to_ascii_lowercase().replace('\\', "/") +} + +fn part_alias_candidates(part: &str) -> Vec { + let normalized = normalize_match_token(part); + if normalized.is_empty() { + return Vec::new(); + } + + let basename = normalized + .rsplit('/') + .next() + .map(str::to_string) + .unwrap_or_else(|| normalized.clone()); + let stem = basename + .split('.') + .next() + .map(str::to_string) + .unwrap_or_else(|| basename.clone()); + let token_aliases = normalized + .split(|ch: char| matches!(ch, '/' | '_' | '-' | '.')) + .map(str::trim) + .filter(|token| token.len() >= 3) + .filter(|token| !matches!(*token, "json" | "yaml" | "yml" | "txt" | "md")) + .map(str::to_string) + .collect::>(); + + let custom_aliases = match normalized.as_str() { + "brief" => vec!["summary", "outline", "task-brief"], + "storyboard" => vec!["wireframe", "shotlist", "scene-board"], + "script" => vec!["narration", "copy"], + "music_refs" => vec!["music", "bgm", "soundtrack"], + "video_draft" => vec!["video", "roughcut", "mp4", "movie"], + "review_note" => vec!["review", "qa", "feedback", "approval"], + "index.md" => vec!["index", "readme", "article"], + "meta.json" => vec!["meta", "metadata"], + "storyboard.json" => vec!["storyboard", "wireframe"], + "timeline.json" => vec!["timeline"], + "audio.mp3" => vec!["audio", "voice", "mp3"], + "media.json" => vec!["media"], + "form.json" => vec!["form"], + _ => Vec::new(), + }; + + let mut deduped = BTreeSet::new(); + std::iter::once(normalized) + .chain(std::iter::once(basename)) + .chain(std::iter::once(stem)) + .chain(token_aliases) + .chain(custom_aliases.into_iter().map(str::to_string)) + .filter(|alias| alias.len() >= 3) + .filter(|alias| deduped.insert(alias.clone())) + .collect() +} + +fn path_matches_part(path: &str, part: &str) -> bool { + let normalized_path = normalize_match_token(path); + if normalized_path.is_empty() { + return false; + } + + part_alias_candidates(part) + .into_iter() + .any(|candidate| normalized_path.contains(&candidate)) +} + +fn resolve_sceneapp_artifact_absolute_path( + workspace_root: Option<&str>, + path: &str, +) -> Option { + let normalized_path = normalize_optional_string(Some(path))?; + let candidate = PathBuf::from(&normalized_path); + if candidate.is_absolute() { + return Some(candidate.to_string_lossy().to_string()); + } + + let normalized_root = normalize_optional_string(workspace_root)?; + Some( + PathBuf::from(normalized_root) + .join(normalized_path.replace('/', std::path::MAIN_SEPARATOR_STR)) + .to_string_lossy() + .to_string(), + ) +} + +fn build_sceneapp_delivery_artifact_refs( + descriptor: Option<&SceneAppDescriptor>, + artifact_paths: &[String], + project_id: Option<&str>, + workspace_id: Option<&str>, + workspace_root: Option<&str>, + source: &str, +) -> Vec { + let required_parts = descriptor + .and_then(|item| item.delivery_profile.as_ref()) + .map(|profile| profile.required_parts.clone()) + .unwrap_or_default(); + let mut seen_paths = BTreeSet::new(); + + artifact_paths + .iter() + .filter_map(|path| { + let relative_path = normalize_optional_string(Some(path.as_str()))?; + if !seen_paths.insert(relative_path.clone()) { + return None; + } + + let part_key = required_parts + .iter() + .find(|part| path_matches_part(relative_path.as_str(), part.as_str())) + .cloned(); + + Some(SceneAppDeliveryArtifactRef { + relative_path: relative_path.clone(), + absolute_path: resolve_sceneapp_artifact_absolute_path( + workspace_root, + relative_path.as_str(), + ), + part_key, + project_id: normalize_optional_string(project_id), + workspace_id: normalize_optional_string(workspace_id), + source: source.to_string(), + }) + }) + .collect() +} + +fn build_sceneapp_session_relative_path(session_id: &str, suffix: &str) -> String { + format!("{SCENEAPP_RUNTIME_SESSION_RELATIVE_ROOT}/{session_id}/{suffix}") +} + +fn build_sceneapp_governance_artifact_ref( + kind: SceneAppGovernanceArtifactKind, + label: &str, + session_id: &str, + suffix: &str, + project_id: Option<&str>, + workspace_id: Option<&str>, + workspace_root: Option<&str>, +) -> SceneAppGovernanceArtifactRef { + let relative_path = build_sceneapp_session_relative_path(session_id, suffix); + + SceneAppGovernanceArtifactRef { + kind, + label: label.to_string(), + absolute_path: resolve_sceneapp_artifact_absolute_path( + workspace_root, + relative_path.as_str(), + ), + relative_path, + project_id: normalize_optional_string(project_id), + workspace_id: normalize_optional_string(workspace_id), + source: "session_governance".to_string(), + } +} + +fn build_sceneapp_governance_artifact_refs( + session_id: Option<&str>, + project_id: Option<&str>, + workspace_id: Option<&str>, + workspace_root: Option<&str>, +) -> Vec { + let Some(session_id) = normalize_optional_string(session_id) else { + return Vec::new(); + }; + + vec![ + build_sceneapp_governance_artifact_ref( + SceneAppGovernanceArtifactKind::EvidenceSummary, + "证据摘要", + session_id.as_str(), + SCENEAPP_EVIDENCE_SUMMARY_RELATIVE_PATH, + project_id, + workspace_id, + workspace_root, + ), + build_sceneapp_governance_artifact_ref( + SceneAppGovernanceArtifactKind::ReviewDecisionMarkdown, + "人工复核记录", + session_id.as_str(), + SCENEAPP_REVIEW_DECISION_MARKDOWN_RELATIVE_PATH, + project_id, + workspace_id, + workspace_root, + ), + build_sceneapp_governance_artifact_ref( + SceneAppGovernanceArtifactKind::ReviewDecisionJson, + "复核 JSON", + session_id.as_str(), + SCENEAPP_REVIEW_DECISION_JSON_RELATIVE_PATH, + project_id, + workspace_id, + workspace_root, + ), + ] +} + +fn is_review_part(part: &str) -> bool { + let normalized = normalize_match_token(part); + ["review", "qa", "approval", "approve", "feedback", "check"] + .iter() + .any(|token| normalized.contains(token)) +} + +fn is_planning_part(part: &str) -> bool { + let normalized = normalize_match_token(part); + [ + "brief", + "storyboard", + "script", + "outline", + "music", + "meta", + "timeline", + "plan", + "summary", + ] + .iter() + .any(|token| normalized.contains(token)) +} + +fn is_publish_part(part: &str) -> bool { + let normalized = normalize_match_token(part); + [ + "publish", "video", "audio", "poster", "cover", "media", "index", "article", "report", + "document", "output", "form", "draft", "final", + ] + .iter() + .any(|token| normalized.contains(token)) +} + +fn infer_review_parts(descriptor: &SceneAppDescriptor) -> Vec { + descriptor + .delivery_profile + .as_ref() + .map(|profile| { + profile + .required_parts + .iter() + .filter(|part| is_review_part(part)) + .cloned() + .collect::>() + }) + .unwrap_or_default() +} + +fn infer_publish_parts(descriptor: &SceneAppDescriptor) -> Vec { + let mut candidates = descriptor + .composition_profile + .as_ref() + .and_then(|profile| { + profile + .steps + .iter() + .rev() + .find(|step| !is_review_part(&step.id) && !is_planning_part(&step.id)) + .map(|step| vec![step.id.clone()]) + .or_else(|| { + profile + .steps + .iter() + .rev() + .find(|step| !is_review_part(&step.id)) + .map(|step| vec![step.id.clone()]) + }) + }) + .unwrap_or_default(); + + if candidates.is_empty() { + let required_parts = descriptor + .delivery_profile + .as_ref() + .map(|profile| profile.required_parts.clone()) + .unwrap_or_default(); + candidates = required_parts + .iter() + .filter(|part| !is_review_part(part) && is_publish_part(part)) + .cloned() + .collect::>(); + + if candidates.is_empty() { + if let Some(primary_part) = descriptor + .delivery_profile + .as_ref() + .and_then(|profile| profile.primary_part.clone()) + .filter(|part| !is_review_part(part)) + { + candidates.push(primary_part); + } else if let Some(last_non_review) = required_parts + .iter() + .rev() + .find(|part| !is_review_part(part)) + .cloned() + { + candidates.push(last_non_review); + } + } + } + + let mut deduped = BTreeSet::new(); + candidates + .into_iter() + .filter(|part| deduped.insert(part.clone())) + .collect() +} + +fn build_sceneapp_delivery_state( + descriptor: Option<&SceneAppDescriptor>, + status: &SceneAppRunStatus, + artifact_paths: &[String], + artifact_count: usize, + delivery_success: bool, + artifact_coverage_known: bool, + verification_failure_outcomes: &[String], +) -> SceneAppDeliveryState { + let Some(descriptor) = descriptor else { + return SceneAppDeliveryState::default(); + }; + + let required_parts = descriptor + .delivery_profile + .as_ref() + .map(|profile| profile.required_parts.clone()) + .unwrap_or_default(); + if required_parts.is_empty() { + return SceneAppDeliveryState { + failure_signal: if !verification_failure_outcomes.is_empty() + && descriptor.delivery_contract == SceneAppDeliveryContract::ProjectPack + { + Some("review_blocked".to_string()) + } else if matches!(status, SceneAppRunStatus::Timeout) + && descriptor + .scorecard_profile + .as_ref() + .is_some_and(|profile| { + profile + .failure_signals + .iter() + .any(|signal| signal == "automation_timeout") + }) + { + Some("automation_timeout".to_string()) + } else { + None + }, + ..SceneAppDeliveryState::default() + }; + } + + let mut completed_parts = required_parts + .iter() + .filter(|part| { + artifact_paths + .iter() + .any(|path| path_matches_part(path, part)) + }) + .cloned() + .collect::>(); + + let part_coverage_known = if artifact_coverage_known { + true + } else if artifact_paths.is_empty() { + if delivery_success && required_parts.len() == 1 { + completed_parts = vec![required_parts[0].clone()]; + true + } else { + false + } + } else { + true + }; + + let mut completed_dedup = BTreeSet::new(); + completed_parts.retain(|part| completed_dedup.insert(part.clone())); + + let missing_parts = if part_coverage_known { + required_parts + .iter() + .filter(|part| !completed_parts.contains(part)) + .cloned() + .collect::>() + } else { + Vec::new() + }; + + let completion_rate = if part_coverage_known { + Some(round_percentage( + (completed_parts.len() as f64 / required_parts.len() as f64) * 100.0, + )) + } else { + None + }; + + let review_parts = infer_review_parts(descriptor); + let publish_parts = infer_publish_parts(descriptor); + let missing_part_set = missing_parts.iter().cloned().collect::>(); + + let failure_signal = if descriptor.delivery_contract == SceneAppDeliveryContract::ProjectPack { + if !verification_failure_outcomes.is_empty() { + Some("review_blocked".to_string()) + } else if matches!(status, SceneAppRunStatus::Timeout) + && descriptor + .scorecard_profile + .as_ref() + .is_some_and(|profile| { + profile + .failure_signals + .iter() + .any(|signal| signal == "automation_timeout") + }) + { + Some("automation_timeout".to_string()) + } else if part_coverage_known && completed_parts.is_empty() { + Some("pack_incomplete".to_string()) + } else if review_parts + .iter() + .any(|part| missing_part_set.contains(part)) + { + Some("review_blocked".to_string()) + } else if publish_parts + .iter() + .any(|part| missing_part_set.contains(part)) + { + Some("publish_stalled".to_string()) + } else if part_coverage_known && !missing_parts.is_empty() { + Some("pack_incomplete".to_string()) + } else if !part_coverage_known + && (artifact_count == 0 + || matches!( + status, + SceneAppRunStatus::Error + | SceneAppRunStatus::Canceled + | SceneAppRunStatus::Timeout + )) + { + Some("pack_incomplete".to_string()) + } else { + None + } + } else if matches!(status, SceneAppRunStatus::Timeout) + && descriptor + .scorecard_profile + .as_ref() + .is_some_and(|profile| { + profile + .failure_signals + .iter() + .any(|signal| signal == "automation_timeout") + }) + { + Some("automation_timeout".to_string()) + } else if part_coverage_known && !missing_parts.is_empty() { + Some("pack_incomplete".to_string()) + } else { + None + }; + + SceneAppDeliveryState { + required_parts, + completed_parts, + missing_parts, + completion_rate, + part_coverage_known, + failure_signal, + } +} + +fn load_sceneapp_run_runtime_evidence( + db: &DbConnection, + run: &AgentRun, +) -> Option { + let context = load_sceneapp_run_export_context(db, run).ok()?; + + Some(build_runtime_evidence_sceneapp_snapshot( + &context.detail, + &context.thread_read, + Some(context.workspace_root.as_path()), + )) +} + +fn build_sceneapp_run_thread_read( + db: &DbConnection, + detail: &crate::agent::SessionDetail, +) -> AgentRuntimeThreadReadModel { + sync_thread_reliability_projection(db, detail) + .map(|projection| { + AgentRuntimeThreadReadModel::from_parts( + detail, + &[], + projection.pending_requests, + projection.last_outcome, + projection.incidents, + None, + ) + }) + .unwrap_or_else(|_| AgentRuntimeThreadReadModel::from_session_detail(detail, &[])) +} + +fn load_sceneapp_run_export_context( + db: &DbConnection, + run: &AgentRun, +) -> Result { + let session_id = normalize_optional_string(run.session_id.as_deref()) + .ok_or_else(|| "当前运行缺少 sessionId,无法导出治理制品".to_string())?; + let mut detail = AsterAgentWrapper::get_session_sync(db, session_id.as_str()) + .map_err(|error| format!("读取 SceneApp 运行会话失败: {error}"))?; + narrow_session_detail_to_run_window(&mut detail, run); + let thread_read = build_sceneapp_run_thread_read(db, &detail); + let workspace_root = resolve_runtime_export_workspace_root(db, &detail)?; + + Ok(SceneAppRunExportContext { + detail, + thread_read, + workspace_root, + }) +} + +pub fn prepare_sceneapp_run_governance_artifact( + db: &DbConnection, + run: &AgentRun, + kind: &SceneAppGovernanceArtifactKind, +) -> Result<(), String> { + let context = load_sceneapp_run_export_context(db, run)?; + + match kind { + SceneAppGovernanceArtifactKind::EvidenceSummary => { + export_runtime_evidence_pack( + &context.detail, + &context.thread_read, + context.workspace_root.as_path(), + )?; + } + SceneAppGovernanceArtifactKind::ReviewDecisionMarkdown + | SceneAppGovernanceArtifactKind::ReviewDecisionJson => { + export_runtime_review_decision_template( + &context.detail, + &context.thread_read, + context.workspace_root.as_path(), + )?; + } + } + + Ok(()) +} + +fn narrow_session_detail_to_run_window(detail: &mut crate::agent::SessionDetail, run: &AgentRun) { + let started_at = run.started_at.as_str(); + let finished_at = run.finished_at.as_deref(); + detail + .items + .retain(|item| timestamp_in_run_window(item.updated_at.as_str(), started_at, finished_at)); + + let allowed_turn_ids = detail + .items + .iter() + .map(|item| item.turn_id.clone()) + .collect::>(); + detail.turns.retain(|turn| { + allowed_turn_ids.contains(turn.id.as_str()) + || timestamp_in_run_window(turn.updated_at.as_str(), started_at, finished_at) + }); +} + +fn timestamp_in_run_window(timestamp: &str, started_at: &str, finished_at: Option<&str>) -> bool { + let Some(timestamp) = parse_rfc3339_utc(timestamp) else { + return true; + }; + let Some(started_at) = parse_rfc3339_utc(started_at) else { + return true; + }; + if timestamp < started_at { + return false; + } + + if let Some(finished_at) = finished_at.and_then(parse_rfc3339_utc) { + return timestamp <= finished_at; + } + + true +} + +fn parse_rfc3339_utc(value: &str) -> Option> { + DateTime::parse_from_rfc3339(value.trim()) + .ok() + .map(|timestamp| timestamp.with_timezone(&Utc)) +} + +fn extract_nested_value<'a>(value: &'a Value, path: &[&str]) -> Option<&'a Value> { + let mut current = value; + for segment in path { + current = current.get(*segment)?; + } + Some(current) +} + +fn read_first_string_from_value_objects( + candidates: &[Option<&Value>], + keys: &[&str], +) -> Option { + candidates.iter().find_map(|candidate| { + let object = candidate.and_then(|value| value.as_object())?; + keys.iter().find_map(|key| { + object + .get(*key) + .and_then(Value::as_str) + .and_then(|value| normalize_optional_string(Some(value))) + }) + }) +} + +fn read_string_map_from_value_objects( + candidates: &[Option<&Value>], + keys: &[&str], +) -> BTreeMap { + candidates + .iter() + .find_map(|candidate| { + let object = candidate.and_then(|value| value.as_object())?; + let slot_object = keys + .iter() + .find_map(|key| object.get(*key)) + .and_then(Value::as_object)?; + + let normalized = slot_object + .iter() + .filter_map(|(key, value)| { + let normalized_key = normalize_optional_string(Some(key.as_str()))?; + let normalized_value = + normalize_optional_string(value.as_str().map(str::trim))?; + Some((normalized_key, normalized_value)) + }) + .collect::>(); + + if normalized.is_empty() { + None + } else { + Some(normalized) + } + }) + .unwrap_or_default() +} + +fn read_nested_launch_context<'a>(value: &'a Value, keys: &[&str]) -> Option<&'a Value> { + let object = value.as_object()?; + keys.iter().find_map(|key| object.get(*key)) +} + +fn extract_cloud_scene_runtime_ref_from_metadata_value( + parsed: &Value, +) -> Option { + let launch_candidates = [ + parsed.get("service_scene_launch"), + parsed.get("serviceSceneLaunch"), + extract_nested_value(parsed, &["harness", "service_scene_launch"]), + extract_nested_value(parsed, &["harness", "serviceSceneLaunch"]), + extract_nested_value(parsed, &["request_metadata", "service_scene_launch"]), + extract_nested_value(parsed, &["request_metadata", "serviceSceneLaunch"]), + extract_nested_value( + parsed, + &["request_metadata", "harness", "service_scene_launch"], + ), + extract_nested_value( + parsed, + &["request_metadata", "harness", "serviceSceneLaunch"], + ), + ]; + let context_candidates = launch_candidates + .iter() + .map(|candidate| { + candidate.and_then(|value| { + read_nested_launch_context( + value, + &[ + "service_scene_run", + "serviceSceneRun", + "request_context", + "requestContext", + ], + ) + .or(Some(value)) + }) + }) + .collect::>(); + let candidates = context_candidates.as_slice(); + + let scene_key = read_first_string_from_value_objects(candidates, &["scene_key", "sceneKey"]); + let skill_id = read_first_string_from_value_objects( + candidates, + &["skill_id", "skillId", "linked_skill_id", "linkedSkillId"], + ); + let project_id = read_first_string_from_value_objects(candidates, &["project_id", "projectId"]); + let content_id = read_first_string_from_value_objects(candidates, &["content_id", "contentId"]); + let workspace_id = + read_first_string_from_value_objects(candidates, &["workspace_id", "workspaceId"]); + let entry_source = + read_first_string_from_value_objects(candidates, &["entry_source", "entrySource"]); + let user_input = read_first_string_from_value_objects(candidates, &["user_input", "userInput"]); + let slots = read_string_map_from_value_objects(candidates, &["slots"]); + + if scene_key.is_none() + && skill_id.is_none() + && project_id.is_none() + && content_id.is_none() + && workspace_id.is_none() + && entry_source.is_none() + && user_input.is_none() + && slots.is_empty() + { + return None; + } + + Some(SceneAppCloudSceneRuntimeRef { + scene_key, + skill_id, + project_id, + content_id, + workspace_id, + entry_source, + user_input, + slots, + }) +} + +fn extract_native_skill_runtime_ref_from_metadata_value( + parsed: &Value, +) -> Option { + let candidates = [ + parsed.get("sceneapp_native_skill_launch"), + parsed.get("sceneappNativeSkillLaunch"), + extract_nested_value(parsed, &["harness", "sceneapp_native_skill_launch"]), + extract_nested_value(parsed, &["harness", "sceneappNativeSkillLaunch"]), + extract_nested_value( + parsed, + &["request_metadata", "sceneapp_native_skill_launch"], + ), + extract_nested_value(parsed, &["request_metadata", "sceneappNativeSkillLaunch"]), + extract_nested_value( + parsed, + &[ + "request_metadata", + "harness", + "sceneapp_native_skill_launch", + ], + ), + extract_nested_value( + parsed, + &["request_metadata", "harness", "sceneappNativeSkillLaunch"], + ), + ]; + + let skill_id = + read_first_string_from_value_objects(candidates.as_slice(), &["skill_id", "skillId"]); + let skill_key = + read_first_string_from_value_objects(candidates.as_slice(), &["skill_key", "skillKey"]); + let project_id = + read_first_string_from_value_objects(candidates.as_slice(), &["project_id", "projectId"]); + let workspace_id = read_first_string_from_value_objects( + candidates.as_slice(), + &["workspace_id", "workspaceId"], + ); + let user_input = + read_first_string_from_value_objects(candidates.as_slice(), &["user_input", "userInput"]); + let slots = read_string_map_from_value_objects(candidates.as_slice(), &["slots"]); + + if skill_id.is_none() && skill_key.is_none() && slots.is_empty() { + return None; + } + + Some(SceneAppNativeSkillRuntimeRef { + skill_id, + skill_key, + project_id, + workspace_id, + user_input, + slots, + }) +} + +fn extract_browser_runtime_ref_from_metadata_value( + parsed: &Value, +) -> Option { + let candidates = [ + parsed.get("browser_runtime_ref"), + parsed.get("browserRuntimeRef"), + parsed.get("browser_session"), + parsed.get("browserSession"), + parsed.get("browser_assist"), + parsed.get("browserAssist"), + extract_nested_value(parsed, &["request_metadata", "browser_runtime_ref"]), + extract_nested_value(parsed, &["request_metadata", "browserRuntimeRef"]), + extract_nested_value(parsed, &["request_metadata", "browser_session"]), + extract_nested_value(parsed, &["request_metadata", "browserSession"]), + extract_nested_value(parsed, &["request_metadata", "browser_assist"]), + extract_nested_value(parsed, &["request_metadata", "browserAssist"]), + extract_nested_value(parsed, &["request_metadata", "harness", "browser_assist"]), + extract_nested_value(parsed, &["request_metadata", "harness", "browserAssist"]), + ]; + + let profile_key = + read_first_string_from_value_objects(&candidates, &["profile_key", "profileKey"]); + let session_id = + read_first_string_from_value_objects(&candidates, &["session_id", "sessionId"]); + let target_id = read_first_string_from_value_objects(&candidates, &["target_id", "targetId"]); + + if profile_key.is_none() && session_id.is_none() && target_id.is_none() { + return None; + } + + Some(SceneAppBrowserRuntimeRef { + profile_key, + session_id, + target_id, + }) +} + +fn ensure_automation_supported(descriptor: &SceneAppDescriptor) -> Result<(), String> { + let requires_browser = descriptor.launch_requirements.iter().any(|requirement| { + matches!( + requirement.kind, + SceneAppLaunchRequirementKind::BrowserSession + ) + }); + let uses_browser_binding = descriptor + .entry_bindings + .iter() + .any(|binding| matches!(binding.binding_family, SceneAppBindingFamily::BrowserAssist)); + + if requires_browser || uses_browser_binding { + return Err("当前 SceneApp 依赖浏览器上下文,暂不支持直接转为 automation job".to_string()); + } + + Ok(()) +} + +fn ensure_required_inputs( + descriptor: &SceneAppDescriptor, + launch_intent: &SceneAppLaunchIntent, +) -> Result<(), String> { + let missing_user_input = + descriptor.launch_requirements.iter().any(|requirement| { + matches!(requirement.kind, SceneAppLaunchRequirementKind::UserInput) + }) && !launch_intent + .user_input + .as_deref() + .is_some_and(|value| !value.trim().is_empty()) + && !launch_intent + .slots + .values() + .any(|value| !value.trim().is_empty()); + if missing_user_input { + return Err("当前 SceneApp 缺少必填输入,无法创建自动化任务".to_string()); + } + + let missing_project = descriptor + .launch_requirements + .iter() + .any(|requirement| matches!(requirement.kind, SceneAppLaunchRequirementKind::Project)) + && !launch_intent + .project_id + .as_deref() + .is_some_and(|value| !value.trim().is_empty()); + if missing_project { + return Err("当前 SceneApp 需要 project_id 才能创建自动化任务".to_string()); + } + + if !launch_intent + .workspace_id + .as_deref() + .is_some_and(|value| !value.trim().is_empty()) + { + return Err("创建 SceneApp 自动化任务时必须提供 workspace_id".to_string()); + } + + Ok(()) +} + +fn build_sceneapp_request_metadata( + descriptor: &SceneAppDescriptor, + intent: &SceneAppAutomationIntent, +) -> Value { + Value::Object(build_sceneapp_metadata_root( + descriptor, + &intent.launch_intent, + )) +} + +fn build_sceneapp_runtime_action(binding_family: &SceneAppBindingFamily) -> SceneAppRuntimeAction { + match binding_family { + SceneAppBindingFamily::AgentTurn => SceneAppRuntimeAction::SubmitAgentTurn, + SceneAppBindingFamily::BrowserAssist => SceneAppRuntimeAction::LaunchBrowserAssist, + SceneAppBindingFamily::AutomationJob => SceneAppRuntimeAction::CreateAutomationJob, + SceneAppBindingFamily::CloudScene => SceneAppRuntimeAction::LaunchCloudScene, + SceneAppBindingFamily::NativeSkill => SceneAppRuntimeAction::LaunchNativeSkill, + } +} + +pub fn build_sceneapp_runtime_adapter_plan( + descriptor: &SceneAppDescriptor, + launch_intent: &SceneAppLaunchIntent, +) -> SceneAppRuntimeAdapterPlan { + let adapter_kind = primary_binding_family(descriptor); + let runtime_action = build_sceneapp_runtime_action(&adapter_kind); + let request_metadata = Value::Object(build_sceneapp_runtime_request_metadata( + descriptor, + launch_intent, + &adapter_kind, + )); + + let mut notes = vec![format!( + "当前 SceneApp 规划先映射到 {} 主链,再由后续 runtime adapter 负责真实执行。", + binding_family_to_string(&adapter_kind) + )]; + + let preferred_profile_key = match adapter_kind { + SceneAppBindingFamily::BrowserAssist => { + Some(GENERAL_BROWSER_ASSIST_PROFILE_KEY.to_string()) + } + _ => None, + }; + + let target_ref = match adapter_kind { + SceneAppBindingFamily::BrowserAssist => browser_assist_adapter_name(descriptor) + .map(str::to_string) + .or_else(|| descriptor.linked_scene_key.clone()) + .unwrap_or_else(|| descriptor.id.clone()), + SceneAppBindingFamily::CloudScene + | SceneAppBindingFamily::NativeSkill + | SceneAppBindingFamily::AutomationJob => descriptor + .linked_service_skill_id + .clone() + .or_else(|| descriptor.linked_scene_key.clone()) + .unwrap_or_else(|| descriptor.id.clone()), + SceneAppBindingFamily::AgentTurn => descriptor.id.clone(), + }; + + let launch_payload = match adapter_kind { + SceneAppBindingFamily::CloudScene => { + if matches!(descriptor.sceneapp_type, SceneAppType::Hybrid) { + notes.push( + "当前 SceneApp 属于 hybrid,但首发执行仍先收敛到 cloud_scene;本地编排步骤由后续 composition blueprint 接续。" + .to_string(), + ); + } + + json!({ + "sceneapp_id": descriptor.id.clone(), + "scene_key": descriptor.linked_scene_key.clone(), + "service_skill_id": descriptor.linked_service_skill_id.clone(), + "workspace_id": launch_intent.workspace_id.clone(), + "project_id": launch_intent.project_id.clone(), + "entry_source": launch_intent.entry_source.clone().unwrap_or_else(|| "sceneapp_plan".to_string()), + "user_input": launch_intent.user_input.clone(), + "slots": launch_intent.slots.clone(), + }) + } + SceneAppBindingFamily::BrowserAssist => { + let args = build_browser_assist_args(descriptor, launch_intent); + if !args.contains_key("url") && descriptor.id == "x-article-export" { + notes.push( + "当前 planner 还无法仅凭 descriptor 判断 article_url 是否齐备;执行前应继续通过 scene gate 补齐目标链接。" + .to_string(), + ); + } + + json!({ + "sceneapp_id": descriptor.id.clone(), + "service_skill_id": descriptor.linked_service_skill_id.clone(), + "adapter_name": target_ref.clone(), + "profile_key": preferred_profile_key.clone(), + "args": Value::Object(args), + "project_id": launch_intent.project_id.clone(), + "workspace_id": launch_intent.workspace_id.clone(), + "save_mode": "project_resource", + }) + } + SceneAppBindingFamily::AutomationJob => { + notes.push("当前 planner 只生成 durable automation draft;具体 schedule、delivery 与 run-now 策略可继续由 UI 调整。".to_string()); + + json!({ + "sceneapp_id": descriptor.id.clone(), + "name": format!("{} 自动化", descriptor.title), + "enabled": true, + "execution_mode": "intelligent", + "schedule": { + "kind": "every", + "every_secs": 3600, + }, + "delivery": { + "mode": "none", + "channel": null, + "target": null, + "best_effort": false, + "output_schema": null, + "output_format": null, + }, + "launch_intent": { + "sceneapp_id": launch_intent.sceneapp_id.clone(), + "entry_source": launch_intent.entry_source.clone(), + "workspace_id": launch_intent.workspace_id.clone(), + "project_id": launch_intent.project_id.clone(), + "user_input": launch_intent.user_input.clone(), + "slots": launch_intent.slots.clone(), + "runtime_context": launch_intent.runtime_context.clone(), + }, + }) + } + SceneAppBindingFamily::NativeSkill => { + notes.push( + "native_skill 目前仍建议由统一 SceneApp UI 继续补参后,再把 draft 投递给本地 skill 执行入口。" + .to_string(), + ); + + json!({ + "sceneapp_id": descriptor.id.clone(), + "service_skill_id": descriptor.linked_service_skill_id.clone(), + "skill_key": descriptor.linked_scene_key.clone(), + "workspace_id": launch_intent.workspace_id.clone(), + "project_id": launch_intent.project_id.clone(), + "user_input": launch_intent.user_input.clone(), + "slots": launch_intent.slots.clone(), + }) + } + SceneAppBindingFamily::AgentTurn => { + notes.push( + "agent_turn 类型 SceneApp 当前仍建议走统一聊天 turn,并把 sceneapp_launch metadata 合并进 request_metadata。" + .to_string(), + ); + + json!({ + "sceneapp_id": descriptor.id.clone(), + "message": launch_intent.user_input.clone().unwrap_or_default(), + "workspace_id": launch_intent.workspace_id.clone(), + "project_id": launch_intent.project_id.clone(), + "slots": launch_intent.slots.clone(), + }) + } + }; + + SceneAppRuntimeAdapterPlan { + adapter_kind, + runtime_action, + target_ref, + target_label: descriptor.title.clone(), + linked_service_skill_id: descriptor.linked_service_skill_id.clone(), + linked_scene_key: descriptor.linked_scene_key.clone(), + preferred_profile_key, + request_metadata, + launch_payload, + notes, + } +} + +fn build_sceneapp_automation_prompt( + descriptor: &SceneAppDescriptor, + intent: &SceneAppAutomationIntent, +) -> String { + let mut sections = vec![ + format!("SceneApp:{}", descriptor.title.as_str()), + format!("场景摘要:{}", descriptor.summary.as_str()), + format!( + "运行形态:{}", + sceneapp_type_to_string(&descriptor.sceneapp_type) + ), + format!( + "模式组合:{}", + descriptor + .pattern_stack + .iter() + .map(pattern_to_string) + .collect::>() + .join(" + ") + ), + format!( + "交付合同:{}", + delivery_contract_to_string(&descriptor.delivery_contract) + ), + ]; + + if let Some(user_input) = normalize_optional_string(intent.launch_intent.user_input.as_deref()) + { + sections.push(format!("用户目标:{user_input}")); + } + + if !intent.launch_intent.slots.is_empty() { + let slot_lines = intent + .launch_intent + .slots + .iter() + .map(|(key, value)| format!("- {key}: {value}")) + .collect::>() + .join("\n"); + sections.push(format!("结构化补参:\n{slot_lines}")); + } + + if let Some(project_id) = normalize_optional_string(intent.launch_intent.project_id.as_deref()) + { + sections.push(format!("项目 ID:{project_id}")); + } + + sections.push("请严格围绕上述 SceneApp 合同执行任务,并把结果沉淀为可复用资产。".to_string()); + sections.join("\n\n") +} + +pub fn build_sceneapp_automation_draft( + descriptor: &SceneAppDescriptor, + intent: &SceneAppAutomationIntent, +) -> Result { + ensure_automation_supported(descriptor)?; + ensure_required_inputs(descriptor, &intent.launch_intent)?; + + let workspace_id = intent + .launch_intent + .workspace_id + .as_deref() + .map(str::trim) + .filter(|value| !value.is_empty()) + .ok_or_else(|| "创建 SceneApp 自动化任务时必须提供 workspace_id".to_string())? + .to_string(); + + let job_name = normalize_optional_string(intent.name.as_deref()) + .unwrap_or_else(|| format!("{} 自动化", descriptor.title.as_str())); + let description = normalize_optional_string(intent.description.as_deref()).or_else(|| { + Some(format!( + "由 SceneApp {} 派生的自动化任务,按统一 descriptor 与治理合同执行。", + descriptor.title.as_str() + )) + }); + + Ok(AutomationJobDraft { + name: job_name, + description, + enabled: intent.enabled.unwrap_or(true), + workspace_id, + execution_mode: intent + .execution_mode + .unwrap_or(AutomationExecutionMode::Intelligent), + schedule: intent + .schedule + .clone() + .unwrap_or_else(default_sceneapp_schedule), + payload: AutomationPayload::AgentTurn { + prompt: build_sceneapp_automation_prompt(descriptor, intent), + system_prompt: Some(format!( + "你正在执行 SceneApp 自动化任务。binding_family={},请优先遵守 SceneApp 合同和结果交付要求。", + descriptor + .entry_bindings + .first() + .map(|binding| binding_family_to_string(&binding.binding_family)) + .unwrap_or("agent_turn") + )), + web_search: false, + request_metadata: Some(build_sceneapp_request_metadata(descriptor, intent)), + content_id: None, + }, + delivery: intent.delivery.clone().unwrap_or_else(default_sceneapp_delivery), + timeout_secs: intent.timeout_secs, + max_retries: intent.max_retries.unwrap_or(3), + }) +} + +pub fn build_sceneapp_automation_result( + descriptor: &SceneAppDescriptor, + job: &AutomationJobRecord, + run_now_result: Option, +) -> SceneAppAutomationResult { + SceneAppAutomationResult { + sceneapp_id: descriptor.id.clone(), + job_id: job.id.clone(), + job_name: job.name.clone(), + enabled: job.enabled, + workspace_id: job.workspace_id.clone(), + next_run_at: job.next_run_at.clone(), + run_now_result: run_now_result.map(|result| SceneAppAutomationRunResult { + job_count: result.job_count, + success_count: result.success_count, + failed_count: result.failed_count, + timeout_count: result.timeout_count, + }), + } +} + +pub fn extract_sceneapp_id_from_automation_job(job: &AutomationJobRecord) -> Option { + job.payload + .as_object() + .and_then(|payload| payload.get("request_metadata")) + .and_then(Value::as_object) + .and_then(|metadata| metadata.get("sceneapp")) + .and_then(Value::as_object) + .and_then(|sceneapp| sceneapp.get("id")) + .and_then(Value::as_str) + .map(str::trim) + .filter(|value| !value.is_empty()) + .map(str::to_string) +} + +pub fn extract_sceneapp_id_from_run_metadata(run: &AgentRun) -> Option { + let parsed = run + .metadata + .as_deref() + .and_then(|raw| serde_json::from_str::(raw).ok())?; + + parsed + .get("sceneapp") + .and_then(|value| value.get("id")) + .and_then(Value::as_str) + .map(str::to_string) + .or_else(|| { + parsed + .get("harness") + .and_then(|value| value.get("sceneapp_id")) + .and_then(Value::as_str) + .map(str::to_string) + }) +} + +fn build_sceneapp_run_summary_from_agent_run_inner( + run: &AgentRun, + descriptor: Option<&SceneAppDescriptor>, + sceneapp_id: String, + runtime_evidence: Option<&RuntimeEvidenceSceneAppSnapshot>, +) -> SceneAppRunSummary { + let parsed = run + .metadata + .as_deref() + .and_then(|raw| serde_json::from_str::(raw).ok()); + let status = run_status_from_agent_run(&run.status); + let metadata_artifact_paths = parsed + .as_ref() + .map(extract_artifact_paths_from_metadata_value) + .unwrap_or_default(); + let metadata_artifact_count = metadata_artifact_paths + .len() + .max(parsed.as_ref().map(count_delivery_artifacts).unwrap_or(0)); + let artifact_paths = runtime_evidence + .map(|snapshot| snapshot.recent_artifact_paths.clone()) + .unwrap_or_else(|| metadata_artifact_paths.clone()); + let artifact_count = runtime_evidence + .map(|snapshot| snapshot.recent_artifact_paths.len()) + .unwrap_or(metadata_artifact_count); + let (project_id, workspace_id) = parsed + .as_ref() + .map(extract_sceneapp_project_context_from_metadata_value) + .unwrap_or((None, None)); + let delivery_artifact_refs = build_sceneapp_delivery_artifact_refs( + descriptor, + &artifact_paths, + project_id.as_deref(), + workspace_id.as_deref(), + runtime_evidence.and_then(|snapshot| snapshot.workspace_root.as_deref()), + if runtime_evidence.is_some() { + "runtime_evidence" + } else { + "metadata_fallback" + }, + ); + let governance_artifact_refs = build_sceneapp_governance_artifact_refs( + run.session_id.as_deref(), + project_id.as_deref(), + workspace_id.as_deref(), + runtime_evidence.and_then(|snapshot| snapshot.workspace_root.as_deref()), + ); + let verification_failure_outcomes = runtime_evidence + .map(|snapshot| snapshot.verification_failure_outcomes.clone()) + .unwrap_or_default(); + let runtime_evidence_used = runtime_evidence.is_some(); + let delivery_state = build_sceneapp_delivery_state( + descriptor, + &status, + &artifact_paths, + artifact_count, + parsed + .as_ref() + .map(extract_delivery_success_from_metadata_value) + .unwrap_or(false), + runtime_evidence.is_some(), + verification_failure_outcomes.as_slice(), + ); + + SceneAppRunSummary { + run_id: run.id.clone(), + sceneapp_id, + status, + source: run.source.clone(), + source_ref: run.source_ref.clone(), + session_id: run.session_id.clone(), + browser_runtime_ref: parsed + .as_ref() + .and_then(extract_browser_runtime_ref_from_metadata_value), + cloud_scene_runtime_ref: parsed + .as_ref() + .and_then(extract_cloud_scene_runtime_ref_from_metadata_value), + native_skill_runtime_ref: parsed + .as_ref() + .and_then(extract_native_skill_runtime_ref_from_metadata_value), + started_at: run.started_at.clone(), + finished_at: run.finished_at.clone(), + artifact_count, + delivery_artifact_refs, + governance_artifact_refs, + delivery_required_parts: delivery_state.required_parts, + delivery_completed_parts: delivery_state.completed_parts, + delivery_missing_parts: delivery_state.missing_parts, + delivery_completion_rate: delivery_state.completion_rate, + delivery_part_coverage_known: delivery_state.part_coverage_known, + failure_signal: delivery_state.failure_signal, + runtime_evidence_used, + evidence_known_gaps: runtime_evidence + .map(|snapshot| snapshot.known_gaps.clone()) + .unwrap_or_default(), + verification_failure_outcomes, + request_telemetry_available: runtime_evidence + .map(|snapshot| snapshot.request_telemetry_available), + request_telemetry_matched_count: runtime_evidence + .map(|snapshot| snapshot.request_telemetry_matched_count), + artifact_validator_applicable: runtime_evidence + .map(|snapshot| snapshot.artifact_validator_applicable), + artifact_validator_issue_count: runtime_evidence + .map(|snapshot| snapshot.artifact_validator_issue_count), + artifact_validator_recovered_count: runtime_evidence + .map(|snapshot| snapshot.artifact_validator_recovered_count), + } +} + +pub fn build_sceneapp_run_summary_from_agent_run( + run: &AgentRun, + descriptor: Option<&SceneAppDescriptor>, + sceneapp_id: String, +) -> SceneAppRunSummary { + build_sceneapp_run_summary_from_agent_run_inner(run, descriptor, sceneapp_id, None) +} + +pub fn build_sceneapp_run_summary_from_agent_run_with_db( + db: &DbConnection, + run: &AgentRun, + descriptor: Option<&SceneAppDescriptor>, + sceneapp_id: String, +) -> SceneAppRunSummary { + let runtime_evidence = load_sceneapp_run_runtime_evidence(db, run); + build_sceneapp_run_summary_from_agent_run_inner( + run, + descriptor, + sceneapp_id, + runtime_evidence.as_ref(), + ) +} + +pub fn build_sceneapp_run_summary_from_automation_job( + job: &AutomationJobRecord, + descriptor: Option<&SceneAppDescriptor>, + sceneapp_id: String, +) -> SceneAppRunSummary { + let status = run_status_from_job_status(job.last_status.as_deref()); + let artifact_count = job + .last_delivery + .as_ref() + .filter(|delivery| delivery.success) + .map(|_| 1usize) + .unwrap_or(0); + let delivery_state = build_sceneapp_delivery_state( + descriptor, + &status, + &[], + artifact_count, + job.last_delivery + .as_ref() + .map(|delivery| delivery.success) + .unwrap_or(false), + false, + &[], + ); + + SceneAppRunSummary { + run_id: format!("automation-job:{}", job.id), + sceneapp_id, + status, + source: "automation".to_string(), + source_ref: Some(job.id.clone()), + session_id: None, + browser_runtime_ref: None, + cloud_scene_runtime_ref: None, + native_skill_runtime_ref: None, + started_at: job + .last_run_at + .clone() + .unwrap_or_else(|| job.created_at.clone()), + finished_at: job.last_finished_at.clone(), + artifact_count, + delivery_artifact_refs: Vec::new(), + governance_artifact_refs: Vec::new(), + delivery_required_parts: delivery_state.required_parts, + delivery_completed_parts: delivery_state.completed_parts, + delivery_missing_parts: delivery_state.missing_parts, + delivery_completion_rate: delivery_state.completion_rate, + delivery_part_coverage_known: delivery_state.part_coverage_known, + failure_signal: delivery_state.failure_signal, + runtime_evidence_used: false, + evidence_known_gaps: Vec::new(), + verification_failure_outcomes: Vec::new(), + request_telemetry_available: None, + request_telemetry_matched_count: None, + artifact_validator_applicable: None, + artifact_validator_issue_count: None, + artifact_validator_recovered_count: None, + } +} + +#[cfg(test)] +mod tests { + use super::*; + use crate::database::dao::agent_run::{AgentRun, AgentRunStatus}; + use crate::database::dao::automation_job::AutomationJob; + use crate::database::dao::automation_job::AutomationJobLastDelivery; + use crate::sceneapp::catalog::get_sceneapp_descriptor; + use lime_core::config::{AutomationExecutionMode, DeliveryConfig, TaskSchedule}; + + fn create_agent_run(metadata: Value) -> AgentRun { + AgentRun { + id: "run-1".to_string(), + source: "chat".to_string(), + source_ref: None, + session_id: Some("session-1".to_string()), + status: AgentRunStatus::Success, + started_at: "2026-04-15T00:00:00.000Z".to_string(), + finished_at: Some("2026-04-15T00:01:00.000Z".to_string()), + duration_ms: Some(60_000), + error_code: None, + error_message: None, + metadata: Some(metadata.to_string()), + created_at: "2026-04-15T00:00:00.000Z".to_string(), + updated_at: "2026-04-15T00:01:00.000Z".to_string(), + } + } + + fn create_automation_job( + last_delivery: Option, + ) -> AutomationJobRecord { + AutomationJob { + id: "job-1".to_string(), + name: "SceneApp automation".to_string(), + description: None, + enabled: true, + workspace_id: "workspace-1".to_string(), + execution_mode: AutomationExecutionMode::Intelligent, + schedule: TaskSchedule::Every { every_secs: 3600 }, + payload: json!({}), + delivery: DeliveryConfig::default(), + timeout_secs: None, + max_retries: 1, + next_run_at: None, + last_status: Some("success".to_string()), + last_error: None, + last_run_at: Some("2026-04-15T00:00:00.000Z".to_string()), + last_finished_at: Some("2026-04-15T00:03:00.000Z".to_string()), + running_started_at: None, + consecutive_failures: 0, + last_retry_count: 0, + auto_disabled_until: None, + last_delivery, + created_at: "2026-04-15T00:00:00.000Z".to_string(), + updated_at: "2026-04-15T00:03:00.000Z".to_string(), + } + } + + fn create_runtime_evidence( + artifact_paths: &[&str], + verification_failure_outcomes: &[&str], + ) -> RuntimeEvidenceSceneAppSnapshot { + RuntimeEvidenceSceneAppSnapshot { + recent_artifact_paths: artifact_paths.iter().map(|path| path.to_string()).collect(), + workspace_root: Some("/tmp/workspace".to_string()), + known_gaps: Vec::new(), + verification_failure_outcomes: verification_failure_outcomes + .iter() + .map(|item| item.to_string()) + .collect(), + request_telemetry_available: false, + request_telemetry_matched_count: 0, + artifact_validator_applicable: false, + artifact_validator_issue_count: 0, + artifact_validator_recovered_count: 0, + } + } + + #[test] + fn build_sceneapp_run_summary_from_agent_run_should_extract_delivery_parts() { + let descriptor = + get_sceneapp_descriptor("story-video-suite").expect("descriptor should exist"); + let run = create_agent_run(json!({ + "sceneapp": { "id": "story-video-suite" }, + "artifact_paths": [ + "artifacts/brief.md", + "artifacts/storyboard.json", + "artifacts/video_draft.mp4" + ], + })); + + let summary = build_sceneapp_run_summary_from_agent_run( + &run, + Some(&descriptor), + "story-video-suite".to_string(), + ); + + assert_eq!(summary.artifact_count, 3); + assert_eq!( + summary.delivery_artifact_refs, + vec![ + SceneAppDeliveryArtifactRef { + relative_path: "artifacts/brief.md".to_string(), + absolute_path: None, + part_key: Some("brief".to_string()), + project_id: None, + workspace_id: None, + source: "metadata_fallback".to_string(), + }, + SceneAppDeliveryArtifactRef { + relative_path: "artifacts/storyboard.json".to_string(), + absolute_path: None, + part_key: Some("storyboard".to_string()), + project_id: None, + workspace_id: None, + source: "metadata_fallback".to_string(), + }, + SceneAppDeliveryArtifactRef { + relative_path: "artifacts/video_draft.mp4".to_string(), + absolute_path: None, + part_key: Some("video_draft".to_string()), + project_id: None, + workspace_id: None, + source: "metadata_fallback".to_string(), + }, + ] + ); + assert_eq!(summary.source_ref, None); + assert_eq!(summary.session_id.as_deref(), Some("session-1")); + assert_eq!( + summary.governance_artifact_refs, + vec![ + SceneAppGovernanceArtifactRef { + kind: SceneAppGovernanceArtifactKind::EvidenceSummary, + label: "证据摘要".to_string(), + relative_path: ".lime/harness/sessions/session-1/evidence/summary.md" + .to_string(), + absolute_path: None, + project_id: None, + workspace_id: None, + source: "session_governance".to_string(), + }, + SceneAppGovernanceArtifactRef { + kind: SceneAppGovernanceArtifactKind::ReviewDecisionMarkdown, + label: "人工复核记录".to_string(), + relative_path: ".lime/harness/sessions/session-1/review/review-decision.md" + .to_string(), + absolute_path: None, + project_id: None, + workspace_id: None, + source: "session_governance".to_string(), + }, + SceneAppGovernanceArtifactRef { + kind: SceneAppGovernanceArtifactKind::ReviewDecisionJson, + label: "复核 JSON".to_string(), + relative_path: ".lime/harness/sessions/session-1/review/review-decision.json" + .to_string(), + absolute_path: None, + project_id: None, + workspace_id: None, + source: "session_governance".to_string(), + }, + ] + ); + assert_eq!(summary.browser_runtime_ref, None); + assert_eq!(summary.cloud_scene_runtime_ref, None); + assert_eq!(summary.native_skill_runtime_ref, None); + assert_eq!( + summary.delivery_completed_parts, + vec![ + "brief".to_string(), + "storyboard".to_string(), + "video_draft".to_string(), + ] + ); + assert_eq!( + summary.delivery_missing_parts, + vec![ + "script".to_string(), + "music_refs".to_string(), + "review_note".to_string(), + ] + ); + assert_eq!(summary.delivery_completion_rate, Some(50.0)); + assert!(summary.delivery_part_coverage_known); + assert_eq!(summary.failure_signal.as_deref(), Some("review_blocked")); + } + + #[test] + fn build_sceneapp_run_summary_from_agent_run_should_extract_browser_runtime_ref() { + let run = create_agent_run(json!({ + "sceneapp": { "id": "x-article-export" }, + "browser_runtime_ref": { + "session_id": "browser-session-1", + "target_id": "target-1" + }, + "request_metadata": { + "browser_assist": { + "profile_key": "general_browser_assist" + } + } + })); + + let summary = + build_sceneapp_run_summary_from_agent_run(&run, None, "x-article-export".to_string()); + + assert_eq!( + summary.browser_runtime_ref, + Some(SceneAppBrowserRuntimeRef { + profile_key: Some("general_browser_assist".to_string()), + session_id: Some("browser-session-1".to_string()), + target_id: Some("target-1".to_string()), + }) + ); + assert_eq!(summary.cloud_scene_runtime_ref, None); + assert_eq!(summary.native_skill_runtime_ref, None); + } + + #[test] + fn build_sceneapp_run_summary_from_agent_run_should_extract_cloud_scene_runtime_ref() { + let run = create_agent_run(json!({ + "sceneapp": { "id": "story-video-suite" }, + "request_metadata": { + "harness": { + "service_scene_launch": { + "kind": "cloud_scene", + "service_scene_run": { + "scene_key": "story-video-suite", + "skill_id": "sceneapp-service-story-video", + "project_id": "project-video", + "content_id": "content-video-1", + "workspace_id": "workspace-video", + "entry_source": "sceneapp_plan", + "user_input": "生成一版产品短视频", + "slots": { + "duration": "30 秒" + } + } + } + } + } + })); + + let summary = + build_sceneapp_run_summary_from_agent_run(&run, None, "story-video-suite".to_string()); + + assert_eq!( + summary.cloud_scene_runtime_ref, + Some(SceneAppCloudSceneRuntimeRef { + scene_key: Some("story-video-suite".to_string()), + skill_id: Some("sceneapp-service-story-video".to_string()), + project_id: Some("project-video".to_string()), + content_id: Some("content-video-1".to_string()), + workspace_id: Some("workspace-video".to_string()), + entry_source: Some("sceneapp_plan".to_string()), + user_input: Some("生成一版产品短视频".to_string()), + slots: BTreeMap::from([("duration".to_string(), "30 秒".to_string())]), + }) + ); + assert_eq!(summary.native_skill_runtime_ref, None); + } + + #[test] + fn build_sceneapp_run_summary_from_agent_run_should_extract_native_skill_runtime_ref() { + let run = create_agent_run(json!({ + "sceneapp": { "id": "project-analysis-copilot" }, + "request_metadata": { + "harness": { + "sceneapp_native_skill_launch": { + "skill_id": "sceneapp-service-analysis", + "skill_key": "project-analysis", + "project_id": "project-analysis", + "workspace_id": "workspace-analysis", + "user_input": "请分析当前项目结构", + "slots": { + "focus": "架构", + "depth": "高" + } + } + } + } + })); + + let summary = build_sceneapp_run_summary_from_agent_run( + &run, + None, + "project-analysis-copilot".to_string(), + ); + + assert_eq!( + summary.native_skill_runtime_ref, + Some(SceneAppNativeSkillRuntimeRef { + skill_id: Some("sceneapp-service-analysis".to_string()), + skill_key: Some("project-analysis".to_string()), + project_id: Some("project-analysis".to_string()), + workspace_id: Some("workspace-analysis".to_string()), + user_input: Some("请分析当前项目结构".to_string()), + slots: BTreeMap::from([ + ("depth".to_string(), "高".to_string()), + ("focus".to_string(), "架构".to_string()), + ]), + }) + ); + } + + #[test] + fn build_sceneapp_run_summary_should_prefer_runtime_evidence_artifacts() { + let descriptor = + get_sceneapp_descriptor("story-video-suite").expect("descriptor should exist"); + let run = create_agent_run(json!({ + "sceneapp": { "id": "story-video-suite" }, + "artifact_paths": ["artifacts/brief.md"], + })); + let runtime_evidence = create_runtime_evidence( + &[ + "artifacts/brief.md", + "artifacts/storyboard.json", + "artifacts/script.md", + "artifacts/music_refs.md", + "artifacts/video_draft.mp4", + "artifacts/review_note.md", + ], + &[], + ); + + let summary = build_sceneapp_run_summary_from_agent_run_inner( + &run, + Some(&descriptor), + "story-video-suite".to_string(), + Some(&runtime_evidence), + ); + + assert_eq!(summary.artifact_count, 6); + assert_eq!( + summary.delivery_completed_parts, + vec![ + "brief".to_string(), + "storyboard".to_string(), + "script".to_string(), + "music_refs".to_string(), + "video_draft".to_string(), + "review_note".to_string(), + ] + ); + assert!(summary.delivery_missing_parts.is_empty()); + assert_eq!(summary.delivery_completion_rate, Some(100.0)); + assert!(summary.delivery_part_coverage_known); + assert_eq!(summary.failure_signal, None); + assert!(summary.runtime_evidence_used); + assert_eq!( + summary.delivery_artifact_refs, + vec![ + SceneAppDeliveryArtifactRef { + relative_path: "artifacts/brief.md".to_string(), + absolute_path: Some("/tmp/workspace/artifacts/brief.md".to_string()), + part_key: Some("brief".to_string()), + project_id: None, + workspace_id: None, + source: "runtime_evidence".to_string(), + }, + SceneAppDeliveryArtifactRef { + relative_path: "artifacts/storyboard.json".to_string(), + absolute_path: Some("/tmp/workspace/artifacts/storyboard.json".to_string()), + part_key: Some("storyboard".to_string()), + project_id: None, + workspace_id: None, + source: "runtime_evidence".to_string(), + }, + SceneAppDeliveryArtifactRef { + relative_path: "artifacts/script.md".to_string(), + absolute_path: Some("/tmp/workspace/artifacts/script.md".to_string()), + part_key: Some("script".to_string()), + project_id: None, + workspace_id: None, + source: "runtime_evidence".to_string(), + }, + SceneAppDeliveryArtifactRef { + relative_path: "artifacts/music_refs.md".to_string(), + absolute_path: Some("/tmp/workspace/artifacts/music_refs.md".to_string()), + part_key: Some("music_refs".to_string()), + project_id: None, + workspace_id: None, + source: "runtime_evidence".to_string(), + }, + SceneAppDeliveryArtifactRef { + relative_path: "artifacts/video_draft.mp4".to_string(), + absolute_path: Some("/tmp/workspace/artifacts/video_draft.mp4".to_string()), + part_key: Some("video_draft".to_string()), + project_id: None, + workspace_id: None, + source: "runtime_evidence".to_string(), + }, + SceneAppDeliveryArtifactRef { + relative_path: "artifacts/review_note.md".to_string(), + absolute_path: Some("/tmp/workspace/artifacts/review_note.md".to_string()), + part_key: Some("review_note".to_string()), + project_id: None, + workspace_id: None, + source: "runtime_evidence".to_string(), + }, + ] + ); + assert_eq!( + summary.governance_artifact_refs, + vec![ + SceneAppGovernanceArtifactRef { + kind: SceneAppGovernanceArtifactKind::EvidenceSummary, + label: "证据摘要".to_string(), + relative_path: ".lime/harness/sessions/session-1/evidence/summary.md" + .to_string(), + absolute_path: Some( + "/tmp/workspace/.lime/harness/sessions/session-1/evidence/summary.md" + .to_string() + ), + project_id: None, + workspace_id: None, + source: "session_governance".to_string(), + }, + SceneAppGovernanceArtifactRef { + kind: SceneAppGovernanceArtifactKind::ReviewDecisionMarkdown, + label: "人工复核记录".to_string(), + relative_path: + ".lime/harness/sessions/session-1/review/review-decision.md" + .to_string(), + absolute_path: Some( + "/tmp/workspace/.lime/harness/sessions/session-1/review/review-decision.md" + .to_string() + ), + project_id: None, + workspace_id: None, + source: "session_governance".to_string(), + }, + SceneAppGovernanceArtifactRef { + kind: SceneAppGovernanceArtifactKind::ReviewDecisionJson, + label: "复核 JSON".to_string(), + relative_path: + ".lime/harness/sessions/session-1/review/review-decision.json" + .to_string(), + absolute_path: Some( + "/tmp/workspace/.lime/harness/sessions/session-1/review/review-decision.json" + .to_string() + ), + project_id: None, + workspace_id: None, + source: "session_governance".to_string(), + }, + ] + ); + assert_eq!(summary.request_telemetry_available, Some(false)); + assert_eq!(summary.request_telemetry_matched_count, Some(0)); + } + + #[test] + fn build_sceneapp_run_summary_should_mark_review_blocked_on_runtime_verification_failure() { + let descriptor = + get_sceneapp_descriptor("story-video-suite").expect("descriptor should exist"); + let run = create_agent_run(json!({ + "sceneapp": { "id": "story-video-suite" }, + })); + let runtime_evidence = create_runtime_evidence( + &[ + "artifacts/brief.md", + "artifacts/storyboard.json", + "artifacts/script.md", + "artifacts/music_refs.md", + "artifacts/video_draft.mp4", + "artifacts/review_note.md", + ], + &["Artifact 校验存在 1 条未恢复 issues。"], + ); + + let summary = build_sceneapp_run_summary_from_agent_run_inner( + &run, + Some(&descriptor), + "story-video-suite".to_string(), + Some(&runtime_evidence), + ); + + assert_eq!(summary.delivery_completion_rate, Some(100.0)); + assert_eq!(summary.failure_signal.as_deref(), Some("review_blocked")); + assert_eq!( + summary.verification_failure_outcomes, + vec!["Artifact 校验存在 1 条未恢复 issues。".to_string()] + ); + } + + #[test] + fn build_sceneapp_run_summary_from_automation_job_should_reflect_delivery_artifact() { + let descriptor = + get_sceneapp_descriptor("daily-trend-briefing").expect("descriptor should exist"); + let summary = build_sceneapp_run_summary_from_automation_job( + &create_automation_job(Some(AutomationJobLastDelivery { + success: true, + message: "ok".to_string(), + channel: None, + target: None, + output_kind: "document".to_string(), + output_schema: "markdown".to_string(), + output_format: "md".to_string(), + output_preview: "preview".to_string(), + delivery_attempt_id: None, + run_id: None, + execution_retry_count: 0, + delivery_attempts: 1, + attempted_at: "2026-04-15T00:03:00.000Z".to_string(), + })), + Some(&descriptor), + "daily-trend-briefing".to_string(), + ); + + assert_eq!(summary.artifact_count, 1); + assert_eq!(summary.source_ref.as_deref(), Some("job-1")); + assert_eq!(summary.session_id, None); + assert_eq!(summary.browser_runtime_ref, None); + assert_eq!(summary.cloud_scene_runtime_ref, None); + assert_eq!(summary.native_skill_runtime_ref, None); + assert_eq!( + summary.delivery_required_parts, + vec!["brief".to_string(), "review_note".to_string()] + ); + assert!(!summary.delivery_part_coverage_known); + } +} diff --git a/src-tauri/src/sceneapp/application.rs b/src-tauri/src/sceneapp/application.rs new file mode 100644 index 000000000..7d4265753 --- /dev/null +++ b/src-tauri/src/sceneapp/application.rs @@ -0,0 +1,318 @@ +use super::adapters::{ + build_sceneapp_automation_draft, build_sceneapp_automation_result, + build_sceneapp_run_summary_from_agent_run_with_db, + build_sceneapp_run_summary_from_automation_job, extract_sceneapp_id_from_automation_job, + extract_sceneapp_id_from_run_metadata, prepare_sceneapp_run_governance_artifact, +}; +use super::catalog::{get_sceneapp_descriptor, seeded_sceneapp_catalog}; +use super::dto::*; +use super::governance::build_sceneapp_scorecard_from_runs; +use super::runtime::build_launch_plan; +use crate::database::DbConnection; +use crate::services::automation_service::AutomationService; +use crate::services::execution_tracker_service::ExecutionTracker; + +pub struct SceneAppService; + +const SCENEAPP_TRACKER_RUN_LIMIT: usize = 200; + +fn sort_and_dedupe_runs(runs: &mut Vec) { + runs.sort_by(|left, right| { + right + .started_at + .cmp(&left.started_at) + .then_with(|| right.run_id.cmp(&left.run_id)) + }); + runs.dedup_by(|left, right| left.run_id == right.run_id); +} + +impl SceneAppService { + pub fn list_catalog() -> SceneAppCatalog { + seeded_sceneapp_catalog() + } + + pub fn get_descriptor(id: &str) -> Option { + get_sceneapp_descriptor(id) + } + + pub fn plan_launch(intent: SceneAppLaunchIntent) -> Result { + let descriptor = get_sceneapp_descriptor(intent.sceneapp_id.as_str()) + .ok_or_else(|| format!("未找到 SceneApp: {}", intent.sceneapp_id))?; + Ok(build_launch_plan(descriptor, intent)) + } + + fn seeded_runs() -> Vec { + vec![ + SceneAppRunSummary { + run_id: "sceneapp-run-story-video-seed".to_string(), + sceneapp_id: "story-video-suite".to_string(), + status: SceneAppRunStatus::Success, + source: "catalog_seed".to_string(), + source_ref: None, + session_id: None, + browser_runtime_ref: None, + cloud_scene_runtime_ref: None, + native_skill_runtime_ref: None, + started_at: "2026-04-15T00:00:00.000Z".to_string(), + finished_at: Some("2026-04-15T00:08:00.000Z".to_string()), + artifact_count: 3, + delivery_artifact_refs: Vec::new(), + governance_artifact_refs: Vec::new(), + delivery_required_parts: vec![ + "brief".to_string(), + "storyboard".to_string(), + "script".to_string(), + "music_refs".to_string(), + "video_draft".to_string(), + "review_note".to_string(), + ], + delivery_completed_parts: vec![ + "brief".to_string(), + "storyboard".to_string(), + "script".to_string(), + ], + delivery_missing_parts: vec![ + "music_refs".to_string(), + "video_draft".to_string(), + "review_note".to_string(), + ], + delivery_completion_rate: Some(50.0), + delivery_part_coverage_known: true, + failure_signal: Some("review_blocked".to_string()), + runtime_evidence_used: false, + evidence_known_gaps: Vec::new(), + verification_failure_outcomes: Vec::new(), + request_telemetry_available: None, + request_telemetry_matched_count: None, + artifact_validator_applicable: None, + artifact_validator_issue_count: None, + artifact_validator_recovered_count: None, + }, + SceneAppRunSummary { + run_id: "sceneapp-run-article-export-seed".to_string(), + sceneapp_id: "x-article-export".to_string(), + status: SceneAppRunStatus::Queued, + source: "catalog_seed".to_string(), + source_ref: None, + session_id: None, + browser_runtime_ref: None, + cloud_scene_runtime_ref: None, + native_skill_runtime_ref: None, + started_at: "2026-04-15T00:12:00.000Z".to_string(), + finished_at: None, + artifact_count: 0, + delivery_artifact_refs: Vec::new(), + governance_artifact_refs: Vec::new(), + delivery_required_parts: vec!["index.md".to_string(), "meta.json".to_string()], + delivery_completed_parts: Vec::new(), + delivery_missing_parts: Vec::new(), + delivery_completion_rate: None, + delivery_part_coverage_known: false, + failure_signal: None, + runtime_evidence_used: false, + evidence_known_gaps: Vec::new(), + verification_failure_outcomes: Vec::new(), + request_telemetry_available: None, + request_telemetry_matched_count: None, + artifact_validator_applicable: None, + artifact_validator_issue_count: None, + artifact_validator_recovered_count: None, + }, + ] + } + + pub fn list_runs(sceneapp_id: Option<&str>) -> Vec { + let candidate_runs = Self::seeded_runs(); + let mut runs = match sceneapp_id.map(str::trim).filter(|value| !value.is_empty()) { + Some(sceneapp_id) => candidate_runs + .into_iter() + .filter(|run| run.sceneapp_id == sceneapp_id) + .collect(), + None => candidate_runs, + }; + sort_and_dedupe_runs(&mut runs); + runs + } + + pub fn get_run_summary(run_id: &str) -> Option { + Self::seeded_runs() + .into_iter() + .find(|run| run.run_id == run_id.trim()) + } + + pub async fn create_automation_job( + automation_service: &AutomationService, + intent: SceneAppAutomationIntent, + ) -> Result { + let descriptor = get_sceneapp_descriptor(intent.launch_intent.sceneapp_id.as_str()) + .ok_or_else(|| format!("未找到 SceneApp: {}", intent.launch_intent.sceneapp_id))?; + let run_now = intent.run_now.unwrap_or(false); + let draft = build_sceneapp_automation_draft(&descriptor, &intent)?; + let job = automation_service.create_job(draft)?; + let run_now_result = if run_now { + Some(automation_service.run_job_now(job.id.as_str()).await?) + } else { + None + }; + + Ok(build_sceneapp_automation_result( + &descriptor, + &job, + run_now_result, + )) + } + + pub fn list_runs_from_automation( + db: &DbConnection, + automation_service: &AutomationService, + sceneapp_id: Option<&str>, + ) -> Result, String> { + let sceneapp_id_filter = sceneapp_id + .map(str::trim) + .filter(|value| !value.is_empty()) + .map(str::to_string); + let jobs = automation_service.list_jobs()?; + let mut runs = Vec::new(); + + for job in jobs { + let Some(job_sceneapp_id) = extract_sceneapp_id_from_automation_job(&job) else { + continue; + }; + if sceneapp_id_filter + .as_deref() + .is_some_and(|value| value != job_sceneapp_id) + { + continue; + } + + let job_runs = automation_service.get_job_runs(job.id.as_str(), 20)?; + if job_runs.is_empty() { + let descriptor = get_sceneapp_descriptor(job_sceneapp_id.as_str()); + runs.push(build_sceneapp_run_summary_from_automation_job( + &job, + descriptor.as_ref(), + job_sceneapp_id.clone(), + )); + continue; + } + + runs.extend(job_runs.into_iter().map(|run| { + let descriptor = get_sceneapp_descriptor(job_sceneapp_id.as_str()); + build_sceneapp_run_summary_from_agent_run_with_db( + db, + &run, + descriptor.as_ref(), + job_sceneapp_id.clone(), + ) + })); + } + + sort_and_dedupe_runs(&mut runs); + Ok(runs) + } + + pub fn list_runs_from_tracker( + tracker: &ExecutionTracker, + sceneapp_id: Option<&str>, + ) -> Result, String> { + let sceneapp_id_filter = sceneapp_id + .map(str::trim) + .filter(|value| !value.is_empty()) + .map(str::to_string); + let mut runs = tracker + .list_runs(SCENEAPP_TRACKER_RUN_LIMIT, 0)? + .into_iter() + .filter_map(|run| { + let run_sceneapp_id = extract_sceneapp_id_from_run_metadata(&run)?; + if sceneapp_id_filter + .as_deref() + .is_some_and(|value| value != run_sceneapp_id) + { + return None; + } + let descriptor = get_sceneapp_descriptor(run_sceneapp_id.as_str()); + Some(build_sceneapp_run_summary_from_agent_run_with_db( + tracker.db(), + &run, + descriptor.as_ref(), + run_sceneapp_id, + )) + }) + .collect::>(); + sort_and_dedupe_runs(&mut runs); + Ok(runs) + } + + pub fn collect_runs( + tracker: &ExecutionTracker, + automation_service: &AutomationService, + sceneapp_id: Option<&str>, + ) -> Result, String> { + let mut live_runs = Self::list_runs_from_tracker(tracker, sceneapp_id)?; + live_runs.extend(Self::list_runs_from_automation( + tracker.db(), + automation_service, + sceneapp_id, + )?); + sort_and_dedupe_runs(&mut live_runs); + + if !live_runs.is_empty() { + return Ok(live_runs); + } + + Ok(Self::list_runs(sceneapp_id)) + } + + pub fn get_run_summary_from_tracker( + tracker: &ExecutionTracker, + run_id: &str, + ) -> Result, String> { + let Some(run) = tracker.get_run(run_id)? else { + return Ok(None); + }; + let Some(sceneapp_id) = extract_sceneapp_id_from_run_metadata(&run) else { + return Ok(None); + }; + let descriptor = get_sceneapp_descriptor(sceneapp_id.as_str()); + Ok(Some(build_sceneapp_run_summary_from_agent_run_with_db( + tracker.db(), + &run, + descriptor.as_ref(), + sceneapp_id, + ))) + } + + pub fn prepare_run_governance_artifact( + tracker: &ExecutionTracker, + run_id: &str, + kind: &SceneAppGovernanceArtifactKind, + ) -> Result, String> { + let Some(run) = tracker.get_run(run_id)? else { + return Ok(None); + }; + let Some(sceneapp_id) = extract_sceneapp_id_from_run_metadata(&run) else { + return Ok(None); + }; + prepare_sceneapp_run_governance_artifact(tracker.db(), &run, kind)?; + let descriptor = get_sceneapp_descriptor(sceneapp_id.as_str()); + + Ok(Some(build_sceneapp_run_summary_from_agent_run_with_db( + tracker.db(), + &run, + descriptor.as_ref(), + sceneapp_id, + ))) + } + + pub fn get_scorecard( + db: &DbConnection, + automation_service: &AutomationService, + sceneapp_id: &str, + ) -> Result { + let descriptor = get_sceneapp_descriptor(sceneapp_id) + .ok_or_else(|| format!("未找到 SceneApp scorecard: {sceneapp_id}"))?; + let tracker = ExecutionTracker::new(db.clone()); + let runs = Self::collect_runs(&tracker, automation_service, Some(sceneapp_id))?; + Ok(build_sceneapp_scorecard_from_runs(&descriptor, &runs)) + } +} diff --git a/src-tauri/src/sceneapp/catalog.rs b/src-tauri/src/sceneapp/catalog.rs new file mode 100644 index 000000000..bcbef6b9a --- /dev/null +++ b/src-tauri/src/sceneapp/catalog.rs @@ -0,0 +1,471 @@ +use super::dto::*; + +const SEEDED_SCENEAPP_CATALOG_VERSION: &str = "2026-04-15"; +const SEEDED_SCENEAPP_GENERATED_AT: &str = "2026-04-15T00:00:00.000Z"; +const SEEDED_SCENEAPP_PACKAGE_ID: &str = "lime-core-sceneapps"; + +fn service_skill_binding( + binding_family: SceneAppBindingFamily, + service_skill_id: &str, + skill_key: &str, + aliases: &[&str], +) -> SceneAppEntryBinding { + SceneAppEntryBinding { + kind: SceneAppEntryBindingKind::ServiceSkill, + binding_family, + service_skill_id: Some(service_skill_id.to_string()), + skill_key: Some(skill_key.to_string()), + scene_key: None, + command_prefix: None, + aliases: aliases.iter().map(|alias| alias.to_string()).collect(), + } +} + +fn scene_binding( + binding_family: SceneAppBindingFamily, + scene_key: &str, + command_prefix: &str, + aliases: &[&str], +) -> SceneAppEntryBinding { + SceneAppEntryBinding { + kind: SceneAppEntryBindingKind::Scene, + binding_family, + service_skill_id: None, + skill_key: None, + scene_key: Some(scene_key.to_string()), + command_prefix: Some(command_prefix.to_string()), + aliases: aliases.iter().map(|alias| alias.to_string()).collect(), + } +} + +fn requirement(kind: SceneAppLaunchRequirementKind, message: &str) -> SceneAppLaunchRequirement { + SceneAppLaunchRequirement { + kind, + message: message.to_string(), + } +} + +fn delivery_profile( + artifact_profile_ref: &str, + viewer_kind: &str, + required_parts: &[&str], + primary_part: &str, +) -> SceneAppDeliveryProfile { + SceneAppDeliveryProfile { + artifact_profile_ref: Some(artifact_profile_ref.to_string()), + viewer_kind: Some(viewer_kind.to_string()), + required_parts: required_parts.iter().map(|part| part.to_string()).collect(), + primary_part: Some(primary_part.to_string()), + } +} + +fn composition_step( + id: &str, + order: usize, + binding_profile_ref: &str, + binding_family: SceneAppBindingFamily, +) -> SceneAppCompositionStepDescriptor { + SceneAppCompositionStepDescriptor { + id: id.to_string(), + order, + binding_profile_ref: Some(binding_profile_ref.to_string()), + binding_family: Some(binding_family), + } +} + +fn composition_profile( + blueprint_ref: &str, + steps: Vec, +) -> SceneAppCompositionProfile { + SceneAppCompositionProfile { + blueprint_ref: Some(blueprint_ref.to_string()), + step_count: steps.len(), + steps, + } +} + +fn scorecard_profile( + profile_ref: &str, + metric_keys: &[&str], + failure_signals: &[&str], +) -> SceneAppScorecardProfile { + SceneAppScorecardProfile { + profile_ref: Some(profile_ref.to_string()), + metric_keys: metric_keys + .iter() + .map(|metric| metric.to_string()) + .collect(), + failure_signals: failure_signals + .iter() + .map(|signal| signal.to_string()) + .collect(), + } +} + +fn seeded_story_video_suite() -> SceneAppDescriptor { + SceneAppDescriptor { + id: "story-video-suite".to_string(), + title: "短视频编排".to_string(), + summary: "把文本、线框图、配乐、剧本和短视频草稿收口成一条多模态结果链。".to_string(), + category: "Scene Apps".to_string(), + sceneapp_type: SceneAppType::Hybrid, + pattern_primary: SceneAppPattern::Pipeline, + pattern_stack: vec![ + SceneAppPattern::Pipeline, + SceneAppPattern::Inversion, + SceneAppPattern::Generator, + SceneAppPattern::Reviewer, + ], + capability_refs: vec![ + "cloud_scene".to_string(), + "native_skill".to_string(), + "workspace_storage".to_string(), + "artifact_viewer".to_string(), + ], + infra_profile: vec![ + "composition_blueprint".to_string(), + "project_pack".to_string(), + "workspace_storage".to_string(), + "cloud_runtime".to_string(), + "timeline".to_string(), + ], + delivery_contract: SceneAppDeliveryContract::ProjectPack, + artifact_kind: Some("artifact_bundle".to_string()), + output_hint: "短视频项目包".to_string(), + entry_bindings: vec![ + service_skill_binding( + SceneAppBindingFamily::CloudScene, + "sceneapp-service-story-video", + "story-video-suite", + &["story-video", "mv-pipeline"], + ), + scene_binding( + SceneAppBindingFamily::CloudScene, + "story-video-suite", + "/story-video-suite", + &["story-video-scene"], + ), + ], + launch_requirements: vec![ + requirement( + SceneAppLaunchRequirementKind::UserInput, + "需要主题、风格或脚本线索作为场景输入。", + ), + requirement( + SceneAppLaunchRequirementKind::Project, + "需要项目目录承接线框图、脚本和媒体结果。", + ), + requirement( + SceneAppLaunchRequirementKind::CloudSession, + "需要可用的云端运行时来完成多模态媒体处理。", + ), + ], + linked_service_skill_id: Some("sceneapp-service-story-video".to_string()), + linked_scene_key: Some("story-video-suite".to_string()), + delivery_profile: Some(delivery_profile( + "story-video-artifacts", + "artifact_bundle", + &[ + "brief", + "storyboard", + "script", + "music_refs", + "video_draft", + "review_note", + ], + "brief", + )), + composition_profile: Some(composition_profile( + "story-video-blueprint", + vec![ + composition_step( + "brief", + 1, + "story-video-native-binding", + SceneAppBindingFamily::NativeSkill, + ), + composition_step( + "storyboard", + 2, + "story-video-native-binding", + SceneAppBindingFamily::NativeSkill, + ), + composition_step( + "script", + 3, + "story-video-native-binding", + SceneAppBindingFamily::NativeSkill, + ), + composition_step( + "music_refs", + 4, + "story-video-cloud-binding", + SceneAppBindingFamily::CloudScene, + ), + composition_step( + "video_draft", + 5, + "story-video-cloud-binding", + SceneAppBindingFamily::CloudScene, + ), + composition_step( + "review_note", + 6, + "story-video-native-binding", + SceneAppBindingFamily::NativeSkill, + ), + ], + )), + scorecard_profile: Some(scorecard_profile( + "story-video-scorecard", + &[ + "complete_pack_rate", + "review_pass_rate", + "publish_conversion_rate", + ], + &["pack_incomplete", "review_blocked", "publish_stalled"], + )), + aliases: vec![ + "story-video".to_string(), + "mv-pipeline".to_string(), + "short-video-suite".to_string(), + ], + source_package_id: SEEDED_SCENEAPP_PACKAGE_ID.to_string(), + source_package_version: SEEDED_SCENEAPP_CATALOG_VERSION.to_string(), + } +} + +fn seeded_article_export() -> SceneAppDescriptor { + SceneAppDescriptor { + id: "x-article-export".to_string(), + title: "网页导出".to_string(), + summary: "在真实浏览器上下文中抓取网页正文、图片与元信息,并沉淀为项目内 Markdown 资料包。" + .to_string(), + category: "Scene Apps".to_string(), + sceneapp_type: SceneAppType::BrowserGrounded, + pattern_primary: SceneAppPattern::Pipeline, + pattern_stack: vec![ + SceneAppPattern::Pipeline, + SceneAppPattern::ToolWrapper, + SceneAppPattern::Generator, + SceneAppPattern::Inversion, + ], + capability_refs: vec![ + "browser_assist".to_string(), + "workspace_storage".to_string(), + "artifact_viewer".to_string(), + ], + infra_profile: vec![ + "browser_connector".to_string(), + "site_adapter".to_string(), + "workspace_storage".to_string(), + "artifact_bundle".to_string(), + ], + delivery_contract: SceneAppDeliveryContract::ProjectPack, + artifact_kind: Some("document".to_string()), + output_hint: "网页资料包".to_string(), + entry_bindings: vec![ + service_skill_binding( + SceneAppBindingFamily::BrowserAssist, + "sceneapp-service-article-export", + "x-article-export", + &["article-export"], + ), + scene_binding( + SceneAppBindingFamily::BrowserAssist, + "x-article-export", + "/x-article-export", + &["web-article-export"], + ), + ], + launch_requirements: vec![ + requirement( + SceneAppLaunchRequirementKind::BrowserSession, + "需要真实网页上下文或浏览器附着会话。", + ), + requirement( + SceneAppLaunchRequirementKind::Project, + "需要项目目录来保存 Markdown 与图片资源。", + ), + ], + linked_service_skill_id: Some("sceneapp-service-article-export".to_string()), + linked_scene_key: Some("x-article-export".to_string()), + delivery_profile: Some(delivery_profile( + "article-export-artifacts", + "document", + &["index.md", "meta.json"], + "index.md", + )), + composition_profile: None, + scorecard_profile: Some(scorecard_profile( + "article-export-scorecard", + &["success_rate", "reuse_rate"], + &["pack_incomplete"], + )), + aliases: vec![ + "article-export".to_string(), + "web-article-export".to_string(), + ], + source_package_id: SEEDED_SCENEAPP_PACKAGE_ID.to_string(), + source_package_version: SEEDED_SCENEAPP_CATALOG_VERSION.to_string(), + } +} + +fn seeded_voice_runtime() -> SceneAppDescriptor { + SceneAppDescriptor { + id: "voice-runtime".to_string(), + title: "配音生成".to_string(), + summary: "把文稿或视频内容交给托管能力完成配音,并回流成可试听的媒体产物。".to_string(), + category: "Scene Apps".to_string(), + sceneapp_type: SceneAppType::CloudManaged, + pattern_primary: SceneAppPattern::Pipeline, + pattern_stack: vec![SceneAppPattern::Pipeline, SceneAppPattern::Generator], + capability_refs: vec![ + "cloud_scene".to_string(), + "workspace_storage".to_string(), + "artifact_viewer".to_string(), + ], + infra_profile: vec![ + "cloud_runtime".to_string(), + "media_artifact".to_string(), + "json_snapshot".to_string(), + ], + delivery_contract: SceneAppDeliveryContract::ArtifactBundle, + artifact_kind: Some("report".to_string()), + output_hint: "媒体结果".to_string(), + entry_bindings: vec![service_skill_binding( + SceneAppBindingFamily::CloudScene, + "sceneapp-service-voice-runtime", + "voice-runtime", + &["voiceover", "tts-scene"], + )], + launch_requirements: vec![ + requirement( + SceneAppLaunchRequirementKind::UserInput, + "需要文稿正文或待配音素材说明。", + ), + requirement( + SceneAppLaunchRequirementKind::CloudSession, + "需要云端媒体运行时或 OEM 托管会话。", + ), + ], + linked_service_skill_id: Some("sceneapp-service-voice-runtime".to_string()), + linked_scene_key: Some("voice-runtime".to_string()), + delivery_profile: Some(delivery_profile( + "voice-runtime-artifacts", + "artifact_bundle", + &["audio.mp3", "review_note"], + "audio.mp3", + )), + composition_profile: None, + scorecard_profile: Some(scorecard_profile( + "voice-runtime-scorecard", + &["success_rate", "reuse_rate"], + &["pack_incomplete"], + )), + aliases: vec!["voiceover".to_string(), "tts-scene".to_string()], + source_package_id: SEEDED_SCENEAPP_PACKAGE_ID.to_string(), + source_package_version: SEEDED_SCENEAPP_CATALOG_VERSION.to_string(), + } +} + +fn seeded_daily_trend_briefing() -> SceneAppDescriptor { + SceneAppDescriptor { + id: "daily-trend-briefing".to_string(), + title: "每日趋势摘要".to_string(), + summary: "把研究主题转成可持续运行的本地 durable 场景,并定时回流结果和失败原因。" + .to_string(), + category: "Scene Apps".to_string(), + sceneapp_type: SceneAppType::LocalDurable, + pattern_primary: SceneAppPattern::Pipeline, + pattern_stack: vec![SceneAppPattern::Pipeline, SceneAppPattern::Reviewer], + capability_refs: vec![ + "automation_job".to_string(), + "workspace_storage".to_string(), + "timeline".to_string(), + ], + infra_profile: vec![ + "automation_schedule".to_string(), + "db_store".to_string(), + "json_snapshot".to_string(), + ], + delivery_contract: SceneAppDeliveryContract::TableReport, + artifact_kind: Some("table_report".to_string()), + output_hint: "趋势摘要".to_string(), + entry_bindings: vec![service_skill_binding( + SceneAppBindingFamily::AutomationJob, + "sceneapp-service-daily-trend", + "daily-trend-briefing", + &["trend-briefing", "growth-monitor"], + )], + launch_requirements: vec![ + requirement( + SceneAppLaunchRequirementKind::Project, + "需要工作区或项目目录保存运行历史与结果快照。", + ), + requirement( + SceneAppLaunchRequirementKind::Automation, + "需要可用的自动化调度能力。", + ), + ], + linked_service_skill_id: Some("sceneapp-service-daily-trend".to_string()), + linked_scene_key: Some("daily-trend-briefing".to_string()), + delivery_profile: Some(delivery_profile( + "daily-trend-artifacts", + "table_report", + &["brief", "review_note"], + "brief", + )), + composition_profile: None, + scorecard_profile: Some(scorecard_profile( + "daily-trend-scorecard", + &["success_rate", "reuse_rate"], + &["automation_timeout"], + )), + aliases: vec!["trend-briefing".to_string(), "growth-monitor".to_string()], + source_package_id: SEEDED_SCENEAPP_PACKAGE_ID.to_string(), + source_package_version: SEEDED_SCENEAPP_CATALOG_VERSION.to_string(), + } +} + +pub fn seeded_sceneapp_descriptors() -> Vec { + vec![ + seeded_story_video_suite(), + seeded_article_export(), + seeded_voice_runtime(), + seeded_daily_trend_briefing(), + ] +} + +pub fn seeded_sceneapp_catalog() -> SceneAppCatalog { + SceneAppCatalog { + version: SEEDED_SCENEAPP_CATALOG_VERSION.to_string(), + generated_at: SEEDED_SCENEAPP_GENERATED_AT.to_string(), + items: seeded_sceneapp_descriptors(), + } +} + +pub fn get_sceneapp_descriptor(id: &str) -> Option { + let normalized = id.trim(); + if normalized.is_empty() { + return None; + } + + seeded_sceneapp_descriptors() + .into_iter() + .find(|descriptor| { + descriptor.id == normalized + || descriptor + .aliases + .iter() + .any(|alias| alias.eq_ignore_ascii_case(normalized)) + || descriptor + .linked_scene_key + .as_deref() + .is_some_and(|scene_key| scene_key == normalized) + || descriptor + .linked_service_skill_id + .as_deref() + .is_some_and(|service_skill_id| service_skill_id == normalized) + }) +} diff --git a/src-tauri/src/sceneapp/dto.rs b/src-tauri/src/sceneapp/dto.rs new file mode 100644 index 000000000..130012a29 --- /dev/null +++ b/src-tauri/src/sceneapp/dto.rs @@ -0,0 +1,433 @@ +use lime_core::config::{AutomationExecutionMode, DeliveryConfig, TaskSchedule}; +use serde::{Deserialize, Serialize}; +use serde_json::Value; +use std::collections::BTreeMap; + +#[derive(Debug, Clone, Serialize, Deserialize, PartialEq, Eq)] +#[serde(rename_all = "snake_case")] +pub enum SceneAppType { + LocalInstant, + LocalDurable, + BrowserGrounded, + CloudManaged, + Hybrid, +} + +#[derive(Debug, Clone, Serialize, Deserialize, PartialEq, Eq)] +#[serde(rename_all = "snake_case")] +pub enum SceneAppPattern { + Pipeline, + Generator, + Reviewer, + Inversion, + ToolWrapper, +} + +#[derive(Debug, Clone, Serialize, Deserialize, PartialEq, Eq)] +#[serde(rename_all = "snake_case")] +pub enum SceneAppBindingFamily { + AgentTurn, + BrowserAssist, + AutomationJob, + CloudScene, + NativeSkill, +} + +#[derive(Debug, Clone, Serialize, Deserialize, PartialEq, Eq)] +#[serde(rename_all = "snake_case")] +pub enum SceneAppDeliveryContract { + ArtifactBundle, + ProjectPack, + TableReport, +} + +#[derive(Debug, Clone, Serialize, Deserialize, PartialEq, Eq)] +#[serde(rename_all = "snake_case")] +pub enum SceneAppEntryBindingKind { + ServiceSkill, + Scene, + Mention, + WorkspaceCard, +} + +#[derive(Debug, Clone, Serialize, Deserialize, PartialEq, Eq)] +#[serde(rename_all = "snake_case")] +pub enum SceneAppLaunchRequirementKind { + UserInput, + Project, + BrowserSession, + CloudSession, + Automation, +} + +#[derive(Debug, Clone, Serialize, Deserialize, PartialEq, Eq)] +#[serde(rename_all = "snake_case")] +pub enum SceneAppRecommendedAction { + Launch, + Keep, + Optimize, + Retire, +} + +#[derive(Debug, Clone, Serialize, Deserialize, PartialEq, Eq)] +#[serde(rename_all = "snake_case")] +pub enum SceneAppMetricStatus { + Good, + Watch, + Risk, +} + +#[derive(Debug, Clone, Serialize, Deserialize)] +#[serde(rename_all = "camelCase")] +pub struct SceneAppEntryBinding { + pub kind: SceneAppEntryBindingKind, + pub binding_family: SceneAppBindingFamily, + pub service_skill_id: Option, + pub skill_key: Option, + pub scene_key: Option, + pub command_prefix: Option, + pub aliases: Vec, +} + +#[derive(Debug, Clone, Serialize, Deserialize)] +#[serde(rename_all = "camelCase")] +pub struct SceneAppLaunchRequirement { + pub kind: SceneAppLaunchRequirementKind, + pub message: String, +} + +#[derive(Debug, Clone, Serialize, Deserialize)] +#[serde(rename_all = "camelCase")] +pub struct SceneAppDeliveryProfile { + pub artifact_profile_ref: Option, + pub viewer_kind: Option, + pub required_parts: Vec, + pub primary_part: Option, +} + +#[derive(Debug, Clone, Serialize, Deserialize)] +#[serde(rename_all = "camelCase")] +pub struct SceneAppCompositionStepDescriptor { + pub id: String, + pub order: usize, + pub binding_profile_ref: Option, + pub binding_family: Option, +} + +#[derive(Debug, Clone, Serialize, Deserialize)] +#[serde(rename_all = "camelCase")] +pub struct SceneAppCompositionProfile { + pub blueprint_ref: Option, + pub step_count: usize, + pub steps: Vec, +} + +#[derive(Debug, Clone, Serialize, Deserialize)] +#[serde(rename_all = "camelCase")] +pub struct SceneAppScorecardProfile { + pub profile_ref: Option, + pub metric_keys: Vec, + pub failure_signals: Vec, +} + +#[derive(Debug, Clone, Serialize, Deserialize)] +#[serde(rename_all = "camelCase")] +pub struct SceneAppDescriptor { + pub id: String, + pub title: String, + pub summary: String, + pub category: String, + pub sceneapp_type: SceneAppType, + pub pattern_primary: SceneAppPattern, + pub pattern_stack: Vec, + pub capability_refs: Vec, + pub infra_profile: Vec, + pub delivery_contract: SceneAppDeliveryContract, + pub artifact_kind: Option, + pub output_hint: String, + pub entry_bindings: Vec, + pub launch_requirements: Vec, + pub linked_service_skill_id: Option, + pub linked_scene_key: Option, + pub delivery_profile: Option, + pub composition_profile: Option, + pub scorecard_profile: Option, + pub aliases: Vec, + pub source_package_id: String, + pub source_package_version: String, +} + +#[derive(Debug, Clone, Serialize, Deserialize)] +#[serde(rename_all = "camelCase")] +pub struct SceneAppCatalog { + pub version: String, + pub generated_at: String, + pub items: Vec, +} + +#[derive(Debug, Clone, Serialize, Deserialize, Default)] +#[serde(rename_all = "camelCase")] +pub struct SceneAppRuntimeContext { + pub browser_session_attached: bool, + pub cloud_session_ready: bool, + pub automation_enabled: bool, +} + +#[derive(Debug, Clone, Serialize, Deserialize)] +#[serde(rename_all = "camelCase")] +pub struct SceneAppLaunchIntent { + pub sceneapp_id: String, + pub entry_source: Option, + pub workspace_id: Option, + pub project_id: Option, + pub user_input: Option, + #[serde(default)] + pub slots: BTreeMap, + pub runtime_context: Option, +} + +#[derive(Debug, Clone, Serialize, Deserialize)] +#[serde(rename_all = "camelCase")] +pub struct SceneAppAutomationIntent { + pub launch_intent: SceneAppLaunchIntent, + pub name: Option, + pub description: Option, + pub schedule: Option, + pub enabled: Option, + pub execution_mode: Option, + pub delivery: Option, + pub timeout_secs: Option, + pub max_retries: Option, + pub run_now: Option, +} + +#[derive(Debug, Clone, Serialize, Deserialize)] +#[serde(rename_all = "camelCase")] +pub struct SceneAppExecutionPlanStep { + pub id: String, + pub title: String, + pub binding_family: SceneAppBindingFamily, +} + +#[derive(Debug, Clone, Serialize, Deserialize)] +#[serde(rename_all = "camelCase")] +pub struct SceneAppExecutionPlan { + pub sceneapp_id: String, + pub executor_kind: SceneAppBindingFamily, + pub binding_family: SceneAppBindingFamily, + pub step_plan: Vec, + pub adapter_plan: SceneAppRuntimeAdapterPlan, + pub storage_strategy: String, + pub artifact_contract: SceneAppDeliveryContract, + pub governance_hooks: Vec, + pub warnings: Vec, +} + +#[derive(Debug, Clone, Serialize, Deserialize)] +#[serde(rename_all = "camelCase")] +pub struct SceneAppReadiness { + pub ready: bool, + pub unmet_requirements: Vec, +} + +#[derive(Debug, Clone, Serialize, Deserialize)] +#[serde(rename_all = "camelCase")] +pub struct SceneAppPlanResult { + pub descriptor: SceneAppDescriptor, + pub readiness: SceneAppReadiness, + pub plan: SceneAppExecutionPlan, +} + +#[derive(Debug, Clone, Serialize, Deserialize)] +#[serde(rename_all = "camelCase")] +pub struct SceneAppAutomationRunResult { + pub job_count: usize, + pub success_count: usize, + pub failed_count: usize, + pub timeout_count: usize, +} + +#[derive(Debug, Clone, Serialize, Deserialize)] +#[serde(rename_all = "camelCase")] +pub struct SceneAppAutomationResult { + pub sceneapp_id: String, + pub job_id: String, + pub job_name: String, + pub enabled: bool, + pub workspace_id: String, + pub next_run_at: Option, + pub run_now_result: Option, +} + +#[derive(Debug, Clone, Serialize, Deserialize, PartialEq, Eq)] +#[serde(rename_all = "snake_case")] +pub enum SceneAppRunStatus { + Queued, + Running, + Success, + Error, + Canceled, + Timeout, +} + +#[derive(Debug, Clone, Serialize, Deserialize, PartialEq, Eq)] +#[serde(rename_all = "snake_case")] +pub enum SceneAppRuntimeAction { + SubmitAgentTurn, + LaunchBrowserAssist, + CreateAutomationJob, + LaunchCloudScene, + LaunchNativeSkill, +} + +#[derive(Debug, Clone, Serialize, Deserialize)] +#[serde(rename_all = "camelCase")] +pub struct SceneAppRuntimeAdapterPlan { + pub adapter_kind: SceneAppBindingFamily, + pub runtime_action: SceneAppRuntimeAction, + pub target_ref: String, + pub target_label: String, + pub linked_service_skill_id: Option, + pub linked_scene_key: Option, + pub preferred_profile_key: Option, + pub request_metadata: Value, + pub launch_payload: Value, + pub notes: Vec, +} + +#[derive(Debug, Clone, Serialize, Deserialize, PartialEq, Eq)] +#[serde(rename_all = "camelCase")] +pub struct SceneAppBrowserRuntimeRef { + pub profile_key: Option, + pub session_id: Option, + pub target_id: Option, +} + +#[derive(Debug, Clone, Serialize, Deserialize, PartialEq, Eq)] +#[serde(rename_all = "camelCase")] +pub struct SceneAppCloudSceneRuntimeRef { + pub scene_key: Option, + pub skill_id: Option, + pub project_id: Option, + pub content_id: Option, + pub workspace_id: Option, + pub entry_source: Option, + pub user_input: Option, + #[serde(default)] + pub slots: BTreeMap, +} + +#[derive(Debug, Clone, Serialize, Deserialize, PartialEq, Eq)] +#[serde(rename_all = "camelCase")] +pub struct SceneAppNativeSkillRuntimeRef { + pub skill_id: Option, + pub skill_key: Option, + pub project_id: Option, + pub workspace_id: Option, + pub user_input: Option, + #[serde(default)] + pub slots: BTreeMap, +} + +#[derive(Debug, Clone, Serialize, Deserialize, PartialEq, Eq)] +#[serde(rename_all = "camelCase")] +pub struct SceneAppDeliveryArtifactRef { + pub relative_path: String, + pub absolute_path: Option, + pub part_key: Option, + pub project_id: Option, + pub workspace_id: Option, + pub source: String, +} + +#[derive(Debug, Clone, Serialize, Deserialize, PartialEq, Eq)] +#[serde(rename_all = "snake_case")] +pub enum SceneAppGovernanceArtifactKind { + EvidenceSummary, + ReviewDecisionMarkdown, + ReviewDecisionJson, +} + +#[derive(Debug, Clone, Serialize, Deserialize, PartialEq, Eq)] +#[serde(rename_all = "camelCase")] +pub struct SceneAppGovernanceArtifactRef { + pub kind: SceneAppGovernanceArtifactKind, + pub label: String, + pub relative_path: String, + pub absolute_path: Option, + pub project_id: Option, + pub workspace_id: Option, + pub source: String, +} + +#[derive(Debug, Clone, Serialize, Deserialize)] +#[serde(rename_all = "camelCase")] +pub struct SceneAppRunSummary { + pub run_id: String, + pub sceneapp_id: String, + pub status: SceneAppRunStatus, + pub source: String, + pub source_ref: Option, + pub session_id: Option, + pub browser_runtime_ref: Option, + pub cloud_scene_runtime_ref: Option, + pub native_skill_runtime_ref: Option, + pub started_at: String, + pub finished_at: Option, + pub artifact_count: usize, + #[serde(default, skip_serializing_if = "Vec::is_empty")] + pub delivery_artifact_refs: Vec, + #[serde(default, skip_serializing_if = "Vec::is_empty")] + pub governance_artifact_refs: Vec, + #[serde(default, skip_serializing_if = "Vec::is_empty")] + pub delivery_required_parts: Vec, + #[serde(default, skip_serializing_if = "Vec::is_empty")] + pub delivery_completed_parts: Vec, + #[serde(default, skip_serializing_if = "Vec::is_empty")] + pub delivery_missing_parts: Vec, + #[serde(default, skip_serializing_if = "Option::is_none")] + pub delivery_completion_rate: Option, + #[serde(default)] + pub delivery_part_coverage_known: bool, + #[serde(default, skip_serializing_if = "Option::is_none")] + pub failure_signal: Option, + #[serde(default)] + pub runtime_evidence_used: bool, + #[serde(default, skip_serializing_if = "Vec::is_empty")] + pub evidence_known_gaps: Vec, + #[serde(default, skip_serializing_if = "Vec::is_empty")] + pub verification_failure_outcomes: Vec, + #[serde(default, skip_serializing_if = "Option::is_none")] + pub request_telemetry_available: Option, + #[serde(default, skip_serializing_if = "Option::is_none")] + pub request_telemetry_matched_count: Option, + #[serde(default, skip_serializing_if = "Option::is_none")] + pub artifact_validator_applicable: Option, + #[serde(default, skip_serializing_if = "Option::is_none")] + pub artifact_validator_issue_count: Option, + #[serde(default, skip_serializing_if = "Option::is_none")] + pub artifact_validator_recovered_count: Option, +} + +#[derive(Debug, Clone, Serialize, Deserialize, PartialEq)] +#[serde(rename_all = "camelCase")] +pub struct SceneAppScorecardMetric { + pub key: String, + pub label: String, + pub value: f64, + pub status: SceneAppMetricStatus, +} + +#[derive(Debug, Clone, Serialize, Deserialize)] +#[serde(rename_all = "camelCase")] +pub struct SceneAppScorecard { + pub sceneapp_id: String, + pub updated_at: String, + pub summary: String, + pub metrics: Vec, + pub recommended_action: SceneAppRecommendedAction, + #[serde(default, skip_serializing_if = "Vec::is_empty")] + pub observed_failure_signals: Vec, + #[serde(default, skip_serializing_if = "Option::is_none")] + pub top_failure_signal: Option, +} diff --git a/src-tauri/src/sceneapp/governance.rs b/src-tauri/src/sceneapp/governance.rs new file mode 100644 index 000000000..0e3dd7592 --- /dev/null +++ b/src-tauri/src/sceneapp/governance.rs @@ -0,0 +1,890 @@ +use super::catalog::get_sceneapp_descriptor; +use super::dto::*; + +fn metric( + key: &str, + label: &str, + value: f64, + status: SceneAppMetricStatus, +) -> SceneAppScorecardMetric { + SceneAppScorecardMetric { + key: key.to_string(), + label: label.to_string(), + value, + status, + } +} + +fn round_percentage(value: f64) -> f64 { + (value * 10.0).round() / 10.0 +} + +fn percentage(numerator: usize, denominator: usize) -> f64 { + if denominator == 0 { + 0.0 + } else { + round_percentage((numerator as f64 / denominator as f64) * 100.0) + } +} + +fn metric_status(value: f64, good_threshold: f64, watch_threshold: f64) -> SceneAppMetricStatus { + if value >= good_threshold { + SceneAppMetricStatus::Good + } else if value >= watch_threshold { + SceneAppMetricStatus::Watch + } else { + SceneAppMetricStatus::Risk + } +} + +fn sceneapp_type_label(sceneapp_type: &SceneAppType) -> &'static str { + match sceneapp_type { + SceneAppType::LocalInstant => "本地即时", + SceneAppType::LocalDurable => "本地 durable", + SceneAppType::BrowserGrounded => "浏览器依赖", + SceneAppType::CloudManaged => "云端托管", + SceneAppType::Hybrid => "多模态组合", + } +} + +fn recommended_action_label(action: &SceneAppRecommendedAction) -> &'static str { + match action { + SceneAppRecommendedAction::Launch => "继续扩大样本", + SceneAppRecommendedAction::Keep => "继续保留", + SceneAppRecommendedAction::Optimize => "优先优化", + SceneAppRecommendedAction::Retire => "考虑收口", + } +} + +fn classify_failure_bucket( + descriptor: &SceneAppDescriptor, + run: &SceneAppRunSummary, +) -> Option<&'static str> { + match run.status { + SceneAppRunStatus::Timeout => Some("dependency_failure"), + SceneAppRunStatus::Canceled => Some("adoption_failure"), + SceneAppRunStatus::Error => Some(match descriptor.sceneapp_type { + SceneAppType::BrowserGrounded | SceneAppType::CloudManaged => "dependency_failure", + _ => "runtime_failure", + }), + SceneAppRunStatus::Queued | SceneAppRunStatus::Running | SceneAppRunStatus::Success => None, + } +} + +fn failure_signal_label(signal: &str) -> &str { + match signal { + "pack_incomplete" => "整包不完整", + "review_blocked" => "复核阻塞", + "publish_stalled" => "发布卡点", + "automation_timeout" => "自动化超时", + "dependency_failure" => "外部依赖与会话稳定性", + "adoption_failure" => "补参与人工中断", + "runtime_failure" => "运行链稳定性", + _ => signal, + } +} + +fn collect_observed_failure_signals( + descriptor: &SceneAppDescriptor, + runs: &[SceneAppRunSummary], +) -> Vec { + let mut counts = std::collections::BTreeMap::::new(); + for run in runs { + let signal = run + .failure_signal + .clone() + .or_else(|| classify_failure_bucket(descriptor, run).map(str::to_string)); + if let Some(signal) = signal { + *counts.entry(signal).or_insert(0) += 1; + } + } + + let mut ordered = counts.into_iter().collect::>(); + ordered.sort_by(|left, right| right.1.cmp(&left.1).then_with(|| left.0.cmp(&right.0))); + ordered.into_iter().map(|(signal, _)| signal).collect() +} + +fn metric_label(key: &str) -> &str { + match key { + "complete_pack_rate" => "整包交付率", + "review_pass_rate" => "复核通过率", + "publish_conversion_rate" => "发布转化率", + "success_rate" | "run_success_rate" => "执行成功率", + "reuse_rate" | "repeat_use_rate" => "复用率", + "artifact_output_rate" => "结果产出率", + "sample_coverage" => "运行样本充足度", + "delivery_readiness" => "交付就绪度", + "reuse_potential" => "结果复用潜力", + _ => key, + } +} + +fn metric_status_for_key(key: &str, value: f64) -> SceneAppMetricStatus { + match key { + "complete_pack_rate" => metric_status(value, 80.0, 50.0), + "review_pass_rate" => metric_status(value, 75.0, 45.0), + "publish_conversion_rate" => metric_status(value, 60.0, 30.0), + "success_rate" | "run_success_rate" => metric_status(value, 80.0, 50.0), + "reuse_rate" | "repeat_use_rate" => metric_status(value, 35.0, 15.0), + "artifact_output_rate" => metric_status(value, 60.0, 30.0), + "sample_coverage" => metric_status(value, 80.0, 40.0), + "delivery_readiness" => metric_status(value, 80.0, 50.0), + "reuse_potential" => metric_status(value, 70.0, 40.0), + _ => metric_status(value, 70.0, 40.0), + } +} + +fn build_seeded_sceneapp_scorecard(descriptor: &SceneAppDescriptor) -> SceneAppScorecard { + let (summary, recommended_action, metrics) = match descriptor.sceneapp_type { + SceneAppType::Hybrid => ( + "多模态组合场景已经具备经营价值,但最需要继续打磨交付稳定性与跨执行器治理。" + .to_string(), + SceneAppRecommendedAction::Optimize, + vec![ + metric( + "delivery_readiness", + "交付就绪度", + 78.0, + SceneAppMetricStatus::Watch, + ), + metric( + "reuse_potential", + "结果复用潜力", + 86.0, + SceneAppMetricStatus::Good, + ), + metric( + "operational_risk", + "运行复杂度风险", + 64.0, + SceneAppMetricStatus::Watch, + ), + ], + ), + SceneAppType::BrowserGrounded => ( + "浏览器依赖型场景适合继续保留,但应优先降低登录态和页面结构波动带来的阻塞。" + .to_string(), + SceneAppRecommendedAction::Keep, + vec![ + metric( + "delivery_readiness", + "交付就绪度", + 80.0, + SceneAppMetricStatus::Good, + ), + metric( + "reuse_potential", + "结果复用潜力", + 82.0, + SceneAppMetricStatus::Good, + ), + metric( + "operational_risk", + "运行复杂度风险", + 58.0, + SceneAppMetricStatus::Watch, + ), + ], + ), + SceneAppType::CloudManaged => ( + "云端托管型场景具备扩张潜力,但要持续关注完成率和单位成功成本。".to_string(), + SceneAppRecommendedAction::Launch, + vec![ + metric( + "delivery_readiness", + "交付就绪度", + 84.0, + SceneAppMetricStatus::Good, + ), + metric( + "reuse_potential", + "结果复用潜力", + 75.0, + SceneAppMetricStatus::Watch, + ), + metric( + "operational_risk", + "运行复杂度风险", + 42.0, + SceneAppMetricStatus::Good, + ), + ], + ), + SceneAppType::LocalDurable => ( + "本地 durable 场景适合保留,下一步重点是提高调度透明度和失败可恢复性。".to_string(), + SceneAppRecommendedAction::Keep, + vec![ + metric( + "delivery_readiness", + "交付就绪度", + 76.0, + SceneAppMetricStatus::Watch, + ), + metric( + "reuse_potential", + "结果复用潜力", + 81.0, + SceneAppMetricStatus::Good, + ), + metric( + "operational_risk", + "运行复杂度风险", + 47.0, + SceneAppMetricStatus::Good, + ), + ], + ), + SceneAppType::LocalInstant => ( + "本地即时场景适合继续保留,并优先作为新能力的装配试验田。".to_string(), + SceneAppRecommendedAction::Keep, + vec![ + metric( + "delivery_readiness", + "交付就绪度", + 79.0, + SceneAppMetricStatus::Good, + ), + metric( + "reuse_potential", + "结果复用潜力", + 68.0, + SceneAppMetricStatus::Watch, + ), + metric( + "operational_risk", + "运行复杂度风险", + 35.0, + SceneAppMetricStatus::Good, + ), + ], + ), + }; + + SceneAppScorecard { + sceneapp_id: descriptor.id.clone(), + updated_at: "2026-04-15T00:00:00.000Z".to_string(), + summary, + metrics, + recommended_action, + observed_failure_signals: Vec::new(), + top_failure_signal: None, + } +} + +pub fn build_sceneapp_scorecard_from_runs( + descriptor: &SceneAppDescriptor, + runs: &[SceneAppRunSummary], +) -> SceneAppScorecard { + if runs.is_empty() { + return build_seeded_sceneapp_scorecard(descriptor); + } + + let run_count = runs.len(); + let terminal_runs: Vec<&SceneAppRunSummary> = runs + .iter() + .filter(|run| { + matches!( + run.status, + SceneAppRunStatus::Success + | SceneAppRunStatus::Error + | SceneAppRunStatus::Canceled + | SceneAppRunStatus::Timeout + ) + }) + .collect(); + let success_count = terminal_runs + .iter() + .filter(|run| matches!(run.status, SceneAppRunStatus::Success)) + .count(); + let artifactful_count = runs.iter().filter(|run| run.artifact_count > 0).count(); + let repeat_use_rate = if run_count <= 1 { + 0.0 + } else { + percentage(run_count.saturating_sub(1), run_count) + }; + let sample_coverage = percentage(run_count.min(6), 6); + let success_rate = percentage(success_count, terminal_runs.len()); + let artifact_output_rate = percentage(artifactful_count, run_count); + let failure_count = terminal_runs.len().saturating_sub(success_count); + let observed_failure_signals = collect_observed_failure_signals(descriptor, runs); + let top_failure_signal = observed_failure_signals.first().cloned(); + + let recommended_action = if run_count < 2 { + SceneAppRecommendedAction::Launch + } else if success_rate >= 78.0 && artifact_output_rate >= 50.0 && repeat_use_rate >= 25.0 { + SceneAppRecommendedAction::Keep + } else if run_count >= 5 && success_rate < 35.0 && artifact_output_rate < 20.0 { + SceneAppRecommendedAction::Retire + } else { + SceneAppRecommendedAction::Optimize + }; + + let failure_sentence = match top_failure_signal.as_deref() { + Some(signal) => format!("当前主要阻塞集中在{}。", failure_signal_label(signal)), + None if failure_count > 0 => "当前失败分布仍偏分散,需要继续补样本。".to_string(), + _ => "当前还没有出现明显失败簇。".to_string(), + }; + let activity_sentence = if runs.iter().any(|run| { + matches!( + run.status, + SceneAppRunStatus::Queued | SceneAppRunStatus::Running + ) + }) { + "目录里仍有运行中的样本,后续分数会继续波动。" + } else { + "当前样本已经以终态运行记录为主。" + }; + let summary = format!( + "基于最近 {run_count} 次真实运行,{sceneapp_type}场景的执行成功率为 {success_rate:.1}% ,结果产出率为 {artifact_output_rate:.1}% ,重复使用率为 {repeat_use_rate:.1}% 。{failure_sentence}{activity_sentence} 目前更适合{}。", + recommended_action_label(&recommended_action), + sceneapp_type = sceneapp_type_label(&descriptor.sceneapp_type), + ); + + let updated_at = runs + .iter() + .map(|run| { + run.finished_at + .as_deref() + .filter(|value| !value.trim().is_empty()) + .unwrap_or(run.started_at.as_str()) + .to_string() + }) + .max() + .unwrap_or_else(|| "2026-04-15T00:00:00.000Z".to_string()); + + if descriptor.delivery_contract == SceneAppDeliveryContract::ProjectPack { + let complete_pack_rate = percentage( + terminal_runs + .iter() + .filter(|run| { + run.delivery_part_coverage_known + && !run.delivery_required_parts.is_empty() + && run.delivery_missing_parts.is_empty() + }) + .count(), + terminal_runs.len(), + ); + let review_pass_rate = percentage( + terminal_runs + .iter() + .filter(|run| { + matches!(run.status, SceneAppRunStatus::Success) + && run.failure_signal.as_deref() != Some("review_blocked") + && run.artifact_count > 0 + }) + .count(), + terminal_runs.len(), + ); + let publish_conversion_rate = percentage( + terminal_runs + .iter() + .filter(|run| { + matches!(run.status, SceneAppRunStatus::Success) + && run.artifact_count > 0 + && run.failure_signal.as_deref() != Some("publish_stalled") + }) + .count(), + terminal_runs.len(), + ); + let pack_recommended_action = if run_count < 2 { + SceneAppRecommendedAction::Launch + } else if complete_pack_rate >= 75.0 + && review_pass_rate >= 70.0 + && publish_conversion_rate >= 55.0 + { + SceneAppRecommendedAction::Keep + } else if terminal_runs.len() >= 5 + && complete_pack_rate < 25.0 + && publish_conversion_rate < 20.0 + { + SceneAppRecommendedAction::Retire + } else { + SceneAppRecommendedAction::Optimize + }; + let summary = format!( + "基于最近 {run_count} 次真实运行,{sceneapp_type}场景的整包交付率为 {complete_pack_rate:.1}% ,复核通过率为 {review_pass_rate:.1}% ,发布转化率为 {publish_conversion_rate:.1}% 。{failure_sentence}{activity_sentence} 目前更适合{}。", + recommended_action_label(&pack_recommended_action), + sceneapp_type = sceneapp_type_label(&descriptor.sceneapp_type), + ); + let metric_keys = descriptor + .scorecard_profile + .as_ref() + .map(|profile| profile.metric_keys.clone()) + .filter(|keys| !keys.is_empty()) + .unwrap_or_else(|| { + vec![ + "complete_pack_rate".to_string(), + "review_pass_rate".to_string(), + "publish_conversion_rate".to_string(), + ] + }); + + let metrics = metric_keys + .iter() + .filter_map(|key| { + let value = match key.as_str() { + "complete_pack_rate" => Some(complete_pack_rate), + "review_pass_rate" => Some(review_pass_rate), + "publish_conversion_rate" => Some(publish_conversion_rate), + "success_rate" | "run_success_rate" => Some(success_rate), + "reuse_rate" | "repeat_use_rate" => Some(repeat_use_rate), + "artifact_output_rate" => Some(artifact_output_rate), + "sample_coverage" => Some(sample_coverage), + _ => None, + }?; + Some(metric( + key, + metric_label(key), + value, + metric_status_for_key(key, value), + )) + }) + .collect::>(); + + return SceneAppScorecard { + sceneapp_id: descriptor.id.clone(), + updated_at, + summary, + metrics, + recommended_action: pack_recommended_action, + observed_failure_signals, + top_failure_signal, + }; + } + + let requested_metric_keys = descriptor + .scorecard_profile + .as_ref() + .map(|profile| profile.metric_keys.clone()) + .filter(|keys| !keys.is_empty()) + .unwrap_or_else(|| { + vec![ + "sample_coverage".to_string(), + "success_rate".to_string(), + "artifact_output_rate".to_string(), + "reuse_rate".to_string(), + ] + }); + SceneAppScorecard { + sceneapp_id: descriptor.id.clone(), + updated_at, + summary, + metrics: requested_metric_keys + .iter() + .filter_map(|key| { + let value = match key.as_str() { + "sample_coverage" => Some(sample_coverage), + "success_rate" | "run_success_rate" => Some(success_rate), + "artifact_output_rate" => Some(artifact_output_rate), + "reuse_rate" | "repeat_use_rate" => Some(repeat_use_rate), + "delivery_readiness" => Some(artifact_output_rate), + "reuse_potential" => Some(repeat_use_rate), + _ => None, + }?; + Some(metric( + key, + metric_label(key), + value, + metric_status_for_key(key, value), + )) + }) + .collect(), + recommended_action, + observed_failure_signals, + top_failure_signal, + } +} + +pub fn get_sceneapp_scorecard(sceneapp_id: &str) -> Option { + let descriptor = get_sceneapp_descriptor(sceneapp_id)?; + Some(build_seeded_sceneapp_scorecard(&descriptor)) +} + +#[cfg(test)] +mod tests { + use super::*; + use crate::sceneapp::catalog::get_sceneapp_descriptor; + + fn run( + run_id: &str, + status: SceneAppRunStatus, + artifact_count: usize, + started_at: &str, + ) -> SceneAppRunSummary { + SceneAppRunSummary { + run_id: run_id.to_string(), + sceneapp_id: "daily-trend-briefing".to_string(), + status, + source: "automation".to_string(), + source_ref: Some("job-daily-trend".to_string()), + session_id: None, + browser_runtime_ref: None, + cloud_scene_runtime_ref: None, + native_skill_runtime_ref: None, + started_at: started_at.to_string(), + finished_at: Some(started_at.to_string()), + artifact_count, + delivery_artifact_refs: Vec::new(), + governance_artifact_refs: Vec::new(), + delivery_required_parts: Vec::new(), + delivery_completed_parts: Vec::new(), + delivery_missing_parts: Vec::new(), + delivery_completion_rate: None, + delivery_part_coverage_known: false, + failure_signal: None, + runtime_evidence_used: false, + evidence_known_gaps: Vec::new(), + verification_failure_outcomes: Vec::new(), + request_telemetry_available: None, + request_telemetry_matched_count: None, + artifact_validator_applicable: None, + artifact_validator_issue_count: None, + artifact_validator_recovered_count: None, + } + } + + fn project_pack_run( + run_id: &str, + status: SceneAppRunStatus, + completed_parts: &[&str], + missing_parts: &[&str], + failure_signal: Option<&str>, + started_at: &str, + ) -> SceneAppRunSummary { + SceneAppRunSummary { + run_id: run_id.to_string(), + sceneapp_id: "story-video-suite".to_string(), + status, + source: "chat".to_string(), + source_ref: Some("session-story-video".to_string()), + session_id: Some("session-story-video".to_string()), + browser_runtime_ref: None, + cloud_scene_runtime_ref: None, + native_skill_runtime_ref: None, + started_at: started_at.to_string(), + finished_at: Some(started_at.to_string()), + artifact_count: completed_parts.len(), + delivery_artifact_refs: Vec::new(), + governance_artifact_refs: Vec::new(), + delivery_required_parts: vec![ + "brief".to_string(), + "storyboard".to_string(), + "script".to_string(), + "music_refs".to_string(), + "video_draft".to_string(), + "review_note".to_string(), + ], + delivery_completed_parts: completed_parts + .iter() + .map(|part| part.to_string()) + .collect(), + delivery_missing_parts: missing_parts.iter().map(|part| part.to_string()).collect(), + delivery_completion_rate: Some(percentage( + completed_parts.len(), + completed_parts.len() + missing_parts.len(), + )), + delivery_part_coverage_known: true, + failure_signal: failure_signal.map(str::to_string), + runtime_evidence_used: false, + evidence_known_gaps: Vec::new(), + verification_failure_outcomes: Vec::new(), + request_telemetry_available: None, + request_telemetry_matched_count: None, + artifact_validator_applicable: None, + artifact_validator_issue_count: None, + artifact_validator_recovered_count: None, + } + } + + #[test] + fn build_sceneapp_scorecard_from_runs_should_keep_stable_scene() { + let descriptor = + get_sceneapp_descriptor("daily-trend-briefing").expect("descriptor should exist"); + let scorecard = build_sceneapp_scorecard_from_runs( + &descriptor, + &[ + run( + "run-1", + SceneAppRunStatus::Success, + 1, + "2026-04-15T00:00:00.000Z", + ), + run( + "run-2", + SceneAppRunStatus::Success, + 1, + "2026-04-15T01:00:00.000Z", + ), + run( + "run-3", + SceneAppRunStatus::Success, + 1, + "2026-04-15T02:00:00.000Z", + ), + run( + "run-4", + SceneAppRunStatus::Success, + 1, + "2026-04-15T03:00:00.000Z", + ), + ], + ); + + assert_eq!( + scorecard.recommended_action, + SceneAppRecommendedAction::Keep + ); + assert!(scorecard.summary.contains("执行成功率为 100.0%")); + assert_eq!(scorecard.updated_at, "2026-04-15T03:00:00.000Z"); + } + + #[test] + fn build_sceneapp_scorecard_from_runs_should_fallback_to_seeded_baseline() { + let descriptor = + get_sceneapp_descriptor("story-video-suite").expect("descriptor should exist"); + let scorecard = build_sceneapp_scorecard_from_runs(&descriptor, &[]); + + assert_eq!( + scorecard.recommended_action, + SceneAppRecommendedAction::Optimize + ); + assert!(scorecard.summary.contains("多模态组合场景")); + } + + #[test] + fn build_sceneapp_scorecard_from_runs_should_use_project_pack_metrics() { + let descriptor = + get_sceneapp_descriptor("story-video-suite").expect("descriptor should exist"); + let scorecard = build_sceneapp_scorecard_from_runs( + &descriptor, + &[ + project_pack_run( + "run-1", + SceneAppRunStatus::Success, + &[ + "brief", + "storyboard", + "script", + "music_refs", + "video_draft", + "review_note", + ], + &[], + None, + "2026-04-15T00:00:00.000Z", + ), + project_pack_run( + "run-2", + SceneAppRunStatus::Success, + &["brief", "storyboard", "script", "music_refs", "video_draft"], + &["review_note"], + Some("review_blocked"), + "2026-04-15T01:00:00.000Z", + ), + ], + ); + + assert_eq!( + scorecard.metrics, + vec![ + metric( + "complete_pack_rate", + "整包交付率", + 50.0, + SceneAppMetricStatus::Watch, + ), + metric( + "review_pass_rate", + "复核通过率", + 50.0, + SceneAppMetricStatus::Watch, + ), + metric( + "publish_conversion_rate", + "发布转化率", + 100.0, + SceneAppMetricStatus::Good, + ), + ] + ); + assert_eq!( + scorecard.recommended_action, + SceneAppRecommendedAction::Optimize + ); + assert_eq!( + scorecard.top_failure_signal.as_deref(), + Some("review_blocked") + ); + assert_eq!( + scorecard.observed_failure_signals, + vec!["review_blocked".to_string()] + ); + assert!(scorecard.summary.contains("整包交付率为 50.0%")); + } + + #[test] + fn build_sceneapp_scorecard_from_runs_should_retire_poor_scene() { + let descriptor = + get_sceneapp_descriptor("x-article-export").expect("descriptor should exist"); + let runs = [ + SceneAppRunSummary { + run_id: "run-1".to_string(), + sceneapp_id: descriptor.id.clone(), + status: SceneAppRunStatus::Error, + source: "chat".to_string(), + source_ref: None, + session_id: Some("session-1".to_string()), + browser_runtime_ref: None, + cloud_scene_runtime_ref: None, + native_skill_runtime_ref: None, + started_at: "2026-04-15T00:00:00.000Z".to_string(), + finished_at: Some("2026-04-15T00:00:00.000Z".to_string()), + artifact_count: 0, + delivery_artifact_refs: Vec::new(), + governance_artifact_refs: Vec::new(), + delivery_required_parts: Vec::new(), + delivery_completed_parts: Vec::new(), + delivery_missing_parts: Vec::new(), + delivery_completion_rate: None, + delivery_part_coverage_known: false, + failure_signal: None, + runtime_evidence_used: false, + evidence_known_gaps: Vec::new(), + verification_failure_outcomes: Vec::new(), + request_telemetry_available: None, + request_telemetry_matched_count: None, + artifact_validator_applicable: None, + artifact_validator_issue_count: None, + artifact_validator_recovered_count: None, + }, + SceneAppRunSummary { + run_id: "run-2".to_string(), + sceneapp_id: descriptor.id.clone(), + status: SceneAppRunStatus::Timeout, + source: "chat".to_string(), + source_ref: None, + session_id: Some("session-2".to_string()), + browser_runtime_ref: None, + cloud_scene_runtime_ref: None, + native_skill_runtime_ref: None, + started_at: "2026-04-15T01:00:00.000Z".to_string(), + finished_at: Some("2026-04-15T01:00:00.000Z".to_string()), + artifact_count: 0, + delivery_artifact_refs: Vec::new(), + governance_artifact_refs: Vec::new(), + delivery_required_parts: Vec::new(), + delivery_completed_parts: Vec::new(), + delivery_missing_parts: Vec::new(), + delivery_completion_rate: None, + delivery_part_coverage_known: false, + failure_signal: None, + runtime_evidence_used: false, + evidence_known_gaps: Vec::new(), + verification_failure_outcomes: Vec::new(), + request_telemetry_available: None, + request_telemetry_matched_count: None, + artifact_validator_applicable: None, + artifact_validator_issue_count: None, + artifact_validator_recovered_count: None, + }, + SceneAppRunSummary { + run_id: "run-3".to_string(), + sceneapp_id: descriptor.id.clone(), + status: SceneAppRunStatus::Error, + source: "chat".to_string(), + source_ref: None, + session_id: Some("session-3".to_string()), + browser_runtime_ref: None, + cloud_scene_runtime_ref: None, + native_skill_runtime_ref: None, + started_at: "2026-04-15T02:00:00.000Z".to_string(), + finished_at: Some("2026-04-15T02:00:00.000Z".to_string()), + artifact_count: 0, + delivery_artifact_refs: Vec::new(), + governance_artifact_refs: Vec::new(), + delivery_required_parts: Vec::new(), + delivery_completed_parts: Vec::new(), + delivery_missing_parts: Vec::new(), + delivery_completion_rate: None, + delivery_part_coverage_known: false, + failure_signal: None, + runtime_evidence_used: false, + evidence_known_gaps: Vec::new(), + verification_failure_outcomes: Vec::new(), + request_telemetry_available: None, + request_telemetry_matched_count: None, + artifact_validator_applicable: None, + artifact_validator_issue_count: None, + artifact_validator_recovered_count: None, + }, + SceneAppRunSummary { + run_id: "run-4".to_string(), + sceneapp_id: descriptor.id.clone(), + status: SceneAppRunStatus::Canceled, + source: "chat".to_string(), + source_ref: None, + session_id: Some("session-4".to_string()), + browser_runtime_ref: None, + cloud_scene_runtime_ref: None, + native_skill_runtime_ref: None, + started_at: "2026-04-15T03:00:00.000Z".to_string(), + finished_at: Some("2026-04-15T03:00:00.000Z".to_string()), + artifact_count: 0, + delivery_artifact_refs: Vec::new(), + governance_artifact_refs: Vec::new(), + delivery_required_parts: Vec::new(), + delivery_completed_parts: Vec::new(), + delivery_missing_parts: Vec::new(), + delivery_completion_rate: None, + delivery_part_coverage_known: false, + failure_signal: None, + runtime_evidence_used: false, + evidence_known_gaps: Vec::new(), + verification_failure_outcomes: Vec::new(), + request_telemetry_available: None, + request_telemetry_matched_count: None, + artifact_validator_applicable: None, + artifact_validator_issue_count: None, + artifact_validator_recovered_count: None, + }, + SceneAppRunSummary { + run_id: "run-5".to_string(), + sceneapp_id: descriptor.id.clone(), + status: SceneAppRunStatus::Error, + source: "chat".to_string(), + source_ref: None, + session_id: Some("session-5".to_string()), + browser_runtime_ref: None, + cloud_scene_runtime_ref: None, + native_skill_runtime_ref: None, + started_at: "2026-04-15T04:00:00.000Z".to_string(), + finished_at: Some("2026-04-15T04:00:00.000Z".to_string()), + artifact_count: 0, + delivery_artifact_refs: Vec::new(), + governance_artifact_refs: Vec::new(), + delivery_required_parts: Vec::new(), + delivery_completed_parts: Vec::new(), + delivery_missing_parts: Vec::new(), + delivery_completion_rate: None, + delivery_part_coverage_known: false, + failure_signal: None, + runtime_evidence_used: false, + evidence_known_gaps: Vec::new(), + verification_failure_outcomes: Vec::new(), + request_telemetry_available: None, + request_telemetry_matched_count: None, + artifact_validator_applicable: None, + artifact_validator_issue_count: None, + artifact_validator_recovered_count: None, + }, + ]; + + let scorecard = build_sceneapp_scorecard_from_runs(&descriptor, &runs); + + assert_eq!( + scorecard.recommended_action, + SceneAppRecommendedAction::Retire + ); + assert!(scorecard.summary.contains("外部依赖与会话稳定性")); + } +} diff --git a/src-tauri/src/sceneapp/mod.rs b/src-tauri/src/sceneapp/mod.rs new file mode 100644 index 000000000..875c05276 --- /dev/null +++ b/src-tauri/src/sceneapp/mod.rs @@ -0,0 +1,6 @@ +pub mod adapters; +pub mod application; +pub mod catalog; +pub mod dto; +pub mod governance; +pub mod runtime; diff --git a/src-tauri/src/sceneapp/runtime.rs b/src-tauri/src/sceneapp/runtime.rs new file mode 100644 index 000000000..c018b0f9c --- /dev/null +++ b/src-tauri/src/sceneapp/runtime.rs @@ -0,0 +1,283 @@ +use super::adapters::build_sceneapp_runtime_adapter_plan; +use super::dto::*; + +fn pattern_title(pattern: &SceneAppPattern) -> &'static str { + match pattern { + SceneAppPattern::Pipeline => "执行多步场景编排", + SceneAppPattern::Generator => "生成结构化结果产物", + SceneAppPattern::Reviewer => "执行末尾质量审查", + SceneAppPattern::Inversion => "补齐缺失参数与上下文", + SceneAppPattern::ToolWrapper => "加载站点/协议封装能力", + } +} + +fn storage_strategy(descriptor: &SceneAppDescriptor) -> String { + if descriptor + .infra_profile + .iter() + .any(|item| item == "db_store" || item == "json_snapshot") + { + return "db_plus_snapshot".to_string(); + } + if descriptor + .infra_profile + .iter() + .any(|item| item == "artifact_bundle" || item == "workspace_storage") + { + return "workspace_bundle".to_string(); + } + "session_only".to_string() +} + +fn governance_hooks(descriptor: &SceneAppDescriptor) -> Vec { + let mut hooks = vec!["evidence_pack".to_string(), "scorecard".to_string()]; + if descriptor + .pattern_stack + .iter() + .any(|pattern| matches!(pattern, SceneAppPattern::Reviewer)) + { + hooks.push("review_policy".to_string()); + } + if descriptor + .infra_profile + .iter() + .any(|item| item == "automation_schedule") + { + hooks.push("retry_policy".to_string()); + } + hooks +} + +fn requirement_satisfied( + requirement: &SceneAppLaunchRequirement, + intent: &SceneAppLaunchIntent, +) -> bool { + let runtime = intent.runtime_context.clone().unwrap_or_default(); + match requirement.kind { + SceneAppLaunchRequirementKind::UserInput => { + intent + .user_input + .as_deref() + .is_some_and(|value| !value.trim().is_empty()) + || intent.slots.values().any(|value| !value.trim().is_empty()) + } + SceneAppLaunchRequirementKind::Project => intent + .project_id + .as_deref() + .is_some_and(|value| !value.trim().is_empty()), + SceneAppLaunchRequirementKind::BrowserSession => runtime.browser_session_attached, + SceneAppLaunchRequirementKind::CloudSession => runtime.cloud_session_ready, + SceneAppLaunchRequirementKind::Automation => runtime.automation_enabled, + } +} + +fn build_readiness( + descriptor: &SceneAppDescriptor, + intent: &SceneAppLaunchIntent, +) -> SceneAppReadiness { + let unmet_requirements = descriptor + .launch_requirements + .iter() + .filter(|requirement| !requirement_satisfied(requirement, intent)) + .cloned() + .collect::>(); + + SceneAppReadiness { + ready: unmet_requirements.is_empty(), + unmet_requirements, + } +} + +fn build_step_plan(descriptor: &SceneAppDescriptor) -> Vec { + let binding_family = descriptor + .entry_bindings + .first() + .map(|binding| binding.binding_family.clone()) + .unwrap_or(SceneAppBindingFamily::AgentTurn); + + descriptor + .pattern_stack + .iter() + .enumerate() + .map(|(index, pattern)| SceneAppExecutionPlanStep { + id: format!("step-{}", index + 1), + title: pattern_title(pattern).to_string(), + binding_family: binding_family.clone(), + }) + .collect() +} + +pub fn build_launch_plan( + descriptor: SceneAppDescriptor, + intent: SceneAppLaunchIntent, +) -> SceneAppPlanResult { + let sceneapp_id = descriptor.id.clone(); + let binding_family = descriptor + .entry_bindings + .first() + .map(|binding| binding.binding_family.clone()) + .unwrap_or(SceneAppBindingFamily::AgentTurn); + let readiness = build_readiness(&descriptor, &intent); + let step_plan = build_step_plan(&descriptor); + let adapter_plan = build_sceneapp_runtime_adapter_plan(&descriptor, &intent); + let storage_strategy = storage_strategy(&descriptor); + let artifact_contract = descriptor.delivery_contract.clone(); + let hooks = governance_hooks(&descriptor); + let mut warnings = Vec::new(); + if !readiness.ready { + warnings.push("当前 SceneApp 仍有未满足的启动前置条件。".to_string()); + } + if !intent + .workspace_id + .as_deref() + .is_some_and(|value| !value.trim().is_empty()) + { + warnings.push("尚未显式绑定 workspace_id,后续应接入统一工作区边界。".to_string()); + } + + SceneAppPlanResult { + descriptor: descriptor.clone(), + readiness, + plan: SceneAppExecutionPlan { + sceneapp_id, + executor_kind: binding_family.clone(), + binding_family, + step_plan, + adapter_plan, + storage_strategy, + artifact_contract, + governance_hooks: hooks, + warnings, + }, + } +} + +#[cfg(test)] +mod tests { + use super::build_launch_plan; + use crate::sceneapp::catalog::get_sceneapp_descriptor; + use crate::sceneapp::dto::{ + SceneAppLaunchIntent, SceneAppRuntimeAction, SceneAppRuntimeContext, + }; + use std::collections::BTreeMap; + + #[test] + fn should_build_cloud_scene_adapter_plan_for_hybrid_sceneapp() { + let descriptor = get_sceneapp_descriptor("story-video-suite") + .expect("story-video-suite descriptor should exist"); + let plan = build_launch_plan( + descriptor, + SceneAppLaunchIntent { + sceneapp_id: "story-video-suite".to_string(), + entry_source: Some("sceneapp_card".to_string()), + workspace_id: Some("workspace-default".to_string()), + project_id: Some("project-video".to_string()), + user_input: Some("根据发布会内容生成 30 秒短视频草稿".to_string()), + slots: BTreeMap::new(), + runtime_context: Some(SceneAppRuntimeContext { + cloud_session_ready: true, + ..SceneAppRuntimeContext::default() + }), + }, + ); + + assert_eq!( + plan.plan.adapter_plan.runtime_action, + SceneAppRuntimeAction::LaunchCloudScene + ); + assert_eq!( + plan.plan.adapter_plan.target_ref, + "sceneapp-service-story-video" + ); + assert!(plan + .plan + .adapter_plan + .request_metadata + .pointer("/harness/service_scene_launch/service_scene_run/scene_key") + .is_some()); + } + + #[test] + fn should_build_browser_assist_adapter_plan_with_known_adapter_name() { + let descriptor = get_sceneapp_descriptor("x-article-export") + .expect("x-article-export descriptor should exist"); + let mut slots = BTreeMap::new(); + slots.insert( + "article_url".to_string(), + "https://x.com/openai/article/123".to_string(), + ); + slots.insert("target_language".to_string(), "中文".to_string()); + + let plan = build_launch_plan( + descriptor, + SceneAppLaunchIntent { + sceneapp_id: "x-article-export".to_string(), + entry_source: Some("sceneapp_card".to_string()), + workspace_id: Some("workspace-default".to_string()), + project_id: Some("project-research".to_string()), + user_input: Some("请导出这篇文章".to_string()), + slots, + runtime_context: Some(SceneAppRuntimeContext { + browser_session_attached: true, + ..SceneAppRuntimeContext::default() + }), + }, + ); + + assert_eq!( + plan.plan.adapter_plan.runtime_action, + SceneAppRuntimeAction::LaunchBrowserAssist + ); + assert_eq!(plan.plan.adapter_plan.target_ref, "x/article-export"); + assert_eq!( + plan.plan.adapter_plan.preferred_profile_key.as_deref(), + Some("general_browser_assist") + ); + assert_eq!( + plan.plan + .adapter_plan + .launch_payload + .pointer("/args/url") + .and_then(|value| value.as_str()), + Some("https://x.com/openai/article/123") + ); + } + + #[test] + fn should_build_automation_adapter_plan_for_local_durable_sceneapp() { + let descriptor = get_sceneapp_descriptor("daily-trend-briefing") + .expect("daily-trend-briefing descriptor should exist"); + let plan = build_launch_plan( + descriptor, + SceneAppLaunchIntent { + sceneapp_id: "daily-trend-briefing".to_string(), + entry_source: Some("sceneapp_card".to_string()), + workspace_id: Some("workspace-default".to_string()), + project_id: Some("project-growth".to_string()), + user_input: Some("关注 AI Agent 产品趋势".to_string()), + slots: BTreeMap::new(), + runtime_context: Some(SceneAppRuntimeContext { + automation_enabled: true, + ..SceneAppRuntimeContext::default() + }), + }, + ); + + assert_eq!( + plan.plan.adapter_plan.runtime_action, + SceneAppRuntimeAction::CreateAutomationJob + ); + assert_eq!( + plan.plan.adapter_plan.target_ref, + "sceneapp-service-daily-trend" + ); + assert_eq!( + plan.plan + .adapter_plan + .launch_payload + .pointer("/schedule/kind") + .and_then(|value| value.as_str()), + Some("every") + ); + } +} diff --git a/src-tauri/src/services/auto_memory_service.rs b/src-tauri/src/services/auto_memory_service.rs index 4d610df02..9c1bc68c0 100644 --- a/src-tauri/src/services/auto_memory_service.rs +++ b/src-tauri/src/services/auto_memory_service.rs @@ -2,19 +2,252 @@ //! //! 提供自动记忆目录定位、入口索引读取与笔记更新能力。 -use chrono::Local; +use chrono::{DateTime, Local, NaiveDateTime, Utc}; use lime_core::app_paths; use lime_core::config::{MemoryAutoConfig, MemoryConfig}; use serde::{Deserialize, Serialize}; +use std::collections::HashSet; use std::fs; use std::path::{Path, PathBuf}; +const MEMDIR_README_FILE_NAME: &str = "README.md"; +const MEMORY_ENTRYPOINT_FALLBACK: &str = "MEMORY.md"; +const MEMDIR_PROVIDER_NAME: &str = "memdir"; +const MEMDIR_INDEX_MAX_DEPTH: usize = 4; +const MEMDIR_ENTRY_NOTE_LIMIT: usize = 12; +const MEMDIR_TYPE_README_SECTION_LIMIT: usize = 6; +const PROJECT_RELATIVE_DATE_TERMS: &[&str] = &[ + "今天", + "明天", + "昨天", + "后天", + "今晚", + "今早", + "本周", + "下周", + "上周", + "本月", + "下个月", + "上个月", + "本季度", + "下季度", + "上季度", +]; +const PROJECT_RELATIVE_DATE_ASCII_TERMS: &[&str] = &[ + "today", + "tomorrow", + "yesterday", + "tonight", + "this week", + "next week", + "last week", + "this month", + "next month", + "last month", + "this quarter", + "next quarter", + "last quarter", +]; + +/// memdir 四类记忆 +#[derive(Debug, Clone, Copy, Serialize, Deserialize, PartialEq, Eq)] +#[serde(rename_all = "snake_case")] +pub enum MemdirMemoryType { + User, + Feedback, + Project, + Reference, +} + +#[derive(Debug, Clone, Copy, PartialEq, Eq)] +enum AutoMemoryProviderKind { + Memdir, +} + +impl AutoMemoryProviderKind { + fn as_str(self) -> &'static str { + match self { + Self::Memdir => MEMDIR_PROVIDER_NAME, + } + } +} + +#[derive(Debug, Clone, Copy, Default)] +struct MemdirProvider; + +impl MemdirProvider { + fn provider_name(self) -> &'static str { + AutoMemoryProviderKind::Memdir.as_str() + } + + fn validate_note( + self, + note: &str, + memory_type: Option, + ) -> Result<(), String> { + let Some(memory_type) = memory_type else { + return Ok(()); + }; + + if matches!( + memory_type, + MemdirMemoryType::Feedback | MemdirMemoryType::Project + ) { + ensure_structured_memdir_note(note, memory_type)?; + } + + if memory_type == MemdirMemoryType::Project { + ensure_absolute_project_dates(note)?; + } + + Ok(()) + } + + fn build_index_item( + self, + title: String, + relative_path: String, + path: &Path, + ) -> AutoMemoryIndexItem { + AutoMemoryIndexItem { + title, + memory_type: infer_memdir_memory_type(&relative_path), + provider: Some(self.provider_name().to_string()), + updated_at: read_path_updated_at(path), + relative_path, + exists: path.is_file(), + summary: read_item_summary(path), + } + } +} + +impl MemdirMemoryType { + fn directory_name(self) -> &'static str { + match self { + Self::User => "user", + Self::Feedback => "feedback", + Self::Project => "project", + Self::Reference => "reference", + } + } + + fn display_name(self) -> &'static str { + match self { + Self::User => "用户记忆", + Self::Feedback => "反馈记忆", + Self::Project => "项目记忆", + Self::Reference => "参考记忆", + } + } + + fn starter_description(self) -> &'static str { + match self { + Self::User => "记录用户角色、背景、长期偏好与协作方式,帮助 Lime 调整回答和协作节奏。", + Self::Feedback => { + "记录被反复确认的做事规则、纠偏建议与成功经验,避免同样的问题反复出现。" + } + Self::Project => { + "记录项目背景、时间点、约束、动机与团队分工,补足代码之外的重要上下文。" + } + Self::Reference => { + "记录外部文档、工单、监控、知识库与系统入口,帮助后续快速定位事实源。" + } + } + } + + fn starter_examples(self) -> &'static [&'static str] { + match self { + Self::User => &[ + "用户熟悉哪些技术或业务背景", + "用户偏好的沟通方式与解释深浅", + "长期有效的合作习惯", + ], + Self::Feedback => &[ + "不要做的事与明确避坑规则", + "被验证有效的实现或协作方式", + "适用范围与触发条件", + ], + Self::Project => &[ + "当前主线、冻结窗口和里程碑", + "为什么要做这件事", + "当前团队分工和协作关系", + ], + Self::Reference => &[ + "文档、工单、监控看板入口", + "外部系统的真实事实源", + "需要回查的知识库位置", + ], + } + } +} + +/// memdir 脚手架文件结果 +#[derive(Debug, Clone, Serialize, Deserialize, PartialEq, Eq)] +pub struct MemdirScaffoldFile { + pub key: String, + pub path: String, + pub status: String, +} + +/// memdir 脚手架响应 +#[derive(Debug, Clone, Serialize, Deserialize, PartialEq, Eq)] +pub struct MemdirScaffoldResult { + pub root_dir: String, + pub entrypoint: String, + pub created_parent_dir: bool, + pub files: Vec, +} + +/// memdir 整理结果 +#[derive(Debug, Clone, Serialize, Deserialize, PartialEq, Eq)] +pub struct MemdirCleanupResult { + pub root_dir: String, + pub entrypoint: String, + pub scanned_files: u32, + pub updated_files: u32, + pub removed_duplicate_links: u32, + pub dropped_missing_links: u32, + pub removed_duplicate_notes: u32, + pub trimmed_notes: u32, + pub curated_topic_files: u32, +} + +#[derive(Debug, Clone, Default)] +struct MemdirCleanupStats { + scanned_files: u32, + updated_files: u32, + removed_duplicate_links: u32, + dropped_missing_links: u32, + removed_duplicate_notes: u32, + trimmed_notes: u32, + curated_topic_files: u32, +} + +#[derive(Debug, Clone, PartialEq, Eq)] +struct TimestampedNoteLine { + timestamp: String, + note: String, +} + +#[derive(Debug, Clone, PartialEq, Eq)] +struct TimestampedSection { + timestamp: String, + content: String, +} + /// 自动记忆索引项 #[derive(Debug, Clone, Serialize, Deserialize, PartialEq)] pub struct AutoMemoryIndexItem { pub title: String, + #[serde(skip_serializing_if = "Option::is_none")] + pub memory_type: Option, + #[serde(skip_serializing_if = "Option::is_none")] + pub provider: Option, + #[serde(skip_serializing_if = "Option::is_none")] + pub updated_at: Option, pub relative_path: String, pub exists: bool, + #[serde(skip_serializing_if = "Option::is_none")] pub summary: Option, } @@ -36,11 +269,12 @@ pub fn get_auto_memory_index( memory_config: &MemoryConfig, working_dir: &Path, ) -> Result { + let provider = MemdirProvider; let auto = &memory_config.auto; let root_dir = resolve_auto_memory_root(working_dir, auto); let entry_name = auto.entrypoint.trim(); let entry_name = if entry_name.is_empty() { - "MEMORY.md" + MEMORY_ENTRYPOINT_FALLBACK } else { entry_name }; @@ -70,7 +304,7 @@ pub fn get_auto_memory_index( .take(auto.max_loaded_lines as usize) .cloned() .collect(); - response.items = parse_index_items(&lines, &root_dir); + response.items = parse_index_items(&lines, &root_dir, &root_dir, provider); Ok(response) } @@ -81,11 +315,14 @@ pub fn update_auto_memory_note( working_dir: &Path, note: &str, topic: Option<&str>, + memory_type: Option, ) -> Result { let trimmed_note = note.trim(); if trimmed_note.is_empty() { return Err("note 不能为空".to_string()); } + let provider = MemdirProvider; + provider.validate_note(trimmed_note, memory_type)?; let auto = &memory_config.auto; let root_dir = resolve_auto_memory_root(working_dir, auto); @@ -94,13 +331,36 @@ pub fn update_auto_memory_note( let entry_name = auto.entrypoint.trim(); let entry_name = if entry_name.is_empty() { - "MEMORY.md" + MEMORY_ENTRYPOINT_FALLBACK } else { entry_name }; let entry_path = root_dir.join(entry_name); - if let Some(topic_name) = topic.map(str::trim).filter(|v| !v.is_empty()) { + if let Some(kind) = memory_type { + ensure_memdir_entrypoint(&entry_path)?; + + let type_readme_path = root_dir + .join(kind.directory_name()) + .join(MEMDIR_README_FILE_NAME); + ensure_memdir_type_readme(&type_readme_path, kind)?; + ensure_entry_link( + &entry_path, + kind.display_name(), + &format!("{}/{}", kind.directory_name(), MEMDIR_README_FILE_NAME), + )?; + + if let Some(topic_name) = topic.map(str::trim).filter(|v| !v.is_empty()) { + let topic_file = normalize_topic_filename(topic_name); + let topic_path = root_dir.join(kind.directory_name()).join(&topic_file); + upsert_topic_note(&topic_path, topic_name, trimmed_note)?; + ensure_entry_link(&type_readme_path, topic_name, &topic_file)?; + } else { + append_topic_note(&type_readme_path, kind.display_name(), trimmed_note)?; + let mut cleanup_stats = MemdirCleanupStats::default(); + cleanup_type_readme_file(&type_readme_path, &root_dir, kind, &mut cleanup_stats)?; + } + } else if let Some(topic_name) = topic.map(str::trim).filter(|v| !v.is_empty()) { let topic_file = normalize_topic_filename(topic_name); let topic_path = root_dir.join(&topic_file); append_topic_note(&topic_path, topic_name, trimmed_note)?; @@ -112,6 +372,105 @@ pub fn update_auto_memory_note( get_auto_memory_index(memory_config, working_dir) } +/// 整理 memdir:去重索引、裁剪 README 历史段落,并把 topic note 收口为当前版本。 +pub fn cleanup_memdir( + memory_config: &MemoryConfig, + working_dir: &Path, +) -> Result { + let auto = &memory_config.auto; + let root_dir = resolve_auto_memory_root(working_dir, auto); + let entry_name = auto.entrypoint.trim(); + let entry_name = if entry_name.is_empty() { + MEMORY_ENTRYPOINT_FALLBACK + } else { + entry_name + }; + let entry_path = root_dir.join(entry_name); + let mut stats = MemdirCleanupStats::default(); + + if entry_path.is_file() { + cleanup_entrypoint_file(&entry_path, &root_dir, &mut stats)?; + } + + for kind in [ + MemdirMemoryType::User, + MemdirMemoryType::Feedback, + MemdirMemoryType::Project, + MemdirMemoryType::Reference, + ] { + let dir_path = root_dir.join(kind.directory_name()); + let readme_path = dir_path.join(MEMDIR_README_FILE_NAME); + if readme_path.is_file() { + cleanup_type_readme_file(&readme_path, &root_dir, kind, &mut stats)?; + } + cleanup_topic_directory(&dir_path, &entry_path, &mut stats)?; + } + + cleanup_topic_directory(&root_dir, &entry_path, &mut stats)?; + + Ok(MemdirCleanupResult { + root_dir: root_dir.to_string_lossy().to_string(), + entrypoint: entry_name.to_string(), + scanned_files: stats.scanned_files, + updated_files: stats.updated_files, + removed_duplicate_links: stats.removed_duplicate_links, + dropped_missing_links: stats.dropped_missing_links, + removed_duplicate_notes: stats.removed_duplicate_notes, + trimmed_notes: stats.trimmed_notes, + curated_topic_files: stats.curated_topic_files, + }) +} + +/// 初始化 memdir 套件 +pub fn scaffold_memdir( + memory_config: &MemoryConfig, + working_dir: &Path, + overwrite: bool, +) -> Result { + let auto = &memory_config.auto; + let root_dir = resolve_auto_memory_root(working_dir, auto); + let created_parent_dir = !root_dir.exists(); + fs::create_dir_all(&root_dir) + .map_err(|e| format!("创建 memdir 根目录失败 {}: {e}", root_dir.display()))?; + + let entry_name = auto.entrypoint.trim(); + let entry_name = if entry_name.is_empty() { + MEMORY_ENTRYPOINT_FALLBACK + } else { + entry_name + }; + let entry_path = root_dir.join(entry_name); + + let mut files = vec![MemdirScaffoldFile { + key: "entrypoint".to_string(), + path: entry_path.to_string_lossy().to_string(), + status: write_scaffold_file(&entry_path, &render_memdir_entrypoint(), overwrite)?, + }]; + + for kind in [ + MemdirMemoryType::User, + MemdirMemoryType::Feedback, + MemdirMemoryType::Project, + MemdirMemoryType::Reference, + ] { + let readme_path = root_dir + .join(kind.directory_name()) + .join(MEMDIR_README_FILE_NAME); + files.push(MemdirScaffoldFile { + key: kind.directory_name().to_string(), + path: readme_path.to_string_lossy().to_string(), + status: write_scaffold_file(&readme_path, &render_memdir_type_readme(kind), overwrite)?, + }); + } + + Ok(MemdirScaffoldResult { + root_dir: root_dir.to_string_lossy().to_string(), + entrypoint: entry_name.to_string(), + created_parent_dir, + files, + }) +} + /// 解析自动记忆根目录 pub fn resolve_auto_memory_root(working_dir: &Path, auto: &MemoryAutoConfig) -> PathBuf { if let Some(custom_root) = auto.root_dir.as_deref().map(str::trim) { @@ -137,8 +496,32 @@ pub fn resolve_auto_memory_root(working_dir: &Path, auto: &MemoryAutoConfig) -> .join("memory") } -fn parse_index_items(lines: &[String], root_dir: &Path) -> Vec { +fn parse_index_items( + lines: &[String], + root_dir: &Path, + base_dir: &Path, + provider: MemdirProvider, +) -> Vec { let mut items = Vec::new(); + let mut seen = HashSet::new(); + collect_index_items( + lines, root_dir, base_dir, provider, 0, &mut seen, &mut items, + ); + items +} + +fn collect_index_items( + lines: &[String], + root_dir: &Path, + base_dir: &Path, + provider: MemdirProvider, + depth: usize, + seen: &mut HashSet, + items: &mut Vec, +) { + if depth > MEMDIR_INDEX_MAX_DEPTH { + return; + } for line in lines { let trimmed = line.trim(); @@ -147,34 +530,60 @@ fn parse_index_items(lines: &[String], root_dir: &Path) -> Vec Option { + let raw = fs::read_to_string(path).ok()?; + for line in raw.lines() { + let trimmed = line.trim(); + if trimmed.is_empty() + || trimmed.starts_with('#') + || trimmed.starts_with("- [") + || trimmed.starts_with("* [") + || trimmed.starts_with('@') + || is_structured_section_line(trimmed) + { + continue; + } + let summary = trimmed + .trim_start_matches("- ") + .trim_start_matches("* ") + .trim(); + return Some(clip_summary(summary, 120)); + } + None } fn parse_markdown_link(line: &str) -> Option<(String, String)> { @@ -195,6 +604,176 @@ fn parse_markdown_link(line: &str) -> Option<(String, String)> { Some((title, path)) } +fn collect_nested_index_items( + path: &Path, + root_dir: &Path, + provider: MemdirProvider, + depth: usize, + seen: &mut HashSet, + items: &mut Vec, +) { + if depth > MEMDIR_INDEX_MAX_DEPTH || !path.is_file() || !is_memdir_index_candidate(path) { + return; + } + let Ok(raw) = fs::read_to_string(path) else { + return; + }; + let lines: Vec = raw.lines().map(|line| line.to_string()).collect(); + let base_dir = path.parent().unwrap_or(root_dir); + collect_index_items(&lines, root_dir, base_dir, provider, depth, seen, items); +} + +fn resolve_memdir_target( + target: &str, + root_dir: &Path, + base_dir: &Path, +) -> Option<(String, PathBuf)> { + let trimmed = target.trim(); + if trimmed.is_empty() + || trimmed.starts_with('#') + || trimmed.contains("://") + || trimmed.contains("..") + || Path::new(trimmed).is_absolute() + { + return None; + } + + let path = base_dir.join(trimmed); + let relative_path = path + .strip_prefix(root_dir) + .ok()? + .to_string_lossy() + .replace('\\', "/") + .trim_start_matches("./") + .to_string(); + if relative_path.is_empty() { + return None; + } + Some((relative_path, path)) +} + +fn is_memdir_index_candidate(path: &Path) -> bool { + matches!( + path.extension() + .and_then(|value| value.to_str()) + .map(|value| value.trim().to_ascii_lowercase()) + .as_deref(), + Some("md") | Some("markdown") | Some("mdx") | Some("txt") + ) +} + +pub(crate) fn infer_memdir_memory_type(relative_path: &str) -> Option { + let head = relative_path.replace('\\', "/"); + let head = head.split('/').next()?.trim(); + match head { + "user" => Some(MemdirMemoryType::User), + "feedback" => Some(MemdirMemoryType::Feedback), + "project" => Some(MemdirMemoryType::Project), + "reference" => Some(MemdirMemoryType::Reference), + _ => None, + } +} + +fn read_path_updated_at(path: &Path) -> Option { + let modified = fs::metadata(path).ok()?.modified().ok()?; + Some(DateTime::::from(modified).timestamp_millis()) +} + +fn ensure_structured_memdir_note(note: &str, memory_type: MemdirMemoryType) -> Result<(), String> { + if !note_has_section(note, &["why", "为什么", "原因"]) { + return Err(format!( + "{} 需要包含 `Why:` 段落,说明这条记忆为什么成立。", + memory_type.display_name() + )); + } + + if !note_has_section(note, &["how to apply", "如何使用", "如何应用"]) { + return Err(format!( + "{} 需要包含 `How to apply:` 段落,说明后续应如何使用这条记忆。", + memory_type.display_name() + )); + } + + Ok(()) +} + +fn note_has_section(note: &str, headings: &[&str]) -> bool { + note.lines().any(|line| { + let normalized = normalize_structured_line(line); + headings + .iter() + .any(|heading| normalized.starts_with(&heading.to_ascii_lowercase())) + }) +} + +fn normalize_structured_line(line: &str) -> String { + line.trim() + .trim_start_matches(|ch: char| matches!(ch, '#' | '-' | '*' | ' ' | '\t')) + .replace(':', ":") + .to_ascii_lowercase() +} + +fn is_structured_section_line(line: &str) -> bool { + let normalized = normalize_structured_line(line); + normalized.starts_with("why") + || normalized.starts_with("为什么") + || normalized.starts_with("原因") + || normalized.starts_with("how to apply") + || normalized.starts_with("如何使用") + || normalized.starts_with("如何应用") +} + +fn ensure_absolute_project_dates(note: &str) -> Result<(), String> { + if let Some(term) = find_relative_date_term(note) { + return Err(format!( + "项目记忆不能使用相对时间词“{term}”,请改成绝对日期,例如 `{}` 或 `{}`。", + Local::now().format("%Y-%m-%d"), + Local::now().format("%Y-%m-%d %H:%M") + )); + } + Ok(()) +} + +fn find_relative_date_term(note: &str) -> Option<&'static str> { + let normalized_ascii = note.replace(':', ":").to_ascii_lowercase(); + for term in PROJECT_RELATIVE_DATE_TERMS { + if note.contains(term) { + return Some(term); + } + } + for term in PROJECT_RELATIVE_DATE_ASCII_TERMS { + if contains_ascii_phrase(&normalized_ascii, term) { + return Some(term); + } + } + None +} + +fn contains_ascii_phrase(text: &str, phrase: &str) -> bool { + if phrase.is_empty() { + return false; + } + + let mut search_start = 0usize; + while let Some(offset) = text[search_start..].find(phrase) { + let start = search_start + offset; + let end = start + phrase.len(); + let before = text[..start].chars().next_back(); + let after = text[end..].chars().next(); + let before_ok = before.map(|ch| !is_ascii_word_char(ch)).unwrap_or(true); + let after_ok = after.map(|ch| !is_ascii_word_char(ch)).unwrap_or(true); + if before_ok && after_ok { + return true; + } + search_start = end; + } + false +} + +fn is_ascii_word_char(ch: char) -> bool { + ch.is_ascii_alphanumeric() || ch == '_' +} + fn append_entry_note(entry_path: &Path, note: &str) -> Result<(), String> { let timestamp = Local::now().format("%Y-%m-%d %H:%M:%S"); let line = format!("- [{timestamp}] {note}\n"); @@ -202,13 +781,15 @@ fn append_entry_note(entry_path: &Path, note: &str) -> Result<(), String> { fs::read_to_string(entry_path) .map_err(|e| format!("读取 MEMORY 入口失败 {}: {e}", entry_path.display()))? } else { - "# Auto Memory Index\n\n".to_string() + render_memdir_entrypoint() }; if !existing.ends_with('\n') { existing.push('\n'); } existing.push_str(&line); - fs::write(entry_path, existing) + let normalized = + normalize_entrypoint_content(&existing, entry_path.parent().unwrap_or(entry_path))?; + fs::write(entry_path, normalized) .map_err(|e| format!("写入 MEMORY 入口失败 {}: {e}", entry_path.display())) } @@ -228,12 +809,24 @@ fn append_topic_note(topic_path: &Path, topic_name: &str, note: &str) -> Result< .map_err(|e| format!("写入主题记忆失败 {}: {e}", topic_path.display())) } +fn upsert_topic_note(topic_path: &Path, topic_name: &str, note: &str) -> Result<(), String> { + let display_title = read_markdown_h1(topic_path) + .filter(|title| !title.trim().is_empty()) + .unwrap_or_else(|| topic_name.trim().to_string()); + if let Some(parent) = topic_path.parent() { + fs::create_dir_all(parent) + .map_err(|e| format!("创建主题记忆目录失败 {}: {e}", parent.display()))?; + } + fs::write(topic_path, render_topic_note(&display_title, note)) + .map_err(|e| format!("写入主题记忆失败 {}: {e}", topic_path.display())) +} + fn ensure_entry_link(entry_path: &Path, topic_name: &str, topic_file: &str) -> Result<(), String> { let mut content = if entry_path.is_file() { fs::read_to_string(entry_path) .map_err(|e| format!("读取 MEMORY 入口失败 {}: {e}", entry_path.display()))? } else { - "# Auto Memory Index\n\n".to_string() + render_memdir_entrypoint() }; let marker = format!("({topic_file})"); if !content.contains(&marker) { @@ -246,6 +839,101 @@ fn ensure_entry_link(entry_path: &Path, topic_name: &str, topic_file: &str) -> R .map_err(|e| format!("写入 MEMORY 入口失败 {}: {e}", entry_path.display())) } +fn ensure_memdir_entrypoint(entry_path: &Path) -> Result<(), String> { + if entry_path.is_file() { + return Ok(()); + } + write_scaffold_file(entry_path, &render_memdir_entrypoint(), false).map(|_| ()) +} + +fn ensure_memdir_type_readme(path: &Path, memory_type: MemdirMemoryType) -> Result<(), String> { + if path.is_file() { + return Ok(()); + } + write_scaffold_file(path, &render_memdir_type_readme(memory_type), false).map(|_| ()) +} + +fn write_scaffold_file(path: &Path, content: &str, overwrite: bool) -> Result { + let existed = path.is_file(); + if existed && !overwrite { + return Ok("exists".to_string()); + } + + if let Some(parent) = path.parent() { + fs::create_dir_all(parent) + .map_err(|e| format!("创建目录失败 {}: {e}", parent.display()))?; + } + + fs::write(path, content).map_err(|e| format!("写入脚手架文件失败 {}: {e}", path.display()))?; + Ok(if existed { + "overwritten".to_string() + } else { + "created".to_string() + }) +} + +fn render_memdir_entrypoint() -> String { + [ + "# Lime memdir", + "", + "这个目录承接 Lime 的文件化记忆。优先记录不容易从当前仓库、Git 历史或外部系统直接推导的长期信息。", + "", + "## 入口索引", + "- [用户记忆](user/README.md)", + "- [反馈记忆](feedback/README.md)", + "- [项目记忆](project/README.md)", + "- [参考记忆](reference/README.md)", + "", + "## 写入建议", + "- `user`:用户背景、长期偏好、沟通方式", + "- `feedback`:被反复确认的做事规则、纠偏与成功经验", + "- `project`:项目背景、时间点、动机与协作关系", + "- `reference`:外部文档、工单、监控与知识库入口", + "", + "## 不要写进记忆", + "- 能从代码、规则、目录结构直接读取的事实", + "- Git 历史、一次性调试过程和短期待办", + "- 当前会话里的临时上下文和工作摘录", + "", + "## 读取守则", + "- 用户明确要求回忆、检查或记住时,先读这个目录", + "- 记忆和当前事实冲突时,以最新代码、文件和外部资源为准", + "- Team shadow 由运行时单独维护,这里主要承接可版本化的长期记忆", + "", + ] + .join("\n") +} + +fn render_memdir_type_readme(memory_type: MemdirMemoryType) -> String { + let mut lines = vec![ + format!("# {}", memory_type.display_name()), + "".to_string(), + memory_type.starter_description().to_string(), + "".to_string(), + "## 建议记录".to_string(), + ]; + + for item in memory_type.starter_examples() { + lines.push(format!("- {item}")); + } + + lines.extend(["".to_string(), "## 条目".to_string(), "".to_string()]); + + lines.join("\n") +} + +fn render_topic_note(title: &str, note: &str) -> String { + format!("# {}\n\n{}\n", title.trim(), note.trim()) +} + +fn clip_summary(value: &str, max_chars: usize) -> String { + let normalized = value.trim(); + if normalized.chars().count() <= max_chars { + return normalized.to_string(); + } + normalized.chars().take(max_chars - 1).collect::() + "…" +} + fn normalize_topic_filename(topic: &str) -> String { let lowered = topic.trim().to_lowercase(); let mut slug = String::with_capacity(lowered.len() + 3); @@ -269,6 +957,447 @@ fn normalize_topic_filename(topic: &str) -> String { } } +fn cleanup_entrypoint_file( + path: &Path, + root_dir: &Path, + stats: &mut MemdirCleanupStats, +) -> Result<(), String> { + cleanup_file_with_transform(path, stats, |raw, current_path, cleanup_stats| { + normalize_entrypoint_content_with_stats( + raw, + current_path.parent().unwrap_or(root_dir), + cleanup_stats, + ) + }) +} + +fn cleanup_type_readme_file( + path: &Path, + root_dir: &Path, + memory_type: MemdirMemoryType, + stats: &mut MemdirCleanupStats, +) -> Result<(), String> { + cleanup_file_with_transform(path, stats, |raw, current_path, cleanup_stats| { + normalize_type_readme_content( + raw, + current_path.parent().unwrap_or(root_dir), + memory_type, + cleanup_stats, + ) + }) +} + +fn cleanup_topic_directory( + dir_path: &Path, + entry_path: &Path, + stats: &mut MemdirCleanupStats, +) -> Result<(), String> { + if !dir_path.is_dir() { + return Ok(()); + } + + let mut entries = fs::read_dir(dir_path) + .map_err(|e| format!("读取 memdir 目录失败 {}: {e}", dir_path.display()))? + .filter_map(Result::ok) + .collect::>(); + entries.sort_by_key(|entry| entry.path()); + + for entry in entries { + let path = entry.path(); + let Ok(file_type) = entry.file_type() else { + continue; + }; + if !file_type.is_file() || !is_memdir_index_candidate(&path) { + continue; + } + if path == entry_path { + continue; + } + if path + .file_name() + .and_then(|value| value.to_str()) + .map(|value| value == MEMDIR_README_FILE_NAME) + .unwrap_or(false) + { + continue; + } + cleanup_topic_file(&path, stats)?; + } + + Ok(()) +} + +fn cleanup_topic_file(path: &Path, stats: &mut MemdirCleanupStats) -> Result<(), String> { + cleanup_file_with_transform(path, stats, |raw, current_path, cleanup_stats| { + normalize_topic_content(raw, current_path, cleanup_stats) + }) +} + +fn cleanup_file_with_transform( + path: &Path, + stats: &mut MemdirCleanupStats, + transform: F, +) -> Result<(), String> +where + F: FnOnce(&str, &Path, &mut MemdirCleanupStats) -> Result, +{ + stats.scanned_files += 1; + let raw = fs::read_to_string(path) + .map_err(|e| format!("读取 memdir 文件失败 {}: {e}", path.display()))?; + let normalized = transform(&raw, path, stats)?; + if normalized != raw { + fs::write(path, normalized) + .map_err(|e| format!("写入 memdir 文件失败 {}: {e}", path.display()))?; + stats.updated_files += 1; + } + Ok(()) +} + +fn normalize_entrypoint_content(raw: &str, base_dir: &Path) -> Result { + normalize_entrypoint_content_with_stats(raw, base_dir, &mut MemdirCleanupStats::default()) +} + +fn normalize_entrypoint_content_with_stats( + raw: &str, + base_dir: &Path, + stats: &mut MemdirCleanupStats, +) -> Result { + let mut static_lines = Vec::new(); + let mut timestamped_notes = Vec::new(); + let mut seen_links = HashSet::new(); + + for line in raw.lines() { + if let Some((link_target, exists)) = resolve_existing_memdir_link(line, base_dir) { + if !exists { + stats.dropped_missing_links += 1; + continue; + } + if !seen_links.insert(link_target) { + stats.removed_duplicate_links += 1; + continue; + } + static_lines.push(line.to_string()); + continue; + } + if let Some(note_line) = parse_timestamped_note_line(line) { + timestamped_notes.push(note_line); + continue; + } + static_lines.push(line.to_string()); + } + + let kept_notes = dedupe_and_trim_timestamped_note_lines(timestamped_notes, stats); + if !kept_notes.is_empty() { + trim_trailing_blank_lines(&mut static_lines); + if !static_lines.is_empty() { + static_lines.push(String::new()); + } + static_lines.extend(kept_notes.into_iter().map(|note| note.render())); + } + + Ok(render_markdown_lines(static_lines)) +} + +fn normalize_type_readme_content( + raw: &str, + base_dir: &Path, + memory_type: MemdirMemoryType, + stats: &mut MemdirCleanupStats, +) -> Result { + let (body_lines, sections) = split_timestamped_sections(raw); + let normalized_body = normalize_index_body_lines( + body_lines, + base_dir, + stats, + Some(render_memdir_type_readme(memory_type)), + )?; + let kept_sections = dedupe_and_trim_sections(sections, MEMDIR_TYPE_README_SECTION_LIMIT, stats); + let mut lines: Vec = normalized_body + .lines() + .map(|line| line.to_string()) + .collect(); + if !kept_sections.is_empty() { + trim_trailing_blank_lines(&mut lines); + if !lines.is_empty() { + lines.push(String::new()); + } + for (index, section) in kept_sections.into_iter().enumerate() { + if index > 0 { + lines.push(String::new()); + } + lines.push(format!("## {}", section.timestamp)); + lines.push(String::new()); + lines.extend(section.content.lines().map(|line| line.to_string())); + } + } + Ok(render_markdown_lines(lines)) +} + +fn normalize_topic_content( + raw: &str, + path: &Path, + stats: &mut MemdirCleanupStats, +) -> Result { + let (_, sections) = split_timestamped_sections(raw); + if !sections.is_empty() { + let latest = sections + .last() + .map(|section| section.content.trim()) + .filter(|content| !content.is_empty()) + .unwrap_or(""); + let title = resolve_topic_display_title(raw, path); + let normalized = if latest.is_empty() { + format!("# {}\n", title) + } else { + render_topic_note(&title, latest) + }; + if normalized != raw { + stats.curated_topic_files += 1; + } + return Ok(normalized); + } + + let title = resolve_topic_display_title(raw, path); + let content_without_title = extract_topic_body_without_heading(raw); + if content_without_title.trim().is_empty() { + return Ok(format!("# {}\n", title)); + } + + let mut lines = vec![format!("# {}", title), String::new()]; + lines.extend(content_without_title.lines().map(|line| line.to_string())); + Ok(render_markdown_lines(lines)) +} + +fn normalize_index_body_lines( + lines: Vec, + base_dir: &Path, + stats: &mut MemdirCleanupStats, + fallback_content: Option, +) -> Result { + let mut output = Vec::new(); + let mut seen_links = HashSet::new(); + for line in lines { + if let Some((link_target, exists)) = resolve_existing_memdir_link(&line, base_dir) { + if !exists { + stats.dropped_missing_links += 1; + continue; + } + if !seen_links.insert(link_target) { + stats.removed_duplicate_links += 1; + continue; + } + } + output.push(line); + } + trim_trailing_blank_lines(&mut output); + let rendered = render_markdown_lines(output); + if rendered.trim().is_empty() { + return Ok(fallback_content.unwrap_or_default()); + } + Ok(rendered) +} + +fn resolve_existing_memdir_link(line: &str, base_dir: &Path) -> Option<(String, bool)> { + let Some((_, raw_target)) = parse_markdown_link(line.trim()) else { + return None; + }; + let target = raw_target.trim(); + if target.is_empty() + || target.starts_with('#') + || target.contains("://") + || target.contains("..") + || Path::new(target).is_absolute() + { + return None; + } + let path = base_dir.join(target); + let relative_path = target.replace('\\', "/"); + Some((relative_path, path.exists())) +} + +fn split_timestamped_sections(raw: &str) -> (Vec, Vec) { + let mut body_lines = Vec::new(); + let mut sections = Vec::new(); + let mut current_timestamp: Option = None; + let mut current_lines = Vec::new(); + + for line in raw.lines() { + if let Some(timestamp) = parse_timestamp_heading(line) { + if let Some(previous_timestamp) = current_timestamp.take() { + sections.push(TimestampedSection { + timestamp: previous_timestamp, + content: current_lines.join("\n").trim().to_string(), + }); + current_lines.clear(); + } + current_timestamp = Some(timestamp); + continue; + } + + if current_timestamp.is_some() { + current_lines.push(line.to_string()); + } else { + body_lines.push(line.to_string()); + } + } + + if let Some(timestamp) = current_timestamp { + sections.push(TimestampedSection { + timestamp, + content: current_lines.join("\n").trim().to_string(), + }); + } + + (body_lines, sections) +} + +fn parse_timestamp_heading(line: &str) -> Option { + let trimmed = line.trim(); + let value = trimmed.strip_prefix("## ")?; + NaiveDateTime::parse_from_str(value.trim(), "%Y-%m-%d %H:%M:%S") + .ok() + .map(|_| value.trim().to_string()) +} + +fn parse_timestamped_note_line(line: &str) -> Option { + let trimmed = line.trim(); + let remainder = trimmed.strip_prefix("- [")?; + let closing = remainder.find("] ")?; + let timestamp = &remainder[..closing]; + NaiveDateTime::parse_from_str(timestamp.trim(), "%Y-%m-%d %H:%M:%S").ok()?; + let note = remainder[closing + 2..].trim(); + if note.is_empty() { + return None; + } + Some(TimestampedNoteLine { + timestamp: timestamp.trim().to_string(), + note: note.to_string(), + }) +} + +fn dedupe_and_trim_timestamped_note_lines( + notes: Vec, + stats: &mut MemdirCleanupStats, +) -> Vec { + let original_len = notes.len(); + let mut seen = HashSet::new(); + let mut kept = Vec::new(); + for note in notes.into_iter().rev() { + if seen.insert(note.note.clone()) { + kept.push(note); + } + } + kept.reverse(); + stats.removed_duplicate_notes += original_len.saturating_sub(kept.len()) as u32; + if kept.len() > MEMDIR_ENTRY_NOTE_LIMIT { + stats.trimmed_notes += kept.len().saturating_sub(MEMDIR_ENTRY_NOTE_LIMIT) as u32; + kept = kept.split_off(kept.len() - MEMDIR_ENTRY_NOTE_LIMIT); + } + kept +} + +fn dedupe_and_trim_sections( + sections: Vec, + limit: usize, + stats: &mut MemdirCleanupStats, +) -> Vec { + let original_len = sections.len(); + let mut seen = HashSet::new(); + let mut kept = Vec::new(); + for section in sections.into_iter().rev() { + if section.content.trim().is_empty() { + stats.trimmed_notes += 1; + continue; + } + if seen.insert(section.content.clone()) { + kept.push(section); + } + } + kept.reverse(); + stats.removed_duplicate_notes += original_len.saturating_sub(kept.len()) as u32; + if kept.len() > limit { + stats.trimmed_notes += kept.len().saturating_sub(limit) as u32; + kept = kept.split_off(kept.len() - limit); + } + kept +} + +fn render_markdown_lines(lines: Vec) -> String { + let mut output = Vec::new(); + let mut previous_blank = false; + for line in lines { + let is_blank = line.trim().is_empty(); + if is_blank && previous_blank { + continue; + } + output.push(if is_blank { + String::new() + } else { + line.trim_end().to_string() + }); + previous_blank = is_blank; + } + trim_trailing_blank_lines(&mut output); + if output.is_empty() { + String::new() + } else { + format!("{}\n", output.join("\n")) + } +} + +fn trim_trailing_blank_lines(lines: &mut Vec) { + while lines + .last() + .map(|line| line.trim().is_empty()) + .unwrap_or(false) + { + lines.pop(); + } +} + +fn resolve_topic_display_title(raw: &str, path: &Path) -> String { + read_markdown_h1_from_raw(raw) + .filter(|title| !title.trim().is_empty()) + .or_else(|| { + path.file_stem() + .and_then(|value| value.to_str()) + .map(str::trim) + .filter(|value| !value.is_empty()) + .map(ToString::to_string) + }) + .unwrap_or_else(|| "记忆条目".to_string()) +} + +fn read_markdown_h1(path: &Path) -> Option { + let raw = fs::read_to_string(path).ok()?; + read_markdown_h1_from_raw(&raw) +} + +fn read_markdown_h1_from_raw(raw: &str) -> Option { + raw.lines() + .find_map(|line| line.trim().strip_prefix("# ")) + .map(|title| title.trim().to_string()) +} + +fn extract_topic_body_without_heading(raw: &str) -> String { + let mut lines = raw.lines(); + if lines + .next() + .map(|line| line.trim().starts_with("# ")) + .unwrap_or(false) + { + lines.collect::>().join("\n").trim().to_string() + } else { + raw.trim().to_string() + } +} + +impl TimestampedNoteLine { + fn render(self) -> String { + format!("- [{}] {}", self.timestamp, self.note) + } +} + fn expand_path(path: &str, working_dir: Option<&Path>) -> PathBuf { if path.starts_with("~/") { if let Some(home) = dirs::home_dir() { @@ -317,8 +1446,8 @@ mod tests { cfg.auto.entrypoint = "MEMORY.md".to_string(); cfg.auto.enabled = true; - let result = - update_auto_memory_note(&cfg, tmp.path(), "记下这个偏好", None).expect("update note"); + let result = update_auto_memory_note(&cfg, tmp.path(), "记下这个偏好", None, None) + .expect("update note"); assert!(result.entry_exists); assert!(!result.preview_lines.is_empty()); } @@ -331,11 +1460,190 @@ mod tests { cfg.auto.entrypoint = "MEMORY.md".to_string(); cfg.auto.enabled = true; - let result = update_auto_memory_note(&cfg, tmp.path(), "pnpm only", Some("workflow")) + let result = update_auto_memory_note(&cfg, tmp.path(), "pnpm only", Some("workflow"), None) .expect("update topic note"); assert!(result .items .iter() .any(|item| item.relative_path == "workflow.md")); } + + #[test] + fn should_scaffold_memdir_bundle() { + let tmp = TempDir::new().expect("create temp dir"); + let mut cfg = MemoryConfig::default(); + cfg.auto.root_dir = Some(tmp.path().to_string_lossy().to_string()); + cfg.auto.entrypoint = "MEMORY.md".to_string(); + cfg.auto.enabled = true; + + let result = scaffold_memdir(&cfg, tmp.path(), false).expect("scaffold memdir"); + assert_eq!(result.files.len(), 5); + assert!(tmp.path().join("MEMORY.md").is_file()); + assert!(tmp.path().join("project/README.md").is_file()); + } + + #[test] + fn should_write_typed_memdir_note() { + let tmp = TempDir::new().expect("create temp dir"); + let mut cfg = MemoryConfig::default(); + cfg.auto.root_dir = Some(tmp.path().to_string_lossy().to_string()); + cfg.auto.entrypoint = "MEMORY.md".to_string(); + cfg.auto.enabled = true; + + let result = update_auto_memory_note( + &cfg, + tmp.path(), + "Why:\n- 用户多次确认先给结论可以减少沟通往返。\n\nHow to apply:\n- 每次先写结论,再补证据和风险。", + Some("collaboration"), + Some(MemdirMemoryType::Feedback), + ) + .expect("update typed note"); + assert!(tmp.path().join("feedback/README.md").is_file()); + assert!(tmp.path().join("feedback/collaboration.md").is_file()); + assert!(result + .items + .iter() + .any(|item| item.relative_path == "feedback/README.md")); + assert!(result + .items + .iter() + .any(|item| item.relative_path == "feedback/collaboration.md" + && item.memory_type == Some(MemdirMemoryType::Feedback) + && item.provider.as_deref() == Some(MEMDIR_PROVIDER_NAME) + && item.updated_at.is_some())); + } + + #[test] + fn should_upsert_typed_topic_note_instead_of_appending_history() { + let tmp = TempDir::new().expect("create temp dir"); + let mut cfg = MemoryConfig::default(); + cfg.auto.root_dir = Some(tmp.path().to_string_lossy().to_string()); + cfg.auto.entrypoint = "MEMORY.md".to_string(); + cfg.auto.enabled = true; + + update_auto_memory_note( + &cfg, + tmp.path(), + "Why:\n- 旧规则会造成锁文件漂移。\n\nHow to apply:\n- 一律使用 pnpm。", + Some("workflow"), + Some(MemdirMemoryType::Feedback), + ) + .expect("write first note"); + + update_auto_memory_note( + &cfg, + tmp.path(), + "Why:\n- 新规则已经被团队再次确认。\n\nHow to apply:\n- 继续使用 pnpm,并在 CI 拒绝 npm lock。", + Some("workflow"), + Some(MemdirMemoryType::Feedback), + ) + .expect("write second note"); + + let raw = fs::read_to_string(tmp.path().join("feedback/workflow.md")) + .expect("read workflow topic"); + assert!(raw.contains("新规则已经被团队再次确认")); + assert!(!raw.contains("旧规则会造成锁文件漂移")); + assert_eq!(raw.matches("# workflow").count(), 1); + assert!(!raw.contains("## 20")); + } + + #[test] + fn should_cleanup_memdir_and_trim_duplicate_entry_notes() { + let tmp = TempDir::new().expect("create temp dir"); + let mut cfg = MemoryConfig::default(); + cfg.auto.root_dir = Some(tmp.path().to_string_lossy().to_string()); + cfg.auto.entrypoint = "MEMORY.md".to_string(); + cfg.auto.enabled = true; + + scaffold_memdir(&cfg, tmp.path(), false).expect("scaffold memdir"); + fs::write( + tmp.path().join("MEMORY.md"), + [ + "# Lime memdir", + "", + "## 入口索引", + "- [反馈记忆](feedback/README.md)", + "- [反馈记忆](feedback/README.md)", + "", + "- [2026-04-15 10:00:00] 保持 pnpm only", + "- [2026-04-15 10:05:00] 保持 pnpm only", + "", + ] + .join("\n"), + ) + .expect("write entrypoint"); + fs::write( + tmp.path().join("feedback/workflow.md"), + [ + "# workflow", + "", + "## 2026-04-15 09:00:00", + "", + "Why:\n- 旧规则", + "", + "## 2026-04-15 11:00:00", + "", + "Why:\n- 新规则\n\nHow to apply:\n- 使用 pnpm", + "", + ] + .join("\n"), + ) + .expect("write workflow topic"); + + let result = cleanup_memdir(&cfg, tmp.path()).expect("cleanup memdir"); + let entry_raw = + fs::read_to_string(tmp.path().join("MEMORY.md")).expect("read normalized entrypoint"); + let topic_raw = fs::read_to_string(tmp.path().join("feedback/workflow.md")) + .expect("read normalized topic"); + + assert!(result.updated_files >= 2); + assert!(result.removed_duplicate_links >= 1); + assert!(result.removed_duplicate_notes >= 1); + assert!(result.curated_topic_files >= 1); + assert_eq!(entry_raw.matches("(feedback/README.md)").count(), 1); + assert_eq!(entry_raw.matches("保持 pnpm only").count(), 1); + assert!(topic_raw.contains("新规则")); + assert!(!topic_raw.contains("旧规则")); + assert!(!topic_raw.contains("## 2026-04-15")); + } + + #[test] + fn should_reject_unstructured_feedback_memdir_note() { + let tmp = TempDir::new().expect("create temp dir"); + let mut cfg = MemoryConfig::default(); + cfg.auto.root_dir = Some(tmp.path().to_string_lossy().to_string()); + cfg.auto.entrypoint = "MEMORY.md".to_string(); + cfg.auto.enabled = true; + + let error = update_auto_memory_note( + &cfg, + tmp.path(), + "保持 pnpm only", + Some("workflow"), + Some(MemdirMemoryType::Feedback), + ) + .expect_err("feedback note should be rejected"); + + assert!(error.contains("Why:")); + } + + #[test] + fn should_reject_project_memdir_note_with_relative_dates() { + let tmp = TempDir::new().expect("create temp dir"); + let mut cfg = MemoryConfig::default(); + cfg.auto.root_dir = Some(tmp.path().to_string_lossy().to_string()); + cfg.auto.entrypoint = "MEMORY.md".to_string(); + cfg.auto.enabled = true; + + let error = update_auto_memory_note( + &cfg, + tmp.path(), + "Why:\n- 冻结窗口影响发版路径。\n\nHow to apply:\n- 明天开始不要再改协议。", + Some("release-window"), + Some(MemdirMemoryType::Project), + ) + .expect_err("project note with relative date should be rejected"); + + assert!(error.contains("绝对日期")); + } } diff --git a/src-tauri/src/services/automation_service/mod.rs b/src-tauri/src/services/automation_service/mod.rs index 072247b7a..527d20c43 100644 --- a/src-tauri/src/services/automation_service/mod.rs +++ b/src-tauri/src/services/automation_service/mod.rs @@ -1128,6 +1128,11 @@ pub(super) fn append_payload_tracking_metadata(metadata: &mut Map }) { metadata.insert("service_skill".to_string(), service_skill.clone()); } + if let Some(sceneapp) = request_metadata + .and_then(|value| value.get("sceneapp").or_else(|| value.get("sceneApp"))) + { + metadata.insert("sceneapp".to_string(), sceneapp.clone()); + } let harness = request_metadata .and_then(|value| value.get("harness")) diff --git a/src-tauri/src/services/execution_tracker_service.rs b/src-tauri/src/services/execution_tracker_service.rs index 0a3bf9f0f..a44eeb5e1 100644 --- a/src-tauri/src/services/execution_tracker_service.rs +++ b/src-tauri/src/services/execution_tracker_service.rs @@ -64,6 +64,10 @@ impl ExecutionTracker { } } + pub fn db(&self) -> &DbConnection { + &self.db + } + pub fn start( &self, source: RunSource, diff --git a/src-tauri/src/services/memory_source_resolver_service.rs b/src-tauri/src/services/memory_source_resolver_service.rs index bf353d166..528cf961a 100644 --- a/src-tauri/src/services/memory_source_resolver_service.rs +++ b/src-tauri/src/services/memory_source_resolver_service.rs @@ -2,9 +2,12 @@ //! //! 将配置中的记忆来源(AGENTS、规则、自动记忆等)统一解析为可观察结果与可注入提示词片段。 -use crate::services::auto_memory_service::{get_auto_memory_index, resolve_auto_memory_root}; +use crate::services::auto_memory_service::{ + get_auto_memory_index, infer_memdir_memory_type, resolve_auto_memory_root, MemdirMemoryType, +}; use crate::services::memory_import_parser_service::{parse_memory_file, MemoryImportParseOptions}; use crate::services::memory_rules_loader_service::load_rules; +use chrono::{DateTime, Utc}; use lime_agent::{ resolve_durable_memory_root, to_virtual_memory_path, DURABLE_MEMORY_VIRTUAL_ROOT, }; @@ -19,12 +22,26 @@ use std::path::{Path, PathBuf}; const DURABLE_MEMORY_MAX_DEPTH: usize = 4; const DURABLE_MEMORY_MAX_FILES: usize = 64; +const AUTO_MEMORY_LINKED_ITEM_LIMIT: usize = 8; +const AUTO_MEMORY_LINKED_ITEM_LINE_LIMIT: usize = 40; /// 单个来源解析结果 #[derive(Debug, Clone, Serialize, Deserialize, PartialEq)] pub struct EffectiveMemorySource { /// 来源类型:managed_policy/project/user/local/rule/auto_memory/additional pub kind: String, + /// 归属来源桶:managed/user/project/local/rules/auto/durable/additional + #[serde(skip_serializing_if = "Option::is_none")] + pub source_bucket: Option, + /// 当前命中的 provider 标识;memdir 主链会显式写入 `memdir` + #[serde(skip_serializing_if = "Option::is_none")] + pub provider: Option, + /// memdir 条目类型 + #[serde(skip_serializing_if = "Option::is_none")] + pub memory_type: Option, + /// 最近更新时间 + #[serde(skip_serializing_if = "Option::is_none")] + pub updated_at: Option, /// 来源路径 pub path: String, /// 文件或目录是否存在 @@ -322,6 +339,67 @@ pub fn build_memory_sources_prompt_with_options( } } +fn build_effective_memory_source( + kind: &str, + path: String, + exists: bool, + loaded: bool, + line_count: u32, + import_count: u32, + warnings: Vec, + preview: Option, + updated_at: Option, + memory_type: Option, +) -> EffectiveMemorySource { + EffectiveMemorySource { + kind: kind.to_string(), + source_bucket: source_bucket_for_kind(kind).map(str::to_string), + provider: provider_for_kind(kind).map(str::to_string), + memory_type, + updated_at, + path, + exists, + loaded, + line_count, + import_count, + warnings, + preview, + } +} + +fn source_bucket_for_kind(kind: &str) -> Option<&'static str> { + match kind { + "managed_policy" => Some("managed"), + "user_memory" => Some("user"), + "project_memory" | "workspace_agents" => Some("project"), + "project_local" => Some("local"), + "project_rule" | "project_rules" => Some("rules"), + "auto_memory" | "auto_memory_item" => Some("auto"), + "durable_memory" => Some("durable"), + "additional_memory" => Some("additional"), + _ => None, + } +} + +fn provider_for_kind(kind: &str) -> Option<&'static str> { + match kind { + "auto_memory" | "auto_memory_item" => Some("memdir"), + _ => None, + } +} + +fn memory_type_for_kind(kind: &str, path: &str) -> Option { + match kind { + "auto_memory" | "auto_memory_item" => infer_memdir_memory_type(path), + _ => None, + } +} + +fn read_path_updated_at(path: &Path) -> Option { + let modified = fs::metadata(path).ok()?.modified().ok()?; + Some(DateTime::::from(modified).timestamp_millis()) +} + fn runtime_agent_overlap_paths(working_dir: &Path) -> HashSet { let mut paths = HashSet::new(); paths.insert(normalize_path(&app_paths::best_effort_user_memory_path())); @@ -387,16 +465,18 @@ fn resolve_file_source_with_display_path( if !include_missing { return; } - output.push(EffectiveMemorySource { - kind: kind.to_string(), - path: display_path, - exists: false, - loaded: false, - line_count: 0, - import_count: 0, - warnings: Vec::new(), - preview: None, - }); + output.push(build_effective_memory_source( + kind, + display_path, + false, + false, + 0, + 0, + Vec::new(), + None, + None, + None, + )); return; } @@ -416,16 +496,18 @@ fn resolve_file_source_with_display_path( 0 }; - output.push(EffectiveMemorySource { - kind: kind.to_string(), - path: display_path.clone(), - exists: true, + output.push(build_effective_memory_source( + kind, + display_path.clone(), + true, loaded, line_count, - import_count: parsed.imported_files.len() as u32, - warnings: parsed.warnings.clone(), + parsed.imported_files.len() as u32, + parsed.warnings.clone(), preview, - }); + read_path_updated_at(&normalized), + memory_type_for_kind(kind, display_path.as_str()), + )); if loaded { prompt_segments.push(format!("### {} ({})\n{}", kind, display_path, content)); @@ -437,16 +519,18 @@ fn resolve_file_source_with_display_path( } } Err(err) => { - output.push(EffectiveMemorySource { - kind: kind.to_string(), - path: display_path, - exists: true, - loaded: false, - line_count: 0, - import_count: 0, - warnings: vec![err], - preview: None, - }); + output.push(build_effective_memory_source( + kind, + display_path, + true, + false, + 0, + 0, + vec![err], + None, + read_path_updated_at(&normalized), + memory_type_for_kind(kind, normalized.to_string_lossy().as_ref()), + )); } } } @@ -462,16 +546,18 @@ fn resolve_durable_memory_sources( let root = match resolve_durable_memory_root() { Ok(path) => path, Err(err) => { - output.push(EffectiveMemorySource { - kind: "durable_memory".to_string(), - path: DURABLE_MEMORY_VIRTUAL_ROOT.to_string(), - exists: false, - loaded: false, - line_count: 0, - import_count: 0, - warnings: vec![format!("解析 durable memory 根目录失败: {err}")], - preview: None, - }); + output.push(build_effective_memory_source( + "durable_memory", + DURABLE_MEMORY_VIRTUAL_ROOT.to_string(), + false, + false, + 0, + 0, + vec![format!("解析 durable memory 根目录失败: {err}")], + None, + None, + None, + )); return; } }; @@ -483,16 +569,18 @@ fn resolve_durable_memory_sources( ) { Ok(files) => files, Err(err) => { - output.push(EffectiveMemorySource { - kind: "durable_memory".to_string(), - path: DURABLE_MEMORY_VIRTUAL_ROOT.to_string(), - exists: root.exists(), - loaded: false, - line_count: 0, - import_count: 0, - warnings: vec![format!("扫描 durable memory 文件失败: {err}")], - preview: None, - }); + output.push(build_effective_memory_source( + "durable_memory", + DURABLE_MEMORY_VIRTUAL_ROOT.to_string(), + root.exists(), + false, + 0, + 0, + vec![format!("扫描 durable memory 文件失败: {err}")], + None, + read_path_updated_at(&root), + None, + )); return; } }; @@ -503,16 +591,18 @@ fn resolve_durable_memory_sources( } else { vec!["记忆功能已关闭".to_string()] }; - output.push(EffectiveMemorySource { - kind: "durable_memory".to_string(), - path: DURABLE_MEMORY_VIRTUAL_ROOT.to_string(), - exists: root.exists(), - loaded: false, - line_count: 0, - import_count: 0, + output.push(build_effective_memory_source( + "durable_memory", + DURABLE_MEMORY_VIRTUAL_ROOT.to_string(), + root.exists(), + false, + 0, + 0, warnings, - preview: None, - }); + None, + read_path_updated_at(&root), + None, + )); return; } @@ -554,16 +644,18 @@ fn resolve_rule_sources( if !include_missing { return; } - output.push(EffectiveMemorySource { - kind: "project_rules".to_string(), - path: normalized.to_string_lossy().to_string(), - exists: false, - loaded: false, - line_count: 0, - import_count: 0, - warnings: Vec::new(), - preview: None, - }); + output.push(build_effective_memory_source( + "project_rules", + normalized.to_string_lossy().to_string(), + false, + false, + 0, + 0, + Vec::new(), + None, + None, + None, + )); return; } @@ -572,16 +664,18 @@ fn resolve_rule_sources( if !include_missing { return; } - output.push(EffectiveMemorySource { - kind: "project_rules".to_string(), - path: normalized.to_string_lossy().to_string(), - exists: true, - loaded: false, - line_count: 0, - import_count: 0, - warnings: vec!["规则目录存在,但未发现可用规则".to_string()], - preview: None, - }); + output.push(build_effective_memory_source( + "project_rules", + normalized.to_string_lossy().to_string(), + true, + false, + 0, + 0, + vec!["规则目录存在,但未发现可用规则".to_string()], + None, + read_path_updated_at(&normalized), + None, + )); return; } @@ -599,24 +693,26 @@ fn resolve_rule_sources( rule.path_patterns.join(", ") )); } - output.push(EffectiveMemorySource { - kind: "project_rule".to_string(), - path: normalized_rule.to_string_lossy().to_string(), - exists: true, + output.push(build_effective_memory_source( + "project_rule", + normalized_rule.to_string_lossy().to_string(), + true, loaded, - line_count: if loaded { + if loaded { rule.content.lines().count() as u32 } else { 0 }, - import_count: 0, + 0, warnings, - preview: if loaded { + if loaded { Some(clip_text(&rule.content, 300)) } else { None }, - }); + read_path_updated_at(&normalized_rule), + None, + )); if loaded { prompt_segments.push(format!( @@ -649,7 +745,8 @@ fn resolve_auto_memory_source( } else { entry_name }; - let entry_path = normalize_path(&auto_root.join(entry_name)); + let entry_display_path = auto_root.join(entry_name); + let entry_path = normalize_path(&entry_display_path); if !seen.insert(entry_path.clone()) { return; } @@ -658,53 +755,155 @@ fn resolve_auto_memory_source( match index { Ok(idx) => { let loaded = idx.entry_exists && !idx.preview_lines.is_empty(); - output.push(EffectiveMemorySource { - kind: "auto_memory".to_string(), - path: entry_path.to_string_lossy().to_string(), - exists: idx.entry_exists, + output.push(build_effective_memory_source( + "auto_memory", + entry_display_path.to_string_lossy().to_string(), + idx.entry_exists, loaded, - line_count: idx.total_lines, - import_count: idx.items.len() as u32, - warnings: if !memory_config.auto.enabled { + idx.total_lines, + idx.items.len() as u32, + if !memory_config.auto.enabled { vec!["自动记忆已关闭".to_string()] } else { Vec::new() }, - preview: if loaded { + if loaded { Some(clip_text(&idx.preview_lines.join("\n"), 300)) } else { None }, - }); + read_path_updated_at(&entry_path), + None, + )); if loaded { prompt_segments.push(format!( "### auto_memory ({})\n{}", - entry_path.display(), + entry_display_path.display(), idx.preview_lines.join("\n") )); prompt_sources.push(MemoryPromptSegment { title: "auto_memory".to_string(), - path: entry_path.to_string_lossy().to_string(), + path: entry_display_path.to_string_lossy().to_string(), content: idx.preview_lines.join("\n"), }); + + let sorted_items = sort_auto_memory_prompt_items(&idx.items); + for item in sorted_items.iter().take(AUTO_MEMORY_LINKED_ITEM_LIMIT) { + let item_display_path = auto_root.join(&item.relative_path); + let item_path = normalize_path(&item_display_path); + if !seen.insert(item_path.clone()) { + continue; + } + + let Ok(content) = fs::read_to_string(&item_path) else { + output.push(build_effective_memory_source( + "auto_memory_item", + item_display_path.to_string_lossy().to_string(), + item.exists, + false, + 0, + 0, + vec![format!( + "读取 memdir 条目失败: {}", + item_display_path.display() + )], + None, + item.updated_at, + item.memory_type, + )); + continue; + }; + + let preview_lines = content + .lines() + .take(AUTO_MEMORY_LINKED_ITEM_LINE_LIMIT) + .map(|line| line.to_string()) + .collect::>(); + let item_loaded = !preview_lines.is_empty(); + + output.push(build_effective_memory_source( + "auto_memory_item", + item_display_path.to_string_lossy().to_string(), + item.exists, + item_loaded, + content.lines().count() as u32, + 0, + Vec::new(), + if item_loaded { + Some(clip_text(&preview_lines.join("\n"), 300)) + } else { + None + }, + item.updated_at.or_else(|| read_path_updated_at(&item_path)), + item.memory_type, + )); + + if item_loaded { + prompt_segments.push(format!( + "### auto_memory_item ({})\n{}", + item_display_path.display(), + preview_lines.join("\n") + )); + prompt_sources.push(MemoryPromptSegment { + title: format!("auto_memory_item: {}", item.title), + path: item_display_path.to_string_lossy().to_string(), + content: preview_lines.join("\n"), + }); + } + } } } Err(err) => { - output.push(EffectiveMemorySource { - kind: "auto_memory".to_string(), - path: entry_path.to_string_lossy().to_string(), - exists: entry_path.exists(), - loaded: false, - line_count: 0, - import_count: 0, - warnings: vec![err], - preview: None, - }); + output.push(build_effective_memory_source( + "auto_memory", + entry_display_path.to_string_lossy().to_string(), + entry_path.exists(), + false, + 0, + 0, + vec![err], + None, + read_path_updated_at(&entry_path), + None, + )); } } } +fn sort_auto_memory_prompt_items( + items: &[crate::services::auto_memory_service::AutoMemoryIndexItem], +) -> Vec { + let mut sorted = items.to_vec(); + sorted.sort_by(|left, right| { + auto_memory_prompt_item_rank(left) + .cmp(&auto_memory_prompt_item_rank(right)) + .then_with(|| { + right + .updated_at + .unwrap_or_default() + .cmp(&left.updated_at.unwrap_or_default()) + }) + .then_with(|| left.relative_path.cmp(&right.relative_path)) + }); + sorted +} + +fn auto_memory_prompt_item_rank( + item: &crate::services::auto_memory_service::AutoMemoryIndexItem, +) -> usize { + let is_readme = item.relative_path.ends_with("/README.md") + || item.relative_path.ends_with("/README.markdown") + || item.relative_path.ends_with("/README.mdx") + || item.relative_path.eq_ignore_ascii_case("README.md"); + match (item.memory_type.is_some(), is_readme) { + (true, false) => 0, + (true, true) => 1, + (false, false) => 2, + (false, true) => 3, + } +} + fn collect_durable_memory_files( root: &Path, max_depth: usize, @@ -1059,6 +1258,106 @@ mod tests { .any(|segment| segment.contains("/memories/MEMORY.md"))); } + #[test] + fn should_resolve_memdir_topic_items_with_provider_metadata() { + let _env_lock = durable_memory_env_lock().lock().expect("lock env"); + let tmp = TempDir::new().expect("create temp dir"); + let empty_durable_root = tmp.path().join("durable-empty"); + fs::create_dir_all(&empty_durable_root).expect("create empty durable root"); + let _durable_guard = DurableMemoryEnvGuard::set(&empty_durable_root); + + let mut cfg = Config::default(); + cfg.memory.enabled = true; + cfg.memory.auto.enabled = true; + cfg.memory.auto.root_dir = Some(tmp.path().join("memdir").to_string_lossy().to_string()); + cfg.memory.auto.entrypoint = "MEMORY.md".to_string(); + cfg.memory.sources.managed_policy_path = Some("missing-managed.md".to_string()); + cfg.memory.sources.user_memory_path = Some("missing-user.md".to_string()); + cfg.memory.sources.project_memory_paths = Vec::new(); + cfg.memory.sources.project_rule_dirs = Vec::new(); + + crate::services::auto_memory_service::scaffold_memdir(&cfg.memory, tmp.path(), false) + .expect("scaffold memdir"); + crate::services::auto_memory_service::update_auto_memory_note( + &cfg.memory, + tmp.path(), + "Why:\n- 团队多次确认 pnpm only 可以避免锁文件漂移。\n\nHow to apply:\n- 涉及依赖安装时默认使用 pnpm,并保留锁文件。", + Some("workflow"), + Some(MemdirMemoryType::Feedback), + ) + .expect("write feedback note"); + + let resolved = resolve_effective_sources(&cfg, tmp.path(), None); + let auto_root = tmp.path().join("memdir"); + let entry_path = auto_root.join("MEMORY.md").to_string_lossy().to_string(); + let topic_path = auto_root + .join("feedback/workflow.md") + .to_string_lossy() + .to_string(); + + assert!(resolved.response.sources.iter().any(|source| { + source.kind == "auto_memory" + && source.source_bucket.as_deref() == Some("auto") + && source.provider.as_deref() == Some("memdir") + && source.updated_at.is_some() + && source.path == entry_path + })); + + assert!(resolved.response.sources.iter().any(|source| { + source.kind == "auto_memory_item" + && source.path == topic_path + && source.loaded + && source.source_bucket.as_deref() == Some("auto") + && source.provider.as_deref() == Some("memdir") + && source.memory_type == Some(MemdirMemoryType::Feedback) + && source.updated_at.is_some() + })); + + assert!(resolved + .prompt_segments + .iter() + .any(|segment| segment.contains("pnpm only"))); + } + + #[test] + fn should_prioritize_specific_memdir_topic_before_type_readme_in_prompt_sources() { + let _env_lock = durable_memory_env_lock().lock().expect("lock env"); + let tmp = TempDir::new().expect("create temp dir"); + let empty_durable_root = tmp.path().join("durable-empty"); + fs::create_dir_all(&empty_durable_root).expect("create empty durable root"); + let _durable_guard = DurableMemoryEnvGuard::set(&empty_durable_root); + + let mut cfg = Config::default(); + cfg.memory.enabled = true; + cfg.memory.auto.enabled = true; + cfg.memory.auto.root_dir = Some(tmp.path().join("memdir").to_string_lossy().to_string()); + cfg.memory.auto.entrypoint = "MEMORY.md".to_string(); + cfg.memory.sources.managed_policy_path = Some("missing-managed.md".to_string()); + cfg.memory.sources.user_memory_path = Some("missing-user.md".to_string()); + cfg.memory.sources.project_memory_paths = Vec::new(); + cfg.memory.sources.project_rule_dirs = Vec::new(); + + crate::services::auto_memory_service::scaffold_memdir(&cfg.memory, tmp.path(), false) + .expect("scaffold memdir"); + crate::services::auto_memory_service::update_auto_memory_note( + &cfg.memory, + tmp.path(), + "Why:\n- 团队多次确认 pnpm only 可以避免锁文件漂移。\n\nHow to apply:\n- 涉及依赖安装时默认使用 pnpm,并保留锁文件。", + Some("workflow"), + Some(MemdirMemoryType::Feedback), + ) + .expect("write feedback note"); + + let resolved = resolve_effective_sources(&cfg, tmp.path(), None); + let first_item = resolved + .prompt_sources + .iter() + .find(|source| source.title.starts_with("auto_memory_item:")) + .expect("find first auto memory item"); + + assert!(first_item.path.ends_with("feedback/workflow.md")); + } + #[test] fn workspace_local_instruction_path_should_not_walk_ancestors() { let _env_lock = durable_memory_env_lock().lock().expect("lock env"); diff --git a/src-tauri/src/services/mod.rs b/src-tauri/src/services/mod.rs index 8daec25e2..fc0a3b439 100644 --- a/src-tauri/src/services/mod.rs +++ b/src-tauri/src/services/mod.rs @@ -32,6 +32,7 @@ pub mod openclaw_service; pub mod runtime_agents_template_service; pub mod runtime_analysis_handoff_service; pub mod runtime_evidence_pack_service; +pub mod runtime_file_checkpoint_service; pub mod runtime_handoff_artifact_service; pub mod runtime_replay_case_service; pub mod runtime_review_decision_service; diff --git a/src-tauri/src/services/runtime_analysis_handoff_service.rs b/src-tauri/src/services/runtime_analysis_handoff_service.rs index ac5d11a97..ad5bdbc49 100644 --- a/src-tauri/src/services/runtime_analysis_handoff_service.rs +++ b/src-tauri/src/services/runtime_analysis_handoff_service.rs @@ -1,7 +1,7 @@ //! Runtime analysis handoff 导出服务 //! //! 将 handoff bundle / evidence pack / replay case 重新包装成 -//! 外部 Claude Code / Codex 更容易直接消费的 analysis handoff。 +//! 外部代码助手 / Codex 更容易直接消费的 analysis handoff。 //! 这条链仍然只负责导出证据与现成提示词,不在 Lime 内自动分析或自动修复。 use crate::agent::SessionDetail; @@ -742,7 +742,7 @@ fn build_reading_order() -> Vec { fn build_external_analysis_contract() -> AnalysisExternalContract { AnalysisExternalContract { - audience: "Claude Code / Codex".to_string(), + audience: "外部代码助手 / Codex".to_string(), task: "基于 Lime 导出的结构化证据做问题分析与修复建议,不直接代替团队做最终决策。" .to_string(), required_sections: vec![ @@ -1309,6 +1309,7 @@ mod tests { interrupt_state: None, updated_at: Some("2026-03-27T10:01:20Z".to_string()), latest_compaction_boundary: None, + file_checkpoint_summary: None, diagnostics: Some(AgentRuntimeThreadDiagnostics { latest_turn_status: Some("action_required".to_string()), latest_turn_started_at: None, diff --git a/src-tauri/src/services/runtime_evidence_pack_service.rs b/src-tauri/src/services/runtime_evidence_pack_service.rs index 44dbb8c78..af5ecb20b 100644 --- a/src-tauri/src/services/runtime_evidence_pack_service.rs +++ b/src-tauri/src/services/runtime_evidence_pack_service.rs @@ -5,7 +5,11 @@ use crate::agent::SessionDetail; use crate::commands::aster_agent_cmd::AgentRuntimeThreadReadModel; +use crate::database::DbConnection; use crate::services::artifact_document_validator::ARTIFACT_DOCUMENT_SCHEMA_VERSION; +use crate::services::runtime_file_checkpoint_service::list_file_checkpoints; +use crate::services::workspace_health_service::ensure_workspace_ready_with_auto_relocate; +use crate::workspace::WorkspaceManager; use chrono::Utc; use lime_core::database::dao::agent_timeline::AgentThreadItemPayload; use lime_infra::telemetry::RequestLog; @@ -68,6 +72,19 @@ pub struct RuntimeEvidencePackExportResult { pub artifacts: Vec, } +#[derive(Debug, Clone, Default, PartialEq, Eq)] +pub(crate) struct RuntimeEvidenceSceneAppSnapshot { + pub recent_artifact_paths: Vec, + pub workspace_root: Option, + pub known_gaps: Vec, + pub verification_failure_outcomes: Vec, + pub request_telemetry_available: bool, + pub request_telemetry_matched_count: usize, + pub artifact_validator_applicable: bool, + pub artifact_validator_issue_count: usize, + pub artifact_validator_recovered_count: usize, +} + #[derive(Debug, Clone, Copy, PartialEq, Eq)] enum RuntimeVerificationOutcome { Success, @@ -160,10 +177,11 @@ pub fn export_runtime_evidence_pack( .iter() .map(|artifact| artifact.path.clone()) .collect::>(); + let file_checkpoints = list_file_checkpoints(detail); let latest_turn_summary = collect_latest_turn_summary(detail); let request_telemetry = collect_request_telemetry(detail, workspace_root.as_path()); let verification = - collect_runtime_verification(detail, workspace_root.as_path(), &recent_artifacts); + collect_runtime_verification(detail, Some(workspace_root.as_path()), &recent_artifacts); let signal_coverage = build_signal_coverage( thread_read, &recent_artifacts, @@ -209,6 +227,7 @@ pub fn export_runtime_evidence_pack( thread_read, workspace_root.as_path(), &recent_artifact_paths, + &file_checkpoints.checkpoints, &observability_summary, &known_gaps, exported_at.as_str(), @@ -232,6 +251,7 @@ pub fn export_runtime_evidence_pack( detail, thread_read, &recent_artifact_paths, + &file_checkpoints.checkpoints, &observability_summary, &request_telemetry, &verification, @@ -265,6 +285,93 @@ pub fn export_runtime_evidence_pack( }) } +pub(crate) fn resolve_runtime_export_workspace_root( + db: &DbConnection, + detail: &SessionDetail, +) -> Result { + if let Some(workspace_id) = detail + .workspace_id + .as_deref() + .map(str::trim) + .filter(|value| !value.is_empty()) + { + let manager = WorkspaceManager::new(db.clone()); + let workspace_id = workspace_id.to_string(); + let workspace = manager + .get(&workspace_id) + .map_err(|error| format!("读取 workspace 失败: {error}"))? + .ok_or_else(|| format!("Workspace 不存在: {workspace_id}"))?; + let ensured = ensure_workspace_ready_with_auto_relocate(&manager, &workspace)?; + return Ok(ensured.root_path); + } + + if let Some(working_dir) = detail + .working_dir + .as_deref() + .map(str::trim) + .filter(|value| !value.is_empty()) + { + return Ok(PathBuf::from(working_dir)); + } + + Err("当前会话缺少 workspace / working_dir,无法导出运行时制品".to_string()) +} + +pub(crate) fn build_runtime_evidence_sceneapp_snapshot( + detail: &SessionDetail, + thread_read: &AgentRuntimeThreadReadModel, + workspace_root: Option<&Path>, +) -> RuntimeEvidenceSceneAppSnapshot { + let recent_artifacts = collect_recent_artifacts(detail); + let request_telemetry = workspace_root + .map(|root| collect_request_telemetry(detail, root)) + .unwrap_or_default(); + let verification = collect_runtime_verification(detail, workspace_root, &recent_artifacts); + let signal_coverage = build_signal_coverage( + thread_read, + &recent_artifacts, + &request_telemetry, + &verification, + ); + let known_gaps = build_known_gaps(&recent_artifacts, &signal_coverage); + + RuntimeEvidenceSceneAppSnapshot { + recent_artifact_paths: recent_artifacts + .into_iter() + .map(|artifact| artifact.path) + .collect(), + workspace_root: workspace_root.map(|path| path.to_string_lossy().to_string()), + known_gaps, + verification_failure_outcomes: extract_verification_failure_outcomes(&verification), + request_telemetry_available: !request_telemetry.searched_roots.is_empty(), + request_telemetry_matched_count: request_telemetry.matched_request_count, + artifact_validator_applicable: verification.artifact_validator.applicable, + artifact_validator_issue_count: verification + .artifact_validator + .records + .iter() + .map(|record| { + record + .get("issues") + .and_then(Value::as_array) + .map(|issues| issues.len()) + .unwrap_or(0) + }) + .sum(), + artifact_validator_recovered_count: verification + .artifact_validator + .records + .iter() + .filter(|record| { + record + .get("repaired") + .and_then(Value::as_bool) + .unwrap_or(false) + }) + .count(), + } +} + fn write_evidence_file( pack_root: &Path, session_id: &str, @@ -402,6 +509,7 @@ fn build_runtime_json( thread_read: &AgentRuntimeThreadReadModel, workspace_root: &Path, recent_artifacts: &[String], + file_checkpoints: &[crate::commands::aster_agent_cmd::AgentRuntimeFileCheckpointSummary], observability_summary: &Value, known_gaps: &[String], exported_at: &str, @@ -486,6 +594,8 @@ fn build_runtime_json( }).collect::>(), "observabilitySummary": observability_summary, "recentArtifacts": recent_artifacts, + "fileCheckpointCount": file_checkpoints.len(), + "fileCheckpoints": file_checkpoints, "knownGaps": known_gaps }); @@ -529,6 +639,7 @@ fn build_artifacts_json( detail: &SessionDetail, thread_read: &AgentRuntimeThreadReadModel, recent_artifacts: &[String], + file_checkpoints: &[crate::commands::aster_agent_cmd::AgentRuntimeFileCheckpointSummary], observability_summary: &Value, request_telemetry: &RuntimeRequestTelemetrySummary, verification: &RuntimeEvidenceVerificationSummary, @@ -540,6 +651,8 @@ fn build_artifacts_json( "exportedAt": exported_at, "recentArtifacts": recent_artifacts, "artifactCount": recent_artifacts.len(), + "fileCheckpointCount": file_checkpoints.len(), + "fileCheckpoints": file_checkpoints, "observabilitySummary": observability_summary, "requests": { "pending": thread_read.pending_requests.iter().map(|item| { @@ -891,7 +1004,7 @@ fn build_runtime_observability_summary_json( fn collect_runtime_verification( detail: &SessionDetail, - workspace_root: &Path, + workspace_root: Option<&Path>, recent_artifacts: &[RuntimeRecentArtifact], ) -> RuntimeEvidenceVerificationSummary { RuntimeEvidenceVerificationSummary { @@ -902,7 +1015,7 @@ fn collect_runtime_verification( } fn collect_artifact_validator_summary( - workspace_root: &Path, + workspace_root: Option<&Path>, recent_artifacts: &[RuntimeRecentArtifact], ) -> RuntimeArtifactValidatorSummary { let mut summary = RuntimeArtifactValidatorSummary::default(); @@ -920,10 +1033,12 @@ fn collect_artifact_validator_summary( if artifact.path.ends_with(".artifact.json") { applicable = true; - let absolute_path = resolve_workspace_path(workspace_root, artifact.path.as_str()); - if let Ok(raw) = fs::read_to_string(&absolute_path) { - if let Ok(document) = serde_json::from_str::(raw.as_str()) { - candidates.push(document); + if let Some(workspace_root) = workspace_root { + let absolute_path = resolve_workspace_path(workspace_root, artifact.path.as_str()); + if let Ok(raw) = fs::read_to_string(&absolute_path) { + if let Ok(document) = serde_json::from_str::(raw.as_str()) { + candidates.push(document); + } } } } @@ -943,6 +1058,25 @@ fn collect_artifact_validator_summary( summary } +fn extract_verification_failure_outcomes( + verification: &RuntimeEvidenceVerificationSummary, +) -> Vec { + build_observability_verification_summary_json(verification) + .and_then(|summary| { + summary + .get("focusVerificationFailureOutcomes") + .and_then(Value::as_array) + .map(|values| { + values + .iter() + .filter_map(Value::as_str) + .map(ToString::to_string) + .collect::>() + }) + }) + .unwrap_or_default() +} + fn collect_browser_evidence(detail: &SessionDetail) -> Vec { let mut evidence = Vec::new(); @@ -1723,6 +1857,7 @@ mod tests { interrupt_state: None, updated_at: Some("2026-03-27T10:01:00Z".to_string()), latest_compaction_boundary: None, + file_checkpoint_summary: None, diagnostics: Some( crate::commands::aster_agent_cmd::AgentRuntimeThreadDiagnostics { latest_turn_status: Some("running".to_string()), @@ -1875,6 +2010,10 @@ mod tests { assert!(runtime.contains("\"sessionId\": \"session-1\"")); assert!(runtime.contains("\"pendingRequestCount\": 1")); assert!(runtime.contains("\"observabilitySummary\"")); + assert!(runtime.contains("\"fileCheckpointCount\": 1")); + assert!(runtime.contains("\"fileCheckpoints\"")); + assert!(runtime.contains("\"checkpoint_id\": \"artifact-1\"")); + assert!(runtime.contains("\"path\": \".lime/artifacts/thread-1/report.md\"")); assert!(runtime.contains("\"requestTelemetry\"")); assert!(runtime.contains("\"matchedRequestCount\": 1")); assert!(!runtime.contains("\"verificationSummary\"")); @@ -1889,6 +2028,9 @@ mod tests { let artifacts = fs::read_to_string(artifacts_path).expect("artifacts"); assert!(artifacts.contains("\"observabilitySummary\"")); assert!(artifacts.contains("\"telemetry\"")); + assert!(artifacts.contains("\"fileCheckpointCount\": 1")); + assert!(artifacts.contains("\"fileCheckpoints\"")); + assert!(artifacts.contains("\"checkpoint_id\": \"artifact-1\"")); assert!(artifacts.contains("\"matchedRequestCount\": 1")); assert!(!artifacts.contains("\"verification\"")); } diff --git a/src-tauri/src/services/runtime_file_checkpoint_service.rs b/src-tauri/src/services/runtime_file_checkpoint_service.rs new file mode 100644 index 000000000..e95468bbc --- /dev/null +++ b/src-tauri/src/services/runtime_file_checkpoint_service.rs @@ -0,0 +1,559 @@ +//! Runtime file checkpoint 服务 +//! +//! 基于当前 SessionDetail -> FileArtifact -> artifact sidecar 主链, +//! 提供文件快照摘要、详情与 diff 读取能力。 + +use crate::agent::SessionDetail; +use crate::commands::aster_agent_cmd::{ + AgentRuntimeFileCheckpointDetail, AgentRuntimeFileCheckpointDiffResult, + AgentRuntimeFileCheckpointListResult, AgentRuntimeFileCheckpointSummary, + AgentRuntimeFileCheckpointThreadSummary, +}; +use lime_core::database::dao::agent_timeline::{AgentThreadItem, AgentThreadItemPayload}; +use serde_json::{Map, Value}; +use std::collections::HashSet; +use std::fs; +use std::path::Path; + +#[derive(Debug, Clone)] +struct RuntimeFileCheckpointRecord { + summary: AgentRuntimeFileCheckpointSummary, + content: Option, + metadata: Option, +} + +pub fn build_thread_file_checkpoint_summary( + detail: &SessionDetail, +) -> Option { + let checkpoints = collect_file_checkpoint_records(detail); + if checkpoints.is_empty() { + return None; + } + + Some(AgentRuntimeFileCheckpointThreadSummary { + count: checkpoints.len(), + latest_checkpoint: checkpoints.first().map(|record| record.summary.clone()), + }) +} + +pub fn list_file_checkpoints(detail: &SessionDetail) -> AgentRuntimeFileCheckpointListResult { + let checkpoints = collect_file_checkpoint_records(detail) + .into_iter() + .map(|record| record.summary) + .collect::>(); + + AgentRuntimeFileCheckpointListResult { + session_id: detail.id.clone(), + thread_id: detail.thread_id.clone(), + checkpoint_count: checkpoints.len(), + checkpoints, + } +} + +pub fn get_file_checkpoint( + detail: &SessionDetail, + workspace_root: &Path, + checkpoint_id: &str, +) -> Result { + let record = find_file_checkpoint_record(detail, checkpoint_id)?; + let metadata = record.metadata.as_ref(); + let snapshot_path = extract_snapshot_path(metadata, record.summary.path.as_str()) + .unwrap_or_else(|| record.summary.path.clone()); + let checkpoint_document = read_json_relative(workspace_root, snapshot_path.as_str()) + .or_else(|| extract_artifact_document(metadata)); + let live_document = + read_json_relative(workspace_root, record.summary.path.as_str()).or_else(|| { + if snapshot_path == record.summary.path { + checkpoint_document.clone() + } else { + None + } + }); + + Ok(AgentRuntimeFileCheckpointDetail { + session_id: detail.id.clone(), + thread_id: detail.thread_id.clone(), + checkpoint: record.summary.clone(), + live_path: record.summary.path.clone(), + snapshot_path, + checkpoint_document, + live_document, + version_history: extract_version_history(metadata), + validation_issues: extract_validation_issues(metadata), + metadata: record.metadata.clone(), + content: record.content.clone(), + }) +} + +pub fn diff_file_checkpoint( + detail: &SessionDetail, + checkpoint_id: &str, +) -> Result { + let record = find_file_checkpoint_record(detail, checkpoint_id)?; + let metadata = record.metadata.as_ref(); + let current_version_id = record.summary.version_id.clone(); + let current_version_no = record.summary.version_no; + + Ok(AgentRuntimeFileCheckpointDiffResult { + session_id: detail.id.clone(), + thread_id: detail.thread_id.clone(), + checkpoint: record.summary.clone(), + current_version_id, + previous_version_id: extract_previous_version_id(metadata, current_version_no), + diff: extract_version_diff(metadata), + }) +} + +fn find_file_checkpoint_record( + detail: &SessionDetail, + checkpoint_id: &str, +) -> Result { + let normalized_checkpoint_id = checkpoint_id.trim(); + if normalized_checkpoint_id.is_empty() { + return Err("checkpoint_id 不能为空".to_string()); + } + + collect_file_checkpoint_records(detail) + .into_iter() + .find(|record| record.summary.checkpoint_id == normalized_checkpoint_id) + .ok_or_else(|| format!("未找到文件快照: {normalized_checkpoint_id}")) +} + +fn collect_file_checkpoint_records(detail: &SessionDetail) -> Vec { + let mut seen = HashSet::new(); + let mut checkpoints = Vec::new(); + + for item in detail.items.iter().rev() { + let Some(record) = checkpoint_record_from_item(item) else { + continue; + }; + if seen.insert(record.summary.checkpoint_id.clone()) { + checkpoints.push(record); + } + } + + checkpoints.sort_by(|left, right| { + right + .summary + .updated_at + .cmp(&left.summary.updated_at) + .then_with(|| left.summary.path.cmp(&right.summary.path)) + }); + checkpoints +} + +fn checkpoint_record_from_item(item: &AgentThreadItem) -> Option { + let AgentThreadItemPayload::FileArtifact { + path, + source, + content, + metadata, + } = &item.payload + else { + return None; + }; + + let normalized_path = normalize_optional_text(path.clone())?; + let normalized_source = + normalize_optional_text(source.clone()).unwrap_or_else(|| "runtime".to_string()); + let metadata_ref = metadata.as_ref(); + let preview_text = extract_preview_text(metadata_ref, content.as_deref()); + let version_no = extract_version_no(metadata_ref); + + Some(RuntimeFileCheckpointRecord { + summary: AgentRuntimeFileCheckpointSummary { + checkpoint_id: item.id.clone(), + turn_id: item.turn_id.clone(), + path: normalized_path.clone(), + source: normalized_source, + updated_at: item.updated_at.clone(), + version_no, + version_id: extract_version_id(metadata_ref), + request_id: extract_request_id(metadata_ref), + title: extract_title(metadata_ref), + kind: extract_kind(metadata_ref), + status: extract_status(metadata_ref), + preview_text, + snapshot_path: extract_snapshot_path(metadata_ref, normalized_path.as_str()), + validation_issue_count: extract_validation_issues(metadata_ref).len(), + }, + content: content.clone(), + metadata: metadata.clone(), + }) +} + +fn normalize_optional_text(value: String) -> Option { + let trimmed = value.trim().to_string(); + if trimmed.is_empty() { + None + } else { + Some(trimmed) + } +} + +fn metadata_object(metadata: Option<&Value>) -> Option<&Map> { + metadata?.as_object() +} + +fn metadata_string(metadata: Option<&Value>, key: &str) -> Option { + metadata_object(metadata)? + .get(key) + .and_then(Value::as_str) + .map(str::trim) + .filter(|value| !value.is_empty()) + .map(ToString::to_string) +} + +fn nested_metadata_string(metadata: Option<&Value>, parent_key: &str, key: &str) -> Option { + metadata_object(metadata)? + .get(parent_key) + .and_then(Value::as_object)? + .get(key) + .and_then(Value::as_str) + .map(str::trim) + .filter(|value| !value.is_empty()) + .map(ToString::to_string) +} + +fn metadata_u32(metadata: Option<&Value>, key: &str) -> Option { + metadata_object(metadata)? + .get(key) + .and_then(Value::as_u64) + .and_then(|value| u32::try_from(value).ok()) +} + +fn nested_metadata_u32(metadata: Option<&Value>, parent_key: &str, key: &str) -> Option { + metadata_object(metadata)? + .get(parent_key) + .and_then(Value::as_object)? + .get(key) + .and_then(Value::as_u64) + .and_then(|value| u32::try_from(value).ok()) +} + +fn extract_version_no(metadata: Option<&Value>) -> Option { + metadata_u32(metadata, "artifactVersionNo") + .or_else(|| nested_metadata_u32(metadata, "artifactVersion", "versionNo")) +} + +fn extract_version_id(metadata: Option<&Value>) -> Option { + metadata_string(metadata, "artifactVersionId") + .or_else(|| nested_metadata_string(metadata, "artifactVersion", "id")) +} + +fn extract_request_id(metadata: Option<&Value>) -> Option { + metadata_string(metadata, "artifactRequestId") +} + +fn extract_title(metadata: Option<&Value>) -> Option { + metadata_string(metadata, "artifactTitle") + .or_else(|| nested_metadata_string(metadata, "artifactVersion", "title")) + .or_else(|| nested_metadata_string(metadata, "artifactDocument", "title")) +} + +fn extract_kind(metadata: Option<&Value>) -> Option { + metadata_string(metadata, "artifactKind") + .or_else(|| nested_metadata_string(metadata, "artifactVersion", "kind")) + .or_else(|| nested_metadata_string(metadata, "artifactDocument", "kind")) +} + +fn extract_status(metadata: Option<&Value>) -> Option { + metadata_string(metadata, "artifactStatus") + .or_else(|| nested_metadata_string(metadata, "artifactVersion", "status")) + .or_else(|| nested_metadata_string(metadata, "artifactDocument", "status")) +} + +fn extract_snapshot_path(metadata: Option<&Value>, fallback_path: &str) -> Option { + nested_metadata_string(metadata, "artifactVersion", "snapshotPath") + .or_else(|| metadata_string(metadata, "artifact_path")) + .or_else(|| normalize_optional_text(fallback_path.to_string())) +} + +fn extract_preview_text(metadata: Option<&Value>, content: Option<&str>) -> Option { + metadata_string(metadata, "previewText") + .or_else(|| nested_metadata_string(metadata, "artifactDocument", "summary")) + .or_else(|| nested_metadata_string(metadata, "artifactDocument", "title")) + .or_else(|| { + content + .map(str::trim) + .filter(|value| !value.is_empty()) + .map(truncate_text) + }) +} + +fn truncate_text(value: &str) -> String { + const MAX_PREVIEW_CHARS: usize = 240; + let normalized = value + .lines() + .map(str::trim) + .filter(|line| !line.is_empty()) + .collect::>() + .join(" "); + let mut chars = normalized.chars(); + let prefix: String = chars.by_ref().take(MAX_PREVIEW_CHARS).collect(); + if chars.next().is_some() { + format!("{prefix}...") + } else { + prefix + } +} + +fn extract_validation_issues(metadata: Option<&Value>) -> Vec { + metadata_object(metadata) + .and_then(|record| record.get("artifactValidationIssues")) + .and_then(Value::as_array) + .map(|items| { + items + .iter() + .filter_map(Value::as_str) + .map(str::trim) + .filter(|value| !value.is_empty()) + .map(ToString::to_string) + .collect::>() + }) + .unwrap_or_default() +} + +fn extract_artifact_document(metadata: Option<&Value>) -> Option { + metadata_object(metadata)?.get("artifactDocument").cloned() +} + +fn extract_version_history(metadata: Option<&Value>) -> Vec { + metadata_object(metadata) + .and_then(|record| record.get("artifactVersions")) + .and_then(Value::as_array) + .cloned() + .unwrap_or_default() +} + +fn extract_previous_version_id( + metadata: Option<&Value>, + current_version_no: Option, +) -> Option { + let current_version_no = current_version_no?; + let previous_version_no = current_version_no.checked_sub(1)?; + + extract_version_history(metadata) + .into_iter() + .find_map(|value| { + let record = value.as_object()?; + let version_no = record.get("versionNo").and_then(Value::as_u64)?; + if version_no != u64::from(previous_version_no) { + return None; + } + record + .get("id") + .and_then(Value::as_str) + .map(str::trim) + .filter(|value| !value.is_empty()) + .map(ToString::to_string) + }) +} + +fn extract_version_diff(metadata: Option<&Value>) -> Option { + metadata_object(metadata)? + .get("artifactVersionDiff") + .cloned() +} + +fn read_json_relative(workspace_root: &Path, relative_path: &str) -> Option { + let normalized = relative_path.trim(); + if normalized.is_empty() { + return None; + } + + let path = workspace_root.join(normalized.replace('/', std::path::MAIN_SEPARATOR_STR)); + let raw = fs::read_to_string(path).ok()?; + serde_json::from_str::(&raw).ok() +} + +#[cfg(test)] +mod tests { + use super::*; + use lime_core::database::dao::agent_timeline::{AgentThreadItemStatus, AgentThreadTurn}; + use tempfile::tempdir; + + fn build_detail(item: AgentThreadItem) -> SessionDetail { + SessionDetail { + id: "session-1".to_string(), + name: "测试会话".to_string(), + created_at: 0, + updated_at: 0, + thread_id: "thread-1".to_string(), + model: None, + working_dir: None, + workspace_id: Some("workspace-1".to_string()), + messages: Vec::new(), + execution_strategy: None, + execution_runtime: None, + turns: vec![AgentThreadTurn { + id: "turn-1".to_string(), + thread_id: "thread-1".to_string(), + prompt_text: "生成 artifact".to_string(), + status: lime_core::database::dao::agent_timeline::AgentThreadTurnStatus::Completed, + started_at: "2026-04-15T00:00:00Z".to_string(), + completed_at: Some("2026-04-15T00:00:01Z".to_string()), + error_message: None, + created_at: "2026-04-15T00:00:00Z".to_string(), + updated_at: "2026-04-15T00:00:01Z".to_string(), + }], + items: vec![item], + todo_items: Vec::new(), + child_subagent_sessions: Vec::new(), + subagent_parent_context: None, + } + } + + fn build_item(metadata: Option) -> AgentThreadItem { + AgentThreadItem { + id: "artifact-document:req-1".to_string(), + thread_id: "thread-1".to_string(), + turn_id: "turn-1".to_string(), + sequence: 1, + status: AgentThreadItemStatus::Completed, + started_at: "2026-04-15T00:00:00Z".to_string(), + completed_at: Some("2026-04-15T00:00:01Z".to_string()), + updated_at: "2026-04-15T00:00:01Z".to_string(), + payload: AgentThreadItemPayload::FileArtifact { + path: ".lime/artifacts/thread-1/demo.artifact.json".to_string(), + source: "artifact_document_service".to_string(), + content: Some("# Demo".to_string()), + metadata, + }, + } + } + + #[test] + fn build_thread_summary_should_extract_latest_checkpoint_metadata() { + let detail = build_detail(build_item(Some(serde_json::json!({ + "artifactVersionNo": 3, + "artifactVersionId": "artifact-document:req-1:v3", + "artifactRequestId": "req-1", + "artifactTitle": "Demo", + "artifactKind": "analysis", + "artifactStatus": "ready", + "previewText": "最新版本摘要", + "artifactVersion": { + "snapshotPath": ".lime/artifacts/thread-1/versions/demo/v0003.artifact.json" + }, + "artifactValidationIssues": ["missing-source"] + })))); + + let summary = build_thread_file_checkpoint_summary(&detail).expect("summary should exist"); + + assert_eq!(summary.count, 1); + let latest = summary.latest_checkpoint.expect("latest checkpoint"); + assert_eq!(latest.checkpoint_id, "artifact-document:req-1"); + assert_eq!(latest.version_no, Some(3)); + assert_eq!( + latest.version_id.as_deref(), + Some("artifact-document:req-1:v3") + ); + assert_eq!(latest.request_id.as_deref(), Some("req-1")); + assert_eq!(latest.preview_text.as_deref(), Some("最新版本摘要")); + assert_eq!(latest.validation_issue_count, 1); + } + + #[test] + fn get_file_checkpoint_should_read_snapshot_and_live_documents() { + let temp_dir = tempdir().expect("temp dir"); + let workspace_root = temp_dir.path(); + let live_path = workspace_root.join(".lime/artifacts/thread-1/demo.artifact.json"); + let snapshot_path = + workspace_root.join(".lime/artifacts/thread-1/versions/demo/v0002.artifact.json"); + fs::create_dir_all(live_path.parent().expect("live parent")).expect("live dir"); + fs::create_dir_all(snapshot_path.parent().expect("snapshot parent")).expect("snapshot dir"); + fs::write( + &live_path, + serde_json::json!({ + "title": "当前版本", + "summary": "current" + }) + .to_string(), + ) + .expect("write live"); + fs::write( + &snapshot_path, + serde_json::json!({ + "title": "版本 2", + "summary": "snapshot" + }) + .to_string(), + ) + .expect("write snapshot"); + + let detail = build_detail(build_item(Some(serde_json::json!({ + "artifactVersionNo": 2, + "artifactVersionId": "artifact-document:req-1:v2", + "artifactVersion": { + "id": "artifact-document:req-1:v2", + "versionNo": 2, + "snapshotPath": ".lime/artifacts/thread-1/versions/demo/v0002.artifact.json" + }, + "artifactVersions": [ + { "id": "artifact-document:req-1:v1", "versionNo": 1 }, + { "id": "artifact-document:req-1:v2", "versionNo": 2 } + ], + "artifactValidationIssues": ["warning-a"] + })))); + + let detail_result = get_file_checkpoint(&detail, workspace_root, "artifact-document:req-1") + .expect("detail"); + + assert_eq!( + detail_result.snapshot_path, + ".lime/artifacts/thread-1/versions/demo/v0002.artifact.json" + ); + assert_eq!(detail_result.version_history.len(), 2); + assert_eq!( + detail_result.validation_issues, + vec!["warning-a".to_string()] + ); + assert_eq!( + detail_result + .checkpoint_document + .as_ref() + .and_then(|value| value.get("title")) + .and_then(Value::as_str), + Some("版本 2") + ); + assert_eq!( + detail_result + .live_document + .as_ref() + .and_then(|value| value.get("title")) + .and_then(Value::as_str), + Some("当前版本") + ); + } + + #[test] + fn diff_file_checkpoint_should_return_metadata_diff_and_previous_version() { + let detail = build_detail(build_item(Some(serde_json::json!({ + "artifactVersionNo": 4, + "artifactVersionId": "artifact-document:req-1:v4", + "artifactVersions": [ + { "id": "artifact-document:req-1:v3", "versionNo": 3 }, + { "id": "artifact-document:req-1:v4", "versionNo": 4 } + ], + "artifactVersionDiff": { + "summary": "更新结论段与证据链接" + } + })))); + + let diff = + diff_file_checkpoint(&detail, "artifact-document:req-1").expect("diff should exist"); + + assert_eq!( + diff.previous_version_id.as_deref(), + Some("artifact-document:req-1:v3") + ); + assert_eq!( + diff.diff + .as_ref() + .and_then(|value| value.get("summary")) + .and_then(Value::as_str), + Some("更新结论段与证据链接") + ); + } +} diff --git a/src-tauri/src/services/runtime_handoff_artifact_service.rs b/src-tauri/src/services/runtime_handoff_artifact_service.rs index 4df31fbf1..ea637e7f3 100644 --- a/src-tauri/src/services/runtime_handoff_artifact_service.rs +++ b/src-tauri/src/services/runtime_handoff_artifact_service.rs @@ -967,6 +967,7 @@ mod tests { interrupt_state: None, updated_at: Some("2026-03-27T10:01:00Z".to_string()), latest_compaction_boundary: None, + file_checkpoint_summary: None, diagnostics: Some(crate::commands::aster_agent_cmd::AgentRuntimeThreadDiagnostics { latest_turn_status: Some("completed".to_string()), latest_turn_started_at: None, diff --git a/src-tauri/src/services/runtime_replay_case_service.rs b/src-tauri/src/services/runtime_replay_case_service.rs index bdd90f91a..c668593a3 100644 --- a/src-tauri/src/services/runtime_replay_case_service.rs +++ b/src-tauri/src/services/runtime_replay_case_service.rs @@ -9,6 +9,7 @@ use crate::commands::aster_agent_cmd::AgentRuntimeThreadReadModel; use crate::services::runtime_evidence_pack_service::{ export_runtime_evidence_pack, RuntimeEvidencePackExportResult, }; +use crate::services::runtime_file_checkpoint_service::list_file_checkpoints; use crate::services::runtime_handoff_artifact_service::{ export_runtime_handoff_bundle, RuntimeHandoffBundleExportResult, }; @@ -142,6 +143,7 @@ pub fn export_runtime_replay_case( .and_then(|turn| normalize_optional_text(Some(turn.prompt_text.clone()))) }); let recent_artifacts = collect_recent_artifact_paths(detail); + let file_checkpoints = list_file_checkpoints(detail); let pending_requests = collect_pending_request_inputs(detail, thread_read); let recent_timeline = collect_recent_timeline_items(detail); let observability_summary = read_observability_summary_from_evidence_pack(&evidence_pack)?; @@ -171,6 +173,7 @@ pub fn export_runtime_replay_case( latest_plan.as_deref(), latest_turn_summary.as_deref(), &recent_artifacts, + &file_checkpoints.checkpoints, &recent_timeline, &pending_requests, &observability_summary, @@ -310,6 +313,7 @@ fn build_input_json( latest_plan: Option<&str>, latest_turn_summary: Option<&str>, recent_artifacts: &[String], + file_checkpoints: &[crate::commands::aster_agent_cmd::AgentRuntimeFileCheckpointSummary], recent_timeline: &[ReplayTimelineItem], pending_requests: &[ReplayPendingRequestInput], observability_summary: &Value, @@ -382,6 +386,8 @@ fn build_input_json( }) }).collect::>(), "recentArtifacts": recent_artifacts, + "fileCheckpointCount": file_checkpoints.len(), + "fileCheckpoints": file_checkpoints, "recentTimeline": recent_timeline, "lastOutcome": &thread_read.last_outcome, "incidents": &thread_read.incidents, @@ -1182,6 +1188,7 @@ mod tests { interrupt_state: None, updated_at: Some("2026-03-27T10:02:00Z".to_string()), latest_compaction_boundary: None, + file_checkpoint_summary: None, diagnostics: Some(crate::commands::aster_agent_cmd::AgentRuntimeThreadDiagnostics { latest_turn_status: Some("completed".to_string()), latest_turn_started_at: None, @@ -1272,6 +1279,10 @@ mod tests { )); assert!(input.contains("\"requestId\": \"req-1\"")); assert!(input.contains("\"recentArtifacts\"")); + assert!(input.contains("\"fileCheckpointCount\": 1")); + assert!(input.contains("\"fileCheckpoints\"")); + assert!(input.contains("\"checkpoint_id\": \"artifact-1\"")); + assert!(input.contains("\"path\": \".lime/artifacts/thread-1/report.md\"")); assert!(input.contains("\"classification\"")); assert!(input.contains("\"suiteTags\"")); assert!(input.contains("\"failureModes\"")); diff --git a/src-tauri/src/services/runtime_review_decision_service.rs b/src-tauri/src/services/runtime_review_decision_service.rs index cfad90ed7..9ea964e59 100644 --- a/src-tauri/src/services/runtime_review_decision_service.rs +++ b/src-tauri/src/services/runtime_review_decision_service.rs @@ -1,6 +1,6 @@ //! Runtime review decision 模板导出与保存服务 //! -//! 将外部 Claude Code / Codex 的分析结论回挂为 +//! 将外部代码助手 / Codex 的分析结论回挂为 //! Lime 工作区内可版本化的人工审核与决策记录模板。 //! 这条链只导出与保存 review-decision,不在 Lime 内自动批准或自动应用修复。 @@ -369,7 +369,7 @@ fn build_review_decision_markdown(document: &ReviewDecisionDocument) -> String { "# Lime 人工审核与决策记录\n\n\ > 状态:`{decision_status}`\n\ > 导出时间:`{exported_at}`\n\ -> 说明:这份模板用于把外部 Claude Code / Codex 的分析结论,回挂为 Lime 工作区内可版本化的人工审核记录;最终是否接受修复仍由开发者决定。\n\n\ +> 说明:这份模板用于把外部代码助手 / Codex 的分析结论,回挂为 Lime 工作区内可版本化的人工审核记录;最终是否接受修复仍由开发者决定。\n\n\ ## 1. 审核上下文\n\ - 标题:{title}\n\ - session_id:`{session_id}`\n\ @@ -1170,6 +1170,7 @@ mod tests { interrupt_state: None, updated_at: Some("2026-03-27T10:01:20Z".to_string()), latest_compaction_boundary: None, + file_checkpoint_summary: None, diagnostics: Some(AgentRuntimeThreadDiagnostics { latest_turn_status: Some("action_required".to_string()), latest_turn_started_at: None, diff --git a/src-tauri/tauri.conf.headless.json b/src-tauri/tauri.conf.headless.json index 2a5694cec..cdd14533d 100644 --- a/src-tauri/tauri.conf.headless.json +++ b/src-tauri/tauri.conf.headless.json @@ -1,7 +1,7 @@ { "$schema": "https://schema.tauri.app/config/2", "productName": "Lime", - "version": "1.11.0", + "version": "1.12.0", "identifier": "com.lime.app", "build": { "beforeDevCommand": "npm run dev:web-bridge", diff --git a/src-tauri/tauri.conf.json b/src-tauri/tauri.conf.json index 2e29add6b..483acdc71 100644 --- a/src-tauri/tauri.conf.json +++ b/src-tauri/tauri.conf.json @@ -1,7 +1,7 @@ { "$schema": "https://schema.tauri.app/config/2", "productName": "Lime", - "version": "1.11.0", + "version": "1.12.0", "identifier": "com.lime.app", "build": { "beforeDevCommand": "npm run dev", diff --git a/src/components/AppPageContent.test.tsx b/src/components/AppPageContent.test.tsx index 85519a380..fece20252 100644 --- a/src/components/AppPageContent.test.tsx +++ b/src/components/AppPageContent.test.tsx @@ -23,6 +23,12 @@ const latestMemoryPageProps = vi.hoisted( value: null as Record | null, }) as { value: Record | null }, ); +const latestSceneAppsPageProps = vi.hoisted( + () => + ({ + value: null as Record | null, + }) as { value: Record | null }, +); vi.mock("./agent/chat", () => ({ AgentChatPage: (props: Record) => { @@ -53,6 +59,13 @@ vi.mock("./memory", () => ({ }, })); +vi.mock("./sceneapps", () => ({ + SceneAppsPage: (props: Record) => { + latestSceneAppsPageProps.value = props; + return
; + }, +})); + interface MountedContent { container: HTMLDivElement; root: Root; @@ -96,6 +109,7 @@ describe("AppPageContent", () => { latestAgentChatProps.value = null; latestSkillsWorkspaceProps.value = null; latestMemoryPageProps.value = null; + latestSceneAppsPageProps.value = null; }); afterEach(() => { @@ -185,6 +199,23 @@ describe("AppPageContent", () => { }); }); + it("agent 页面应把 initialSessionId 透传给 AgentChatPage", async () => { + const pageParams: AgentPageParams = { + agentEntry: "claw", + initialSessionId: "session-sceneapp-1", + entryBannerMessage: "已恢复 SceneApp 对应会话。", + }; + + renderContent("agent", pageParams); + await flushEffects(); + + expect(latestAgentChatProps.value).toMatchObject({ + agentEntry: "claw", + initialSessionId: "session-sceneapp-1", + entryBannerMessage: "已恢复 SceneApp 对应会话。", + }); + }); + it("agent 页面应把 initialPendingServiceSkillLaunch 透传给 AgentChatPage", async () => { const pageParams: AgentPageParams = { agentEntry: "new-task", @@ -280,4 +311,28 @@ describe("AppPageContent", () => { expect(memoryPage?.parentElement?.className).toContain("min-h-0"); expect(memoryPage?.parentElement?.className).toContain("flex-1"); }); + + it("sceneapps 页面应把目录页参数透传给 SceneAppsPage", async () => { + const container = renderContent("sceneapps", { + sceneappId: "story-video-suite", + runId: "story-video-suite-run-1", + projectId: "project-sceneapp", + prefillIntent: "生成一个短视频方案", + search: "短视频", + }); + await flushEffects(); + + expect( + container.querySelector('[data-testid="sceneapps-page"]'), + ).not.toBeNull(); + expect(latestSceneAppsPageProps.value).toMatchObject({ + pageParams: { + sceneappId: "story-video-suite", + runId: "story-video-suite-run-1", + projectId: "project-sceneapp", + prefillIntent: "生成一个短视频方案", + search: "短视频", + }, + }); + }); }); diff --git a/src/components/AppPageContent.tsx b/src/components/AppPageContent.tsx index 4ab18dfe6..703d7ff40 100644 --- a/src/components/AppPageContent.tsx +++ b/src/components/AppPageContent.tsx @@ -14,6 +14,7 @@ import type { OpenClawPageParams, Page, PageParams, + SceneAppsPageParams, SettingsPageParams, SkillsPageParams, } from "@/types/page"; @@ -68,6 +69,11 @@ const SkillsWorkspacePage = lazy(() => default: module.SkillsWorkspacePage, })), ); +const SceneAppsPage = lazy(() => + import("./sceneapps").then((module) => ({ + default: module.SceneAppsPage, + })), +); const BrowserRuntimeWorkspace = lazy(() => import("@/features/browser-runtime").then((module) => ({ default: module.BrowserRuntimeWorkspace, @@ -125,6 +131,7 @@ export function AppPageContent({ onNavigate={onNavigate} projectId={agentPageParams.projectId} contentId={agentPageParams.contentId} + initialSessionId={agentPageParams.initialSessionId} initialRequestMetadata={agentPageParams.initialRequestMetadata} initialUserPrompt={agentPageParams.initialUserPrompt} initialUserImages={agentPageParams.initialUserImages} @@ -237,6 +244,17 @@ export function AppPageContent({ ); } + if (currentPage === "sceneapps") { + return ( +
+ +
+ ); + } + if (currentPage === "settings") { return (
diff --git a/src/components/AppSidebar.test.tsx b/src/components/AppSidebar.test.tsx index 0618804a8..f77b93238 100644 --- a/src/components/AppSidebar.test.tsx +++ b/src/components/AppSidebar.test.tsx @@ -2,6 +2,7 @@ import { act } from "react"; import { createRoot, type Root } from "react-dom/client"; import { afterEach, beforeEach, describe, expect, it, vi } from "vitest"; import type { AgentPageParams, Page, PageParams } from "@/types/page"; +import { recordSceneAppRecentVisit } from "@/lib/sceneapp"; import { AppSidebar } from "./AppSidebar"; const { mockGetConfig, mockGetPluginsForSurface } = vi.hoisted(() => ({ @@ -28,6 +29,7 @@ const APP_SIDEBAR_COLLAPSED_STORAGE_KEY = "lime.app-sidebar.collapsed"; function mountSidebar(options?: { currentPage?: Page; currentPageParams?: PageParams; + onNavigate?: (page: Page, params?: PageParams) => void; }): MountedSidebar["container"] { const container = document.createElement("div"); document.body.appendChild(container); @@ -38,7 +40,7 @@ function mountSidebar(options?: { , ); }); @@ -150,6 +152,44 @@ describe("AppSidebar", () => { ).not.toBeNull(); }); + it("点击场景应用入口时应优先恢复最近一次 SceneApp 上下文", async () => { + const onNavigate = vi.fn(); + recordSceneAppRecentVisit( + { + sceneappId: "story-video-suite", + projectId: "project-9", + runId: "run-2", + }, + { + visitedAt: 600, + }, + ); + + const container = mountSidebar({ + currentPageParams: { + agentEntry: "new-task", + } as AgentPageParams, + onNavigate, + }); + await flushEffects(); + + const button = container.querySelector( + 'button[aria-label="场景应用"]', + ) as HTMLButtonElement | null; + + expect(button).not.toBeNull(); + + act(() => { + button?.click(); + }); + + expect(onNavigate).toHaveBeenCalledWith("sceneapps", { + sceneappId: "story-video-suite", + projectId: "project-9", + runId: "run-2", + }); + }); + it("默认应隐藏系统区的可选入口,只保留设置", async () => { const container = mountSidebar({ currentPageParams: { diff --git a/src/components/AppSidebar.tsx b/src/components/AppSidebar.tsx index d760d8ee4..f044fcc02 100644 --- a/src/components/AppSidebar.tsx +++ b/src/components/AppSidebar.tsx @@ -22,7 +22,6 @@ import { getPluginsForSurface, PluginUIInfo } from "@/lib/api/pluginUI"; import { AgentPageParams, Page, PageParams } from "@/types/page"; import { getConfig } from "@/lib/api/appConfig"; import { - buildClawAgentParams, buildHomeAgentParams, } from "@/lib/workspace/navigation"; import { @@ -671,12 +670,9 @@ export function AppSidebar({ return; } - const params: PageParams | undefined = - item.id === "home-general" - ? buildHomeAgentParams(item.params as AgentPageParams | undefined) - : item.id === "claw" - ? buildClawAgentParams(item.params as AgentPageParams | undefined) - : item.params; + const params: PageParams | undefined = item.resolveParams + ? item.resolveParams(item.params) + : item.params; onNavigate(item.page, params); }; diff --git a/src/components/agent/chat/AgentChatWorkspace.tsx b/src/components/agent/chat/AgentChatWorkspace.tsx index ce02d0463..da7c2d3f5 100644 --- a/src/components/agent/chat/AgentChatWorkspace.tsx +++ b/src/components/agent/chat/AgentChatWorkspace.tsx @@ -18,7 +18,6 @@ import type { Dispatch, SetStateAction } from "react"; import { toast } from "sonner"; import { useAgentChatUnified } from "./hooks"; import { - buildLiveTaskSnapshot, type TaskStatusReason, } from "./hooks/agentChatShared"; import { @@ -187,7 +186,9 @@ import { useWorkspaceGeneralWorkbenchRuntime } from "./workspace/useWorkspaceGen import { useWorkspaceTeamSessionRuntime } from "./workspace/useWorkspaceTeamSessionRuntime"; import { useWorkspaceGeneralWorkbenchDocumentPersistenceRuntime } from "./workspace/useWorkspaceGeneralWorkbenchDocumentPersistenceRuntime"; import { useWorkspaceServiceSkillEntryActions } from "./workspace/useWorkspaceServiceSkillEntryActions"; +import { useWorkspaceSceneAppEntryActions } from "./workspace/useWorkspaceSceneAppEntryActions"; import { useWorkspaceArtifactViewModeControl } from "./workspace/useWorkspaceArtifactViewModeControl"; +import { useWorkspaceInitialSessionNavigation } from "./workspace/useWorkspaceInitialSessionNavigation"; import { WorkspaceGeneralWorkbenchSidebar } from "./workspace/WorkspaceGeneralWorkbenchSidebar"; import { GeneralWorkbenchHarnessDialogSection } from "./workspace/WorkspaceHarnessDialogs"; import { WorkspaceShellScene } from "./workspace/WorkspaceShellScene"; @@ -235,6 +236,11 @@ import { buildMessageInspirationDraft } from "./utils/messageInspirationDraft"; import { buildSkillsPageParamsFromMessage } from "./utils/skillScaffoldDraft"; import { AutomationJobDialog } from "@/components/settings-v2/system/automation/AutomationJobDialog"; import { shouldAutoSelectGeneralArtifact } from "./workspace/generalArtifactAutoSelection"; +import { + hasSceneAppRecentVisit, + resolveSceneAppsPageEntryParams, + subscribeSceneAppRecentVisits, +} from "@/lib/sceneapp"; const GENERAL_BROWSER_ASSIST_PROFILE_KEY = "general_browser_assist"; const BLANK_HOME_DEFERRED_LOAD_MS = 6_000; @@ -356,6 +362,7 @@ export function AgentChatWorkspace({ onNavigate: _onNavigate, projectId: externalProjectId, contentId, + initialSessionId, initialRequestMetadata, initialAutoSendRequestMetadata, autoRunInitialPromptOnMount = false, @@ -856,16 +863,20 @@ export function AgentChatWorkspace({ }, [activeTheme, serviceSkillsError]); const initialPendingServiceSkillLaunchSignature = useMemo(() => { const skillId = initialPendingServiceSkillLaunch?.skillId?.trim(); - if (!skillId) { + const skillKey = initialPendingServiceSkillLaunch?.skillKey?.trim(); + if (!skillId && !skillKey) { return ""; } return JSON.stringify({ skillId, + skillKey, requestKey: initialPendingServiceSkillLaunch?.requestKey ?? 0, initialSlotValues: initialPendingServiceSkillLaunch?.initialSlotValues ?? null, prefillHint: initialPendingServiceSkillLaunch?.prefillHint ?? null, + launchUserInput: + initialPendingServiceSkillLaunch?.launchUserInput ?? null, }); }, [initialPendingServiceSkillLaunch]); const combinedSkillsLoading = skillsLoading || serviceSkillsLoading; @@ -989,12 +1000,60 @@ export function AgentChatWorkspace({ string | null >(null); const [timelineFocusRequestKey, setTimelineFocusRequestKey] = useState(0); + const [canResumeRecentSceneApp, setCanResumeRecentSceneApp] = + useState(() => hasSceneAppRecentVisit()); const autoCollapsedTopicSidebarRef = useRef(false); + useEffect(() => { + setCanResumeRecentSceneApp(hasSceneAppRecentVisit()); + + return subscribeSceneAppRecentVisits((records) => { + setCanResumeRecentSceneApp(records.length > 0); + }); + }, []); + // 跳转到技能主页面 const handleNavigateToSkillSettings = useCallback(() => { _onNavigate?.("skills"); }, [_onNavigate]); + const handleOpenSceneAppsDirectory = useCallback(() => { + if (!_onNavigate) { + toast.error("当前入口暂不支持跳转到 SceneApp 目录"); + return; + } + + _onNavigate( + "sceneapps", + resolveSceneAppsPageEntryParams( + { + projectId: projectId || undefined, + prefillIntent: input.trim() || undefined, + }, + { + mode: "browse", + }, + ), + ); + }, [_onNavigate, input, projectId]); + const handleResumeRecentSceneApp = useCallback(() => { + if (!_onNavigate) { + toast.error("当前入口暂不支持跳转到 SceneApp 目录"); + return; + } + + _onNavigate( + "sceneapps", + resolveSceneAppsPageEntryParams( + { + projectId: projectId || undefined, + prefillIntent: input.trim() || undefined, + }, + { + mode: "resume_latest", + }, + ), + ); + }, [_onNavigate, input, projectId]); const handleRefreshSkills = useCallback(async () => { await loadSkills(true); }, [loadSkills]); @@ -1513,7 +1572,6 @@ export function AgentChatWorkspace({ switchTopic: originalSwitchTopic, deleteTopic, renameTopic, - updateTopicSnapshot = () => undefined, workspacePathMissing = false, fixWorkspacePathAndRetry, dismissWorkspacePathError, @@ -2233,6 +2291,15 @@ export function AgentChatWorkspace({ onNavigate: _onNavigate, recordServiceSkillUsage, }); + const workspaceSceneAppEntryActions = useWorkspaceSceneAppEntryActions({ + activeTheme, + creationMode, + projectId, + input, + selectedText, + defaultToolPreferences: effectiveChatToolPreferences, + onNavigate: _onNavigate, + }); const handlePendingServiceSkillLaunchSubmit = workspaceServiceSkillEntryActions.handlePendingServiceSkillLaunchSubmit; useEffect(() => { @@ -2253,15 +2320,24 @@ export function AgentChatWorkspace({ } const skillId = initialPendingServiceSkillLaunch?.skillId?.trim(); - if (!skillId) { + const skillKey = initialPendingServiceSkillLaunch?.skillKey?.trim(); + if (!skillId && !skillKey) { return; } - const matchedSkill = serviceSkills.find((skill) => skill.id === skillId); + const matchedSkill = serviceSkills.find( + (skill) => + (skillId && skill.id === skillId) || + (skillKey && skill.skillKey === skillKey), + ); if (!matchedSkill) { + if (serviceSkills.length === 0) { + return; + } + handledInitialPendingServiceSkillLaunchSignatureRef.current = initialPendingServiceSkillLaunchSignature; - toast.error(`未找到技能:${skillId}`); + toast.error(`未找到技能:${skillId ?? skillKey}`); return; } @@ -2272,6 +2348,7 @@ export function AgentChatWorkspace({ initialSlotValues: initialPendingServiceSkillLaunch?.initialSlotValues, prefillHint: initialPendingServiceSkillLaunch?.prefillHint, + launchUserInput: initialPendingServiceSkillLaunch?.launchUserInput, }); }, [ activeTheme, @@ -2895,6 +2972,11 @@ export function AgentChatWorkspace({ loadPersistedProjectId(`agent_session_workspace_${topicId}`), resetTopicLocalState, }); + useWorkspaceInitialSessionNavigation({ + initialSessionId, + currentSessionId: sessionId, + switchTopic, + }); useTrayModelShortcuts({ providerType, @@ -3158,31 +3240,6 @@ export function AgentChatWorkspace({ console.log("[AgentChatPage] 执行技能命令:", command); handleSend([], false, false, command); }, [pendingSkillKey, isThemeWorkbench, consumePendingSkill, handleSend]); - useEffect(() => { - if (!sessionId) { - return; - } - - updateTopicSnapshot( - sessionId, - buildLiveTaskSnapshot({ - messages: displayMessages, - isSending, - pendingActionCount: pendingActions.length, - queuedTurnCount: queuedTurns.length, - workspaceError: Boolean(workspacePathMissing || workspaceHealthError), - }), - ); - }, [ - displayMessages, - isSending, - pendingActions.length, - queuedTurns.length, - sessionId, - updateTopicSnapshot, - workspaceHealthError, - workspacePathMissing, - ]); const latestAssistantMessageId = useMemo( () => [...displayMessages] @@ -4530,6 +4587,13 @@ export function AgentChatWorkspace({ handleRefreshSkills, handleOpenBrowserAssistInCanvas: handleOpenBrowserRuntimeForBrowserAssist, browserAssistLaunching, + featuredSceneApps: workspaceSceneAppEntryActions.featuredSceneApps, + sceneAppsLoading: workspaceSceneAppEntryActions.sceneAppsLoading, + sceneAppLaunchingId: workspaceSceneAppEntryActions.sceneAppLaunchingId, + handleLaunchSceneApp: workspaceSceneAppEntryActions.handleLaunchSceneApp, + canResumeRecentSceneApp, + handleResumeRecentSceneApp, + handleOpenSceneAppsDirectory, hideHistoryToggle, showChatPanel: effectiveShowChatPanel, topBarChrome, @@ -4657,6 +4721,19 @@ export function AgentChatWorkspace({ workspaceServiceSkillEntryActions.handleAutomationDialogSubmit } /> + ); } diff --git a/src/components/agent/chat/agentChatWorkspaceContract.ts b/src/components/agent/chat/agentChatWorkspaceContract.ts index 9865e0027..faacc923f 100644 --- a/src/components/agent/chat/agentChatWorkspaceContract.ts +++ b/src/components/agent/chat/agentChatWorkspaceContract.ts @@ -21,6 +21,7 @@ export interface AgentChatWorkspaceProps { onNavigate?: (page: Page, params?: PageParams) => void; projectId?: string; contentId?: string; + initialSessionId?: string; initialRequestMetadata?: Record; initialAutoSendRequestMetadata?: Record; autoRunInitialPromptOnMount?: boolean; diff --git a/src/components/agent/chat/components/A2UITaskCard.test.tsx b/src/components/agent/chat/components/A2UITaskCard.test.tsx index 429391320..5cef81f7e 100644 --- a/src/components/agent/chat/components/A2UITaskCard.test.tsx +++ b/src/components/agent/chat/components/A2UITaskCard.test.tsx @@ -1,6 +1,9 @@ import { afterEach, describe, expect, it, vi } from "vitest"; import { A2UITaskCard, A2UITaskLoadingCard } from "./A2UITaskCard"; -import { CHAT_A2UI_TASK_CARD_PRESET } from "@/lib/workspace/a2ui"; +import { + CHAT_A2UI_TASK_CARD_PRESET, + type A2UIResponse, +} from "@/lib/workspace/a2ui"; import { cleanupMountedRoots, clickButtonByText, @@ -9,24 +12,59 @@ import { setupReactActEnvironment, type MountedRoot, } from "@/components/workspace/hooks/testUtils"; -import { - buildCreateConfirmationA2UI, - type PendingCreateConfirmation, -} from "@/components/workspace/utils/createConfirmationPolicy"; setupReactActEnvironment(); +const createConfirmationResponse: A2UIResponse = { + id: "create-confirmation-project-1", + root: "create_confirmation_root", + data: {}, + components: [ + { + id: "create_confirmation_hint", + component: "Text", + text: "我已经收到你的提示,先确认要继续已有内容还是创建新稿。", + variant: "body", + }, + { + id: "create_confirmation_option", + component: "ChoicePicker", + label: "你希望我如何开始这次创作?", + value: [], + variant: "mutuallyExclusive", + layout: "vertical", + options: [ + { + value: "continue_history", + label: "继续完善已有内容", + description: "直接回到最近相关文稿继续,不额外新建。", + }, + { + value: "new_post", + label: "新写一篇内容", + description: "创建新的独立文稿,从这次需求开始写。", + }, + ], + }, + { + id: "create_confirmation_root", + component: "Column", + children: ["create_confirmation_hint", "create_confirmation_option"], + gap: 16, + align: "stretch", + }, + ], + submitAction: { + label: "开始处理", + action: { + name: "submit", + }, + }, +}; + describe("A2UITaskCard", () => { const mountedRoots: MountedRoot[] = []; - const pendingConfirmation: PendingCreateConfirmation = { - projectId: "project-1", - source: "workspace_prompt", - creationMode: "guided", - initialUserPrompt: "帮我继续这篇内容", - createdAt: 1_700_000_000_000, - }; - afterEach(() => { cleanupMountedRoots(mountedRoots); vi.clearAllMocks(); @@ -37,7 +75,7 @@ describe("A2UITaskCard", () => { const { container } = mountHarness( A2UITaskCard, { - response: buildCreateConfirmationA2UI(pendingConfirmation), + response: createConfirmationResponse, onSubmit: submitSpy, preset: CHAT_A2UI_TASK_CARD_PRESET, }, @@ -84,7 +122,7 @@ describe("A2UITaskCard", () => { const { container } = mountHarness( A2UITaskCard, { - response: buildCreateConfirmationA2UI(pendingConfirmation), + response: createConfirmationResponse, onSubmit: submitSpy, preset: CHAT_A2UI_TASK_CARD_PRESET, compact: true, diff --git a/src/components/agent/chat/components/AgentTaskRuntimeCard.tsx b/src/components/agent/chat/components/AgentTaskRuntimeCard.tsx deleted file mode 100644 index 7328086ee..000000000 --- a/src/components/agent/chat/components/AgentTaskRuntimeCard.tsx +++ /dev/null @@ -1,182 +0,0 @@ -import React, { useMemo } from "react"; -import { AlertCircle, Clock3, GitBranch, Loader2, Wrench } from "lucide-react"; -import { cn } from "@/lib/utils"; -import type { TokenUsagePromptCacheNotice } from "./TokenUsageDisplay"; -import type { AgentTaskRuntimeCardModel } from "../utils/agentTaskRuntime"; - -interface AgentTaskRuntimeCardProps { - task: AgentTaskRuntimeCardModel; - promptCacheNotice?: TokenUsagePromptCacheNotice | null; -} - -function formatCompact(value: number): string { - return Math.max(0, value).toLocaleString(); -} - -function resolvePromptCacheSummary( - task: AgentTaskRuntimeCardModel, - promptCacheNotice?: TokenUsagePromptCacheNotice | null, -): string | null { - if (!task.usage) { - return null; - } - - const cachedRead = Math.max(0, task.usage.cached_input_tokens ?? 0); - const cacheWrite = Math.max(0, task.usage.cache_creation_input_tokens ?? 0); - - if (cachedRead + cacheWrite > 0) { - return `Prompt Cache ${formatCompact(cachedRead)}/${formatCompact(cacheWrite)}`; - } - - if (promptCacheNotice?.label) { - return `Prompt Cache ${promptCacheNotice.label}`; - } - - return null; -} - -function resolveFrameTone(status: AgentTaskRuntimeCardModel["status"]): string { - switch (status) { - case "failed": - case "aborted": - return "border-rose-200/80 bg-rose-50/75"; - case "waiting_input": - return "border-amber-200/80 bg-amber-50/75"; - case "queued": - return "border-slate-200/80 bg-slate-50"; - case "completed": - return "border-emerald-200/80 bg-emerald-50/75"; - case "running": - default: - return "border-sky-200/80 bg-sky-50/70"; - } -} - -function resolveStatusTone( - status: AgentTaskRuntimeCardModel["status"], -): string { - switch (status) { - case "failed": - case "aborted": - return "border-rose-200 bg-rose-100/80 text-rose-700"; - case "waiting_input": - return "border-amber-200 bg-amber-100/80 text-amber-700"; - case "queued": - return "border-slate-200 bg-white/80 text-slate-600"; - case "completed": - return "border-emerald-200 bg-emerald-100/80 text-emerald-700"; - case "running": - default: - return "border-sky-200 bg-sky-100/80 text-sky-700"; - } -} - -function resolveLeadingIcon(status: AgentTaskRuntimeCardModel["status"]) { - if (status === "running") { - return ; - } - if (status === "failed" || status === "aborted") { - return ; - } - return ; -} - -export const AgentTaskRuntimeCard: React.FC = ({ - task, - promptCacheNotice = null, -}) => { - const promptCacheSummary = useMemo( - () => resolvePromptCacheSummary(task, promptCacheNotice), - [promptCacheNotice, task], - ); - const usageSummary = useMemo(() => { - if (!task.usage) { - return null; - } - return `${formatCompact(task.usage.input_tokens + task.usage.output_tokens)} tokens`; - }, [task.usage]); - const shouldShowAccounting = - Boolean(task.usage) && - task.status !== "running" && - task.status !== "queued" && - task.status !== "waiting_input"; - - return ( -
- - {resolveLeadingIcon(task.status)} - - - {task.title} - - - {task.statusLabel} - - {task.detail ? ( - - {task.detail} - - ) : null} - {task.batchDescriptor ? ( - - {task.batchDescriptor.countLabel} - - ) : null} - {task.pendingRequestCount > 0 ? ( - - 待补 {task.pendingRequestCount} - - ) : null} - {task.queuedTurnCount > 0 ? ( - - - {task.queuedTurnCount} - - ) : null} - {task.subtaskStats?.total ? ( - - - {task.subtaskStats.active}/{task.subtaskStats.total} - - ) : null} - {shouldShowAccounting && usageSummary ? ( - - {usageSummary} - - ) : null} - {shouldShowAccounting && promptCacheSummary ? ( - - {promptCacheSummary} - - ) : null} -
- ); -}; - -export default AgentTaskRuntimeCard; diff --git a/src/components/agent/chat/components/AgentThreadFileCheckpointDialog.tsx b/src/components/agent/chat/components/AgentThreadFileCheckpointDialog.tsx new file mode 100644 index 000000000..0efe35fb6 --- /dev/null +++ b/src/components/agent/chat/components/AgentThreadFileCheckpointDialog.tsx @@ -0,0 +1,629 @@ +import React, { useEffect, useState } from "react"; +import { + AlertTriangle, + FileJson, + FileText, + GitCompare, + Loader2, +} from "lucide-react"; + +import { + diffAgentRuntimeFileCheckpoint, + getAgentRuntimeFileCheckpoint, + listAgentRuntimeFileCheckpoints, + type AgentRuntimeFileCheckpointDetail, + type AgentRuntimeFileCheckpointDiffResult, + type AgentRuntimeFileCheckpointListResult, +} from "@/lib/api/agentRuntime"; +import { Badge } from "@/components/ui/badge"; +import { Button } from "@/components/ui/button"; +import { + Dialog, + DialogContent, + DialogDescription, + DialogFooter, + DialogHeader, + DialogTitle, +} from "@/components/ui/dialog"; +import { cn } from "@/lib/utils"; + +interface AsyncState { + status: "idle" | "loading" | "ready" | "error"; + data: T | null; + error: string | null; +} + +interface AgentThreadFileCheckpointDialogProps { + open: boolean; + sessionId: string; + workingDir?: string | null; + defaultCheckpointId?: string | null; + onOpenChange: (open: boolean) => void; +} + +function createAsyncState( + status: AsyncState["status"], + data: T | null = null, + error: string | null = null, +): AsyncState { + return { + status, + data, + error, + }; +} + +function parseDiagnosticDate(value?: string | number | null): Date | null { + if (typeof value === "number") { + const normalizedValue = value > 10_000_000_000 ? value : value * 1000; + const date = new Date(normalizedValue); + return Number.isNaN(date.getTime()) ? null : date; + } + + if (typeof value === "string" && value.trim()) { + const date = new Date(value); + return Number.isNaN(date.getTime()) ? null : date; + } + + return null; +} + +function formatDiagnosticDateTime( + value?: string | number | null, +): string | null { + const date = parseDiagnosticDate(value); + if (!date) { + return null; + } + + return date.toLocaleString("zh-CN", { + month: "2-digit", + day: "2-digit", + hour: "2-digit", + minute: "2-digit", + }); +} + +function normalizePreviewText( + value?: string | null, + maxLength = 140, +): string | null { + if (typeof value !== "string") { + return null; + } + + const normalized = value.trim().replace(/\s+/g, " "); + if (!normalized) { + return null; + } + + if (normalized.length <= maxLength) { + return normalized; + } + + return `${normalized.slice(0, maxLength - 1).trimEnd()}…`; +} + +function serializePreviewValue(value: unknown): string { + if (typeof value === "string") { + return value; + } + + if (value == null) { + return "暂无可展示内容"; + } + + return JSON.stringify( + value, + (_key, item) => (item instanceof Date ? item.toISOString() : item), + 2, + ); +} + +function resolveCheckpointVersionLabel(versionNo?: number): string | null { + return typeof versionNo === "number" ? `v${versionNo}` : null; +} + +export function AgentThreadFileCheckpointDialog({ + open, + sessionId, + workingDir, + defaultCheckpointId, + onOpenChange, +}: AgentThreadFileCheckpointDialogProps) { + const [listState, setListState] = useState< + AsyncState + >(createAsyncState("idle")); + const [detailState, setDetailState] = useState< + AsyncState + >(createAsyncState("idle")); + const [diffState, setDiffState] = useState< + AsyncState + >(createAsyncState("idle")); + const [selectedCheckpointId, setSelectedCheckpointId] = useState(""); + + useEffect(() => { + if (!open || !sessionId) { + return; + } + + let cancelled = false; + setListState(createAsyncState("loading")); + setDetailState(createAsyncState("idle")); + setDiffState(createAsyncState("idle")); + setSelectedCheckpointId(""); + + void listAgentRuntimeFileCheckpoints({ + session_id: sessionId, + }) + .then((result) => { + if (cancelled) { + return; + } + + const checkpoints = result.checkpoints || []; + const defaultCheckpoint = + checkpoints.find( + (checkpoint) => checkpoint.checkpoint_id === defaultCheckpointId, + ) || checkpoints[0] || null; + + setListState( + createAsyncState( + "ready", + result, + ), + ); + setSelectedCheckpointId(defaultCheckpoint?.checkpoint_id || ""); + }) + .catch((error) => { + if (cancelled) { + return; + } + + setListState( + createAsyncState( + "error", + null, + error instanceof Error + ? error.message + : "文件快照列表加载失败,请稍后重试", + ), + ); + }); + + return () => { + cancelled = true; + }; + }, [defaultCheckpointId, open, sessionId]); + + useEffect(() => { + if (!open || !sessionId || !selectedCheckpointId) { + return; + } + + let cancelled = false; + setDetailState(createAsyncState("loading")); + setDiffState(createAsyncState("loading")); + + void Promise.allSettled([ + getAgentRuntimeFileCheckpoint({ + session_id: sessionId, + checkpoint_id: selectedCheckpointId, + }), + diffAgentRuntimeFileCheckpoint({ + session_id: sessionId, + checkpoint_id: selectedCheckpointId, + }), + ]).then(([detailResult, diffResult]) => { + if (cancelled) { + return; + } + + if (detailResult.status === "fulfilled") { + setDetailState( + createAsyncState( + "ready", + detailResult.value, + ), + ); + } else { + setDetailState( + createAsyncState( + "error", + null, + detailResult.reason instanceof Error + ? detailResult.reason.message + : "文件快照详情加载失败,请稍后重试", + ), + ); + } + + if (diffResult.status === "fulfilled") { + setDiffState( + createAsyncState( + "ready", + diffResult.value, + ), + ); + } else { + setDiffState( + createAsyncState( + "error", + null, + diffResult.reason instanceof Error + ? diffResult.reason.message + : "文件快照差异加载失败,请稍后重试", + ), + ); + } + }); + + return () => { + cancelled = true; + }; + }, [open, selectedCheckpointId, sessionId]); + + const checkpoints = listState.data?.checkpoints ?? []; + const selectedCheckpoint = + checkpoints.find( + (checkpoint) => checkpoint.checkpoint_id === selectedCheckpointId, + ) || null; + const documentPreviewTitle = detailState.data?.checkpoint_document + ? "快照文档 JSON" + : detailState.data?.live_document + ? "当前文档 JSON" + : detailState.data?.content + ? "快照原文" + : "快照内容"; + const documentPreviewValue = + detailState.data?.checkpoint_document ?? + detailState.data?.live_document ?? + detailState.data?.content ?? + null; + const diffPreviewValue = diffState.data?.diff ?? null; + const detailLoading = + detailState.status === "loading" || diffState.status === "loading"; + + return ( + + + + 文件快照详情 + + + 当前弹窗直接消费 runtime file checkpoint 的 current 主链: + `list / detail / diff`。 + + + session={sessionId} + + {workingDir ? ( + + workspace={workingDir} + + ) : null} + + + +
+
+
+
+
+ 快照版本列表 +
+ {typeof listState.data?.checkpoint_count === "number" ? ( + + 共 {listState.data.checkpoint_count} 个 + + ) : null} + {listState.status === "loading" ? ( + + + 正在拉取列表 + + ) : null} +
+ + {listState.status === "error" ? ( +
+ {listState.error} +
+ ) : checkpoints.length > 0 ? ( +
+ {checkpoints.map((checkpoint) => { + const versionLabel = resolveCheckpointVersionLabel( + checkpoint.version_no, + ); + const updatedAtLabel = formatDiagnosticDateTime( + checkpoint.updated_at, + ); + const previewText = normalizePreviewText( + checkpoint.preview_text, + ); + const isSelected = + checkpoint.checkpoint_id === selectedCheckpointId; + + return ( + + ); + })} +
+ ) : listState.status === "ready" ? ( +
+ 当前线程还没有可展示的文件快照版本。 +
+ ) : null} +
+
+ +
+
+
+
+
+
+ + 当前快照 +
+ {selectedCheckpoint ? ( + + {resolveCheckpointVersionLabel( + selectedCheckpoint.version_no, + ) || "未标版本"} + + ) : null} + {detailLoading ? ( + + + 正在同步 detail / diff + + ) : null} +
+
+ {selectedCheckpoint?.path || "请选择左侧文件快照"} +
+
+
+ +
+ {selectedCheckpoint?.title ? ( + + 标题 {selectedCheckpoint.title} + + ) : null} + {selectedCheckpoint?.source ? ( + + 来源 {selectedCheckpoint.source} + + ) : null} + {selectedCheckpoint?.kind ? ( + + 类型 {selectedCheckpoint.kind} + + ) : null} + {selectedCheckpoint?.status ? ( + + 状态 {selectedCheckpoint.status} + + ) : null} +
+
+ +
+
+
+ 快照信息 +
+ {detailState.status === "error" ? ( +
+ {detailState.error} +
+ ) : detailState.data ? ( +
+
live_path:{detailState.data.live_path}
+
snapshot_path:{detailState.data.snapshot_path}
+
+ version_history:{detailState.data.version_history.length} +
+
+ request_id: + {detailState.data.checkpoint.request_id || "无"} +
+
+ 最近更新时间: + {formatDiagnosticDateTime( + detailState.data.checkpoint.updated_at, + ) || "未知"} +
+
+ ) : ( +
+ 选中快照后会在这里显示基础信息。 +
+ )} +
+ +
+
+ + 版本与校验 +
+ {detailState.status === "error" ? ( +
+ {detailState.error} +
+ ) : detailState.data || diffState.data ? ( +
+
+ {diffState.data?.previous_version_id ? ( + + previous {diffState.data.previous_version_id} + + ) : null} + {diffState.data?.current_version_id ? ( + + current {diffState.data.current_version_id} + + ) : null} +
+ {detailState.data?.validation_issues.length ? ( +
+ {detailState.data.validation_issues.map((issue) => ( +
+ {issue} +
+ ))} +
+ ) : ( +
无校验问题
+ )} + {diffState.status === "error" ? ( +
+ {diffState.error} +
+ ) : null} +
+ ) : ( +
+ detail / diff 返回后会在这里展示版本锚点与校验结果。 +
+ )} +
+
+ +
+
+ + {documentPreviewTitle} +
+
+
+                  {serializePreviewValue(documentPreviewValue)}
+                
+
+
+ +
+
+ + Diff 预览 +
+
+
+                  {serializePreviewValue(diffPreviewValue)}
+                
+
+
+
+
+ + + + +
+
+ ); +} + +export default AgentThreadFileCheckpointDialog; diff --git a/src/components/agent/chat/components/AgentThreadReliabilityPanel.test.tsx b/src/components/agent/chat/components/AgentThreadReliabilityPanel.test.tsx index ff3ea683c..e00cc4994 100644 --- a/src/components/agent/chat/components/AgentThreadReliabilityPanel.test.tsx +++ b/src/components/agent/chat/components/AgentThreadReliabilityPanel.test.tsx @@ -10,12 +10,26 @@ import type { AgentThreadTurn, Message, } from "../types"; -import type { AgentRuntimeThreadReadModel } from "@/lib/api/agentRuntime"; +import type { + AgentRuntimeFileCheckpointDetail, + AgentRuntimeFileCheckpointDiffResult, + AgentRuntimeFileCheckpointListResult, + AgentRuntimeThreadReadModel, +} from "@/lib/api/agentRuntime"; import type { TeamMemorySnapshot } from "@/lib/teamMemorySync"; import type { HarnessSessionState } from "../utils/harnessState"; import { recordRuntimeMemoryPrefetchHistory } from "@/lib/runtimeMemoryPrefetchHistory"; -const { mockToast, mockPrefetchContextMemoryForTurn } = vi.hoisted(() => ({ +const { + diffAgentRuntimeFileCheckpointMock, + getAgentRuntimeFileCheckpointMock, + listAgentRuntimeFileCheckpointsMock, + mockToast, + mockPrefetchContextMemoryForTurn, +} = vi.hoisted(() => ({ + diffAgentRuntimeFileCheckpointMock: vi.fn(), + getAgentRuntimeFileCheckpointMock: vi.fn(), + listAgentRuntimeFileCheckpointsMock: vi.fn(), mockToast: { success: vi.fn(), error: vi.fn(), @@ -27,6 +41,18 @@ vi.mock("sonner", () => ({ toast: mockToast, })); +vi.mock("@/lib/api/agentRuntime", async () => { + const actual = await vi.importActual( + "@/lib/api/agentRuntime", + ); + return { + ...actual, + diffAgentRuntimeFileCheckpoint: diffAgentRuntimeFileCheckpointMock, + getAgentRuntimeFileCheckpoint: getAgentRuntimeFileCheckpointMock, + listAgentRuntimeFileCheckpoints: listAgentRuntimeFileCheckpointsMock, + }; +}); + vi.mock("@/lib/api/memoryRuntime", () => ({ prefetchContextMemoryForTurn: mockPrefetchContextMemoryForTurn, })); @@ -39,6 +65,171 @@ interface MountedHarness { const mountedRoots: MountedHarness[] = []; let originalClipboard: Clipboard | undefined; +function createFileCheckpointListResult(): AgentRuntimeFileCheckpointListResult { + return { + session_id: "session-file-1", + thread_id: "thread-file-1", + checkpoint_count: 2, + checkpoints: [ + { + checkpoint_id: "artifact-document:req-2", + turn_id: "turn-10", + path: ".lime/artifacts/thread-file/persistence-map.artifact.json", + source: "artifact_document_service", + updated_at: "2026-04-16T09:12:00Z", + version_no: 8, + version_id: "artifact-document:req-2:v8", + request_id: "req-2", + title: "持久化 current map", + kind: "artifact_document", + status: "ready", + preview_text: "补上 file checkpoint 对话框入口", + snapshot_path: + ".lime/artifacts/thread-file/.versions/persistence-map.v8.json", + validation_issue_count: 1, + }, + { + checkpoint_id: "artifact-document:req-1", + turn_id: "turn-9", + path: ".lime/artifacts/thread-file/replay.artifact.json", + source: "artifact_document_service", + updated_at: "2026-04-16T08:58:00Z", + version_no: 7, + version_id: "artifact-document:req-1:v7", + request_id: "req-1", + title: "Replay case", + kind: "artifact_document", + status: "ready", + preview_text: "上一版 replay 导出", + snapshot_path: + ".lime/artifacts/thread-file/.versions/replay-case.v7.json", + validation_issue_count: 0, + }, + ], + }; +} + +function createFileCheckpointDetail( + checkpointId: string, +): AgentRuntimeFileCheckpointDetail { + if (checkpointId === "artifact-document:req-1") { + return { + session_id: "session-file-1", + thread_id: "thread-file-1", + checkpoint: { + checkpoint_id: "artifact-document:req-1", + turn_id: "turn-9", + path: ".lime/artifacts/thread-file/replay.artifact.json", + source: "artifact_document_service", + updated_at: "2026-04-16T08:58:00Z", + version_no: 7, + version_id: "artifact-document:req-1:v7", + request_id: "req-1", + title: "Replay case", + kind: "artifact_document", + status: "ready", + preview_text: "上一版 replay 导出", + snapshot_path: + ".lime/artifacts/thread-file/.versions/replay-case.v7.json", + validation_issue_count: 0, + }, + live_path: ".lime/artifacts/thread-file/replay.artifact.json", + snapshot_path: + ".lime/artifacts/thread-file/.versions/replay-case.v7.json", + checkpoint_document: { + title: "Replay case", + body: "上一版导出仍使用旧摘要文案", + }, + live_document: { + title: "Replay case", + body: "当前已切到新的 evidence 结构", + }, + version_history: [{ version_id: "artifact-document:req-1:v6" }], + validation_issues: [], + metadata: { + source: "artifact_document_service", + }, + content: "上一版 replay 导出", + }; + } + + return { + session_id: "session-file-1", + thread_id: "thread-file-1", + checkpoint: { + checkpoint_id: "artifact-document:req-2", + turn_id: "turn-10", + path: ".lime/artifacts/thread-file/persistence-map.artifact.json", + source: "artifact_document_service", + updated_at: "2026-04-16T09:12:00Z", + version_no: 8, + version_id: "artifact-document:req-2:v8", + request_id: "req-2", + title: "持久化 current map", + kind: "artifact_document", + status: "ready", + preview_text: "补上 file checkpoint 对话框入口", + snapshot_path: + ".lime/artifacts/thread-file/.versions/persistence-map.v8.json", + validation_issue_count: 1, + }, + live_path: ".lime/artifacts/thread-file/persistence-map.artifact.json", + snapshot_path: + ".lime/artifacts/thread-file/.versions/persistence-map.v8.json", + checkpoint_document: { + title: "持久化 current map", + summary: "已在可靠性面板接入 file checkpoint detail/diff 对话框", + }, + live_document: { + title: "持久化 current map", + summary: "当前工作区产物已经更新到 v8", + }, + version_history: [ + { version_id: "artifact-document:req-2:v7" }, + { version_id: "artifact-document:req-2:v6" }, + ], + validation_issues: ["缺少 reviewer 字段"], + metadata: { + source: "artifact_document_service", + }, + content: "补上 file checkpoint 对话框入口", + }; +} + +function createFileCheckpointDiff( + checkpointId: string, +): AgentRuntimeFileCheckpointDiffResult { + if (checkpointId === "artifact-document:req-1") { + return { + session_id: "session-file-1", + thread_id: "thread-file-1", + checkpoint: createFileCheckpointDetail(checkpointId).checkpoint, + current_version_id: "artifact-document:req-1:v7", + previous_version_id: "artifact-document:req-1:v6", + diff: { + changes: ["summary 从旧结构迁移到 replay 包"], + }, + }; + } + + return { + session_id: "session-file-1", + thread_id: "thread-file-1", + checkpoint: createFileCheckpointDetail(checkpointId).checkpoint, + current_version_id: "artifact-document:req-2:v8", + previous_version_id: "artifact-document:req-2:v7", + diff: { + changes: ["新增可靠性面板快照详情入口"], + }, + }; +} + +async function flushPromises(rounds = 4) { + for (let index = 0; index < rounds; index += 1) { + await Promise.resolve(); + } +} + beforeEach(() => { ( globalThis as typeof globalThis & { @@ -63,6 +254,17 @@ beforeEach(() => { latest_compaction: null, prompt: null, }); + listAgentRuntimeFileCheckpointsMock.mockResolvedValue( + createFileCheckpointListResult(), + ); + getAgentRuntimeFileCheckpointMock.mockImplementation( + async ({ checkpoint_id }: { checkpoint_id: string }) => + createFileCheckpointDetail(checkpoint_id), + ); + diffAgentRuntimeFileCheckpointMock.mockImplementation( + async ({ checkpoint_id }: { checkpoint_id: string }) => + createFileCheckpointDiff(checkpoint_id), + ); }); afterEach(() => { @@ -263,6 +465,114 @@ describe("AgentThreadReliabilityPanel", () => { expect(onInterruptCurrentTurn).toHaveBeenCalledTimes(1); }); + it("应展示最近文件快照摘要", () => { + const container = renderPanel({ + threadRead: { + thread_id: "thread-file", + status: "completed", + file_checkpoint_summary: { + count: 2, + latest_checkpoint: { + checkpoint_id: "artifact-document:req-1", + turn_id: "turn-9", + path: ".lime/artifacts/thread-file/demo.artifact.json", + source: "artifact_document_service", + updated_at: "2026-04-15T09:08:00Z", + version_no: 7, + version_id: "artifact-document:req-1:v7", + preview_text: "补充了持久化快照对齐说明", + validation_issue_count: 0, + title: "持久化对齐说明", + status: "ready", + }, + }, + }, + }); + + expect(container.textContent).toContain("最近文件快照"); + expect(container.textContent).toContain( + ".lime/artifacts/thread-file/demo.artifact.json", + ); + expect(container.textContent).toContain("共 2 个"); + expect(container.textContent).toContain("v7"); + expect(container.textContent).toContain("补充了持久化快照对齐说明"); + }); + + it("应支持打开文件快照详情并拉取 list、detail、diff", async () => { + const container = renderPanel({ + threadRead: { + thread_id: "thread-file-1", + status: "completed", + file_checkpoint_summary: { + count: 2, + latest_checkpoint: createFileCheckpointListResult().checkpoints[0], + }, + }, + diagnosticRuntimeContext: { + sessionId: "session-file-1", + workspaceId: "workspace-file-1", + workingDir: "/workspace/project-a", + }, + }); + + const openButton = container.querySelector( + '[data-testid="agent-thread-file-checkpoint-open"]', + ); + expect(openButton).not.toBeNull(); + expect(openButton?.textContent).toContain("查看快照详情"); + + await act(async () => { + openButton?.dispatchEvent(new MouseEvent("click", { bubbles: true })); + await flushPromises(); + }); + + expect(listAgentRuntimeFileCheckpointsMock).toHaveBeenCalledWith({ + session_id: "session-file-1", + }); + expect(getAgentRuntimeFileCheckpointMock).toHaveBeenCalledWith({ + session_id: "session-file-1", + checkpoint_id: "artifact-document:req-2", + }); + expect(diffAgentRuntimeFileCheckpointMock).toHaveBeenCalledWith({ + session_id: "session-file-1", + checkpoint_id: "artifact-document:req-2", + }); + expect(document.body.textContent).toContain("文件快照详情"); + expect(document.body.textContent).toContain("缺少 reviewer 字段"); + expect(document.body.textContent).toContain( + "新增可靠性面板快照详情入口", + ); + expect(document.body.textContent).toContain("artifact-document:req-2:v7"); + expect(document.body.textContent).toContain( + ".lime/artifacts/thread-file/persistence-map.artifact.json", + ); + + const previousCheckpointButton = document.body.querySelector( + '[data-testid="agent-thread-file-checkpoint-item-artifact-document:req-1"]', + ); + expect(previousCheckpointButton).not.toBeNull(); + + await act(async () => { + previousCheckpointButton?.dispatchEvent( + new MouseEvent("click", { bubbles: true }), + ); + await flushPromises(); + }); + + expect(getAgentRuntimeFileCheckpointMock).toHaveBeenLastCalledWith({ + session_id: "session-file-1", + checkpoint_id: "artifact-document:req-1", + }); + expect(diffAgentRuntimeFileCheckpointMock).toHaveBeenLastCalledWith({ + session_id: "session-file-1", + checkpoint_id: "artifact-document:req-1", + }); + expect(document.body.textContent).toContain("上一版导出仍使用旧摘要文案"); + expect(document.body.textContent).toContain( + "summary 从旧结构迁移到 replay 包", + ); + }); + it("中断进行中时,面板应展示中断中的瞬时状态", async () => { let resolveInterrupt: (() => void) | null = null; const onInterruptCurrentTurn = vi.fn( diff --git a/src/components/agent/chat/components/AgentThreadReliabilityPanel.tsx b/src/components/agent/chat/components/AgentThreadReliabilityPanel.tsx index c5ca279ff..13477ee56 100644 --- a/src/components/agent/chat/components/AgentThreadReliabilityPanel.tsx +++ b/src/components/agent/chat/components/AgentThreadReliabilityPanel.tsx @@ -3,6 +3,7 @@ import { AlertTriangle, Clock3, Copy, + FileText, ListTodo, Loader2, PauseCircle, @@ -48,6 +49,7 @@ import { type ThreadReliabilityTone, } from "../utils/threadReliabilityView"; import { AgentIncidentPanel } from "./AgentIncidentPanel"; +import { AgentThreadFileCheckpointDialog } from "./AgentThreadFileCheckpointDialog"; import { AgentThreadMemoryPrefetchPreview } from "./AgentThreadMemoryPrefetchPreview"; import { AgentThreadOutcomeSummary } from "./AgentThreadOutcomeSummary"; @@ -708,6 +710,19 @@ function buildReliabilityDiagnosticText(params: { sections.push("- 无"); } + sections.push("", "### 最近文件快照"); + if (threadRead?.file_checkpoint_summary?.latest_checkpoint) { + const latestCheckpoint = + threadRead.file_checkpoint_summary.latest_checkpoint; + sections.push(`- 快照总数:${threadRead.file_checkpoint_summary.count}`); + sections.push(`- 最近文件:${latestCheckpoint.path}`); + sections.push(`- 最近版本:${latestCheckpoint.version_no ?? "未知"}`); + sections.push(`- 最近更新时间:${latestCheckpoint.updated_at || "未知"}`); + sections.push(`- 最近摘要:${latestCheckpoint.preview_text || "无"}`); + } else { + sections.push("- 无"); + } + sections.push("", "### 当前回合记忆预取"); sections.push(...buildMemoryPrefetchDiagnosticLines(memoryPrefetchState)); @@ -938,6 +953,8 @@ export const AgentThreadReliabilityPanel: React.FC< const [isResumingThread, setIsResumingThread] = useState(false); const [isReplayingRequest, setIsReplayingRequest] = useState(false); const [isPromotingQueuedTurn, setIsPromotingQueuedTurn] = useState(false); + const [fileCheckpointDialogOpen, setFileCheckpointDialogOpen] = + useState(false); const [memoryPrefetchState, setMemoryPrefetchState] = useState({ status: "idle", @@ -987,6 +1004,15 @@ export const AgentThreadReliabilityPanel: React.FC< ); const latestCompactionSummary = latestCompactionBoundary?.summary_preview || "已生成压缩摘要预览"; + const fileCheckpointSummary = threadRead?.file_checkpoint_summary || null; + const latestFileCheckpoint = fileCheckpointSummary?.latest_checkpoint || null; + const latestFileCheckpointUpdatedLabel = formatDiagnosticDateTime( + latestFileCheckpoint?.updated_at, + ); + const latestFileCheckpointPreview = truncateDiagnosticText( + latestFileCheckpoint?.preview_text, + 180, + ); const latestTurnPrompt = useMemo(() => { const activeTurn = turns.find((turn) => turn.id === currentTurnId) || @@ -1612,7 +1638,9 @@ export const AgentThreadReliabilityPanel: React.FC< data-testid="agent-thread-reliability-memory-prefetch-baseline" >
-
相对最近基线
+
+ 相对最近基线 +
) : null} + {fileCheckpointSummary?.count ? ( +
+
+
+
+ + 最近文件快照 +
+ + 共 {fileCheckpointSummary.count} 个 + + {typeof latestFileCheckpoint?.version_no === "number" ? ( + + v{latestFileCheckpoint.version_no} + + ) : null} +
+ {diagnosticSessionId ? ( + + ) : null} +
+ {latestFileCheckpoint ? ( + <> +
+ {latestFileCheckpoint.path} +
+ {latestFileCheckpointPreview ? ( +
+ {latestFileCheckpointPreview} +
+ ) : null} +
+ + 最近更新时间 {latestFileCheckpointUpdatedLabel || "未知"} + + {latestFileCheckpoint.title ? ( + 标题 {latestFileCheckpoint.title} + ) : null} + {latestFileCheckpoint.status ? ( + 状态 {latestFileCheckpoint.status} + ) : null} + {latestFileCheckpoint.validation_issue_count > 0 ? ( + + 校验问题 {latestFileCheckpoint.validation_issue_count} + + ) : null} +
+ + ) : ( +
+ 当前线程已记录文件快照,但还没有可展示的最近版本摘要。 +
+ )} +
+ ) : null} + + {diagnosticSessionId ? ( + + ) : null} +
{view.outcome ? ( diff --git a/src/components/agent/chat/components/AgentThreadTimeline.test.tsx b/src/components/agent/chat/components/AgentThreadTimeline.test.tsx index 676df1426..2a234a598 100644 --- a/src/components/agent/chat/components/AgentThreadTimeline.test.tsx +++ b/src/components/agent/chat/components/AgentThreadTimeline.test.tsx @@ -720,7 +720,7 @@ describe("AgentThreadTimeline", () => { { ...createBaseItem("summary-1", 1), type: "turn_summary", - text: "直接回答优先\n当前请求无需默认升级为搜索或任务。", + text: "直接回答优先\n当前请求无需默认升级为搜索或任务,先直接给出结果,必要时再调用工具。", }, ]; diff --git a/src/components/agent/chat/components/EmptyState.test.tsx b/src/components/agent/chat/components/EmptyState.test.tsx index f8911a46f..f4b1fbb27 100644 --- a/src/components/agent/chat/components/EmptyState.test.tsx +++ b/src/components/agent/chat/components/EmptyState.test.tsx @@ -6,6 +6,7 @@ import { EmptyState } from "./EmptyState"; import type { Character } from "@/lib/api/memory"; import type { Skill } from "@/lib/api/skills"; import type { ServiceSkillHomeItem } from "../service-skills/types"; +import type { SceneAppEntryCardItem } from "../sceneappEntryTypes"; import { recordSlashEntryUsage } from "../skill-selection/slashEntryUsage"; import { recordEntryRecommendedSolutionUsage } from "../utils/entryRecommendedSolutions"; @@ -14,6 +15,16 @@ const { mockGetConfig, mockProjectSelector } = vi.hoisted(() => ({ mockProjectSelector: vi.fn(), })); +const { + mockGatewayChannelStatus, + mockGetBrowserConnectorSettings, + mockGetChromeBridgeStatus, +} = vi.hoisted(() => ({ + mockGatewayChannelStatus: vi.fn(), + mockGetBrowserConnectorSettings: vi.fn(), + mockGetChromeBridgeStatus: vi.fn(), +})); + const mockCharacterMention = vi.fn< (props: { @@ -31,6 +42,15 @@ vi.mock("@/lib/api/appConfig", () => ({ getConfig: mockGetConfig, })); +vi.mock("@/lib/api/channelsRuntime", () => ({ + gatewayChannelStatus: mockGatewayChannelStatus, +})); + +vi.mock("@/lib/webview-api", () => ({ + getBrowserConnectorSettings: mockGetBrowserConnectorSettings, + getChromeBridgeStatus: mockGetChromeBridgeStatus, +})); + vi.mock("@/components/projects/ProjectSelector", () => ({ ProjectSelector: (props: { value: string | null; @@ -169,6 +189,25 @@ beforeEach(() => { } ).IS_REACT_ACT_ENVIRONMENT = true; mockGetConfig.mockImplementation(async () => ({})); + mockGatewayChannelStatus.mockResolvedValue({ + status: { + running_accounts: 0, + }, + }); + mockGetBrowserConnectorSettings.mockResolvedValue({ + enabled: true, + system_connectors: [ + { + connector_type: "chrome", + available: true, + authorization_status: "authorized", + }, + ], + }); + mockGetChromeBridgeStatus.mockResolvedValue({ + observer_count: 1, + control_count: 0, + }); window.localStorage.clear(); }); @@ -284,6 +323,24 @@ function createSceneBoundServiceSkill(): ServiceSkillHomeItem { }; } +function createSceneAppEntry(): SceneAppEntryCardItem { + return { + id: "story-video-suite", + title: "短视频编排", + summary: "把文本、线框图、配乐和短视频草稿串成结果链。", + businessLabel: "多模态组合", + valueStatement: "从一句主题串起脚本、线框图、配乐方向和短视频草稿。", + deliveryLabel: "短视频结果包", + executionLabel: "当前会话继续", + executionTone: "sky", + patternSummary: "步骤链 · 结果生成", + infraSummary: "组合蓝图 · 项目沉淀 · 云端编排", + sourceLabel: "将基于当前输入启动", + sourcePreview: "做一条新品发布短视频", + actionLabel: "开始组合", + }; +} + describe("EmptyState", () => { it("首页应以 slogan 作为主视觉并保留创作语义", async () => { const container = renderEmptyState({ @@ -548,6 +605,72 @@ describe("EmptyState", () => { expect(container.textContent).not.toContain("连接浏览器"); }); + it("通用首页不再渲染 runtime 总览层", async () => { + const onOpenMemoryWorkbench = vi.fn(); + const onOpenChannels = vi.fn(); + const onOpenChromeRelay = vi.fn(); + const onOpenOpenClaw = vi.fn(); + const container = renderEmptyState({ + activeTheme: "general", + runtimeToolAvailability: { + source: "runtime_tools", + known: true, + agentInitialized: true, + availableToolCount: 9, + webSearch: true, + subagentCore: true, + subagentTeamTools: true, + subagentRuntime: true, + taskRuntime: true, + missingSubagentCoreTools: [], + missingSubagentTeamTools: [], + missingTaskTools: [], + }, + runtimeTaskCard: { + taskId: "task-1", + title: "当前任务", + summary: "正在执行", + status: "running", + statusLabel: "进行中", + phase: "tool_batch", + phaseLabel: "工具批次处理中", + detail: "正在执行工具批次", + supportingLines: [], + batchDescriptor: null, + queuedTurnCount: 0, + pendingRequestCount: 0, + subtaskStats: null, + }, + onOpenMemoryWorkbench, + onOpenChannels, + onOpenChromeRelay, + onOpenOpenClaw, + }); + + await act(async () => { + await Promise.resolve(); + await Promise.resolve(); + }); + + expect( + container.querySelector('[data-testid="empty-state-runtime-overview"]'), + ).toBeNull(); + expect(container.textContent).not.toContain("当前能力、执行态和远程入口"); + expect(container.textContent).not.toContain("Runtime Tool Surface"); + expect(container.textContent).not.toContain("Thread Runtime"); + expect(container.textContent).not.toContain("消息渠道 + 浏览器连接器"); + expect(container.textContent).not.toContain("当前回合 / 长期 / Team / 压缩"); + expect(container.textContent).not.toContain("频道入口"); + expect(container.textContent).not.toContain("浏览器连接器"); + expect(container.textContent).not.toContain("OpenClaw 兼容入口"); + expect(container.textContent).not.toContain("打开记忆工作台"); + + expect(onOpenChannels).not.toHaveBeenCalled(); + expect(onOpenChromeRelay).not.toHaveBeenCalled(); + expect(onOpenOpenClaw).not.toHaveBeenCalled(); + expect(onOpenMemoryWorkbench).not.toHaveBeenCalled(); + }); + it("点击浏览器能力卡图片应触发浏览器接入", async () => { const onLaunchBrowserAssist = vi.fn(); const container = renderEmptyState({ @@ -1206,4 +1329,81 @@ describe("EmptyState", () => { expect(onLaunchBrowserAssist).toHaveBeenCalledTimes(1); }); + + it("通用主题应渲染 SceneApp 面板并触发启动回调", async () => { + const onLaunchSceneApp = vi.fn(); + const container = renderEmptyState({ + activeTheme: "general", + featuredSceneApps: [createSceneAppEntry()], + onLaunchSceneApp, + }); + await act(async () => { + await Promise.resolve(); + }); + + expect(container.textContent).toContain("场景应用"); + expect(container.textContent).toContain("短视频编排"); + + const launchButton = container.querySelector( + '[data-testid="sceneapp-launch-story-video-suite"]', + ) as HTMLButtonElement | null; + expect(launchButton).toBeTruthy(); + + act(() => { + launchButton?.click(); + }); + + expect(onLaunchSceneApp).toHaveBeenCalledWith("story-video-suite"); + }); + + it("通用主题应提供进入 SceneApp 目录页的入口", async () => { + const onOpenSceneAppsDirectory = vi.fn(); + const container = renderEmptyState({ + activeTheme: "general", + featuredSceneApps: [createSceneAppEntry()], + onOpenSceneAppsDirectory, + }); + await act(async () => { + await Promise.resolve(); + }); + + const browseButton = Array.from(container.querySelectorAll("button")).find( + (button) => button.textContent?.includes("查看全部场景"), + ); + expect(browseButton).toBeTruthy(); + + act(() => { + browseButton?.dispatchEvent(new MouseEvent("click", { bubbles: true })); + }); + + expect(onOpenSceneAppsDirectory).toHaveBeenCalledTimes(1); + }); + + it("存在最近 SceneApp 时应提供继续最近场景入口", async () => { + const onResumeRecentSceneApp = vi.fn(); + const container = renderEmptyState({ + activeTheme: "general", + featuredSceneApps: [createSceneAppEntry()], + canResumeRecentSceneApp: true, + onResumeRecentSceneApp, + }); + await act(async () => { + await Promise.resolve(); + }); + + expect(container.textContent).toContain( + "继续最近场景会恢复你上次打开的 SceneApp、项目和运行上下文。", + ); + + const resumeButton = Array.from(container.querySelectorAll("button")).find( + (button) => button.textContent?.includes("继续最近场景"), + ); + expect(resumeButton).toBeTruthy(); + + act(() => { + resumeButton?.dispatchEvent(new MouseEvent("click", { bubbles: true })); + }); + + expect(onResumeRecentSceneApp).toHaveBeenCalledTimes(1); + }); }); diff --git a/src/components/agent/chat/components/EmptyState.tsx b/src/components/agent/chat/components/EmptyState.tsx index 0451b3166..843860830 100644 --- a/src/components/agent/chat/components/EmptyState.tsx +++ b/src/components/agent/chat/components/EmptyState.tsx @@ -26,6 +26,7 @@ import { import { EmptyStateComposerPanel } from "./EmptyStateComposerPanel"; import { EmptyStateHero } from "./EmptyStateHero"; import { EmptyStateQuickActions } from "./EmptyStateQuickActions"; +import { EmptyStateSceneAppsPanel } from "./EmptyStateSceneAppsPanel"; import { EMPTY_STATE_CONTENT_WRAPPER_CLASSNAME, EMPTY_STATE_PAGE_CONTAINER_CLASSNAME, @@ -64,6 +65,9 @@ import capabilitySkillsPlaceholder from "@/assets/entry-surface/capability-skill import capabilityAutomationsPlaceholder from "@/assets/entry-surface/capability-automations-lime.png"; import capabilityAgentTeamsPlaceholder from "@/assets/entry-surface/capability-agent-teams-lime.png"; import capabilityBrowserAssistPlaceholder from "@/assets/entry-surface/capability-browser-assist-lime.png"; +import type { SceneAppEntryCardItem } from "../sceneappEntryTypes"; +import type { RuntimeToolAvailability } from "../utils/runtimeToolAvailability"; +import type { AgentTaskRuntimeCardModel } from "../utils/agentTaskRuntime"; const contentReveal = keyframes` from { @@ -255,12 +259,38 @@ interface EmptyStateProps extends SkillSelectionSourceProps { onLaunchBrowserAssist?: () => void | Promise; /** 浏览器协助启动中 */ browserAssistLoading?: boolean; + /** 首页推荐的 SceneApp 入口 */ + featuredSceneApps?: SceneAppEntryCardItem[]; + /** SceneApp 入口加载中 */ + sceneAppsLoading?: boolean; + /** 当前正在启动的 SceneApp */ + sceneAppLaunchingId?: string | null; + /** 启动 SceneApp */ + onLaunchSceneApp?: (sceneappId: string) => void | Promise; + /** 是否存在可恢复的最近 SceneApp */ + canResumeRecentSceneApp?: boolean; + /** 恢复最近一次 SceneApp 上下文 */ + onResumeRecentSceneApp?: () => void; + /** 打开 SceneApp 目录页 */ + onOpenSceneAppsDirectory?: () => void; /** 当前项目 ID */ projectId?: string | null; /** 项目切换 */ onProjectChange?: (projectId: string) => void; /** 打开设置 */ onOpenSettings?: () => void; + /** 当前 runtime tool surface */ + runtimeToolAvailability?: RuntimeToolAvailability | null; + /** 当前执行态摘要 */ + runtimeTaskCard?: AgentTaskRuntimeCardModel | null; + /** 打开记忆工作台 */ + onOpenMemoryWorkbench?: () => void; + /** 打开消息渠道 */ + onOpenChannels?: () => void; + /** 打开浏览器连接器 */ + onOpenChromeRelay?: () => void; + /** 打开 OpenClaw 兼容入口 */ + onOpenOpenClaw?: () => void; } type RecommendationShelfItem = @@ -463,6 +493,13 @@ export const EmptyState: React.FC = ({ onRefreshSkills, onLaunchBrowserAssist, browserAssistLoading = false, + featuredSceneApps = [], + sceneAppsLoading = false, + sceneAppLaunchingId = null, + onLaunchSceneApp, + canResumeRecentSceneApp = false, + onResumeRecentSceneApp, + onOpenSceneAppsDirectory, projectId = null, onProjectChange, onOpenSettings, @@ -1176,6 +1213,18 @@ export const EmptyState: React.FC = ({ ); + const generalSceneAppsPanel = ( + + ); + const generalContinuationPanel = ( @@ -1279,6 +1328,7 @@ export const EmptyState: React.FC = ({ supportingSlot={ isGeneralTheme ? ( <> + {generalSceneAppsPanel} {generalContinuationPanel} {generalRecommendedSolutionsPanel} diff --git a/src/components/agent/chat/components/EmptyStateSceneAppsPanel.tsx b/src/components/agent/chat/components/EmptyStateSceneAppsPanel.tsx new file mode 100644 index 000000000..434f3b3cf --- /dev/null +++ b/src/components/agent/chat/components/EmptyStateSceneAppsPanel.tsx @@ -0,0 +1,165 @@ +import { + EMPTY_STATE_BADGE_BASE_CLASSNAME, + EMPTY_STATE_BADGE_TONE_CLASSNAMES, + EMPTY_STATE_PANEL_EMBEDDED_CLASSNAME, + EMPTY_STATE_PRIMARY_ACTION_BUTTON_CLASSNAME, +} from "./emptyStateSurfaceTokens"; +import type { SceneAppEntryCardItem } from "../sceneappEntryTypes"; + +interface EmptyStateSceneAppsPanelProps { + items: SceneAppEntryCardItem[]; + loading?: boolean; + launchingSceneAppId?: string | null; + onLaunchSceneApp?: (sceneappId: string) => void | Promise; + canResumeRecentSceneApp?: boolean; + onResumeRecentSceneApp?: () => void; + onOpenSceneAppsDirectory?: () => void; +} + +export function EmptyStateSceneAppsPanel({ + items, + loading = false, + launchingSceneAppId = null, + onLaunchSceneApp, + canResumeRecentSceneApp = false, + onResumeRecentSceneApp, + onOpenSceneAppsDirectory, +}: EmptyStateSceneAppsPanelProps) { + if (!loading && items.length === 0) { + return null; + } + + return ( +
+
+
+
场景应用
+

+ 不是单个技能,而是一条完整结果链。先选一个目标,Lime 会把合适的能力组合起来。 +

+
+ {canResumeRecentSceneApp || onOpenSceneAppsDirectory ? ( +
+ {canResumeRecentSceneApp && onResumeRecentSceneApp ? ( + + ) : null} + {onOpenSceneAppsDirectory ? ( + + ) : null} +
+ ) : null} +
+ {canResumeRecentSceneApp ? ( +

+ 继续最近场景会恢复你上次打开的 SceneApp、项目和运行上下文。 +

+ ) : null} + + {loading && items.length === 0 ? ( +
+ 正在整理可直接启动的场景应用… +
+ ) : ( +
+ {items.map((item) => { + const isLaunching = launchingSceneAppId === item.id; + const disabled = Boolean(item.disabledReason) || !onLaunchSceneApp; + + return ( +
+
+
+
+ {item.businessLabel} +
+

+ {item.title} +

+
+ + {item.executionLabel} + +
+ +

+ {item.valueStatement} +

+

+ {item.summary} +

+ +
+
+
会产出
+
{item.deliveryLabel}
+
+
+
模式
+
+ {item.patternSummary} +
+
+
+
基础设施
+
{item.infraSummary}
+
+
+ +
+
+ {item.sourceLabel} +
+
+ {item.sourcePreview} +
+
+ +
+ + {item.disabledReason ?? ""} + + +
+
+ ); + })} +
+ )} +
+ ); +} diff --git a/src/components/agent/chat/components/HarnessStatusPanel.test.tsx b/src/components/agent/chat/components/HarnessStatusPanel.test.tsx index b2c083414..52a280c5c 100644 --- a/src/components/agent/chat/components/HarnessStatusPanel.test.tsx +++ b/src/components/agent/chat/components/HarnessStatusPanel.test.tsx @@ -1799,6 +1799,22 @@ describe("HarnessStatusPanel", () => { expect(document.body.textContent).toContain("规划状态"); }); + it("内部路由型 runtimeStatus 不应单独占据工作台主视觉", () => { + renderPanel({ + harnessState: createHarnessState({ + runtimeStatus: { + phase: "routing", + title: "直接回答优先", + detail: "当前请求无需默认升级为搜索或任务。", + checkpoints: ["默认保持直接回答"], + }, + }), + }); + + expect(document.body.textContent).not.toContain("任务进行中"); + expect(document.body.textContent).not.toContain("直接回答优先"); + }); + it("存在 activeFileWrites 时应在工作台中展示当前文件写入", () => { renderPanel({ harnessState: createHarnessState({ diff --git a/src/components/agent/chat/components/HarnessStatusPanel.tsx b/src/components/agent/chat/components/HarnessStatusPanel.tsx index 2b1c11375..2deeef426 100644 --- a/src/components/agent/chat/components/HarnessStatusPanel.tsx +++ b/src/components/agent/chat/components/HarnessStatusPanel.tsx @@ -111,6 +111,7 @@ import { } from "../utils/workflowStepPresentation"; import { buildThreadReliabilityView } from "../utils/threadReliabilityView"; import { resolveTeamWorkspaceStableProcessingLabel } from "../utils/teamWorkspaceCopy"; +import { isInternalRoutingRuntimeStatus } from "../utils/turnSummaryPresentation"; import type { TeamRoleDefinition } from "../utils/teamDefinitions"; import type { TeamMemorySnapshot } from "@/lib/teamMemorySync"; import { AgentThreadReliabilityPanel } from "./AgentThreadReliabilityPanel"; @@ -900,7 +901,7 @@ function formatRuntimeProgressLabel( function buildRuntimeTaskPresentation( runtimeStatus: HarnessSessionState["runtimeStatus"], ): RuntimeTaskPresentation | null { - if (!runtimeStatus) { + if (!runtimeStatus || isInternalRoutingRuntimeStatus(runtimeStatus)) { return null; } diff --git a/src/components/agent/chat/components/Inputbar/components/InputbarPromptCacheNotice.test.tsx b/src/components/agent/chat/components/Inputbar/components/InputbarPromptCacheNotice.test.tsx deleted file mode 100644 index b9447b008..000000000 --- a/src/components/agent/chat/components/Inputbar/components/InputbarPromptCacheNotice.test.tsx +++ /dev/null @@ -1,182 +0,0 @@ -import React from "react"; -import { act } from "react"; -import { createRoot, type Root } from "react-dom/client"; -import { afterEach, beforeEach, describe, expect, it, vi } from "vitest"; -import { InputbarPromptCacheNotice } from "./InputbarPromptCacheNotice"; - -const mockUseConfiguredProviders = vi.fn(); - -vi.mock("@/hooks/useConfiguredProviders", () => ({ - useConfiguredProviders: (options: unknown) => - mockUseConfiguredProviders(options), - findConfiguredProviderBySelection: ( - providers: Array<{ key: string; providerId?: string }>, - selection?: string | null, - ) => { - const normalizedSelection = (selection || "").trim().toLowerCase(); - const keyMatch = - providers.find( - (provider) => provider.key.trim().toLowerCase() === normalizedSelection, - ) ?? null; - const providerIdMatch = - providers.find( - (provider) => - (provider.providerId || "").trim().toLowerCase() === - normalizedSelection, - ) ?? null; - - if (keyMatch && providerIdMatch && keyMatch !== providerIdMatch) { - if (!keyMatch.providerId && providerIdMatch.providerId) { - return providerIdMatch; - } - } - - return keyMatch ?? providerIdMatch ?? null; - }, - resolveConfiguredProviderPromptCacheSupportNotice: ( - providers: Array<{ key: string; providerId?: string; type?: string }>, - selection?: string | null, - ) => { - const normalizedSelection = (selection || "").trim().toLowerCase(); - const selectedProvider = - providers.find( - (provider) => provider.key.trim().toLowerCase() === normalizedSelection, - ) ?? - providers.find( - (provider) => - (provider.providerId || "").trim().toLowerCase() === - normalizedSelection, - ) ?? - null; - const normalizedConfiguredType = ( - selectedProvider?.type || "" - ).trim().toLowerCase(); - - if (normalizedConfiguredType === "anthropic-compatible") { - return { - label: "未声明自动缓存", - detail: - "当前 Provider 未声明支持自动 Prompt Cache;如需复用前缀,请使用显式 cache_control 标记。", - source: "configured_provider" as const, - }; - } - - if (normalizedSelection === "anthropic-compatible") { - return { - label: "未声明自动缓存", - detail: - "当前 Provider 未声明支持自动 Prompt Cache;当前提示基于 Provider 选择器回退判断,如需复用前缀,请使用显式 cache_control 标记。", - source: "selection_fallback" as const, - }; - } - - return null; - }, -})); - -const mountedRoots: Array<{ root: Root; container: HTMLDivElement }> = []; - -beforeEach(() => { - ( - globalThis as typeof globalThis & { - IS_REACT_ACT_ENVIRONMENT?: boolean; - } - ).IS_REACT_ACT_ENVIRONMENT = true; - - mockUseConfiguredProviders.mockReturnValue({ - providers: [], - loading: false, - }); -}); - -afterEach(() => { - while (mountedRoots.length > 0) { - const mounted = mountedRoots.pop(); - if (!mounted) break; - act(() => { - mounted.root.unmount(); - }); - mounted.container.remove(); - } - vi.clearAllMocks(); -}); - -function renderNotice( - props?: Partial>, -) { - const container = document.createElement("div"); - document.body.appendChild(container); - const root = createRoot(container); - - act(() => { - root.render( - , - ); - }); - - mountedRoots.push({ root, container }); - return container; -} - -describe("InputbarPromptCacheNotice", () => { - it("anthropic-compatible 自定义 Provider 应展示发送前提示", () => { - mockUseConfiguredProviders.mockReturnValue({ - providers: [ - { - key: "custom-provider-id", - label: "GLM Anthropic", - registryId: "custom-provider-id", - type: "anthropic-compatible", - providerId: "custom-provider-id", - }, - ], - loading: false, - }); - - const container = renderNotice(); - - expect( - container.querySelector('[data-testid="inputbar-prompt-cache-warning"]'), - ).not.toBeNull(); - expect(container.textContent).toContain("未声明支持自动 Prompt Cache"); - expect(container.textContent).toContain("cache_control"); - }); - - it("官方 Anthropic Provider 不应展示发送前提示", () => { - mockUseConfiguredProviders.mockReturnValue({ - providers: [ - { - key: "anthropic", - label: "Anthropic", - registryId: "anthropic", - type: "anthropic", - providerId: "anthropic", - }, - ], - loading: false, - }); - - const container = renderNotice({ - providerType: "anthropic", - }); - - expect( - container.querySelector('[data-testid="inputbar-prompt-cache-warning"]'), - ).toBeNull(); - }); - - it("未解析到真实 Provider 时,应允许按选择器回退展示提示", () => { - const container = renderNotice({ - providerType: "anthropic-compatible", - }); - - const warning = container.querySelector( - '[data-testid="inputbar-prompt-cache-warning"]', - ); - expect(warning).not.toBeNull(); - expect(warning?.getAttribute("title")).toContain("回退判断"); - }); -}); diff --git a/src/components/agent/chat/components/Inputbar/components/InputbarPromptCacheNotice.tsx b/src/components/agent/chat/components/Inputbar/components/InputbarPromptCacheNotice.tsx deleted file mode 100644 index e347521ce..000000000 --- a/src/components/agent/chat/components/Inputbar/components/InputbarPromptCacheNotice.tsx +++ /dev/null @@ -1,49 +0,0 @@ -import React, { useMemo } from "react"; -import { AlertCircle } from "lucide-react"; -import { - resolveConfiguredProviderPromptCacheSupportNotice, - useConfiguredProviders, -} from "@/hooks/useConfiguredProviders"; - -interface InputbarPromptCacheNoticeProps { - providerType: string; -} - -export const InputbarPromptCacheNotice: React.FC< - InputbarPromptCacheNoticeProps -> = ({ providerType }) => { - const shouldInspectCapability = Boolean(providerType.trim()); - - const { providers, loading: providersLoading } = useConfiguredProviders({ - autoLoad: shouldInspectCapability, - }); - - const notice = useMemo(() => { - if (!shouldInspectCapability || providersLoading) { - return null; - } - - return resolveConfiguredProviderPromptCacheSupportNotice( - providers, - providerType, - ); - }, [providerType, providers, providersLoading, shouldInspectCapability]); - - if (!notice) { - return null; - } - - return ( -
- - - 当前 Provider 未声明支持自动 Prompt Cache;如需复用前缀,请使用显式{" "} - cache_control 标记 - -
- ); -}; diff --git a/src/components/agent/chat/components/Inputbar/components/InputbarRuntimeStatusLine.test.tsx b/src/components/agent/chat/components/Inputbar/components/InputbarRuntimeStatusLine.test.tsx new file mode 100644 index 000000000..02b61d6fe --- /dev/null +++ b/src/components/agent/chat/components/Inputbar/components/InputbarRuntimeStatusLine.test.tsx @@ -0,0 +1,173 @@ +import React from "react"; +import { act } from "react"; +import { createRoot, type Root } from "react-dom/client"; +import { afterEach, beforeEach, describe, expect, it, vi } from "vitest"; +import { InputbarRuntimeStatusLine } from "./InputbarRuntimeStatusLine"; +import type { InputbarRuntimeStatusLineModel } from "../../../utils/inputbarRuntimeStatusLine"; + +const mockUseConfiguredProviders = vi.fn(); + +vi.mock("@/hooks/useConfiguredProviders", () => ({ + useConfiguredProviders: (options: unknown) => + mockUseConfiguredProviders(options), + resolveConfiguredProviderPromptCacheSupportNotice: ( + providers: Array<{ key: string; providerId?: string; type?: string }>, + selection?: string | null, + ) => { + const normalizedSelection = (selection || "").trim().toLowerCase(); + const selectedProvider = + providers.find( + (provider) => provider.key.trim().toLowerCase() === normalizedSelection, + ) ?? + providers.find( + (provider) => + (provider.providerId || "").trim().toLowerCase() === + normalizedSelection, + ) ?? + null; + + if ((selectedProvider?.type || "").trim().toLowerCase() === "anthropic-compatible") { + return { + label: "未声明自动缓存", + detail: + "当前 Provider 未声明支持自动 Prompt Cache;如需复用前缀,请使用显式 cache_control 标记。", + source: "configured_provider" as const, + }; + } + + return null; + }, +})); + +const mountedRoots: Array<{ root: Root; container: HTMLDivElement }> = []; + +beforeEach(() => { + ( + globalThis as typeof globalThis & { + IS_REACT_ACT_ENVIRONMENT?: boolean; + } + ).IS_REACT_ACT_ENVIRONMENT = true; + + mockUseConfiguredProviders.mockReturnValue({ + providers: [], + loading: false, + }); +}); + +afterEach(() => { + while (mountedRoots.length > 0) { + const mounted = mountedRoots.pop(); + if (!mounted) { + continue; + } + act(() => { + mounted.root.unmount(); + }); + mounted.container.remove(); + } + vi.clearAllMocks(); +}); + +function renderStatusLine( + runtime: InputbarRuntimeStatusLineModel, + props?: Partial>, +) { + const container = document.createElement("div"); + document.body.appendChild(container); + const root = createRoot(container); + + act(() => { + root.render( + , + ); + }); + + mountedRoots.push({ root, container }); + return container; +} + +function buildRuntime( + usage: NonNullable, +): InputbarRuntimeStatusLineModel { + return { + status: "completed", + detail: null, + batchDescriptor: { + kind: "exploration", + title: "已查看关键文件", + supportingLines: ["查看 query.ts", "查看 toolExecution.ts"], + countLabel: "读 2", + rawDetailLabel: "读 2", + }, + queuedTurnCount: 0, + pendingRequestCount: 0, + subtaskStats: null, + usage, + startedAt: "2026-04-15T09:00:00Z", + completedAt: "2026-04-15T09:00:15Z", + }; +} + +describe("InputbarRuntimeStatusLine", () => { + it("无缓存命中时应稳定展示缓存 0 与轻量提示", () => { + mockUseConfiguredProviders.mockReturnValue({ + providers: [ + { + key: "custom-provider-id", + label: "GLM Anthropic", + registryId: "custom-provider-id", + type: "anthropic-compatible", + providerId: "custom-provider-id", + }, + ], + loading: false, + }); + + const container = renderStatusLine( + buildRuntime({ + input_tokens: 25_400, + output_tokens: 238, + cached_input_tokens: 0, + }), + ); + + expect(container.textContent).toContain("已完成"); + expect(container.textContent).toContain("00:15"); + expect(container.textContent).toContain("工具 读 2"); + expect(container.textContent).toContain("输入 25.4K / 输出 238"); + expect(container.textContent).toContain("缓存 0"); + expect(container.textContent).toContain("未声明自动缓存"); + }); + + it("存在缓存写入时应展示缓存总量与读写拆分且不再展示轻量提示", () => { + mockUseConfiguredProviders.mockReturnValue({ + providers: [ + { + key: "custom-provider-id", + label: "GLM Anthropic", + registryId: "custom-provider-id", + type: "anthropic-compatible", + providerId: "custom-provider-id", + }, + ], + loading: false, + }); + + const container = renderStatusLine( + buildRuntime({ + input_tokens: 25_400, + output_tokens: 238, + cached_input_tokens: 0, + cache_creation_input_tokens: 1_200, + }), + ); + + expect(container.textContent).toContain("缓存 1.2K"); + expect(container.textContent).toContain("读 0 / 写 1.2K"); + expect(container.textContent).not.toContain("未声明自动缓存"); + }); +}); diff --git a/src/components/agent/chat/components/Inputbar/components/InputbarRuntimeStatusLine.tsx b/src/components/agent/chat/components/Inputbar/components/InputbarRuntimeStatusLine.tsx index 8e9b0a970..93213301b 100644 --- a/src/components/agent/chat/components/Inputbar/components/InputbarRuntimeStatusLine.tsx +++ b/src/components/agent/chat/components/Inputbar/components/InputbarRuntimeStatusLine.tsx @@ -4,8 +4,12 @@ import { resolveConfiguredProviderPromptCacheSupportNotice, useConfiguredProviders, } from "@/hooks/useConfiguredProviders"; -import type { AgentTokenUsage as TokenUsage } from "@/lib/api/agentProtocol"; import type { InputbarRuntimeStatusLineModel } from "../../../utils/inputbarRuntimeStatusLine"; +import { + resolvePromptCacheActivity, + resolvePromptCacheMetaText, + resolveUsageInputOutputSummary, +} from "../../../utils/tokenUsageSummary"; interface InputbarRuntimeStatusLineProps { runtime: InputbarRuntimeStatusLineModel | null; @@ -13,20 +17,6 @@ interface InputbarRuntimeStatusLineProps { canStop?: boolean; } -function formatCompactCount(value: number): string { - const normalized = Math.max(0, value); - if (normalized >= 1_000_000_000) { - return `${(normalized / 1_000_000_000).toFixed(1)}B`; - } - if (normalized >= 1_000_000) { - return `${(normalized / 1_000_000).toFixed(1)}M`; - } - if (normalized >= 1_000) { - return `${(normalized / 1_000).toFixed(1)}K`; - } - return normalized.toLocaleString(); -} - function resolveTimestamp(value?: string | number | null): number | null { if (typeof value === "number" && Number.isFinite(value)) { return value; @@ -56,48 +46,6 @@ function formatElapsed(ms: number): string { )}`; } -function resolveUsageSummary(usage?: TokenUsage): string | null { - if (!usage) { - return null; - } - - return `输入 ${formatCompactCount(usage.input_tokens)} / 输出 ${formatCompactCount( - usage.output_tokens, - )}`; -} - -function resolvePromptCacheTotal(usage?: TokenUsage): number { - return ( - Math.max(0, usage?.cached_input_tokens ?? 0) + - Math.max(0, usage?.cache_creation_input_tokens ?? 0) - ); -} - -function resolvePromptCacheSummary( - usage?: TokenUsage, - fallbackLabel?: string | null, -): string | null { - if (usage) { - const cachedRead = Math.max(0, usage.cached_input_tokens ?? 0); - const cacheWrite = Math.max(0, usage.cache_creation_input_tokens ?? 0); - if (cachedRead > 0 && cacheWrite > 0) { - return `Prompt Cache 读 ${formatCompactCount(cachedRead)} / 写 ${formatCompactCount(cacheWrite)}`; - } - if (cachedRead > 0) { - return `Prompt Cache ${formatCompactCount(cachedRead)}`; - } - if (cacheWrite > 0) { - return `Prompt Cache 写 ${formatCompactCount(cacheWrite)}`; - } - } - - if (fallbackLabel) { - return `Prompt Cache ${fallbackLabel}`; - } - - return null; -} - function resolveStatusMeta( status: InputbarRuntimeStatusLineModel["status"], ): { @@ -168,7 +116,7 @@ export const InputbarRuntimeStatusLine: React.FC< const shouldInspectPromptCacheNotice = Boolean( providerType?.trim() && runtime?.usage && - resolvePromptCacheTotal(runtime.usage) <= 0, + resolvePromptCacheActivity(runtime.usage) <= 0, ); const { providers } = useConfiguredProviders({ autoLoad: shouldInspectPromptCacheNotice, @@ -213,11 +161,12 @@ export const InputbarRuntimeStatusLine: React.FC< startedAtMs && (completedAtMs || now) >= startedAtMs ? formatElapsed((completedAtMs || now) - startedAtMs) : null; - const usageSummary = resolveUsageSummary(runtime.usage); - const promptCacheSummary = resolvePromptCacheSummary( - runtime.usage, - promptCacheNotice?.label, - ); + const usageSummary = resolveUsageInputOutputSummary(runtime.usage); + const promptCacheMetaText = resolvePromptCacheMetaText(runtime.usage); + const promptCacheNoticeLabel = + resolvePromptCacheActivity(runtime.usage) <= 0 + ? promptCacheNotice?.label?.trim() || null + : null; const detailText = runtime.status === "waiting_input" || runtime.status === "failed" || @@ -233,7 +182,8 @@ export const InputbarRuntimeStatusLine: React.FC< ? `任务 ${runtime.subtaskStats.active}/${runtime.subtaskStats.total}` : null, usageSummary, - promptCacheSummary, + promptCacheMetaText, + promptCacheNoticeLabel, canStop && (runtime.status === "running" || runtime.status === "queued") ? "可随时停止" : null, diff --git a/src/components/agent/chat/components/MessageList.test.tsx b/src/components/agent/chat/components/MessageList.test.tsx index aebe60b9f..5ac579701 100644 --- a/src/components/agent/chat/components/MessageList.test.tsx +++ b/src/components/agent/chat/components/MessageList.test.tsx @@ -570,7 +570,8 @@ describe("MessageList", () => { expect(container.textContent).toContain("工具 读 1 / 列 1"); expect(container.textContent).toContain("任务 0/1"); expect(container.textContent).toContain("输入 1.8K / 输出 640"); - expect(container.textContent).toContain("Prompt Cache 未声明自动缓存"); + expect(container.textContent).toContain("缓存 0"); + expect(container.textContent).toContain("未声明自动缓存"); expect( container.querySelector('[data-testid="token-usage-display"]'), ).toBeNull(); @@ -605,6 +606,128 @@ describe("MessageList", () => { expect(container.textContent).not.toContain("正在整理相关信息"); }); + it("首个文本分片到来前,不应渲染空白 assistant 气泡,只保留运行态行", () => { + const now = new Date(); + const messages: Message[] = [ + { + id: "msg-user-empty-tail", + role: "user", + content: "你好", + timestamp: now, + }, + { + id: "msg-assistant-empty-tail", + role: "assistant", + content: "", + timestamp: new Date(now.getTime() + 1000), + isThinking: true, + }, + ]; + + const container = render(messages, { + isSending: true, + }); + + expect( + container.querySelector('[data-testid="streaming-renderer"]'), + ).toBeNull(); + expect( + container.querySelector('[data-testid="assistant-message-meta-footer"]'), + ).not.toBeNull(); + expect( + container.querySelector('[data-testid="inputbar-runtime-status-line"]'), + ).not.toBeNull(); + expect(container.textContent).toContain("处理中"); + expect(container.textContent).not.toContain(""); + }); + + it("assistant 首条流式内容只有协议残留时,不应渲染空白气泡", () => { + const now = new Date(); + const messages: Message[] = [ + { + id: "msg-user-protocol-tail", + role: "user", + content: "你好", + timestamp: now, + }, + { + id: "msg-assistant-protocol-tail", + role: "assistant", + content: [ + "Built-in Tool: Read", + "input:", + '{"file_path":"/repo/src/index.ts"}', + "output:", + '{"ok":true}', + ].join("\n"), + timestamp: new Date(now.getTime() + 1000), + isThinking: true, + }, + ]; + + const container = render(messages, { + isSending: true, + }); + + expect( + container.querySelector('[data-testid="streaming-renderer"]'), + ).toBeNull(); + expect( + container.querySelector('[data-testid="assistant-message-meta-footer"]'), + ).not.toBeNull(); + expect( + container.querySelector('[data-testid="inputbar-runtime-status-line"]'), + ).not.toBeNull(); + expect(container.textContent).toContain("处理中"); + expect(container.textContent).not.toContain("Built-in Tool"); + }); + + it("assistant 占位消息只有启动态 runtimeStatus 时,也不应保留空白气泡", () => { + const now = new Date(); + const messages: Message[] = [ + { + id: "msg-user-runtime-only", + role: "user", + content: "你好", + timestamp: now, + }, + { + id: "msg-assistant-runtime-only", + role: "assistant", + content: "", + timestamp: new Date(now.getTime() + 1000), + isThinking: true, + runtimeStatus: { + phase: "routing", + title: "正在启动处理流程", + detail: "已开始处理,正在准备环境并等待第一条进展。", + checkpoints: [ + "会话已建立", + "对话优先执行", + "直接回答优先", + "等待首个模型事件", + ], + }, + }, + ]; + + const container = render(messages, { + isSending: true, + }); + + expect( + container.querySelector('[data-testid="streaming-renderer"]'), + ).toBeNull(); + expect( + container.querySelector('[data-testid="assistant-message-meta-footer"]'), + ).not.toBeNull(); + expect( + container.querySelector('[data-testid="inputbar-runtime-status-line"]'), + ).not.toBeNull(); + expect(container.textContent).toContain("处理中"); + expect(container.textContent).not.toContain("正在启动处理流程"); + }); + it("assistant 消息结算区应以内联模式承载 token usage", () => { const now = new Date(); const messages: Message[] = [ @@ -2199,11 +2322,15 @@ describe("MessageList", () => { expect( container.querySelector('[data-testid="agent-thread-timeline:trailing"]'), ).toBeNull(); - expect(mockStreamingRenderer).toHaveBeenCalledWith( - expect.objectContaining({ - showRuntimeStatusInline: true, - }), - ); + expect( + container.querySelector('[data-testid="streaming-renderer"]'), + ).toBeNull(); + expect( + container.querySelector('[data-testid="assistant-message-meta-footer"]'), + ).not.toBeNull(); + expect( + container.querySelector('[data-testid="inputbar-runtime-status-line"]'), + ).not.toBeNull(); }); it("本地工具批次的阶段结论不应再进入主消息流时间线", () => { @@ -2575,13 +2702,12 @@ describe("MessageList", () => { }, ]; - render(messages); + const container = render(messages); - expect(mockStreamingRenderer).toHaveBeenCalledWith( - expect.objectContaining({ - content: "", - }), - ); + expect( + container.querySelector('[data-testid="streaming-renderer"]'), + ).toBeNull(); + expect(container.textContent).not.toContain("[Image #1]"); }); it("助手消息包含 artifacts 时应渲染产物卡片并响应点击", () => { @@ -2941,19 +3067,37 @@ describe("MessageList", () => { ); }); - it("当前 turn 映射错位时,应优先显示在最后一个助手消息上", () => { + it("当前 turn 已映射到较早助手消息时,不应被最新助手消息抢占", () => { const messages: Message[] = [ + { + id: "msg-user-earlier", + role: "user", + content: "先做第一轮分析", + timestamp: new Date("2026-03-15T09:00:00Z"), + }, { id: "msg-assistant-earlier", role: "assistant", content: "先给出一段中间反馈。", timestamp: new Date("2026-03-15T09:00:05Z"), }, + { + id: "msg-user-latest", + role: "user", + content: "继续下一轮", + timestamp: new Date("2026-03-15T09:00:10Z"), + }, { id: "msg-assistant-latest", role: "assistant", - content: "这是当前回合的最新回复。", + content: "", timestamp: new Date("2026-03-15T09:00:20Z"), + runtimeStatus: { + phase: "preparing", + title: "排队中", + detail: "等待上一轮完成后继续。", + checkpoints: [], + }, }, ]; @@ -2996,18 +3140,16 @@ describe("MessageList", () => { ), ); - expect(streamingNodes).toHaveLength(2); + expect(streamingNodes).toHaveLength(1); expect(timelineNodes).toHaveLength(1); expect( - (streamingNodes[0] as Node).compareDocumentPosition( - timelineNodes[0] as Node, + (timelineNodes[0] as Node).compareDocumentPosition( + streamingNodes[0] as Node, ) & Node.DOCUMENT_POSITION_FOLLOWING, ).toBeTruthy(); expect( - (timelineNodes[0] as Node).compareDocumentPosition( - streamingNodes[1] as Node, - ) & Node.DOCUMENT_POSITION_FOLLOWING, - ).toBeTruthy(); + container.querySelector('[data-testid="assistant-message-meta-footer"]'), + ).not.toBeNull(); expect( container.querySelector('[data-testid="agent-thread-reliability-panel"]'), ).toBeNull(); diff --git a/src/components/agent/chat/components/MessageList.tsx b/src/components/agent/chat/components/MessageList.tsx index 2916d31d7..9462473dc 100644 --- a/src/components/agent/chat/components/MessageList.tsx +++ b/src/components/agent/chat/components/MessageList.tsx @@ -52,6 +52,7 @@ import { } from "../utils/internalImagePlaceholder"; import { isHiddenConversationArtifactPath } from "../utils/internalArtifactVisibility"; import { buildInputbarRuntimeStatusLineModel } from "../utils/inputbarRuntimeStatusLine"; +import { resolvePromptCacheActivity } from "../utils/tokenUsageSummary"; import { isInternalRoutingTurnSummaryText } from "../utils/turnSummaryPresentation"; import { Message, @@ -173,16 +174,6 @@ interface MessageListProps { providerType?: string; } -function resolvePromptCacheActivity(usage?: { - cached_input_tokens?: number; - cache_creation_input_tokens?: number; -}): number { - return ( - Math.max(0, usage?.cached_input_tokens ?? 0) + - Math.max(0, usage?.cache_creation_input_tokens ?? 0) - ); -} - function normalizeRuntimeStatusMetaText(value?: string | null): string { return (value || "").trim().replace(/\s+/g, " "); } @@ -598,12 +589,23 @@ const MessageListInner: React.FC = ({ return null; } + const mappedMessageId = + [...timelineByMessageId.values()].find( + (entry) => entry.turn.id === turn.id, + )?.messageId ?? null; + return { - messageId: lastAssistantMessageId, + messageId: mappedMessageId || lastAssistantMessageId, turn, items: threadItems.filter((item) => item.turn_id === turn.id), }; - }, [currentTurnId, lastAssistantMessageId, threadItems, turns]); + }, [ + currentTurnId, + lastAssistantMessageId, + threadItems, + timelineByMessageId, + turns, + ]); const messageGroups = useMemo( () => buildMessageTurnGroups(visibleMessages), [visibleMessages], @@ -617,12 +619,12 @@ const MessageListInner: React.FC = ({ group.assistantMessages .map((message) => timelineByMessageId.get(message.id)) .find(Boolean) ?? null; + const isCurrentTurnGroup = + Boolean(lastAssistantId) && + currentTurnTimeline?.messageId === lastAssistantId; const isActiveGroup = Boolean(lastAssistantId) && lastAssistantId === lastAssistantMessageId; - const timeline = - isActiveGroup && currentTurnTimeline - ? currentTurnTimeline - : mappedTimeline; + const timeline = isCurrentTurnGroup ? currentTurnTimeline : mappedTimeline; return { ...group, @@ -878,6 +880,7 @@ const MessageListInner: React.FC = ({ ? activePendingA2UISource.requestId : null; const actionContent = displayContent.trim(); + const hasVisibleAssistantText = Boolean(actionContent); const canQuoteMessage = Boolean(onQuoteMessage && actionContent); const canCopyMessage = Boolean(actionContent); const canSaveMessageAsSkill = Boolean( @@ -907,6 +910,15 @@ const MessageListInner: React.FC = ({ onOpenSavedSiteContent && !hasTrailingArtifactTimelineItems, ); + const visibleAssistantArtifacts = + msg.role === "assistant" + ? (msg.artifacts || []).filter( + (artifact) => + !isHiddenConversationArtifactPath( + resolveArtifactProtocolFilePath(artifact), + ), + ) + : []; const shouldRenderTailRuntimeStatusLine = msg.role === "assistant" && msg.id === lastAssistantMessageId && @@ -928,6 +940,66 @@ const MessageListInner: React.FC = ({ const messageCanvasShortcutPath = messageSavedSiteContentTarget ? resolveSiteSavedContentTargetRelativePath(messageSavedSiteContentTarget) : null; + const shouldCollapseAssistantShell = + msg.role === "assistant" && + !hasVisibleAssistantText && + !(conversationContentParts?.length) && + !conversationThinkingContent?.trim() && + !(conversationToolCalls?.length) && + !((msg.actionRequests || []).length > 0) && + !primaryTimeline && + !trailingTimeline && + !((msg.images || []).length > 0) && + visibleAssistantArtifacts.length === 0 && + !shouldRenderMessageCanvasShortcut && + !msg.imageWorkbenchPreview && + !msg.taskPreview; + const hasAssistantBodyContent = + msg.role !== "assistant" || !shouldCollapseAssistantShell; + const assistantMetaFooter = + msg.role === "assistant" && + (shouldRenderTailRuntimeStatusLine || + shouldRenderStatusPill || + shouldRenderUsageFooter) ? ( +
+ {shouldRenderTailRuntimeStatusLine ? ( + + ) : null} + {shouldRenderStatusPill && msg.runtimeStatus ? ( + + ) : null} + {shouldRenderUsageFooter ? ( + + ) : null} +
+ ) : null; + + if ( + msg.role === "assistant" && + !hasAssistantBodyContent && + !assistantMetaFooter + ) { + return null; + } return ( = ({ $compactLeadingSpacing={compactLeadingSpacing} > - - {msg.role === "assistant" ? ( - <> - {primaryTimeline ? ( - - ) : null} + {hasAssistantBodyContent ? ( + + {msg.role === "assistant" ? ( + <> + {primaryTimeline ? ( + + ) : null} - onA2UISubmit(formData, msg.id) + : undefined + } + a2uiFormId={a2uiFormDataMap?.[msg.id]?.formId} + a2uiInitialFormData={a2uiFormDataMap?.[msg.id]?.formData} + onA2UIFormChange={onA2UIFormChange} + renderA2UIInline={ + renderA2UIInline && !shouldSuppressInlineA2UI + } + onWriteFile={ + onWriteFile + ? (content, fileName, context) => + onWriteFile(content, fileName, { + ...context, + sourceMessageId: + context?.sourceMessageId || msg.id, + source: context?.source || "message_content", + }) + : undefined + } + onFileClick={onFileClick} + onOpenSavedSiteContent={onOpenSavedSiteContent} + onPermissionResponse={onPermissionResponse} + collapseCodeBlocks={collapseCodeBlocks} + shouldCollapseCodeBlock={shouldCollapseCodeBlock} + onCodeBlockClick={onCodeBlockClick} + promoteActionRequestsToA2UI={promoteActionRequestsToA2UI} + suppressedActionRequestId={suppressedActionRequestId} + showRuntimeStatusInline={true} + renderProposedPlanBlocks={ + !primaryTimeline || + inlineProcessCoverage.hasInlineProcessEntries + } + showContentBlockActions={Boolean(actionContent)} + onQuoteContent={ + onQuoteMessage + ? (quotedContent) => + onQuoteMessage(quotedContent, msg.id) + : undefined + } + /> + {shouldRenderMessageCanvasShortcut ? ( + + ) : null} + {msg.imageWorkbenchPreview ? ( + + onOpenMessagePreview( + { + kind: "image_workbench", + preview, + }, + msg, + ) + : undefined + } + /> + ) : null} + {msg.taskPreview ? ( + + onOpenMessagePreview( + { + kind: "task", + preview, + }, + msg, + ) + : undefined + } + /> + ) : null} + + ) : displayContent ? ( + onA2UISubmit(formData, msg.id) : undefined } - a2uiFormId={a2uiFormDataMap?.[msg.id]?.formId} - a2uiInitialFormData={a2uiFormDataMap?.[msg.id]?.formData} - onA2UIFormChange={onA2UIFormChange} - renderA2UIInline={ - renderA2UIInline && !shouldSuppressInlineA2UI - } - onWriteFile={ - onWriteFile - ? (content, fileName, context) => - onWriteFile(content, fileName, { - ...context, - sourceMessageId: context?.sourceMessageId || msg.id, - source: context?.source || "message_content", - }) - : undefined - } - onFileClick={onFileClick} - onOpenSavedSiteContent={onOpenSavedSiteContent} - onPermissionResponse={onPermissionResponse} - collapseCodeBlocks={collapseCodeBlocks} - shouldCollapseCodeBlock={shouldCollapseCodeBlock} - onCodeBlockClick={onCodeBlockClick} - promoteActionRequestsToA2UI={promoteActionRequestsToA2UI} - suppressedActionRequestId={suppressedActionRequestId} - showRuntimeStatusInline={true} - renderProposedPlanBlocks={ - !primaryTimeline || - inlineProcessCoverage.hasInlineProcessEntries - } - showContentBlockActions={Boolean(actionContent)} - onQuoteContent={ - onQuoteMessage - ? (quotedContent) => onQuoteMessage(quotedContent, msg.id) - : undefined - } + renderA2UIInline={renderA2UIInline} /> - {shouldRenderMessageCanvasShortcut ? ( - + ) : null} + {canCopyMessage ? ( + + ) : null} + {canSaveMessageAsSkill ? ( + - ) : null} - {msg.imageWorkbenchPreview ? ( - - onOpenMessagePreview( - { - kind: "image_workbench", - preview, - }, - msg, - ) - : undefined - } - /> - ) : null} - {msg.taskPreview ? ( - - onOpenMessagePreview( - { - kind: "task", - preview, - }, - msg, - ) - : undefined - } - /> - ) : null} - - ) : displayContent ? ( - onA2UISubmit(formData, msg.id) - : undefined - } - renderA2UIInline={renderA2UIInline} - /> - ) : null} - - {msg.images && msg.images.length > 0 && ( -
- {msg.images.map((img, i) => ( - attachment - ))} -
- )} - - {msg.role === "assistant" && renderArtifactCards(msg.artifacts)} - - {msg.role === "assistant" && trailingTimeline ? ( - - ) : null} - - {msg.role === "assistant" && - (shouldRenderTailRuntimeStatusLine || - shouldRenderStatusPill || - shouldRenderUsageFooter) ? ( -
- {shouldRenderTailRuntimeStatusLine ? ( - - ) : null} - {shouldRenderStatusPill && msg.runtimeStatus ? ( - - ) : null} - {shouldRenderUsageFooter ? ( - - ) : null} -
- ) : null} - - {showMessageActions ? ( - - {canQuoteMessage ? ( - - ) : null} - {canCopyMessage ? ( - - ) : null} - {canSaveMessageAsSkill ? ( - - ) : null} - {canSaveMessageAsInspiration ? ( - - ) : null} - - ) : null} -
+ aria-label="保存为技能" + title="保存为技能" + > + + + ) : null} + {canSaveMessageAsInspiration ? ( + + ) : null} + + ) : null} +
+ ) : null} + {!hasAssistantBodyContent ? assistantMetaFooter : null}
); diff --git a/src/components/agent/chat/components/TokenUsageDisplay.tsx b/src/components/agent/chat/components/TokenUsageDisplay.tsx index 07bdf5b0d..e454d044e 100644 --- a/src/components/agent/chat/components/TokenUsageDisplay.tsx +++ b/src/components/agent/chat/components/TokenUsageDisplay.tsx @@ -9,12 +9,11 @@ import React from "react"; import styled from "styled-components"; import { Coins } from "lucide-react"; import type { AgentTokenUsage as TokenUsage } from "@/lib/api/agentProtocol"; - -const COMPACT_UNITS = [ - { threshold: 1_000_000_000, suffix: "B" }, - { threshold: 1_000_000, suffix: "M" }, - { threshold: 1_000, suffix: "K" }, -] as const; +import { + formatCompactTokenCount, + resolvePromptCacheActivity, + resolvePromptCacheMetaText, +} from "../utils/tokenUsageSummary"; const UsageContainer = styled.div` display: inline-flex; @@ -59,49 +58,6 @@ interface TokenUsageDisplayProps { inline?: boolean; } -function formatCompactTokenCount(value: number): string { - if (!Number.isFinite(value)) { - return "0"; - } - - const normalized = Math.max(0, value); - for (const unit of COMPACT_UNITS) { - if (normalized >= unit.threshold) { - return `${(normalized / unit.threshold).toFixed(1)}${unit.suffix}`; - } - } - - return normalized.toLocaleString(); -} - -function resolvePromptCacheMetaText(usage: TokenUsage): string | null { - const hasCachedRead = Number.isFinite(usage.cached_input_tokens); - const hasCacheCreation = Number.isFinite(usage.cache_creation_input_tokens); - - if (!hasCachedRead && !hasCacheCreation) { - return null; - } - - const cachedRead = Math.max(0, usage.cached_input_tokens ?? 0); - const cacheCreation = Math.max(0, usage.cache_creation_input_tokens ?? 0); - const totalCached = cachedRead + cacheCreation; - - if (totalCached <= 0) { - return "· 缓存 0"; - } - - if (hasCacheCreation) { - if (hasCachedRead) { - return `· 缓存 ${formatCompactTokenCount(totalCached)}(读 ${formatCompactTokenCount( - cachedRead, - )} / 写 ${formatCompactTokenCount(cacheCreation)})`; - } - return `· 缓存写 ${formatCompactTokenCount(cacheCreation)}`; - } - - return `· 缓存 ${formatCompactTokenCount(cachedRead)}`; -} - /** * Token 使用量显示组件 * @@ -114,9 +70,7 @@ export const TokenUsageDisplay: React.FC = ({ inline = false, }) => { const total = usage.input_tokens + usage.output_tokens; - const totalPromptCacheTokens = - Math.max(0, usage.cached_input_tokens ?? 0) + - Math.max(0, usage.cache_creation_input_tokens ?? 0); + const totalPromptCacheTokens = resolvePromptCacheActivity(usage); const promptCacheMetaText = resolvePromptCacheMetaText(usage); const missingPromptCacheNotice = totalPromptCacheTokens > 0 ? null : (promptCacheNotice ?? null); @@ -129,7 +83,7 @@ export const TokenUsageDisplay: React.FC = ({ > {formatCompactTokenCount(total)} tokens - {promptCacheMetaText ? {promptCacheMetaText} : null} + {promptCacheMetaText ? {`· ${promptCacheMetaText}`} : null} {missingPromptCacheNotice ? ( {`· ${missingPromptCacheNotice.label}`} diff --git a/src/components/agent/chat/hooks/agentStreamFlowControl.test.ts b/src/components/agent/chat/hooks/agentStreamFlowControl.test.ts index 492d50aa1..4878b0fac 100644 --- a/src/components/agent/chat/hooks/agentStreamFlowControl.test.ts +++ b/src/components/agent/chat/hooks/agentStreamFlowControl.test.ts @@ -2,6 +2,7 @@ import { describe, expect, it, vi } from "vitest"; import type { AgentThreadItem, AgentThreadTurn } from "@/lib/api/agentProtocol"; import type { QueuedTurnSnapshot } from "@/lib/api/agentRuntime"; import type { Message } from "../types"; +import type { ActiveStreamState } from "./agentStreamSubmissionLifecycle"; import { promoteQueuedAgentTurn, removeQueuedAgentTurn, @@ -171,6 +172,138 @@ describe("agentStreamFlowControl", () => { expect(notify.info).toHaveBeenCalledWith("已停止生成"); }); + it("promoteQueuedAgentTurn 应先收口当前前台流,再切换到新的排队任务", async () => { + let queuedTurns: QueuedTurnSnapshot[] = [ + { + queued_turn_id: "queued-1", + message_preview: "preview", + message_text: "text", + created_at: 1, + image_count: 0, + position: 1, + }, + ]; + let threadItems: AgentThreadItem[] = [ + { + id: "pending-item:1", + thread_id: "session-1", + turn_id: "pending-turn:1", + sequence: 0, + status: "in_progress", + started_at: "2026-03-29T00:00:00.000Z", + updated_at: "2026-03-29T00:00:00.000Z", + type: "turn_summary", + text: "running", + }, + ]; + let threadTurns: AgentThreadTurn[] = [ + { + id: "pending-turn:1", + thread_id: "session-1", + prompt_text: "继续执行", + status: "running", + started_at: "2026-03-29T00:00:00.000Z", + created_at: "2026-03-29T00:00:00.000Z", + updated_at: "2026-03-29T00:00:00.000Z", + }, + ]; + let currentTurnId: string | null = "pending-turn:1"; + let messages: Message[] = [ + { + id: "assistant-1", + role: "assistant", + content: "已有部分输出", + timestamp: new Date("2026-03-29T00:00:00.000Z"), + isThinking: true, + runtimeStatus: { + phase: "routing", + title: "处理中", + detail: "当前前台流仍在执行", + checkpoints: [], + }, + }, + ]; + let activeStream: ActiveStreamState | null = { + assistantMsgId: "assistant-1", + eventName: "stream-1", + sessionId: "session-1", + pendingTurnKey: "pending-turn:1", + pendingItemKey: "pending-item:1", + }; + const refreshSessionReadModel = vi.fn(async () => true); + const promoteQueuedTurn = vi.fn(async () => true); + const removeStreamListener = vi.fn(() => true); + const notify = { + info: vi.fn(), + error: vi.fn(), + }; + + await expect( + promoteQueuedAgentTurn({ + runtime: { + promoteQueuedTurn, + }, + queuedTurnId: "queued-1", + activeStream, + removeStreamListener, + sessionIdRef: { current: "session-1" }, + refreshSessionReadModel, + setQueuedTurns: createStateSetter( + () => queuedTurns, + (value) => { + queuedTurns = value; + }, + ), + setThreadItems: createStateSetter( + () => threadItems, + (value) => { + threadItems = value; + }, + ), + setThreadTurns: createStateSetter( + () => threadTurns, + (value) => { + threadTurns = value; + }, + ), + setCurrentTurnId: createStateSetter( + () => currentTurnId, + (value) => { + currentTurnId = value; + }, + ), + setMessages: createStateSetter( + () => messages, + (value) => { + messages = value; + }, + ), + setActiveStream: (nextActive) => { + activeStream = nextActive; + }, + notify, + }), + ).resolves.toBe(true); + + expect(removeStreamListener).toHaveBeenCalledWith("stream-1"); + expect(promoteQueuedTurn).toHaveBeenCalledWith("session-1", "queued-1"); + expect(refreshSessionReadModel).toHaveBeenCalledWith("session-1"); + expect(queuedTurns).toEqual([]); + expect(threadItems).toEqual([]); + expect(threadTurns).toEqual([]); + expect(currentTurnId).toBeNull(); + expect(activeStream).toBeNull(); + expect(messages).toEqual([ + expect.objectContaining({ + id: "assistant-1", + content: "已有部分输出", + isThinking: false, + runtimeStatus: undefined, + }), + ]); + expect(notify.info).toHaveBeenCalledWith("正在切换到该排队任务"); + }); + it("removeQueuedAgentTurn / promoteQueuedAgentTurn / resumeAgentStreamThread 应刷新 read model", async () => { let queuedTurns: QueuedTurnSnapshot[] = [ { @@ -224,6 +357,8 @@ describe("agentStreamFlowControl", () => { promoteQueuedTurn: vi.fn(async () => true), }, queuedTurnId: "queued-1", + activeStream: null, + removeStreamListener: vi.fn(() => true), sessionIdRef, refreshSessionReadModel, setQueuedTurns: createStateSetter( @@ -232,6 +367,23 @@ describe("agentStreamFlowControl", () => { queuedTurns = value; }, ), + setThreadItems: createStateSetter( + () => [] as AgentThreadItem[], + () => undefined, + ), + setThreadTurns: createStateSetter( + () => [] as AgentThreadTurn[], + () => undefined, + ), + setCurrentTurnId: createStateSetter( + () => null as string | null, + () => undefined, + ), + setMessages: createStateSetter( + () => [] as Message[], + () => undefined, + ), + setActiveStream: () => undefined, notify, }), ).resolves.toBe(true); diff --git a/src/components/agent/chat/hooks/agentStreamFlowControl.ts b/src/components/agent/chat/hooks/agentStreamFlowControl.ts index f67cd0459..a06daac0f 100644 --- a/src/components/agent/chat/hooks/agentStreamFlowControl.ts +++ b/src/components/agent/chat/hooks/agentStreamFlowControl.ts @@ -47,6 +47,13 @@ interface RemoveQueuedTurnOptions extends QueueActionOptions { interface PromoteQueuedTurnOptions extends QueueActionOptions { runtime: Pick; queuedTurnId: string; + activeStream: ActiveStreamState | null; + removeStreamListener: (eventName: string) => boolean; + setThreadItems: Dispatch>; + setThreadTurns: Dispatch>; + setCurrentTurnId: Dispatch>; + setMessages: Dispatch>; + setActiveStream: (nextActive: ActiveStreamState | null) => void; onError?: (error: unknown) => void; } @@ -176,9 +183,16 @@ export async function promoteQueuedAgentTurn( const { runtime, queuedTurnId, + activeStream, + removeStreamListener, sessionIdRef, refreshSessionReadModel, setQueuedTurns, + setThreadItems, + setThreadTurns, + setCurrentTurnId, + setMessages, + setActiveStream, notify, onError, } = options; @@ -187,6 +201,37 @@ export async function promoteQueuedAgentTurn( return false; } + if (activeStream) { + removeStreamListener(activeStream.eventName); + if (activeStream.pendingItemKey) { + setThreadItems((prev) => + removeThreadItemState(prev, activeStream.pendingItemKey!), + ); + } + if (activeStream.pendingTurnKey) { + setThreadTurns((prev) => + removeThreadTurnState(prev, activeStream.pendingTurnKey!), + ); + setCurrentTurnId((prev) => + prev === activeStream.pendingTurnKey ? null : prev, + ); + } + if (activeStream.assistantMsgId) { + setMessages((prev) => + prev.map((msg) => + msg.id === activeStream.assistantMsgId + ? { + ...updateMessageArtifactsStatus(msg, "complete"), + isThinking: false, + runtimeStatus: undefined, + } + : msg, + ), + ); + } + setActiveStream(null); + } + setQueuedTurns((prev) => removeQueuedTurnFromState(prev, queuedTurnId)); try { diff --git a/src/components/agent/chat/hooks/agentStreamSubmitExecution.test.ts b/src/components/agent/chat/hooks/agentStreamSubmitExecution.test.ts index 1ec28a690..880cbedd9 100644 --- a/src/components/agent/chat/hooks/agentStreamSubmitExecution.test.ts +++ b/src/components/agent/chat/hooks/agentStreamSubmitExecution.test.ts @@ -97,7 +97,11 @@ describe("agentStreamSubmitExecution", () => { setExecutionRuntime: noopDispatch(), }); - expect(registerListener).toHaveBeenCalledWith(unlisten); + expect(registerListener).toHaveBeenCalledTimes(1); + const registeredUnlisten = registerListener.mock.calls[0]?.[0]; + expect(registeredUnlisten).toEqual(expect.any(Function)); + registeredUnlisten?.(); + expect(unlisten).toHaveBeenCalledTimes(1); expect(submitOp).toHaveBeenCalledWith( expect.objectContaining({ type: "user_input", diff --git a/src/components/agent/chat/hooks/useAgentSession.ts b/src/components/agent/chat/hooks/useAgentSession.ts index fc84eed0b..754fa047e 100644 --- a/src/components/agent/chat/hooks/useAgentSession.ts +++ b/src/components/agent/chat/hooks/useAgentSession.ts @@ -165,9 +165,24 @@ export function useAgentSession(options: UseAgentSessionOptions) { return normalizedCandidate; } + if (isLegacyDefaultProjectId(mappedWorkspaceId)) { + logAgentDebug("useAgentSession", "restoreCandidate.rejected", { + candidateSessionId: normalizedCandidate, + mappedWorkspaceId, + workspaceId: resolvedWorkspaceId, + }); + return null; + } + + const normalizedMappedWorkspaceId = + normalizeProjectId(mappedWorkspaceId); + if (!normalizedMappedWorkspaceId) { + return normalizedCandidate; + } + if ( - isLegacyDefaultProjectId(mappedWorkspaceId) || - (resolvedWorkspaceId && mappedWorkspaceId !== resolvedWorkspaceId) + resolvedWorkspaceId && + normalizedMappedWorkspaceId !== resolvedWorkspaceId ) { logAgentDebug("useAgentSession", "restoreCandidate.rejected", { candidateSessionId: normalizedCandidate, @@ -874,16 +889,13 @@ export function useAgentSession(options: UseAgentSessionOptions) { ); const runtimeWorkspaceId = normalizeProjectId(detail.workspace_id); const selectedTopic = topics.find((topic) => topic.id === topicId); - const shadowWorkspaceId = loadStoredSessionWorkspaceIdRaw(topicId); + const topicWorkspaceId = normalizeProjectId(selectedTopic?.workspaceId); + const shadowWorkspaceId = normalizeProjectId( + loadStoredSessionWorkspaceIdRaw(topicId), + ); const resolvedWorkspaceId = normalizeProjectId(workspaceId); const knownWorkspaceId = - runtimeWorkspaceId || - (isLegacyDefaultProjectId(selectedTopic?.workspaceId) - ? null - : selectedTopic?.workspaceId) || - (isLegacyDefaultProjectId(shadowWorkspaceId) - ? null - : shadowWorkspaceId); + runtimeWorkspaceId || topicWorkspaceId || shadowWorkspaceId; if ( resolvedWorkspaceId && knownWorkspaceId && @@ -981,8 +993,12 @@ export function useAgentSession(options: UseAgentSessionOptions) { workspaceId, }); + const persistedWorkspaceId = runtimeWorkspaceId || resolvedWorkspaceId; + if (persistedWorkspaceId) { + savePersistedSessionWorkspaceId(topicId, persistedWorkspaceId); + } + if (runtimeWorkspaceId) { - savePersistedSessionWorkspaceId(topicId, runtimeWorkspaceId); setTopics((prev) => prev.map((topic) => topic.id === topicId diff --git a/src/components/agent/chat/hooks/useAgentStream.ts b/src/components/agent/chat/hooks/useAgentStream.ts index 2add81fca..ddcf3d29b 100644 --- a/src/components/agent/chat/hooks/useAgentStream.ts +++ b/src/components/agent/chat/hooks/useAgentStream.ts @@ -389,9 +389,16 @@ export function useAgentStream(options: UseAgentStreamOptions) { return promoteQueuedAgentTurn({ runtime, queuedTurnId, + activeStream: activeStreamRef.current, + removeStreamListener, sessionIdRef, refreshSessionReadModel, setQueuedTurns, + setThreadItems, + setThreadTurns, + setCurrentTurnId, + setMessages, + setActiveStream, notify: { info: (message) => toast.info(message), error: (message) => toast.error(message), @@ -401,7 +408,19 @@ export function useAgentStream(options: UseAgentStreamOptions) { }, }); }, - [refreshSessionReadModel, runtime, sessionIdRef, setQueuedTurns], + [ + activeStreamRef, + refreshSessionReadModel, + removeStreamListener, + runtime, + sessionIdRef, + setActiveStream, + setCurrentTurnId, + setMessages, + setQueuedTurns, + setThreadItems, + setThreadTurns, + ], ); return { diff --git a/src/components/agent/chat/hooks/useAgentTopicSnapshot.test.tsx b/src/components/agent/chat/hooks/useAgentTopicSnapshot.test.tsx index 2196070d0..d0dd1b42a 100644 --- a/src/components/agent/chat/hooks/useAgentTopicSnapshot.test.tsx +++ b/src/components/agent/chat/hooks/useAgentTopicSnapshot.test.tsx @@ -87,6 +87,7 @@ describe("useAgentTopicSnapshot", () => { IS_REACT_ACT_ENVIRONMENT?: boolean; } ).IS_REACT_ACT_ENVIRONMENT = true; + vi.useFakeTimers(); }); afterEach(() => { @@ -101,6 +102,7 @@ describe("useAgentTopicSnapshot", () => { mounted.container.remove(); } vi.clearAllMocks(); + vi.useRealTimers(); }); it("存在活动话题时应推送 live snapshot", async () => { @@ -167,4 +169,50 @@ describe("useAgentTopicSnapshot", () => { harness.unmount(); } }); + + it("发送中仅正文预览变化时,应节流合并 topic snapshot 更新", async () => { + const updateTopicSnapshot = vi.fn(); + const harness = await mountHook({ + updateTopicSnapshot, + isSending: true, + }); + + try { + expect(updateTopicSnapshot).toHaveBeenCalledTimes(1); + + await harness.render({ + isSending: true, + messages: [ + createMessage({ + content: "已完成当前整理,并继续补充更多背景。", + }), + ], + }); + await harness.render({ + isSending: true, + messages: [ + createMessage({ + content: "已完成当前整理,并继续补充更多背景与结论。", + }), + ], + }); + + expect(updateTopicSnapshot).toHaveBeenCalledTimes(1); + + await act(async () => { + vi.advanceTimersByTime(650); + }); + + expect(updateTopicSnapshot).toHaveBeenCalledTimes(2); + expect(updateTopicSnapshot).toHaveBeenLastCalledWith( + "session-1", + expect.objectContaining({ + lastPreview: "已完成当前整理,并继续补充更多背景与结论。", + status: "running", + }), + ); + } finally { + harness.unmount(); + } + }); }); diff --git a/src/components/agent/chat/hooks/useAgentTopicSnapshot.ts b/src/components/agent/chat/hooks/useAgentTopicSnapshot.ts index 1ee37701c..47a0fa23d 100644 --- a/src/components/agent/chat/hooks/useAgentTopicSnapshot.ts +++ b/src/components/agent/chat/hooks/useAgentTopicSnapshot.ts @@ -4,6 +4,8 @@ import { buildLiveTaskSnapshot } from "./agentChatShared"; import type { Message } from "../types"; import type { Topic } from "./agentChatShared"; +const TOPIC_PREVIEW_UPDATE_THROTTLE_MS = 600; + interface UseAgentTopicSnapshotOptions { sessionId: string | null; hasActiveTopic: boolean; @@ -43,9 +45,79 @@ export function useAgentTopicSnapshot(options: UseAgentTopicSnapshotOptions) { topicsCount, updateTopicSnapshot, } = options; - const lastTopicSnapshotKeyRef = useRef(null); + const lastCommittedSnapshotKeyRef = useRef(null); + const lastCommittedStructureKeyRef = useRef(null); + const pendingPreviewFlushTimerRef = useRef | null>(null); + const pendingPreviewPayloadRef = useRef<{ + sessionId: string; + snapshot: Partial< + Pick< + Topic, + | "updatedAt" + | "messagesCount" + | "status" + | "statusReason" + | "lastPreview" + | "hasUnread" + > + >; + snapshotKey: string; + structureKey: string; + } | null>(null); + + useEffect( + () => () => { + if (pendingPreviewFlushTimerRef.current) { + clearTimeout(pendingPreviewFlushTimerRef.current); + pendingPreviewFlushTimerRef.current = null; + } + pendingPreviewPayloadRef.current = null; + }, + [], + ); useEffect(() => { + const clearPendingPreviewFlush = () => { + if (pendingPreviewFlushTimerRef.current) { + clearTimeout(pendingPreviewFlushTimerRef.current); + pendingPreviewFlushTimerRef.current = null; + } + pendingPreviewPayloadRef.current = null; + }; + + const commitSnapshot = ( + targetSessionId: string, + snapshot: Partial< + Pick< + Topic, + | "updatedAt" + | "messagesCount" + | "status" + | "statusReason" + | "lastPreview" + | "hasUnread" + > + >, + snapshotKey: string, + structureKey: string, + reason: "apply" | "flushPreview", + ) => { + clearPendingPreviewFlush(); + lastCommittedSnapshotKeyRef.current = snapshotKey; + lastCommittedStructureKeyRef.current = structureKey; + logAgentDebug("useAgentTopicSnapshot", reason, { + activeSessionId: targetSessionId, + hasUnread: snapshot.hasUnread, + messagesCount: snapshot.messagesCount, + status: snapshot.status, + statusReason: snapshot.statusReason ?? null, + updatedAt: snapshot.updatedAt?.toISOString() ?? null, + }); + updateTopicSnapshot(targetSessionId, snapshot); + }; + if (!sessionId || !hasActiveTopic) { if (sessionId && !hasActiveTopic) { logAgentDebug( @@ -59,7 +131,9 @@ export function useAgentTopicSnapshot(options: UseAgentTopicSnapshotOptions) { { level: "warn", throttleMs: 1000 }, ); } - lastTopicSnapshotKeyRef.current = null; + clearPendingPreviewFlush(); + lastCommittedSnapshotKeyRef.current = null; + lastCommittedStructureKeyRef.current = null; return; } @@ -80,8 +154,16 @@ export function useAgentTopicSnapshot(options: UseAgentTopicSnapshotOptions) { lastPreview: snapshot.lastPreview, hasUnread: snapshot.hasUnread, }); + const structureKey = JSON.stringify({ + sessionId, + updatedAt: snapshot.updatedAt?.getTime() ?? null, + messagesCount: snapshot.messagesCount, + status: snapshot.status, + statusReason: snapshot.statusReason ?? null, + hasUnread: snapshot.hasUnread, + }); - if (lastTopicSnapshotKeyRef.current === snapshotKey) { + if (lastCommittedSnapshotKeyRef.current === snapshotKey) { logAgentDebug( "useAgentTopicSnapshot", "skipDuplicate", @@ -94,16 +176,35 @@ export function useAgentTopicSnapshot(options: UseAgentTopicSnapshotOptions) { return; } - lastTopicSnapshotKeyRef.current = snapshotKey; - logAgentDebug("useAgentTopicSnapshot", "apply", { - activeSessionId: sessionId, - hasUnread: snapshot.hasUnread, - messagesCount: snapshot.messagesCount, - status: snapshot.status, - statusReason: snapshot.statusReason ?? null, - updatedAt: snapshot.updatedAt?.toISOString() ?? null, - }); - updateTopicSnapshot(sessionId, snapshot); + const structureChanged = + lastCommittedStructureKeyRef.current !== structureKey; + if (structureChanged || !isSending) { + commitSnapshot(sessionId, snapshot, snapshotKey, structureKey, "apply"); + return; + } + + pendingPreviewPayloadRef.current = { + sessionId, + snapshot, + snapshotKey, + structureKey, + }; + if (pendingPreviewFlushTimerRef.current) { + clearTimeout(pendingPreviewFlushTimerRef.current); + } + pendingPreviewFlushTimerRef.current = setTimeout(() => { + const payload = pendingPreviewPayloadRef.current; + if (!payload) { + return; + } + commitSnapshot( + payload.sessionId, + payload.snapshot, + payload.snapshotKey, + payload.structureKey, + "flushPreview", + ); + }, TOPIC_PREVIEW_UPDATE_THROTTLE_MS); }, [ hasActiveTopic, isSending, diff --git a/src/components/agent/chat/index.test.tsx b/src/components/agent/chat/index.test.tsx index 55ddc6af9..fad57ff4d 100644 --- a/src/components/agent/chat/index.test.tsx +++ b/src/components/agent/chat/index.test.tsx @@ -873,6 +873,22 @@ async function flushEffects(times = 6) { } } +async function waitForElement( + container: { querySelector(selector: string): Element | null }, + selector: string, + attempts = 30, +) { + for (let attempt = 0; attempt < attempts; attempt += 1) { + const element = container.querySelector(selector); + if (element) { + return element; + } + await flushEffects(1); + } + + return null; +} + function getSendMessageCall(callIndex = 0) { const call = sharedSendMessageMock.mock.calls[callIndex]; if (!call) { @@ -5894,6 +5910,7 @@ describe("AgentChatPage 服务技能 A2UI", () => { prefillHint: "已根据 Skills 页入口推荐自动预填。", }, }); + await waitForElement(container, '[data-testid="layout-transition"]'); await flushEffects(12); expect( diff --git a/src/components/agent/chat/sceneappEntryTypes.ts b/src/components/agent/chat/sceneappEntryTypes.ts new file mode 100644 index 000000000..e56090652 --- /dev/null +++ b/src/components/agent/chat/sceneappEntryTypes.ts @@ -0,0 +1,4 @@ +export type { + SceneAppEntryCardItem, + SceneAppEntryTone, +} from "@/lib/sceneapp"; diff --git a/src/components/agent/chat/service-skills/automationDraft.test.ts b/src/components/agent/chat/service-skills/automationDraft.test.ts index 89a3b607c..86df8da48 100644 --- a/src/components/agent/chat/service-skills/automationDraft.test.ts +++ b/src/components/agent/chat/service-skills/automationDraft.test.ts @@ -1,4 +1,9 @@ -import { describe, expect, it } from "vitest"; +import { afterEach, beforeEach, describe, expect, it } from "vitest"; +import { createStoredBaseSetupPackageSnapshot } from "@/lib/base-setup/storage"; +import type { + BaseSetupPackage, + BaseSetupProjectionIndex, +} from "@/lib/base-setup/types"; import { buildServiceSkillAutomationAgentTurnPayloadContext, buildServiceSkillAutomationInitialValues, @@ -19,6 +24,24 @@ const SCHEDULED_SKILL: ServiceSkillItem = { defaultArtifactKind: "analysis", themeTarget: "general", version: "seed-v1", + skillBundle: { + name: "daily-trend-briefing", + description: "seeded skill", + resourceSummary: { + hasScripts: false, + hasReferences: false, + hasAssets: false, + }, + standardCompliance: { + isStandard: true, + }, + metadata: { + Lime_base_setup_package_id: "automation-pack", + Lime_base_setup_package_version: "0.4.0", + Lime_projection_id: "daily-trend-briefing", + Lime_automation_profile_ref: "trend-automation", + }, + }, slotSchema: [ { key: "platform", @@ -47,7 +70,136 @@ const SCHEDULED_SKILL: ServiceSkillItem = { ], }; +function createBaseSetupPackage(): BaseSetupPackage { + return { + id: "automation-pack", + version: "0.4.0", + title: "Automation Pack", + summary: "用于测试 durable automation projection", + bundleRefs: [ + { + id: "bundle-1", + source: "remote", + pathOrUri: "lime://bundle-1", + kind: "skill_bundle", + }, + ], + catalogProjections: [ + { + id: "daily-trend-briefing", + targetCatalog: "service_skill_catalog", + entryKey: "daily-trend-briefing", + title: "每日趋势摘要", + summary: "趋势摘要", + category: "内容运营", + outputHint: "趋势摘要", + bundleRefId: "bundle-1", + slotProfileRef: "slot-1", + bindingProfileRef: "binding-1", + artifactProfileRef: "artifact-1", + scorecardProfileRef: "scorecard-1", + policyProfileRef: "policy-1", + automationProfileRef: "trend-automation", + }, + ], + slotProfiles: [ + { + id: "slot-1", + slots: [], + }, + ], + bindingProfiles: [ + { + id: "binding-1", + bindingFamily: "automation_job", + runnerType: "scheduled", + executionLocation: "client_default", + }, + ], + artifactProfiles: [ + { + id: "artifact-1", + deliveryContract: "artifact_bundle", + requiredParts: ["index.md"], + viewerKind: "artifact_bundle", + }, + ], + scorecardProfiles: [ + { + id: "scorecard-1", + metrics: ["success_rate"], + }, + ], + automationProfiles: [ + { + id: "trend-automation", + enabledByDefault: false, + schedule: { + kind: "cron", + cronExpr: "30 8 * * *", + cronTz: "Asia/Shanghai", + slotKey: "schedule_time", + }, + maxRetries: 4, + delivery: { + mode: "announce", + channel: "local_file", + target: "reports/daily-trend.md", + outputSchema: "text", + outputFormat: "text", + bestEffort: false, + }, + }, + ], + policyProfiles: [ + { + id: "policy-1", + }, + ], + compatibility: { + minAppVersion: "1.11.0", + requiredKernelCapabilities: ["automation_job"], + }, + }; +} + +function createProjectionIndex(): BaseSetupProjectionIndex { + return { + artifactProfileRefsByProjectionId: { + "daily-trend-briefing": "artifact-1", + }, + scorecardProfileRefsByProjectionId: { + "daily-trend-briefing": "scorecard-1", + }, + policyProfileRefsByProjectionId: { + "daily-trend-briefing": "policy-1", + }, + automationProfileRefsByProjectionId: { + "daily-trend-briefing": "trend-automation", + }, + compositionBlueprintRefsByProjectionId: {}, + }; +} + describe("service skill automation draft", () => { + beforeEach(() => { + window.localStorage.clear(); + const snapshot = createStoredBaseSetupPackageSnapshot({ + package: createBaseSetupPackage(), + projectionIndex: createProjectionIndex(), + tenantId: "tenant-demo", + syncedAt: "2026-04-15T12:00:00.000Z", + }); + window.localStorage.setItem( + "lime:base-setup-package:v1", + JSON.stringify(snapshot), + ); + }); + + afterEach(() => { + window.localStorage.clear(); + }); + it("应识别可转本地自动化的服务型技能", () => { expect(supportsServiceSkillLocalAutomation(SCHEDULED_SKILL)).toBe(true); expect( @@ -76,6 +228,12 @@ describe("service skill automation draft", () => { expect(initialValues.payload_kind).toBe("agent_turn"); expect(initialValues.schedule_kind).toBe("cron"); expect(initialValues.cron_expr).toBe("00 09 * * *"); + expect(initialValues.enabled).toBe(false); + expect(initialValues.max_retries).toBe("4"); + expect(initialValues.delivery_mode).toBe("announce"); + expect(initialValues.delivery_channel).toBe("local_file"); + expect(initialValues.delivery_target).toBe("reports/daily-trend.md"); + expect(initialValues.best_effort).toBe(false); expect(initialValues.prompt).toContain("[技能任务] 每日趋势摘要"); expect(initialValues.prompt).toContain("[自动化执行要求]"); expect(initialValues.agent_request_metadata).toEqual( @@ -88,6 +246,12 @@ describe("service skill automation draft", () => { id: "daily-trend-briefing", title: "每日趋势摘要", runner_type: "scheduled", + base_setup: expect.objectContaining({ + package_id: "automation-pack", + package_version: "0.4.0", + projection_id: "daily-trend-briefing", + automation_profile_ref: "trend-automation", + }), slot_values: [ { key: "platform", @@ -139,6 +303,11 @@ describe("service skill automation draft", () => { id: "daily-trend-briefing", title: "每日趋势摘要", runner_type: "scheduled", + base_setup: expect.objectContaining({ + package_id: "automation-pack", + projection_id: "daily-trend-briefing", + automation_profile_ref: "trend-automation", + }), slot_values: [], slot_summary: [], user_input: null, @@ -152,4 +321,19 @@ describe("service skill automation draft", () => { }), ); }); + + it("没有 schedule slot 输入时应回退到 automation profile 预设", () => { + const initialValues = buildServiceSkillAutomationInitialValues({ + skill: SCHEDULED_SKILL, + slotValues: { + platform: "x", + industry_keywords: "AI Agent", + }, + workspaceId: "project-1", + }); + + expect(initialValues.schedule_kind).toBe("cron"); + expect(initialValues.cron_expr).toBe("30 8 * * *"); + expect(initialValues.cron_tz).toBe("Asia/Shanghai"); + }); }); diff --git a/src/components/agent/chat/service-skills/automationDraft.ts b/src/components/agent/chat/service-skills/automationDraft.ts index 870e78be2..a727324b2 100644 --- a/src/components/agent/chat/service-skills/automationDraft.ts +++ b/src/components/agent/chat/service-skills/automationDraft.ts @@ -1,4 +1,5 @@ import type { AutomationJobDialogInitialValues } from "@/components/settings-v2/system/automation/AutomationJobDialog"; +import { resolveBaseSetupAutomationProjectionForSkill } from "@/lib/base-setup/automationProjection"; import { buildHarnessRequestMetadata } from "../utils/harnessRequestMetadata"; import { composeServiceSkillAutomationPrompt } from "./promptComposer"; import type { @@ -114,7 +115,16 @@ function resolveLocalTimeZone(): string { function resolveScheduleSlotValue( skill: ServiceSkillItem, slotValues: ServiceSkillSlotValues, + preferredSlotKey?: string, ): string { + if (preferredSlotKey) { + const currentValue = slotValues[preferredSlotKey]?.trim(); + if (currentValue) { + return currentValue; + } + return ""; + } + const scheduleSlot = skill.slotSchema.find( (slot) => slot.type === "schedule_time", ); @@ -147,6 +157,24 @@ function buildCronPrefill( }; } +function buildAtPrefill( + at: string, +): Pick { + const date = new Date(at); + if (Number.isNaN(date.getTime())) { + return { + schedule_kind: "at", + at_local: "", + }; + } + + date.setMinutes(date.getMinutes() - date.getTimezoneOffset()); + return { + schedule_kind: "at", + at_local: date.toISOString().slice(0, 16), + }; +} + function parseScheduleTextToPrefill( rawValue: string, ): Pick< @@ -232,6 +260,7 @@ function buildServiceSkillAutomationMetadata(input: { userInput?: string; }): Record { const { skill, slotValues, userInput } = input; + const automationProjection = resolveBaseSetupAutomationProjectionForSkill(skill); const slotSummary = slotValues ? buildServiceSkillAutomationSlotSummary(skill, slotValues) : []; @@ -243,6 +272,19 @@ function buildServiceSkillAutomationMetadata(input: { runner_type: skill.runnerType, execution_location: skill.executionLocation, source: skill.source, + base_setup: + automationProjection.refs.packageId || + automationProjection.refs.packageVersion || + automationProjection.refs.projectionId || + automationProjection.refs.automationProfileRef + ? { + package_id: automationProjection.refs.packageId ?? null, + package_version: automationProjection.refs.packageVersion ?? null, + projection_id: automationProjection.refs.projectionId ?? null, + automation_profile_ref: + automationProjection.refs.automationProfileRef ?? null, + } + : undefined, slot_values: slotSummary, slot_summary: slotSummary.map((item) => `${item.label}: ${item.value}`), user_input: normalizedUserInput ?? null, @@ -319,14 +361,54 @@ export function buildServiceSkillAutomationInitialValues({ userInput, workspaceId, }: BuildServiceSkillAutomationInitialValuesInput): AutomationJobDialogInitialValues { - const scheduleValue = resolveScheduleSlotValue(skill, slotValues); - const schedulePrefill = parseScheduleTextToPrefill(scheduleValue); + const automationProjection = resolveBaseSetupAutomationProjectionForSkill(skill); + const scheduleValue = resolveScheduleSlotValue( + skill, + slotValues, + automationProjection.profile?.schedule?.slotKey, + ); + const schedulePrefill = scheduleValue.trim() + ? parseScheduleTextToPrefill(scheduleValue) + : automationProjection.profile?.schedule?.kind === "every" + ? { + schedule_kind: "every" as const, + every_secs: String(automationProjection.profile.schedule.everySecs), + } + : automationProjection.profile?.schedule?.kind === "cron" + ? { + schedule_kind: "cron" as const, + cron_expr: automationProjection.profile.schedule.cronExpr, + cron_tz: + automationProjection.profile.schedule.cronTz || + resolveLocalTimeZone(), + } + : automationProjection.profile?.schedule?.kind === "at" + ? buildAtPrefill(automationProjection.profile.schedule.at) + : buildDefaultSchedulePrefill(); + const deliveryPrefill = + automationProjection.profile?.delivery?.mode === "announce" + ? { + delivery_mode: "announce" as const, + delivery_channel: + automationProjection.profile.delivery.channel ?? "webhook", + delivery_target: automationProjection.profile.delivery.target ?? "", + delivery_output_schema: + automationProjection.profile.delivery.outputSchema ?? "text", + delivery_output_format: + automationProjection.profile.delivery.outputFormat ?? "text", + best_effort: + automationProjection.profile.delivery.bestEffort ?? true, + } + : { + delivery_mode: "none" as const, + best_effort: + automationProjection.profile?.delivery?.bestEffort ?? true, + }; return { name: buildServiceSkillAutomationName(skill), description: buildServiceSkillAutomationDescription(skill, scheduleValue), workspace_id: workspaceId, - enabled: true, execution_mode: "skill", payload_kind: "agent_turn", prompt: composeServiceSkillAutomationPrompt({ @@ -342,8 +424,12 @@ export function buildServiceSkillAutomationInitialValues({ slotValues, userInput, }).request_metadata, - max_retries: "2", - delivery_mode: "none", + max_retries: + automationProjection.profile?.maxRetries !== undefined + ? String(automationProjection.profile.maxRetries) + : "2", + enabled: automationProjection.profile?.enabledByDefault ?? true, + ...deliveryPrefill, ...schedulePrefill, }; } diff --git a/src/components/agent/chat/team-workspace-runtime/liveRuntimeProjector.test.ts b/src/components/agent/chat/team-workspace-runtime/liveRuntimeProjector.test.ts index 6177f8bab..3e6b30426 100644 --- a/src/components/agent/chat/team-workspace-runtime/liveRuntimeProjector.test.ts +++ b/src/components/agent/chat/team-workspace-runtime/liveRuntimeProjector.test.ts @@ -122,6 +122,27 @@ describe("liveRuntimeProjector", () => { }); }); + it("内部路由型 runtime_status 不应投影为用户可见 activity", () => { + const projection = projectRuntimeStreamEvent({ + sessionId: "child-1", + session: createSessionSnapshot({ + runtimeStatus: "running", + latestTurnStatus: "running", + }), + event: { + type: "runtime_status", + status: { + title: "直接回答优先", + detail: "当前请求无需默认升级为搜索或任务。", + checkpoints: ["默认保持直接回答"], + }, + } as AgentEvent, + }); + + expect(projection?.entry).toBeNull(); + expect(projection?.liveRuntimePatch).toBeUndefined(); + }); + it("queue 与 turn 生命周期提示应使用子任务口径", () => { const queuedProjection = projectRuntimeStreamEvent({ sessionId: "child-1", diff --git a/src/components/agent/chat/team-workspace-runtime/liveRuntimeProjector.ts b/src/components/agent/chat/team-workspace-runtime/liveRuntimeProjector.ts index 5e21e7d55..8cacca6ad 100644 --- a/src/components/agent/chat/team-workspace-runtime/liveRuntimeProjector.ts +++ b/src/components/agent/chat/team-workspace-runtime/liveRuntimeProjector.ts @@ -15,6 +15,10 @@ import { } from "../teamWorkspaceRuntime"; import { resolveUserFacingToolDisplayLabel } from "../utils/toolDisplayInfo"; import { resolveTeamWorkspaceDisplayRuntimeStatusLabel } from "../utils/teamWorkspaceCopy"; +import { + buildRuntimeStatusPresentationText, + isInternalRoutingRuntimeStatus, +} from "../utils/turnSummaryPresentation"; const LIVE_ACTIVITY_ENTRY_LIMIT = 3; const LIVE_ACTIVITY_DETAIL_MAX_LENGTH = 220; @@ -142,19 +146,21 @@ function buildRuntimeStatusEntry( sessionId: string, status: AgentRuntimeStatusPayload, ) { + if (isInternalRoutingRuntimeStatus(status)) { + return null; + } + const waiting = status.metadata?.team_phase === "queued" || status.metadata?.concurrency_phase === "queued"; + const detail = buildRuntimeStatusPresentationText({ + detail: status.detail, + checkpoints: (status.checkpoints ?? []).map((item) => `• ${item}`), + }); return buildActivityEntry({ id: `runtime-status:${sessionId}`, title: status.title.trim() || "当前进展", - detail: [ - status.detail, - ...(status.checkpoints ?? []).map((item) => `• ${item}`), - ] - .map((item) => item.trim()) - .filter(Boolean) - .join("\n"), + detail, statusLabel: waiting ? "稍后开始" : "处理中", badgeClassName: waiting ? QUEUED_BADGE_CLASS_NAME diff --git a/src/components/agent/chat/utils/generalAgentPrompt.ts b/src/components/agent/chat/utils/generalAgentPrompt.ts index b691f7a19..2d8cb4607 100644 --- a/src/components/agent/chat/utils/generalAgentPrompt.ts +++ b/src/components/agent/chat/utils/generalAgentPrompt.ts @@ -42,7 +42,7 @@ function formatAbsoluteDate(date: Date): string { const GENERAL_THEME_GUIDANCE: Record = { general: [ "优先处理需求澄清、方案对比、快速总结、行动清单、日常决策与文本起草。", - "能直接回答的问题直接回答,不要默认升级成调研项目或多阶段工作流。", + "能直接回答的问题直接回答,但只限于不依赖项目、文件、路径或实时证据核对的场景;涉及本地内容时先读证据,不要凭印象下结论。", ], }; @@ -128,6 +128,7 @@ export function buildGeneralAgentSystemPrompt( - 当用户希望你帮他推进一件事时,能直接完成就直接完成;只有在关键信息缺失且会显著影响结果时,才提出 1 个当前最关键的问题。 - 如果剩余缺口可以通过合理假设补齐,就直接带着假设继续推进,并明确告诉用户你当前采用了什么假设,而不是先把所有问题一次性抛给用户。 - 每次响应都先判断这是一条“直接回答”请求,还是需要升级到搜索、思考、计划执行、任务拆分或工作区操作;不要一上来就走重链路。 +- 只要用户问题依赖项目结构、源码实现、文件内容、目录布局、显式路径或工作区事实,就不要把它当成纯聊天题;必须先读取足够证据,再输出判断。 当前能力开关: ${toolPreferenceLines} @@ -154,10 +155,14 @@ ${toolPreferenceLines} 12. 不输出原始思维链路;只输出结论、关键依据、必要假设、来源时间和可执行下一步。 13. 如果用户只是要一个答案、草稿、提纲、比较或总结,不要擅自把问题升级成项目制流程。 14. 如果要给出计划,默认同时给优先级、阶段划分、约束、风险和下一步动作,而不是抽象口号。 +15. 如果用户明确提到项目、仓库、代码库、文件、目录、模块、路径或工作区,不要只基于常识、上一轮缓存或模糊记忆作答;先读取相关证据。 +16. 如果需要查看多个彼此独立的目录、文件或只读事实源,优先在同一批里并行调用多个只读工具,而不是一轮只读一个。 +17. 如果当前证据还不足,不要停在“我还需要继续看看/再读一下”的中间态;应继续下一批必要工具调用,直到能给出完整结论,或明确指出精确阻塞点。 行为协议: - 先判断应该走哪条车道:直接回答 / 联网检索 / 深度思考 / 计划执行 / 任务拆分。 - 如果用户当前只是想要答案、改写、总结、比较或建议,默认停留在“直接回答”车道。 +- 只有当答案不依赖文件、项目、路径、页面或实时事实核验时,才留在“直接回答”车道;否则应先升级到对应工具执行。 - 如果进入计划执行或任务拆分,先用一句自然语言说明为什么要升级执行方式,再继续推进。 - 如果进入计划执行或任务分工,不要只播报状态;要先告诉用户你会如何分工、接下来会发生什么、你会带着什么结果回来。 - 如果当前偏好未开启计划执行或任务拆分,只有在用户明确要求或问题明显需要时才升级,不要滥用。 diff --git a/src/components/agent/chat/utils/mentionCommandReplayText.test.ts b/src/components/agent/chat/utils/mentionCommandReplayText.test.ts index 234b10318..0c5b96da9 100644 --- a/src/components/agent/chat/utils/mentionCommandReplayText.test.ts +++ b/src/components/agent/chat/utils/mentionCommandReplayText.test.ts @@ -373,7 +373,7 @@ describe("buildMentionCommandReplayText", () => { it("自然语句的 @分析 应保守回退正文", () => { const parsedCommand = parseAnalysisWorkbenchCommand( - "@分析 帮我拆解 Claude Code 最近为什么火", + "@分析 帮我拆解某代码助手最近为什么火", ); expect( @@ -381,7 +381,7 @@ describe("buildMentionCommandReplayText", () => { commandKey: "analysis", parsedCommand: parsedCommand!, }), - ).toBe("帮我拆解 Claude Code 最近为什么火"); + ).toBe("帮我拆解某代码助手最近为什么火"); }); it("应把 @发布合规 回放整理成带默认约束的字段骨架", () => { diff --git a/src/components/agent/chat/utils/styleRuntime.test.ts b/src/components/agent/chat/utils/styleRuntime.test.ts deleted file mode 100644 index fb7fcdaa1..000000000 --- a/src/components/agent/chat/utils/styleRuntime.test.ts +++ /dev/null @@ -1,98 +0,0 @@ -import { describe, expect, it } from "vitest"; -import { - extractStyleActionContent, - resolveStyleActionFileName, -} from "./styleRuntime"; - -describe("styleRuntime", () => { - it("有选中文件内容时应优先使用该文件作为风格重写目标", () => { - const result = extractStyleActionContent({ - activeTheme: "general", - generalCanvasState: { - type: "document", - filename: "general.md", - content: "通用画布内容", - selectedText: "", - title: "", - lastModified: Date.now(), - }, - resolvedCanvasState: { - type: "document", - content: "画布正文", - versions: [], - currentVersionId: undefined, - }, - taskFiles: [ - { - id: "file-1", - name: "final-article.md", - type: "document", - content: "任务文件正文", - version: 1, - createdAt: Date.now(), - updatedAt: Date.now(), - }, - ], - selectedFileId: "file-1", - } as any); - - expect(result).toBe("任务文件正文"); - }); - - it("应优先返回当前选中文件名", () => { - const result = resolveStyleActionFileName({ - activeTheme: "general", - generalCanvasState: { - type: "document", - filename: "general.md", - content: "", - selectedText: "", - title: "", - lastModified: Date.now(), - }, - resolvedCanvasState: { - type: "document", - content: "画布正文", - versions: [], - currentVersionId: undefined, - }, - taskFiles: [ - { - id: "file-1", - name: "final-article.md", - type: "document", - content: "任务文件正文", - version: 1, - createdAt: Date.now(), - updatedAt: Date.now(), - }, - ], - selectedFileId: "file-1", - } as any); - - expect(result).toBe("final-article.md"); - }); - - it("未选中文件时应回退到当前通用画布内容", () => { - const result = extractStyleActionContent({ - activeTheme: "general", - generalCanvasState: { - type: "document", - filename: "general.md", - content: "通用画布内容", - selectedText: "", - title: "", - lastModified: Date.now(), - }, - resolvedCanvasState: { - type: "document", - content: "画布正文", - versions: [], - currentVersionId: undefined, - }, - taskFiles: [], - } as any); - - expect(result).toBe("通用画布内容"); - }); -}); diff --git a/src/components/agent/chat/utils/styleRuntime.ts b/src/components/agent/chat/utils/styleRuntime.ts deleted file mode 100644 index fc87da0a0..000000000 --- a/src/components/agent/chat/utils/styleRuntime.ts +++ /dev/null @@ -1,77 +0,0 @@ -import type { ThemeType } from "@/lib/workspace/workbenchContract"; -import type { CanvasStateUnion } from "@/lib/workspace/workbenchCanvas"; -import type { CanvasState as GeneralCanvasState } from "@/components/general-chat/bridge"; -import type { TaskFile } from "../components/TaskFiles"; -import { getSupportedFilenames } from "./workflowMapping"; - -interface StyleActionContext { - activeTheme: ThemeType; - generalCanvasState: GeneralCanvasState; - resolvedCanvasState: CanvasStateUnion | null; - taskFiles: TaskFile[]; - selectedFileId?: string; -} - -function getSelectedTaskFileContent(context: StyleActionContext): string { - const selectedFile = context.taskFiles.find( - (file) => file.id === context.selectedFileId, - ); - return typeof selectedFile?.content === "string" - ? selectedFile.content.trim() - : ""; -} - -export function extractStyleActionContent(context: StyleActionContext): string { - const { activeTheme, generalCanvasState, resolvedCanvasState } = context; - const selectedFileContent = getSelectedTaskFileContent(context); - - if (selectedFileContent) { - return selectedFileContent; - } - - if (activeTheme === "general") { - return generalCanvasState.content.trim(); - } - - if (!resolvedCanvasState) { - return ""; - } - - switch (resolvedCanvasState.type) { - case "document": - return resolvedCanvasState.content.trim(); - case "video": - return resolvedCanvasState.prompt.trim(); - default: - return ""; - } -} - -export function resolveStyleActionFileName( - context: StyleActionContext, -): string { - const selectedFile = context.taskFiles.find( - (file) => file.id === context.selectedFileId, - ); - if (selectedFile?.name) { - return selectedFile.name; - } - - if (context.activeTheme === "general") { - return context.generalCanvasState.filename || "article.md"; - } - - const supportedFileNames = getSupportedFilenames(context.activeTheme); - if (supportedFileNames.length > 0) { - return supportedFileNames[supportedFileNames.length - 1] || "article.md"; - } - - switch (context.resolvedCanvasState?.type) { - case "document": - return "article.md"; - case "video": - return "script-final.md"; - default: - return "article.md"; - } -} diff --git a/src/components/agent/chat/utils/tokenUsageSummary.ts b/src/components/agent/chat/utils/tokenUsageSummary.ts new file mode 100644 index 000000000..d167e2c32 --- /dev/null +++ b/src/components/agent/chat/utils/tokenUsageSummary.ts @@ -0,0 +1,74 @@ +import type { AgentTokenUsage as TokenUsage } from "@/lib/api/agentProtocol"; + +const COMPACT_UNITS = [ + { threshold: 1_000_000_000, suffix: "B" }, + { threshold: 1_000_000, suffix: "M" }, + { threshold: 1_000, suffix: "K" }, +] as const; + +export function formatCompactTokenCount(value: number): string { + if (!Number.isFinite(value)) { + return "0"; + } + + const normalized = Math.max(0, value); + for (const unit of COMPACT_UNITS) { + if (normalized >= unit.threshold) { + return `${(normalized / unit.threshold).toFixed(1)}${unit.suffix}`; + } + } + + return normalized.toLocaleString(); +} + +export function resolvePromptCacheActivity(usage?: { + cached_input_tokens?: number; + cache_creation_input_tokens?: number; +}): number { + return ( + Math.max(0, usage?.cached_input_tokens ?? 0) + + Math.max(0, usage?.cache_creation_input_tokens ?? 0) + ); +} + +export function resolveUsageInputOutputSummary( + usage?: TokenUsage, +): string | null { + if (!usage) { + return null; + } + + return `输入 ${formatCompactTokenCount(usage.input_tokens)} / 输出 ${formatCompactTokenCount( + usage.output_tokens, + )}`; +} + +export function resolvePromptCacheMetaText( + usage?: TokenUsage, +): string | null { + const hasCachedRead = Number.isFinite(usage?.cached_input_tokens); + const hasCacheCreation = Number.isFinite(usage?.cache_creation_input_tokens); + + if (!hasCachedRead && !hasCacheCreation) { + return null; + } + + const cachedRead = Math.max(0, usage?.cached_input_tokens ?? 0); + const cacheCreation = Math.max(0, usage?.cache_creation_input_tokens ?? 0); + const totalCached = cachedRead + cacheCreation; + + if (totalCached <= 0) { + return "缓存 0"; + } + + if (hasCacheCreation) { + if (hasCachedRead) { + return `缓存 ${formatCompactTokenCount(totalCached)}(读 ${formatCompactTokenCount( + cachedRead, + )} / 写 ${formatCompactTokenCount(cacheCreation)})`; + } + return `缓存写 ${formatCompactTokenCount(cacheCreation)}`; + } + + return `缓存 ${formatCompactTokenCount(cachedRead)}`; +} diff --git a/src/components/agent/chat/utils/turnSummaryPresentation.ts b/src/components/agent/chat/utils/turnSummaryPresentation.ts index eb6aa9daf..331cd80de 100644 --- a/src/components/agent/chat/utils/turnSummaryPresentation.ts +++ b/src/components/agent/chat/utils/turnSummaryPresentation.ts @@ -6,8 +6,10 @@ const INTERNAL_ROUTING_SUMMARY_PATTERNS = [ /^联网搜索能力待命$/, /^联网搜索仅作为候选能力待命$/, /^先理解意图再决定是否联网$/, - /^当前请求无需默认升级为搜索或任务$/, - /^当前请求无需工具介入$/, + /^当前请求无需默认升级为搜索或任务/, + /^当前请求无需工具介入/, + /^默认保持直接回答$/, + /^只有证据不足或时效性要求出现时才升级$/, /^等待首个模型事件$/, /^推理增强已待命$/, /^必要时启用深度思考$/, @@ -26,6 +28,7 @@ const INTERNAL_ROUTING_SUMMARY_PATTERNS = [ function normalizeLineForMatch(value: string): string { return value .replace(LEGACY_DECISION_PREFIX_RE, "") + .replace(/^[•*-]\s*/u, "") .replace(/[。;,、,.!?!?::]/g, "") .replace(/\s+/g, "") .trim(); @@ -74,3 +77,44 @@ export function isInternalRoutingTurnSummaryText( ); }); } + +interface RuntimeStatusLike { + title?: string | null; + detail?: string | null; + checkpoints?: Array | null; +} + +export function buildRuntimeStatusPresentationText( + status?: RuntimeStatusLike | null, +): string { + if (!status) { + return ""; + } + + return [ + status.title, + status.detail, + ...(status.checkpoints ?? []), + ] + .map((line) => normalizeTurnSummaryDisplayText(line)) + .filter(Boolean) + .join("\n"); +} + +export function isInternalRoutingRuntimeStatus( + status?: RuntimeStatusLike | null, +): boolean { + if (!status) { + return false; + } + + const primaryText = [status.title, status.detail] + .map((line) => normalizeTurnSummaryDisplayText(line)) + .filter(Boolean) + .join("\n"); + if (primaryText && isInternalRoutingTurnSummaryText(primaryText)) { + return true; + } + + return isInternalRoutingTurnSummaryText(buildRuntimeStatusPresentationText(status)); +} diff --git a/src/components/agent/chat/workspace/WorkspaceConversationScene.tsx b/src/components/agent/chat/workspace/WorkspaceConversationScene.tsx index 48d0e3bd0..14adb7edb 100644 --- a/src/components/agent/chat/workspace/WorkspaceConversationScene.tsx +++ b/src/components/agent/chat/workspace/WorkspaceConversationScene.tsx @@ -288,9 +288,34 @@ interface WorkspaceConversationSceneProps extends WorkspaceMainAreaProps { typeof EmptyState >["onLaunchBrowserAssist"]; browserAssistLoading: boolean; + featuredSceneApps: NonNullable< + ComponentProps["featuredSceneApps"] + >; + sceneAppsLoading: boolean; + sceneAppLaunchingId: ComponentProps["sceneAppLaunchingId"]; + onLaunchSceneApp?: ComponentProps["onLaunchSceneApp"]; + canResumeRecentSceneApp?: ComponentProps< + typeof EmptyState + >["canResumeRecentSceneApp"]; + onResumeRecentSceneApp?: ComponentProps< + typeof EmptyState + >["onResumeRecentSceneApp"]; + onOpenSceneAppsDirectory?: ComponentProps< + typeof EmptyState + >["onOpenSceneAppsDirectory"]; projectId: string | null; onProjectChange?: ComponentProps["onProjectChange"]; onOpenSettings?: () => void; + runtimeToolAvailability?: ComponentProps< + typeof EmptyState + >["runtimeToolAvailability"]; + runtimeTaskCard?: ComponentProps["runtimeTaskCard"]; + onOpenMemoryWorkbench?: ComponentProps< + typeof EmptyState + >["onOpenMemoryWorkbench"]; + onOpenChannels?: ComponentProps["onOpenChannels"]; + onOpenChromeRelay?: ComponentProps["onOpenChromeRelay"]; + onOpenOpenClaw?: ComponentProps["onOpenOpenClaw"]; navbarVisible: boolean; isRunning: boolean; navbarChrome: ComponentProps["chrome"]; @@ -393,9 +418,22 @@ export function WorkspaceConversationScene({ onRefreshSkills, onLaunchBrowserAssist, browserAssistLoading, + featuredSceneApps, + sceneAppsLoading, + sceneAppLaunchingId, + onLaunchSceneApp, + canResumeRecentSceneApp, + onResumeRecentSceneApp, + onOpenSceneAppsDirectory, projectId, onProjectChange, onOpenSettings, + runtimeToolAvailability, + runtimeTaskCard, + onOpenMemoryWorkbench, + onOpenChannels, + onOpenChromeRelay, + onOpenOpenClaw, navbarVisible, isRunning, navbarChrome, @@ -474,9 +512,22 @@ export function WorkspaceConversationScene({ onRefreshSkills, onLaunchBrowserAssist, browserAssistLoading, + featuredSceneApps, + sceneAppsLoading, + sceneAppLaunchingId, + onLaunchSceneApp, + canResumeRecentSceneApp, + onResumeRecentSceneApp, + onOpenSceneAppsDirectory, projectId, onProjectChange, onOpenSettings, + runtimeToolAvailability, + runtimeTaskCard, + onOpenMemoryWorkbench, + onOpenChannels, + onOpenChromeRelay, + onOpenOpenClaw, }); const chatContent = renderWorkspaceChatContent({ diff --git a/src/components/agent/chat/workspace/chatSurfaceProps.ts b/src/components/agent/chat/workspace/chatSurfaceProps.ts index 324729138..c6cfad924 100644 --- a/src/components/agent/chat/workspace/chatSurfaceProps.ts +++ b/src/components/agent/chat/workspace/chatSurfaceProps.ts @@ -142,9 +142,34 @@ interface BuildWorkspaceEmptyStatePropsParams { typeof EmptyState >["onLaunchBrowserAssist"]; browserAssistLoading: boolean; + featuredSceneApps: NonNullable< + ComponentProps["featuredSceneApps"] + >; + sceneAppsLoading: boolean; + sceneAppLaunchingId: ComponentProps["sceneAppLaunchingId"]; + onLaunchSceneApp?: ComponentProps["onLaunchSceneApp"]; + canResumeRecentSceneApp?: ComponentProps< + typeof EmptyState + >["canResumeRecentSceneApp"]; + onResumeRecentSceneApp?: ComponentProps< + typeof EmptyState + >["onResumeRecentSceneApp"]; + onOpenSceneAppsDirectory?: ComponentProps< + typeof EmptyState + >["onOpenSceneAppsDirectory"]; projectId: string | null; onProjectChange?: ComponentProps["onProjectChange"]; onOpenSettings?: ComponentProps["onOpenSettings"]; + runtimeToolAvailability?: ComponentProps< + typeof EmptyState + >["runtimeToolAvailability"]; + runtimeTaskCard?: ComponentProps["runtimeTaskCard"]; + onOpenMemoryWorkbench?: ComponentProps< + typeof EmptyState + >["onOpenMemoryWorkbench"]; + onOpenChannels?: ComponentProps["onOpenChannels"]; + onOpenChromeRelay?: ComponentProps["onOpenChromeRelay"]; + onOpenOpenClaw?: ComponentProps["onOpenOpenClaw"]; } export function buildWorkspaceEmptyStateProps({ @@ -186,9 +211,22 @@ export function buildWorkspaceEmptyStateProps({ onRefreshSkills, onLaunchBrowserAssist, browserAssistLoading, + featuredSceneApps, + sceneAppsLoading, + sceneAppLaunchingId, + onLaunchSceneApp, + canResumeRecentSceneApp, + onResumeRecentSceneApp, + onOpenSceneAppsDirectory, projectId, onProjectChange, onOpenSettings, + runtimeToolAvailability, + runtimeTaskCard, + onOpenMemoryWorkbench, + onOpenChannels, + onOpenChromeRelay, + onOpenOpenClaw, }: BuildWorkspaceEmptyStatePropsParams): ComponentProps { return { input, @@ -239,9 +277,22 @@ export function buildWorkspaceEmptyStateProps({ onRefreshSkills, onLaunchBrowserAssist, browserAssistLoading, + featuredSceneApps, + sceneAppsLoading, + sceneAppLaunchingId, + onLaunchSceneApp, + canResumeRecentSceneApp, + onResumeRecentSceneApp, + onOpenSceneAppsDirectory, projectId, onProjectChange, onOpenSettings, + runtimeToolAvailability, + runtimeTaskCard, + onOpenMemoryWorkbench, + onOpenChannels, + onOpenChromeRelay, + onOpenOpenClaw, }; } diff --git a/src/components/agent/chat/workspace/sceneAppLaunch.test.ts b/src/components/agent/chat/workspace/sceneAppLaunch.test.ts new file mode 100644 index 000000000..d24c3fa9e --- /dev/null +++ b/src/components/agent/chat/workspace/sceneAppLaunch.test.ts @@ -0,0 +1,546 @@ +import { beforeEach, describe, expect, it, vi } from "vitest"; +import { + executeSceneAppLaunchAction, + resolveSceneAppLaunchAction, +} from "./sceneAppLaunch"; +import type { SceneAppPlanResult } from "@/lib/sceneapp"; +import type { ChatToolPreferences } from "../utils/chatToolPreferences"; + +type SceneAppPlanResultOverrides = { + descriptor?: Partial; + readiness?: Partial; + plan?: Partial> & { + adapterPlan?: Partial; + }; +}; + +const mockCreateSceneAppAutomationJob = vi.hoisted(() => vi.fn()); + +vi.mock("@/lib/api/sceneapp", async () => { + const actual = await vi.importActual( + "@/lib/api/sceneapp", + ); + return { + ...actual, + createSceneAppAutomationJob: mockCreateSceneAppAutomationJob, + }; +}); + +const defaultToolPreferences: ChatToolPreferences = { + webSearch: false, + thinking: false, + task: false, + subagent: false, +}; + +function createPlanResult( + overrides: SceneAppPlanResultOverrides = {}, +): SceneAppPlanResult { + const planOverrides = overrides.plan ?? {}; + const adapterPlanOverrides = planOverrides.adapterPlan ?? {}; + + return { + descriptor: { + id: "sceneapp-demo", + title: "SceneApp Demo", + summary: "SceneApp 执行桥接测试样板。", + category: "测试", + sceneappType: "hybrid", + patternPrimary: "pipeline", + patternStack: ["pipeline"], + capabilityRefs: ["sceneapp"], + infraProfile: ["workspace_storage"], + deliveryContract: "artifact_bundle", + outputHint: "测试输出", + entryBindings: [ + { + kind: "service_skill", + bindingFamily: "agent_turn", + }, + ], + launchRequirements: [], + sourcePackageId: "lime-core-sceneapps", + sourcePackageVersion: "2026-04-15", + ...(overrides.descriptor ?? {}), + } as SceneAppPlanResult["descriptor"], + readiness: { + ready: true, + unmetRequirements: [], + ...(overrides.readiness ?? {}), + } as SceneAppPlanResult["readiness"], + plan: { + sceneappId: planOverrides.sceneappId ?? "sceneapp-demo", + executorKind: planOverrides.executorKind ?? "agent_turn", + bindingFamily: planOverrides.bindingFamily ?? "agent_turn", + stepPlan: planOverrides.stepPlan ?? [], + adapterPlan: { + adapterKind: adapterPlanOverrides.adapterKind ?? "agent_turn", + runtimeAction: + adapterPlanOverrides.runtimeAction ?? "submit_agent_turn", + targetRef: adapterPlanOverrides.targetRef ?? "sceneapp-demo", + targetLabel: adapterPlanOverrides.targetLabel ?? "SceneApp Demo", + requestMetadata: adapterPlanOverrides.requestMetadata ?? { + harness: { + sceneapp_runtime_action: "submit_agent_turn", + }, + }, + launchPayload: adapterPlanOverrides.launchPayload ?? { + sceneapp_id: "sceneapp-demo", + message: "请执行 SceneApp Demo", + }, + notes: adapterPlanOverrides.notes ?? [], + linkedServiceSkillId: adapterPlanOverrides.linkedServiceSkillId, + linkedSceneKey: adapterPlanOverrides.linkedSceneKey, + preferredProfileKey: adapterPlanOverrides.preferredProfileKey, + } as SceneAppPlanResult["plan"]["adapterPlan"], + storageStrategy: planOverrides.storageStrategy ?? "workspace_bundle", + artifactContract: planOverrides.artifactContract ?? "artifact_bundle", + governanceHooks: planOverrides.governanceHooks ?? [], + warnings: planOverrides.warnings ?? [], + } as SceneAppPlanResult["plan"], + }; +} + +describe("sceneAppLaunch", () => { + beforeEach(() => { + vi.clearAllMocks(); + }); + + it("应把 workspace 类型 SceneApp 翻译成 agent 导航动作", () => { + const result = createPlanResult({ + descriptor: { + id: "story-video-suite", + title: "短视频编排", + }, + plan: { + sceneappId: "story-video-suite", + executorKind: "cloud_scene", + bindingFamily: "cloud_scene", + adapterPlan: { + adapterKind: "cloud_scene", + runtimeAction: "launch_cloud_scene", + targetRef: "sceneapp-service-story-video", + targetLabel: "短视频编排", + requestMetadata: { + harness: { + service_scene_launch: { + kind: "cloud_scene", + }, + }, + }, + launchPayload: { + sceneapp_id: "story-video-suite", + workspace_id: "workspace-video", + project_id: "project-video", + content_id: "content-video-1", + user_input: "生成一版产品短视频", + }, + notes: [], + }, + }, + }); + + const resolved = resolveSceneAppLaunchAction({ + planResult: result, + projectId: "project-current", + activeTheme: "general", + creationMode: "guided", + defaultToolPreferences, + now: () => 123, + }); + + expect(resolved).toEqual( + expect.objectContaining({ + ok: true, + kind: "navigate_agent", + executionDraft: expect.objectContaining({ + kind: "workspace_entry", + runtimeAction: "launch_cloud_scene", + }), + resolvedEntry: expect.objectContaining({ + navigationParams: expect.objectContaining({ + projectId: "project-video", + contentId: "content-video-1", + initialUserPrompt: "生成一版产品短视频", + autoRunInitialPromptOnMount: true, + }), + }), + }), + ); + }); + + it("缺少项目时应返回结构化拒绝原因", () => { + const result = createPlanResult({ + descriptor: { + id: "native-scene", + title: "本地分析场景", + }, + plan: { + sceneappId: "native-scene", + executorKind: "native_skill", + bindingFamily: "native_skill", + adapterPlan: { + adapterKind: "native_skill", + runtimeAction: "launch_native_skill", + targetRef: "native-scene", + targetLabel: "本地分析场景", + requestMetadata: {}, + launchPayload: { + sceneapp_id: "native-scene", + message: "请分析这个项目", + }, + notes: [], + }, + }, + }); + + const resolved = resolveSceneAppLaunchAction({ + planResult: result, + projectId: null, + activeTheme: "general", + creationMode: "guided", + defaultToolPreferences, + now: () => 234, + }); + + expect(resolved).toEqual({ + ok: false, + kind: "workspace_entry", + executionDraft: expect.objectContaining({ + kind: "workspace_entry", + runtimeAction: "launch_native_skill", + }), + reason: "missing_project", + message: "SceneApp「本地分析场景」需要项目工作区,请先选择项目后再启动。", + }); + }); + + it("native_skill 类型 SceneApp 应导航到服务技能入口而不是普通 prompt", () => { + const result = createPlanResult({ + descriptor: { + id: "project-analysis-copilot", + title: "项目分析 Copilot", + }, + plan: { + sceneappId: "project-analysis-copilot", + executorKind: "native_skill", + bindingFamily: "native_skill", + adapterPlan: { + adapterKind: "native_skill", + runtimeAction: "launch_native_skill", + targetRef: "sceneapp-service-analysis", + targetLabel: "项目分析 Copilot", + requestMetadata: { + sceneapp: { + id: "project-analysis-copilot", + }, + harness: { + sceneapp_runtime_action: "launch_native_skill", + sceneapp_native_skill_launch: { + skill_id: "sceneapp-service-analysis", + skill_key: "project-analysis", + project_id: "project-analysis", + workspace_id: "workspace-analysis", + user_input: "请分析当前项目结构", + slots: { + focus: "架构", + }, + }, + }, + }, + launchPayload: { + sceneapp_id: "project-analysis-copilot", + service_skill_id: "sceneapp-service-analysis", + project_id: "project-analysis", + workspace_id: "workspace-analysis", + user_input: "请分析当前项目结构", + slots: { + focus: "架构", + }, + }, + notes: [], + }, + }, + }); + + const resolved = resolveSceneAppLaunchAction({ + planResult: result, + projectId: "project-current", + activeTheme: "general", + creationMode: "guided", + defaultToolPreferences, + now: () => 345, + }); + + expect(resolved).toEqual( + expect.objectContaining({ + ok: true, + kind: "navigate_agent", + resolvedEntry: expect.objectContaining({ + navigationParams: expect.objectContaining({ + projectId: "project-analysis", + initialPendingServiceSkillLaunch: expect.objectContaining({ + skillId: "sceneapp-service-analysis", + skillKey: "project-analysis", + requestKey: 345, + initialSlotValues: { + focus: "架构", + }, + launchUserInput: "请分析当前项目结构", + }), + }), + }), + }), + ); + }); + + it("执行 workspace 类型 SceneApp 时应调用导航", async () => { + const onNavigate = vi.fn(); + const result = createPlanResult({ + descriptor: { + id: "browser-scene", + title: "网页采集场景", + }, + plan: { + sceneappId: "browser-scene", + executorKind: "browser_assist", + bindingFamily: "browser_assist", + adapterPlan: { + adapterKind: "browser_assist", + runtimeAction: "launch_browser_assist", + targetRef: "x/article-export", + targetLabel: "网页采集场景", + requestMetadata: { + harness: { + service_skill_launch: { + adapter_name: "x/article-export", + }, + }, + }, + launchPayload: { + sceneapp_id: "browser-scene", + project_id: "project-browser", + args: { + url: "https://x.com/openai/article/123", + }, + }, + notes: [], + }, + }, + }); + + const executed = await executeSceneAppLaunchAction({ + planResult: result, + projectId: "project-current", + activeTheme: "general", + creationMode: "guided", + defaultToolPreferences, + onNavigate, + now: () => 345, + }); + + expect(executed).toEqual( + expect.objectContaining({ + ok: true, + kind: "navigate_agent", + }), + ); + expect(onNavigate).toHaveBeenCalledWith( + "agent", + expect.objectContaining({ + projectId: "project-browser", + openBrowserAssistOnMount: true, + lockTheme: true, + }), + ); + }); + + it("执行 automation 类型 SceneApp 时应优先打开标准自动化表单", async () => { + const onOpenAutomationDialog = vi.fn(); + const result = createPlanResult({ + descriptor: { + id: "daily-trend-briefing", + title: "每日趋势摘要", + }, + plan: { + sceneappId: "daily-trend-briefing", + executorKind: "automation_job", + bindingFamily: "automation_job", + adapterPlan: { + adapterKind: "automation_job", + runtimeAction: "create_automation_job", + targetRef: "sceneapp-service-daily-trend", + targetLabel: "每日趋势摘要", + requestMetadata: { + sceneapp: { + id: "daily-trend-briefing", + }, + }, + launchPayload: { + sceneapp_id: "daily-trend-briefing", + name: "每日趋势摘要 自动化", + execution_mode: "intelligent", + schedule: { + kind: "every", + every_secs: 3600, + }, + launch_intent: { + sceneapp_id: "daily-trend-briefing", + workspace_id: "workspace-trend", + project_id: "project-trend", + user_input: "关注 AI Agent 行业变化", + }, + }, + notes: [], + }, + }, + }); + + const executed = await executeSceneAppLaunchAction({ + planResult: result, + projectId: "project-current", + activeTheme: "general", + creationMode: "guided", + defaultToolPreferences, + onOpenAutomationDialog, + now: () => 456, + }); + + expect(executed).toEqual( + expect.objectContaining({ + ok: true, + kind: "open_automation_dialog", + }), + ); + expect(onOpenAutomationDialog).toHaveBeenCalledWith({ + initialValues: expect.objectContaining({ + workspace_id: "workspace-trend", + schedule_kind: "every", + }), + automationIntent: expect.objectContaining({ + name: "每日趋势摘要 自动化", + launchIntent: expect.objectContaining({ + sceneappId: "daily-trend-briefing", + }), + }), + executionDraft: expect.objectContaining({ + kind: "automation_job", + }), + }); + expect(mockCreateSceneAppAutomationJob).not.toHaveBeenCalled(); + }); + + it("执行 automation 类型 SceneApp 且未提供表单回调时应直接创建任务", async () => { + mockCreateSceneAppAutomationJob.mockResolvedValueOnce({ + sceneappId: "daily-trend-briefing", + jobId: "sceneapp-job-1", + jobName: "每日趋势摘要 自动化", + enabled: true, + workspaceId: "workspace-trend", + nextRunAt: null, + runNowResult: null, + }); + + const result = createPlanResult({ + descriptor: { + id: "daily-trend-briefing", + title: "每日趋势摘要", + }, + plan: { + sceneappId: "daily-trend-briefing", + executorKind: "automation_job", + bindingFamily: "automation_job", + adapterPlan: { + adapterKind: "automation_job", + runtimeAction: "create_automation_job", + targetRef: "sceneapp-service-daily-trend", + targetLabel: "每日趋势摘要", + requestMetadata: {}, + launchPayload: { + sceneapp_id: "daily-trend-briefing", + launch_intent: { + sceneapp_id: "daily-trend-briefing", + workspace_id: "workspace-trend", + user_input: "关注 AI Agent 行业变化", + }, + }, + notes: [], + }, + }, + }); + + const executed = await executeSceneAppLaunchAction({ + planResult: result, + projectId: "project-current", + activeTheme: "general", + creationMode: "guided", + defaultToolPreferences, + now: () => 567, + }); + + expect(mockCreateSceneAppAutomationJob).toHaveBeenCalledWith( + expect.objectContaining({ + launchIntent: expect.objectContaining({ + sceneappId: "daily-trend-briefing", + workspaceId: "workspace-trend", + }), + }), + ); + expect(executed).toEqual( + expect.objectContaining({ + ok: true, + kind: "automation_job_created", + result: expect.objectContaining({ + jobId: "sceneapp-job-1", + }), + }), + ); + }); + + it("workspace 类型 SceneApp 缺少导航回调时应返回结构化错误", async () => { + const result = createPlanResult({ + descriptor: { + id: "story-video-suite", + title: "短视频编排", + }, + plan: { + sceneappId: "story-video-suite", + executorKind: "cloud_scene", + bindingFamily: "cloud_scene", + adapterPlan: { + adapterKind: "cloud_scene", + runtimeAction: "launch_cloud_scene", + targetRef: "sceneapp-service-story-video", + targetLabel: "短视频编排", + requestMetadata: {}, + launchPayload: { + sceneapp_id: "story-video-suite", + project_id: "project-video", + message: "生成一版产品短视频", + }, + notes: [], + }, + }, + }); + + const executed = await executeSceneAppLaunchAction({ + planResult: result, + projectId: "project-current", + activeTheme: "general", + creationMode: "guided", + defaultToolPreferences, + now: () => 678, + }); + + expect(executed).toEqual({ + ok: false, + kind: "workspace_entry", + executionDraft: expect.objectContaining({ + kind: "workspace_entry", + runtimeAction: "launch_cloud_scene", + }), + reason: "missing_navigate", + message: "当前入口暂不支持切换到 SceneApp 工作区,请从桌面主界面重试。", + }); + }); +}); diff --git a/src/components/agent/chat/workspace/sceneAppLaunch.ts b/src/components/agent/chat/workspace/sceneAppLaunch.ts new file mode 100644 index 000000000..ffdd49865 --- /dev/null +++ b/src/components/agent/chat/workspace/sceneAppLaunch.ts @@ -0,0 +1 @@ +export * from "@/lib/sceneapp/launchBridge"; diff --git a/src/components/agent/chat/workspace/useWorkspaceConversationSceneRuntime.test.ts b/src/components/agent/chat/workspace/useWorkspaceConversationSceneRuntime.test.ts index da01edbe3..107d33fe9 100644 --- a/src/components/agent/chat/workspace/useWorkspaceConversationSceneRuntime.test.ts +++ b/src/components/agent/chat/workspace/useWorkspaceConversationSceneRuntime.test.ts @@ -20,13 +20,18 @@ function createBaseParams(overrides: Record = {}) { handleManageProviders: noop, handleProjectChange: noop, handleOpenAppearanceSettings: noop, + handleOpenChannels: noop, + handleOpenChromeRelay: noop, + handleOpenOpenClaw: noop, handleBackToResources: noop, handleCompactContext: noop, + handleOpenRuntimeMemoryWorkbench: noop, }, inputbarScene: { inputbarNode: null, generalWorkbenchDialog: undefined, teamWorkbenchSurfaceProps: {}, + runtimeToolAvailability: null, }, canvasScene: { hasLiveCanvasPreviewContent: false, diff --git a/src/components/agent/chat/workspace/useWorkspaceConversationSceneRuntime.tsx b/src/components/agent/chat/workspace/useWorkspaceConversationSceneRuntime.tsx index 802a069d4..7b7cc8e94 100644 --- a/src/components/agent/chat/workspace/useWorkspaceConversationSceneRuntime.tsx +++ b/src/components/agent/chat/workspace/useWorkspaceConversationSceneRuntime.tsx @@ -4,6 +4,7 @@ import type { ReactNode, SetStateAction, } from "react"; +import { useMemo } from "react"; import { StepProgress } from "@/lib/workspace/workbenchUi"; import { useWorkspaceNavigationActions } from "./useWorkspaceNavigationActions"; import { useWorkspaceInputbarSceneRuntime } from "./useWorkspaceInputbarSceneRuntime"; @@ -27,6 +28,7 @@ import type { TaskFile } from "../components/TaskFiles"; import type { WorkspacePathMissingState } from "../hooks/agentChatShared"; import type { SyncStatus } from "../hooks/useContentSync"; import type { ArtifactTimelineOpenTarget } from "../utils/artifactTimelineNavigation"; +import { buildAgentTaskRuntimeCardModel } from "../utils/agentTaskRuntime"; import { buildStepProgressProps, buildTeamWorkspaceDockProps, @@ -36,7 +38,10 @@ import { WorkspaceConversationScene } from "./WorkspaceConversationScene"; type InputbarScene = Pick< ReturnType, - "inputbarNode" | "generalWorkbenchDialog" | "teamWorkbenchSurfaceProps" + | "inputbarNode" + | "generalWorkbenchDialog" + | "teamWorkbenchSurfaceProps" + | "runtimeToolAvailability" >; type CanvasScene = Pick< ReturnType, @@ -109,6 +114,10 @@ type NavigationActions = Pick< | "handleManageProviders" | "handleProjectChange" | "handleOpenAppearanceSettings" + | "handleOpenRuntimeMemoryWorkbench" + | "handleOpenChannels" + | "handleOpenChromeRelay" + | "handleOpenOpenClaw" | "handleBackToResources" | "handleCompactContext" >; @@ -256,6 +265,13 @@ interface UseWorkspaceConversationSceneRuntimeParams { handleRefreshSkills: ConversationScenePresentationParams["scene"]["onRefreshSkills"]; handleOpenBrowserAssistInCanvas: ConversationScenePresentationParams["scene"]["onLaunchBrowserAssist"]; browserAssistLaunching: ConversationScenePresentationParams["scene"]["browserAssistLoading"]; + featuredSceneApps: ConversationScenePresentationParams["scene"]["featuredSceneApps"]; + sceneAppsLoading: ConversationScenePresentationParams["scene"]["sceneAppsLoading"]; + sceneAppLaunchingId: ConversationScenePresentationParams["scene"]["sceneAppLaunchingId"]; + handleLaunchSceneApp?: ConversationScenePresentationParams["scene"]["onLaunchSceneApp"]; + canResumeRecentSceneApp?: ConversationScenePresentationParams["scene"]["canResumeRecentSceneApp"]; + handleResumeRecentSceneApp?: ConversationScenePresentationParams["scene"]["onResumeRecentSceneApp"]; + handleOpenSceneAppsDirectory?: ConversationScenePresentationParams["scene"]["onOpenSceneAppsDirectory"]; projectId: string | null; hideHistoryToggle: boolean; showChatPanel: boolean; @@ -388,6 +404,13 @@ export function useWorkspaceConversationSceneRuntime({ handleRefreshSkills, handleOpenBrowserAssistInCanvas, browserAssistLaunching, + featuredSceneApps, + sceneAppsLoading, + sceneAppLaunchingId, + handleLaunchSceneApp, + canResumeRecentSceneApp, + handleResumeRecentSceneApp, + handleOpenSceneAppsDirectory, projectId, hideHistoryToggle, showChatPanel, @@ -494,6 +517,31 @@ export function useWorkspaceConversationSceneRuntime({ const currentSessionStatus = resolveSessionStatusBadge( isSending ? "running" : currentSessionTurn?.status, ); + const runtimeTaskCard = useMemo( + () => + buildAgentTaskRuntimeCardModel({ + messages: displayMessages, + turns, + threadItems: effectiveThreadItems, + currentTurnId, + threadRead, + pendingActions, + queuedTurns, + childSubagentSessions, + isSending, + }), + [ + childSubagentSessions, + currentTurnId, + displayMessages, + effectiveThreadItems, + isSending, + pendingActions, + queuedTurns, + threadRead, + turns, + ], + ); const runtimeItemCount = effectiveThreadItems.filter( (item) => item.type !== "user_message" && item.type !== "agent_message", ).length; @@ -749,9 +797,27 @@ export function useWorkspaceConversationSceneRuntime({ onRefreshSkills: handleRefreshSkills, onLaunchBrowserAssist: handleOpenBrowserAssistInCanvas, browserAssistLoading: browserAssistLaunching, + featuredSceneApps, + sceneAppsLoading, + sceneAppLaunchingId, + onLaunchSceneApp: handleLaunchSceneApp, + canResumeRecentSceneApp, + onResumeRecentSceneApp: handleResumeRecentSceneApp, + onOpenSceneAppsDirectory: handleOpenSceneAppsDirectory, projectId, onProjectChange: navigationActions.handleProjectChange, onOpenSettings: navigationActions.handleOpenAppearanceSettings, + runtimeToolAvailability: inputbarScene.runtimeToolAvailability, + runtimeTaskCard, + onOpenMemoryWorkbench: () => + navigationActions.handleOpenRuntimeMemoryWorkbench({ + sessionId, + workingDir: projectRootPath, + userMessage: currentSessionTurn?.prompt_text || null, + }), + onOpenChannels: navigationActions.handleOpenChannels, + onOpenChromeRelay: navigationActions.handleOpenChromeRelay, + onOpenOpenClaw: navigationActions.handleOpenOpenClaw, navbarVisible: shellChromeRuntime.shouldRenderTopBar, isRunning: Boolean(isSending), navbarChrome: topBarChrome, diff --git a/src/components/agent/chat/workspace/useWorkspaceInitialSessionNavigation.test.tsx b/src/components/agent/chat/workspace/useWorkspaceInitialSessionNavigation.test.tsx new file mode 100644 index 000000000..9eb3a189e --- /dev/null +++ b/src/components/agent/chat/workspace/useWorkspaceInitialSessionNavigation.test.tsx @@ -0,0 +1,128 @@ +import React from "react"; +import { act } from "react"; +import { createRoot, type Root } from "react-dom/client"; +import { afterEach, beforeEach, describe, expect, it, vi } from "vitest"; +import { useWorkspaceInitialSessionNavigation } from "./useWorkspaceInitialSessionNavigation"; + +const mountedRoots: Array<{ root: Root; container: HTMLDivElement }> = []; + +interface ProbeProps { + currentSessionId?: string | null; + initialSessionId?: string | null; + switchTopic: ( + topicId: string, + options?: { + forceRefresh?: boolean; + }, + ) => Promise; +} + +function renderHook(props: ProbeProps) { + const container = document.createElement("div"); + document.body.appendChild(container); + const root = createRoot(container); + + function Probe(currentProps: ProbeProps) { + useWorkspaceInitialSessionNavigation(currentProps); + return null; + } + + mountedRoots.push({ root, container }); + + act(() => { + root.render(); + }); + + return { + rerender(nextProps: ProbeProps) { + act(() => { + root.render(); + }); + }, + }; +} + +async function flushEffects(times = 3) { + await act(async () => { + for (let index = 0; index < times; index += 1) { + await Promise.resolve(); + } + }); +} + +describe("useWorkspaceInitialSessionNavigation", () => { + beforeEach(() => { + vi.stubGlobal("IS_REACT_ACT_ENVIRONMENT", true); + }); + + afterEach(() => { + while (mountedRoots.length > 0) { + const mounted = mountedRoots.pop(); + if (!mounted) { + continue; + } + + act(() => { + mounted.root.unmount(); + }); + mounted.container.remove(); + } + + vi.restoreAllMocks(); + vi.unstubAllGlobals(); + }); + + it("应在初始会话和当前会话不一致时触发恢复", async () => { + const switchTopic = vi.fn(async () => undefined); + + renderHook({ + initialSessionId: "session-42", + currentSessionId: null, + switchTopic, + }); + + await flushEffects(); + + expect(switchTopic).toHaveBeenCalledWith("session-42", { + forceRefresh: true, + }); + }); + + it("当前已经在目标会话时不应重复切换", async () => { + const switchTopic = vi.fn(async () => undefined); + renderHook({ + initialSessionId: "session-42", + currentSessionId: "session-42", + switchTopic, + }); + + await flushEffects(); + + expect(switchTopic).not.toHaveBeenCalled(); + }); + + it("切换到新的初始会话时应重新触发恢复", async () => { + const switchTopic = vi.fn(async () => undefined); + const mounted = renderHook({ + initialSessionId: "session-42", + currentSessionId: null, + switchTopic, + }); + + await flushEffects(); + + mounted.rerender({ + initialSessionId: "session-99", + currentSessionId: "session-42", + switchTopic, + }); + await flushEffects(); + + expect(switchTopic).toHaveBeenNthCalledWith(1, "session-42", { + forceRefresh: true, + }); + expect(switchTopic).toHaveBeenNthCalledWith(2, "session-99", { + forceRefresh: true, + }); + }); +}); diff --git a/src/components/agent/chat/workspace/useWorkspaceInitialSessionNavigation.ts b/src/components/agent/chat/workspace/useWorkspaceInitialSessionNavigation.ts new file mode 100644 index 000000000..3447b7d95 --- /dev/null +++ b/src/components/agent/chat/workspace/useWorkspaceInitialSessionNavigation.ts @@ -0,0 +1,70 @@ +import { useEffect, useRef } from "react"; +import { logAgentDebug } from "@/lib/agentDebug"; + +interface UseWorkspaceInitialSessionNavigationParams { + initialSessionId?: string | null; + currentSessionId?: string | null; + switchTopic: ( + topicId: string, + options?: { + forceRefresh?: boolean; + }, + ) => Promise; +} + +function normalizeSessionId(value?: string | null): string | null { + if (typeof value !== "string") { + return null; + } + + const normalized = value.trim(); + return normalized ? normalized : null; +} + +export function useWorkspaceInitialSessionNavigation({ + initialSessionId, + currentSessionId, + switchTopic, +}: UseWorkspaceInitialSessionNavigationParams) { + const appliedInitialSessionIdRef = useRef(null); + const normalizedInitialSessionId = normalizeSessionId(initialSessionId); + const normalizedCurrentSessionId = normalizeSessionId(currentSessionId); + + useEffect(() => { + if (!normalizedInitialSessionId) { + appliedInitialSessionIdRef.current = null; + return; + } + + if (normalizedCurrentSessionId === normalizedInitialSessionId) { + appliedInitialSessionIdRef.current = normalizedInitialSessionId; + return; + } + + if (appliedInitialSessionIdRef.current === normalizedInitialSessionId) { + return; + } + + appliedInitialSessionIdRef.current = normalizedInitialSessionId; + logAgentDebug("AgentChatPage", "initialSessionNavigation.start", { + currentSessionId: normalizedCurrentSessionId, + initialSessionId: normalizedInitialSessionId, + }); + + void switchTopic(normalizedInitialSessionId, { + forceRefresh: true, + }).catch((error) => { + appliedInitialSessionIdRef.current = null; + logAgentDebug( + "AgentChatPage", + "initialSessionNavigation.error", + { + error, + initialSessionId: normalizedInitialSessionId, + }, + { level: "error" }, + ); + console.error("[AgentChatPage] 恢复初始会话失败:", error); + }); + }, [normalizedCurrentSessionId, normalizedInitialSessionId, switchTopic]); +} diff --git a/src/components/agent/chat/workspace/useWorkspaceNavigationActions.ts b/src/components/agent/chat/workspace/useWorkspaceNavigationActions.ts index b2db43d57..1b3447655 100644 --- a/src/components/agent/chat/workspace/useWorkspaceNavigationActions.ts +++ b/src/components/agent/chat/workspace/useWorkspaceNavigationActions.ts @@ -99,11 +99,12 @@ export function useWorkspaceNavigationActions({ }, [onNavigate]); const handleOpenRuntimeMemoryWorkbench = useCallback( - ({ + (params?: OpenRuntimeMemoryWorkbenchParams) => { + const { sessionId, workingDir, userMessage, - }: OpenRuntimeMemoryWorkbenchParams) => { + } = params || {}; const nextParams: MemoryPageParams = { section: "home", runtimeSessionId: sessionId?.trim() || undefined, @@ -115,6 +116,20 @@ export function useWorkspaceNavigationActions({ [onNavigate], ); + const handleOpenChannels = useCallback(() => { + onNavigate?.("channels"); + }, [onNavigate]); + + const handleOpenChromeRelay = useCallback(() => { + onNavigate?.("settings", { + tab: SettingsTabs.ChromeRelay, + }); + }, [onNavigate]); + + const handleOpenOpenClaw = useCallback(() => { + onNavigate?.("openclaw"); + }, [onNavigate]); + const handleCompactContext = useCallback(() => { void compactSession(); }, [compactSession]); @@ -138,6 +153,9 @@ export function useWorkspaceNavigationActions({ handleDismissEntryBanner, handleDismissWorkspaceAlert, handleManageProviders, + handleOpenChannels, + handleOpenChromeRelay, + handleOpenOpenClaw, handleOpenRuntimeMemoryWorkbench, handleOpenAppearanceSettings, handleProjectChange, diff --git a/src/components/agent/chat/workspace/useWorkspaceSceneAppEntryActions.test.tsx b/src/components/agent/chat/workspace/useWorkspaceSceneAppEntryActions.test.tsx new file mode 100644 index 000000000..125e71b46 --- /dev/null +++ b/src/components/agent/chat/workspace/useWorkspaceSceneAppEntryActions.test.tsx @@ -0,0 +1,548 @@ +import React from "react"; +import { act } from "react"; +import { createRoot, type Root } from "react-dom/client"; +import { afterEach, beforeEach, describe, expect, it, vi } from "vitest"; +import type { ChatToolPreferences } from "../utils/chatToolPreferences"; +import { useWorkspaceSceneAppEntryActions } from "./useWorkspaceSceneAppEntryActions"; +import type { SceneAppCatalog, SceneAppPlanResult } from "@/lib/sceneapp"; + +type SceneAppPlanResultOverrides = { + descriptor?: Partial; + readiness?: Partial; + plan?: Partial> & { + adapterPlan?: Partial; + }; +}; + +const mockListSceneAppCatalog = vi.fn(); +const mockPlanSceneAppLaunch = vi.fn(); +const mockCreateAutomationJob = vi.fn(); +const mockListProjects = vi.fn(); +const mockGetOrCreateDefaultProject = vi.fn(); +const mockReadStoredSceneAppCatalog = vi.fn(); +const mockToastSuccess = vi.fn(); +const mockToastError = vi.fn(); + +vi.mock("sonner", () => ({ + toast: { + success: (...args: unknown[]) => mockToastSuccess(...args), + error: (...args: unknown[]) => mockToastError(...args), + }, +})); + +vi.mock("@/lib/api/sceneapp", () => ({ + listSceneAppCatalog: () => mockListSceneAppCatalog(), + planSceneAppLaunch: (intent: unknown) => mockPlanSceneAppLaunch(intent), +})); + +vi.mock("@/lib/api/automation", () => ({ + createAutomationJob: (request: unknown) => mockCreateAutomationJob(request), +})); + +vi.mock("@/lib/api/project", () => ({ + listProjects: () => mockListProjects(), + getOrCreateDefaultProject: () => mockGetOrCreateDefaultProject(), +})); + +vi.mock("@/lib/sceneapp", async () => { + const actual = await vi.importActual( + "@/lib/sceneapp", + ); + return { + ...actual, + readStoredSceneAppCatalog: () => mockReadStoredSceneAppCatalog(), + }; +}); + +type HookProps = Parameters[0]; + +const mountedRoots: Array<{ container: HTMLDivElement; root: Root }> = []; +const DEFAULT_CHAT_TOOL_PREFERENCES: ChatToolPreferences = { + webSearch: false, + thinking: false, + task: false, + subagent: false, +}; + +function createSceneAppCatalog(): SceneAppCatalog { + return { + version: "2026-04-15", + generatedAt: "2026-04-15T00:00:00.000Z", + items: [ + { + id: "story-video-suite", + title: "短视频编排", + summary: "把文本、线框图、配乐和短视频草稿收口成结果链。", + category: "Scene Apps", + sceneappType: "hybrid", + patternPrimary: "pipeline", + patternStack: ["pipeline", "generator", "inversion"], + capabilityRefs: ["cloud_scene"], + infraProfile: [ + "composition_blueprint", + "workspace_storage", + "cloud_runtime", + ], + deliveryContract: "artifact_bundle", + outputHint: "短视频结果包", + entryBindings: [ + { + kind: "service_skill", + bindingFamily: "cloud_scene", + }, + ], + launchRequirements: [ + { + kind: "project", + message: "需要项目目录承接结果。", + }, + ], + sourcePackageId: "lime-core-sceneapps", + sourcePackageVersion: "2026-04-15", + }, + { + id: "x-article-export", + title: "网页导出", + summary: "在浏览器上下文中抓取网页并沉淀为资料包。", + category: "Scene Apps", + sceneappType: "browser_grounded", + patternPrimary: "pipeline", + patternStack: ["pipeline", "tool_wrapper", "generator"], + capabilityRefs: ["browser_assist"], + infraProfile: [ + "browser_connector", + "workspace_storage", + "artifact_bundle", + ], + deliveryContract: "project_pack", + outputHint: "网页资料包", + entryBindings: [ + { + kind: "service_skill", + bindingFamily: "browser_assist", + }, + ], + launchRequirements: [ + { + kind: "browser_session", + message: "需要真实浏览器上下文。", + }, + { + kind: "project", + message: "需要项目目录来保存资料包。", + }, + ], + sourcePackageId: "lime-core-sceneapps", + sourcePackageVersion: "2026-04-15", + }, + { + id: "daily-trend-briefing", + title: "每日趋势摘要", + summary: "把研究主题变成每天自动回流的观察任务。", + category: "Scene Apps", + sceneappType: "local_durable", + patternPrimary: "pipeline", + patternStack: ["pipeline", "reviewer"], + capabilityRefs: ["automation_job"], + infraProfile: ["automation_schedule", "db_store", "json_snapshot"], + deliveryContract: "table_report", + outputHint: "趋势摘要", + entryBindings: [ + { + kind: "service_skill", + bindingFamily: "automation_job", + }, + ], + launchRequirements: [ + { + kind: "project", + message: "需要工作区保存运行历史。", + }, + { + kind: "automation", + message: "需要调度能力。", + }, + ], + sourcePackageId: "lime-core-sceneapps", + sourcePackageVersion: "2026-04-15", + }, + ], + }; +} + +function createProject(id = "project-1") { + return { + id, + name: "项目一", + workspaceType: "general", + rootPath: "", + isDefault: false, + createdAt: 1, + updatedAt: 1, + isFavorite: false, + isArchived: false, + tags: [], + }; +} + +function createPlanResult( + overrides: SceneAppPlanResultOverrides = {}, +): SceneAppPlanResult { + const planOverrides = overrides.plan ?? {}; + const adapterPlanOverrides = planOverrides.adapterPlan ?? {}; + + return { + descriptor: { + id: "story-video-suite", + title: "短视频编排", + summary: "SceneApp 测试样板。", + category: "Scene Apps", + sceneappType: "hybrid", + patternPrimary: "pipeline", + patternStack: ["pipeline"], + capabilityRefs: ["sceneapp"], + infraProfile: ["workspace_storage"], + deliveryContract: "artifact_bundle", + outputHint: "测试输出", + entryBindings: [ + { + kind: "service_skill", + bindingFamily: "agent_turn", + }, + ], + launchRequirements: [], + sourcePackageId: "lime-core-sceneapps", + sourcePackageVersion: "2026-04-15", + ...(overrides.descriptor ?? {}), + } as SceneAppPlanResult["descriptor"], + readiness: { + ready: true, + unmetRequirements: [], + ...(overrides.readiness ?? {}), + } as SceneAppPlanResult["readiness"], + plan: { + sceneappId: planOverrides.sceneappId ?? "story-video-suite", + executorKind: planOverrides.executorKind ?? "cloud_scene", + bindingFamily: planOverrides.bindingFamily ?? "cloud_scene", + stepPlan: planOverrides.stepPlan ?? [], + adapterPlan: { + adapterKind: adapterPlanOverrides.adapterKind ?? "cloud_scene", + runtimeAction: + adapterPlanOverrides.runtimeAction ?? "launch_cloud_scene", + targetRef: + adapterPlanOverrides.targetRef ?? "sceneapp-service-story-video", + targetLabel: adapterPlanOverrides.targetLabel ?? "短视频编排", + requestMetadata: adapterPlanOverrides.requestMetadata ?? { + sceneapp: { + id: "story-video-suite", + title: "短视频编排", + }, + }, + launchPayload: adapterPlanOverrides.launchPayload ?? { + sceneapp_id: "story-video-suite", + workspace_id: "project-1", + project_id: "project-1", + content_id: "content-1", + user_input: "做一条新品发布短视频", + }, + notes: adapterPlanOverrides.notes ?? [], + linkedServiceSkillId: adapterPlanOverrides.linkedServiceSkillId, + linkedSceneKey: adapterPlanOverrides.linkedSceneKey, + preferredProfileKey: adapterPlanOverrides.preferredProfileKey, + } as SceneAppPlanResult["plan"]["adapterPlan"], + storageStrategy: planOverrides.storageStrategy ?? "workspace_bundle", + artifactContract: planOverrides.artifactContract ?? "artifact_bundle", + governanceHooks: planOverrides.governanceHooks ?? [], + warnings: planOverrides.warnings ?? [], + } as SceneAppPlanResult["plan"], + }; +} + +function renderHook(props?: Partial) { + const container = document.createElement("div"); + document.body.appendChild(container); + const root = createRoot(container); + let latestValue: ReturnType | null = + null; + + const defaultProps: HookProps = { + activeTheme: "general", + creationMode: "guided", + projectId: "project-1", + input: "", + selectedText: "", + defaultToolPreferences: DEFAULT_CHAT_TOOL_PREFERENCES, + onNavigate: vi.fn(), + }; + + function Probe(currentProps: HookProps) { + latestValue = useWorkspaceSceneAppEntryActions(currentProps); + return null; + } + + const render = async (nextProps?: Partial) => { + await act(async () => { + root.render(); + await Promise.resolve(); + await Promise.resolve(); + }); + }; + + mountedRoots.push({ container, root }); + + return { + render, + getValue: () => { + if (!latestValue) { + throw new Error("hook 尚未初始化"); + } + return latestValue; + }, + getDefaultProps: () => ({ ...defaultProps, ...props }), + }; +} + +beforeEach(() => { + ( + globalThis as typeof globalThis & { + IS_REACT_ACT_ENVIRONMENT?: boolean; + } + ).IS_REACT_ACT_ENVIRONMENT = true; + mockListSceneAppCatalog.mockResolvedValue(createSceneAppCatalog()); + mockReadStoredSceneAppCatalog.mockReturnValue(null); + mockListProjects.mockResolvedValue([createProject()]); + mockGetOrCreateDefaultProject.mockResolvedValue(createProject()); + mockCreateAutomationJob.mockResolvedValue({ + id: "job-1", + name: "每日趋势摘要 自动化", + }); +}); + +afterEach(() => { + while (mountedRoots.length > 0) { + const mounted = mountedRoots.pop(); + if (!mounted) break; + act(() => { + mounted.root.unmount(); + }); + mounted.container.remove(); + } + vi.clearAllMocks(); +}); + +describe("useWorkspaceSceneAppEntryActions", () => { + it("应按业务入口构建 featured SceneApp 卡片,并在出现 URL 时显示网页导出", async () => { + const harness = renderHook({ + input: "给我一条新品发布短视频方案", + }); + await harness.render(); + + expect(harness.getValue().featuredSceneApps.map((item) => item.id)).toEqual([ + "story-video-suite", + "daily-trend-briefing", + ]); + + await harness.render({ + input: "请整理这篇文章 https://example.com/agent-trends", + }); + + expect(harness.getValue().featuredSceneApps.map((item) => item.id)).toEqual([ + "story-video-suite", + "x-article-export", + "daily-trend-briefing", + ]); + }); + + it("应把可在当前会话继续的 SceneApp 翻译成 agent 导航动作", async () => { + const onNavigate = vi.fn(); + mockPlanSceneAppLaunch.mockResolvedValueOnce( + createPlanResult({ + descriptor: { + id: "story-video-suite", + title: "短视频编排", + }, + plan: { + sceneappId: "story-video-suite", + executorKind: "cloud_scene", + bindingFamily: "cloud_scene", + adapterPlan: { + adapterKind: "cloud_scene", + runtimeAction: "launch_cloud_scene", + targetRef: "sceneapp-service-story-video", + targetLabel: "短视频编排", + requestMetadata: { + sceneapp: { + id: "story-video-suite", + }, + }, + launchPayload: { + sceneapp_id: "story-video-suite", + workspace_id: "project-1", + project_id: "project-1", + content_id: "content-video-1", + user_input: "做一条新品发布短视频", + }, + notes: [], + }, + }, + }), + ); + + const harness = renderHook({ + input: "做一条新品发布短视频", + onNavigate, + }); + await harness.render(); + + await act(async () => { + await harness.getValue().handleLaunchSceneApp("story-video-suite"); + }); + + expect(mockPlanSceneAppLaunch).toHaveBeenCalledWith( + expect.objectContaining({ + sceneappId: "story-video-suite", + projectId: "project-1", + workspaceId: "project-1", + userInput: "做一条新品发布短视频", + }), + ); + expect(onNavigate).toHaveBeenCalledWith( + "agent", + expect.objectContaining({ + projectId: "project-1", + contentId: "content-video-1", + initialUserPrompt: "做一条新品发布短视频", + autoRunInitialPromptOnMount: true, + }), + ); + }); + + it("应为 durable SceneApp 打开标准自动化表单,并保留 SceneApp metadata", async () => { + mockPlanSceneAppLaunch.mockResolvedValueOnce( + createPlanResult({ + descriptor: { + id: "daily-trend-briefing", + title: "每日趋势摘要", + }, + plan: { + sceneappId: "daily-trend-briefing", + executorKind: "automation_job", + bindingFamily: "automation_job", + adapterPlan: { + adapterKind: "automation_job", + runtimeAction: "create_automation_job", + targetRef: "sceneapp-service-daily-trend", + targetLabel: "每日趋势摘要", + requestMetadata: { + sceneapp: { + id: "daily-trend-briefing", + title: "每日趋势摘要", + }, + harness: { + sceneapp_runtime_action: "create_automation_job", + }, + }, + launchPayload: { + sceneapp_id: "daily-trend-briefing", + name: "每日趋势摘要 自动化", + enabled: true, + execution_mode: "intelligent", + schedule: { + kind: "every", + every_secs: 3600, + }, + delivery: { + mode: "none", + channel: null, + target: null, + best_effort: true, + output_schema: "text", + output_format: "text", + }, + launch_intent: { + sceneapp_id: "daily-trend-briefing", + workspace_id: "project-1", + project_id: "project-1", + user_input: "关注 AI Agent 产品趋势", + slots: {}, + }, + }, + notes: [], + }, + }, + }), + ); + + const harness = renderHook({ + input: "关注 AI Agent 产品趋势", + }); + await harness.render(); + + await act(async () => { + await harness.getValue().handleLaunchSceneApp("daily-trend-briefing"); + }); + + expect(harness.getValue().automationDialogOpen).toBe(true); + expect(harness.getValue().automationDialogInitialValues).toEqual( + expect.objectContaining({ + name: "每日趋势摘要 自动化", + workspace_id: "project-1", + }), + ); + + await act(async () => { + await harness.getValue().handleAutomationDialogSubmit({ + mode: "create", + request: { + name: "每日趋势摘要 自动化", + description: "每天跟踪 AI Agent 方向", + enabled: true, + workspace_id: "project-1", + execution_mode: "intelligent", + schedule: { + kind: "every", + every_secs: 1800, + }, + payload: { + kind: "agent_turn", + prompt: "请持续跟踪 AI Agent 产品和云厂商动作。", + system_prompt: null, + web_search: true, + request_metadata: { + custom: true, + }, + }, + delivery: { + mode: "none", + channel: null, + target: null, + best_effort: true, + output_schema: "text", + output_format: "text", + }, + timeout_secs: null, + max_retries: 3, + }, + }); + }); + + expect(mockCreateAutomationJob).toHaveBeenCalledWith( + expect.objectContaining({ + payload: expect.objectContaining({ + kind: "agent_turn", + prompt: "请持续跟踪 AI Agent 产品和云厂商动作。", + request_metadata: expect.objectContaining({ + custom: true, + sceneapp: expect.objectContaining({ + id: "daily-trend-briefing", + }), + }), + }), + }), + ); + expect(harness.getValue().automationDialogOpen).toBe(false); + expect(mockToastSuccess).toHaveBeenCalledWith( + "SceneApp 自动化已创建:每日趋势摘要 自动化", + ); + }); +}); diff --git a/src/components/agent/chat/workspace/useWorkspaceSceneAppEntryActions.ts b/src/components/agent/chat/workspace/useWorkspaceSceneAppEntryActions.ts new file mode 100644 index 000000000..1981c18b1 --- /dev/null +++ b/src/components/agent/chat/workspace/useWorkspaceSceneAppEntryActions.ts @@ -0,0 +1,183 @@ +import { useCallback, useEffect, useMemo, useState } from "react"; +import { toast } from "sonner"; +import { + listSceneAppCatalog, + type SceneAppCatalog, +} from "@/lib/api/sceneapp"; +import { + buildSceneAppEntryCard, + FEATURED_SCENEAPP_IDS, + readStoredSceneAppCatalog, + resolveSceneAppSeed, + useSceneAppLaunchRuntime, +} from "@/lib/sceneapp"; +import type { SceneAppEntryCardItem } from "../sceneappEntryTypes"; +import type { CreationMode } from "../components/types"; +import type { ChatToolPreferences } from "../utils/chatToolPreferences"; +import { extractExplicitUrlFromText } from "../utils/browserAssistIntent"; +import type { Page, PageParams } from "@/types/page"; + +interface UseWorkspaceSceneAppEntryActionsParams { + activeTheme: string; + creationMode: CreationMode; + projectId?: string | null; + input: string; + selectedText?: string; + defaultToolPreferences: ChatToolPreferences; + onNavigate?: (page: Page, params?: PageParams) => void; +} + +export function useWorkspaceSceneAppEntryActions({ + activeTheme, + creationMode, + projectId, + input, + selectedText, + defaultToolPreferences, + onNavigate, +}: UseWorkspaceSceneAppEntryActionsParams) { + const [catalog, setCatalog] = useState(null); + const [sceneAppsLoading, setSceneAppsLoading] = useState(false); + const launchRuntime = useSceneAppLaunchRuntime({ + activeTheme, + creationMode, + projectId, + defaultToolPreferences, + onNavigate, + }); + + useEffect(() => { + if (activeTheme !== "general") { + setCatalog(null); + setSceneAppsLoading(false); + return; + } + + let cancelled = false; + setSceneAppsLoading(true); + + void listSceneAppCatalog() + .then((nextCatalog) => { + if (cancelled) { + return; + } + setCatalog(nextCatalog); + }) + .catch((error) => { + if (cancelled) { + return; + } + + const storedCatalog = readStoredSceneAppCatalog(); + if (storedCatalog) { + setCatalog(storedCatalog); + return; + } + + console.warn("[SceneApp] 加载目录失败:", error); + setCatalog(null); + }) + .finally(() => { + if (!cancelled) { + setSceneAppsLoading(false); + } + }); + + return () => { + cancelled = true; + }; + }, [activeTheme]); + + const descriptorMap = useMemo( + () => + new Map( + (catalog?.items ?? []).map((descriptor) => [descriptor.id, descriptor]), + ), + [catalog], + ); + + const urlCandidate = useMemo( + () => + extractExplicitUrlFromText(input) || + extractExplicitUrlFromText(selectedText || ""), + [input, selectedText], + ); + + const featuredSceneApps = useMemo(() => { + if (activeTheme !== "general") { + return [] as SceneAppEntryCardItem[]; + } + + return FEATURED_SCENEAPP_IDS.flatMap((sceneappId) => { + const descriptor = descriptorMap.get(sceneappId); + if (!descriptor) { + return []; + } + + const item = buildSceneAppEntryCard({ + descriptor, + projectId, + input, + selectedText, + urlCandidate, + }); + + return item ? [item] : []; + }); + }, [ + activeTheme, + descriptorMap, + input, + projectId, + selectedText, + urlCandidate, + ]); + + const handleLaunchSceneApp = useCallback( + async (sceneappId: string) => { + const descriptor = descriptorMap.get(sceneappId); + if (!descriptor) { + toast.error("当前场景应用目录尚未就绪,请稍后重试"); + return; + } + + const seed = resolveSceneAppSeed({ + descriptor, + input, + selectedText, + urlCandidate, + }); + if (!seed) { + toast.error("当前场景应用还缺少启动内容,请先补充输入"); + return; + } + + await launchRuntime.launchSceneApp({ + descriptor, + seed, + entrySource: "workspace_card", + }); + }, + [ + descriptorMap, + input, + launchRuntime, + selectedText, + urlCandidate, + ], + ); + + return { + featuredSceneApps, + sceneAppsLoading, + sceneAppLaunchingId: launchRuntime.sceneAppLaunchingId, + automationDialogOpen: launchRuntime.automationDialogOpen, + automationDialogInitialValues: launchRuntime.automationDialogInitialValues, + automationWorkspaces: launchRuntime.automationWorkspaces, + automationJobSaving: launchRuntime.automationJobSaving, + handleLaunchSceneApp, + handleAutomationDialogOpenChange: + launchRuntime.handleAutomationDialogOpenChange, + handleAutomationDialogSubmit: launchRuntime.handleAutomationDialogSubmit, + }; +} diff --git a/src/components/agent/chat/workspace/useWorkspaceSendActions.test.tsx b/src/components/agent/chat/workspace/useWorkspaceSendActions.test.tsx index 3f890e107..503361e3c 100644 --- a/src/components/agent/chat/workspace/useWorkspaceSendActions.test.tsx +++ b/src/components/agent/chat/workspace/useWorkspaceSendActions.test.tsx @@ -13,6 +13,7 @@ import { listServiceSkillUsage } from "../service-skills/storage"; import { useWorkspaceSendActions } from "./useWorkspaceSendActions"; import type { TeamWorkspaceRuntimeFormationState } from "../teamWorkspaceRuntime"; import { listSlashEntryUsage } from "../skill-selection/slashEntryUsage"; +import { saveSkillCatalog } from "@/lib/api/skillCatalog"; const mockPreheatBrowserAssistInBackground = vi.hoisted(() => vi.fn()); const mockGetSkillCatalog = vi.hoisted(() => vi.fn()); @@ -3678,7 +3679,7 @@ describe("useWorkspaceSendActions", () => { }); it("@配音 应保留原始消息,并通过 service_scene_launch 交给云端技能主链", async () => { - mockResolveOemCloudRuntimeContext.mockReturnValueOnce({ + mockResolveOemCloudRuntimeContext.mockReturnValue({ baseUrl: "https://user.limeai.run", controlPlaneBaseUrl: "https://user.limeai.run/api", sceneBaseUrl: "https://user.limeai.run/scene-api", @@ -3753,6 +3754,77 @@ describe("useWorkspaceSendActions", () => { } }); + it("@搜索 的 service skill usage 应优先跟随当前 command catalog 绑定,而不是 seeded 默认映射", async () => { + const tenantResearchSkill = createGeneralServiceSkill({ + id: "tenant-research", + skillKey: "tenant-research", + title: "租户搜索", + }); + saveSkillCatalog( + { + version: "tenant-2026-04-15", + tenantId: "tenant-demo", + syncedAt: "2026-04-15T12:00:00.000Z", + groups: [ + { + key: "general", + title: "通用技能", + summary: "租户下发目录", + sort: 90, + itemCount: 1, + }, + ], + items: [ + { + ...tenantResearchSkill, + groupKey: "general", + execution: { + kind: "agent_turn", + }, + }, + ], + entries: [ + { + id: "command:research", + kind: "command", + title: "租户搜索", + summary: "把 @搜索 绑定到租户下发的搜索技能。", + commandKey: "research", + triggers: [{ mode: "mention", prefix: "@搜索" }], + binding: { + skillId: "tenant-research", + executionKind: "agent_turn", + }, + }, + ], + }, + "bootstrap_sync", + ); + const harness = mountHook({ + input: "@搜索 query: AI Agent 聚焦 2026 年新发布", + serviceSkills: [tenantResearchSkill], + }); + + try { + await act(async () => { + const started = await harness.getValue().handleSend(); + expect(started).toBe(true); + }); + + expect(listServiceSkillUsage()).toEqual([ + expect.objectContaining({ + skillId: "tenant-research", + runnerType: "instant", + slotValues: expect.objectContaining({ + query: "AI Agent 聚焦 2026 年新发布", + }), + }), + ]); + } finally { + harness.unmount(); + } + }); + it("@浏览器 应保留原始消息,并显式切到真实浏览器执行主链", async () => { const harness = mountHook({ input: "@浏览器 打开 https://news.baidu.com 并提炼页面主要内容", diff --git a/src/components/agent/chat/workspace/useWorkspaceSendActions.ts b/src/components/agent/chat/workspace/useWorkspaceSendActions.ts index f16e2c64e..eb272a161 100644 --- a/src/components/agent/chat/workspace/useWorkspaceSendActions.ts +++ b/src/components/agent/chat/workspace/useWorkspaceSendActions.ts @@ -5,7 +5,7 @@ import type { AutoContinueRequestPayload } from "@/lib/api/agentRuntime"; import { resolveOemCloudRuntimeContext } from "@/lib/api/oemCloudRuntime"; import { getOrCreateDefaultProject } from "@/lib/api/project"; import { - getSeededSkillCatalog, + getCurrentSkillCatalogSnapshot, listSkillCatalogCommandEntries, } from "@/lib/api/skillCatalog"; import { parseAnalysisWorkbenchCommand } from "../utils/analysisWorkbenchCommand"; @@ -201,34 +201,6 @@ type CompletedMentionCommandUsage = { slotValues?: ServiceSkillSlotValues; }; -const MENTION_COMMAND_SKILL_ID_MAP = new Map( - listSkillCatalogCommandEntries(getSeededSkillCatalog()) - .filter((entry) => - entry.triggers.some((trigger) => trigger.mode === "mention"), - ) - .flatMap((entry) => { - const commandKey = entry.commandKey.trim(); - const skillId = entry.binding?.skillId?.trim(); - - return commandKey && skillId ? [[commandKey, skillId] as const] : []; - }), -); -const MENTION_COMMAND_PREFIX_KEY_MAP = new Map( - listSkillCatalogCommandEntries(getSeededSkillCatalog()).flatMap((entry) => { - const commandKey = entry.commandKey.trim(); - if (!commandKey) { - return []; - } - - return entry.triggers - .filter((trigger) => trigger.mode === "mention") - .flatMap((trigger) => { - const prefix = normalizeMentionCommandPrefix(trigger.prefix); - return prefix ? [[prefix, commandKey] as const] : []; - }); - }), -); - function normalizeMentionCommandPrefix(value?: string | null): string { if (typeof value !== "string") { return ""; @@ -253,6 +225,41 @@ function normalizeOptionalText(value?: string | null): string | undefined { return normalized ? normalized : undefined; } +function buildMentionCommandSkillIdMap(): Map { + return new Map( + listSkillCatalogCommandEntries(getCurrentSkillCatalogSnapshot()) + .filter((entry) => + entry.triggers.some((trigger) => trigger.mode === "mention"), + ) + .flatMap((entry) => { + const commandKey = entry.commandKey.trim(); + const skillId = entry.binding?.skillId?.trim(); + + return commandKey && skillId ? [[commandKey, skillId] as const] : []; + }), + ); +} + +function buildMentionCommandPrefixKeyMap(): Map { + return new Map( + listSkillCatalogCommandEntries(getCurrentSkillCatalogSnapshot()).flatMap( + (entry) => { + const commandKey = entry.commandKey.trim(); + if (!commandKey) { + return []; + } + + return entry.triggers + .filter((trigger) => trigger.mode === "mention") + .flatMap((trigger) => { + const prefix = normalizeMentionCommandPrefix(trigger.prefix); + return prefix ? [[prefix, commandKey] as const] : []; + }); + }, + ), + ); +} + function normalizeServiceSkillUsageSlotValue( value: unknown, ): string | undefined { @@ -611,6 +618,7 @@ function resolveMentionCommandReplayText(parsedCommand: { function resolveBareMentionCommandPrefillSourceText( rawText: string, + mentionCommandPrefixKeyMap: Map, ): string | undefined { const matched = rawText.match(/^\s*(@[^\s]+)\s*$/u); if (!matched) { @@ -618,7 +626,7 @@ function resolveBareMentionCommandPrefillSourceText( } const commandPrefix = matched[1]; - const commandKey = MENTION_COMMAND_PREFIX_KEY_MAP.get( + const commandKey = mentionCommandPrefixKeyMap.get( normalizeMentionCommandPrefix(commandPrefix), ); if (!commandKey) { @@ -1119,13 +1127,14 @@ function resolveMentionCommandUsage(params: { commandKey: string; serviceSkills: ServiceSkillHomeItem[]; requestMetadata?: Record; + mentionCommandSkillIdMap: Map; }): CompletedMentionUsage | null { const normalizedCommandKey = params.commandKey.trim(); if (!normalizedCommandKey) { return null; } - const boundSkillId = MENTION_COMMAND_SKILL_ID_MAP.get(normalizedCommandKey); + const boundSkillId = params.mentionCommandSkillIdMap.get(normalizedCommandKey); if (!boundSkillId) { return null; } @@ -2452,6 +2461,8 @@ export function useWorkspaceSendActions({ useState(null); const [isPreparingSend, setIsPreparingSend] = useState(false); const isPreparingSendRef = useRef(false); + const mentionCommandSkillIdMap = buildMentionCommandSkillIdMap(); + const mentionCommandPrefixKeyMap = buildMentionCommandPrefixKeyMap(); const clearRuntimeTeamDispatchPreview = useCallback(() => { setRuntimeTeamDispatchPreview(null); }, []); @@ -2541,7 +2552,10 @@ export function useWorkspaceSendActions({ }); sourceText = sendBoundary.sourceText; sourceText = - resolveBareMentionCommandPrefillSourceText(sourceText) || sourceText; + resolveBareMentionCommandPrefillSourceText( + sourceText, + mentionCommandPrefixKeyMap, + ) || sourceText; const mentionUsageMap = getMentionEntryUsageMap(); type MergeableMentionParsedCommand = Parameters< typeof resolveMentionCommandMergedPrefillReplayText @@ -2708,6 +2722,7 @@ export function useWorkspaceSendActions({ commandKey, serviceSkills, requestMetadata: sendOptions?.requestMetadata, + mentionCommandSkillIdMap, }); }; @@ -4323,6 +4338,8 @@ export function useWorkspaceSendActions({ projectId, resolveSendBoundary, serviceSkills, + mentionCommandPrefixKeyMap, + mentionCommandSkillIdMap, workspaceRequestMetadataBase, ], ); diff --git a/src/components/agent/chat/workspace/useWorkspaceServiceSkillEntryActions.ts b/src/components/agent/chat/workspace/useWorkspaceServiceSkillEntryActions.ts index 08e8e5d0b..11599eca8 100644 --- a/src/components/agent/chat/workspace/useWorkspaceServiceSkillEntryActions.ts +++ b/src/components/agent/chat/workspace/useWorkspaceServiceSkillEntryActions.ts @@ -123,6 +123,7 @@ interface ServiceSkillSelectionOptions { requestKey?: number | string; initialSlotValues?: ServiceSkillSlotValues; prefillHint?: string; + launchUserInput?: string | null; } function resolveServiceSkillLaunchUserInput( @@ -238,6 +239,7 @@ interface PendingServiceSkillLaunchInputState { skill: ServiceSkillHomeItem; initialSlotValues: ServiceSkillSlotValues; prefillHint?: string; + launchUserInput?: string; } interface UseWorkspaceServiceSkillEntryActionsParams { @@ -990,6 +992,9 @@ export function useWorkspaceServiceSkillEntryActions({ const launched = await handleServiceSkillLaunch( pendingServiceSkillLaunchInput.skill, slotValues, + { + launchUserInput: pendingServiceSkillLaunchInput.launchUserInput, + }, ); if (launched) { setPendingServiceSkillLaunchInput(null); @@ -1016,7 +1021,9 @@ export function useWorkspaceServiceSkillEntryActions({ const validation = validateServiceSkillSlotValues(skill, initialSlotValues); if (skill.slotSchema.length === 0 || validation.valid) { - void handleServiceSkillLaunch(skill, initialSlotValues); + void handleServiceSkillLaunch(skill, initialSlotValues, { + launchUserInput: options?.launchUserInput, + }); return; } @@ -1029,6 +1036,7 @@ export function useWorkspaceServiceSkillEntryActions({ skill, initialSlotValues, prefillHint: options?.prefillHint ?? replayPrefill?.hint, + launchUserInput: normalizeOptionalText(options?.launchUserInput), }); }, [creationReplay, handleServiceSkillLaunch], diff --git a/src/components/agent/chat/workspaceEntry.test.ts b/src/components/agent/chat/workspaceEntry.test.ts index d739a11d8..939e94640 100644 --- a/src/components/agent/chat/workspaceEntry.test.ts +++ b/src/components/agent/chat/workspaceEntry.test.ts @@ -262,6 +262,73 @@ describe("workspaceEntry", () => { }); }); + it("服务技能挂起入口允许无 prompt 直接进入 Claw 工作区", () => { + expect( + resolveWorkspaceEntry({ + projectId: "project-1", + activeTheme: "general", + creationMode: "guided", + defaultToolPreferences, + payload: { + initialPendingServiceSkillLaunch: { + skillId: "sceneapp-service-analysis", + skillKey: "project-analysis", + initialSlotValues: { + focus: "架构", + }, + launchUserInput: "请分析当前项目结构", + }, + }, + now: () => 654, + }), + ).toEqual({ + ok: true, + toolPreferences: defaultToolPreferences, + targetTheme: "general", + nextNewChatAt: 654, + navigationParams: { + agentEntry: "claw", + immersiveHome: false, + projectId: "project-1", + theme: "general", + initialCreationMode: "guided", + initialUserPrompt: undefined, + initialUserImages: undefined, + openBrowserAssistOnMount: undefined, + initialPendingServiceSkillLaunch: { + skillId: "sceneapp-service-analysis", + skillKey: "project-analysis", + requestKey: 654, + initialSlotValues: { + focus: "架构", + }, + launchUserInput: "请分析当前项目结构", + }, + newChatAt: 654, + lockTheme: false, + }, + workspaceBootstrap: { + projectId: "project-1", + initialUserPrompt: undefined, + initialUserImages: undefined, + theme: "general", + lockTheme: false, + initialCreationMode: "guided", + openBrowserAssistOnMount: undefined, + initialPendingServiceSkillLaunch: { + skillId: "sceneapp-service-analysis", + skillKey: "project-analysis", + requestKey: 654, + initialSlotValues: { + focus: "架构", + }, + launchUserInput: "请分析当前项目结构", + }, + newChatAt: 654, + }, + }); + }); + it("站点技能 metadata 启动时也应自动锁定 general 主题", () => { expect( resolveWorkspaceEntry({ diff --git a/src/components/agent/chat/workspaceEntry.ts b/src/components/agent/chat/workspaceEntry.ts index 990a5e479..3fea1b3ed 100644 --- a/src/components/agent/chat/workspaceEntry.ts +++ b/src/components/agent/chat/workspaceEntry.ts @@ -1,6 +1,7 @@ import { buildClawAgentParams } from "@/lib/workspace/navigation"; import type { AgentPageParams, + AgentPendingServiceSkillLaunchParams, AgentProjectFileOpenTarget, AgentSiteSkillLaunchParams, } from "@/types/page"; @@ -21,6 +22,7 @@ export interface AgentChatWorkspaceBootstrap { lockTheme?: boolean; openBrowserAssistOnMount?: boolean; initialSiteSkillLaunch?: AgentSiteSkillLaunchParams; + initialPendingServiceSkillLaunch?: AgentPendingServiceSkillLaunchParams; initialProjectFileOpenTarget?: AgentProjectFileOpenTarget; newChatAt?: number; } @@ -35,6 +37,7 @@ export interface WorkspaceEntryPayload { autoRunInitialPromptOnMount?: boolean; openBrowserAssistOnMount?: boolean; initialSiteSkillLaunch?: AgentSiteSkillLaunchParams; + initialPendingServiceSkillLaunch?: AgentPendingServiceSkillLaunchParams; initialProjectFileOpenTarget?: AgentProjectFileOpenTarget; toolPreferences?: ChatToolPreferences; themeOverride?: string; @@ -112,6 +115,9 @@ export function resolveWorkspaceEntry( const hasSiteSkillLaunch = Boolean( payload.initialSiteSkillLaunch?.adapterName?.trim(), ); + const hasPendingServiceSkillLaunch = Boolean( + payload.initialPendingServiceSkillLaunch?.skillId?.trim(), + ); const toolPreferences = payload.toolPreferences ?? defaultToolPreferences; const targetTheme = payload.themeOverride ?? activeTheme; const lockTheme = @@ -123,7 +129,11 @@ export function resolveWorkspaceEntry( const openBrowserAssistOnMount = payload.openBrowserAssistOnMount; const autoRunInitialPromptOnMount = payload.autoRunInitialPromptOnMount; - if (!openBrowserAssistOnMount && !hasSiteSkillLaunch && !resolvedProjectId) { + if ( + !openBrowserAssistOnMount && + !hasSiteSkillLaunch && + !resolvedProjectId + ) { return { ok: false, reason: "missing_project", @@ -133,6 +143,7 @@ export function resolveWorkspaceEntry( if ( !openBrowserAssistOnMount && !hasSiteSkillLaunch && + !hasPendingServiceSkillLaunch && !hasPrompt && !hasImages && !hasContentId @@ -166,6 +177,16 @@ export function resolveWorkspaceEntry( ...(payload.initialSiteSkillLaunch ? { initialSiteSkillLaunch: payload.initialSiteSkillLaunch } : {}), + ...(payload.initialPendingServiceSkillLaunch + ? { + initialPendingServiceSkillLaunch: { + ...payload.initialPendingServiceSkillLaunch, + requestKey: + payload.initialPendingServiceSkillLaunch.requestKey ?? + nextNewChatAt, + }, + } + : {}), ...(payload.initialProjectFileOpenTarget ? { initialProjectFileOpenTarget: payload.initialProjectFileOpenTarget, @@ -200,6 +221,16 @@ export function resolveWorkspaceEntry( ...(payload.initialSiteSkillLaunch ? { initialSiteSkillLaunch: payload.initialSiteSkillLaunch } : {}), + ...(payload.initialPendingServiceSkillLaunch + ? { + initialPendingServiceSkillLaunch: { + ...payload.initialPendingServiceSkillLaunch, + requestKey: + payload.initialPendingServiceSkillLaunch.requestKey ?? + nextNewChatAt, + }, + } + : {}), ...(payload.initialProjectFileOpenTarget ? { initialProjectFileOpenTarget: payload.initialProjectFileOpenTarget, diff --git a/src/components/connect/ConnectConfirmDialog.tsx b/src/components/connect/ConnectConfirmDialog.tsx index 11bc571b5..85eb41f79 100644 --- a/src/components/connect/ConnectConfirmDialog.tsx +++ b/src/components/connect/ConnectConfirmDialog.tsx @@ -342,5 +342,3 @@ export function ConnectConfirmDialog({ ); } - -export default ConnectConfirmDialog; diff --git a/src/components/connect/ConnectErrorToast.tsx b/src/components/connect/ConnectErrorToast.tsx index c0777b515..d1027c713 100644 --- a/src/components/connect/ConnectErrorToast.tsx +++ b/src/components/connect/ConnectErrorToast.tsx @@ -95,5 +95,3 @@ export function ConnectErrorAlert({
); } - -export default ConnectErrorAlert; diff --git a/src/components/input-kit/BaseComposer.test.tsx b/src/components/input-kit/BaseComposer.test.tsx index d168263c7..7725a8731 100644 --- a/src/components/input-kit/BaseComposer.test.tsx +++ b/src/components/input-kit/BaseComposer.test.tsx @@ -205,4 +205,12 @@ describe("BaseComposer", () => { expect(onSend).toHaveBeenCalledTimes(1); }); + + it("应为输入框提供稳定的 id 与 name,避免表单告警", () => { + const { container } = renderHarness(); + const textarea = getTextarea(container); + + expect(textarea.getAttribute("id")).toBeTruthy(); + expect(textarea.getAttribute("name")).toBe("agent-chat-message"); + }); }); diff --git a/src/components/input-kit/BaseComposer.tsx b/src/components/input-kit/BaseComposer.tsx index 59136503d..a96143b91 100644 --- a/src/components/input-kit/BaseComposer.tsx +++ b/src/components/input-kit/BaseComposer.tsx @@ -1,4 +1,4 @@ -import React, { useCallback, useEffect, useMemo, useRef } from "react"; +import React, { useCallback, useEffect, useId, useMemo, useRef } from "react"; interface BaseComposerRenderContext { textareaRef: React.RefObject; @@ -58,6 +58,7 @@ export const BaseComposer: React.FC = ({ }) => { const internalTextareaRef = useRef(null); const textareaRef = externalTextareaRef || internalTextareaRef; + const textareaId = useId(); const hasContent = useMemo(() => { return allowEmptySend || text.trim().length > 0 || hasAdditionalContent; @@ -154,6 +155,8 @@ export const BaseComposer: React.FC = ({ ); const textareaProps: React.TextareaHTMLAttributes = { + id: textareaId, + name: "agent-chat-message", value: text, onChange: (event) => setText(event.target.value), onKeyDown: handleKeyDown, diff --git a/src/components/layout/layout.css b/src/components/layout/layout.css deleted file mode 100644 index da93217bf..000000000 --- a/src/components/layout/layout.css +++ /dev/null @@ -1,296 +0,0 @@ -/** - * @file layout.css - * @description 布局组件样式 - * @module components/layout - */ - -/* ============================================================================ - * 面板布局 - * ============================================================================ */ - -.panel-layout { - height: 100%; - width: 100%; - overflow: hidden; -} - -.panel-layout.magnified { - position: absolute; - top: 0; - left: 0; - right: 0; - bottom: 0; - z-index: 100; -} - -.panel-group { - height: 100%; - width: 100%; -} - -/* 调整手柄 */ -.panel-resize-handle { - position: relative; - background-color: transparent; - transition: background-color 0.15s ease; -} - -.panel-resize-handle.horizontal { - width: 4px; - cursor: col-resize; -} - -.panel-resize-handle.vertical { - height: 4px; - cursor: row-resize; -} - -.panel-resize-handle:hover, -.panel-resize-handle[data-resize-handle-active] { - background-color: var(--terminal-accent, #7aa2f7); -} - -.panel-resize-handle-inner { - position: absolute; - background-color: var(--terminal-border, #3b4261); -} - -.panel-resize-handle.horizontal .panel-resize-handle-inner { - top: 0; - bottom: 0; - left: 50%; - width: 1px; - transform: translateX(-50%); -} - -.panel-resize-handle.vertical .panel-resize-handle-inner { - left: 0; - right: 0; - top: 50%; - height: 1px; - transform: translateY(-50%); -} - -/* ============================================================================ - * 块框架 - * ============================================================================ */ - -.block-frame { - display: flex; - flex-direction: column; - height: 100%; - width: 100%; - background-color: var(--terminal-bg, #1a1b26); - border: 1px solid var(--terminal-border, #3b4261); - border-radius: 4px; - overflow: hidden; -} - -.block-frame.focused { - border-color: var(--terminal-accent, #7aa2f7); -} - -.block-frame.magnified { - border-radius: 0; - border: none; -} - -/* 块标题栏 */ -.block-frame-header { - display: flex; - align-items: center; - justify-content: space-between; - height: 32px; - padding: 0 8px; - background-color: var(--terminal-tab-bg, #24283b); - border-bottom: 1px solid var(--terminal-border, #3b4261); - user-select: none; - flex-shrink: 0; -} - -.block-frame-title { - display: flex; - align-items: center; - gap: 6px; - color: var(--terminal-fg, #c0caf5); - font-size: 12px; - font-weight: 500; - overflow: hidden; -} - -.block-frame-icon { - width: 14px; - height: 14px; - flex-shrink: 0; - color: var(--terminal-muted, #565f89); -} - -.block-frame-title-text { - overflow: hidden; - text-overflow: ellipsis; - white-space: nowrap; -} - -.block-frame-actions { - display: flex; - align-items: center; - gap: 2px; -} - -.block-frame-btn { - display: flex; - align-items: center; - justify-content: center; - width: 20px; - height: 20px; - border-radius: 4px; - color: var(--terminal-muted, #565f89); - background: transparent; - border: none; - cursor: pointer; - transition: all 0.15s ease; -} - -.block-frame-btn:hover { - background-color: var(--terminal-tab-hover-bg, #414868); - color: var(--terminal-fg, #c0caf5); -} - -.block-frame-close:hover { - background-color: rgba(248, 81, 73, 0.2); - color: var(--terminal-error, #f7768e); -} - -/* 块内容区 */ -.block-frame-content { - flex: 1; - min-height: 0; - overflow: hidden; -} - -/* ============================================================================ - * 终端块 - * ============================================================================ */ - -.terminal-block-container { - height: 100%; - width: 100%; - padding: 4px; -} - -.terminal-block-container.hidden { - visibility: hidden; - position: absolute; -} - -/* ============================================================================ - * 工作区标签栏 - * ============================================================================ */ - -.workspace-tabbar { - display: flex; - align-items: center; - background-color: var(--terminal-tab-bg, #24283b); - border-bottom: 1px solid var(--terminal-border, #3b4261); - height: 36px; - user-select: none; - flex-shrink: 0; -} - -.workspace-tabs { - display: flex; - align-items: center; - flex: 1; - overflow-x: auto; - height: 100%; -} - -.workspace-tabs::-webkit-scrollbar { - height: 0; -} - -.workspace-tab { - display: flex; - align-items: center; - padding: 0 12px; - height: 100%; - min-width: 100px; - max-width: 180px; - border-right: 1px solid var(--terminal-border, #3b4261); - color: var(--terminal-muted, #565f89); - font-size: 12px; - cursor: pointer; - transition: all 0.15s ease; - background: transparent; -} - -.workspace-tab:hover { - background-color: var(--terminal-tab-hover-bg, #414868); - color: var(--terminal-fg, #c0caf5); -} - -.workspace-tab.active { - background-color: var(--terminal-bg, #1a1b26); - color: var(--terminal-fg, #c0caf5); - border-bottom: 2px solid var(--terminal-accent, #7aa2f7); - margin-bottom: -1px; -} - -.workspace-tab-title { - flex: 1; - overflow: hidden; - text-overflow: ellipsis; - white-space: nowrap; -} - -.workspace-tab-close { - display: flex; - align-items: center; - justify-content: center; - width: 16px; - height: 16px; - margin-left: 4px; - border-radius: 4px; - color: var(--terminal-muted, #565f89); - opacity: 0; - transition: all 0.15s ease; - background: transparent; - border: none; - cursor: pointer; -} - -.workspace-tab:hover .workspace-tab-close, -.workspace-tab.active .workspace-tab-close { - opacity: 1; -} - -.workspace-tab-close:hover { - background-color: rgba(248, 81, 73, 0.2); - color: var(--terminal-error, #f7768e); -} - -.workspace-actions { - display: flex; - align-items: center; - padding: 0 8px; - gap: 4px; -} - -.workspace-action-btn { - display: flex; - align-items: center; - justify-content: center; - width: 28px; - height: 28px; - border-radius: 4px; - color: var(--terminal-muted, #565f89); - background: transparent; - border: none; - cursor: pointer; - transition: all 0.15s ease; -} - -.workspace-action-btn:hover { - background-color: var(--terminal-tab-hover-bg, #414868); - color: var(--terminal-fg, #c0caf5); -} diff --git a/src/components/memory/MemoryPage.test.tsx b/src/components/memory/MemoryPage.test.tsx index c5b3afb34..c34291d37 100644 --- a/src/components/memory/MemoryPage.test.tsx +++ b/src/components/memory/MemoryPage.test.tsx @@ -13,11 +13,13 @@ import { MemoryPage } from "./MemoryPage"; const { mockGetConfig, mockSaveConfig, + mockCleanupContextMemdir, mockGetContextMemoryEffectiveSources, mockGetContextMemoryAutoIndex, mockGetContextWorkingMemory, mockGetContextMemoryExtractionStatus, mockPrefetchContextMemoryForTurn, + mockScaffoldContextMemdir, mockGetUnifiedMemoryStats, mockListUnifiedMemories, mockGetProjectMemory, @@ -27,11 +29,13 @@ const { } = vi.hoisted(() => ({ mockGetConfig: vi.fn(), mockSaveConfig: vi.fn(), + mockCleanupContextMemdir: vi.fn(), mockGetContextMemoryEffectiveSources: vi.fn(), mockGetContextMemoryAutoIndex: vi.fn(), mockGetContextWorkingMemory: vi.fn(), mockGetContextMemoryExtractionStatus: vi.fn(), mockPrefetchContextMemoryForTurn: vi.fn(), + mockScaffoldContextMemdir: vi.fn(), mockGetUnifiedMemoryStats: vi.fn(), mockListUnifiedMemories: vi.fn(), mockGetProjectMemory: vi.fn(), @@ -46,11 +50,13 @@ vi.mock("@/lib/api/appConfig", () => ({ })); vi.mock("@/lib/api/memoryRuntime", () => ({ + cleanupContextMemdir: mockCleanupContextMemdir, getContextMemoryEffectiveSources: mockGetContextMemoryEffectiveSources, getContextMemoryAutoIndex: mockGetContextMemoryAutoIndex, getContextWorkingMemory: mockGetContextWorkingMemory, getContextMemoryExtractionStatus: mockGetContextMemoryExtractionStatus, prefetchContextMemoryForTurn: mockPrefetchContextMemoryForTurn, + scaffoldContextMemdir: mockScaffoldContextMemdir, })); vi.mock("@/lib/api/unifiedMemory", () => ({ @@ -123,6 +129,8 @@ describe("MemoryPage", () => { sources: [ { kind: "workspace_agents", + source_bucket: "project", + updated_at: 1_712_345_678_900, path: "/tmp/workspace/.lime/AGENTS.md", exists: true, loaded: true, @@ -141,7 +149,40 @@ describe("MemoryPage", () => { entry_exists: true, total_lines: 2, preview_lines: ["# MEMORY", "- mock note"], - items: [], + items: [ + { + title: "项目记忆", + memory_type: "project", + provider: "memdir", + updated_at: 1_712_345_678_900, + relative_path: "project/README.md", + exists: true, + summary: "记录项目背景、时间点、约束和分工。", + }, + ], + }); + mockCleanupContextMemdir.mockResolvedValue({ + root_dir: "/tmp/workspace/memory", + entrypoint: "MEMORY.md", + scanned_files: 6, + updated_files: 2, + removed_duplicate_links: 1, + dropped_missing_links: 1, + removed_duplicate_notes: 1, + trimmed_notes: 1, + curated_topic_files: 1, + }); + mockScaffoldContextMemdir.mockResolvedValue({ + root_dir: "/tmp/workspace/memory", + entrypoint: "MEMORY.md", + created_parent_dir: false, + files: [ + { + key: "entry", + path: "/tmp/workspace/memory/MEMORY.md", + status: "exists", + }, + ], }); mockGetContextWorkingMemory.mockResolvedValue({ memory_dir: "/tmp/runtime/memory", @@ -249,10 +290,97 @@ describe("MemoryPage", () => { expect(bodyText).toContain("记忆来源"); expect(bodyText).toContain("会话记忆"); expect(bodyText).toContain("记忆类型"); - expect(bodyText).toContain("Team Memory"); + expect(bodyText).toContain("团队记忆"); expect(bodyText).toContain("会话压缩"); - expect(bodyText).toContain("Claude Code 记忆作用域"); + expect(bodyText).toContain("记忆目录与作用域"); + expect(bodyText).toContain("记忆目录(memdir)"); expect(bodyText).toContain("不要写进记忆的内容"); + expect(bodyText).not.toContain("Claude Code"); + }); + + it("home 分区应展示默认心智层摘要卡", async () => { + renderPage(); + await flushPageEffects(); + + const bodyText = document.body.textContent ?? ""; + expect(bodyText).toContain("默认心智层"); + expect(bodyText).toContain("先看这轮真实命中"); + expect(bodyText).toContain("跨会话可复用的沉淀"); + expect(bodyText).toContain("项目规则与协作上下文"); + expect(bodyText).toContain("长会话如何续接"); + expect(bodyText).toContain("最近会话条目 2"); + expect(bodyText).toContain("1 条长期记忆"); + expect(bodyText).toContain("规则来源 1 条"); + expect(bodyText).toContain("最近压缩保留 8 轮"); + }); + + it("rules 分区应展示来源分类、provider 与 memdir 类型标签", async () => { + mockGetContextMemoryEffectiveSources.mockResolvedValue({ + working_dir: "/tmp/workspace", + total_sources: 3, + loaded_sources: 2, + follow_imports: true, + import_max_depth: 5, + sources: [ + { + kind: "workspace_agents", + source_bucket: "project", + updated_at: 1_712_345_678_900, + path: "/tmp/workspace/.lime/AGENTS.md", + exists: true, + loaded: true, + line_count: 12, + import_count: 0, + warnings: [], + preview: "# AGENTS\\n- 默认先跑 verify:local", + }, + { + kind: "auto_memory_item", + source_bucket: "auto", + provider: "memdir", + memory_type: "feedback", + updated_at: 1_712_345_678_900, + path: "/tmp/workspace/memory/feedback/workflow.md", + exists: true, + loaded: true, + line_count: 6, + import_count: 0, + warnings: [], + preview: "Why:\\n- 团队反复确认 pnpm only。", + }, + ], + }); + + renderPage({ section: "rules" }); + await flushPageEffects(); + + const bodyText = document.body.textContent ?? ""; + expect(bodyText).toContain("记忆来源与 memdir"); + expect(bodyText).toContain("来源分类:记忆目录(memdir)"); + expect(bodyText).toContain("provider:memdir"); + expect(bodyText).toContain("反馈记忆"); + expect(bodyText).toContain("最近更新:"); + }); + + it("rules 分区应支持整理 memdir 并复用同一条治理能力", async () => { + renderPage({ section: "rules" }); + await flushPageEffects(); + + const cleanupButton = Array.from( + document.body.querySelectorAll("button"), + ).find((element) => element.textContent?.trim() === "整理 memdir"); + expect(cleanupButton).toBeTruthy(); + + await act(async () => { + cleanupButton?.dispatchEvent(new MouseEvent("click", { bubbles: true })); + await Promise.resolve(); + }); + await flushPageEffects(); + + expect(mockCleanupContextMemdir).toHaveBeenCalledWith("/tmp/workspace"); + expect(document.body.textContent ?? "").toContain( + "已整理 memdir:更新 2 个文件,收口 1 个 topic,清掉 4 处重复或过期内容", + ); }); it("应兼容旧的 durable category 深链,并支持带回创作输入", async () => { @@ -260,7 +388,7 @@ describe("MemoryPage", () => { renderPage({ section: "identity", onNavigate }); await flushPageEffects(); - expect(document.body.textContent ?? "").toContain("Claude Code 记忆类型"); + expect(document.body.textContent ?? "").toContain("Lime 记忆类型"); expect(document.body.textContent ?? "").toContain("当前存量条目"); expect(document.body.textContent ?? "").toContain("夏日短视频语气"); diff --git a/src/components/memory/MemoryPage.tsx b/src/components/memory/MemoryPage.tsx index d671307d1..3f122a4f2 100644 --- a/src/components/memory/MemoryPage.tsx +++ b/src/components/memory/MemoryPage.tsx @@ -17,13 +17,17 @@ import { Badge } from "@/components/ui/badge"; import { cn } from "@/lib/utils"; import { getConfig, saveConfig, type Config } from "@/lib/api/appConfig"; import { + cleanupContextMemdir, getContextMemoryAutoIndex, getContextMemoryEffectiveSources, getContextMemoryExtractionStatus, getContextWorkingMemory, prefetchContextMemoryForTurn, + scaffoldContextMemdir, type AutoMemoryIndexResponse, type EffectiveMemorySourcesResponse, + type MemdirCleanupResult, + type MemdirScaffoldResult, type MemoryExtractionStatusResponse, type MemoryConfig, type TurnMemoryPrefetchResult, @@ -81,7 +85,7 @@ type PrimarySection = | "durable" | "team" | "compaction"; -type ClaudeMemoryType = "user" | "feedback" | "project" | "reference"; +type MemoryKnowledgeType = "user" | "feedback" | "project" | "reference"; type SourceBucketKey = | "managed" | "user" @@ -103,6 +107,11 @@ interface RuntimeMemoryPrefetchState { error: string | null; } +interface MemdirActionNotice { + tone: "success" | "error"; + message: string; +} + const DEFAULT_MEMORY_CONFIG: MemoryConfig = { enabled: true, max_entries: 1000, @@ -110,6 +119,41 @@ const DEFAULT_MEMORY_CONFIG: MemoryConfig = { auto_cleanup: true, }; +function resolveActionErrorMessage(error: unknown, fallback: string): string { + if (typeof error === "string" && error.trim()) { + return error; + } + if (error instanceof Error && error.message.trim()) { + return error.message; + } + return fallback; +} + +function formatMemdirCleanupMessage(result: MemdirCleanupResult): string { + const touchedCount = + result.curated_topic_files + + result.removed_duplicate_links + + result.dropped_missing_links + + result.removed_duplicate_notes + + result.trimmed_notes; + + if (result.updated_files === 0 || touchedCount === 0) { + return "memdir 已经是干净状态,无需整理"; + } + + return `已整理 memdir:更新 ${result.updated_files} 个文件,收口 ${result.curated_topic_files} 个 topic,清掉 ${result.removed_duplicate_links + result.dropped_missing_links + result.removed_duplicate_notes + result.trimmed_notes} 处重复或过期内容`; +} + +function formatMemdirScaffoldMessage(result: MemdirScaffoldResult): string { + const createdCount = result.files.filter( + (file) => file.status === "created" || file.status === "overwritten", + ).length; + + return createdCount > 0 + ? `已初始化 memdir:${result.root_dir}` + : `memdir 已存在:${result.root_dir}`; +} + const SECTION_META: Array<{ key: PrimarySection; label: string; @@ -120,13 +164,13 @@ const SECTION_META: Array<{ key: "home", label: "记忆总览", icon: BrainCircuit, - description: "按 Claude Code 的来源与作用域查看当前记忆。", + description: "按 Lime 的记忆目录、作用域与类型查看当前记忆。", }, { key: "rules", label: "记忆来源", icon: ScrollText, - description: "Managed、User、Project、Local、Rules、Auto 与 /memories。", + description: "托管策略、用户/项目/本地记忆、规则目录、memdir 与 /memories。", }, { key: "working", @@ -138,13 +182,13 @@ const SECTION_META: Array<{ key: "durable", label: "记忆类型", icon: Database, - description: "Claude 四类记忆视角与 Lime 当前存量映射。", + description: "Lime 四类记忆与当前存量映射。", }, { key: "team", - label: "Team Memory", + label: "团队记忆", icon: Users, - description: "repo 作用域的协作影子与分工快照。", + description: "仓库作用域的协作影子与分工快照。", }, { key: "compaction", @@ -170,46 +214,46 @@ const CATEGORY_LABELS: Record = { activity: "收藏", }; -const CLAUDE_MEMORY_TYPE_META: Array<{ - key: ClaudeMemoryType; +const MEMORY_TYPE_META: Array<{ + key: MemoryKnowledgeType; label: string; description: string; useCase: string; }> = [ { key: "user", - label: "User memory", + label: "用户记忆", description: "记录用户角色、职责、目标与长期偏好,用来调整协作方式。", useCase: "例如用户的经验背景、沟通偏好、对解释深浅的期待。", }, { key: "feedback", - label: "Feedback memory", + label: "反馈记忆", description: "记录用户反复强调的做事方式,包括纠偏和验证通过的做法。", useCase: "例如“不要做额外重构”“回复保持简洁”“测试要打真实链路”。", }, { key: "project", - label: "Project memory", + label: "项目记忆", description: "记录项目内不易从代码直接推导的目标、约束、时间点和背景。", useCase: "例如当前主线、冻结窗口、重构动机、团队分工和交付背景。", }, { key: "reference", - label: "Reference memory", + label: "参考记忆", description: "记录外部资料和系统入口,帮助下次知道去哪里查最新事实。", useCase: "例如文档地址、监控面板、工单系统、知识库目录。", }, ]; -const CLAUDE_MEMORY_TYPE_LABELS: Record = { +const MEMORY_TYPE_LABELS: Record = { user: "用户记忆", feedback: "反馈记忆", project: "项目记忆", reference: "参考记忆", }; -const LEGACY_CATEGORY_TO_CLAUDE_TYPE: Record = +const LEGACY_CATEGORY_TO_MEMORY_TYPE: Record = { identity: "user", preference: "feedback", @@ -218,7 +262,7 @@ const LEGACY_CATEGORY_TO_CLAUDE_TYPE: Record = context: "reference", }; -const CLAUDE_TYPE_BADGE_CLASS_NAMES: Record = { +const MEMORY_TYPE_BADGE_CLASS_NAMES: Record = { user: "border-emerald-200 bg-emerald-50 text-emerald-800", feedback: "border-emerald-200 bg-emerald-50 text-emerald-800", project: "border-emerald-200 bg-emerald-50 text-emerald-800", @@ -235,7 +279,7 @@ const SOURCE_BUCKET_META: Array<{ }> = [ { key: "managed", - label: "Managed memory", + label: "托管记忆", scope: "全局托管", description: "平台托管的基础政策与默认行为,优先级最高。", kinds: ["managed_policy"], @@ -243,7 +287,7 @@ const SOURCE_BUCKET_META: Array<{ }, { key: "user", - label: "User memory", + label: "用户记忆", scope: "用户级", description: "全局用户记忆,通常对应当前用户的长期偏好与个人规则。", kinds: ["user_memory"], @@ -251,7 +295,7 @@ const SOURCE_BUCKET_META: Array<{ }, { key: "project", - label: "Project memory", + label: "项目记忆", scope: "项目级", description: "项目共享记忆,通常来自仓库内主记忆文件。", kinds: ["project_memory", "workspace_agents"], @@ -259,15 +303,15 @@ const SOURCE_BUCKET_META: Array<{ }, { key: "local", - label: "Local memory", + label: "本地记忆", scope: "本地项目级", description: "仅在当前工作区本地生效,不应替代共享主记忆。", kinds: ["project_local"], - emptyState: "当前未发现本地 local memory 文件。", + emptyState: "当前未发现本地记忆文件。", }, { key: "rules", - label: "Project rules", + label: "项目规则", scope: "项目规则目录", description: "规则目录与细粒度规则文件,会在项目范围内参与注入。", kinds: ["project_rule", "project_rules"], @@ -275,23 +319,23 @@ const SOURCE_BUCKET_META: Array<{ }, { key: "auto", - label: "Auto memory", - scope: "自动归档", - description: "自动记忆目录与入口文件,承接持续沉淀的 note 与索引。", - kinds: ["auto_memory"], - emptyState: "当前未启用或未发现 auto memory 入口。", + label: "记忆目录(memdir)", + scope: "memdir 根目录", + description: "以 MEMORY.md 为入口,承接四类记忆文件、自动沉淀 note 与索引。", + kinds: ["auto_memory", "auto_memory_item"], + emptyState: "当前未启用或未发现 memdir 入口。", }, { key: "durable", label: "/memories", scope: "跨会话", - description: "可跨会话访问的 durable memory 根目录,用于共享结构化沉淀。", + description: "可跨会话访问的长期记忆根目录,用于共享结构化沉淀。", kinds: ["durable_memory"], - emptyState: "当前未发现 durable memory 根目录。", + emptyState: "当前未发现 /memories 根目录。", }, { key: "additional", - label: "Additional memory", + label: "附加目录", scope: "附加目录", description: "额外扫描目录中的补充记忆来源,避免直接混入主链。", kinds: ["additional_memory"], @@ -306,32 +350,32 @@ const MEMORY_SCOPE_CARD_META: Array<{ }> = [ { key: "user", - label: "User memory", + label: "用户记忆", description: "面向当前用户的长期偏好与协作方式。", }, { key: "project", - label: "Project memory", + label: "项目记忆", description: "仓库共享记忆,承接项目背景和约束。", }, { key: "local", - label: "Local memory", + label: "本地记忆", description: "只在本地工作区生效的附加指令与补充说明。", }, { key: "auto", - label: "Auto memory folder", - description: "自动整理的 MEMORY 入口和主题 note。", + label: "记忆目录(memdir)", + description: "以 MEMORY.md 为入口,承接四类记忆、主题 note 与索引。", }, { key: "durable", label: "/memories", - description: "跨会话可读取的 durable 记忆根目录。", + description: "跨会话可读取的长期记忆根目录。", }, { key: "team", - label: "Team memory", + label: "团队记忆", description: "repo-scoped 协作影子,补充团队分工和上下文。", }, ]; @@ -353,6 +397,7 @@ const MEMORY_DO_NOT_SAVE = [ "调试步骤、修复配方或一次性操作过程,真正的结果应该回到代码和提交记录。", "已经写进 `AGENTS.md`、项目规则或其他记忆文件的内容,不要重复保存。", "临时任务状态、当前会话上下文、一次性的待办列表,这些属于 working memory,不是 durable memory。", + "一次性操作日志和短期摘录,这些更适合留在会话记忆,而不是 memdir。", ]; const MEMORY_READ_GUARDRAILS = [ @@ -370,7 +415,7 @@ const MEMORY_PAGE_LAYER_COPY: Record< > = { rules: { title: "来源链", - description: "当前已解析到可注入的规则与记忆来源文件。", + description: "当前已解析到可注入的规则文件、记忆目录与来源项。", }, working: { title: "会话记忆", @@ -378,11 +423,11 @@ const MEMORY_PAGE_LAYER_COPY: Record< }, durable: { title: "持久记忆", - description: "跨会话可复用的结构化沉淀已进入 durable memory 视图。", + description: "跨会话可复用的结构化沉淀已进入长期记忆视图。", }, team: { - title: "Team Memory", - description: "repo 作用域的 Team memory 快照可用于补足协作上下文。", + title: "团队记忆", + description: "repo 作用域的团队记忆快照可用于补足协作上下文。", }, compaction: { title: "会话压缩", @@ -415,7 +460,7 @@ const RUNTIME_HISTORY_LAYER_LABELS: Record< rules: "规则层", working: "工作层", durable: "持久层", - team: "Team 层", + team: "团队层", compaction: "压缩层", }; @@ -469,6 +514,49 @@ function formatRelativeTime(timestamp: number | undefined): string { .padStart(2, "0")}:${date.getMinutes().toString().padStart(2, "0")}`; } +function truncateSummaryText(value?: string | null, maxLength = 88): string { + const normalized = (value || "").trim().replace(/\s+/g, " "); + if (!normalized) { + return ""; + } + if (normalized.length <= maxLength) { + return normalized; + } + return `${normalized.slice(0, maxLength - 1).trimEnd()}…`; +} + +function countRuntimePrefetchHitLayers( + result: TurnMemoryPrefetchResult | null, +): number { + if (!result) { + return 0; + } + + return [ + result.rules_source_paths.length > 0, + Boolean(result.working_memory_excerpt), + result.durable_memories.length > 0, + result.team_memory_entries.length > 0, + Boolean(result.latest_compaction), + ].filter(Boolean).length; +} + +function buildRuntimePrefetchHitSummary( + result: TurnMemoryPrefetchResult | null, +): string { + if (!result) { + return "带着当前会话进入时,这里会直接显示这轮真实命中的规则、工作摘录、长期记忆、团队影子和压缩摘要。"; + } + + return [ + `规则 ${result.rules_source_paths.length}`, + result.working_memory_excerpt ? "工作已命中" : "工作未命中", + `长期 ${result.durable_memories.length}`, + `团队 ${result.team_memory_entries.length}`, + result.latest_compaction ? "压缩已命中" : "压缩未命中", + ].join(" · "); +} + function formatRuntimeLayerStatusLabel( label: string, count?: number | null, @@ -504,7 +592,7 @@ function resolveRuntimeHistoryPreviewChangeLabel( case "durable": return `持久记忆 ${change.previous || "无"} -> ${change.current || "无"}`; case "team": - return `Team Memory ${change.previous || "无"} -> ${change.current || "无"}`; + return `团队记忆 ${change.previous || "无"} -> ${change.current || "无"}`; case "compaction": return `压缩摘要 ${change.previous || "无"} -> ${change.current || "无"}`; case "user_message": @@ -672,35 +760,46 @@ function getMemoryAvailabilityBadge(status: MemoryAvailabilityStatus): { } } -function resolveClaudeMemoryType(category: MemoryCategory): ClaudeMemoryType { - return LEGACY_CATEGORY_TO_CLAUDE_TYPE[category]; +function resolveMemoryType(category: MemoryCategory): MemoryKnowledgeType { + return LEGACY_CATEGORY_TO_MEMORY_TYPE[category]; } function resolveSourceKindLabel(kind: string): string { switch (kind) { case "managed_policy": - return "Managed memory"; + return "托管记忆"; case "user_memory": - return "User memory"; + return "用户记忆"; case "project_memory": case "workspace_agents": - return "Project memory"; + return "项目记忆"; case "project_local": - return "Local memory"; + return "本地记忆"; case "project_rule": case "project_rules": - return "Project rules"; + return "项目规则"; case "auto_memory": - return "Auto memory"; + return "记忆目录入口"; + case "auto_memory_item": + return "memdir 条目"; case "durable_memory": return "/memories"; case "additional_memory": - return "Additional memory"; + return "附加目录"; default: return kind; } } +function resolveSourceBucketLabel(bucket?: string | null): string { + if (!bucket) { + return "未分类"; + } + return ( + SOURCE_BUCKET_META.find((item) => item.key === bucket)?.label || bucket + ); +} + function MemorySurfacePanel(props: { title: string; description?: string; @@ -768,6 +867,11 @@ export function MemoryPage({ onNavigate, pageParams }: MemoryPageProps) { result: null, error: null, }); + const [memdirActionNotice, setMemdirActionNotice] = + useState(null); + const [memdirActionType, setMemdirActionType] = useState< + "scaffold" | "cleanup" | null + >(null); const [runtimeHistoryScope, setRuntimeHistoryScope] = useState("all"); const [ @@ -779,6 +883,8 @@ export function MemoryPage({ onNavigate, pageParams }: MemoryPageProps) { const runtimeWorkingDir = pageParams?.runtimeWorkingDir?.trim() || ""; const runtimeUserMessage = pageParams?.runtimeUserMessage?.trim() || ""; const hasRuntimeContext = Boolean(runtimeSessionId && runtimeWorkingDir); + const memdirWorkingDir = + runtimeWorkingDir || rulesSources?.working_dir?.trim() || undefined; useEffect(() => { const resolved = resolveSectionState(pageParams?.section); @@ -876,6 +982,20 @@ export function MemoryPage({ onNavigate, pageParams }: MemoryPageProps) { }; }, []); + const refreshMemdirSurface = useCallback(async (workingDir?: string) => { + const [nextRulesSources, nextAutoIndex] = await Promise.all([ + getContextMemoryEffectiveSources(workingDir).catch(() => null), + getContextMemoryAutoIndex(workingDir).catch(() => null), + ]); + + if (nextRulesSources) { + setRulesSources(nextRulesSources); + } + if (nextAutoIndex) { + setAutoIndex(nextAutoIndex); + } + }, []); + const filteredMemories = useMemo(() => { if (durableFilter === "all") { return unifiedMemories; @@ -920,6 +1040,13 @@ export function MemoryPage({ onNavigate, pageParams }: MemoryPageProps) { ) || []; const loadedCount = sources.filter((source) => source.loaded).length; const existsCount = sources.filter((source) => source.exists).length; + const latestUpdatedAt = + sources.reduce((latest, source) => { + if (!source.updated_at) { + return latest; + } + return Math.max(latest, source.updated_at); + }, 0) || null; const status: "loaded" | "exists" | "missing" = loadedCount > 0 ? "loaded" : existsCount > 0 ? "exists" : "missing"; return { @@ -927,6 +1054,10 @@ export function MemoryPage({ onNavigate, pageParams }: MemoryPageProps) { sources, loadedCount, existsCount, + latestUpdatedAt, + provider: + sources.find((source) => source.provider)?.provider || + (bucket.key === "auto" ? "memdir" : null), status, primaryPath: sources[0]?.path || null, preview: @@ -954,7 +1085,7 @@ export function MemoryPage({ onNavigate, pageParams }: MemoryPageProps) { detail: teamSnapshots.length > 0 ? `${teamSnapshots.length} 个 repo 作用域快照` - : "当前没有本地 Team memory 快照", + : "当前没有本地团队记忆快照", helper: teamSnapshots.length > 0 ? "用于补充团队分工与协作影子,不替代共享记忆文件。" @@ -987,10 +1118,10 @@ export function MemoryPage({ onNavigate, pageParams }: MemoryPageProps) { detail: autoIndex?.root_dir || bucket?.primaryPath || - "未发现 auto memory 根目录", + "未发现 memdir 根目录", helper: autoIndex?.entrypoint - ? `入口文件:${autoIndex.entrypoint} · 已索引 ${autoIndex.items.length} 个主题` - : bucket?.emptyState || "当前未启用 auto memory。", + ? `入口文件:${autoIndex.entrypoint} · 已索引 ${autoIndex.items.length} 个条目` + : bucket?.emptyState || "当前未启用 memdir。", }; } @@ -1025,12 +1156,12 @@ export function MemoryPage({ onNavigate, pageParams }: MemoryPageProps) { unifiedStats?.total_entries, ]); - const claudeTypeCards = useMemo( + const memoryTypeCards = useMemo( () => - CLAUDE_MEMORY_TYPE_META.map((item) => { + MEMORY_TYPE_META.map((item) => { const mappedCategories = ( - Object.keys(LEGACY_CATEGORY_TO_CLAUDE_TYPE) as MemoryCategory[] - ).filter((category) => resolveClaudeMemoryType(category) === item.key); + Object.keys(LEGACY_CATEGORY_TO_MEMORY_TYPE) as MemoryCategory[] + ).filter((category) => resolveMemoryType(category) === item.key); const count = mappedCategories.reduce( (total, category) => total + (durableCountsByCategory.get(category) || 0), @@ -1171,11 +1302,69 @@ export function MemoryPage({ onNavigate, pageParams }: MemoryPageProps) { } } - function buildMemoryPageParams( - section: MemoryPageSection, - overrides: Partial = {}, - ): MemoryPageParams { - return { + const handleScaffoldMemdir = useCallback(async () => { + if (!memdirWorkingDir) { + setMemdirActionNotice({ + tone: "error", + message: "当前未获取到 workspace 路径,暂无法初始化 memdir", + }); + return; + } + + setMemdirActionType("scaffold"); + setMemdirActionNotice(null); + try { + const result = await scaffoldContextMemdir(memdirWorkingDir, false); + setMemdirActionNotice({ + tone: "success", + message: formatMemdirScaffoldMessage(result), + }); + await refreshMemdirSurface(memdirWorkingDir); + } catch (actionError) { + console.error("初始化 memdir 失败:", actionError); + setMemdirActionNotice({ + tone: "error", + message: resolveActionErrorMessage(actionError, "初始化 memdir 失败"), + }); + } finally { + setMemdirActionType(null); + } + }, [memdirWorkingDir, refreshMemdirSurface]); + + const handleCleanupMemdir = useCallback(async () => { + if (!memdirWorkingDir) { + setMemdirActionNotice({ + tone: "error", + message: "当前未获取到 workspace 路径,暂无法整理 memdir", + }); + return; + } + + setMemdirActionType("cleanup"); + setMemdirActionNotice(null); + try { + const result = await cleanupContextMemdir(memdirWorkingDir); + setMemdirActionNotice({ + tone: "success", + message: formatMemdirCleanupMessage(result), + }); + await refreshMemdirSurface(memdirWorkingDir); + } catch (actionError) { + console.error("整理 memdir 失败:", actionError); + setMemdirActionNotice({ + tone: "error", + message: resolveActionErrorMessage(actionError, "整理 memdir 失败"), + }); + } finally { + setMemdirActionType(null); + } + }, [memdirWorkingDir, refreshMemdirSurface]); + + const buildMemoryPageParams = useCallback( + ( + section: MemoryPageSection, + overrides: Partial = {}, + ): MemoryPageParams => ({ section, runtimeSessionId: (overrides.runtimeSessionId ?? runtimeSessionId) || undefined, @@ -1183,15 +1372,19 @@ export function MemoryPage({ onNavigate, pageParams }: MemoryPageProps) { (overrides.runtimeWorkingDir ?? runtimeWorkingDir) || undefined, runtimeUserMessage: (overrides.runtimeUserMessage ?? runtimeUserMessage) || undefined, - }; - } + }), + [runtimeSessionId, runtimeUserMessage, runtimeWorkingDir], + ); - function navigateToMemorySection(nextSection: MemoryPageSection) { - const resolved = resolveSectionState(nextSection); - setActiveSection(resolved.section); - setDurableFilter(resolved.durableFilter); - onNavigate("memory", buildMemoryPageParams(nextSection)); - } + const navigateToMemorySection = useCallback( + (nextSection: MemoryPageSection) => { + const resolved = resolveSectionState(nextSection); + setActiveSection(resolved.section); + setDurableFilter(resolved.durableFilter); + onNavigate("memory", buildMemoryPageParams(nextSection)); + }, + [buildMemoryPageParams, onNavigate], + ); function handleBringToCreation(entry: UnifiedMemory) { const categoryLabel = CATEGORY_LABELS[entry.category]; @@ -1366,7 +1559,7 @@ export function MemoryPage({ onNavigate, pageParams }: MemoryPageProps) { className={cn(BUTTON_CLASS_NAME, EMERALD_BUTTON_CLASS_NAME)} onClick={() => navigateToMemorySection("team")} > - 看 Team Memory + 看团队记忆
) : null; + const homeOverviewCards = useMemo( + () => [ + { + key: "current-turn", + eyebrow: "当前回合", + title: "先看这轮真实命中", + value: + runtimePrefetchState.status === "loading" + ? "正在对照当前回合" + : runtimePrefetchState.result + ? `已命中 ${countRuntimePrefetchHitLayers( + runtimePrefetchState.result, + )} 层` + : hasRuntimeContext + ? "当前回合还未命中" + : workingView?.total_entries + ? `最近会话条目 ${workingView.total_entries}` + : "等待带入当前回合", + detail: buildRuntimePrefetchHitSummary(runtimePrefetchState.result), + actionLabel: "看会话记忆", + onClick: () => navigateToMemorySection("working"), + }, + { + key: "durable", + eyebrow: "长期记忆", + title: "跨会话可复用的沉淀", + value: `${unifiedStats?.memory_count || 0} 条长期记忆`, + detail: + (unifiedStats?.categories?.length || 0) > 0 + ? `已覆盖 ${unifiedStats?.categories.length || 0} 个记忆类型,适合回看稳定偏好、项目背景和长期参考。` + : "当前还没有长期记忆沉淀,后续的稳定结论会先在这里累计。", + actionLabel: "看记忆类型", + onClick: () => navigateToMemorySection("durable"), + }, + { + key: "team", + eyebrow: "团队 / 项目", + title: "项目规则与协作上下文", + value: + teamSnapshots.length > 0 + ? `团队快照 ${teamSnapshots.length} 个` + : `规则来源 ${rulesSources?.loaded_sources || 0} 条`, + detail: `规则已加载 ${rulesSources?.loaded_sources || 0}/${ + rulesSources?.total_sources || 0 + } 条;${ + teamSnapshots.length > 0 + ? "最近的团队影子可补充 repo 范围内的分工和上下文。" + : "当前还没有本地团队影子。" + }`, + actionLabel: "看团队记忆", + onClick: () => navigateToMemorySection("team"), + }, + { + key: "compaction", + eyebrow: "会话压缩", + title: "长会话如何续接", + value: extractionStatus?.latest_compaction + ? `最近压缩保留 ${extractionStatus.latest_compaction.turn_count} 轮` + : "还没有会话压缩", + detail: + truncateSummaryText( + extractionStatus?.latest_compaction?.summary_preview || + extractionStatus?.status_summary, + ) || "长会话压缩后会把可续接摘要收在这里,便于下次继续。", + actionLabel: "看会话压缩", + onClick: () => navigateToMemorySection("compaction"), + }, + ], + [ + extractionStatus?.latest_compaction, + extractionStatus?.status_summary, + hasRuntimeContext, + navigateToMemorySection, + rulesSources?.loaded_sources, + rulesSources?.total_sources, + runtimePrefetchState.result, + runtimePrefetchState.status, + teamSnapshots.length, + unifiedStats?.categories, + unifiedStats?.memory_count, + workingView?.total_entries, + ], + ); return (
@@ -1384,14 +1660,13 @@ export function MemoryPage({ onNavigate, pageParams }: MemoryPageProps) {
@@ -3210,5 +3254,3 @@ export function OpenClawPage({
); } - -export default OpenClawPage; diff --git a/src/components/openclaw/OpenClawProgressPage.tsx b/src/components/openclaw/OpenClawProgressPage.tsx index f81849f4b..a2bc1289c 100644 --- a/src/components/openclaw/OpenClawProgressPage.tsx +++ b/src/components/openclaw/OpenClawProgressPage.tsx @@ -236,5 +236,3 @@ export function OpenClawProgressPage({
); } - -export default OpenClawProgressPage; diff --git a/src/components/openclaw/OpenClawRuntimePage.tsx b/src/components/openclaw/OpenClawRuntimePage.tsx index e5ba1f1d7..4e6733c11 100644 --- a/src/components/openclaw/OpenClawRuntimePage.tsx +++ b/src/components/openclaw/OpenClawRuntimePage.tsx @@ -751,5 +751,3 @@ export function OpenClawRuntimePage({ ); } - -export default OpenClawRuntimePage; diff --git a/src/components/openclaw/OpenClawSceneNav.tsx b/src/components/openclaw/OpenClawSceneNav.tsx index e4220af54..8ccc43100 100644 --- a/src/components/openclaw/OpenClawSceneNav.tsx +++ b/src/components/openclaw/OpenClawSceneNav.tsx @@ -123,5 +123,3 @@ export function OpenClawSceneNav({ ); } - -export default OpenClawSceneNav; diff --git a/src/components/openclaw/useOpenClawStore.ts b/src/components/openclaw/useOpenClawStore.ts index 3926409bb..4f158155c 100644 --- a/src/components/openclaw/useOpenClawStore.ts +++ b/src/components/openclaw/useOpenClawStore.ts @@ -50,5 +50,3 @@ export const useOpenClawStore = create()( }, ), ); - -export default useOpenClawStore; diff --git a/src/components/plugins/PluginManager.tsx b/src/components/plugins/PluginManager.tsx index 09dac205d..92189c871 100644 --- a/src/components/plugins/PluginManager.tsx +++ b/src/components/plugins/PluginManager.tsx @@ -2683,8 +2683,6 @@ function PluginItem({ ); } -export default PluginManager; - /** 已安装插件项组件 */ interface InstalledPluginItemProps { plugin: InstalledPlugin; diff --git a/src/components/projects/ProjectSelector.tsx b/src/components/projects/ProjectSelector.tsx index 0fec151d3..221848469 100644 --- a/src/components/projects/ProjectSelector.tsx +++ b/src/components/projects/ProjectSelector.tsx @@ -954,5 +954,3 @@ export function ProjectSelector({ ); } - -export default ProjectSelector; diff --git a/src/components/provider-pool/api-key/ApiKeyProviderSection.helpers.ts b/src/components/provider-pool/api-key/ApiKeyProviderSection.helpers.ts new file mode 100644 index 000000000..ac54ac127 --- /dev/null +++ b/src/components/provider-pool/api-key/ApiKeyProviderSection.helpers.ts @@ -0,0 +1,49 @@ +export function resolveProviderTestModel( + providerCustomModels: string[] | undefined, + rawInputValue: string, +): string | undefined { + const parsedInputModels = rawInputValue + .split(",") + .map((model) => model.trim()) + .filter((model) => model.length > 0); + + if (parsedInputModels.length > 0) { + return parsedInputModels[0]; + } + + const fallbackModel = providerCustomModels?.find( + (model) => model.trim().length > 0, + ); + + return fallbackModel?.trim(); +} + +export function verifyProviderSelectionSync( + selectedId: string | null, + displayedProviderId: string | null, +): boolean { + if (selectedId === null) { + return displayedProviderId === null; + } + + return selectedId === displayedProviderId; +} + +export function extractSelectionState( + selectedProviderId: string | null, + selectedProvider: { id: string } | null, +): { + listSelectedId: string | null; + settingProviderId: string | null; + isSynced: boolean; +} { + const settingProviderId = selectedProvider?.id ?? null; + return { + listSelectedId: selectedProviderId, + settingProviderId, + isSynced: verifyProviderSelectionSync( + selectedProviderId, + settingProviderId, + ), + }; +} diff --git a/src/components/provider-pool/api-key/ApiKeyProviderSection.test.ts b/src/components/provider-pool/api-key/ApiKeyProviderSection.test.ts index 060f88ce7..c52d81f3f 100644 --- a/src/components/provider-pool/api-key/ApiKeyProviderSection.test.ts +++ b/src/components/provider-pool/api-key/ApiKeyProviderSection.test.ts @@ -14,7 +14,8 @@ import * as fc from "fast-check"; import { verifyProviderSelectionSync, extractSelectionState, -} from "./ApiKeyProviderSection"; + resolveProviderTestModel, +} from "./ApiKeyProviderSection.helpers"; import type { ProviderWithKeysDisplay, ApiKeyDisplay, @@ -219,6 +220,24 @@ describe("Property 2: Provider 选择同步", () => { }); }); + describe("测试模型解析", () => { + test("应优先使用当前输入框里的模型名", () => { + expect( + resolveProviderTestModel(["claude-opus-4-6"], "MiniMax-M2.7"), + ).toBe("MiniMax-M2.7"); + }); + + test("输入框为空时应回退到 provider 当前模型", () => { + expect(resolveProviderTestModel(["glm-5"], "")).toBe("glm-5"); + }); + + test("应忽略空白模型项", () => { + expect(resolveProviderTestModel([" "], " , MiniMax-M2.5 ")).toBe( + "MiniMax-M2.5", + ); + }); + }); + // Provider 列表选择测试 describe("Provider 列表选择", () => { test.prop( diff --git a/src/components/provider-pool/api-key/ApiKeyProviderSection.tsx b/src/components/provider-pool/api-key/ApiKeyProviderSection.tsx index fb526f02c..7b1e0879d 100644 --- a/src/components/provider-pool/api-key/ApiKeyProviderSection.tsx +++ b/src/components/provider-pool/api-key/ApiKeyProviderSection.tsx @@ -24,6 +24,7 @@ import { ProviderSetting } from "./ProviderSetting"; import { DeleteProviderDialog } from "./DeleteProviderDialog"; import { ImportExportDialog } from "./ImportExportDialog"; import type { ConnectionTestResult } from "./ConnectionTestButton"; +import { resolveProviderTestModel } from "./ApiKeyProviderSection.helpers"; // ============================================================================ // 类型定义 @@ -100,6 +101,15 @@ export const ApiKeyProviderSection = forwardRef< const [showDeleteDialog, setShowDeleteDialog] = useState(false); // 导入导出对话框状态 const [showImportExportDialog, setShowImportExportDialog] = useState(false); + const resolveCurrentTestModel = useCallback(() => { + const input = document.getElementById( + "custom-models", + ) as HTMLInputElement | null; + return resolveProviderTestModel( + selectedProvider?.custom_models, + input?.value ?? "", + ); + }, [selectedProvider?.custom_models]); // ===== 包装回调函数以匹配 ProviderSetting 的类型要求 ===== @@ -138,27 +148,7 @@ export const ApiKeyProviderSection = forwardRef< }; } - // 如果 Provider 配置了自定义模型,使用第一个模型进行测试 - let modelName = - provider.custom_models && provider.custom_models.length > 0 - ? provider.custom_models[0] - : undefined; - - // 兜底:自定义模型可能还在防抖保存中(provider.custom_models 还未更新) - // 直接从输入框读取当前值,确保连接测试可用 - if (!modelName) { - const input = document.getElementById( - "custom-models", - ) as HTMLInputElement | null; - const raw = input?.value ?? ""; - const parsed = raw - .split(",") - .map((m) => m.trim()) - .filter((m) => m.length > 0); - if (parsed.length > 0) { - modelName = parsed[0]; - } - } + const modelName = resolveCurrentTestModel(); // 调用后端连接测试 API const result = await apiKeyProviderApi.testConnection( @@ -179,7 +169,7 @@ export const ApiKeyProviderSection = forwardRef< }; } }, - [selectedProvider], + [resolveCurrentTestModel, selectedProvider], ); const handleTestChat = useCallback( @@ -192,24 +182,7 @@ export const ApiKeyProviderSection = forwardRef< }; } - let modelName = - provider.custom_models && provider.custom_models.length > 0 - ? provider.custom_models[0] - : undefined; - - if (!modelName) { - const input = document.getElementById( - "custom-models", - ) as HTMLInputElement | null; - const raw = input?.value ?? ""; - const parsed = raw - .split(",") - .map((m) => m.trim()) - .filter((m) => m.length > 0); - if (parsed.length > 0) { - modelName = parsed[0]; - } - } + const modelName = resolveCurrentTestModel(); try { return await apiKeyProviderApi.testChat(providerId, modelName, prompt); @@ -226,7 +199,7 @@ export const ApiKeyProviderSection = forwardRef< }; } }, - [selectedProvider], + [resolveCurrentTestModel, selectedProvider], ); // ===== 删除 Provider ===== @@ -307,47 +280,4 @@ ApiKeyProviderSection.displayName = "ApiKeyProviderSection"; // 辅助函数(用于测试) // ============================================================================ -/** - * 验证 Provider 选择同步 - * 用于属性测试验证 Requirements 1.4 - * - * @param selectedId 当前选中的 Provider ID - * @param displayedProviderId 设置面板显示的 Provider ID - * @returns 是否同步 - */ -export function verifyProviderSelectionSync( - selectedId: string | null, - displayedProviderId: string | null, -): boolean { - // 如果没有选中任何 Provider,设置面板应该显示空状态 - if (selectedId === null) { - return displayedProviderId === null; - } - // 如果选中了 Provider,设置面板应该显示相同的 Provider - return selectedId === displayedProviderId; -} - -/** - * 从组件状态中提取选择同步信息 - * 用于属性测试 - */ -export function extractSelectionState( - selectedProviderId: string | null, - selectedProvider: { id: string } | null, -): { - listSelectedId: string | null; - settingProviderId: string | null; - isSynced: boolean; -} { - const settingProviderId = selectedProvider?.id ?? null; - return { - listSelectedId: selectedProviderId, - settingProviderId, - isSynced: verifyProviderSelectionSync( - selectedProviderId, - settingProviderId, - ), - }; -} - export default ApiKeyProviderSection; diff --git a/src/components/provider-pool/api-key/ProviderConfigForm.tsx b/src/components/provider-pool/api-key/ProviderConfigForm.tsx index 140bab588..c0c531abb 100644 --- a/src/components/provider-pool/api-key/ProviderConfigForm.tsx +++ b/src/components/provider-pool/api-key/ProviderConfigForm.tsx @@ -206,6 +206,7 @@ export const ProviderConfigForm = forwardRef< registryId: provider.id, fallbackRegistryId: resolveRegistryProviderId(provider.id, { providerType: formState.providerType, + apiHost: formState.apiHost, }), type: formState.providerType, providerId: provider.id, @@ -287,6 +288,19 @@ export const ProviderConfigForm = forwardRef< localCandidateModels, localModelsLoading, ]); + const hasSelectedModelInLiveDirectory = useMemo(() => { + if (!requiresLiveModelTruth || localCandidateModels.length === 0) { + return false; + } + + const liveDirectoryModelIds = new Set( + localCandidateModels.map((model) => model.id.toLowerCase()), + ); + + return selectedModels.some((modelId) => + liveDirectoryModelIds.has(modelId.toLowerCase()), + ); + }, [localCandidateModels, requiresLiveModelTruth, selectedModels]); const modelTruthNotice = useMemo(() => { if (!requiresLiveModelTruth) { return null; @@ -528,6 +542,28 @@ export const ProviderConfigForm = forwardRef< shouldLockModelEditor, ]); + useEffect(() => { + if ( + !requiresLiveModelTruth || + selectedModels.length === 0 || + !recommendedLatestModel || + shouldLockModelEditor || + hasSelectedModelInLiveDirectory + ) { + return; + } + + // 修正历史兜底写入的错误模型名,避免继续拿错厂商模型做默认值。 + applyCustomModels([recommendedLatestModel.id]); + }, [ + applyCustomModels, + hasSelectedModelInLiveDirectory, + recommendedLatestModel, + requiresLiveModelTruth, + selectedModels.length, + shouldLockModelEditor, + ]); + useEffect(() => { onModelsChange?.(selectedModels); }, [onModelsChange, selectedModels]); @@ -806,8 +842,8 @@ export const ProviderConfigForm = forwardRef< >

Prompt Cache 提示

- Anthropic 兼容只表示请求格式兼容,不等于上游已声明自动 - Prompt Cache。 + Anthropic 兼容只表示请求格式兼容,不等于上游已声明自动 Prompt + Cache。

{promptCacheSupportNotice.detail}

diff --git a/src/components/provider-pool/api-key/ProviderConfigForm.ui.test.tsx b/src/components/provider-pool/api-key/ProviderConfigForm.ui.test.tsx index 12e492c78..1f840365c 100644 --- a/src/components/provider-pool/api-key/ProviderConfigForm.ui.test.tsx +++ b/src/components/provider-pool/api-key/ProviderConfigForm.ui.test.tsx @@ -2,6 +2,7 @@ import { act } from "react"; import { createRoot, type Root } from "react-dom/client"; import { afterEach, beforeEach, describe, expect, it, vi } from "vitest"; import type { ProviderWithKeysDisplay } from "@/lib/api/apiKeyProvider"; +import type { EnhancedModelMetadata } from "@/lib/types/modelRegistry"; const { mockUseProviderModels } = vi.hoisted(() => ({ mockUseProviderModels: vi.fn(), @@ -42,6 +43,55 @@ function createProvider( }; } +function createEnabledApiKey() { + return { + id: "key-1", + provider_id: "provider-1", + api_key_masked: "sk-****", + enabled: true, + usage_count: 0, + error_count: 0, + created_at: new Date("2026-03-15T00:00:00.000Z").toISOString(), + }; +} + +function createModel( + id: string, + overrides: Partial = {}, +): EnhancedModelMetadata { + return { + id, + display_name: id, + provider_id: "minimax", + provider_name: "MiniMax", + family: "minimax", + tier: "pro", + capabilities: { + vision: false, + tools: true, + streaming: true, + json_mode: true, + function_calling: true, + reasoning: true, + }, + pricing: null, + limits: { + context_length: null, + max_output_tokens: null, + requests_per_minute: null, + tokens_per_minute: null, + }, + status: "active", + release_date: null, + is_latest: false, + description: null, + source: "custom", + created_at: 0, + updated_at: 0, + ...overrides, + }; +} + function renderForm( provider: ProviderWithKeysDisplay, onUpdate = vi.fn().mockResolvedValue(undefined), @@ -128,6 +178,47 @@ describe("ProviderConfigForm", () => { expect(container.textContent ?? "").not.toContain("当前默认模型:gpt-4.1"); }); + it("实时拉模型渠道在拿到真实目录后应自动纠正历史错误默认模型", async () => { + mockUseProviderModels.mockReturnValue({ + modelIds: ["MiniMax-M2.1", "MiniMax-M2.7"], + models: [ + createModel("MiniMax-M2.1"), + createModel("MiniMax-M2.7", { + is_latest: true, + }), + ], + loading: false, + error: null, + }); + + const provider = createProvider({ + id: "custom-minimax", + name: "Minimax-test", + is_system: false, + type: "anthropic-compatible", + api_host: "https://api.minimaxi.com/anthropic", + custom_models: ["claude-opus-4-6"], + api_keys: [createEnabledApiKey()], + }); + const { container, onUpdate } = renderForm(provider); + + await act(async () => { + vi.advanceTimersByTime(600); + await Promise.resolve(); + }); + + expect(onUpdate).toHaveBeenCalledWith( + "custom-minimax", + expect.objectContaining({ + type: "anthropic-compatible", + custom_models: ["MiniMax-M2.7"], + }), + ); + expect(container.textContent ?? "").toContain("当前:MiniMax-M2.7"); + expect(container.textContent ?? "").toContain("推荐最新:MiniMax-M2.7"); + expect(container.textContent ?? "").not.toContain("当前:claude-opus-4-6"); + }); + it("自定义 Provider 应允许切换兼容协议并保存", async () => { const provider = createProvider({ id: "custom-openai", diff --git a/src/components/provider-pool/api-key/ProviderModelList.test.tsx b/src/components/provider-pool/api-key/ProviderModelList.test.tsx index cab91f1f6..fd3dedacc 100644 --- a/src/components/provider-pool/api-key/ProviderModelList.test.tsx +++ b/src/components/provider-pool/api-key/ProviderModelList.test.tsx @@ -14,6 +14,20 @@ const { mockGetSystemProviderCatalog, mockGetModelRegistryProviderIds } = const { mockFetchProviderModelsAuto } = vi.hoisted(() => ({ mockFetchProviderModelsAuto: vi.fn(), })); +const { mockNormalizeFetchProviderModelsSource } = vi.hoisted(() => ({ + mockNormalizeFetchProviderModelsSource: vi.fn((result) => { + if ( + result?.source === "LocalFallback" && + Array.isArray(result?.models) && + result.models.length > 0 && + typeof result?.error === "string" && + result.error.includes("已保留当前 Provider 的自定义模型") + ) { + return "CustomModels"; + } + return result?.source ?? "LocalFallback"; + }), +})); vi.mock("@/hooks/useModelRegistry", () => ({ useModelRegistry: mockUseModelRegistry, @@ -27,6 +41,7 @@ vi.mock("@/lib/api/apiKeyProvider", () => ({ vi.mock("@/lib/api/modelRegistry", () => ({ fetchProviderModelsAuto: mockFetchProviderModelsAuto, + normalizeFetchProviderModelsSource: mockNormalizeFetchProviderModelsSource, modelRegistryApi: { getModelRegistryProviderIds: mockGetModelRegistryProviderIds, }, @@ -278,6 +293,179 @@ describe("ProviderModelList", () => { expect(container.textContent).toContain("未找到 models index.json"); }); + it("MiniMax 的 anthropic-compatible 自定义 Provider 应能读取 Catalog 模型目录", async () => { + mockFetchProviderModelsAuto.mockResolvedValueOnce({ + models: [ + { + id: "MiniMax-M2.1", + display_name: "MiniMax-M2.1", + provider_id: "minimax", + provider_name: "MiniMax", + family: "minimax", + tier: "mini", + capabilities: { + vision: false, + tools: true, + streaming: true, + json_mode: true, + function_calling: true, + reasoning: true, + }, + pricing: null, + limits: { + context_length: null, + max_output_tokens: null, + requests_per_minute: null, + tokens_per_minute: null, + }, + status: "active", + release_date: null, + is_latest: false, + description: null, + source: "embedded", + created_at: 0, + updated_at: 0, + }, + { + id: "MiniMax-M2.7", + display_name: "MiniMax-M2.7", + provider_id: "minimax", + provider_name: "MiniMax", + family: "minimax", + tier: "pro", + capabilities: { + vision: false, + tools: true, + streaming: true, + json_mode: true, + function_calling: true, + reasoning: true, + }, + pricing: null, + limits: { + context_length: null, + max_output_tokens: null, + requests_per_minute: null, + tokens_per_minute: null, + }, + status: "active", + release_date: null, + is_latest: true, + description: null, + source: "embedded", + created_at: 0, + updated_at: 0, + }, + ], + source: "Catalog", + error: null, + request_url: null, + diagnostic_hint: null, + should_prompt_error: false, + }); + + const container = renderProviderModelList({ + providerId: "custom-0f61e11f-b5e9-468d-b32e-d1a9c308a846", + providerType: "anthropic-compatible", + apiHost: "https://api.minimaxi.com/anthropic", + hasApiKey: true, + }); + + await act(async () => { + await Promise.resolve(); + await Promise.resolve(); + }); + + const button = Array.from(container.querySelectorAll("button")).find( + (item) => item.textContent?.includes("获取最新模型"), + ); + + expect(button).not.toBeUndefined(); + + await act(async () => { + button?.dispatchEvent(new MouseEvent("click", { bubbles: true })); + await Promise.resolve(); + await Promise.resolve(); + }); + + expect(mockFetchProviderModelsAuto).toHaveBeenCalledWith( + "custom-0f61e11f-b5e9-468d-b32e-d1a9c308a846", + ); + expect(container.textContent).toContain("MiniMax-M2.1"); + expect(container.textContent).toContain("MiniMax-M2.7"); + expect(container.textContent).toContain("目录"); + }); + + it("实时目录不可用但保留当前 Provider 自定义模型时,应继续展示自定义模型", async () => { + mockFetchProviderModelsAuto.mockResolvedValueOnce({ + models: [ + { + id: "MiniMax-M2.7", + display_name: "MiniMax-M2.7", + provider_id: "minimax", + provider_name: "MiniMax", + family: "minimax", + tier: "pro", + capabilities: { + vision: false, + tools: true, + streaming: true, + json_mode: true, + function_calling: true, + reasoning: true, + }, + pricing: null, + limits: { + context_length: null, + max_output_tokens: null, + requests_per_minute: null, + tokens_per_minute: null, + }, + status: "active", + release_date: null, + is_latest: true, + description: null, + source: "embedded", + created_at: 0, + updated_at: 0, + }, + ], + source: "LocalFallback", + error: "当前 Anthropic 兼容入口未提供标准 /models 接口,已保留当前 Provider 的自定义模型。", + request_url: "https://api.minimaxi.com/anthropic/v1/models", + diagnostic_hint: null, + should_prompt_error: false, + }); + + const container = renderProviderModelList({ + providerId: "custom-0f61e11f-b5e9-468d-b32e-d1a9c308a846", + providerType: "anthropic-compatible", + apiHost: "https://api.minimaxi.com/anthropic", + hasApiKey: true, + }); + + await act(async () => { + await Promise.resolve(); + await Promise.resolve(); + }); + + const button = Array.from(container.querySelectorAll("button")).find( + (item) => item.textContent?.includes("获取最新模型"), + ); + + await act(async () => { + button?.dispatchEvent(new MouseEvent("click", { bubbles: true })); + await Promise.resolve(); + await Promise.resolve(); + }); + + expect(container.textContent).toContain("MiniMax-M2.7"); + expect(container.textContent).toContain("自定义"); + expect(container.textContent).toContain( + "当前 Anthropic 兼容入口未提供标准 /models 接口,已保留当前 Provider 的自定义模型。", + ); + }); + it("Provider 模型缓存应在 TTL 后过期", () => { expect(isProviderModelsCacheExpired(1_000, 1_000)).toBe(false); expect(isProviderModelsCacheExpired(1_000, 1_000 + 5 * 60 * 1000 - 1)).toBe( diff --git a/src/components/provider-pool/api-key/ProviderModelList.tsx b/src/components/provider-pool/api-key/ProviderModelList.tsx index 88b18cfc4..542c0918a 100644 --- a/src/components/provider-pool/api-key/ProviderModelList.tsx +++ b/src/components/provider-pool/api-key/ProviderModelList.tsx @@ -31,6 +31,7 @@ import { apiKeyProviderApi } from "@/lib/api/apiKeyProvider"; import { fetchProviderModelsAuto, modelRegistryApi, + normalizeFetchProviderModelsSource, type FetchProviderModelsResult, } from "@/lib/api/modelRegistry"; import { ModelCapabilityBadges } from "@/components/model/ModelCapabilityBadges"; @@ -78,7 +79,7 @@ export interface ProviderModelListProps { interface CachedProviderModels { models: EnhancedModelMetadata[]; - source: "Api" | "LocalFallback" | null; + source: "Api" | "Catalog" | "CustomModels" | "LocalFallback" | null; error: string | null; requestUrl: string | null; diagnosticHint: string | null; @@ -94,17 +95,20 @@ function buildApiDiagnosticLines(result: { diagnostic_hint?: string | null; }): string[] { const lines: string[] = []; + const errorText = result.error?.trim() ?? ""; + const requestUrl = result.request_url?.trim() ?? ""; + const diagnosticHint = result.diagnostic_hint?.trim() ?? ""; - if (result.error?.trim()) { - lines.push(result.error.trim()); + if (errorText) { + lines.push(errorText); } - if (result.request_url?.trim()) { - lines.push(`请求地址:${result.request_url.trim()}`); + if (requestUrl && !errorText.includes(requestUrl)) { + lines.push(`请求地址:${requestUrl}`); } - if (result.diagnostic_hint?.trim()) { - lines.push(result.diagnostic_hint.trim()); + if (diagnosticHint && !errorText.includes(diagnosticHint)) { + lines.push(diagnosticHint); } return lines; @@ -306,10 +310,17 @@ export const ProviderModelList: React.FC = ({ const registryProviderId = useMemo(() => { return resolveRegistryProviderId(providerId, { providerType, + apiHost, catalogAliasMap, validRegistryProviders: validRegistryProviderIds ?? undefined, }); - }, [catalogAliasMap, providerId, providerType, validRegistryProviderIds]); + }, [ + apiHost, + catalogAliasMap, + providerId, + providerType, + validRegistryProviderIds, + ]); // 获取模型数据 const { models, loading, error } = useModelRegistry({ @@ -322,7 +333,9 @@ export const ProviderModelList: React.FC = ({ const [apiModels, setApiModels] = useState( null, ); - const [apiSource, setApiSource] = useState<"Api" | "LocalFallback" | null>( + const [apiSource, setApiSource] = useState< + "Api" | "Catalog" | "CustomModels" | "LocalFallback" | null + >( null, ); const [apiError, setApiError] = useState(null); @@ -386,14 +399,18 @@ export const ProviderModelList: React.FC = ({ try { const result: FetchProviderModelsResult = await fetchProviderModelsAuto(providerId); + const normalizedSource = normalizeFetchProviderModelsSource(result); if (result && result.models) { const shouldDisplayFetchedModels = - result.source === "Api" && result.models.length > 0; + (normalizedSource === "Api" || + normalizedSource === "Catalog" || + normalizedSource === "CustomModels") && + result.models.length > 0; const nextModels = shouldDisplayFetchedModels ? result.models : []; setApiModels(nextModels); - setApiSource(shouldDisplayFetchedModels ? "Api" : null); + setApiSource(shouldDisplayFetchedModels ? normalizedSource : null); setApiRequestUrl(result.request_url ?? null); setApiDiagnosticHint(result.diagnostic_hint ?? null); setApiShouldPromptError(Boolean(result.should_prompt_error)); @@ -406,7 +423,7 @@ export const ProviderModelList: React.FC = ({ if (shouldDisplayFetchedModels) { providerModelsCache.set(cacheKey, { models: nextModels, - source: "Api", + source: normalizedSource, error: result.error ?? null, requestUrl: result.request_url ?? null, diagnosticHint: result.diagnostic_hint ?? null, @@ -658,7 +675,11 @@ export const ProviderModelList: React.FC = ({ "inline-flex items-center gap-1 rounded-full px-2 py-0.5 text-xs", apiSource === "Api" ? "bg-emerald-100 text-emerald-700" - : "bg-amber-100 text-amber-700", + : apiSource === "Catalog" + ? "bg-sky-100 text-sky-700" + : apiSource === "CustomModels" + ? "bg-violet-100 text-violet-700" + : "bg-amber-100 text-amber-700", )} > {apiSource === "Api" ? ( @@ -666,6 +687,16 @@ export const ProviderModelList: React.FC = ({ API + ) : apiSource === "Catalog" ? ( + <> + + 目录 + + ) : apiSource === "CustomModels" ? ( + <> + + 自定义 + ) : ( <> @@ -677,7 +708,11 @@ export const ProviderModelList: React.FC = ({ {apiSource === "Api" ? "数据来自 Provider API" - : "API 获取失败,使用本地数据"} + : apiSource === "Catalog" + ? "数据来自厂商目录" + : apiSource === "CustomModels" + ? "数据来自当前 Provider 已配置的自定义模型" + : "API 获取失败,使用本地数据"} diff --git a/src/components/provider-pool/api-key/ProviderSetting.tsx b/src/components/provider-pool/api-key/ProviderSetting.tsx index 14c46a384..0fe247a49 100644 --- a/src/components/provider-pool/api-key/ProviderSetting.tsx +++ b/src/components/provider-pool/api-key/ProviderSetting.tsx @@ -215,25 +215,40 @@ export const ProviderSetting: React.FC = ({ const requiresLiveModelTruth = modelAutoFetchCapability.supported; const hasRequiredApiAccess = !modelAutoFetchCapability.requiresApiKey || enabledApiKeyCount > 0; + const usesAnthropicProtocol = ["anthropic", "anthropic-compatible"].includes( + (provider.type || "").trim().toLowerCase(), + ); + const savedDefaultModelId = + draftCustomModels.find((model) => model.trim().length > 0)?.trim() ?? null; const hasResolvedLiveModelDirectory = !requiresLiveModelTruth || Boolean(recommendedLatestModelId); + const canTestWithSavedDefaultModel = + requiresLiveModelTruth && + usesAnthropicProtocol && + Boolean(savedDefaultModelId); const showVerifiedModelState = - !requiresLiveModelTruth || hasResolvedLiveModelDirectory; + !requiresLiveModelTruth || + hasResolvedLiveModelDirectory || + canTestWithSavedDefaultModel; const defaultModel = showVerifiedModelState - ? (draftCustomModels[0] ?? recommendedLatestModelId ?? null) + ? (savedDefaultModelId ?? recommendedLatestModelId ?? null) : null; const connectionReady = - provider.enabled && hasRequiredApiAccess && hasResolvedLiveModelDirectory; + provider.enabled && + hasRequiredApiAccess && + (hasResolvedLiveModelDirectory || canTestWithSavedDefaultModel); const connectionBlockHint = !provider.enabled ? "请先启用当前 Provider,再进行连通性验证。" : !hasRequiredApiAccess ? "先添加并启用至少一把 API Key,再进行连通性验证。" - : !hasResolvedLiveModelDirectory + : !hasResolvedLiveModelDirectory && !canTestWithSavedDefaultModel ? "先读取真实模型目录,再进行连接测试与默认模型验证。" : null; const modelStatusNotice = !hasRequiredApiAccess ? "先添加并启用 API Key,才能读取真实模型目录。" - : !hasResolvedLiveModelDirectory + : !hasResolvedLiveModelDirectory && canTestWithSavedDefaultModel + ? "已保存默认模型,可先用于连接验证;读取真实模型目录后,页面会继续校正推荐模型。" + : !hasResolvedLiveModelDirectory ? "读取真实模型目录前,不展示旧模型,避免把历史缓存误认为当前可用模型。" : null; const showExplicitPromptCacheBadge = diff --git a/src/components/provider-pool/api-key/ProviderSetting.ui.test.tsx b/src/components/provider-pool/api-key/ProviderSetting.ui.test.tsx index 2f66656dd..db8eb1305 100644 --- a/src/components/provider-pool/api-key/ProviderSetting.ui.test.tsx +++ b/src/components/provider-pool/api-key/ProviderSetting.ui.test.tsx @@ -17,8 +17,13 @@ vi.mock("./ProviderModelList", () => ({ })); vi.mock("./ConnectionTestButton", () => ({ - ConnectionTestButton: () => ( -
连接测试按钮
+ ConnectionTestButton: (props: { disabled?: boolean }) => ( +
+ 连接测试按钮 +
), })); @@ -217,4 +222,27 @@ describe("ProviderSetting", () => { container.querySelector('[data-testid="provider-prompt-cache-badge"]'), ).toBeNull(); }); + + it("已保存默认模型的 anthropic-compatible Provider 在真实目录未返回时仍应允许连接测试", () => { + const container = renderSetting( + createProvider({ + id: "minimax-anthropic-saved-default", + name: "MiniMax Anthropic", + type: "anthropic-compatible", + api_host: "https://api.minimaxi.com/anthropic", + custom_models: ["MiniMax-M2.7"], + }), + ); + + expect(container.textContent ?? "").toContain("MiniMax-M2.7"); + expect(container.textContent ?? "").toContain("可测试"); + expect(container.textContent ?? "").toContain( + "已保存默认模型,可先用于连接验证", + ); + expect( + container + .querySelector('[data-testid="connection-test-button-stub"]') + ?.getAttribute("data-disabled"), + ).toBe("false"); + }); }); diff --git a/src/components/provider-pool/api-key/providerTypeMapping.test.ts b/src/components/provider-pool/api-key/providerTypeMapping.test.ts index e2b52ae67..28c492ce0 100644 --- a/src/components/provider-pool/api-key/providerTypeMapping.test.ts +++ b/src/components/provider-pool/api-key/providerTypeMapping.test.ts @@ -112,4 +112,15 @@ describe("providerTypeMapping", () => { "explicit_only", ); }); + + it("已知官方 Anthropic 兼容 Host 应优先映射到对应厂商目录", () => { + const resolved = resolveRegistryProviderId("custom-minimax-provider", { + providerType: "anthropic-compatible", + apiHost: "https://api.minimaxi.com/anthropic", + catalogAliasMap: null, + validRegistryProviders: ["anthropic", "minimax"], + }); + + expect(resolved).toBe("minimax"); + }); }); diff --git a/src/components/provider-pool/api-key/providerTypeMapping.ts b/src/components/provider-pool/api-key/providerTypeMapping.ts index 0f9cfaae7..c9acb119d 100644 --- a/src/components/provider-pool/api-key/providerTypeMapping.ts +++ b/src/components/provider-pool/api-key/providerTypeMapping.ts @@ -13,6 +13,7 @@ */ import type { SystemProviderCatalogItem } from "@/lib/api/apiKeyProvider"; +import { resolveKnownAnthropicCompatibleProvider } from "@/lib/model/providerPromptCacheSupport"; /** * 兼容旧版本/历史配置的 Provider ID 别名映射。 @@ -45,11 +46,11 @@ const LEGACY_PROVIDER_ID_TO_REGISTRY_ID: Record = { * 注意: * - 这里只负责把 Provider 类型归一到模型注册表 provider_id; * - 该映射不能用于推断 Prompt Cache、工具能力等运行时语义; - * - 例如 `anthropic-compatible -> anthropic` 只表示模型目录复用,不等于官方 Anthropic 自动缓存能力。 + * - 已知官方 Anthropic 兼容 Host 必须优先映射到对应厂商目录。 */ const PROVIDER_TYPE_TO_REGISTRY_ID: Record = { anthropic: "anthropic", - "anthropic-compatible": "anthropic", // 仅复用 Anthropic 模型目录 + "anthropic-compatible": "anthropic", openai: "openai", "openai-response": "openai", codex: "codex", @@ -65,6 +66,7 @@ const PROVIDER_TYPE_TO_REGISTRY_ID: Record = { export interface ResolveRegistryProviderOptions { providerType?: string; + apiHost?: string; /** 后端 Catalog 别名映射(legacy_id -> canonical_id) */ catalogAliasMap?: Record | null; /** 模型注册表中实际存在的 provider_id 集合 */ @@ -134,7 +136,15 @@ function tryResolveFromProviderId(providerId: string): string | undefined { ); } -function tryResolveFromProviderType(providerType?: string): string | undefined { +function tryResolveFromProviderType( + providerType?: string, + apiHost?: string, +): string | undefined { + const managedProvider = resolveKnownAnthropicCompatibleProvider(apiHost); + if (managedProvider) { + return managedProvider; + } + if (!providerType) { return undefined; } @@ -152,7 +162,7 @@ function buildDefaultCandidates( options.catalogAliasMap?.[lowerProviderId], tryResolveFromProviderId(normalizedId), tryResolveFromProviderId(lowerProviderId), - tryResolveFromProviderType(options.providerType), + tryResolveFromProviderType(options.providerType, options.apiHost), normalizedId, ]); } @@ -169,7 +179,7 @@ function buildValidationCandidates( tryResolveFromProviderId(normalizedId), tryResolveFromProviderId(lowerProviderId), normalizedId, - tryResolveFromProviderType(options.providerType), + tryResolveFromProviderType(options.providerType, options.apiHost), ]); } @@ -200,6 +210,7 @@ export function resolveRegistryProviderId( const defaultCandidates = buildDefaultCandidates(normalizedId, { providerType, + apiHost: options.apiHost, catalogAliasMap, }); @@ -207,6 +218,7 @@ export function resolveRegistryProviderId( const validSet = toLowerSet(validRegistryProviders); const validationCandidates = buildValidationCandidates(normalizedId, { providerType, + apiHost: options.apiHost, catalogAliasMap, }); diff --git a/src/components/resources/ResourcesImageWorkbench.tsx b/src/components/resources/ResourcesImageWorkbench.tsx index d6a69a2dd..ded58b603 100644 --- a/src/components/resources/ResourcesImageWorkbench.tsx +++ b/src/components/resources/ResourcesImageWorkbench.tsx @@ -328,5 +328,3 @@ export function ResourcesImageWorkbench({ ); } - -export default ResourcesImageWorkbench; diff --git a/src/components/resources/ResourcesPage.tsx b/src/components/resources/ResourcesPage.tsx index 7d934bfa3..0afb45916 100644 --- a/src/components/resources/ResourcesPage.tsx +++ b/src/components/resources/ResourcesPage.tsx @@ -1598,5 +1598,3 @@ export function ResourcesPage({ onNavigate }: ResourcesPageProps) { ); } - -export default ResourcesPage; diff --git a/src/components/sceneapps/SceneAppDetailPanel.tsx b/src/components/sceneapps/SceneAppDetailPanel.tsx new file mode 100644 index 000000000..4d68a57f8 --- /dev/null +++ b/src/components/sceneapps/SceneAppDetailPanel.tsx @@ -0,0 +1,331 @@ +import { + type SceneAppDetailViewModel, +} from "@/lib/sceneapp"; +import { ProjectSelector } from "@/components/projects/ProjectSelector"; +import { Button } from "@/components/ui/button"; +import { Textarea } from "@/components/ui/textarea"; +import { cn } from "@/lib/utils"; + +interface SceneAppDetailPanelProps { + detailView: SceneAppDetailViewModel | null; + projectId: string | null; + launchInput: string; + launchDisabledReason?: string; + launching: boolean; + onProjectChange: (projectId: string) => void; + onLaunchInputChange: (value: string) => void; + onLaunch: () => void; +} + +export function SceneAppDetailPanel({ + detailView, + projectId, + launchInput, + launchDisabledReason, + launching, + onProjectChange, + onLaunchInputChange, + onLaunch, +}: SceneAppDetailPanelProps) { + if (!detailView) { + return ( +
+ 先回到场景目录选择一个 SceneApp,再补齐启动意图和项目工作区。 +
+ ); + } + + return ( +
+
+
+
+
+ {detailView.businessLabel} +
+

+ {detailView.title} +

+

+ {detailView.summary} +

+
+ +
+ + {detailView.typeLabel} + + + {detailView.deliveryContractLabel} + +
+
+ +
+
+ {detailView.valueStatement} +
+
+
+ 产出: + {detailView.outputHint} +
+
+ 执行主链: + {detailView.executionChainLabel} +
+
+ 来源包: + {detailView.sourcePackageId} +
+
+ 版本: + {detailView.sourcePackageVersion} +
+
+
+ +
+
+
设计模式
+
+ {detailView.patternLabels.map((patternLabel) => ( + + {patternLabel} + + ))} +
+
+ +
+
启动前置
+ {detailView.launchRequirements.length === 0 ? ( +

+ 这个 SceneApp 没有额外前置条件,可以直接启动。 +

+ ) : ( +
+ {detailView.launchRequirements.map((message, index) => ( +
+ {message} +
+ ))} +
+ )} +
+
+ +
+
+
交付合同
+

+ {detailView.deliveryNarrative} +

+
+
+ 主结果: + {detailView.outputHint} +
+ {detailView.deliveryPrimaryPart ? ( +
+ 默认主件: + {detailView.deliveryPrimaryPart} +
+ ) : null} + {detailView.deliveryViewerLabel ? ( +
+ 查看方式: + {detailView.deliveryViewerLabel} +
+ ) : null} + {detailView.artifactProfileRef ? ( +
+ Artifact: + {detailView.artifactProfileRef} +
+ ) : null} +
+ {detailView.deliveryRequiredParts.length ? ( +
+ {detailView.deliveryRequiredParts.map((part) => ( + + {part.label} + + ))} +
+ ) : ( +

+ 当前还没有显式声明必含交付部件,后续需要继续补齐。 +

+ )} +
+ +
+
组合步骤
+ {detailView.compositionBlueprintRef ? ( +
+
+ 蓝图: + {detailView.compositionBlueprintRef} +
+
+ 阶段数: + {detailView.compositionStepCount} +
+ {detailView.compositionSteps.length ? ( +
+ {detailView.compositionSteps.map((step) => ( +
+
+ {step.title} +
+ {step.bindingLabel ? ( +
+ 执行面:{step.bindingLabel} +
+ ) : null} +
+ ))} +
+ ) : null} +
+ ) : ( +

+ 当前 SceneApp 还没有显式组合蓝图,继续按单阶段 binding 运行。 +

+ )} +
+ +
+
评分口径
+

+ {detailView.scorecardNarrative} +

+ {detailView.scorecardProfileRef ? ( +
+ Profile: + {detailView.scorecardProfileRef} +
+ ) : null} + {detailView.scorecardMetricKeys.length ? ( +
+ {detailView.scorecardMetricKeys.map((metric) => ( + + {metric.label} + + ))} +
+ ) : ( +

+ 当前 profile 还没有显式暴露指标键,后续会继续和真实评分聚合对齐。 +

+ )} + {detailView.scorecardFailureSignals.length ? ( +
+
+ 重点关注 +
+
+ {detailView.scorecardFailureSignals.map((signal) => ( + + {signal.label} + + ))} +
+
+ ) : null} +
+
+ +
+
启动输入
+

+ 这一步只负责补齐场景意图,真正执行仍继续复用 Agent 或自动化主链。 +

+ +
+
+ 项目工作区 +
+ +
+ +
+
+ 启动意图 +
+