@corbet-labs/ccht 0.1.0

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 (380) hide show
  1. package/LICENSE +307 -0
  2. package/LICENSE.md +25 -0
  3. package/LICENSES/GPL-3.0-only.txt +232 -0
  4. package/LICENSES/LGPL-3.0-only.txt +304 -0
  5. package/LICENSES/dependencies/agent-client-protocol-2.1.0/LICENSE +191 -0
  6. package/LICENSES/dependencies/agent-client-protocol-derive-2.1.0/LICENSE +191 -0
  7. package/LICENSES/dependencies/agent-client-protocol-schema-1.7.0/LICENSE +190 -0
  8. package/LICENSES/dependencies/android_system_properties-0.1.6/LICENSE-APACHE +13 -0
  9. package/LICENSES/dependencies/android_system_properties-0.1.6/LICENSE-MIT +20 -0
  10. package/LICENSES/dependencies/anyhow-1.0.104/LICENSE-APACHE +176 -0
  11. package/LICENSES/dependencies/anyhow-1.0.104/LICENSE-MIT +23 -0
  12. package/LICENSES/dependencies/async-channel-2.5.0/LICENSE-APACHE +201 -0
  13. package/LICENSES/dependencies/async-channel-2.5.0/LICENSE-MIT +23 -0
  14. package/LICENSES/dependencies/async-io-2.6.0/LICENSE-APACHE +201 -0
  15. package/LICENSES/dependencies/async-io-2.6.0/LICENSE-MIT +23 -0
  16. package/LICENSES/dependencies/async-lock-3.4.2/LICENSE-APACHE +201 -0
  17. package/LICENSES/dependencies/async-lock-3.4.2/LICENSE-MIT +23 -0
  18. package/LICENSES/dependencies/async-process-2.5.0/LICENSE-APACHE +201 -0
  19. package/LICENSES/dependencies/async-process-2.5.0/LICENSE-MIT +23 -0
  20. package/LICENSES/dependencies/async-signal-0.2.14/LICENSE-APACHE +201 -0
  21. package/LICENSES/dependencies/async-signal-0.2.14/LICENSE-MIT +23 -0
  22. package/LICENSES/dependencies/async-task-4.7.1/LICENSE-APACHE +201 -0
  23. package/LICENSES/dependencies/async-task-4.7.1/LICENSE-MIT +23 -0
  24. package/LICENSES/dependencies/atomic-waker-1.1.2/LICENSE-APACHE +201 -0
  25. package/LICENSES/dependencies/atomic-waker-1.1.2/LICENSE-MIT +23 -0
  26. package/LICENSES/dependencies/atomic-waker-1.1.2/LICENSE-THIRD-PARTY +45 -0
  27. package/LICENSES/dependencies/autocfg-1.5.1/LICENSE-APACHE +201 -0
  28. package/LICENSES/dependencies/autocfg-1.5.1/LICENSE-MIT +25 -0
  29. package/LICENSES/dependencies/base64-0.22.1/LICENSE-APACHE +201 -0
  30. package/LICENSES/dependencies/base64-0.22.1/LICENSE-MIT +21 -0
  31. package/LICENSES/dependencies/base64-0.23.1/LICENSE-APACHE +201 -0
  32. package/LICENSES/dependencies/base64-0.23.1/LICENSE-MIT +21 -0
  33. package/LICENSES/dependencies/bitflags-1.3.2/LICENSE-APACHE +201 -0
  34. package/LICENSES/dependencies/bitflags-1.3.2/LICENSE-MIT +25 -0
  35. package/LICENSES/dependencies/bitflags-2.13.2/LICENSE-APACHE +201 -0
  36. package/LICENSES/dependencies/bitflags-2.13.2/LICENSE-MIT +25 -0
  37. package/LICENSES/dependencies/blocking-1.7.0/LICENSE-APACHE +201 -0
  38. package/LICENSES/dependencies/blocking-1.7.0/LICENSE-MIT +23 -0
  39. package/LICENSES/dependencies/bs58-0.5.1/LICENSE-APACHE +201 -0
  40. package/LICENSES/dependencies/bs58-0.5.1/LICENSE-MIT +20 -0
  41. package/LICENSES/dependencies/bumpalo-3.20.3/LICENSE-APACHE +201 -0
  42. package/LICENSES/dependencies/bumpalo-3.20.3/LICENSE-MIT +25 -0
  43. package/LICENSES/dependencies/cc-1.4.5/LICENSE-APACHE +201 -0
  44. package/LICENSES/dependencies/cc-1.4.5/LICENSE-MIT +25 -0
  45. package/LICENSES/dependencies/cfg-if-1.0.4/LICENSE-APACHE +201 -0
  46. package/LICENSES/dependencies/cfg-if-1.0.4/LICENSE-MIT +25 -0
  47. package/LICENSES/dependencies/chrono-0.4.45/LICENSE.txt +240 -0
  48. package/LICENSES/dependencies/concurrent-queue-2.5.0/LICENSE-APACHE +201 -0
  49. package/LICENSES/dependencies/concurrent-queue-2.5.0/LICENSE-MIT +23 -0
  50. package/LICENSES/dependencies/convert_case-0.10.0/LICENSE +21 -0
  51. package/LICENSES/dependencies/core-foundation-sys-0.8.7/LICENSE-APACHE +201 -0
  52. package/LICENSES/dependencies/core-foundation-sys-0.8.7/LICENSE-MIT +25 -0
  53. package/LICENSES/dependencies/crossbeam-deque-0.8.8/LICENSE-APACHE +201 -0
  54. package/LICENSES/dependencies/crossbeam-deque-0.8.8/LICENSE-MIT +27 -0
  55. package/LICENSES/dependencies/crossbeam-epoch-0.9.21/LICENSE-APACHE +201 -0
  56. package/LICENSES/dependencies/crossbeam-epoch-0.9.21/LICENSE-MIT +27 -0
  57. package/LICENSES/dependencies/crossbeam-utils-0.8.23/LICENSE-APACHE +201 -0
  58. package/LICENSES/dependencies/crossbeam-utils-0.8.23/LICENSE-MIT +27 -0
  59. package/LICENSES/dependencies/darling-0.24.1/LICENSE +21 -0
  60. package/LICENSES/dependencies/darling_core-0.24.1/LICENSE +21 -0
  61. package/LICENSES/dependencies/darling_macro-0.24.1/LICENSE +21 -0
  62. package/LICENSES/dependencies/defmt-1.1.1/LICENSE-APACHE +201 -0
  63. package/LICENSES/dependencies/defmt-1.1.1/LICENSE-MIT +25 -0
  64. package/LICENSES/dependencies/defmt-macros-1.1.1/LICENSE-APACHE +201 -0
  65. package/LICENSES/dependencies/defmt-macros-1.1.1/LICENSE-MIT +25 -0
  66. package/LICENSES/dependencies/defmt-parser-1.0.0/LICENSE-APACHE +201 -0
  67. package/LICENSES/dependencies/defmt-parser-1.0.0/LICENSE-MIT +25 -0
  68. package/LICENSES/dependencies/deranged-0.5.8/LICENSE-Apache +202 -0
  69. package/LICENSES/dependencies/deranged-0.5.8/LICENSE-MIT +19 -0
  70. package/LICENSES/dependencies/derive_more-2.1.1/LICENSE +21 -0
  71. package/LICENSES/dependencies/derive_more-impl-2.1.1/LICENSE +21 -0
  72. package/LICENSES/dependencies/dyn-clone-1.0.20/LICENSE-APACHE +176 -0
  73. package/LICENSES/dependencies/dyn-clone-1.0.20/LICENSE-MIT +23 -0
  74. package/LICENSES/dependencies/either-1.18.0/LICENSE-APACHE +201 -0
  75. package/LICENSES/dependencies/either-1.18.0/LICENSE-MIT +25 -0
  76. package/LICENSES/dependencies/equivalent-1.0.2/LICENSE-APACHE +201 -0
  77. package/LICENSES/dependencies/equivalent-1.0.2/LICENSE-MIT +25 -0
  78. package/LICENSES/dependencies/errno-0.3.14/LICENSE-APACHE +201 -0
  79. package/LICENSES/dependencies/errno-0.3.14/LICENSE-MIT +25 -0
  80. package/LICENSES/dependencies/event-listener-5.4.2/LICENSE-APACHE +201 -0
  81. package/LICENSES/dependencies/event-listener-5.4.2/LICENSE-MIT +23 -0
  82. package/LICENSES/dependencies/event-listener-strategy-0.5.4/LICENSE-APACHE +201 -0
  83. package/LICENSES/dependencies/event-listener-strategy-0.5.4/LICENSE-MIT +23 -0
  84. package/LICENSES/dependencies/fallible-iterator-0.3.0/LICENSE-APACHE +202 -0
  85. package/LICENSES/dependencies/fallible-iterator-0.3.0/LICENSE-MIT +19 -0
  86. package/LICENSES/dependencies/fastrand-2.5.0/LICENSE-APACHE +201 -0
  87. package/LICENSES/dependencies/fastrand-2.5.0/LICENSE-MIT +23 -0
  88. package/LICENSES/dependencies/find-msvc-tools-0.1.12/LICENSE-APACHE +201 -0
  89. package/LICENSES/dependencies/find-msvc-tools-0.1.12/LICENSE-MIT +25 -0
  90. package/LICENSES/dependencies/fixedbitset-0.5.7/LICENSE-APACHE +201 -0
  91. package/LICENSES/dependencies/fixedbitset-0.5.7/LICENSE-MIT +25 -0
  92. package/LICENSES/dependencies/foldhash-0.2.0/LICENSE +19 -0
  93. package/LICENSES/dependencies/futures-0.3.34/LICENSE-APACHE +202 -0
  94. package/LICENSES/dependencies/futures-0.3.34/LICENSE-MIT +26 -0
  95. package/LICENSES/dependencies/futures-channel-0.3.34/LICENSE-APACHE +202 -0
  96. package/LICENSES/dependencies/futures-channel-0.3.34/LICENSE-MIT +26 -0
  97. package/LICENSES/dependencies/futures-concurrency-7.7.1/LICENSE-APACHE +190 -0
  98. package/LICENSES/dependencies/futures-concurrency-7.7.1/LICENSE-MIT +21 -0
  99. package/LICENSES/dependencies/futures-core-0.3.34/LICENSE-APACHE +202 -0
  100. package/LICENSES/dependencies/futures-core-0.3.34/LICENSE-MIT +26 -0
  101. package/LICENSES/dependencies/futures-executor-0.3.34/LICENSE-APACHE +202 -0
  102. package/LICENSES/dependencies/futures-executor-0.3.34/LICENSE-MIT +26 -0
  103. package/LICENSES/dependencies/futures-io-0.3.34/LICENSE-APACHE +202 -0
  104. package/LICENSES/dependencies/futures-io-0.3.34/LICENSE-MIT +26 -0
  105. package/LICENSES/dependencies/futures-lite-2.6.1/LICENSE-APACHE +201 -0
  106. package/LICENSES/dependencies/futures-lite-2.6.1/LICENSE-MIT +23 -0
  107. package/LICENSES/dependencies/futures-lite-2.6.1/LICENSE-THIRD-PARTY +45 -0
  108. package/LICENSES/dependencies/futures-macro-0.3.34/LICENSE-APACHE +202 -0
  109. package/LICENSES/dependencies/futures-macro-0.3.34/LICENSE-MIT +26 -0
  110. package/LICENSES/dependencies/futures-sink-0.3.34/LICENSE-APACHE +202 -0
  111. package/LICENSES/dependencies/futures-sink-0.3.34/LICENSE-MIT +26 -0
  112. package/LICENSES/dependencies/futures-task-0.3.34/LICENSE-APACHE +202 -0
  113. package/LICENSES/dependencies/futures-task-0.3.34/LICENSE-MIT +26 -0
  114. package/LICENSES/dependencies/futures-util-0.3.34/LICENSE-APACHE +202 -0
  115. package/LICENSES/dependencies/futures-util-0.3.34/LICENSE-MIT +26 -0
  116. package/LICENSES/dependencies/getrandom-0.4.3/LICENSE-APACHE +201 -0
  117. package/LICENSES/dependencies/getrandom-0.4.3/LICENSE-MIT +26 -0
  118. package/LICENSES/dependencies/gimli-0.32.3/LICENSE-APACHE +201 -0
  119. package/LICENSES/dependencies/gimli-0.32.3/LICENSE-MIT +25 -0
  120. package/LICENSES/dependencies/hashbrown-0.12.3/LICENSE-APACHE +201 -0
  121. package/LICENSES/dependencies/hashbrown-0.12.3/LICENSE-MIT +25 -0
  122. package/LICENSES/dependencies/hashbrown-0.16.1/LICENSE-APACHE +201 -0
  123. package/LICENSES/dependencies/hashbrown-0.16.1/LICENSE-MIT +25 -0
  124. package/LICENSES/dependencies/hashbrown-0.17.1/LICENSE-APACHE +201 -0
  125. package/LICENSES/dependencies/hashbrown-0.17.1/LICENSE-MIT +25 -0
  126. package/LICENSES/dependencies/heck-0.5.0/LICENSE-APACHE +201 -0
  127. package/LICENSES/dependencies/heck-0.5.0/LICENSE-MIT +25 -0
  128. package/LICENSES/dependencies/hermit-abi-0.5.3/LICENSE-APACHE +201 -0
  129. package/LICENSES/dependencies/hermit-abi-0.5.3/LICENSE-MIT +23 -0
  130. package/LICENSES/dependencies/hex-0.4.3/LICENSE-APACHE +202 -0
  131. package/LICENSES/dependencies/hex-0.4.3/LICENSE-MIT +20 -0
  132. package/LICENSES/dependencies/iana-time-zone-0.1.65/LICENSE-APACHE +201 -0
  133. package/LICENSES/dependencies/iana-time-zone-0.1.65/LICENSE-MIT +25 -0
  134. package/LICENSES/dependencies/iana-time-zone-haiku-0.1.2/LICENSE-APACHE +201 -0
  135. package/LICENSES/dependencies/iana-time-zone-haiku-0.1.2/LICENSE-MIT +25 -0
  136. package/LICENSES/dependencies/id-arena-2.3.0/LICENSE-APACHE +201 -0
  137. package/LICENSES/dependencies/id-arena-2.3.0/LICENSE-MIT +25 -0
  138. package/LICENSES/dependencies/ident_case-1.0.1/LICENSE +19 -0
  139. package/LICENSES/dependencies/indexmap-1.9.3/LICENSE-APACHE +201 -0
  140. package/LICENSES/dependencies/indexmap-1.9.3/LICENSE-MIT +25 -0
  141. package/LICENSES/dependencies/indexmap-2.14.2/LICENSE-APACHE +201 -0
  142. package/LICENSES/dependencies/indexmap-2.14.2/LICENSE-MIT +25 -0
  143. package/LICENSES/dependencies/itoa-1.0.18/LICENSE-APACHE +176 -0
  144. package/LICENSES/dependencies/itoa-1.0.18/LICENSE-MIT +23 -0
  145. package/LICENSES/dependencies/jiff-0.2.35/COPYING +3 -0
  146. package/LICENSES/dependencies/jiff-0.2.35/LICENSE-MIT +21 -0
  147. package/LICENSES/dependencies/jiff-0.2.35/UNLICENSE +24 -0
  148. package/LICENSES/dependencies/jiff-core-0.1.0/COPYING +3 -0
  149. package/LICENSES/dependencies/jiff-core-0.1.0/LICENSE-MIT +21 -0
  150. package/LICENSES/dependencies/jiff-core-0.1.0/UNLICENSE +24 -0
  151. package/LICENSES/dependencies/jiff-static-0.2.35/COPYING +3 -0
  152. package/LICENSES/dependencies/jiff-static-0.2.35/LICENSE-MIT +21 -0
  153. package/LICENSES/dependencies/jiff-static-0.2.35/UNLICENSE +24 -0
  154. package/LICENSES/dependencies/jiff-tzdb-0.1.8/COPYING +3 -0
  155. package/LICENSES/dependencies/jiff-tzdb-0.1.8/LICENSE-MIT +21 -0
  156. package/LICENSES/dependencies/jiff-tzdb-0.1.8/UNLICENSE +24 -0
  157. package/LICENSES/dependencies/jiff-tzdb-platform-0.1.3/COPYING +3 -0
  158. package/LICENSES/dependencies/jiff-tzdb-platform-0.1.3/LICENSE-MIT +21 -0
  159. package/LICENSES/dependencies/jiff-tzdb-platform-0.1.3/UNLICENSE +24 -0
  160. package/LICENSES/dependencies/js-sys-0.3.105/LICENSE-APACHE +201 -0
  161. package/LICENSES/dependencies/js-sys-0.3.105/LICENSE-MIT +25 -0
  162. package/LICENSES/dependencies/leb128-0.2.7/LICENSE-APACHE +201 -0
  163. package/LICENSES/dependencies/leb128-0.2.7/LICENSE-MIT +25 -0
  164. package/LICENSES/dependencies/leb128fmt-0.1.0/LICENSE-APACHE +201 -0
  165. package/LICENSES/dependencies/leb128fmt-0.1.0/LICENSE-MIT +23 -0
  166. package/LICENSES/dependencies/libc-0.2.189/LICENSE-APACHE +176 -0
  167. package/LICENSES/dependencies/libc-0.2.189/LICENSE-MIT +25 -0
  168. package/LICENSES/dependencies/linux-raw-sys-0.12.1/COPYRIGHT +29 -0
  169. package/LICENSES/dependencies/linux-raw-sys-0.12.1/LICENSE-APACHE +201 -0
  170. package/LICENSES/dependencies/linux-raw-sys-0.12.1/LICENSE-Apache-2.0_WITH_LLVM-exception +220 -0
  171. package/LICENSES/dependencies/linux-raw-sys-0.12.1/LICENSE-MIT +23 -0
  172. package/LICENSES/dependencies/log-0.4.34/LICENSE-APACHE +201 -0
  173. package/LICENSES/dependencies/log-0.4.34/LICENSE-MIT +25 -0
  174. package/LICENSES/dependencies/memchr-2.8.3/COPYING +3 -0
  175. package/LICENSES/dependencies/memchr-2.8.3/LICENSE-MIT +21 -0
  176. package/LICENSES/dependencies/memchr-2.8.3/UNLICENSE +24 -0
  177. package/LICENSES/dependencies/mio-1.2.3/LICENSE +19 -0
  178. package/LICENSES/dependencies/num-conv-0.2.2/LICENSE-Apache +177 -0
  179. package/LICENSES/dependencies/num-conv-0.2.2/LICENSE-MIT +19 -0
  180. package/LICENSES/dependencies/num-traits-0.2.19/LICENSE-APACHE +201 -0
  181. package/LICENSES/dependencies/num-traits-0.2.19/LICENSE-MIT +25 -0
  182. package/LICENSES/dependencies/once_cell-1.21.4/LICENSE-APACHE +201 -0
  183. package/LICENSES/dependencies/once_cell-1.21.4/LICENSE-MIT +23 -0
  184. package/LICENSES/dependencies/parking-2.2.1/LICENSE-APACHE +201 -0
  185. package/LICENSES/dependencies/parking-2.2.1/LICENSE-MIT +23 -0
  186. package/LICENSES/dependencies/parking-2.2.1/LICENSE-THIRD-PARTY +9 -0
  187. package/LICENSES/dependencies/pin-project-1.1.13/LICENSE-APACHE +177 -0
  188. package/LICENSES/dependencies/pin-project-1.1.13/LICENSE-MIT +23 -0
  189. package/LICENSES/dependencies/pin-project-internal-1.1.13/LICENSE-APACHE +177 -0
  190. package/LICENSES/dependencies/pin-project-internal-1.1.13/LICENSE-MIT +23 -0
  191. package/LICENSES/dependencies/pin-project-lite-0.2.17/LICENSE-APACHE +177 -0
  192. package/LICENSES/dependencies/pin-project-lite-0.2.17/LICENSE-MIT +23 -0
  193. package/LICENSES/dependencies/piper-0.2.5/LICENSE-APACHE +201 -0
  194. package/LICENSES/dependencies/piper-0.2.5/LICENSE-MIT +23 -0
  195. package/LICENSES/dependencies/polling-3.11.0/LICENSE-APACHE +201 -0
  196. package/LICENSES/dependencies/polling-3.11.0/LICENSE-MIT +23 -0
  197. package/LICENSES/dependencies/portable-atomic-1.15.0/LICENSE-APACHE +177 -0
  198. package/LICENSES/dependencies/portable-atomic-1.15.0/LICENSE-MIT +23 -0
  199. package/LICENSES/dependencies/portable-atomic-util-0.2.8/LICENSE-APACHE +177 -0
  200. package/LICENSES/dependencies/portable-atomic-util-0.2.8/LICENSE-MIT +23 -0
  201. package/LICENSES/dependencies/powerfmt-0.2.0/LICENSE-Apache +202 -0
  202. package/LICENSES/dependencies/powerfmt-0.2.0/LICENSE-MIT +19 -0
  203. package/LICENSES/dependencies/proc-macro2-1.0.107/LICENSE-APACHE +176 -0
  204. package/LICENSES/dependencies/proc-macro2-1.0.107/LICENSE-MIT +23 -0
  205. package/LICENSES/dependencies/quote-1.0.47/LICENSE-APACHE +176 -0
  206. package/LICENSES/dependencies/quote-1.0.47/LICENSE-MIT +23 -0
  207. package/LICENSES/dependencies/r-efi-6.0.0/AUTHORS +75 -0
  208. package/LICENSES/dependencies/rayon-1.12.0/LICENSE-APACHE +201 -0
  209. package/LICENSES/dependencies/rayon-1.12.0/LICENSE-MIT +25 -0
  210. package/LICENSES/dependencies/rayon-core-1.13.0/LICENSE-APACHE +201 -0
  211. package/LICENSES/dependencies/rayon-core-1.13.0/LICENSE-MIT +25 -0
  212. package/LICENSES/dependencies/ref-cast-1.0.27/LICENSE-APACHE +176 -0
  213. package/LICENSES/dependencies/ref-cast-1.0.27/LICENSE-MIT +23 -0
  214. package/LICENSES/dependencies/ref-cast-impl-1.0.27/LICENSE-APACHE +176 -0
  215. package/LICENSES/dependencies/ref-cast-impl-1.0.27/LICENSE-MIT +23 -0
  216. package/LICENSES/dependencies/rustc-demangle-0.1.28/LICENSE-APACHE +201 -0
  217. package/LICENSES/dependencies/rustc-demangle-0.1.28/LICENSE-MIT +25 -0
  218. package/LICENSES/dependencies/rustc-hash-2.1.3/LICENSE-APACHE +176 -0
  219. package/LICENSES/dependencies/rustc-hash-2.1.3/LICENSE-MIT +23 -0
  220. package/LICENSES/dependencies/rustc_version-0.4.1/LICENSE-APACHE +201 -0
  221. package/LICENSES/dependencies/rustc_version-0.4.1/LICENSE-MIT +25 -0
  222. package/LICENSES/dependencies/rustix-1.1.4/COPYRIGHT +29 -0
  223. package/LICENSES/dependencies/rustix-1.1.4/LICENSE-APACHE +201 -0
  224. package/LICENSES/dependencies/rustix-1.1.4/LICENSE-Apache-2.0_WITH_LLVM-exception +220 -0
  225. package/LICENSES/dependencies/rustix-1.1.4/LICENSE-MIT +23 -0
  226. package/LICENSES/dependencies/rustversion-1.0.23/LICENSE-APACHE +176 -0
  227. package/LICENSES/dependencies/rustversion-1.0.23/LICENSE-MIT +23 -0
  228. package/LICENSES/dependencies/schemars-0.9.0/LICENSE +21 -0
  229. package/LICENSES/dependencies/schemars-1.2.2/LICENSE +21 -0
  230. package/LICENSES/dependencies/schemars_derive-1.2.2/LICENSE +21 -0
  231. package/LICENSES/dependencies/semver-1.0.28/LICENSE-APACHE +176 -0
  232. package/LICENSES/dependencies/semver-1.0.28/LICENSE-MIT +23 -0
  233. package/LICENSES/dependencies/serde-1.0.229/LICENSE-APACHE +176 -0
  234. package/LICENSES/dependencies/serde-1.0.229/LICENSE-MIT +23 -0
  235. package/LICENSES/dependencies/serde_core-1.0.229/LICENSE-APACHE +176 -0
  236. package/LICENSES/dependencies/serde_core-1.0.229/LICENSE-MIT +23 -0
  237. package/LICENSES/dependencies/serde_derive-1.0.229/LICENSE-APACHE +176 -0
  238. package/LICENSES/dependencies/serde_derive-1.0.229/LICENSE-MIT +23 -0
  239. package/LICENSES/dependencies/serde_derive_internals-0.30.0/LICENSE-APACHE +176 -0
  240. package/LICENSES/dependencies/serde_derive_internals-0.30.0/LICENSE-MIT +23 -0
  241. package/LICENSES/dependencies/serde_json-1.0.151/LICENSE-APACHE +176 -0
  242. package/LICENSES/dependencies/serde_json-1.0.151/LICENSE-MIT +23 -0
  243. package/LICENSES/dependencies/serde_with-3.23.0/LICENSE-APACHE +201 -0
  244. package/LICENSES/dependencies/serde_with-3.23.0/LICENSE-MIT +25 -0
  245. package/LICENSES/dependencies/serde_with_macros-3.23.0/LICENSE-APACHE +201 -0
  246. package/LICENSES/dependencies/serde_with_macros-3.23.0/LICENSE-MIT +25 -0
  247. package/LICENSES/dependencies/shell-words-1.1.1/LICENSE-APACHE +201 -0
  248. package/LICENSES/dependencies/shell-words-1.1.1/LICENSE-MIT +25 -0
  249. package/LICENSES/dependencies/shlex-2.0.1/LICENSE-APACHE +13 -0
  250. package/LICENSES/dependencies/shlex-2.0.1/LICENSE-MIT +21 -0
  251. package/LICENSES/dependencies/signal-hook-registry-1.4.8/LICENSE-APACHE +201 -0
  252. package/LICENSES/dependencies/signal-hook-registry-1.4.8/LICENSE-MIT +25 -0
  253. package/LICENSES/dependencies/slab-0.4.12/LICENSE +25 -0
  254. package/LICENSES/dependencies/smallvec-1.16.0/LICENSE-APACHE +201 -0
  255. package/LICENSES/dependencies/smallvec-1.16.0/LICENSE-MIT +25 -0
  256. package/LICENSES/dependencies/socket2-0.6.5/LICENSE-APACHE +201 -0
  257. package/LICENSES/dependencies/socket2-0.6.5/LICENSE-MIT +25 -0
  258. package/LICENSES/dependencies/stable_deref_trait-1.2.1/LICENSE-APACHE +201 -0
  259. package/LICENSES/dependencies/stable_deref_trait-1.2.1/LICENSE-MIT +25 -0
  260. package/LICENSES/dependencies/strsim-0.11.1/LICENSE +23 -0
  261. package/LICENSES/dependencies/strum-0.28.0/LICENSE +21 -0
  262. package/LICENSES/dependencies/strum_macros-0.28.0/LICENSE +21 -0
  263. package/LICENSES/dependencies/syn-2.0.119/LICENSE-APACHE +176 -0
  264. package/LICENSES/dependencies/syn-2.0.119/LICENSE-MIT +23 -0
  265. package/LICENSES/dependencies/syn-3.0.5/LICENSE-APACHE +176 -0
  266. package/LICENSES/dependencies/syn-3.0.5/LICENSE-MIT +23 -0
  267. package/LICENSES/dependencies/thiserror-2.0.20/LICENSE-APACHE +176 -0
  268. package/LICENSES/dependencies/thiserror-2.0.20/LICENSE-MIT +23 -0
  269. package/LICENSES/dependencies/thiserror-impl-2.0.20/LICENSE-APACHE +176 -0
  270. package/LICENSES/dependencies/thiserror-impl-2.0.20/LICENSE-MIT +23 -0
  271. package/LICENSES/dependencies/time-0.3.55/LICENSE-Apache +177 -0
  272. package/LICENSES/dependencies/time-0.3.55/LICENSE-MIT +19 -0
  273. package/LICENSES/dependencies/time-core-0.1.9/LICENSE-Apache +177 -0
  274. package/LICENSES/dependencies/time-core-0.1.9/LICENSE-MIT +19 -0
  275. package/LICENSES/dependencies/time-macros-0.2.32/LICENSE-Apache +177 -0
  276. package/LICENSES/dependencies/time-macros-0.2.32/LICENSE-MIT +19 -0
  277. package/LICENSES/dependencies/tinyvec-1.13.2/LICENSE-APACHE.md +202 -0
  278. package/LICENSES/dependencies/tinyvec-1.13.2/LICENSE-MIT.md +5 -0
  279. package/LICENSES/dependencies/tinyvec-1.13.2/LICENSE-ZLIB.md +11 -0
  280. package/LICENSES/dependencies/tinyvec_macros-0.1.1/LICENSE-APACHE.md +202 -0
  281. package/LICENSES/dependencies/tinyvec_macros-0.1.1/LICENSE-MIT.md +21 -0
  282. package/LICENSES/dependencies/tinyvec_macros-0.1.1/LICENSE-ZLIB.md +20 -0
  283. package/LICENSES/dependencies/tokio-1.53.1/LICENSE +21 -0
  284. package/LICENSES/dependencies/tokio-macros-2.7.2/LICENSE +22 -0
  285. package/LICENSES/dependencies/tracing-0.1.44/LICENSE +25 -0
  286. package/LICENSES/dependencies/tracing-attributes-0.1.31/LICENSE +25 -0
  287. package/LICENSES/dependencies/tracing-core-0.1.36/LICENSE +25 -0
  288. package/LICENSES/dependencies/unicode-ident-1.0.24/LICENSE-APACHE +176 -0
  289. package/LICENSES/dependencies/unicode-ident-1.0.24/LICENSE-MIT +23 -0
  290. package/LICENSES/dependencies/unicode-ident-1.0.24/LICENSE-UNICODE +39 -0
  291. package/LICENSES/dependencies/unicode-segmentation-1.13.3/COPYRIGHT +7 -0
  292. package/LICENSES/dependencies/unicode-segmentation-1.13.3/LICENSE-APACHE +201 -0
  293. package/LICENSES/dependencies/unicode-segmentation-1.13.3/LICENSE-MIT +25 -0
  294. package/LICENSES/dependencies/unicode-xid-0.2.6/COPYRIGHT +7 -0
  295. package/LICENSES/dependencies/unicode-xid-0.2.6/LICENSE-APACHE +201 -0
  296. package/LICENSES/dependencies/unicode-xid-0.2.6/LICENSE-MIT +25 -0
  297. package/LICENSES/dependencies/uuid-1.26.1/LICENSE-APACHE +201 -0
  298. package/LICENSES/dependencies/uuid-1.26.1/LICENSE-MIT +26 -0
  299. package/LICENSES/dependencies/walrus-0.26.5/LICENSE-APACHE +201 -0
  300. package/LICENSES/dependencies/walrus-0.26.5/LICENSE-MIT +25 -0
  301. package/LICENSES/dependencies/walrus-macro-0.26.0/LICENSE-APACHE +201 -0
  302. package/LICENSES/dependencies/walrus-macro-0.26.0/LICENSE-MIT +25 -0
  303. package/LICENSES/dependencies/wasi-0.11.1+wasi-snapshot-preview1/LICENSE-APACHE +201 -0
  304. package/LICENSES/dependencies/wasi-0.11.1+wasi-snapshot-preview1/LICENSE-Apache-2.0_WITH_LLVM-exception +220 -0
  305. package/LICENSES/dependencies/wasi-0.11.1+wasi-snapshot-preview1/LICENSE-MIT +23 -0
  306. package/LICENSES/dependencies/wasm-bindgen-0.2.128/LICENSE-APACHE +201 -0
  307. package/LICENSES/dependencies/wasm-bindgen-0.2.128/LICENSE-MIT +25 -0
  308. package/LICENSES/dependencies/wasm-bindgen-cli-support-0.2.128/LICENSE-APACHE +201 -0
  309. package/LICENSES/dependencies/wasm-bindgen-cli-support-0.2.128/LICENSE-MIT +25 -0
  310. package/LICENSES/dependencies/wasm-bindgen-macro-0.2.128/LICENSE-APACHE +201 -0
  311. package/LICENSES/dependencies/wasm-bindgen-macro-0.2.128/LICENSE-MIT +25 -0
  312. package/LICENSES/dependencies/wasm-bindgen-macro-support-0.2.128/LICENSE-APACHE +201 -0
  313. package/LICENSES/dependencies/wasm-bindgen-macro-support-0.2.128/LICENSE-MIT +25 -0
  314. package/LICENSES/dependencies/wasm-bindgen-shared-0.2.128/LICENSE-APACHE +201 -0
  315. package/LICENSES/dependencies/wasm-bindgen-shared-0.2.128/LICENSE-MIT +25 -0
  316. package/LICENSES/dependencies/wasm-encoder-0.245.1/LICENSE-APACHE +201 -0
  317. package/LICENSES/dependencies/wasm-encoder-0.245.1/LICENSE-Apache-2.0_WITH_LLVM-exception +220 -0
  318. package/LICENSES/dependencies/wasm-encoder-0.245.1/LICENSE-MIT +23 -0
  319. package/LICENSES/dependencies/wasmparser-0.245.1/LICENSE-APACHE +201 -0
  320. package/LICENSES/dependencies/wasmparser-0.245.1/LICENSE-Apache-2.0_WITH_LLVM-exception +220 -0
  321. package/LICENSES/dependencies/wasmparser-0.245.1/LICENSE-MIT +23 -0
  322. package/LICENSES/dependencies/windows-core-0.62.2/license-apache-2.0 +201 -0
  323. package/LICENSES/dependencies/windows-core-0.62.2/license-mit +21 -0
  324. package/LICENSES/dependencies/windows-implement-0.60.2/license-apache-2.0 +201 -0
  325. package/LICENSES/dependencies/windows-implement-0.60.2/license-mit +21 -0
  326. package/LICENSES/dependencies/windows-interface-0.59.3/license-apache-2.0 +201 -0
  327. package/LICENSES/dependencies/windows-interface-0.59.3/license-mit +21 -0
  328. package/LICENSES/dependencies/windows-link-0.2.1/license-apache-2.0 +201 -0
  329. package/LICENSES/dependencies/windows-link-0.2.1/license-mit +21 -0
  330. package/LICENSES/dependencies/windows-result-0.4.1/license-apache-2.0 +201 -0
  331. package/LICENSES/dependencies/windows-result-0.4.1/license-mit +21 -0
  332. package/LICENSES/dependencies/windows-strings-0.5.1/license-apache-2.0 +201 -0
  333. package/LICENSES/dependencies/windows-strings-0.5.1/license-mit +21 -0
  334. package/LICENSES/dependencies/windows-sys-0.61.2/license-apache-2.0 +201 -0
  335. package/LICENSES/dependencies/windows-sys-0.61.2/license-mit +21 -0
  336. package/LICENSES/dependencies/zmij-1.0.23/LICENSE-MIT +23 -0
  337. package/README.md +185 -0
  338. package/THIRD-PARTY.md +45 -0
  339. package/index.d.ts +47 -0
  340. package/index.js +28 -0
  341. package/package.json +36 -0
  342. package/source/.cargo/config.toml +5 -0
  343. package/source/.ci/upstream-notices/PROVENANCE.json +198 -0
  344. package/source/.ci/upstream-notices/agent-client-protocol-2.1.0/LICENSE +191 -0
  345. package/source/.ci/upstream-notices/agent-client-protocol-derive-2.1.0/LICENSE +191 -0
  346. package/source/.ci/upstream-notices/agent-client-protocol-schema-1.7.0/LICENSE +190 -0
  347. package/source/.ci/upstream-notices/defmt-parser-1.0.0/LICENSE-APACHE +201 -0
  348. package/source/.ci/upstream-notices/defmt-parser-1.0.0/LICENSE-MIT +25 -0
  349. package/source/.ci/upstream-notices/r-efi-6.0.0/AUTHORS +75 -0
  350. package/source/.ci/upstream-notices/wasm-encoder-0.245.1/LICENSE-APACHE +201 -0
  351. package/source/.ci/upstream-notices/wasm-encoder-0.245.1/LICENSE-Apache-2.0_WITH_LLVM-exception +220 -0
  352. package/source/.ci/upstream-notices/wasm-encoder-0.245.1/LICENSE-MIT +23 -0
  353. package/source/.ci/upstream-notices/wasmparser-0.245.1/LICENSE-APACHE +201 -0
  354. package/source/.ci/upstream-notices/wasmparser-0.245.1/LICENSE-Apache-2.0_WITH_LLVM-exception +220 -0
  355. package/source/.ci/upstream-notices/wasmparser-0.245.1/LICENSE-MIT +23 -0
  356. package/source/.ci/wasm-bundle/Cargo.toml +10 -0
  357. package/source/.ci/wasm-bundle/src/main.rs +17 -0
  358. package/source/CHANGELOG.md +11 -0
  359. package/source/Cargo.lock +1622 -0
  360. package/source/Cargo.toml +48 -0
  361. package/source/LICENSE +307 -0
  362. package/source/LICENSE.md +25 -0
  363. package/source/LICENSES/GPL-3.0-only.txt +232 -0
  364. package/source/LICENSES/LGPL-3.0-only.txt +304 -0
  365. package/source/README.md +185 -0
  366. package/source/THIRD-PARTY.md +45 -0
  367. package/source/dependencies.tar.gz +0 -0
  368. package/source/examples/native.rs +45 -0
  369. package/source/src/conversation.rs +557 -0
  370. package/source/src/lib.rs +27 -0
  371. package/source/src/native/client.rs +417 -0
  372. package/source/src/native/fixture.py +104 -0
  373. package/source/src/native/mod.rs +249 -0
  374. package/source/src/native/session.rs +541 -0
  375. package/source/src/native/tests.rs +427 -0
  376. package/source/src/web.rs +35 -0
  377. package/wasm/ccht.d.ts +60 -0
  378. package/wasm/ccht.js +275 -0
  379. package/wasm/ccht_bg.wasm +0 -0
  380. package/wasm/ccht_bg.wasm.d.ts +13 -0
