rtrt-agent 0.1.7 → 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.
Files changed (492) hide show
  1. package/README.ko.md +203 -15
  2. package/README.md +211 -15
  3. package/THIRD_PARTY_NOTICES/INDEX.md +120 -18
  4. package/THIRD_PARTY_NOTICES/INVENTORY.json +8151 -0
  5. package/THIRD_PARTY_NOTICES/SUPPLEMENTS.json +148 -0
  6. package/THIRD_PARTY_NOTICES/adler2@2.0.1/LICENSE-0BSD +12 -0
  7. package/THIRD_PARTY_NOTICES/adler2@2.0.1/LICENSE-APACHE +201 -0
  8. package/THIRD_PARTY_NOTICES/adler2@2.0.1/LICENSE-MIT +23 -0
  9. package/THIRD_PARTY_NOTICES/ahash@0.8.12/LICENSE-APACHE +201 -0
  10. package/THIRD_PARTY_NOTICES/ahash@0.8.12/LICENSE-MIT +25 -0
  11. package/THIRD_PARTY_NOTICES/aho-corasick@1.1.4/COPYING +3 -0
  12. package/THIRD_PARTY_NOTICES/aho-corasick@1.1.4/LICENSE-MIT +21 -0
  13. package/THIRD_PARTY_NOTICES/allocator-api2@0.2.21/LICENSE-APACHE +176 -0
  14. package/THIRD_PARTY_NOTICES/allocator-api2@0.2.21/LICENSE-MIT +23 -0
  15. package/THIRD_PARTY_NOTICES/anstream@1.0.0/LICENSE-APACHE +202 -0
  16. package/THIRD_PARTY_NOTICES/anstream@1.0.0/LICENSE-MIT +19 -0
  17. package/THIRD_PARTY_NOTICES/anstyle-parse@1.0.0/LICENSE-APACHE +202 -0
  18. package/THIRD_PARTY_NOTICES/anstyle-parse@1.0.0/LICENSE-MIT +19 -0
  19. package/THIRD_PARTY_NOTICES/anstyle-query@1.1.5/LICENSE-APACHE +202 -0
  20. package/THIRD_PARTY_NOTICES/anstyle-query@1.1.5/LICENSE-MIT +19 -0
  21. package/THIRD_PARTY_NOTICES/anstyle-wincon@3.0.11/LICENSE-APACHE +202 -0
  22. package/THIRD_PARTY_NOTICES/anstyle-wincon@3.0.11/LICENSE-MIT +19 -0
  23. package/THIRD_PARTY_NOTICES/anstyle@1.0.14/LICENSE-APACHE +202 -0
  24. package/THIRD_PARTY_NOTICES/anstyle@1.0.14/LICENSE-MIT +19 -0
  25. package/THIRD_PARTY_NOTICES/anyhow@1.0.103/LICENSE-APACHE +176 -0
  26. package/THIRD_PARTY_NOTICES/anyhow@1.0.103/LICENSE-MIT +23 -0
  27. package/THIRD_PARTY_NOTICES/async-compression@0.4.42/LICENSE-APACHE +201 -0
  28. package/THIRD_PARTY_NOTICES/async-compression@0.4.42/LICENSE-MIT +21 -0
  29. package/THIRD_PARTY_NOTICES/async-trait@0.1.92/LICENSE-APACHE +176 -0
  30. package/THIRD_PARTY_NOTICES/async-trait@0.1.92/LICENSE-MIT +23 -0
  31. package/THIRD_PARTY_NOTICES/atomic-waker@1.1.2/LICENSE-APACHE +201 -0
  32. package/THIRD_PARTY_NOTICES/atomic-waker@1.1.2/LICENSE-MIT +23 -0
  33. package/THIRD_PARTY_NOTICES/atomic-waker@1.1.2/LICENSE-THIRD-PARTY +45 -0
  34. package/THIRD_PARTY_NOTICES/autocfg@1.5.0/LICENSE-APACHE +201 -0
  35. package/THIRD_PARTY_NOTICES/autocfg@1.5.0/LICENSE-MIT +25 -0
  36. package/THIRD_PARTY_NOTICES/axum-core@0.5.6/LICENSE +27 -0
  37. package/THIRD_PARTY_NOTICES/axum-macros@0.5.1/LICENSE +7 -0
  38. package/THIRD_PARTY_NOTICES/axum@0.8.9/LICENSE +25 -0
  39. package/THIRD_PARTY_NOTICES/base64@0.22.1/LICENSE-APACHE +201 -0
  40. package/THIRD_PARTY_NOTICES/base64@0.22.1/LICENSE-MIT +21 -0
  41. package/THIRD_PARTY_NOTICES/bitflags@2.11.1/LICENSE-APACHE +201 -0
  42. package/THIRD_PARTY_NOTICES/bitflags@2.11.1/LICENSE-MIT +25 -0
  43. package/THIRD_PARTY_NOTICES/block-buffer@0.10.4/LICENSE-APACHE +201 -0
  44. package/THIRD_PARTY_NOTICES/block-buffer@0.10.4/LICENSE-MIT +25 -0
  45. package/THIRD_PARTY_NOTICES/bytes@1.11.1/LICENSE +25 -0
  46. package/THIRD_PARTY_NOTICES/cc@1.2.62/LICENSE-APACHE +201 -0
  47. package/THIRD_PARTY_NOTICES/cc@1.2.62/LICENSE-MIT +25 -0
  48. package/THIRD_PARTY_NOTICES/cfg-if@1.0.4/LICENSE-APACHE +201 -0
  49. package/THIRD_PARTY_NOTICES/cfg-if@1.0.4/LICENSE-MIT +25 -0
  50. package/THIRD_PARTY_NOTICES/chacha20@0.10.2/LICENSE-APACHE +201 -0
  51. package/THIRD_PARTY_NOTICES/chacha20@0.10.2/LICENSE-MIT +25 -0
  52. package/THIRD_PARTY_NOTICES/chrono@0.4.44/LICENSE.txt +240 -0
  53. package/THIRD_PARTY_NOTICES/clap@4.6.1/LICENSE-APACHE +202 -0
  54. package/THIRD_PARTY_NOTICES/clap@4.6.1/LICENSE-MIT +19 -0
  55. package/THIRD_PARTY_NOTICES/clap_builder@4.6.0/LICENSE-APACHE +202 -0
  56. package/THIRD_PARTY_NOTICES/clap_builder@4.6.0/LICENSE-MIT +19 -0
  57. package/THIRD_PARTY_NOTICES/clap_derive@4.6.1/LICENSE-APACHE +202 -0
  58. package/THIRD_PARTY_NOTICES/clap_derive@4.6.1/LICENSE-MIT +19 -0
  59. package/THIRD_PARTY_NOTICES/clap_lex@1.1.0/LICENSE-APACHE +202 -0
  60. package/THIRD_PARTY_NOTICES/clap_lex@1.1.0/LICENSE-MIT +19 -0
  61. package/THIRD_PARTY_NOTICES/colorchoice@1.0.5/LICENSE-APACHE +202 -0
  62. package/THIRD_PARTY_NOTICES/colorchoice@1.0.5/LICENSE-MIT +19 -0
  63. package/THIRD_PARTY_NOTICES/compression-codecs@0.4.38/LICENSE-APACHE +201 -0
  64. package/THIRD_PARTY_NOTICES/compression-codecs@0.4.38/LICENSE-MIT +21 -0
  65. package/THIRD_PARTY_NOTICES/compression-core@0.4.32/LICENSE-APACHE +201 -0
  66. package/THIRD_PARTY_NOTICES/compression-core@0.4.32/LICENSE-MIT +21 -0
  67. package/THIRD_PARTY_NOTICES/cpufeatures@0.2.17/LICENSE-APACHE +201 -0
  68. package/THIRD_PARTY_NOTICES/cpufeatures@0.2.17/LICENSE-MIT +25 -0
  69. package/THIRD_PARTY_NOTICES/cpufeatures@0.3.0/LICENSE-APACHE +201 -0
  70. package/THIRD_PARTY_NOTICES/cpufeatures@0.3.0/LICENSE-MIT +25 -0
  71. package/THIRD_PARTY_NOTICES/crc32fast@1.5.0/LICENSE-APACHE +202 -0
  72. package/THIRD_PARTY_NOTICES/crc32fast@1.5.0/LICENSE-MIT +21 -0
  73. package/THIRD_PARTY_NOTICES/crossbeam-deque@0.8.6/LICENSE-APACHE +201 -0
  74. package/THIRD_PARTY_NOTICES/crossbeam-deque@0.8.6/LICENSE-MIT +27 -0
  75. package/THIRD_PARTY_NOTICES/crossbeam-epoch@0.9.20/LICENSE-APACHE +201 -0
  76. package/THIRD_PARTY_NOTICES/crossbeam-epoch@0.9.20/LICENSE-MIT +27 -0
  77. package/THIRD_PARTY_NOTICES/crossbeam-utils@0.8.21/LICENSE-APACHE +201 -0
  78. package/THIRD_PARTY_NOTICES/crossbeam-utils@0.8.21/LICENSE-MIT +27 -0
  79. package/THIRD_PARTY_NOTICES/crypto-common@0.1.7/LICENSE-APACHE +201 -0
  80. package/THIRD_PARTY_NOTICES/crypto-common@0.1.7/LICENSE-MIT +25 -0
  81. package/THIRD_PARTY_NOTICES/darling@0.20.11/LICENSE +21 -0
  82. package/THIRD_PARTY_NOTICES/darling@0.23.0/LICENSE +21 -0
  83. package/THIRD_PARTY_NOTICES/darling_core@0.20.11/LICENSE +21 -0
  84. package/THIRD_PARTY_NOTICES/darling_core@0.23.0/LICENSE +21 -0
  85. package/THIRD_PARTY_NOTICES/darling_macro@0.20.11/LICENSE +21 -0
  86. package/THIRD_PARTY_NOTICES/darling_macro@0.23.0/LICENSE +21 -0
  87. package/THIRD_PARTY_NOTICES/derive_builder@0.20.2/LICENSE-APACHE +202 -0
  88. package/THIRD_PARTY_NOTICES/derive_builder@0.20.2/LICENSE-MIT +21 -0
  89. package/THIRD_PARTY_NOTICES/derive_builder_core@0.20.2/LICENSE-APACHE +202 -0
  90. package/THIRD_PARTY_NOTICES/derive_builder_core@0.20.2/LICENSE-MIT +21 -0
  91. package/THIRD_PARTY_NOTICES/derive_builder_macro@0.20.2/LICENSE-APACHE +202 -0
  92. package/THIRD_PARTY_NOTICES/derive_builder_macro@0.20.2/LICENSE-MIT +21 -0
  93. package/THIRD_PARTY_NOTICES/digest@0.10.7/LICENSE-APACHE +201 -0
  94. package/THIRD_PARTY_NOTICES/digest@0.10.7/LICENSE-MIT +25 -0
  95. package/THIRD_PARTY_NOTICES/dirs-sys@0.4.1/LICENSE-APACHE +174 -0
  96. package/THIRD_PARTY_NOTICES/dirs-sys@0.4.1/LICENSE-MIT +19 -0
  97. package/THIRD_PARTY_NOTICES/dirs@5.0.1/LICENSE-APACHE +174 -0
  98. package/THIRD_PARTY_NOTICES/dirs@5.0.1/LICENSE-MIT +19 -0
  99. package/THIRD_PARTY_NOTICES/displaydoc@0.2.5/LICENSE-APACHE +201 -0
  100. package/THIRD_PARTY_NOTICES/displaydoc@0.2.5/LICENSE-MIT +23 -0
  101. package/THIRD_PARTY_NOTICES/dyn-clone@1.0.20/LICENSE-APACHE +176 -0
  102. package/THIRD_PARTY_NOTICES/dyn-clone@1.0.20/LICENSE-MIT +23 -0
  103. package/THIRD_PARTY_NOTICES/either@1.16.0/LICENSE-APACHE +201 -0
  104. package/THIRD_PARTY_NOTICES/either@1.16.0/LICENSE-MIT +25 -0
  105. package/THIRD_PARTY_NOTICES/equivalent@1.0.2/LICENSE-APACHE +201 -0
  106. package/THIRD_PARTY_NOTICES/equivalent@1.0.2/LICENSE-MIT +25 -0
  107. package/THIRD_PARTY_NOTICES/errno@0.3.14/LICENSE-APACHE +201 -0
  108. package/THIRD_PARTY_NOTICES/errno@0.3.14/LICENSE-MIT +25 -0
  109. package/THIRD_PARTY_NOTICES/eventsource-stream@0.2.3/Cargo.toml +74 -0
  110. package/THIRD_PARTY_NOTICES/eventsource-stream@0.2.3/DECLARED-APACHE-2.0.txt +202 -0
  111. package/THIRD_PARTY_NOTICES/fallible-iterator@0.3.0/LICENSE-APACHE +202 -0
  112. package/THIRD_PARTY_NOTICES/fallible-iterator@0.3.0/LICENSE-MIT +19 -0
  113. package/THIRD_PARTY_NOTICES/fallible-streaming-iterator@0.1.9/LICENSE-APACHE +202 -0
  114. package/THIRD_PARTY_NOTICES/fallible-streaming-iterator@0.1.9/LICENSE-MIT +19 -0
  115. package/THIRD_PARTY_NOTICES/fastrand@2.4.1/LICENSE-APACHE +201 -0
  116. package/THIRD_PARTY_NOTICES/fastrand@2.4.1/LICENSE-MIT +23 -0
  117. package/THIRD_PARTY_NOTICES/find-msvc-tools@0.1.9/LICENSE-APACHE +201 -0
  118. package/THIRD_PARTY_NOTICES/find-msvc-tools@0.1.9/LICENSE-MIT +25 -0
  119. package/THIRD_PARTY_NOTICES/flate2@1.1.9/LICENSE-APACHE +201 -0
  120. package/THIRD_PARTY_NOTICES/flate2@1.1.9/LICENSE-MIT +25 -0
  121. package/THIRD_PARTY_NOTICES/fnv@1.0.7/LICENSE-APACHE +201 -0
  122. package/THIRD_PARTY_NOTICES/fnv@1.0.7/LICENSE-MIT +25 -0
  123. package/THIRD_PARTY_NOTICES/form_urlencoded@1.2.2/LICENSE-APACHE +201 -0
  124. package/THIRD_PARTY_NOTICES/form_urlencoded@1.2.2/LICENSE-MIT +25 -0
  125. package/THIRD_PARTY_NOTICES/fs2@0.4.3/LICENSE-APACHE +201 -0
  126. package/THIRD_PARTY_NOTICES/fs2@0.4.3/LICENSE-MIT +25 -0
  127. package/THIRD_PARTY_NOTICES/futures-channel@0.3.32/LICENSE-APACHE +202 -0
  128. package/THIRD_PARTY_NOTICES/futures-channel@0.3.32/LICENSE-MIT +26 -0
  129. package/THIRD_PARTY_NOTICES/futures-core@0.3.32/LICENSE-APACHE +202 -0
  130. package/THIRD_PARTY_NOTICES/futures-core@0.3.32/LICENSE-MIT +26 -0
  131. package/THIRD_PARTY_NOTICES/futures-executor@0.3.32/LICENSE-APACHE +202 -0
  132. package/THIRD_PARTY_NOTICES/futures-executor@0.3.32/LICENSE-MIT +26 -0
  133. package/THIRD_PARTY_NOTICES/futures-io@0.3.32/LICENSE-APACHE +202 -0
  134. package/THIRD_PARTY_NOTICES/futures-io@0.3.32/LICENSE-MIT +26 -0
  135. package/THIRD_PARTY_NOTICES/futures-macro@0.3.32/LICENSE-APACHE +202 -0
  136. package/THIRD_PARTY_NOTICES/futures-macro@0.3.32/LICENSE-MIT +26 -0
  137. package/THIRD_PARTY_NOTICES/futures-sink@0.3.32/LICENSE-APACHE +202 -0
  138. package/THIRD_PARTY_NOTICES/futures-sink@0.3.32/LICENSE-MIT +26 -0
  139. package/THIRD_PARTY_NOTICES/futures-task@0.3.32/LICENSE-APACHE +202 -0
  140. package/THIRD_PARTY_NOTICES/futures-task@0.3.32/LICENSE-MIT +26 -0
  141. package/THIRD_PARTY_NOTICES/futures-util@0.3.32/LICENSE-APACHE +202 -0
  142. package/THIRD_PARTY_NOTICES/futures-util@0.3.32/LICENSE-MIT +26 -0
  143. package/THIRD_PARTY_NOTICES/futures@0.3.32/LICENSE-APACHE +202 -0
  144. package/THIRD_PARTY_NOTICES/futures@0.3.32/LICENSE-MIT +26 -0
  145. package/THIRD_PARTY_NOTICES/generic-array@0.14.7/LICENSE +21 -0
  146. package/THIRD_PARTY_NOTICES/getrandom@0.2.17/LICENSE-APACHE +201 -0
  147. package/THIRD_PARTY_NOTICES/getrandom@0.2.17/LICENSE-MIT +26 -0
  148. package/THIRD_PARTY_NOTICES/getrandom@0.3.4/LICENSE-APACHE +201 -0
  149. package/THIRD_PARTY_NOTICES/getrandom@0.3.4/LICENSE-MIT +26 -0
  150. package/THIRD_PARTY_NOTICES/getrandom@0.4.2/LICENSE-APACHE +201 -0
  151. package/THIRD_PARTY_NOTICES/getrandom@0.4.2/LICENSE-MIT +26 -0
  152. package/THIRD_PARTY_NOTICES/handlebars@6.4.1/LICENSE +22 -0
  153. package/THIRD_PARTY_NOTICES/handlebars@6.4.1/wasm/LICENSE +22 -0
  154. package/THIRD_PARTY_NOTICES/hashbrown@0.14.5/LICENSE-APACHE +201 -0
  155. package/THIRD_PARTY_NOTICES/hashbrown@0.14.5/LICENSE-MIT +25 -0
  156. package/THIRD_PARTY_NOTICES/hashbrown@0.17.1/LICENSE-APACHE +201 -0
  157. package/THIRD_PARTY_NOTICES/hashbrown@0.17.1/LICENSE-MIT +25 -0
  158. package/THIRD_PARTY_NOTICES/hashlink@0.9.1/LICENSE-APACHE +201 -0
  159. package/THIRD_PARTY_NOTICES/hashlink@0.9.1/LICENSE-MIT +26 -0
  160. package/THIRD_PARTY_NOTICES/heck@0.5.0/LICENSE-APACHE +201 -0
  161. package/THIRD_PARTY_NOTICES/heck@0.5.0/LICENSE-MIT +25 -0
  162. package/THIRD_PARTY_NOTICES/hmac@0.12.1/LICENSE-APACHE +201 -0
  163. package/THIRD_PARTY_NOTICES/hmac@0.12.1/LICENSE-MIT +25 -0
  164. package/THIRD_PARTY_NOTICES/http-body-util@0.1.3/LICENSE +25 -0
  165. package/THIRD_PARTY_NOTICES/http-body@1.0.1/LICENSE +25 -0
  166. package/THIRD_PARTY_NOTICES/http-range-header@0.4.2/LICENSE +21 -0
  167. package/THIRD_PARTY_NOTICES/http@1.4.0/LICENSE-APACHE +201 -0
  168. package/THIRD_PARTY_NOTICES/http@1.4.0/LICENSE-MIT +25 -0
  169. package/THIRD_PARTY_NOTICES/httparse@1.10.1/LICENSE-APACHE +201 -0
  170. package/THIRD_PARTY_NOTICES/httparse@1.10.1/LICENSE-MIT +20 -0
  171. package/THIRD_PARTY_NOTICES/httpdate@1.0.3/LICENSE-APACHE +201 -0
  172. package/THIRD_PARTY_NOTICES/httpdate@1.0.3/LICENSE-MIT +19 -0
  173. package/THIRD_PARTY_NOTICES/hyper-rustls@0.27.9/LICENSE-APACHE +201 -0
  174. package/THIRD_PARTY_NOTICES/hyper-rustls@0.27.9/LICENSE-ISC +15 -0
  175. package/THIRD_PARTY_NOTICES/hyper-rustls@0.27.9/LICENSE-MIT +25 -0
  176. package/THIRD_PARTY_NOTICES/hyper-util@0.1.20/LICENSE +19 -0
  177. package/THIRD_PARTY_NOTICES/hyper@1.9.0/LICENSE +19 -0
  178. package/THIRD_PARTY_NOTICES/icu_collections@2.1.1/LICENSE +46 -0
  179. package/THIRD_PARTY_NOTICES/icu_locale_core@2.1.1/LICENSE +46 -0
  180. package/THIRD_PARTY_NOTICES/icu_normalizer@2.1.1/LICENSE +46 -0
  181. package/THIRD_PARTY_NOTICES/icu_normalizer_data@2.1.1/LICENSE +46 -0
  182. package/THIRD_PARTY_NOTICES/icu_properties@2.1.2/LICENSE +46 -0
  183. package/THIRD_PARTY_NOTICES/icu_properties_data@2.1.2/LICENSE +46 -0
  184. package/THIRD_PARTY_NOTICES/icu_provider@2.1.1/LICENSE +46 -0
  185. package/THIRD_PARTY_NOTICES/ident_case@1.0.1/LICENSE +19 -0
  186. package/THIRD_PARTY_NOTICES/idna@1.1.0/LICENSE-APACHE +201 -0
  187. package/THIRD_PARTY_NOTICES/idna@1.1.0/LICENSE-MIT +25 -0
  188. package/THIRD_PARTY_NOTICES/idna_adapter@1.2.1/LICENSE-APACHE +201 -0
  189. package/THIRD_PARTY_NOTICES/idna_adapter@1.2.1/LICENSE-MIT +25 -0
  190. package/THIRD_PARTY_NOTICES/indexmap@2.14.0/LICENSE-APACHE +201 -0
  191. package/THIRD_PARTY_NOTICES/indexmap@2.14.0/LICENSE-MIT +25 -0
  192. package/THIRD_PARTY_NOTICES/instant-distance@0.6.1/Cargo.toml +65 -0
  193. package/THIRD_PARTY_NOTICES/instant-distance@0.6.1/LICENSE +201 -0
  194. package/THIRD_PARTY_NOTICES/ipnet@2.12.0/LICENSE-APACHE +201 -0
  195. package/THIRD_PARTY_NOTICES/ipnet@2.12.0/LICENSE-MIT +7 -0
  196. package/THIRD_PARTY_NOTICES/is_terminal_polyfill@1.70.2/LICENSE-APACHE +202 -0
  197. package/THIRD_PARTY_NOTICES/is_terminal_polyfill@1.70.2/LICENSE-MIT +19 -0
  198. package/THIRD_PARTY_NOTICES/itoa@1.0.18/LICENSE-APACHE +176 -0
  199. package/THIRD_PARTY_NOTICES/itoa@1.0.18/LICENSE-MIT +23 -0
  200. package/THIRD_PARTY_NOTICES/layout-base@2.0.1/JamaJS-APACHE.txt +210 -0
  201. package/THIRD_PARTY_NOTICES/lazy_static@1.5.0/LICENSE-APACHE +201 -0
  202. package/THIRD_PARTY_NOTICES/lazy_static@1.5.0/LICENSE-MIT +25 -0
  203. package/THIRD_PARTY_NOTICES/libc@0.2.186/LICENSE-APACHE +176 -0
  204. package/THIRD_PARTY_NOTICES/libc@0.2.186/LICENSE-MIT +25 -0
  205. package/THIRD_PARTY_NOTICES/libsqlite3-sys@0.30.1/LICENSE +19 -0
  206. package/THIRD_PARTY_NOTICES/libsqlite3-sys@0.30.1/sqlcipher/LICENSE +24 -0
  207. package/THIRD_PARTY_NOTICES/linux-raw-sys@0.12.1/COPYRIGHT +29 -0
  208. package/THIRD_PARTY_NOTICES/linux-raw-sys@0.12.1/LICENSE-APACHE +201 -0
  209. package/THIRD_PARTY_NOTICES/linux-raw-sys@0.12.1/LICENSE-Apache-2.0_WITH_LLVM-exception +220 -0
  210. package/THIRD_PARTY_NOTICES/linux-raw-sys@0.12.1/LICENSE-MIT +23 -0
  211. package/THIRD_PARTY_NOTICES/litemap@0.8.2/LICENSE +46 -0
  212. package/THIRD_PARTY_NOTICES/lock_api@0.4.14/LICENSE-APACHE +201 -0
  213. package/THIRD_PARTY_NOTICES/lock_api@0.4.14/LICENSE-MIT +25 -0
  214. package/THIRD_PARTY_NOTICES/log@0.4.29/LICENSE-APACHE +201 -0
  215. package/THIRD_PARTY_NOTICES/log@0.4.29/LICENSE-MIT +25 -0
  216. package/THIRD_PARTY_NOTICES/matchers@0.2.0/LICENSE +19 -0
  217. package/THIRD_PARTY_NOTICES/matchit@0.8.4/LICENSE +21 -0
  218. package/THIRD_PARTY_NOTICES/matchit@0.8.4/LICENSE.httprouter +29 -0
  219. package/THIRD_PARTY_NOTICES/memchr@2.8.0/COPYING +3 -0
  220. package/THIRD_PARTY_NOTICES/memchr@2.8.0/LICENSE-MIT +21 -0
  221. package/THIRD_PARTY_NOTICES/mime@0.3.17/LICENSE-APACHE +201 -0
  222. package/THIRD_PARTY_NOTICES/mime@0.3.17/LICENSE-MIT +20 -0
  223. package/THIRD_PARTY_NOTICES/mime_guess@2.0.5/LICENSE +22 -0
  224. package/THIRD_PARTY_NOTICES/minimal-lexical@0.2.1/LICENSE-APACHE +201 -0
  225. package/THIRD_PARTY_NOTICES/minimal-lexical@0.2.1/LICENSE-MIT +23 -0
  226. package/THIRD_PARTY_NOTICES/minimal-lexical@0.2.1/LICENSE.md +37 -0
  227. package/THIRD_PARTY_NOTICES/miniz_oxide@0.8.9/LICENSE +25 -0
  228. package/THIRD_PARTY_NOTICES/miniz_oxide@0.8.9/LICENSE-APACHE.md +177 -0
  229. package/THIRD_PARTY_NOTICES/miniz_oxide@0.8.9/LICENSE-MIT.md +24 -0
  230. package/THIRD_PARTY_NOTICES/miniz_oxide@0.8.9/LICENSE-ZLIB.md +14 -0
  231. package/THIRD_PARTY_NOTICES/mio@1.2.0/LICENSE +19 -0
  232. package/THIRD_PARTY_NOTICES/nom@7.1.3/LICENSE +20 -0
  233. package/THIRD_PARTY_NOTICES/nu-ansi-term@0.50.3/LICENSE +22 -0
  234. package/THIRD_PARTY_NOTICES/num-modular@0.6.1/LICENSE +201 -0
  235. package/THIRD_PARTY_NOTICES/num-order@1.2.0/LICENSE +201 -0
  236. package/THIRD_PARTY_NOTICES/num-traits@0.2.19/LICENSE-APACHE +201 -0
  237. package/THIRD_PARTY_NOTICES/num-traits@0.2.19/LICENSE-MIT +25 -0
  238. package/THIRD_PARTY_NOTICES/num_cpus@1.17.0/LICENSE-APACHE +201 -0
  239. package/THIRD_PARTY_NOTICES/num_cpus@1.17.0/LICENSE-MIT +20 -0
  240. package/THIRD_PARTY_NOTICES/once_cell@1.21.4/LICENSE-APACHE +201 -0
  241. package/THIRD_PARTY_NOTICES/once_cell@1.21.4/LICENSE-MIT +23 -0
  242. package/THIRD_PARTY_NOTICES/once_cell_polyfill@1.70.2/LICENSE-APACHE +202 -0
  243. package/THIRD_PARTY_NOTICES/once_cell_polyfill@1.70.2/LICENSE-MIT +19 -0
  244. package/THIRD_PARTY_NOTICES/option-ext@0.2.0/SOURCE.crate +0 -0
  245. package/THIRD_PARTY_NOTICES/ordered-float@3.9.2/LICENSE-MIT +25 -0
  246. package/THIRD_PARTY_NOTICES/parking_lot@0.12.5/LICENSE-APACHE +201 -0
  247. package/THIRD_PARTY_NOTICES/parking_lot@0.12.5/LICENSE-MIT +25 -0
  248. package/THIRD_PARTY_NOTICES/parking_lot_core@0.9.12/LICENSE-APACHE +201 -0
  249. package/THIRD_PARTY_NOTICES/parking_lot_core@0.9.12/LICENSE-MIT +25 -0
  250. package/THIRD_PARTY_NOTICES/pastey@0.2.3/LICENSE-APACHE +176 -0
  251. package/THIRD_PARTY_NOTICES/pastey@0.2.3/LICENSE-MIT +23 -0
  252. package/THIRD_PARTY_NOTICES/percent-encoding@2.3.2/LICENSE-APACHE +201 -0
  253. package/THIRD_PARTY_NOTICES/percent-encoding@2.3.2/LICENSE-MIT +25 -0
  254. package/THIRD_PARTY_NOTICES/pest@2.8.6/LICENSE-APACHE +201 -0
  255. package/THIRD_PARTY_NOTICES/pest@2.8.6/LICENSE-MIT +23 -0
  256. package/THIRD_PARTY_NOTICES/pest_derive@2.8.6/LICENSE-APACHE +201 -0
  257. package/THIRD_PARTY_NOTICES/pest_derive@2.8.6/LICENSE-MIT +23 -0
  258. package/THIRD_PARTY_NOTICES/pest_generator@2.8.6/LICENSE-APACHE +201 -0
  259. package/THIRD_PARTY_NOTICES/pest_generator@2.8.6/LICENSE-MIT +23 -0
  260. package/THIRD_PARTY_NOTICES/pest_meta@2.8.6/LICENSE-APACHE +201 -0
  261. package/THIRD_PARTY_NOTICES/pest_meta@2.8.6/LICENSE-MIT +23 -0
  262. package/THIRD_PARTY_NOTICES/pin-project-lite@0.2.17/LICENSE-APACHE +177 -0
  263. package/THIRD_PARTY_NOTICES/pin-project-lite@0.2.17/LICENSE-MIT +23 -0
  264. package/THIRD_PARTY_NOTICES/pkg-config@0.3.33/LICENSE-APACHE +201 -0
  265. package/THIRD_PARTY_NOTICES/pkg-config@0.3.33/LICENSE-MIT +25 -0
  266. package/THIRD_PARTY_NOTICES/potential_utf@0.1.5/LICENSE +46 -0
  267. package/THIRD_PARTY_NOTICES/ppv-lite86@0.2.21/LICENSE-APACHE +201 -0
  268. package/THIRD_PARTY_NOTICES/ppv-lite86@0.2.21/LICENSE-MIT +25 -0
  269. package/THIRD_PARTY_NOTICES/proc-macro2@1.0.106/LICENSE-APACHE +176 -0
  270. package/THIRD_PARTY_NOTICES/proc-macro2@1.0.106/LICENSE-MIT +23 -0
  271. package/THIRD_PARTY_NOTICES/quote@1.0.45/LICENSE-APACHE +176 -0
  272. package/THIRD_PARTY_NOTICES/quote@1.0.45/LICENSE-MIT +23 -0
  273. package/THIRD_PARTY_NOTICES/rand@0.10.1/COPYRIGHT +12 -0
  274. package/THIRD_PARTY_NOTICES/rand@0.10.1/LICENSE-APACHE +176 -0
  275. package/THIRD_PARTY_NOTICES/rand@0.10.1/LICENSE-MIT +26 -0
  276. package/THIRD_PARTY_NOTICES/rand@0.8.6/COPYRIGHT +12 -0
  277. package/THIRD_PARTY_NOTICES/rand@0.8.6/LICENSE-APACHE +176 -0
  278. package/THIRD_PARTY_NOTICES/rand@0.8.6/LICENSE-MIT +26 -0
  279. package/THIRD_PARTY_NOTICES/rand_chacha@0.3.1/COPYRIGHT +12 -0
  280. package/THIRD_PARTY_NOTICES/rand_chacha@0.3.1/LICENSE-APACHE +201 -0
  281. package/THIRD_PARTY_NOTICES/rand_chacha@0.3.1/LICENSE-MIT +26 -0
  282. package/THIRD_PARTY_NOTICES/rand_core@0.10.1/COPYRIGHT +9 -0
  283. package/THIRD_PARTY_NOTICES/rand_core@0.10.1/LICENSE-APACHE +187 -0
  284. package/THIRD_PARTY_NOTICES/rand_core@0.10.1/LICENSE-MIT +25 -0
  285. package/THIRD_PARTY_NOTICES/rand_core@0.6.4/COPYRIGHT +12 -0
  286. package/THIRD_PARTY_NOTICES/rand_core@0.6.4/LICENSE-APACHE +187 -0
  287. package/THIRD_PARTY_NOTICES/rand_core@0.6.4/LICENSE-MIT +26 -0
  288. package/THIRD_PARTY_NOTICES/rayon-core@1.13.0/LICENSE-APACHE +201 -0
  289. package/THIRD_PARTY_NOTICES/rayon-core@1.13.0/LICENSE-MIT +25 -0
  290. package/THIRD_PARTY_NOTICES/rayon@1.12.0/LICENSE-APACHE +201 -0
  291. package/THIRD_PARTY_NOTICES/rayon@1.12.0/LICENSE-MIT +25 -0
  292. package/THIRD_PARTY_NOTICES/ref-cast-impl@1.0.25/LICENSE-APACHE +176 -0
  293. package/THIRD_PARTY_NOTICES/ref-cast-impl@1.0.25/LICENSE-MIT +23 -0
  294. package/THIRD_PARTY_NOTICES/ref-cast@1.0.25/LICENSE-APACHE +176 -0
  295. package/THIRD_PARTY_NOTICES/ref-cast@1.0.25/LICENSE-MIT +23 -0
  296. package/THIRD_PARTY_NOTICES/regex-automata@0.4.14/LICENSE-APACHE +201 -0
  297. package/THIRD_PARTY_NOTICES/regex-automata@0.4.14/LICENSE-MIT +25 -0
  298. package/THIRD_PARTY_NOTICES/regex-syntax@0.8.10/LICENSE-APACHE +201 -0
  299. package/THIRD_PARTY_NOTICES/regex-syntax@0.8.10/LICENSE-MIT +25 -0
  300. package/THIRD_PARTY_NOTICES/regex-syntax@0.8.10/src/unicode_tables/LICENSE-UNICODE +57 -0
  301. package/THIRD_PARTY_NOTICES/regex@1.12.3/LICENSE-APACHE +201 -0
  302. package/THIRD_PARTY_NOTICES/regex@1.12.3/LICENSE-MIT +25 -0
  303. package/THIRD_PARTY_NOTICES/reqwest@0.12.28/LICENSE-APACHE +201 -0
  304. package/THIRD_PARTY_NOTICES/reqwest@0.12.28/LICENSE-MIT +20 -0
  305. package/THIRD_PARTY_NOTICES/rmcp-macros@1.7.0/Cargo.toml +54 -0
  306. package/THIRD_PARTY_NOTICES/rmcp-macros@1.7.0/LICENSE +216 -0
  307. package/THIRD_PARTY_NOTICES/rmcp@1.7.0/Cargo.toml +683 -0
  308. package/THIRD_PARTY_NOTICES/rmcp@1.7.0/LICENSE +216 -0
  309. package/THIRD_PARTY_NOTICES/rusqlite@0.32.1/LICENSE +19 -0
  310. package/THIRD_PARTY_NOTICES/rustix@1.1.4/COPYRIGHT +29 -0
  311. package/THIRD_PARTY_NOTICES/rustix@1.1.4/LICENSE-APACHE +201 -0
  312. package/THIRD_PARTY_NOTICES/rustix@1.1.4/LICENSE-Apache-2.0_WITH_LLVM-exception +220 -0
  313. package/THIRD_PARTY_NOTICES/rustix@1.1.4/LICENSE-MIT +23 -0
  314. package/THIRD_PARTY_NOTICES/rustls-pki-types@1.14.1/LICENSE-APACHE +201 -0
  315. package/THIRD_PARTY_NOTICES/rustls-pki-types@1.14.1/LICENSE-MIT +25 -0
  316. package/THIRD_PARTY_NOTICES/rustls-webpki@0.103.15/LICENSE +19 -0
  317. package/THIRD_PARTY_NOTICES/rustls@0.23.45/LICENSE-APACHE +201 -0
  318. package/THIRD_PARTY_NOTICES/rustls@0.23.45/LICENSE-ISC +15 -0
  319. package/THIRD_PARTY_NOTICES/rustls@0.23.45/LICENSE-MIT +25 -0
  320. package/THIRD_PARTY_NOTICES/ryu@1.0.23/LICENSE-APACHE +176 -0
  321. package/THIRD_PARTY_NOTICES/ryu@1.0.23/LICENSE-BOOST +23 -0
  322. package/THIRD_PARTY_NOTICES/same-file@1.0.6/COPYING +3 -0
  323. package/THIRD_PARTY_NOTICES/same-file@1.0.6/LICENSE-MIT +21 -0
  324. package/THIRD_PARTY_NOTICES/schemars@0.8.22/LICENSE +21 -0
  325. package/THIRD_PARTY_NOTICES/schemars@1.2.1/LICENSE +21 -0
  326. package/THIRD_PARTY_NOTICES/schemars_derive@0.8.22/LICENSE +21 -0
  327. package/THIRD_PARTY_NOTICES/schemars_derive@1.2.1/LICENSE +21 -0
  328. package/THIRD_PARTY_NOTICES/scopeguard@1.2.0/LICENSE-APACHE +201 -0
  329. package/THIRD_PARTY_NOTICES/scopeguard@1.2.0/LICENSE-MIT +25 -0
  330. package/THIRD_PARTY_NOTICES/serde@1.0.228/LICENSE-APACHE +176 -0
  331. package/THIRD_PARTY_NOTICES/serde@1.0.228/LICENSE-MIT +23 -0
  332. package/THIRD_PARTY_NOTICES/serde_core@1.0.228/LICENSE-APACHE +176 -0
  333. package/THIRD_PARTY_NOTICES/serde_core@1.0.228/LICENSE-MIT +23 -0
  334. package/THIRD_PARTY_NOTICES/serde_derive@1.0.228/LICENSE-APACHE +176 -0
  335. package/THIRD_PARTY_NOTICES/serde_derive@1.0.228/LICENSE-MIT +23 -0
  336. package/THIRD_PARTY_NOTICES/serde_derive_internals@0.29.1/LICENSE-APACHE +176 -0
  337. package/THIRD_PARTY_NOTICES/serde_derive_internals@0.29.1/LICENSE-MIT +23 -0
  338. package/THIRD_PARTY_NOTICES/serde_json@1.0.149/LICENSE-APACHE +176 -0
  339. package/THIRD_PARTY_NOTICES/serde_json@1.0.149/LICENSE-MIT +23 -0
  340. package/THIRD_PARTY_NOTICES/serde_path_to_error@0.1.20/LICENSE-APACHE +176 -0
  341. package/THIRD_PARTY_NOTICES/serde_path_to_error@0.1.20/LICENSE-MIT +23 -0
  342. package/THIRD_PARTY_NOTICES/serde_spanned@0.6.9/LICENSE-APACHE +202 -0
  343. package/THIRD_PARTY_NOTICES/serde_spanned@0.6.9/LICENSE-MIT +19 -0
  344. package/THIRD_PARTY_NOTICES/serde_urlencoded@0.7.1/LICENSE-APACHE +176 -0
  345. package/THIRD_PARTY_NOTICES/serde_urlencoded@0.7.1/LICENSE-MIT +25 -0
  346. package/THIRD_PARTY_NOTICES/sha2@0.10.9/LICENSE-APACHE +201 -0
  347. package/THIRD_PARTY_NOTICES/sha2@0.10.9/LICENSE-MIT +27 -0
  348. package/THIRD_PARTY_NOTICES/sharded-slab@0.1.7/LICENSE +19 -0
  349. package/THIRD_PARTY_NOTICES/shlex@1.3.0/LICENSE-APACHE +13 -0
  350. package/THIRD_PARTY_NOTICES/shlex@1.3.0/LICENSE-MIT +21 -0
  351. package/THIRD_PARTY_NOTICES/signal-hook-registry@1.4.8/LICENSE-APACHE +201 -0
  352. package/THIRD_PARTY_NOTICES/signal-hook-registry@1.4.8/LICENSE-MIT +25 -0
  353. package/THIRD_PARTY_NOTICES/simd-adler32@0.3.9/LICENSE.md +21 -0
  354. package/THIRD_PARTY_NOTICES/slab@0.4.12/LICENSE +25 -0
  355. package/THIRD_PARTY_NOTICES/smallvec@1.15.1/LICENSE-APACHE +201 -0
  356. package/THIRD_PARTY_NOTICES/smallvec@1.15.1/LICENSE-MIT +25 -0
  357. package/THIRD_PARTY_NOTICES/socket2@0.6.3/LICENSE-APACHE +201 -0
  358. package/THIRD_PARTY_NOTICES/socket2@0.6.3/LICENSE-MIT +25 -0
  359. package/THIRD_PARTY_NOTICES/sse-stream@0.2.3/Cargo.toml +124 -0
  360. package/THIRD_PARTY_NOTICES/sse-stream@0.2.3/LICENSE-APACHE +202 -0
  361. package/THIRD_PARTY_NOTICES/sse-stream@0.2.3/LICENSE-MIT +21 -0
  362. package/THIRD_PARTY_NOTICES/stable_deref_trait@1.2.1/LICENSE-APACHE +201 -0
  363. package/THIRD_PARTY_NOTICES/stable_deref_trait@1.2.1/LICENSE-MIT +25 -0
  364. package/THIRD_PARTY_NOTICES/streaming-iterator@0.1.9/LICENSE-APACHE +202 -0
  365. package/THIRD_PARTY_NOTICES/streaming-iterator@0.1.9/LICENSE-MIT +19 -0
  366. package/THIRD_PARTY_NOTICES/strsim@0.11.1/LICENSE +23 -0
  367. package/THIRD_PARTY_NOTICES/syn@2.0.117/LICENSE-APACHE +176 -0
  368. package/THIRD_PARTY_NOTICES/syn@2.0.117/LICENSE-MIT +23 -0
  369. package/THIRD_PARTY_NOTICES/syn@3.0.6/LICENSE-APACHE +176 -0
  370. package/THIRD_PARTY_NOTICES/syn@3.0.6/LICENSE-MIT +23 -0
  371. package/THIRD_PARTY_NOTICES/sync_wrapper@1.0.2/LICENSE +177 -0
  372. package/THIRD_PARTY_NOTICES/synstructure@0.13.2/LICENSE +7 -0
  373. package/THIRD_PARTY_NOTICES/tempfile@3.27.0/LICENSE-APACHE +201 -0
  374. package/THIRD_PARTY_NOTICES/tempfile@3.27.0/LICENSE-MIT +25 -0
  375. package/THIRD_PARTY_NOTICES/thiserror-impl@2.0.18/LICENSE-APACHE +176 -0
  376. package/THIRD_PARTY_NOTICES/thiserror-impl@2.0.18/LICENSE-MIT +23 -0
  377. package/THIRD_PARTY_NOTICES/thiserror@2.0.18/LICENSE-APACHE +176 -0
  378. package/THIRD_PARTY_NOTICES/thiserror@2.0.18/LICENSE-MIT +23 -0
  379. package/THIRD_PARTY_NOTICES/thread_local@1.1.9/LICENSE-APACHE +201 -0
  380. package/THIRD_PARTY_NOTICES/thread_local@1.1.9/LICENSE-MIT +25 -0
  381. package/THIRD_PARTY_NOTICES/tinystr@0.8.3/LICENSE +46 -0
  382. package/THIRD_PARTY_NOTICES/tokio-macros@2.7.0/LICENSE +22 -0
  383. package/THIRD_PARTY_NOTICES/tokio-rustls@0.26.4/LICENSE-APACHE +201 -0
  384. package/THIRD_PARTY_NOTICES/tokio-rustls@0.26.4/LICENSE-MIT +25 -0
  385. package/THIRD_PARTY_NOTICES/tokio-stream@0.1.18/LICENSE +21 -0
  386. package/THIRD_PARTY_NOTICES/tokio-util@0.7.18/LICENSE +21 -0
  387. package/THIRD_PARTY_NOTICES/tokio@1.52.3/LICENSE +21 -0
  388. package/THIRD_PARTY_NOTICES/toml@0.8.23/LICENSE-APACHE +202 -0
  389. package/THIRD_PARTY_NOTICES/toml@0.8.23/LICENSE-MIT +19 -0
  390. package/THIRD_PARTY_NOTICES/toml_datetime@0.6.11/LICENSE-APACHE +202 -0
  391. package/THIRD_PARTY_NOTICES/toml_datetime@0.6.11/LICENSE-MIT +19 -0
  392. package/THIRD_PARTY_NOTICES/toml_edit@0.22.27/LICENSE-APACHE +202 -0
  393. package/THIRD_PARTY_NOTICES/toml_edit@0.22.27/LICENSE-MIT +19 -0
  394. package/THIRD_PARTY_NOTICES/toml_write@0.1.2/LICENSE-APACHE +202 -0
  395. package/THIRD_PARTY_NOTICES/toml_write@0.1.2/LICENSE-MIT +19 -0
  396. package/THIRD_PARTY_NOTICES/tower-http@0.6.11/LICENSE +25 -0
  397. package/THIRD_PARTY_NOTICES/tower-layer@0.3.3/LICENSE +25 -0
  398. package/THIRD_PARTY_NOTICES/tower-service@0.3.3/LICENSE +25 -0
  399. package/THIRD_PARTY_NOTICES/tower@0.5.3/LICENSE +25 -0
  400. package/THIRD_PARTY_NOTICES/tracing-attributes@0.1.31/LICENSE +25 -0
  401. package/THIRD_PARTY_NOTICES/tracing-core@0.1.36/LICENSE +25 -0
  402. package/THIRD_PARTY_NOTICES/tracing-core@0.1.36/src/spin/LICENSE +21 -0
  403. package/THIRD_PARTY_NOTICES/tracing-log@0.2.0/LICENSE +25 -0
  404. package/THIRD_PARTY_NOTICES/tracing-subscriber@0.3.23/LICENSE +25 -0
  405. package/THIRD_PARTY_NOTICES/tracing@0.1.44/LICENSE +25 -0
  406. package/THIRD_PARTY_NOTICES/tree-sitter-language@0.1.7/LICENSE +21 -0
  407. package/THIRD_PARTY_NOTICES/tree-sitter-python@0.23.6/Cargo.toml +60 -0
  408. package/THIRD_PARTY_NOTICES/tree-sitter-python@0.23.6/LICENSE +21 -0
  409. package/THIRD_PARTY_NOTICES/tree-sitter-rust@0.24.2/LICENSE +21 -0
  410. package/THIRD_PARTY_NOTICES/tree-sitter-typescript@0.23.2/Cargo.toml +62 -0
  411. package/THIRD_PARTY_NOTICES/tree-sitter-typescript@0.23.2/LICENSE +21 -0
  412. package/THIRD_PARTY_NOTICES/tree-sitter@0.26.9/LICENSE +21 -0
  413. package/THIRD_PARTY_NOTICES/tree-sitter@0.26.9/src/unicode/LICENSE +414 -0
  414. package/THIRD_PARTY_NOTICES/try-lock@0.2.5/LICENSE +21 -0
  415. package/THIRD_PARTY_NOTICES/typenum@1.20.0/LICENSE +1 -0
  416. package/THIRD_PARTY_NOTICES/typenum@1.20.0/LICENSE-APACHE +201 -0
  417. package/THIRD_PARTY_NOTICES/typenum@1.20.0/LICENSE-MIT +21 -0
  418. package/THIRD_PARTY_NOTICES/ucd-trie@0.1.7/LICENSE-APACHE +201 -0
  419. package/THIRD_PARTY_NOTICES/ucd-trie@0.1.7/LICENSE-MIT +21 -0
  420. package/THIRD_PARTY_NOTICES/unicase@2.9.0/LICENSE-APACHE +201 -0
  421. package/THIRD_PARTY_NOTICES/unicase@2.9.0/LICENSE-MIT +20 -0
  422. package/THIRD_PARTY_NOTICES/unicode-ident@1.0.24/LICENSE-APACHE +176 -0
  423. package/THIRD_PARTY_NOTICES/unicode-ident@1.0.24/LICENSE-MIT +23 -0
  424. package/THIRD_PARTY_NOTICES/unicode-ident@1.0.24/LICENSE-UNICODE +39 -0
  425. package/THIRD_PARTY_NOTICES/untrusted@0.9.0/LICENSE.txt +13 -0
  426. package/THIRD_PARTY_NOTICES/ureq@2.12.1/LICENSE-APACHE +201 -0
  427. package/THIRD_PARTY_NOTICES/ureq@2.12.1/LICENSE-MIT +21 -0
  428. package/THIRD_PARTY_NOTICES/ureq@2.12.1/src/chunked/LICENSE-APACHE +201 -0
  429. package/THIRD_PARTY_NOTICES/ureq@2.12.1/src/chunked/LICENSE-MIT +22 -0
  430. package/THIRD_PARTY_NOTICES/url@2.5.8/LICENSE-APACHE +201 -0
  431. package/THIRD_PARTY_NOTICES/url@2.5.8/LICENSE-MIT +25 -0
  432. package/THIRD_PARTY_NOTICES/utf8_iter@1.0.4/COPYRIGHT +42 -0
  433. package/THIRD_PARTY_NOTICES/utf8_iter@1.0.4/LICENSE-APACHE +202 -0
  434. package/THIRD_PARTY_NOTICES/utf8_iter@1.0.4/LICENSE-MIT +25 -0
  435. package/THIRD_PARTY_NOTICES/utf8parse@0.2.2/LICENSE-APACHE +176 -0
  436. package/THIRD_PARTY_NOTICES/utf8parse@0.2.2/LICENSE-MIT +25 -0
  437. package/THIRD_PARTY_NOTICES/uuid@1.23.1/LICENSE-APACHE +201 -0
  438. package/THIRD_PARTY_NOTICES/uuid@1.23.1/LICENSE-MIT +26 -0
  439. package/THIRD_PARTY_NOTICES/vcpkg@0.2.15/LICENSE-APACHE +202 -0
  440. package/THIRD_PARTY_NOTICES/vcpkg@0.2.15/LICENSE-MIT +26 -0
  441. package/THIRD_PARTY_NOTICES/version_check@0.9.5/LICENSE-APACHE +201 -0
  442. package/THIRD_PARTY_NOTICES/version_check@0.9.5/LICENSE-MIT +19 -0
  443. package/THIRD_PARTY_NOTICES/walkdir@2.5.0/COPYING +3 -0
  444. package/THIRD_PARTY_NOTICES/walkdir@2.5.0/LICENSE-MIT +21 -0
  445. package/THIRD_PARTY_NOTICES/want@0.3.1/LICENSE +20 -0
  446. package/THIRD_PARTY_NOTICES/whatlang@0.16.4/Cargo.toml +76 -0
  447. package/THIRD_PARTY_NOTICES/whatlang@0.16.4/LICENSE +26 -0
  448. package/THIRD_PARTY_NOTICES/winapi-util@0.1.11/COPYING +3 -0
  449. package/THIRD_PARTY_NOTICES/winapi-util@0.1.11/LICENSE-MIT +21 -0
  450. package/THIRD_PARTY_NOTICES/winapi@0.3.9/LICENSE-APACHE +201 -0
  451. package/THIRD_PARTY_NOTICES/winapi@0.3.9/LICENSE-MIT +19 -0
  452. package/THIRD_PARTY_NOTICES/windows-link@0.2.1/license-apache-2.0 +201 -0
  453. package/THIRD_PARTY_NOTICES/windows-link@0.2.1/license-mit +21 -0
  454. package/THIRD_PARTY_NOTICES/windows-sys@0.48.0/license-apache-2.0 +201 -0
  455. package/THIRD_PARTY_NOTICES/windows-sys@0.48.0/license-mit +21 -0
  456. package/THIRD_PARTY_NOTICES/windows-sys@0.61.2/license-apache-2.0 +201 -0
  457. package/THIRD_PARTY_NOTICES/windows-sys@0.61.2/license-mit +21 -0
  458. package/THIRD_PARTY_NOTICES/windows-targets@0.48.5/license-apache-2.0 +201 -0
  459. package/THIRD_PARTY_NOTICES/windows-targets@0.48.5/license-mit +21 -0
  460. package/THIRD_PARTY_NOTICES/windows_x86_64_msvc@0.48.5/license-apache-2.0 +201 -0
  461. package/THIRD_PARTY_NOTICES/windows_x86_64_msvc@0.48.5/license-mit +21 -0
  462. package/THIRD_PARTY_NOTICES/winnow@0.7.15/LICENSE-MIT +18 -0
  463. package/THIRD_PARTY_NOTICES/writeable@0.6.3/LICENSE +46 -0
  464. package/THIRD_PARTY_NOTICES/yoke-derive@0.8.2/LICENSE +46 -0
  465. package/THIRD_PARTY_NOTICES/yoke@0.8.2/LICENSE +46 -0
  466. package/THIRD_PARTY_NOTICES/zerocopy@0.8.48/LICENSE-APACHE +202 -0
  467. package/THIRD_PARTY_NOTICES/zerocopy@0.8.48/LICENSE-BSD +24 -0
  468. package/THIRD_PARTY_NOTICES/zerocopy@0.8.48/LICENSE-MIT +26 -0
  469. package/THIRD_PARTY_NOTICES/zerofrom-derive@0.1.7/LICENSE +46 -0
  470. package/THIRD_PARTY_NOTICES/zerofrom@0.1.8/LICENSE +46 -0
  471. package/THIRD_PARTY_NOTICES/zeroize@1.8.2/LICENSE-APACHE +202 -0
  472. package/THIRD_PARTY_NOTICES/zeroize@1.8.2/LICENSE-MIT +21 -0
  473. package/THIRD_PARTY_NOTICES/zerotrie@0.2.4/LICENSE +46 -0
  474. package/THIRD_PARTY_NOTICES/zerovec-derive@0.11.3/LICENSE +46 -0
  475. package/THIRD_PARTY_NOTICES/zerovec@0.11.6/LICENSE +46 -0
  476. package/THIRD_PARTY_NOTICES/zmij@1.0.21/LICENSE-MIT +23 -0
  477. package/package.json +45 -28
  478. package/runtime/dashboard-acl.js +22 -0
  479. package/runtime/dashboard-acl.ps1 +103 -0
  480. package/runtime/dashboard-binary.js +5 -0
  481. package/runtime/dashboard-bootstrap.js +45 -0
  482. package/runtime/dashboard-files.js +20 -3
  483. package/runtime/dashboard-process.js +6 -5
  484. package/runtime/dashboard-supervisor.js +3 -1
  485. package/server.js +98 -0
  486. package/tui/index.js +1 -0
  487. package/tui/rtrt-statusline-core.d.mts +205 -0
  488. package/tui/rtrt-statusline-core.mjs +1145 -0
  489. package/tui/v2/native-runtime.mjs +81 -0
  490. package/tui/v2/native-state.mjs +66 -0
  491. package/tui/v2/rtrt-statusline.tsx +116 -0
  492. package/v2/permissions.js +119 -0
