rtrt-agent 0.2.0 → 0.2.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.ko.md +183 -30
- package/README.md +190 -29
- package/THIRD_PARTY_NOTICES/INDEX.md +98 -9
- package/THIRD_PARTY_NOTICES/INVENTORY.json +8151 -0
- package/THIRD_PARTY_NOTICES/SUPPLEMENTS.json +148 -0
- package/THIRD_PARTY_NOTICES/adler2@2.0.1/LICENSE-0BSD +12 -0
- package/THIRD_PARTY_NOTICES/adler2@2.0.1/LICENSE-APACHE +201 -0
- package/THIRD_PARTY_NOTICES/adler2@2.0.1/LICENSE-MIT +23 -0
- package/THIRD_PARTY_NOTICES/ahash@0.8.12/LICENSE-APACHE +201 -0
- package/THIRD_PARTY_NOTICES/ahash@0.8.12/LICENSE-MIT +25 -0
- package/THIRD_PARTY_NOTICES/aho-corasick@1.1.4/COPYING +3 -0
- package/THIRD_PARTY_NOTICES/aho-corasick@1.1.4/LICENSE-MIT +21 -0
- package/THIRD_PARTY_NOTICES/allocator-api2@0.2.21/LICENSE-APACHE +176 -0
- package/THIRD_PARTY_NOTICES/allocator-api2@0.2.21/LICENSE-MIT +23 -0
- package/THIRD_PARTY_NOTICES/anstream@1.0.0/LICENSE-APACHE +202 -0
- package/THIRD_PARTY_NOTICES/anstream@1.0.0/LICENSE-MIT +19 -0
- package/THIRD_PARTY_NOTICES/anstyle-parse@1.0.0/LICENSE-APACHE +202 -0
- package/THIRD_PARTY_NOTICES/anstyle-parse@1.0.0/LICENSE-MIT +19 -0
- package/THIRD_PARTY_NOTICES/anstyle-query@1.1.5/LICENSE-APACHE +202 -0
- package/THIRD_PARTY_NOTICES/anstyle-query@1.1.5/LICENSE-MIT +19 -0
- package/THIRD_PARTY_NOTICES/anstyle-wincon@3.0.11/LICENSE-APACHE +202 -0
- package/THIRD_PARTY_NOTICES/anstyle-wincon@3.0.11/LICENSE-MIT +19 -0
- package/THIRD_PARTY_NOTICES/anstyle@1.0.14/LICENSE-APACHE +202 -0
- package/THIRD_PARTY_NOTICES/anstyle@1.0.14/LICENSE-MIT +19 -0
- package/THIRD_PARTY_NOTICES/anyhow@1.0.103/LICENSE-APACHE +176 -0
- package/THIRD_PARTY_NOTICES/anyhow@1.0.103/LICENSE-MIT +23 -0
- package/THIRD_PARTY_NOTICES/async-compression@0.4.42/LICENSE-APACHE +201 -0
- package/THIRD_PARTY_NOTICES/async-compression@0.4.42/LICENSE-MIT +21 -0
- package/THIRD_PARTY_NOTICES/async-trait@0.1.92/LICENSE-APACHE +176 -0
- package/THIRD_PARTY_NOTICES/async-trait@0.1.92/LICENSE-MIT +23 -0
- package/THIRD_PARTY_NOTICES/atomic-waker@1.1.2/LICENSE-APACHE +201 -0
- package/THIRD_PARTY_NOTICES/atomic-waker@1.1.2/LICENSE-MIT +23 -0
- package/THIRD_PARTY_NOTICES/atomic-waker@1.1.2/LICENSE-THIRD-PARTY +45 -0
- package/THIRD_PARTY_NOTICES/autocfg@1.5.0/LICENSE-APACHE +201 -0
- package/THIRD_PARTY_NOTICES/autocfg@1.5.0/LICENSE-MIT +25 -0
- package/THIRD_PARTY_NOTICES/axum-core@0.5.6/LICENSE +27 -0
- package/THIRD_PARTY_NOTICES/axum-macros@0.5.1/LICENSE +7 -0
- package/THIRD_PARTY_NOTICES/axum@0.8.9/LICENSE +25 -0
- package/THIRD_PARTY_NOTICES/base64@0.22.1/LICENSE-APACHE +201 -0
- package/THIRD_PARTY_NOTICES/base64@0.22.1/LICENSE-MIT +21 -0
- package/THIRD_PARTY_NOTICES/bitflags@2.11.1/LICENSE-APACHE +201 -0
- package/THIRD_PARTY_NOTICES/bitflags@2.11.1/LICENSE-MIT +25 -0
- package/THIRD_PARTY_NOTICES/block-buffer@0.10.4/LICENSE-APACHE +201 -0
- package/THIRD_PARTY_NOTICES/block-buffer@0.10.4/LICENSE-MIT +25 -0
- package/THIRD_PARTY_NOTICES/bytes@1.11.1/LICENSE +25 -0
- package/THIRD_PARTY_NOTICES/cc@1.2.62/LICENSE-APACHE +201 -0
- package/THIRD_PARTY_NOTICES/cc@1.2.62/LICENSE-MIT +25 -0
- package/THIRD_PARTY_NOTICES/cfg-if@1.0.4/LICENSE-APACHE +201 -0
- package/THIRD_PARTY_NOTICES/cfg-if@1.0.4/LICENSE-MIT +25 -0
- package/THIRD_PARTY_NOTICES/chacha20@0.10.2/LICENSE-APACHE +201 -0
- package/THIRD_PARTY_NOTICES/chacha20@0.10.2/LICENSE-MIT +25 -0
- package/THIRD_PARTY_NOTICES/chrono@0.4.44/LICENSE.txt +240 -0
- package/THIRD_PARTY_NOTICES/clap@4.6.1/LICENSE-APACHE +202 -0
- package/THIRD_PARTY_NOTICES/clap@4.6.1/LICENSE-MIT +19 -0
- package/THIRD_PARTY_NOTICES/clap_builder@4.6.0/LICENSE-APACHE +202 -0
- package/THIRD_PARTY_NOTICES/clap_builder@4.6.0/LICENSE-MIT +19 -0
- package/THIRD_PARTY_NOTICES/clap_derive@4.6.1/LICENSE-APACHE +202 -0
- package/THIRD_PARTY_NOTICES/clap_derive@4.6.1/LICENSE-MIT +19 -0
- package/THIRD_PARTY_NOTICES/clap_lex@1.1.0/LICENSE-APACHE +202 -0
- package/THIRD_PARTY_NOTICES/clap_lex@1.1.0/LICENSE-MIT +19 -0
- package/THIRD_PARTY_NOTICES/colorchoice@1.0.5/LICENSE-APACHE +202 -0
- package/THIRD_PARTY_NOTICES/colorchoice@1.0.5/LICENSE-MIT +19 -0
- package/THIRD_PARTY_NOTICES/compression-codecs@0.4.38/LICENSE-APACHE +201 -0
- package/THIRD_PARTY_NOTICES/compression-codecs@0.4.38/LICENSE-MIT +21 -0
- package/THIRD_PARTY_NOTICES/compression-core@0.4.32/LICENSE-APACHE +201 -0
- package/THIRD_PARTY_NOTICES/compression-core@0.4.32/LICENSE-MIT +21 -0
- package/THIRD_PARTY_NOTICES/cpufeatures@0.2.17/LICENSE-APACHE +201 -0
- package/THIRD_PARTY_NOTICES/cpufeatures@0.2.17/LICENSE-MIT +25 -0
- package/THIRD_PARTY_NOTICES/cpufeatures@0.3.0/LICENSE-APACHE +201 -0
- package/THIRD_PARTY_NOTICES/cpufeatures@0.3.0/LICENSE-MIT +25 -0
- package/THIRD_PARTY_NOTICES/crc32fast@1.5.0/LICENSE-APACHE +202 -0
- package/THIRD_PARTY_NOTICES/crc32fast@1.5.0/LICENSE-MIT +21 -0
- package/THIRD_PARTY_NOTICES/crossbeam-deque@0.8.6/LICENSE-APACHE +201 -0
- package/THIRD_PARTY_NOTICES/crossbeam-deque@0.8.6/LICENSE-MIT +27 -0
- package/THIRD_PARTY_NOTICES/crossbeam-epoch@0.9.20/LICENSE-APACHE +201 -0
- package/THIRD_PARTY_NOTICES/crossbeam-epoch@0.9.20/LICENSE-MIT +27 -0
- package/THIRD_PARTY_NOTICES/crossbeam-utils@0.8.21/LICENSE-APACHE +201 -0
- package/THIRD_PARTY_NOTICES/crossbeam-utils@0.8.21/LICENSE-MIT +27 -0
- package/THIRD_PARTY_NOTICES/crypto-common@0.1.7/LICENSE-APACHE +201 -0
- package/THIRD_PARTY_NOTICES/crypto-common@0.1.7/LICENSE-MIT +25 -0
- package/THIRD_PARTY_NOTICES/darling@0.20.11/LICENSE +21 -0
- package/THIRD_PARTY_NOTICES/darling@0.23.0/LICENSE +21 -0
- package/THIRD_PARTY_NOTICES/darling_core@0.20.11/LICENSE +21 -0
- package/THIRD_PARTY_NOTICES/darling_core@0.23.0/LICENSE +21 -0
- package/THIRD_PARTY_NOTICES/darling_macro@0.20.11/LICENSE +21 -0
- package/THIRD_PARTY_NOTICES/darling_macro@0.23.0/LICENSE +21 -0
- package/THIRD_PARTY_NOTICES/derive_builder@0.20.2/LICENSE-APACHE +202 -0
- package/THIRD_PARTY_NOTICES/derive_builder@0.20.2/LICENSE-MIT +21 -0
- package/THIRD_PARTY_NOTICES/derive_builder_core@0.20.2/LICENSE-APACHE +202 -0
- package/THIRD_PARTY_NOTICES/derive_builder_core@0.20.2/LICENSE-MIT +21 -0
- package/THIRD_PARTY_NOTICES/derive_builder_macro@0.20.2/LICENSE-APACHE +202 -0
- package/THIRD_PARTY_NOTICES/derive_builder_macro@0.20.2/LICENSE-MIT +21 -0
- package/THIRD_PARTY_NOTICES/digest@0.10.7/LICENSE-APACHE +201 -0
- package/THIRD_PARTY_NOTICES/digest@0.10.7/LICENSE-MIT +25 -0
- package/THIRD_PARTY_NOTICES/dirs-sys@0.4.1/LICENSE-APACHE +174 -0
- package/THIRD_PARTY_NOTICES/dirs-sys@0.4.1/LICENSE-MIT +19 -0
- package/THIRD_PARTY_NOTICES/dirs@5.0.1/LICENSE-APACHE +174 -0
- package/THIRD_PARTY_NOTICES/dirs@5.0.1/LICENSE-MIT +19 -0
- package/THIRD_PARTY_NOTICES/displaydoc@0.2.5/LICENSE-APACHE +201 -0
- package/THIRD_PARTY_NOTICES/displaydoc@0.2.5/LICENSE-MIT +23 -0
- package/THIRD_PARTY_NOTICES/dyn-clone@1.0.20/LICENSE-APACHE +176 -0
- package/THIRD_PARTY_NOTICES/dyn-clone@1.0.20/LICENSE-MIT +23 -0
- package/THIRD_PARTY_NOTICES/either@1.16.0/LICENSE-APACHE +201 -0
- package/THIRD_PARTY_NOTICES/either@1.16.0/LICENSE-MIT +25 -0
- package/THIRD_PARTY_NOTICES/equivalent@1.0.2/LICENSE-APACHE +201 -0
- package/THIRD_PARTY_NOTICES/equivalent@1.0.2/LICENSE-MIT +25 -0
- package/THIRD_PARTY_NOTICES/errno@0.3.14/LICENSE-APACHE +201 -0
- package/THIRD_PARTY_NOTICES/errno@0.3.14/LICENSE-MIT +25 -0
- package/THIRD_PARTY_NOTICES/eventsource-stream@0.2.3/Cargo.toml +74 -0
- package/THIRD_PARTY_NOTICES/eventsource-stream@0.2.3/DECLARED-APACHE-2.0.txt +202 -0
- package/THIRD_PARTY_NOTICES/fallible-iterator@0.3.0/LICENSE-APACHE +202 -0
- package/THIRD_PARTY_NOTICES/fallible-iterator@0.3.0/LICENSE-MIT +19 -0
- package/THIRD_PARTY_NOTICES/fallible-streaming-iterator@0.1.9/LICENSE-APACHE +202 -0
- package/THIRD_PARTY_NOTICES/fallible-streaming-iterator@0.1.9/LICENSE-MIT +19 -0
- package/THIRD_PARTY_NOTICES/fastrand@2.4.1/LICENSE-APACHE +201 -0
- package/THIRD_PARTY_NOTICES/fastrand@2.4.1/LICENSE-MIT +23 -0
- package/THIRD_PARTY_NOTICES/find-msvc-tools@0.1.9/LICENSE-APACHE +201 -0
- package/THIRD_PARTY_NOTICES/find-msvc-tools@0.1.9/LICENSE-MIT +25 -0
- package/THIRD_PARTY_NOTICES/flate2@1.1.9/LICENSE-APACHE +201 -0
- package/THIRD_PARTY_NOTICES/flate2@1.1.9/LICENSE-MIT +25 -0
- package/THIRD_PARTY_NOTICES/fnv@1.0.7/LICENSE-APACHE +201 -0
- package/THIRD_PARTY_NOTICES/fnv@1.0.7/LICENSE-MIT +25 -0
- package/THIRD_PARTY_NOTICES/form_urlencoded@1.2.2/LICENSE-APACHE +201 -0
- package/THIRD_PARTY_NOTICES/form_urlencoded@1.2.2/LICENSE-MIT +25 -0
- package/THIRD_PARTY_NOTICES/fs2@0.4.3/LICENSE-APACHE +201 -0
- package/THIRD_PARTY_NOTICES/fs2@0.4.3/LICENSE-MIT +25 -0
- package/THIRD_PARTY_NOTICES/futures-channel@0.3.32/LICENSE-APACHE +202 -0
- package/THIRD_PARTY_NOTICES/futures-channel@0.3.32/LICENSE-MIT +26 -0
- package/THIRD_PARTY_NOTICES/futures-core@0.3.32/LICENSE-APACHE +202 -0
- package/THIRD_PARTY_NOTICES/futures-core@0.3.32/LICENSE-MIT +26 -0
- package/THIRD_PARTY_NOTICES/futures-executor@0.3.32/LICENSE-APACHE +202 -0
- package/THIRD_PARTY_NOTICES/futures-executor@0.3.32/LICENSE-MIT +26 -0
- package/THIRD_PARTY_NOTICES/futures-io@0.3.32/LICENSE-APACHE +202 -0
- package/THIRD_PARTY_NOTICES/futures-io@0.3.32/LICENSE-MIT +26 -0
- package/THIRD_PARTY_NOTICES/futures-macro@0.3.32/LICENSE-APACHE +202 -0
- package/THIRD_PARTY_NOTICES/futures-macro@0.3.32/LICENSE-MIT +26 -0
- package/THIRD_PARTY_NOTICES/futures-sink@0.3.32/LICENSE-APACHE +202 -0
- package/THIRD_PARTY_NOTICES/futures-sink@0.3.32/LICENSE-MIT +26 -0
- package/THIRD_PARTY_NOTICES/futures-task@0.3.32/LICENSE-APACHE +202 -0
- package/THIRD_PARTY_NOTICES/futures-task@0.3.32/LICENSE-MIT +26 -0
- package/THIRD_PARTY_NOTICES/futures-util@0.3.32/LICENSE-APACHE +202 -0
- package/THIRD_PARTY_NOTICES/futures-util@0.3.32/LICENSE-MIT +26 -0
- package/THIRD_PARTY_NOTICES/futures@0.3.32/LICENSE-APACHE +202 -0
- package/THIRD_PARTY_NOTICES/futures@0.3.32/LICENSE-MIT +26 -0
- package/THIRD_PARTY_NOTICES/generic-array@0.14.7/LICENSE +21 -0
- package/THIRD_PARTY_NOTICES/getrandom@0.2.17/LICENSE-APACHE +201 -0
- package/THIRD_PARTY_NOTICES/getrandom@0.2.17/LICENSE-MIT +26 -0
- package/THIRD_PARTY_NOTICES/getrandom@0.3.4/LICENSE-APACHE +201 -0
- package/THIRD_PARTY_NOTICES/getrandom@0.3.4/LICENSE-MIT +26 -0
- package/THIRD_PARTY_NOTICES/getrandom@0.4.2/LICENSE-APACHE +201 -0
- package/THIRD_PARTY_NOTICES/getrandom@0.4.2/LICENSE-MIT +26 -0
- package/THIRD_PARTY_NOTICES/handlebars@6.4.1/LICENSE +22 -0
- package/THIRD_PARTY_NOTICES/handlebars@6.4.1/wasm/LICENSE +22 -0
- package/THIRD_PARTY_NOTICES/hashbrown@0.14.5/LICENSE-APACHE +201 -0
- package/THIRD_PARTY_NOTICES/hashbrown@0.14.5/LICENSE-MIT +25 -0
- package/THIRD_PARTY_NOTICES/hashbrown@0.17.1/LICENSE-APACHE +201 -0
- package/THIRD_PARTY_NOTICES/hashbrown@0.17.1/LICENSE-MIT +25 -0
- package/THIRD_PARTY_NOTICES/hashlink@0.9.1/LICENSE-APACHE +201 -0
- package/THIRD_PARTY_NOTICES/hashlink@0.9.1/LICENSE-MIT +26 -0
- package/THIRD_PARTY_NOTICES/heck@0.5.0/LICENSE-APACHE +201 -0
- package/THIRD_PARTY_NOTICES/heck@0.5.0/LICENSE-MIT +25 -0
- package/THIRD_PARTY_NOTICES/hmac@0.12.1/LICENSE-APACHE +201 -0
- package/THIRD_PARTY_NOTICES/hmac@0.12.1/LICENSE-MIT +25 -0
- package/THIRD_PARTY_NOTICES/http-body-util@0.1.3/LICENSE +25 -0
- package/THIRD_PARTY_NOTICES/http-body@1.0.1/LICENSE +25 -0
- package/THIRD_PARTY_NOTICES/http-range-header@0.4.2/LICENSE +21 -0
- package/THIRD_PARTY_NOTICES/http@1.4.0/LICENSE-APACHE +201 -0
- package/THIRD_PARTY_NOTICES/http@1.4.0/LICENSE-MIT +25 -0
- package/THIRD_PARTY_NOTICES/httparse@1.10.1/LICENSE-APACHE +201 -0
- package/THIRD_PARTY_NOTICES/httparse@1.10.1/LICENSE-MIT +20 -0
- package/THIRD_PARTY_NOTICES/httpdate@1.0.3/LICENSE-APACHE +201 -0
- package/THIRD_PARTY_NOTICES/httpdate@1.0.3/LICENSE-MIT +19 -0
- package/THIRD_PARTY_NOTICES/hyper-rustls@0.27.9/LICENSE-APACHE +201 -0
- package/THIRD_PARTY_NOTICES/hyper-rustls@0.27.9/LICENSE-ISC +15 -0
- package/THIRD_PARTY_NOTICES/hyper-rustls@0.27.9/LICENSE-MIT +25 -0
- package/THIRD_PARTY_NOTICES/hyper-util@0.1.20/LICENSE +19 -0
- package/THIRD_PARTY_NOTICES/hyper@1.9.0/LICENSE +19 -0
- package/THIRD_PARTY_NOTICES/icu_collections@2.1.1/LICENSE +46 -0
- package/THIRD_PARTY_NOTICES/icu_locale_core@2.1.1/LICENSE +46 -0
- package/THIRD_PARTY_NOTICES/icu_normalizer@2.1.1/LICENSE +46 -0
- package/THIRD_PARTY_NOTICES/icu_normalizer_data@2.1.1/LICENSE +46 -0
- package/THIRD_PARTY_NOTICES/icu_properties@2.1.2/LICENSE +46 -0
- package/THIRD_PARTY_NOTICES/icu_properties_data@2.1.2/LICENSE +46 -0
- package/THIRD_PARTY_NOTICES/icu_provider@2.1.1/LICENSE +46 -0
- package/THIRD_PARTY_NOTICES/ident_case@1.0.1/LICENSE +19 -0
- package/THIRD_PARTY_NOTICES/idna@1.1.0/LICENSE-APACHE +201 -0
- package/THIRD_PARTY_NOTICES/idna@1.1.0/LICENSE-MIT +25 -0
- package/THIRD_PARTY_NOTICES/idna_adapter@1.2.1/LICENSE-APACHE +201 -0
- package/THIRD_PARTY_NOTICES/idna_adapter@1.2.1/LICENSE-MIT +25 -0
- package/THIRD_PARTY_NOTICES/indexmap@2.14.0/LICENSE-APACHE +201 -0
- package/THIRD_PARTY_NOTICES/indexmap@2.14.0/LICENSE-MIT +25 -0
- package/THIRD_PARTY_NOTICES/instant-distance@0.6.1/Cargo.toml +65 -0
- package/THIRD_PARTY_NOTICES/instant-distance@0.6.1/LICENSE +201 -0
- package/THIRD_PARTY_NOTICES/ipnet@2.12.0/LICENSE-APACHE +201 -0
- package/THIRD_PARTY_NOTICES/ipnet@2.12.0/LICENSE-MIT +7 -0
- package/THIRD_PARTY_NOTICES/is_terminal_polyfill@1.70.2/LICENSE-APACHE +202 -0
- package/THIRD_PARTY_NOTICES/is_terminal_polyfill@1.70.2/LICENSE-MIT +19 -0
- package/THIRD_PARTY_NOTICES/itoa@1.0.18/LICENSE-APACHE +176 -0
- package/THIRD_PARTY_NOTICES/itoa@1.0.18/LICENSE-MIT +23 -0
- package/THIRD_PARTY_NOTICES/layout-base@2.0.1/JamaJS-APACHE.txt +210 -0
- package/THIRD_PARTY_NOTICES/lazy_static@1.5.0/LICENSE-APACHE +201 -0
- package/THIRD_PARTY_NOTICES/lazy_static@1.5.0/LICENSE-MIT +25 -0
- package/THIRD_PARTY_NOTICES/libc@0.2.186/LICENSE-APACHE +176 -0
- package/THIRD_PARTY_NOTICES/libc@0.2.186/LICENSE-MIT +25 -0
- package/THIRD_PARTY_NOTICES/libsqlite3-sys@0.30.1/LICENSE +19 -0
- package/THIRD_PARTY_NOTICES/libsqlite3-sys@0.30.1/sqlcipher/LICENSE +24 -0
- package/THIRD_PARTY_NOTICES/linux-raw-sys@0.12.1/COPYRIGHT +29 -0
- package/THIRD_PARTY_NOTICES/linux-raw-sys@0.12.1/LICENSE-APACHE +201 -0
- package/THIRD_PARTY_NOTICES/linux-raw-sys@0.12.1/LICENSE-Apache-2.0_WITH_LLVM-exception +220 -0
- package/THIRD_PARTY_NOTICES/linux-raw-sys@0.12.1/LICENSE-MIT +23 -0
- package/THIRD_PARTY_NOTICES/litemap@0.8.2/LICENSE +46 -0
- package/THIRD_PARTY_NOTICES/lock_api@0.4.14/LICENSE-APACHE +201 -0
- package/THIRD_PARTY_NOTICES/lock_api@0.4.14/LICENSE-MIT +25 -0
- package/THIRD_PARTY_NOTICES/log@0.4.29/LICENSE-APACHE +201 -0
- package/THIRD_PARTY_NOTICES/log@0.4.29/LICENSE-MIT +25 -0
- package/THIRD_PARTY_NOTICES/matchers@0.2.0/LICENSE +19 -0
- package/THIRD_PARTY_NOTICES/matchit@0.8.4/LICENSE +21 -0
- package/THIRD_PARTY_NOTICES/matchit@0.8.4/LICENSE.httprouter +29 -0
- package/THIRD_PARTY_NOTICES/memchr@2.8.0/COPYING +3 -0
- package/THIRD_PARTY_NOTICES/memchr@2.8.0/LICENSE-MIT +21 -0
- package/THIRD_PARTY_NOTICES/mime@0.3.17/LICENSE-APACHE +201 -0
- package/THIRD_PARTY_NOTICES/mime@0.3.17/LICENSE-MIT +20 -0
- package/THIRD_PARTY_NOTICES/mime_guess@2.0.5/LICENSE +22 -0
- package/THIRD_PARTY_NOTICES/minimal-lexical@0.2.1/LICENSE-APACHE +201 -0
- package/THIRD_PARTY_NOTICES/minimal-lexical@0.2.1/LICENSE-MIT +23 -0
- package/THIRD_PARTY_NOTICES/minimal-lexical@0.2.1/LICENSE.md +37 -0
- package/THIRD_PARTY_NOTICES/miniz_oxide@0.8.9/LICENSE +25 -0
- package/THIRD_PARTY_NOTICES/miniz_oxide@0.8.9/LICENSE-APACHE.md +177 -0
- package/THIRD_PARTY_NOTICES/miniz_oxide@0.8.9/LICENSE-MIT.md +24 -0
- package/THIRD_PARTY_NOTICES/miniz_oxide@0.8.9/LICENSE-ZLIB.md +14 -0
- package/THIRD_PARTY_NOTICES/mio@1.2.0/LICENSE +19 -0
- package/THIRD_PARTY_NOTICES/nom@7.1.3/LICENSE +20 -0
- package/THIRD_PARTY_NOTICES/nu-ansi-term@0.50.3/LICENSE +22 -0
- package/THIRD_PARTY_NOTICES/num-modular@0.6.1/LICENSE +201 -0
- package/THIRD_PARTY_NOTICES/num-order@1.2.0/LICENSE +201 -0
- package/THIRD_PARTY_NOTICES/num-traits@0.2.19/LICENSE-APACHE +201 -0
- package/THIRD_PARTY_NOTICES/num-traits@0.2.19/LICENSE-MIT +25 -0
- package/THIRD_PARTY_NOTICES/num_cpus@1.17.0/LICENSE-APACHE +201 -0
- package/THIRD_PARTY_NOTICES/num_cpus@1.17.0/LICENSE-MIT +20 -0
- package/THIRD_PARTY_NOTICES/once_cell@1.21.4/LICENSE-APACHE +201 -0
- package/THIRD_PARTY_NOTICES/once_cell@1.21.4/LICENSE-MIT +23 -0
- package/THIRD_PARTY_NOTICES/once_cell_polyfill@1.70.2/LICENSE-APACHE +202 -0
- package/THIRD_PARTY_NOTICES/once_cell_polyfill@1.70.2/LICENSE-MIT +19 -0
- package/THIRD_PARTY_NOTICES/ordered-float@3.9.2/LICENSE-MIT +25 -0
- package/THIRD_PARTY_NOTICES/parking_lot@0.12.5/LICENSE-APACHE +201 -0
- package/THIRD_PARTY_NOTICES/parking_lot@0.12.5/LICENSE-MIT +25 -0
- package/THIRD_PARTY_NOTICES/parking_lot_core@0.9.12/LICENSE-APACHE +201 -0
- package/THIRD_PARTY_NOTICES/parking_lot_core@0.9.12/LICENSE-MIT +25 -0
- package/THIRD_PARTY_NOTICES/pastey@0.2.3/LICENSE-APACHE +176 -0
- package/THIRD_PARTY_NOTICES/pastey@0.2.3/LICENSE-MIT +23 -0
- package/THIRD_PARTY_NOTICES/percent-encoding@2.3.2/LICENSE-APACHE +201 -0
- package/THIRD_PARTY_NOTICES/percent-encoding@2.3.2/LICENSE-MIT +25 -0
- package/THIRD_PARTY_NOTICES/pest@2.8.6/LICENSE-APACHE +201 -0
- package/THIRD_PARTY_NOTICES/pest@2.8.6/LICENSE-MIT +23 -0
- package/THIRD_PARTY_NOTICES/pest_derive@2.8.6/LICENSE-APACHE +201 -0
- package/THIRD_PARTY_NOTICES/pest_derive@2.8.6/LICENSE-MIT +23 -0
- package/THIRD_PARTY_NOTICES/pest_generator@2.8.6/LICENSE-APACHE +201 -0
- package/THIRD_PARTY_NOTICES/pest_generator@2.8.6/LICENSE-MIT +23 -0
- package/THIRD_PARTY_NOTICES/pest_meta@2.8.6/LICENSE-APACHE +201 -0
- package/THIRD_PARTY_NOTICES/pest_meta@2.8.6/LICENSE-MIT +23 -0
- package/THIRD_PARTY_NOTICES/pin-project-lite@0.2.17/LICENSE-APACHE +177 -0
- package/THIRD_PARTY_NOTICES/pin-project-lite@0.2.17/LICENSE-MIT +23 -0
- package/THIRD_PARTY_NOTICES/pkg-config@0.3.33/LICENSE-APACHE +201 -0
- package/THIRD_PARTY_NOTICES/pkg-config@0.3.33/LICENSE-MIT +25 -0
- package/THIRD_PARTY_NOTICES/potential_utf@0.1.5/LICENSE +46 -0
- package/THIRD_PARTY_NOTICES/ppv-lite86@0.2.21/LICENSE-APACHE +201 -0
- package/THIRD_PARTY_NOTICES/ppv-lite86@0.2.21/LICENSE-MIT +25 -0
- package/THIRD_PARTY_NOTICES/proc-macro2@1.0.106/LICENSE-APACHE +176 -0
- package/THIRD_PARTY_NOTICES/proc-macro2@1.0.106/LICENSE-MIT +23 -0
- package/THIRD_PARTY_NOTICES/quote@1.0.45/LICENSE-APACHE +176 -0
- package/THIRD_PARTY_NOTICES/quote@1.0.45/LICENSE-MIT +23 -0
- package/THIRD_PARTY_NOTICES/rand@0.10.1/COPYRIGHT +12 -0
- package/THIRD_PARTY_NOTICES/rand@0.10.1/LICENSE-APACHE +176 -0
- package/THIRD_PARTY_NOTICES/rand@0.10.1/LICENSE-MIT +26 -0
- package/THIRD_PARTY_NOTICES/rand@0.8.6/COPYRIGHT +12 -0
- package/THIRD_PARTY_NOTICES/rand@0.8.6/LICENSE-APACHE +176 -0
- package/THIRD_PARTY_NOTICES/rand@0.8.6/LICENSE-MIT +26 -0
- package/THIRD_PARTY_NOTICES/rand_chacha@0.3.1/COPYRIGHT +12 -0
- package/THIRD_PARTY_NOTICES/rand_chacha@0.3.1/LICENSE-APACHE +201 -0
- package/THIRD_PARTY_NOTICES/rand_chacha@0.3.1/LICENSE-MIT +26 -0
- package/THIRD_PARTY_NOTICES/rand_core@0.10.1/COPYRIGHT +9 -0
- package/THIRD_PARTY_NOTICES/rand_core@0.10.1/LICENSE-APACHE +187 -0
- package/THIRD_PARTY_NOTICES/rand_core@0.10.1/LICENSE-MIT +25 -0
- package/THIRD_PARTY_NOTICES/rand_core@0.6.4/COPYRIGHT +12 -0
- package/THIRD_PARTY_NOTICES/rand_core@0.6.4/LICENSE-APACHE +187 -0
- package/THIRD_PARTY_NOTICES/rand_core@0.6.4/LICENSE-MIT +26 -0
- package/THIRD_PARTY_NOTICES/rayon-core@1.13.0/LICENSE-APACHE +201 -0
- package/THIRD_PARTY_NOTICES/rayon-core@1.13.0/LICENSE-MIT +25 -0
- package/THIRD_PARTY_NOTICES/rayon@1.12.0/LICENSE-APACHE +201 -0
- package/THIRD_PARTY_NOTICES/rayon@1.12.0/LICENSE-MIT +25 -0
- package/THIRD_PARTY_NOTICES/ref-cast-impl@1.0.25/LICENSE-APACHE +176 -0
- package/THIRD_PARTY_NOTICES/ref-cast-impl@1.0.25/LICENSE-MIT +23 -0
- package/THIRD_PARTY_NOTICES/ref-cast@1.0.25/LICENSE-APACHE +176 -0
- package/THIRD_PARTY_NOTICES/ref-cast@1.0.25/LICENSE-MIT +23 -0
- package/THIRD_PARTY_NOTICES/regex-automata@0.4.14/LICENSE-APACHE +201 -0
- package/THIRD_PARTY_NOTICES/regex-automata@0.4.14/LICENSE-MIT +25 -0
- package/THIRD_PARTY_NOTICES/regex-syntax@0.8.10/LICENSE-APACHE +201 -0
- package/THIRD_PARTY_NOTICES/regex-syntax@0.8.10/LICENSE-MIT +25 -0
- package/THIRD_PARTY_NOTICES/regex-syntax@0.8.10/src/unicode_tables/LICENSE-UNICODE +57 -0
- package/THIRD_PARTY_NOTICES/regex@1.12.3/LICENSE-APACHE +201 -0
- package/THIRD_PARTY_NOTICES/regex@1.12.3/LICENSE-MIT +25 -0
- package/THIRD_PARTY_NOTICES/reqwest@0.12.28/LICENSE-APACHE +201 -0
- package/THIRD_PARTY_NOTICES/reqwest@0.12.28/LICENSE-MIT +20 -0
- package/THIRD_PARTY_NOTICES/rmcp-macros@1.7.0/Cargo.toml +54 -0
- package/THIRD_PARTY_NOTICES/rmcp-macros@1.7.0/LICENSE +216 -0
- package/THIRD_PARTY_NOTICES/rmcp@1.7.0/Cargo.toml +683 -0
- package/THIRD_PARTY_NOTICES/rmcp@1.7.0/LICENSE +216 -0
- package/THIRD_PARTY_NOTICES/rusqlite@0.32.1/LICENSE +19 -0
- package/THIRD_PARTY_NOTICES/rustix@1.1.4/COPYRIGHT +29 -0
- package/THIRD_PARTY_NOTICES/rustix@1.1.4/LICENSE-APACHE +201 -0
- package/THIRD_PARTY_NOTICES/rustix@1.1.4/LICENSE-Apache-2.0_WITH_LLVM-exception +220 -0
- package/THIRD_PARTY_NOTICES/rustix@1.1.4/LICENSE-MIT +23 -0
- package/THIRD_PARTY_NOTICES/rustls-pki-types@1.14.1/LICENSE-APACHE +201 -0
- package/THIRD_PARTY_NOTICES/rustls-pki-types@1.14.1/LICENSE-MIT +25 -0
- package/THIRD_PARTY_NOTICES/rustls-webpki@0.103.15/LICENSE +19 -0
- package/THIRD_PARTY_NOTICES/rustls@0.23.45/LICENSE-APACHE +201 -0
- package/THIRD_PARTY_NOTICES/rustls@0.23.45/LICENSE-ISC +15 -0
- package/THIRD_PARTY_NOTICES/rustls@0.23.45/LICENSE-MIT +25 -0
- package/THIRD_PARTY_NOTICES/ryu@1.0.23/LICENSE-APACHE +176 -0
- package/THIRD_PARTY_NOTICES/ryu@1.0.23/LICENSE-BOOST +23 -0
- package/THIRD_PARTY_NOTICES/same-file@1.0.6/COPYING +3 -0
- package/THIRD_PARTY_NOTICES/same-file@1.0.6/LICENSE-MIT +21 -0
- package/THIRD_PARTY_NOTICES/schemars@0.8.22/LICENSE +21 -0
- package/THIRD_PARTY_NOTICES/schemars@1.2.1/LICENSE +21 -0
- package/THIRD_PARTY_NOTICES/schemars_derive@0.8.22/LICENSE +21 -0
- package/THIRD_PARTY_NOTICES/schemars_derive@1.2.1/LICENSE +21 -0
- package/THIRD_PARTY_NOTICES/scopeguard@1.2.0/LICENSE-APACHE +201 -0
- package/THIRD_PARTY_NOTICES/scopeguard@1.2.0/LICENSE-MIT +25 -0
- package/THIRD_PARTY_NOTICES/serde@1.0.228/LICENSE-APACHE +176 -0
- package/THIRD_PARTY_NOTICES/serde@1.0.228/LICENSE-MIT +23 -0
- package/THIRD_PARTY_NOTICES/serde_core@1.0.228/LICENSE-APACHE +176 -0
- package/THIRD_PARTY_NOTICES/serde_core@1.0.228/LICENSE-MIT +23 -0
- package/THIRD_PARTY_NOTICES/serde_derive@1.0.228/LICENSE-APACHE +176 -0
- package/THIRD_PARTY_NOTICES/serde_derive@1.0.228/LICENSE-MIT +23 -0
- package/THIRD_PARTY_NOTICES/serde_derive_internals@0.29.1/LICENSE-APACHE +176 -0
- package/THIRD_PARTY_NOTICES/serde_derive_internals@0.29.1/LICENSE-MIT +23 -0
- package/THIRD_PARTY_NOTICES/serde_json@1.0.149/LICENSE-APACHE +176 -0
- package/THIRD_PARTY_NOTICES/serde_json@1.0.149/LICENSE-MIT +23 -0
- package/THIRD_PARTY_NOTICES/serde_path_to_error@0.1.20/LICENSE-APACHE +176 -0
- package/THIRD_PARTY_NOTICES/serde_path_to_error@0.1.20/LICENSE-MIT +23 -0
- package/THIRD_PARTY_NOTICES/serde_spanned@0.6.9/LICENSE-APACHE +202 -0
- package/THIRD_PARTY_NOTICES/serde_spanned@0.6.9/LICENSE-MIT +19 -0
- package/THIRD_PARTY_NOTICES/serde_urlencoded@0.7.1/LICENSE-APACHE +176 -0
- package/THIRD_PARTY_NOTICES/serde_urlencoded@0.7.1/LICENSE-MIT +25 -0
- package/THIRD_PARTY_NOTICES/sha2@0.10.9/LICENSE-APACHE +201 -0
- package/THIRD_PARTY_NOTICES/sha2@0.10.9/LICENSE-MIT +27 -0
- package/THIRD_PARTY_NOTICES/sharded-slab@0.1.7/LICENSE +19 -0
- package/THIRD_PARTY_NOTICES/shlex@1.3.0/LICENSE-APACHE +13 -0
- package/THIRD_PARTY_NOTICES/shlex@1.3.0/LICENSE-MIT +21 -0
- package/THIRD_PARTY_NOTICES/signal-hook-registry@1.4.8/LICENSE-APACHE +201 -0
- package/THIRD_PARTY_NOTICES/signal-hook-registry@1.4.8/LICENSE-MIT +25 -0
- package/THIRD_PARTY_NOTICES/simd-adler32@0.3.9/LICENSE.md +21 -0
- package/THIRD_PARTY_NOTICES/slab@0.4.12/LICENSE +25 -0
- package/THIRD_PARTY_NOTICES/smallvec@1.15.1/LICENSE-APACHE +201 -0
- package/THIRD_PARTY_NOTICES/smallvec@1.15.1/LICENSE-MIT +25 -0
- package/THIRD_PARTY_NOTICES/socket2@0.6.3/LICENSE-APACHE +201 -0
- package/THIRD_PARTY_NOTICES/socket2@0.6.3/LICENSE-MIT +25 -0
- package/THIRD_PARTY_NOTICES/sse-stream@0.2.3/Cargo.toml +124 -0
- package/THIRD_PARTY_NOTICES/sse-stream@0.2.3/LICENSE-APACHE +202 -0
- package/THIRD_PARTY_NOTICES/sse-stream@0.2.3/LICENSE-MIT +21 -0
- package/THIRD_PARTY_NOTICES/stable_deref_trait@1.2.1/LICENSE-APACHE +201 -0
- package/THIRD_PARTY_NOTICES/stable_deref_trait@1.2.1/LICENSE-MIT +25 -0
- package/THIRD_PARTY_NOTICES/streaming-iterator@0.1.9/LICENSE-APACHE +202 -0
- package/THIRD_PARTY_NOTICES/streaming-iterator@0.1.9/LICENSE-MIT +19 -0
- package/THIRD_PARTY_NOTICES/strsim@0.11.1/LICENSE +23 -0
- package/THIRD_PARTY_NOTICES/syn@2.0.117/LICENSE-APACHE +176 -0
- package/THIRD_PARTY_NOTICES/syn@2.0.117/LICENSE-MIT +23 -0
- package/THIRD_PARTY_NOTICES/syn@3.0.6/LICENSE-APACHE +176 -0
- package/THIRD_PARTY_NOTICES/syn@3.0.6/LICENSE-MIT +23 -0
- package/THIRD_PARTY_NOTICES/sync_wrapper@1.0.2/LICENSE +177 -0
- package/THIRD_PARTY_NOTICES/synstructure@0.13.2/LICENSE +7 -0
- package/THIRD_PARTY_NOTICES/tempfile@3.27.0/LICENSE-APACHE +201 -0
- package/THIRD_PARTY_NOTICES/tempfile@3.27.0/LICENSE-MIT +25 -0
- package/THIRD_PARTY_NOTICES/thiserror-impl@2.0.18/LICENSE-APACHE +176 -0
- package/THIRD_PARTY_NOTICES/thiserror-impl@2.0.18/LICENSE-MIT +23 -0
- package/THIRD_PARTY_NOTICES/thiserror@2.0.18/LICENSE-APACHE +176 -0
- package/THIRD_PARTY_NOTICES/thiserror@2.0.18/LICENSE-MIT +23 -0
- package/THIRD_PARTY_NOTICES/thread_local@1.1.9/LICENSE-APACHE +201 -0
- package/THIRD_PARTY_NOTICES/thread_local@1.1.9/LICENSE-MIT +25 -0
- package/THIRD_PARTY_NOTICES/tinystr@0.8.3/LICENSE +46 -0
- package/THIRD_PARTY_NOTICES/tokio-macros@2.7.0/LICENSE +22 -0
- package/THIRD_PARTY_NOTICES/tokio-rustls@0.26.4/LICENSE-APACHE +201 -0
- package/THIRD_PARTY_NOTICES/tokio-rustls@0.26.4/LICENSE-MIT +25 -0
- package/THIRD_PARTY_NOTICES/tokio-stream@0.1.18/LICENSE +21 -0
- package/THIRD_PARTY_NOTICES/tokio-util@0.7.18/LICENSE +21 -0
- package/THIRD_PARTY_NOTICES/tokio@1.52.3/LICENSE +21 -0
- package/THIRD_PARTY_NOTICES/toml@0.8.23/LICENSE-APACHE +202 -0
- package/THIRD_PARTY_NOTICES/toml@0.8.23/LICENSE-MIT +19 -0
- package/THIRD_PARTY_NOTICES/toml_datetime@0.6.11/LICENSE-APACHE +202 -0
- package/THIRD_PARTY_NOTICES/toml_datetime@0.6.11/LICENSE-MIT +19 -0
- package/THIRD_PARTY_NOTICES/toml_edit@0.22.27/LICENSE-APACHE +202 -0
- package/THIRD_PARTY_NOTICES/toml_edit@0.22.27/LICENSE-MIT +19 -0
- package/THIRD_PARTY_NOTICES/toml_write@0.1.2/LICENSE-APACHE +202 -0
- package/THIRD_PARTY_NOTICES/toml_write@0.1.2/LICENSE-MIT +19 -0
- package/THIRD_PARTY_NOTICES/tower-http@0.6.11/LICENSE +25 -0
- package/THIRD_PARTY_NOTICES/tower-layer@0.3.3/LICENSE +25 -0
- package/THIRD_PARTY_NOTICES/tower-service@0.3.3/LICENSE +25 -0
- package/THIRD_PARTY_NOTICES/tower@0.5.3/LICENSE +25 -0
- package/THIRD_PARTY_NOTICES/tracing-attributes@0.1.31/LICENSE +25 -0
- package/THIRD_PARTY_NOTICES/tracing-core@0.1.36/LICENSE +25 -0
- package/THIRD_PARTY_NOTICES/tracing-core@0.1.36/src/spin/LICENSE +21 -0
- package/THIRD_PARTY_NOTICES/tracing-log@0.2.0/LICENSE +25 -0
- package/THIRD_PARTY_NOTICES/tracing-subscriber@0.3.23/LICENSE +25 -0
- package/THIRD_PARTY_NOTICES/tracing@0.1.44/LICENSE +25 -0
- package/THIRD_PARTY_NOTICES/tree-sitter-language@0.1.7/LICENSE +21 -0
- package/THIRD_PARTY_NOTICES/tree-sitter-python@0.23.6/Cargo.toml +60 -0
- package/THIRD_PARTY_NOTICES/tree-sitter-python@0.23.6/LICENSE +21 -0
- package/THIRD_PARTY_NOTICES/tree-sitter-rust@0.24.2/LICENSE +21 -0
- package/THIRD_PARTY_NOTICES/tree-sitter-typescript@0.23.2/Cargo.toml +62 -0
- package/THIRD_PARTY_NOTICES/tree-sitter-typescript@0.23.2/LICENSE +21 -0
- package/THIRD_PARTY_NOTICES/tree-sitter@0.26.9/LICENSE +21 -0
- package/THIRD_PARTY_NOTICES/tree-sitter@0.26.9/src/unicode/LICENSE +414 -0
- package/THIRD_PARTY_NOTICES/try-lock@0.2.5/LICENSE +21 -0
- package/THIRD_PARTY_NOTICES/typenum@1.20.0/LICENSE +1 -0
- package/THIRD_PARTY_NOTICES/typenum@1.20.0/LICENSE-APACHE +201 -0
- package/THIRD_PARTY_NOTICES/typenum@1.20.0/LICENSE-MIT +21 -0
- package/THIRD_PARTY_NOTICES/ucd-trie@0.1.7/LICENSE-APACHE +201 -0
- package/THIRD_PARTY_NOTICES/ucd-trie@0.1.7/LICENSE-MIT +21 -0
- package/THIRD_PARTY_NOTICES/unicase@2.9.0/LICENSE-APACHE +201 -0
- package/THIRD_PARTY_NOTICES/unicase@2.9.0/LICENSE-MIT +20 -0
- package/THIRD_PARTY_NOTICES/unicode-ident@1.0.24/LICENSE-APACHE +176 -0
- package/THIRD_PARTY_NOTICES/unicode-ident@1.0.24/LICENSE-MIT +23 -0
- package/THIRD_PARTY_NOTICES/unicode-ident@1.0.24/LICENSE-UNICODE +39 -0
- package/THIRD_PARTY_NOTICES/untrusted@0.9.0/LICENSE.txt +13 -0
- package/THIRD_PARTY_NOTICES/ureq@2.12.1/LICENSE-APACHE +201 -0
- package/THIRD_PARTY_NOTICES/ureq@2.12.1/LICENSE-MIT +21 -0
- package/THIRD_PARTY_NOTICES/ureq@2.12.1/src/chunked/LICENSE-APACHE +201 -0
- package/THIRD_PARTY_NOTICES/ureq@2.12.1/src/chunked/LICENSE-MIT +22 -0
- package/THIRD_PARTY_NOTICES/url@2.5.8/LICENSE-APACHE +201 -0
- package/THIRD_PARTY_NOTICES/url@2.5.8/LICENSE-MIT +25 -0
- package/THIRD_PARTY_NOTICES/utf8_iter@1.0.4/COPYRIGHT +42 -0
- package/THIRD_PARTY_NOTICES/utf8_iter@1.0.4/LICENSE-APACHE +202 -0
- package/THIRD_PARTY_NOTICES/utf8_iter@1.0.4/LICENSE-MIT +25 -0
- package/THIRD_PARTY_NOTICES/utf8parse@0.2.2/LICENSE-APACHE +176 -0
- package/THIRD_PARTY_NOTICES/utf8parse@0.2.2/LICENSE-MIT +25 -0
- package/THIRD_PARTY_NOTICES/uuid@1.23.1/LICENSE-APACHE +201 -0
- package/THIRD_PARTY_NOTICES/uuid@1.23.1/LICENSE-MIT +26 -0
- package/THIRD_PARTY_NOTICES/vcpkg@0.2.15/LICENSE-APACHE +202 -0
- package/THIRD_PARTY_NOTICES/vcpkg@0.2.15/LICENSE-MIT +26 -0
- package/THIRD_PARTY_NOTICES/version_check@0.9.5/LICENSE-APACHE +201 -0
- package/THIRD_PARTY_NOTICES/version_check@0.9.5/LICENSE-MIT +19 -0
- package/THIRD_PARTY_NOTICES/walkdir@2.5.0/COPYING +3 -0
- package/THIRD_PARTY_NOTICES/walkdir@2.5.0/LICENSE-MIT +21 -0
- package/THIRD_PARTY_NOTICES/want@0.3.1/LICENSE +20 -0
- package/THIRD_PARTY_NOTICES/whatlang@0.16.4/Cargo.toml +76 -0
- package/THIRD_PARTY_NOTICES/whatlang@0.16.4/LICENSE +26 -0
- package/THIRD_PARTY_NOTICES/winapi-util@0.1.11/COPYING +3 -0
- package/THIRD_PARTY_NOTICES/winapi-util@0.1.11/LICENSE-MIT +21 -0
- package/THIRD_PARTY_NOTICES/winapi@0.3.9/LICENSE-APACHE +201 -0
- package/THIRD_PARTY_NOTICES/winapi@0.3.9/LICENSE-MIT +19 -0
- package/THIRD_PARTY_NOTICES/windows-link@0.2.1/license-apache-2.0 +201 -0
- package/THIRD_PARTY_NOTICES/windows-link@0.2.1/license-mit +21 -0
- package/THIRD_PARTY_NOTICES/windows-sys@0.48.0/license-apache-2.0 +201 -0
- package/THIRD_PARTY_NOTICES/windows-sys@0.48.0/license-mit +21 -0
- package/THIRD_PARTY_NOTICES/windows-sys@0.61.2/license-apache-2.0 +201 -0
- package/THIRD_PARTY_NOTICES/windows-sys@0.61.2/license-mit +21 -0
- package/THIRD_PARTY_NOTICES/windows-targets@0.48.5/license-apache-2.0 +201 -0
- package/THIRD_PARTY_NOTICES/windows-targets@0.48.5/license-mit +21 -0
- package/THIRD_PARTY_NOTICES/windows_x86_64_msvc@0.48.5/license-apache-2.0 +201 -0
- package/THIRD_PARTY_NOTICES/windows_x86_64_msvc@0.48.5/license-mit +21 -0
- package/THIRD_PARTY_NOTICES/winnow@0.7.15/LICENSE-MIT +18 -0
- package/THIRD_PARTY_NOTICES/writeable@0.6.3/LICENSE +46 -0
- package/THIRD_PARTY_NOTICES/yoke-derive@0.8.2/LICENSE +46 -0
- package/THIRD_PARTY_NOTICES/yoke@0.8.2/LICENSE +46 -0
- package/THIRD_PARTY_NOTICES/zerocopy@0.8.48/LICENSE-APACHE +202 -0
- package/THIRD_PARTY_NOTICES/zerocopy@0.8.48/LICENSE-BSD +24 -0
- package/THIRD_PARTY_NOTICES/zerocopy@0.8.48/LICENSE-MIT +26 -0
- package/THIRD_PARTY_NOTICES/zerofrom-derive@0.1.7/LICENSE +46 -0
- package/THIRD_PARTY_NOTICES/zerofrom@0.1.8/LICENSE +46 -0
- package/THIRD_PARTY_NOTICES/zeroize@1.8.2/LICENSE-APACHE +202 -0
- package/THIRD_PARTY_NOTICES/zeroize@1.8.2/LICENSE-MIT +21 -0
- package/THIRD_PARTY_NOTICES/zerotrie@0.2.4/LICENSE +46 -0
- package/THIRD_PARTY_NOTICES/zerovec-derive@0.11.3/LICENSE +46 -0
- package/THIRD_PARTY_NOTICES/zerovec@0.11.6/LICENSE +46 -0
- package/THIRD_PARTY_NOTICES/zmij@1.0.21/LICENSE-MIT +23 -0
- package/package.json +10 -24
- package/runtime/dashboard-acl.js +22 -0
- package/runtime/dashboard-acl.ps1 +103 -0
- package/runtime/dashboard-binary.js +5 -0
- package/runtime/dashboard-bootstrap.js +45 -0
- package/runtime/dashboard-files.js +20 -3
- package/runtime/dashboard-process.js +6 -5
- package/runtime/dashboard-supervisor.js +3 -1
|
@@ -0,0 +1,103 @@
|
|
|
1
|
+
$ErrorActionPreference = 'Stop'
|
|
2
|
+
$target = $env:RTRT_ACL_PATH
|
|
3
|
+
$action = $env:RTRT_ACL_ACTION
|
|
4
|
+
if (-not [IO.Path]::IsPathRooted($target) -or $target.Contains([char]0)) { throw 'Invalid ACL path' }
|
|
5
|
+
$self = [Security.Principal.WindowsIdentity]::GetCurrent().User
|
|
6
|
+
$system = New-Object Security.Principal.SecurityIdentifier 'S-1-5-18'
|
|
7
|
+
$admins = New-Object Security.Principal.SecurityIdentifier 'S-1-5-32-544'
|
|
8
|
+
$creatorOwner = New-Object Security.Principal.SecurityIdentifier 'S-1-3-0'
|
|
9
|
+
|
|
10
|
+
function Assert-Item([string] $name) {
|
|
11
|
+
$item = Get-Item -LiteralPath $name -Force
|
|
12
|
+
if (($item.Attributes -band [IO.FileAttributes]::ReparsePoint) -ne 0) { throw 'Reparse point refused' }
|
|
13
|
+
return $item
|
|
14
|
+
}
|
|
15
|
+
|
|
16
|
+
function Assert-Private([string] $name) {
|
|
17
|
+
$item = Assert-Item $name
|
|
18
|
+
$acl = Get-Acl -LiteralPath $name
|
|
19
|
+
if ($acl.GetOwner([Security.Principal.SecurityIdentifier]).Value -ne $self.Value -or
|
|
20
|
+
-not $acl.AreAccessRulesProtected) { throw 'Private owner or inheritance mismatch' }
|
|
21
|
+
$rules = @($acl.GetAccessRules($true, $true, [Security.Principal.SecurityIdentifier]))
|
|
22
|
+
if ($rules.Count -ne 1) { throw 'Private ACE count mismatch' }
|
|
23
|
+
$rule = $rules[0]
|
|
24
|
+
if ($rule.IsInherited -or $rule.IdentityReference.Value -ne $self.Value -or
|
|
25
|
+
$rule.AccessControlType -ne [Security.AccessControl.AccessControlType]::Allow -or
|
|
26
|
+
[int]$rule.FileSystemRights -ne [int][Security.AccessControl.FileSystemRights]::FullControl) {
|
|
27
|
+
throw 'Private ACE mismatch'
|
|
28
|
+
}
|
|
29
|
+
if ($item.PSIsContainer) {
|
|
30
|
+
if ($rule.InheritanceFlags -ne ([Security.AccessControl.InheritanceFlags]::ContainerInherit -bor
|
|
31
|
+
[Security.AccessControl.InheritanceFlags]::ObjectInherit) -or
|
|
32
|
+
$rule.PropagationFlags -ne [Security.AccessControl.PropagationFlags]::None) { throw 'Private directory ACE mismatch' }
|
|
33
|
+
} elseif ($rule.InheritanceFlags -ne [Security.AccessControl.InheritanceFlags]::None) {
|
|
34
|
+
throw 'Private file ACE mismatch'
|
|
35
|
+
}
|
|
36
|
+
}
|
|
37
|
+
|
|
38
|
+
if ($action -eq 'private-create') {
|
|
39
|
+
$item = Assert-Item $target
|
|
40
|
+
if ($item.PSIsContainer) {
|
|
41
|
+
$acl = New-Object Security.AccessControl.DirectorySecurity
|
|
42
|
+
$flags = 'ContainerInherit,ObjectInherit'
|
|
43
|
+
$rule = New-Object Security.AccessControl.FileSystemAccessRule -ArgumentList @($self, 'FullControl', $flags, 'None', 'Allow')
|
|
44
|
+
} else {
|
|
45
|
+
$acl = New-Object Security.AccessControl.FileSecurity
|
|
46
|
+
$rule = New-Object Security.AccessControl.FileSystemAccessRule -ArgumentList @($self, 'FullControl', 'Allow')
|
|
47
|
+
}
|
|
48
|
+
$acl.SetOwner($self)
|
|
49
|
+
$acl.SetAccessRuleProtection($true, $false)
|
|
50
|
+
$acl.AddAccessRule($rule)
|
|
51
|
+
Set-Acl -LiteralPath $target -AclObject $acl
|
|
52
|
+
Assert-Private $target
|
|
53
|
+
} elseif ($action -eq 'private-check') {
|
|
54
|
+
Assert-Private $target
|
|
55
|
+
} elseif ($action -eq 'binary-check') {
|
|
56
|
+
$current = $target
|
|
57
|
+
$trustedInstaller = New-Object Security.Principal.SecurityIdentifier 'S-1-5-80-956008885-3418522649-1831038044-1853292631-2271478464'
|
|
58
|
+
$trustedBinarySids = @($self.Value, $system.Value, $admins.Value, $trustedInstaller.Value)
|
|
59
|
+
$writes = [int]([Security.AccessControl.FileSystemRights]::WriteData -bor
|
|
60
|
+
[Security.AccessControl.FileSystemRights]::AppendData -bor
|
|
61
|
+
[Security.AccessControl.FileSystemRights]::WriteExtendedAttributes -bor
|
|
62
|
+
[Security.AccessControl.FileSystemRights]::WriteAttributes -bor
|
|
63
|
+
[Security.AccessControl.FileSystemRights]::Delete -bor
|
|
64
|
+
[Security.AccessControl.FileSystemRights]::DeleteSubdirectoriesAndFiles -bor
|
|
65
|
+
[Security.AccessControl.FileSystemRights]::ChangePermissions -bor
|
|
66
|
+
[Security.AccessControl.FileSystemRights]::TakeOwnership)
|
|
67
|
+
$replaceChildren = [int]([Security.AccessControl.FileSystemRights]::Delete -bor
|
|
68
|
+
[Security.AccessControl.FileSystemRights]::DeleteSubdirectoriesAndFiles -bor
|
|
69
|
+
[Security.AccessControl.FileSystemRights]::ChangePermissions -bor
|
|
70
|
+
[Security.AccessControl.FileSystemRights]::TakeOwnership)
|
|
71
|
+
while ($current) {
|
|
72
|
+
$item = Assert-Item $current
|
|
73
|
+
$acl = Get-Acl -LiteralPath $current
|
|
74
|
+
$owner = $acl.GetOwner([Security.Principal.SecurityIdentifier]).Value
|
|
75
|
+
if ($trustedBinarySids -cnotcontains $owner) { throw 'Untrusted binary owner' }
|
|
76
|
+
$effectiveWrites = $writes
|
|
77
|
+
if ($item.PSIsContainer) {
|
|
78
|
+
# Creation and directory-metadata rights alone cannot replace protected checked
|
|
79
|
+
# children; deletion or ACL/ownership control can.
|
|
80
|
+
$effectiveWrites = $replaceChildren
|
|
81
|
+
}
|
|
82
|
+
foreach ($rule in $acl.GetAccessRules($true, $true, [Security.Principal.SecurityIdentifier])) {
|
|
83
|
+
$sid = $rule.IdentityReference.Value
|
|
84
|
+
$rights = [int]$rule.FileSystemRights
|
|
85
|
+
# Expand generic masks before comparing filesystem rights. GenericWrite creates
|
|
86
|
+
# directory entries but does not itself grant delete-child or ownership control.
|
|
87
|
+
if (($rights -band 0x10000000) -ne 0) {
|
|
88
|
+
$rights = $rights -bor [int][Security.AccessControl.FileSystemRights]::FullControl
|
|
89
|
+
}
|
|
90
|
+
if (($rights -band 0x40000000) -ne 0) {
|
|
91
|
+
$rights = $rights -bor [int][Security.AccessControl.FileSystemRights]::Write
|
|
92
|
+
}
|
|
93
|
+
if ($rule.AccessControlType -eq [Security.AccessControl.AccessControlType]::Allow -and
|
|
94
|
+
$trustedBinarySids -cnotcontains $sid -and
|
|
95
|
+
$sid -ne $creatorOwner.Value -and
|
|
96
|
+
(([int]$rule.PropagationFlags -band [int][Security.AccessControl.PropagationFlags]::InheritOnly) -eq 0) -and
|
|
97
|
+
($rights -band $effectiveWrites) -ne 0) { throw 'Untrusted binary writer' }
|
|
98
|
+
}
|
|
99
|
+
$parent = [IO.Path]::GetDirectoryName($current.TrimEnd([IO.Path]::DirectorySeparatorChar))
|
|
100
|
+
if (-not $parent -or $parent -eq $current) { break }
|
|
101
|
+
$current = $parent
|
|
102
|
+
}
|
|
103
|
+
} else { throw 'Invalid ACL operation' }
|
|
@@ -2,6 +2,7 @@ import { lstat, readFile } from "node:fs/promises"
|
|
|
2
2
|
import path from "node:path"
|
|
3
3
|
import { fileURLToPath } from "node:url"
|
|
4
4
|
import { readRegular, realPath, unavailable } from "./dashboard-files.js"
|
|
5
|
+
import { windowsAcl } from "./dashboard-acl.js"
|
|
5
6
|
|
|
6
7
|
const PACKAGES = new Map([
|
|
7
8
|
["linux-x64", "rtrt-dashboard-linux-x64"],
|
|
@@ -52,11 +53,15 @@ export async function resolveDashboardBinary({
|
|
|
52
53
|
if (parent === ancestor) break
|
|
53
54
|
ancestor = parent
|
|
54
55
|
}
|
|
56
|
+
if (platform === "win32") await windowsAcl(path.join(directory, "package.json"), "binary-check")
|
|
55
57
|
const manifest = JSON.parse(await readRegular(path.join(directory, "package.json"), validate))
|
|
56
58
|
if (manifest.name !== name || manifest.version !== expected) continue
|
|
57
59
|
const binary = path.join(directory, "bin", platform === "win32" ? "rtrt-dashboard.exe" : "rtrt-dashboard")
|
|
58
60
|
await realPath(binary)
|
|
59
61
|
validate(await lstat(path.dirname(binary)))
|
|
62
|
+
if (platform === "win32") {
|
|
63
|
+
await windowsAcl(binary, "binary-check")
|
|
64
|
+
}
|
|
60
65
|
const stat = await lstat(binary)
|
|
61
66
|
validate(stat)
|
|
62
67
|
if (!stat.isFile() || stat.nlink !== 1 || (platform !== "win32" && (stat.mode & 0o111) === 0)) throw unavailable()
|
|
@@ -0,0 +1,45 @@
|
|
|
1
|
+
import { randomBytes } from "node:crypto"
|
|
2
|
+
import { constants } from "node:fs"
|
|
3
|
+
import { lstat, open, rename, unlink } from "node:fs/promises"
|
|
4
|
+
import path from "node:path"
|
|
5
|
+
import { privateMetadata, realPath, unavailable } from "./dashboard-files.js"
|
|
6
|
+
import { windowsAcl } from "./dashboard-acl.js"
|
|
7
|
+
|
|
8
|
+
export async function writeDashboardBootstrap(state, credential, { platform = process.platform, uid = process.geteuid?.() } = {}) {
|
|
9
|
+
if (!/^[A-Za-z0-9_-]{87}$/.test(credential)) throw unavailable()
|
|
10
|
+
await realPath(state)
|
|
11
|
+
const stateMetadata = await lstat(state)
|
|
12
|
+
privateMetadata(stateMetadata, { platform, uid }, 0o700)
|
|
13
|
+
if (!stateMetadata.isDirectory()) throw unavailable()
|
|
14
|
+
if (platform === "win32") await windowsAcl(state, "private-check")
|
|
15
|
+
const destination = path.join(state, "bootstrap.html")
|
|
16
|
+
try {
|
|
17
|
+
const existing = await lstat(destination)
|
|
18
|
+
privateMetadata(existing, { platform, uid }, 0o600)
|
|
19
|
+
if (!existing.isFile() || existing.nlink !== 1 || existing.size > 512) throw unavailable()
|
|
20
|
+
if (platform === "win32") await windowsAcl(destination, "private-check")
|
|
21
|
+
} catch (error) {
|
|
22
|
+
if (error.code !== "ENOENT") throw error
|
|
23
|
+
}
|
|
24
|
+
const temporary = path.join(state, `.bootstrap-${randomBytes(16).toString("hex")}.tmp`)
|
|
25
|
+
const handle = await open(temporary, constants.O_WRONLY | constants.O_CREAT | constants.O_EXCL | (constants.O_NOFOLLOW ?? 0), 0o600)
|
|
26
|
+
try {
|
|
27
|
+
if (platform === "win32") await windowsAcl(temporary, "private-create")
|
|
28
|
+
privateMetadata(await handle.stat(), { platform, uid }, 0o600)
|
|
29
|
+
const body = `<!doctype html><meta http-equiv="refresh" content="0;url=http://127.0.0.1:7311/#bootstrap=${credential}">`
|
|
30
|
+
await handle.writeFile(body)
|
|
31
|
+
await handle.sync()
|
|
32
|
+
} catch (error) {
|
|
33
|
+
await handle.close()
|
|
34
|
+
await unlink(temporary)
|
|
35
|
+
throw error
|
|
36
|
+
}
|
|
37
|
+
await handle.close()
|
|
38
|
+
try {
|
|
39
|
+
await rename(temporary, destination)
|
|
40
|
+
} catch (error) {
|
|
41
|
+
await unlink(temporary)
|
|
42
|
+
throw error
|
|
43
|
+
}
|
|
44
|
+
return destination
|
|
45
|
+
}
|
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
import { constants } from "node:fs"
|
|
2
2
|
import { lstat, mkdir, open, rmdir } from "node:fs/promises"
|
|
3
3
|
import path from "node:path"
|
|
4
|
+
import { windowsAcl } from "./dashboard-acl.js"
|
|
4
5
|
|
|
5
6
|
export const unavailable = () => new Error("Dashboard unavailable.")
|
|
6
7
|
|
|
@@ -11,7 +12,8 @@ export async function realPath(candidate) {
|
|
|
11
12
|
let current = path.parse(normalized).root
|
|
12
13
|
for (const part of parts) {
|
|
13
14
|
current = path.join(current, part)
|
|
14
|
-
|
|
15
|
+
const stat = await lstat(current)
|
|
16
|
+
if (stat.isSymbolicLink()) throw unavailable()
|
|
15
17
|
}
|
|
16
18
|
return normalized
|
|
17
19
|
}
|
|
@@ -48,6 +50,7 @@ export function dashboardFiles({ home, uid, platform }) {
|
|
|
48
50
|
const stat = await lstat(candidate)
|
|
49
51
|
privateMetadata(stat, identity, 0o700)
|
|
50
52
|
if (!stat.isDirectory()) throw unavailable()
|
|
53
|
+
if (platform === "win32") await windowsAcl(candidate, "private-check")
|
|
51
54
|
}
|
|
52
55
|
const checkLock = async () => {
|
|
53
56
|
try { await directory(lock) } catch (error) {
|
|
@@ -59,7 +62,10 @@ export function dashboardFiles({ home, uid, platform }) {
|
|
|
59
62
|
const stat = await lstat(home)
|
|
60
63
|
if (!stat.isDirectory() || (platform !== "win32" && (stat.uid !== uid || (stat.mode & 0o022) !== 0))) throw unavailable()
|
|
61
64
|
for (const candidate of [path.dirname(state), state]) {
|
|
62
|
-
try {
|
|
65
|
+
try {
|
|
66
|
+
await mkdir(candidate, { mode: 0o700 })
|
|
67
|
+
if (platform === "win32") await windowsAcl(candidate, "private-create")
|
|
68
|
+
} catch (error) {
|
|
63
69
|
if (error.code !== "EEXIST") throw error
|
|
64
70
|
}
|
|
65
71
|
await directory(candidate)
|
|
@@ -69,6 +75,13 @@ export function dashboardFiles({ home, uid, platform }) {
|
|
|
69
75
|
const readToken = async () => {
|
|
70
76
|
await realPath(state)
|
|
71
77
|
let raw
|
|
78
|
+
if (platform === "win32") {
|
|
79
|
+
try { await lstat(credential) } catch (error) {
|
|
80
|
+
if (error.code === "ENOENT") return undefined
|
|
81
|
+
throw error
|
|
82
|
+
}
|
|
83
|
+
await windowsAcl(credential, "private-check")
|
|
84
|
+
}
|
|
72
85
|
try { raw = await readRegular(credential, (stat) => privateMetadata(stat, identity, 0o600)) } catch (error) {
|
|
73
86
|
if (error.code === "ENOENT") return undefined
|
|
74
87
|
throw error
|
|
@@ -83,6 +96,7 @@ export function dashboardFiles({ home, uid, platform }) {
|
|
|
83
96
|
if (!/^[a-fA-F0-9]{64}$/.test(token)) throw unavailable()
|
|
84
97
|
const handle = await open(credential, constants.O_WRONLY | constants.O_CREAT | constants.O_EXCL | (constants.O_NOFOLLOW ?? 0), 0o600)
|
|
85
98
|
try {
|
|
99
|
+
if (platform === "win32") await windowsAcl(credential, "private-create")
|
|
86
100
|
privateMetadata(await handle.stat(), identity, 0o600)
|
|
87
101
|
await handle.writeFile(`RTRT_DASHBOARD_TOKEN=${token}\n`)
|
|
88
102
|
await handle.sync()
|
|
@@ -91,7 +105,10 @@ export function dashboardFiles({ home, uid, platform }) {
|
|
|
91
105
|
}
|
|
92
106
|
}
|
|
93
107
|
const acquire = async () => {
|
|
94
|
-
try {
|
|
108
|
+
try {
|
|
109
|
+
await mkdir(lock, { mode: 0o700 })
|
|
110
|
+
if (platform === "win32") await windowsAcl(lock, "private-create")
|
|
111
|
+
} catch (error) {
|
|
95
112
|
if (error.code !== "EEXIST") throw error
|
|
96
113
|
await directory(lock)
|
|
97
114
|
return undefined
|
|
@@ -48,12 +48,13 @@ export function launchDetached(binary, args, { spawnProcess = spawn, ...options
|
|
|
48
48
|
})
|
|
49
49
|
}
|
|
50
50
|
|
|
51
|
-
export async function openDashboardBrowser(
|
|
52
|
-
// Never consult BROWSER or PATH.
|
|
51
|
+
export async function openDashboardBrowser(file, { platform = process.platform, launch = launchDetached } = {}) {
|
|
52
|
+
// Never consult BROWSER or PATH. Ordinary opener argv carries only a local file path.
|
|
53
|
+
if (!path.isAbsolute(file) || /:\/\/|#|bootstrap=/i.test(file)) throw unavailable()
|
|
53
54
|
switch (platform) {
|
|
54
|
-
case "linux": return launch("/usr/bin/xdg-open", [
|
|
55
|
-
case "darwin": return launch("/usr/bin/open", [
|
|
56
|
-
case "win32": return launch("C:\\Windows
|
|
55
|
+
case "linux": return launch("/usr/bin/xdg-open", [file])
|
|
56
|
+
case "darwin": return launch("/usr/bin/open", [file])
|
|
57
|
+
case "win32": return launch(path.win32.join(process.env.SystemRoot || "C:\\Windows", "System32", "rundll32.exe"), ["url.dll,FileProtocolHandler", file])
|
|
57
58
|
default: throw unavailable()
|
|
58
59
|
}
|
|
59
60
|
}
|
|
@@ -4,6 +4,7 @@ import { setTimeout as delay } from "node:timers/promises"
|
|
|
4
4
|
import { dashboardFiles, unavailable } from "./dashboard-files.js"
|
|
5
5
|
import { resolveDashboardBinary } from "./dashboard-binary.js"
|
|
6
6
|
import { launchDetached, openDashboardBrowser, probeDashboard } from "./dashboard-process.js"
|
|
7
|
+
import { writeDashboardBootstrap } from "./dashboard-bootstrap.js"
|
|
7
8
|
|
|
8
9
|
export function createDashboardSupervisor({
|
|
9
10
|
env = process.env, platform = process.platform, arch = process.arch, uid = process.geteuid?.(),
|
|
@@ -85,7 +86,8 @@ export function createDashboardSupervisor({
|
|
|
85
86
|
createHmac("sha256", Buffer.from(token, "hex"))
|
|
86
87
|
.update("rtrt-dashboard-browser-bootstrap\0v1\0")
|
|
87
88
|
.update(wire.subarray(0, 33)).digest().copy(wire, 33)
|
|
88
|
-
await
|
|
89
|
+
const bootstrap = await writeDashboardBootstrap(files.state, wire.toString("base64url"), { platform, uid })
|
|
90
|
+
await openBrowser(bootstrap, { platform })
|
|
89
91
|
return "Dashboard open requested."
|
|
90
92
|
} catch {
|
|
91
93
|
// Never expose dependency errors: process errors can contain the bootstrap URL.
|