package/README.md ADDED
@@ -0,0 +1,185 @@
1
+ # ccht
2
+
3
+ Reusable conversations for Rust applications, terminals and web frontends.
4
+ **ccht** keeps the conversation model in Rust and compiles
5
+ that same model to Wasm. Native hosts connect to installed agents using the
6
+ [official ACP Rust SDK](https://github.com/agentclientprotocol/rust-sdk).
7
+
8
+ ```text
9
+ Web UI ── @corbet-labs/ccht (Wasm) ── application transport/storage
10
+
11
+ TUI / native UI ── ccht::Conversation ── ccht::native ── upstream ACP agent
12
+ ```
13
+
14
+ The library owns structured conversation events, ordered replay, native sessions,
15
+ streaming, cancellation and permission requests. Your application owns its UI,
16
+ instructions, context, tools, user authorization, storage and HTTP/WebSocket/SSE
17
+ transport. No Corbet-specific prompts or database are required.
18
+
19
+ Agent reasoning, tools, authentication and protocol translation remain upstream.
20
+ ccht does not implement an agent loop, read provider credentials, install agents,
21
+ call paid model HTTP APIs or select an API-key fallback.
22
+
23
+ ## Rust
24
+
25
+ ```toml
26
+ [dependencies]
27
+ ccht = "0.1"
28
+ tokio = { version = "1", features = ["macros", "rt-multi-thread"] }
29
+ ```
30
+
31
+ `native` is the default feature. For the portable model alone:
32
+
33
+ ```toml
34
+ ccht = { version = "0.1", default-features = false }
35
+ ```
36
+
37
+ ```rust
38
+ use ccht::{Conversation, Event, WireEvent, acp};
39
+
40
+ let mut conversation = Conversation::new("workspace/creator");
41
+ conversation.apply(WireEvent::new(
42
+ "workspace/creator", "turn-1", 1,
43
+ Event::Update {
44
+ update: acp::SessionUpdate::AgentMessageChunk(
45
+ acp::ContentChunk::new("Hello".into()),
46
+ ),
47
+ },
48
+ )).unwrap();
49
+ assert_eq!(conversation.turns()[0].text, "Hello");
50
+ ```
51
+
52
+ [examples/native.rs](source/examples/native.rs) shows streaming from an explicitly
53
+ supplied installed ACP executable. It requires native agent authentication already
54
+ configured by the operator. Use `codex-acp`, `claude-agent-acp`, or `opencode acp`
55
+ as separate, reviewed runtime installations. Generic ACP executables also work.
56
+ No agent/runtime is bundled in the crate or browser package.
57
+
58
+ `NativeClient::connect` initializes the protocol. Create a session with its working
59
+ directory, explicit model (if desired) and application MCP servers. Take the event
60
+ receiver before prompting and consume it concurrently with the prompt future.
61
+ A session accepts one active prompt; another returns `Busy`. Different sessions
62
+ have separate streams and permission identities. History load/resume and model
63
+ selection require the agent's advertised capabilities; unsupported requests fail.
64
+
65
+ Permissions default to denial. Applications that opt into asking must render the
66
+ request, check their authority and respond with one of the advertised choices.
67
+ A permission callback is not a sandbox: agent-owned tools may have separate runtime
68
+ policy. Configure filesystem/network confinement in the host for your use case.
69
+ ccht advertises no client filesystem or terminal capabilities.
70
+
71
+ Cancellation asks the upstream agent to stop. If it does not stop within the
72
+ configured shutdown timeout, ccht closes the SDK connection, affecting **all**
73
+ sessions on that connection. Dropping an active prompt also closes its connection.
74
+ Use one connection per independent workload when cancellation must be isolated.
75
+ Bounded event channels fail explicitly on an unresponsive consumer.
76
+
77
+ `AgentCommand::with_working_directory` sets the actual agent startup directory
78
+ using installed Linux/macOS `env` launchers. Windows currently reports this helper
79
+ as unsupported because the SDK launch configuration lacks a startup-directory
80
+ field. Session cwd alone does not constrain files read during agent startup.
81
+ Linux is covered by process-level tests; macOS support is source-reviewed.
82
+
83
+ ACP enables `serde_json`'s `preserve_order` feature through Cargo feature
84
+ unification. Applications that hash or sign JSON must explicitly canonicalize
85
+ object keys; depending on a `Value` map's incidental iteration order is unsafe.
86
+
87
+ ## Browser
88
+
89
+ ```sh
90
+ npm install @corbet-labs/ccht
91
+ ```
92
+
93
+ ```js
94
+ import { createConversation } from '@corbet-labs/ccht';
95
+ // Vite example: emit the Wasm as a separately replaceable asset.
96
+ import wasmUrl from '@corbet-labs/ccht/ccht_bg.wasm?url';
97
+
98
+ const conversation = await createConversation('workspace/creator', { wasm: wasmUrl });
99
+ // After your authenticated application transport delivers a ccht WireEvent:
100
+ const snapshot = conversation.applyEvent(event);
101
+ render(snapshot.turns);
102
+ // When the view is destroyed:
103
+ conversation.free();
104
+ ```
105
+
106
+ Without an explicit `wasm` option, initialization loads `wasm/ccht_bg.wasm`
107
+ relative to the generated module. A browser cannot launch native processes: its
108
+ application server or desktop host runs `ccht::native`. The package makes no
109
+ network connection apart from loading its Wasm module. The host decides which
110
+ backend is available and how users authenticate to the application.
111
+
112
+ ## Event and persistence contract
113
+
114
+ `WireEvent` version 1 contains `conversation_id`, `request_id`, a per-request
115
+ `sequence` starting at 1, and `event`. Retain the original structured ACP updates:
116
+ text, non-text content, tool calls, thought chunks, plans, permissions and errors
117
+ are distinct. The model returns a serializable snapshot for your renderer.
118
+
119
+ Assign identities and sequences on a trusted application host. Never let a browser
120
+ select another user's conversation without server-side authorization. Sequence
121
+ numbers are **not** SSE cursors or database row IDs. The app stores its own event
122
+ log and replays each request in order. Already-applied sequences are ignored;
123
+ gaps, a different conversation, malformed events and new events after completion
124
+ fail without mutating state. Delivery identity must not be reused for another turn.
125
+
126
+ A model holds at most 256 turns, 8 MiB per turn and 1 MiB per event. Applications
127
+ should page long histories into separate models and limit streamed inputs before
128
+ parsing them. Durable transcript storage and reconnection are application concerns;
129
+ a serialized snapshot is a render result, not a native-agent session checkpoint.
130
+
131
+ Namer is the first integration: Creator/Critic have independent conversation
132
+ scopes, durable application events, authenticated SSE and cancellation. Its queue
133
+ uses a fresh native session per turn with bounded role history supplied by Namer.
134
+ CareerVector's TUI reuses the native session API while keeping CV tools, prompts
135
+ and revision checks in its own code. Explicit local inference can emit the same
136
+ `WireEvent` contract through an application-owned backend.
137
+
138
+ ## Building the Wasm package
139
+
140
+ Use Rust with `wasm32-unknown-unknown` installed. The checked-in generator uses the
141
+ same exact `wasm-bindgen` version as the Rust crate; no global Wasm CLI is required.
142
+
143
+ ```sh
144
+ cargo build --locked --release --no-default-features --features web --target wasm32-unknown-unknown
145
+ cargo run --locked --release -p ccht-wasm-bundle -- target/wasm32-unknown-unknown/release/ccht.wasm web/wasm
146
+ ```
147
+
148
+ Published browser archives include the corresponding Rust source and generator
149
+ under `source/`, original notices, and the full locked dependency sources in
150
+ `source/dependencies.tar.gz`. Cargo's vendor checksums are preserved inside that
151
+ archive. To rebuild from the distributed package, extract it inside `source/`:
152
+
153
+ ```sh
154
+ cd source
155
+ tar -xzf dependencies.tar.gz
156
+ cargo build --locked --offline --release --no-default-features --features web --target wasm32-unknown-unknown
157
+ cargo run --locked --offline --release -p ccht-wasm-bundle -- target/wasm32-unknown-unknown/release/ccht.wasm ../wasm
158
+ ```
159
+
160
+ The supplied `.cargo/config.toml` uses only those vendored sources. The installed
161
+ Rust toolchain must include the Wasm target and linker. CI rebuilds this kit with
162
+ an empty Cargo cache and tests the replacement module through the same npm API.
163
+ Keep that exported interface compatible when replacing the library.
164
+
165
+ CI verifies the portable Rust model, actual Wasm compilation and packaged Node
166
+ consumer, native protocol/process fixtures, dependency notices and an independent
167
+ Rust crate consumer. Native fixtures do not call a model or access an account.
168
+ Live runtime support must additionally be checked against the installed agent,
169
+ its advertised capabilities, login state and execution policy.
170
+
171
+ ## License
172
+
173
+ ccht is **LGPL-3.0-only**. See [LICENSE.md](LICENSE.md) and
174
+ [THIRD-PARTY.md](THIRD-PARTY.md). Applications may use different licenses while
175
+ preserving the LGPL library rights. Distributing a combined Rust binary requires
176
+ a compliant relinking route; making source available somewhere is not by itself
177
+ sufficient. Keep the browser's Wasm replaceable and provide its corresponding
178
+ source and notices. Review the complete license for your distribution method.
179
+
180
+ ACP and an account's subscription do not guarantee a billing mode. The operator
181
+ must configure the native agent/account and disable unwanted paid usage. Known
182
+ ambient API-key variables are cleared at launch and explicit API-key overrides
183
+ are rejected, but ccht cannot attest saved agent credentials or account billing
184
+ settings. Native runtimes and hosted services retain their own terms; a library
185
+ license does not authorize pooling subscriptions or product-specific login flows.
package/THIRD-PARTY.md ADDED
@@ -0,0 +1,45 @@
1
+ # Third-party components
2
+
3
+ ccht uses the official `agent-client-protocol` Rust SDK and
4
+ `agent-client-protocol-schema` under Apache-2.0. `wasm-bindgen` and the generated
5
+ binding toolchain retain their MIT/Apache-2.0 grants. The exact locked dependency
6
+ inventory is generated by `.ci/license_inventory.py`; browser distributions carry
7
+ original dependency notices in `LICENSES/dependencies/`.
8
+ No Zed editor source is included. Zed's external-agent architecture is a reference;
9
+ its GPL editor code is not relicensed by ccht's LGPL grant.
10
+
11
+ External runtimes are separately supplied by the operator:
12
+
13
+ | Runtime | Source license / terms |
14
+ | --- | --- |
15
+ | Codex ACP adapter and Codex | Apache-2.0; OpenAI account/service terms remain applicable |
16
+ | OpenCode | MIT; configured provider/account terms remain applicable |
17
+ | Claude ACP adapter | Apache-2.0 wrapper; the Claude Agent SDK/runtime has separate proprietary Anthropic terms |
18
+
19
+ ccht does not redistribute these executables. Preserve their original notices and
20
+ comply with their runtime and service conditions when packaging them yourself.
21
+ Do not infer permission to offer a customer-facing subscription login or pooled
22
+ account service from the wrapper's permissive license.
23
+
24
+ Upstream sources: [ACP SDK](https://github.com/agentclientprotocol/rust-sdk),
25
+ [Codex ACP](https://github.com/agentclientprotocol/codex-acp),
26
+ [Claude ACP](https://github.com/agentclientprotocol/claude-agent-acp),
27
+ [OpenCode](https://github.com/anomalyco/opencode),
28
+ [wasm-bindgen](https://github.com/wasm-bindgen/wasm-bindgen).
29
+
30
+ The published ACP SDK and derive 2.1.0, ACP schema 1.7.0, defmt-parser 1.0.0,
31
+ wasm-encoder 0.245.1, and wasmparser 0.245.1 archives omit their repositories'
32
+ root license files. Their unchanged original notices are retained under
33
+ `.ci/upstream-notices/<package>-<version>/` for inclusion in browser artifacts.
34
+ This preserves Zed's copyright notices, both defmt license alternatives, and all
35
+ three wasm-tools license alternatives, including the LLVM exception.
36
+
37
+ The r-efi 6.0.0 archive already includes its full MIT grant, copyright notices,
38
+ and Apache-2.0/LGPL-2.1-or-later alternative notices in `AUTHORS`. That unchanged
39
+ file is also retained as a supplemental notice because its filename is outside
40
+ the usual `LICENSE`/`NOTICE` convention. All these notices were verified against
41
+ the exact upstream revisions recorded in the published crates'
42
+ `.cargo_vcs_info.json`; their crate archive checksums match `Cargo.lock`.
43
+ [Notice provenance](.ci/upstream-notices/PROVENANCE.json) records immutable source
44
+ URLs, revisions, upstream paths, Git blob hashes, and SHA-256 hashes. No upstream
45
+ implementation source or license alternatives were modified.
package/index.d.ts ADDED
@@ -0,0 +1,47 @@
1
+ /** Upstream ACP payloads are preserved; applications can narrow their supported kinds. */
2
+ export interface AcpUpdate { sessionUpdate: string; [key: string]: unknown }
3
+ export interface AcpToolCall { toolCallId: string; title: string; status?: string; [key: string]: unknown }
4
+ export interface PermissionRequest {
5
+ sessionId: string;
6
+ toolCall: { toolCallId: string; [key: string]: unknown };
7
+ options: Array<{ optionId: string; name: string; kind: string }>;
8
+ [key: string]: unknown;
9
+ }
10
+ export type CchtEvent =
11
+ | { kind: 'update'; update: AcpUpdate }
12
+ | { kind: 'permission'; request_id: string; request: PermissionRequest }
13
+ | { kind: 'completed'; stop_reason: string }
14
+ | { kind: 'error'; code: string; message: string };
15
+ export interface WireEvent {
16
+ version: 1;
17
+ conversation_id: string;
18
+ request_id: string;
19
+ sequence: number;
20
+ event: CchtEvent;
21
+ }
22
+ export interface TurnState {
23
+ request_id: string;
24
+ last_sequence: number;
25
+ text: string;
26
+ user_text: string;
27
+ user_content: Array<Record<string, unknown>>;
28
+ thought_text: string;
29
+ thought_content: Array<Record<string, unknown>>;
30
+ content: Array<Record<string, unknown>>;
31
+ tools: Record<string, AcpToolCall>;
32
+ permissions: Array<{ request_id: string; request: PermissionRequest }>;
33
+ updates: Record<string, unknown>;
34
+ status: 'streaming' | 'awaiting_permission' | 'completed' | 'cancelled' | 'refused' | 'failed';
35
+ stop_reason: string | null;
36
+ error: { code: string; message: string } | null;
37
+ }
38
+ export interface ConversationSnapshot { conversation_id: string; turns: TurnState[] }
39
+ export interface Conversation {
40
+ applyEvent(event: WireEvent | string): ConversationSnapshot;
41
+ snapshot(): ConversationSnapshot;
42
+ free(): void;
43
+ }
44
+ /** Transport/authentication and persistence belong to the embedding application. */
45
+ export function createConversation(conversationId: string, options?: {
46
+ wasm?: URL | string | Request | Response | BufferSource | WebAssembly.Module;
47
+ }): Promise<Conversation>;
package/index.js ADDED
@@ -0,0 +1,28 @@
1
+ // @ts-self-types="./index.d.ts"
2
+ import initialize, { ConversationModel } from './wasm/ccht.js';
3
+
4
+ let initialization;
5
+
6
+ /** Initialize the shared Rust/Wasm model. Supply an explicit Wasm URL when bundling. */
7
+ export async function createConversation(conversationId, options = {}) {
8
+ if (!initialization) {
9
+ initialization = initialize(options.wasm === undefined ? undefined : { module_or_path: options.wasm })
10
+ .catch((error) => { initialization = undefined; throw error; });
11
+ }
12
+ await initialization;
13
+ const model = new ConversationModel(conversationId);
14
+ let disposed = false;
15
+ const snapshot = () => {
16
+ if (disposed) throw new Error('ccht conversation has been freed');
17
+ return JSON.parse(model.snapshot());
18
+ };
19
+ return {
20
+ applyEvent(event) {
21
+ if (disposed) throw new Error('ccht conversation has been freed');
22
+ model.applyEvent(typeof event === 'string' ? event : JSON.stringify(event));
23
+ return snapshot();
24
+ },
25
+ snapshot,
26
+ free() { if (!disposed) { disposed = true; model.free(); } },
27
+ };
28
+ }
package/package.json ADDED
@@ -0,0 +1,36 @@
1
+ {
2
+ "name": "@corbet-labs/ccht",
3
+ "version": "0.1.0",
4
+ "description": "Reusable conversations for your applications, powered by the shared Rust/Wasm model",
5
+ "license": "LGPL-3.0-only",
6
+ "type": "module",
7
+ "main": "./index.js",
8
+ "types": "./index.d.ts",
9
+ "exports": {
10
+ ".": {
11
+ "types": "./index.d.ts",
12
+ "import": "./index.js"
13
+ },
14
+ "./ccht_bg.wasm": "./wasm/ccht_bg.wasm"
15
+ },
16
+ "files": [
17
+ "index.js",
18
+ "index.d.ts",
19
+ "wasm/",
20
+ "source/",
21
+ "LICENSE",
22
+ "LICENSE.md",
23
+ "LICENSES/",
24
+ "README.md",
25
+ "THIRD-PARTY.md"
26
+ ],
27
+ "repository": {
28
+ "type": "git",
29
+ "url": "git+https://github.com/corbet-labs/ccht.git"
30
+ },
31
+ "publishConfig": {
32
+ "access": "public"
33
+ },
34
+ "sideEffects": false,
35
+ "gitHead": "340b9c2d41c77c2c1448666ddad8cd28307517bd"
36
+ }
@@ -0,0 +1,5 @@
1
+ [source.crates-io]
2
+ replace-with = "vendored-sources"
3
+
4
+ [source.vendored-sources]
5
+ directory = "vendor"
@@ -0,0 +1,198 @@
1
+ {
2
+ "schema_version": 1,
3
+ "verification": "Archive SHA-256 matches Cargo.lock; revision matches the published .cargo_vcs_info.json; unchanged notice bytes match the exact upstream Git blob.",
4
+ "packages": [
5
+ {
6
+ "package": "agent-client-protocol",
7
+ "version": "2.1.0",
8
+ "license_expression": "Apache-2.0",
9
+ "crate_archive_url": "https://static.crates.io/crates/agent-client-protocol/agent-client-protocol-2.1.0.crate",
10
+ "crate_archive_sha256": "6395d81d91fd2ee93f48ea31cfc511356e75b9061ca0389cefd0308507cc11ba",
11
+ "repository": "https://github.com/agentclientprotocol/rust-sdk",
12
+ "revision": "726c5030bfaa88cfdac2fb1f71a63abb331ce586",
13
+ "path_in_vcs": "src/agent-client-protocol",
14
+ "files": [
15
+ {
16
+ "path": "agent-client-protocol-2.1.0/LICENSE",
17
+ "upstream_path": "LICENSE",
18
+ "url": "https://raw.githubusercontent.com/agentclientprotocol/rust-sdk/726c5030bfaa88cfdac2fb1f71a63abb331ce586/LICENSE",
19
+ "git_blob_sha1": "c24b053560354d8261d5132edaa3d30b2d1cb1f3",
20
+ "sha256": "6ed4f049cce59e05197d585bdf8a39980b45d546d6ea718ee344555f3a867c3a",
21
+ "bytes": 10783,
22
+ "present_in_published_crate": false
23
+ }
24
+ ]
25
+ },
26
+ {
27
+ "package": "agent-client-protocol-derive",
28
+ "version": "2.1.0",
29
+ "license_expression": "Apache-2.0",
30
+ "crate_archive_url": "https://static.crates.io/crates/agent-client-protocol-derive/agent-client-protocol-derive-2.1.0.crate",
31
+ "crate_archive_sha256": "7e8d5f32208cdc11238004bec4e4229d68fb937598f900e153468ca084865fa5",
32
+ "repository": "https://github.com/agentclientprotocol/rust-sdk",
33
+ "revision": "726c5030bfaa88cfdac2fb1f71a63abb331ce586",
34
+ "path_in_vcs": "src/agent-client-protocol-derive",
35
+ "files": [
36
+ {
37
+ "path": "agent-client-protocol-derive-2.1.0/LICENSE",
38
+ "upstream_path": "LICENSE",
39
+ "url": "https://raw.githubusercontent.com/agentclientprotocol/rust-sdk/726c5030bfaa88cfdac2fb1f71a63abb331ce586/LICENSE",
40
+ "git_blob_sha1": "c24b053560354d8261d5132edaa3d30b2d1cb1f3",
41
+ "sha256": "6ed4f049cce59e05197d585bdf8a39980b45d546d6ea718ee344555f3a867c3a",
42
+ "bytes": 10783,
43
+ "present_in_published_crate": false
44
+ }
45
+ ]
46
+ },
47
+ {
48
+ "package": "agent-client-protocol-schema",
49
+ "version": "1.7.0",
50
+ "license_expression": "Apache-2.0",
51
+ "crate_archive_url": "https://static.crates.io/crates/agent-client-protocol-schema/agent-client-protocol-schema-1.7.0.crate",
52
+ "crate_archive_sha256": "ca98360c7bb8cc97d7acd49e2a8a851c3f7bee6b2f0535036d8ab86b5fcd223d",
53
+ "repository": "https://github.com/agentclientprotocol/agent-client-protocol",
54
+ "revision": "272bf799f35a258c6a4107a0410ed361e83683d3",
55
+ "path_in_vcs": "agent-client-protocol-schema",
56
+ "files": [
57
+ {
58
+ "path": "agent-client-protocol-schema-1.7.0/LICENSE",
59
+ "upstream_path": "LICENSE",
60
+ "url": "https://raw.githubusercontent.com/agentclientprotocol/agent-client-protocol/272bf799f35a258c6a4107a0410ed361e83683d3/LICENSE",
61
+ "git_blob_sha1": "1de02305f81f6dc087b6229a1d86a31774d2fa31",
62
+ "sha256": "f250d08cee4549b22b3b4aaaf3a743473336fd280316df5d0340717e5127a221",
63
+ "bytes": 10782,
64
+ "present_in_published_crate": false
65
+ }
66
+ ]
67
+ },
68
+ {
69
+ "package": "defmt-parser",
70
+ "version": "1.0.0",
71
+ "license_expression": "MIT OR Apache-2.0",
72
+ "crate_archive_url": "https://static.crates.io/crates/defmt-parser/defmt-parser-1.0.0.crate",
73
+ "crate_archive_sha256": "10d60334b3b2e7c9d91ef8150abfb6fa4c1c39ebbcf4a81c2e346aad939fee3e",
74
+ "repository": "https://github.com/knurling-rs/defmt",
75
+ "revision": "4a8cdb44891ed57b8ff5a023b6bec7137c48708f",
76
+ "path_in_vcs": "parser",
77
+ "files": [
78
+ {
79
+ "path": "defmt-parser-1.0.0/LICENSE-APACHE",
80
+ "upstream_path": "LICENSE-APACHE",
81
+ "url": "https://raw.githubusercontent.com/knurling-rs/defmt/4a8cdb44891ed57b8ff5a023b6bec7137c48708f/LICENSE-APACHE",
82
+ "git_blob_sha1": "11069edd79019f7dafbe3138841cf289209270dd",
83
+ "sha256": "8173d5c29b4f956d532781d2b86e4e30f83e6b7878dce18c919451d6ba707c90",
84
+ "bytes": 10850,
85
+ "present_in_published_crate": false
86
+ },
87
+ {
88
+ "path": "defmt-parser-1.0.0/LICENSE-MIT",
89
+ "upstream_path": "LICENSE-MIT",
90
+ "url": "https://raw.githubusercontent.com/knurling-rs/defmt/4a8cdb44891ed57b8ff5a023b6bec7137c48708f/LICENSE-MIT",
91
+ "git_blob_sha1": "e68a7ab37c8accca023db5f1505d48e4375d4324",
92
+ "sha256": "2710a622a896bba67356913d4d0492cab5465f61b2ecce6d880aeb483834fb50",
93
+ "bytes": 1053,
94
+ "present_in_published_crate": false
95
+ }
96
+ ]
97
+ },
98
+ {
99
+ "package": "r-efi",
100
+ "version": "6.0.0",
101
+ "license_expression": "MIT OR Apache-2.0 OR LGPL-2.1-or-later",
102
+ "crate_archive_url": "https://static.crates.io/crates/r-efi/r-efi-6.0.0.crate",
103
+ "crate_archive_sha256": "f8dcc9c7d52a811697d2151c701e0d08956f92b0e24136cf4cf27b57a6a0d9bf",
104
+ "repository": "https://github.com/r-efi/r-efi",
105
+ "revision": "7e1b0322d31d625f81a5656096330934f9cd835d",
106
+ "path_in_vcs": "",
107
+ "files": [
108
+ {
109
+ "path": "r-efi-6.0.0/AUTHORS",
110
+ "upstream_path": "AUTHORS",
111
+ "url": "https://raw.githubusercontent.com/r-efi/r-efi/7e1b0322d31d625f81a5656096330934f9cd835d/AUTHORS",
112
+ "git_blob_sha1": "79c8b7c4a1dabcfbc718b7fe6d43b1892f9850cd",
113
+ "sha256": "d027e91dbc9cdbb2f1190068e498bd6b61cff022b6a032b191021ba658d96111",
114
+ "bytes": 3733,
115
+ "present_in_published_crate": true
116
+ }
117
+ ]
118
+ },
119
+ {
120
+ "package": "wasm-encoder",
121
+ "version": "0.245.1",
122
+ "license_expression": "Apache-2.0 WITH LLVM-exception OR Apache-2.0 OR MIT",
123
+ "crate_archive_url": "https://static.crates.io/crates/wasm-encoder/wasm-encoder-0.245.1.crate",
124
+ "crate_archive_sha256": "3f9dca005e69bf015e45577e415b9af8c67e8ee3c0e38b5b0add5aa92581ed5c",
125
+ "repository": "https://github.com/bytecodealliance/wasm-tools",
126
+ "revision": "76927bf4bdbddf4b15f835c5eddfffbdfe3bdbd5",
127
+ "path_in_vcs": "crates/wasm-encoder",
128
+ "files": [
129
+ {
130
+ "path": "wasm-encoder-0.245.1/LICENSE-APACHE",
131
+ "upstream_path": "LICENSE-APACHE",
132
+ "url": "https://raw.githubusercontent.com/bytecodealliance/wasm-tools/76927bf4bdbddf4b15f835c5eddfffbdfe3bdbd5/LICENSE-APACHE",
133
+ "git_blob_sha1": "16fe87b06e802f094b3fbb0894b137bca2b16ef1",
134
+ "sha256": "a60eea817514531668d7e00765731449fe14d059d3249e0bc93b36de45f759f2",
135
+ "bytes": 10847,
136
+ "present_in_published_crate": false
137
+ },
138
+ {
139
+ "path": "wasm-encoder-0.245.1/LICENSE-Apache-2.0_WITH_LLVM-exception",
140
+ "upstream_path": "LICENSE-Apache-2.0_WITH_LLVM-exception",
141
+ "url": "https://raw.githubusercontent.com/bytecodealliance/wasm-tools/76927bf4bdbddf4b15f835c5eddfffbdfe3bdbd5/LICENSE-Apache-2.0_WITH_LLVM-exception",
142
+ "git_blob_sha1": "f9d81955f4bcb8f96a025e2ecc46f39ec536d465",
143
+ "sha256": "268872b9816f90fd8e85db5a28d33f8150ebb8dd016653fb39ef1f94f2686bc5",
144
+ "bytes": 12243,
145
+ "present_in_published_crate": false
146
+ },
147
+ {
148
+ "path": "wasm-encoder-0.245.1/LICENSE-MIT",
149
+ "upstream_path": "LICENSE-MIT",
150
+ "url": "https://raw.githubusercontent.com/bytecodealliance/wasm-tools/76927bf4bdbddf4b15f835c5eddfffbdfe3bdbd5/LICENSE-MIT",
151
+ "git_blob_sha1": "31aa79387f27e730e33d871925e152e35e428031",
152
+ "sha256": "23f18e03dc49df91622fe2a76176497404e46ced8a715d9d2b67a7446571cca3",
153
+ "bytes": 1023,
154
+ "present_in_published_crate": false
155
+ }
156
+ ]
157
+ },
158
+ {
159
+ "package": "wasmparser",
160
+ "version": "0.245.1",
161
+ "license_expression": "Apache-2.0 WITH LLVM-exception OR Apache-2.0 OR MIT",
162
+ "crate_archive_url": "https://static.crates.io/crates/wasmparser/wasmparser-0.245.1.crate",
163
+ "crate_archive_sha256": "4f08c9adee0428b7bddf3890fc27e015ac4b761cc608c822667102b8bfd6995e",
164
+ "repository": "https://github.com/bytecodealliance/wasm-tools",
165
+ "revision": "76927bf4bdbddf4b15f835c5eddfffbdfe3bdbd5",
166
+ "path_in_vcs": "crates/wasmparser",
167
+ "files": [
168
+ {
169
+ "path": "wasmparser-0.245.1/LICENSE-APACHE",
170
+ "upstream_path": "LICENSE-APACHE",
171
+ "url": "https://raw.githubusercontent.com/bytecodealliance/wasm-tools/76927bf4bdbddf4b15f835c5eddfffbdfe3bdbd5/LICENSE-APACHE",
172
+ "git_blob_sha1": "16fe87b06e802f094b3fbb0894b137bca2b16ef1",
173
+ "sha256": "a60eea817514531668d7e00765731449fe14d059d3249e0bc93b36de45f759f2",
174
+ "bytes": 10847,
175
+ "present_in_published_crate": false
176
+ },
177
+ {
178
+ "path": "wasmparser-0.245.1/LICENSE-Apache-2.0_WITH_LLVM-exception",
179
+ "upstream_path": "LICENSE-Apache-2.0_WITH_LLVM-exception",
180
+ "url": "https://raw.githubusercontent.com/bytecodealliance/wasm-tools/76927bf4bdbddf4b15f835c5eddfffbdfe3bdbd5/LICENSE-Apache-2.0_WITH_LLVM-exception",
181
+ "git_blob_sha1": "f9d81955f4bcb8f96a025e2ecc46f39ec536d465",
182
+ "sha256": "268872b9816f90fd8e85db5a28d33f8150ebb8dd016653fb39ef1f94f2686bc5",
183
+ "bytes": 12243,
184
+ "present_in_published_crate": false
185
+ },
186
+ {
187
+ "path": "wasmparser-0.245.1/LICENSE-MIT",
188
+ "upstream_path": "LICENSE-MIT",
189
+ "url": "https://raw.githubusercontent.com/bytecodealliance/wasm-tools/76927bf4bdbddf4b15f835c5eddfffbdfe3bdbd5/LICENSE-MIT",
190
+ "git_blob_sha1": "31aa79387f27e730e33d871925e152e35e428031",
191
+ "sha256": "23f18e03dc49df91622fe2a76176497404e46ced8a715d9d2b67a7446571cca3",
192
+ "bytes": 1023,
193
+ "present_in_published_crate": false
194
+ }
195
+ ]
196
+ }
197
+ ]
198
+ }