@@ -0,0 +1,81 @@
1
+ import { spawn } from "node:child_process"
2
+ import { isAbsolute } from "node:path"
3
+ import { createStatuslineController, runStatusline } from "../rtrt-statusline-core.mjs"
4
+
5
+ /** @typedef {import("@opencode/plugin/tui").Plugin.Context} Context */
6
+ /** @typedef {import("@opencode/plugin/tui/context").SlotMap["prompt.footer.status"]} FooterInput */
7
+
8
+ /** @type {readonly import("@opencode/client").OpenCodeEvent["type"][]} */
9
+ export const NATIVE_REFRESH_EVENTS = Object.freeze([
10
+ "session.created", "session.deleted", "session.renamed", "session.moved",
11
+ "session.model.selected", "session.status", "session.idle",
12
+ "session.step.ended", "session.step.failed",
13
+ "session.usage.updated",
14
+ "session.compaction.ended", "session.compaction.failed",
15
+ "model.updated", "provider.updated",
16
+ ])
17
+
18
+ /**
19
+ * @param {Context} ctx
20
+ * @param {{readonly sessionID: () => string, readonly refresh: () => void, readonly dispose: () => void}} entry
21
+ * @param {(input: FooterInput) => import("@opentui/solid").JSX.Element} render
22
+ */
23
+ export function registerNativeStatusline(ctx, entry, render) {
24
+ /** @type {Array<() => void>} */
25
+ const disposers = []
26
+ let disposed = false
27
+ const cleanup = () => {
28
+ if (disposed) return
29
+ disposed = true
30
+ /** @type {unknown[]} */
31
+ const errors = []
32
+ for (const dispose of [entry.dispose, ...disposers.reverse()]) {
33
+ try { dispose() } catch (error) { errors.push(error) }
34
+ }
35
+ if (errors.length) throw new AggregateError(errors, "Native statusline cleanup failed")
36
+ }
37
+ try {
38
+ for (const name of NATIVE_REFRESH_EVENTS) {
39
+ disposers.push(ctx.data.on(name, (event) => {
40
+ if (disposed) return
41
+ if ("sessionID" in event.data && event.data.sessionID !== entry.sessionID()) return
42
+ entry.refresh()
43
+ }))
44
+ }
45
+ disposers.push(ctx.ui.slot({ append: "prompt.footer.status", render }))
46
+ return cleanup
47
+ } catch (error) {
48
+ try { cleanup() } catch (cleanupError) {
49
+ throw new AggregateError([error, cleanupError], "Native statusline registration failed")
50
+ }
51
+ throw error
52
+ }
53
+ }
54
+
55
+ /**
56
+ * The existing controller serializes refreshes and owns subprocess aborts.
57
+ * The runner keeps its 1.5s total deadline, 64KiB cap and shell:false argv.
58
+ * An explicit bin must be absolute and never falls back after failure.
59
+ * When omitted, the optional CLI uses RTRT_BIN then PATH's rtrt; if neither
60
+ * works, the shared view shows unavailable rather than inventing CLI data.
61
+ * @param {Readonly<Record<string, unknown>>} options
62
+ * @param {(state: import("../rtrt-statusline-core.mjs").StatuslineState) => void} onState
63
+ * @param {typeof spawn} [spawnImpl]
64
+ */
65
+ export function createNativeController(options, onState, spawnImpl = spawn) {
66
+ const explicit = Object.hasOwn(options, "bin")
67
+ const bin = typeof options["bin"] === "string" ? options["bin"] : undefined
68
+ /** @type {(binary: string, args: readonly string[], settings: import("node:child_process").SpawnOptions) => import("node:child_process").ChildProcess | undefined} */
69
+ const spawnCandidate = (binary, args, settings) => {
70
+ // Keep the shared legacy runner unchanged, but deny its fallback candidates.
71
+ if (explicit && binary !== bin) return undefined
72
+ return spawnImpl(binary, args, settings)
73
+ }
74
+ return createStatuslineController({
75
+ load: (context, signal) => {
76
+ if (explicit && (bin === undefined || !isAbsolute(bin))) return undefined
77
+ return runStatusline({ ...context, bin, signal, spawnImpl: spawnCandidate })
78
+ },
79
+ onState,
80
+ })
81
+ }
@@ -0,0 +1,66 @@
1
+ import { deriveSessionEconomics } from "../rtrt-statusline-core.mjs"
2
+
3
+ /** @typedef {import("@opencode/plugin/tui").Plugin.Context} Context */
4
+
5
+ /** @param {never} value @returns {never} */
6
+ function assertNever(value) {
7
+ throw new TypeError(`Unsupported native route: ${String(value)}`)
8
+ }
9
+
10
+ /**
11
+ * @param {Context} ctx
12
+ * @param {string} [slotSessionID]
13
+ */
14
+ export function activeSessionID(ctx, slotSessionID) {
15
+ if (slotSessionID !== undefined) return slotSessionID
16
+ const route = ctx.ui.router.current()
17
+ switch (route.type) {
18
+ case "session": return route.sessionID
19
+ case "home":
20
+ case "plugin": return ""
21
+ default: return assertNever(route)
22
+ }
23
+ }
24
+
25
+ /**
26
+ * Translate only documented 2.0.20 values; never use aggregate session tokens
27
+ * as context usage, message costs as session spend, or pricing as quota.
28
+ * @param {Context} ctx
29
+ * @param {string} sessionID
30
+ * @param {ReturnType<Context["ui"]["model"]["current"]>} [selected]
31
+ * @returns {{ readonly cwd: string, readonly economics: import("../rtrt-statusline-core.mjs").StatuslineEconomics }}
32
+ */
33
+ export function nativeSnapshot(ctx, sessionID, selected = ctx.ui.model.current()) {
34
+ const session = sessionID ? ctx.data.session.get(sessionID) : undefined
35
+ const location = session?.location ?? ctx.location ?? ctx.data.location.default()
36
+ const models = ctx.data.location.model.list(location) ?? []
37
+ const providers = Array.from(new Set(models.map((model) => model.providerID)), (id) => ({
38
+ id,
39
+ models: Object.fromEntries(models.filter((model) => model.providerID === id).map((model) => [model.id, model])),
40
+ }))
41
+ const model = selected ? { id: selected.modelID, providerID: selected.providerID } : session?.model
42
+ const messages = session ? ctx.data.session.message.list(sessionID) : []
43
+ const economics = deriveSessionEconomics({
44
+ session: {
45
+ ...(session ? { cost: session.cost } : {}),
46
+ ...(model ? { model } : {}),
47
+ },
48
+ messages: messages.filter((message) => message.type === "assistant").map((message) => ({
49
+ role: "assistant",
50
+ providerID: message.model.providerID,
51
+ modelID: message.model.id,
52
+ time: message.time,
53
+ ...(message.tokens ? { tokens: message.tokens } : {}),
54
+ ...(message.error ? { error: message.error } : {}),
55
+ })),
56
+ providers,
57
+ status: { type: session && ctx.data.session.status(sessionID) === "running" ? "busy" : "idle" },
58
+ })
59
+ return {
60
+ cwd: location.directory,
61
+ economics: {
62
+ ...economics,
63
+ status: session ? economics.status : { text: "UNKNOWN", tone: "muted" },
64
+ },
65
+ }
66
+ }
@@ -0,0 +1,116 @@
1
+ /** @jsxImportSource @opentui/solid */
2
+ import type { Plugin } from "@opencode/plugin/tui"
3
+ import type { SlotMap } from "@opencode/plugin/tui/context"
4
+ import type { BoxRenderable } from "@opentui/core"
5
+ import { useTerminalDimensions } from "@opentui/solid"
6
+ import { createEffect, createMemo, createSignal, For, onMount, untrack } from "solid-js"
7
+ import {
8
+ createStatuslineViewModel,
9
+ initialStatuslineState,
10
+ type StatuslineState,
11
+ type StatuslineViewPart,
12
+ } from "../rtrt-statusline-core.mjs"
13
+ import { activeSessionID, nativeSnapshot } from "./native-state.mjs"
14
+ import { createNativeController, registerNativeStatusline } from "./native-runtime.mjs"
15
+
16
+ // Preserve the legacy footer's two-cell gutters, inherited terminal typography,
17
+ // truncation and responsive view model. All colors come from the native theme.
18
+ const GUTTER = 2
19
+
20
+ function partColor(theme: Plugin.Context["theme"], part: StatuslineViewPart) {
21
+ switch (part.role) {
22
+ case "separator": return theme.border.base
23
+ case "label": return theme.text.muted
24
+ case "badge":
25
+ case "value": return {
26
+ accent: theme.hue.accent[600],
27
+ good: theme.text.feedback.success.base,
28
+ warn: theme.text.feedback.warning.base,
29
+ bad: theme.text.feedback.error.base,
30
+ muted: theme.text.muted,
31
+ }[part.tone]
32
+ default: {
33
+ const exhaustive: never = part.role
34
+ return exhaustive
35
+ }
36
+ }
37
+ }
38
+
39
+ type Entry = {
40
+ readonly state: () => StatuslineState
41
+ readonly revision: () => number
42
+ readonly controller: ReturnType<typeof createNativeController>
43
+ }
44
+
45
+ function NativeLine(props: {
46
+ readonly ctx: Plugin.Context
47
+ readonly input: SlotMap["prompt.footer.status"]
48
+ readonly entry: Entry
49
+ }) {
50
+ const dimensions = useTerminalDimensions()
51
+ const [measuredWidth, setMeasuredWidth] = createSignal<number>()
52
+ const width = createMemo(() => Math.max(1, (measuredWidth() ?? dimensions().width) - GUTTER * 2))
53
+ const sessionID = () => activeSessionID(props.ctx, props.input.sessionID)
54
+ const snapshot = createMemo(() => {
55
+ props.entry.revision()
56
+ const session = sessionID()
57
+ const selected = props.ctx.ui.model.current()
58
+ // Stream deltas never subscribe the footer to every token.
59
+ return untrack(() => nativeSnapshot(props.ctx, session, selected))
60
+ })
61
+ const view = createMemo(() => createStatuslineViewModel(props.entry.state(), {
62
+ width: width(), economics: snapshot().economics,
63
+ }))
64
+ createEffect(() => {
65
+ props.entry.controller.setContext({
66
+ cwd: snapshot().cwd,
67
+ session: sessionID(),
68
+ width: width(),
69
+ model: snapshot().economics.modelRef ?? "",
70
+ })
71
+ })
72
+ onMount(() => props.entry.controller.start())
73
+
74
+ return (
75
+ <box
76
+ width="100%"
77
+ height={view().rows.length}
78
+ flexDirection="column"
79
+ flexShrink={0}
80
+ paddingLeft={GUTTER}
81
+ paddingRight={GUTTER}
82
+ overflow="hidden"
83
+ onSizeChange={function (this: BoxRenderable) { setMeasuredWidth(this.width) }}
84
+ >
85
+ <For each={view().rows}>
86
+ {(row) => (
87
+ <text fg={props.ctx.theme.text.muted} wrapMode="none" truncate>
88
+ <For each={row.parts}>
89
+ {(part) => <span style={{ fg: partColor(props.ctx.theme, part) }}>{part.text}</span>}
90
+ </For>
91
+ </text>
92
+ )}
93
+ </For>
94
+ </box>
95
+ )
96
+ }
97
+
98
+ export default {
99
+ id: "rtrt-statusline",
100
+ setup(ctx) {
101
+ if (ctx.options["enabled"] === false) return
102
+ const [state, setState] = createSignal(initialStatuslineState())
103
+ const [revision, setRevision] = createSignal(0)
104
+ const refreshEconomics = () => { setRevision((value) => value + 1) }
105
+ const controller = createNativeController(ctx.options, (next) => {
106
+ setState(next)
107
+ refreshEconomics()
108
+ })
109
+ const entry: Entry = { state, revision, controller }
110
+ return registerNativeStatusline(ctx, {
111
+ sessionID: () => controller.getContext().session,
112
+ refresh: () => { refreshEconomics(); controller.request() },
113
+ dispose: controller.dispose,
114
+ }, (input) => <NativeLine ctx={ctx} input={input} entry={entry} />)
115
+ },
116
+ } satisfies Plugin.Definition
@@ -0,0 +1,119 @@
1
+ import { constants } from "node:fs"
2
+ import { lstat, open } from "node:fs/promises"
3
+ import { homedir } from "node:os"
4
+ import path from "node:path"
5
+
6
+ const SESSION_ID = /^[A-Za-z0-9_-]{1,256}$/
7
+ const OWNER = "rtrt-opencode-task-agents"
8
+ const MANAGER = "rtrt-manager"
9
+ const STATE_LIMIT = 65_536
10
+ const configuredPath = (value) => typeof value === "string" && value.length > 0 && !value.includes("\0")
11
+
12
+ function boundedState(value, depth = 8, count = { value: 0 }) {
13
+ count.value++
14
+ if (count.value > 512 || depth < 0) return false
15
+ if (!value || typeof value !== "object") return true
16
+ const items = Object.values(value)
17
+ if (items.length > 128) return false
18
+ return items.every((item) => boundedState(item, depth - 1, count))
19
+ }
20
+
21
+ function secureStateFile(stat, uid) {
22
+ return stat.isFile() && !stat.isSymbolicLink() && stat.uid === uid &&
23
+ stat.nlink === 1n && (stat.mode & 0o777n) === 0o600n && stat.size <= BigInt(STATE_LIMIT)
24
+ }
25
+
26
+ function sameFile(left, right) {
27
+ return ["dev", "ino", "uid", "mode", "nlink", "size", "mtimeNs", "ctimeNs"]
28
+ .every((field) => left[field] === right[field])
29
+ }
30
+
31
+ async function secureAncestors(file, uid, statPath = lstat) {
32
+ let directory = path.dirname(file)
33
+ while (true) {
34
+ const stat = await statPath(directory, { bigint: true })
35
+ if (!stat.isDirectory() || stat.isSymbolicLink() ||
36
+ (stat.uid !== uid && stat.uid !== 0n) || (stat.mode & 0o022n) !== 0n) return false
37
+ const parent = path.dirname(directory)
38
+ if (parent === directory) return true
39
+ directory = parent
40
+ }
41
+ }
42
+
43
+ export function managedAgentStatePath(env = process.env) {
44
+ const home = configuredPath(env.HOME) ? env.HOME : homedir()
45
+ const root = configuredPath(env.OPENCODE_CONFIG_DIR)
46
+ ? path.resolve(env.OPENCODE_CONFIG_DIR)
47
+ : configuredPath(env.XDG_CONFIG_HOME)
48
+ ? path.resolve(env.XDG_CONFIG_HOME, "opencode")
49
+ : path.resolve(home, ".config", "opencode")
50
+ return path.join(root, "agents", ".rtrt-managed-state.json")
51
+ }
52
+
53
+ export async function loadAgents(file, io = { lstat, open }) {
54
+ let handle
55
+ let result
56
+ try {
57
+ const currentUser = process.getuid?.()
58
+ if (currentUser === undefined || typeof file !== "string" || !path.isAbsolute(file) || file.includes("\0")) return undefined
59
+ const uid = BigInt(currentUser)
60
+ if (!(await secureAncestors(file, uid, io.lstat))) return undefined
61
+ const stat = await io.lstat(file, { bigint: true })
62
+ if (!secureStateFile(stat, uid)) return undefined
63
+ handle = await io.open(file, constants.O_RDONLY | (constants.O_NOFOLLOW ?? 0))
64
+ const opened = await handle.stat({ bigint: true })
65
+ if (!secureStateFile(opened, uid) || !sameFile(stat, opened)) return undefined
66
+ const raw = await handle.readFile("utf8")
67
+ if (Buffer.byteLength(raw) > STATE_LIMIT) return undefined
68
+ const after = await handle.stat({ bigint: true })
69
+ const finalPath = await io.lstat(file, { bigint: true })
70
+ if (!sameFile(opened, after) || !sameFile(opened, finalPath) ||
71
+ !(await secureAncestors(file, uid, io.lstat))) return undefined
72
+ const state = JSON.parse(raw)
73
+ if (!state || typeof state !== "object" || Array.isArray(state) || !boundedState(state)) return undefined
74
+ if (state.owner !== OWNER || state.version !== 1 || !Array.isArray(state.agents)) return undefined
75
+ if (state.agents.length < 1 || state.agents.length > 128 || !state.agents.every((id) =>
76
+ typeof id === "string" && SESSION_ID.test(id))) return undefined
77
+ const agents = new Set(state.agents)
78
+ result = agents.size === state.agents.length && agents.has(MANAGER) ? agents : undefined
79
+ } catch {
80
+ // State is an authorization boundary; unreadable or malformed state fails closed.
81
+ return undefined
82
+ } finally {
83
+ if (handle) {
84
+ try { await handle.close() } catch { result = undefined }
85
+ }
86
+ }
87
+ return result
88
+ }
89
+
90
+ export async function createPermissionEvaluator(ctx, statePath = managedAgentStatePath(), active = () => true) {
91
+ const managed = await loadAgents(statePath)
92
+ const project = ctx.location.project
93
+ const directory = ctx.location.directory
94
+ return async (request) => {
95
+ if (
96
+ !active() || !managed || request.effect !== "ask" || request.action !== "shell" ||
97
+ request.resources?.length !== 1 || request.resources[0] !== "pwd" ||
98
+ !SESSION_ID.test(request.sessionID ?? "")
99
+ ) return
100
+ try {
101
+ const session = await ctx.session.get({ sessionID: request.sessionID })
102
+ if (
103
+ session?.id !== request.sessionID || !managed.has(session.agent) ||
104
+ session.agent === MANAGER || request.agent && request.agent !== session.agent ||
105
+ session.projectID !== project.id || session.location?.directory !== directory ||
106
+ !SESSION_ID.test(session.parentID ?? "")
107
+ ) return
108
+ const parent = await ctx.session.get({ sessionID: session.parentID })
109
+ if (
110
+ parent?.id !== session.parentID || parent.agent !== MANAGER ||
111
+ parent.projectID !== project.id || parent.location?.directory !== directory
112
+ ) return
113
+ if (active() && request.effect === "ask") request.effect = "allow"
114
+ } catch {
115
+ // Unknown session or unavailable host API must preserve the host's decision.
116
+ return
117
+ }
118
+ }
119
+ }