echotools 2.3.31__tar.gz → 2.3.39__tar.gz

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 (190) hide show
  1. {echotools-2.3.31 → echotools-2.3.39}/PKG-INFO +129 -129
  2. {echotools-2.3.31 → echotools-2.3.39}/README.md +3 -3
  3. {echotools-2.3.31 → echotools-2.3.39}/docs/README.md +74 -74
  4. {echotools-2.3.31 → echotools-2.3.39}/pyproject.toml +5 -1
  5. {echotools-2.3.31 → echotools-2.3.39}/setup.cfg +4 -4
  6. {echotools-2.3.31 → echotools-2.3.39}/src/echotools/__init__.py +215 -215
  7. {echotools-2.3.31 → echotools-2.3.39}/src/echotools/base/cache/__init__.py +8 -8
  8. {echotools-2.3.31 → echotools-2.3.39}/src/echotools/base/cache/list_cache.py +155 -155
  9. {echotools-2.3.31 → echotools-2.3.39}/src/echotools/base/cache/memory_cache.py +74 -74
  10. {echotools-2.3.31 → echotools-2.3.39}/src/echotools/base/config/__init__.py +23 -23
  11. {echotools-2.3.31 → echotools-2.3.39}/src/echotools/base/config/base.py +155 -155
  12. {echotools-2.3.31 → echotools-2.3.39}/src/echotools/base/config/center.py +285 -285
  13. {echotools-2.3.31 → echotools-2.3.39}/src/echotools/base/config/center_notify.py +39 -39
  14. {echotools-2.3.31 → echotools-2.3.39}/src/echotools/base/config/center_template.py +142 -142
  15. {echotools-2.3.31 → echotools-2.3.39}/src/echotools/base/config/loader.py +138 -138
  16. {echotools-2.3.31 → echotools-2.3.39}/src/echotools/base/errors/__init__.py +49 -49
  17. {echotools-2.3.31 → echotools-2.3.39}/src/echotools/base/errors/base.py +32 -32
  18. {echotools-2.3.31 → echotools-2.3.39}/src/echotools/base/errors/classify.py +79 -79
  19. {echotools-2.3.31 → echotools-2.3.39}/src/echotools/base/errors/common.py +74 -74
  20. {echotools-2.3.31 → echotools-2.3.39}/src/echotools/base/errors/http.py +126 -126
  21. {echotools-2.3.31 → echotools-2.3.39}/src/echotools/base/ids/__init__.py +7 -7
  22. {echotools-2.3.31 → echotools-2.3.39}/src/echotools/base/ids/generator.py +62 -62
  23. {echotools-2.3.31 → echotools-2.3.39}/src/echotools/base/io/__init__.py +37 -37
  24. {echotools-2.3.31 → echotools-2.3.39}/src/echotools/base/io/io_utils.py +81 -81
  25. {echotools-2.3.31 → echotools-2.3.39}/src/echotools/base/logger/__init__.py +12 -12
  26. {echotools-2.3.31 → echotools-2.3.39}/src/echotools/base/logger/manager.py +187 -187
  27. {echotools-2.3.31 → echotools-2.3.39}/src/echotools/base/retry/__init__.py +12 -12
  28. {echotools-2.3.31 → echotools-2.3.39}/src/echotools/base/retry/retry.py +171 -171
  29. {echotools-2.3.31 → echotools-2.3.39}/src/echotools/compat.py +88 -88
  30. {echotools-2.3.31 → echotools-2.3.39}/src/echotools/exec/dispatch/__init__.py +21 -21
  31. {echotools-2.3.31 → echotools-2.3.39}/src/echotools/exec/dispatch/candidate.py +51 -51
  32. {echotools-2.3.31 → echotools-2.3.39}/src/echotools/exec/dispatch/dispatcher.py +233 -233
  33. {echotools-2.3.31 → echotools-2.3.39}/src/echotools/exec/dispatch/proxy_selector.py +154 -154
  34. {echotools-2.3.31 → echotools-2.3.39}/src/echotools/exec/dispatch/race.py +119 -119
  35. {echotools-2.3.31 → echotools-2.3.39}/src/echotools/exec/dispatch/selector.py +400 -400
  36. {echotools-2.3.31 → echotools-2.3.39}/src/echotools/exec/fncall/__init__.py +44 -44
  37. {echotools-2.3.31 → echotools-2.3.39}/src/echotools/exec/fncall/parsers/__init__.py +6 -6
  38. {echotools-2.3.31 → echotools-2.3.39}/src/echotools/exec/fncall/parsers/stream.py +7 -2
  39. {echotools-2.3.31 → echotools-2.3.39}/src/echotools/exec/fncall/parsers/xml_params.py +40 -40
  40. {echotools-2.3.31 → echotools-2.3.39}/src/echotools/exec/fncall/parsers/xml_parser.py +285 -285
  41. {echotools-2.3.31 → echotools-2.3.39}/src/echotools/exec/fncall/prompt/__init__.py +5 -5
  42. {echotools-2.3.31 → echotools-2.3.39}/src/echotools/exec/fncall/prompt/history.py +301 -339
  43. {echotools-2.3.31 → echotools-2.3.39}/src/echotools/exec/fncall/prompt/history_format.py +89 -89
  44. {echotools-2.3.31 → echotools-2.3.39}/src/echotools/exec/fncall/prompt/inject.py +168 -144
  45. {echotools-2.3.31 → echotools-2.3.39}/src/echotools/exec/fncall/prompt/prompt_helpers.py +274 -237
  46. {echotools-2.3.31 → echotools-2.3.39}/src/echotools/exec/fncall/prompt/templates.py +167 -168
  47. {echotools-2.3.31 → echotools-2.3.39}/src/echotools/exec/fncall/protocols/__init__.py +14 -14
  48. {echotools-2.3.31 → echotools-2.3.39}/src/echotools/exec/fncall/protocols/entml.py +61 -27
  49. {echotools-2.3.31 → echotools-2.3.39}/src/echotools/exec/fncall/protocols/entml_invoke.py +112 -113
  50. {echotools-2.3.31 → echotools-2.3.39}/src/echotools/exec/fncall/protocols/entml_patterns.py +51 -51
  51. echotools-2.3.39/src/echotools/exec/fncall/protocols/entml_sanitize.py +24 -0
  52. echotools-2.3.39/src/echotools/exec/fncall/protocols/entml_thinking.py +166 -0
  53. {echotools-2.3.31 → echotools-2.3.39}/src/echotools/exec/fncall/protocols/entml_thinking_history.py +156 -156
  54. {echotools-2.3.31 → echotools-2.3.39}/src/echotools/exec/fncall/protocols/entml_values.py +80 -80
  55. {echotools-2.3.31 → echotools-2.3.39}/src/echotools/exec/fncall/registry.py +111 -111
  56. {echotools-2.3.31 → echotools-2.3.39}/src/echotools/exec/fncall/shared/__init__.py +29 -29
  57. {echotools-2.3.31 → echotools-2.3.39}/src/echotools/exec/fncall/shared/coercion.py +284 -284
  58. {echotools-2.3.31 → echotools-2.3.39}/src/echotools/exec/fncall/shared/loop_detect.py +97 -97
  59. {echotools-2.3.31 → echotools-2.3.39}/src/echotools/exec/fncall/shared/normalization.py +181 -181
  60. {echotools-2.3.31 → echotools-2.3.39}/src/echotools/exec/fncall/shared/schema_render.py +126 -126
  61. {echotools-2.3.31 → echotools-2.3.39}/src/echotools/exec/fncall/shared/xml_helpers.py +56 -56
  62. {echotools-2.3.31 → echotools-2.3.39}/src/echotools/exec/lifecycle/__init__.py +8 -8
  63. {echotools-2.3.31 → echotools-2.3.39}/src/echotools/exec/lifecycle/manager.py +72 -72
  64. {echotools-2.3.31 → echotools-2.3.39}/src/echotools/exec/lifecycle/updater.py +197 -197
  65. {echotools-2.3.31 → echotools-2.3.39}/src/echotools/exec/lifecycle/updater_pull.py +33 -33
  66. {echotools-2.3.31 → echotools-2.3.39}/src/echotools/exec/process/__init__.py +10 -10
  67. {echotools-2.3.31 → echotools-2.3.39}/src/echotools/exec/process/port.py +193 -193
  68. {echotools-2.3.31 → echotools-2.3.39}/src/echotools/exec/protocol/__init__.py +19 -19
  69. {echotools-2.3.31 → echotools-2.3.39}/src/echotools/exec/protocol/base.py +134 -134
  70. {echotools-2.3.31 → echotools-2.3.39}/src/echotools/exec/terminal/conpty.py +246 -246
  71. {echotools-2.3.31 → echotools-2.3.39}/src/echotools/exec/terminal/local/__init__.py +6 -6
  72. {echotools-2.3.31 → echotools-2.3.39}/src/echotools/exec/terminal/local/core.py +318 -318
  73. {echotools-2.3.31 → echotools-2.3.39}/src/echotools/exec/terminal/local/proc.py +331 -331
  74. {echotools-2.3.31 → echotools-2.3.39}/src/echotools/exec/terminal/local/unix.py +195 -195
  75. {echotools-2.3.31 → echotools-2.3.39}/src/echotools/exec/terminal/local/win.py +199 -199
  76. {echotools-2.3.31 → echotools-2.3.39}/src/echotools/exec/terminal/session/__init__.py +20 -20
  77. {echotools-2.3.31 → echotools-2.3.39}/src/echotools/exec/terminal/session/base.py +353 -353
  78. {echotools-2.3.31 → echotools-2.3.39}/src/echotools/exec/terminal/session/client.py +155 -155
  79. {echotools-2.3.31 → echotools-2.3.39}/src/echotools/exec/terminal/tmux.py +105 -105
  80. {echotools-2.3.31 → echotools-2.3.39}/src/echotools/media/console/__init__.py +38 -38
  81. {echotools-2.3.31 → echotools-2.3.39}/src/echotools/media/console/charmap.py +148 -148
  82. {echotools-2.3.31 → echotools-2.3.39}/src/echotools/media/console/spinner.py +342 -342
  83. {echotools-2.3.31 → echotools-2.3.39}/src/echotools/media/console/ui.py +28 -29
  84. {echotools-2.3.31 → echotools-2.3.39}/src/echotools/media/events/__init__.py +8 -8
  85. {echotools-2.3.31 → echotools-2.3.39}/src/echotools/media/events/bus.py +104 -104
  86. {echotools-2.3.31 → echotools-2.3.39}/src/echotools/media/events/event.py +31 -31
  87. {echotools-2.3.31 → echotools-2.3.39}/src/echotools/media/spinner/__init__.py +24 -24
  88. {echotools-2.3.31 → echotools-2.3.39}/src/echotools/media/spinner/spinner.py +324 -324
  89. {echotools-2.3.31 → echotools-2.3.39}/src/echotools/media/spinner/spinner_color.py +98 -98
  90. {echotools-2.3.31 → echotools-2.3.39}/src/echotools/media/tracing/__init__.py +28 -28
  91. {echotools-2.3.31 → echotools-2.3.39}/src/echotools/media/tracing/context.py +63 -63
  92. {echotools-2.3.31 → echotools-2.3.39}/src/echotools/media/tracing/span.py +135 -135
  93. {echotools-2.3.31 → echotools-2.3.39}/src/echotools/media/tracing/tracer.py +97 -97
  94. {echotools-2.3.31 → echotools-2.3.39}/src/echotools/media/watcher/__init__.py +7 -7
  95. {echotools-2.3.31 → echotools-2.3.39}/src/echotools/media/watcher/file_watcher.py +110 -110
  96. {echotools-2.3.31 → echotools-2.3.39}/src/echotools/media/web/__init__.py +37 -37
  97. {echotools-2.3.31 → echotools-2.3.39}/src/echotools/media/web/application.py +120 -120
  98. {echotools-2.3.31 → echotools-2.3.39}/src/echotools/media/web/input_box/components/sendbutton.js +64 -64
  99. {echotools-2.3.31 → echotools-2.3.39}/src/echotools/media/web/input_box/style.css +170 -170
  100. {echotools-2.3.31 → echotools-2.3.39}/src/echotools/media/web/input_box/voicegif.js +1 -1
  101. {echotools-2.3.31 → echotools-2.3.39}/src/echotools/media/web/middleware.py +129 -129
  102. {echotools-2.3.31 → echotools-2.3.39}/src/echotools/media/web/utils.py +187 -187
  103. {echotools-2.3.31 → echotools-2.3.39}/src/echotools/plat/files/__init__.py +7 -7
  104. {echotools-2.3.31 → echotools-2.3.39}/src/echotools/plat/files/file_util.py +155 -155
  105. {echotools-2.3.31 → echotools-2.3.39}/src/echotools/plat/network/__init__.py +11 -11
  106. {echotools-2.3.31 → echotools-2.3.39}/src/echotools/plat/network/http_utils.py +68 -68
  107. {echotools-2.3.31 → echotools-2.3.39}/src/echotools/plat/plugin/__init__.py +9 -9
  108. {echotools-2.3.31 → echotools-2.3.39}/src/echotools/plat/plugin/base.py +41 -41
  109. {echotools-2.3.31 → echotools-2.3.39}/src/echotools/plat/plugin/discovery.py +179 -179
  110. {echotools-2.3.31 → echotools-2.3.39}/src/echotools/plat/plugin/registry.py +245 -245
  111. {echotools-2.3.31 → echotools-2.3.39}/src/echotools/plat/plugin/registry_ops.py +99 -99
  112. {echotools-2.3.31 → echotools-2.3.39}/src/echotools/plat/proxy/__init__.py +7 -7
  113. {echotools-2.3.31 → echotools-2.3.39}/src/echotools/plat/proxy/manager.py +268 -268
  114. {echotools-2.3.31 → echotools-2.3.39}/src/echotools/plat/runtime/__init__.py +7 -7
  115. {echotools-2.3.31 → echotools-2.3.39}/src/echotools/plat/runtime/collector.py +60 -60
  116. {echotools-2.3.31 → echotools-2.3.39}/src/echotools/plat/scheduler/__init__.py +7 -7
  117. {echotools-2.3.31 → echotools-2.3.39}/src/echotools/plat/scheduler/scheduler.py +69 -69
  118. {echotools-2.3.31 → echotools-2.3.39}/src/echotools/plat/sdk/__init__.py +7 -7
  119. {echotools-2.3.31 → echotools-2.3.39}/src/echotools/plat/sdk/facade.py +251 -251
  120. {echotools-2.3.31 → echotools-2.3.39}/src/echotools/version.py +15 -15
  121. {echotools-2.3.31 → echotools-2.3.39}/src/echotools.egg-info/PKG-INFO +129 -129
  122. {echotools-2.3.31 → echotools-2.3.39}/src/echotools.egg-info/SOURCES.txt +1 -0
  123. {echotools-2.3.31 → echotools-2.3.39}/src/tests/bench_import.py +14 -14
  124. {echotools-2.3.31 → echotools-2.3.39}/src/tests/conftest.py +19 -19
  125. {echotools-2.3.31 → echotools-2.3.39}/src/tests/test_cache_retry.py +128 -128
  126. {echotools-2.3.31 → echotools-2.3.39}/src/tests/test_completion.py +48 -48
  127. {echotools-2.3.31 → echotools-2.3.39}/src/tests/test_config.py +85 -85
  128. {echotools-2.3.31 → echotools-2.3.39}/src/tests/test_config_extended.py +45 -45
  129. {echotools-2.3.31 → echotools-2.3.39}/src/tests/test_console.py +26 -28
  130. {echotools-2.3.31 → echotools-2.3.39}/src/tests/test_coverage_core.py +515 -515
  131. {echotools-2.3.31 → echotools-2.3.39}/src/tests/test_dispatch.py +35 -35
  132. {echotools-2.3.31 → echotools-2.3.39}/src/tests/test_dispatch_extended.py +44 -44
  133. {echotools-2.3.31 → echotools-2.3.39}/src/tests/test_dispatch_race.py +55 -55
  134. {echotools-2.3.31 → echotools-2.3.39}/src/tests/test_entml_protocol.py +719 -511
  135. {echotools-2.3.31 → echotools-2.3.39}/src/tests/test_entml_thinking_history.py +71 -71
  136. {echotools-2.3.31 → echotools-2.3.39}/src/tests/test_errors.py +45 -45
  137. {echotools-2.3.31 → echotools-2.3.39}/src/tests/test_errors_common.py +24 -24
  138. {echotools-2.3.31 → echotools-2.3.39}/src/tests/test_events.py +56 -56
  139. {echotools-2.3.31 → echotools-2.3.39}/src/tests/test_events_event.py +18 -18
  140. {echotools-2.3.31 → echotools-2.3.39}/src/tests/test_facade.py +33 -33
  141. {echotools-2.3.31 → echotools-2.3.39}/src/tests/test_fncall.py +99 -99
  142. {echotools-2.3.31 → echotools-2.3.39}/src/tests/test_ids.py +25 -25
  143. {echotools-2.3.31 → echotools-2.3.39}/src/tests/test_imports.py +51 -51
  144. {echotools-2.3.31 → echotools-2.3.39}/src/tests/test_io.py +20 -20
  145. {echotools-2.3.31 → echotools-2.3.39}/src/tests/test_keys.py +27 -27
  146. {echotools-2.3.31 → echotools-2.3.39}/src/tests/test_lifecycle.py +34 -34
  147. {echotools-2.3.31 → echotools-2.3.39}/src/tests/test_logger.py +37 -37
  148. {echotools-2.3.31 → echotools-2.3.39}/src/tests/test_merge.py +26 -26
  149. {echotools-2.3.31 → echotools-2.3.39}/src/tests/test_plugin.py +31 -31
  150. {echotools-2.3.31 → echotools-2.3.39}/src/tests/test_printstream.py +337 -337
  151. {echotools-2.3.31 → echotools-2.3.39}/src/tests/test_protocols.py +25 -25
  152. {echotools-2.3.31 → echotools-2.3.39}/src/tests/test_proxy.py +56 -56
  153. {echotools-2.3.31 → echotools-2.3.39}/src/tests/test_proxy_selector.py +27 -27
  154. {echotools-2.3.31 → echotools-2.3.39}/src/tests/test_runtime.py +25 -25
  155. {echotools-2.3.31 → echotools-2.3.39}/src/tests/test_scheduler.py +27 -27
  156. {echotools-2.3.31 → echotools-2.3.39}/src/tests/test_tracing.py +30 -30
  157. {echotools-2.3.31 → echotools-2.3.39}/src/tests/test_usage.py +37 -37
  158. {echotools-2.3.31 → echotools-2.3.39}/src/tests/test_web.py +48 -48
  159. {echotools-2.3.31 → echotools-2.3.39}/src/tests/test_web_broker.py +50 -50
  160. echotools-2.3.31/src/echotools/exec/fncall/protocols/entml_thinking.py +0 -143
  161. {echotools-2.3.31 → echotools-2.3.39}/src/echotools/base/config/merge.py +0 -0
  162. {echotools-2.3.31 → echotools-2.3.39}/src/echotools/base/io/printstream.py +0 -0
  163. {echotools-2.3.31 → echotools-2.3.39}/src/echotools/exec/dispatch/usage.py +0 -0
  164. {echotools-2.3.31 → echotools-2.3.39}/src/echotools/exec/fncall/protocols/entml_thinking_parse.py +0 -0
  165. {echotools-2.3.31 → echotools-2.3.39}/src/echotools/exec/fncall/protocols/entml_tools.py +0 -0
  166. {echotools-2.3.31 → echotools-2.3.39}/src/echotools/exec/keys.py +0 -0
  167. {echotools-2.3.31 → echotools-2.3.39}/src/echotools/exec/terminal/__init__.py +0 -0
  168. {echotools-2.3.31 → echotools-2.3.39}/src/echotools/exec/terminal/sanitize.py +0 -0
  169. {echotools-2.3.31 → echotools-2.3.39}/src/echotools/exec/terminal/ssh.py +0 -0
  170. {echotools-2.3.31 → echotools-2.3.39}/src/echotools/media/translate.py +0 -0
  171. {echotools-2.3.31 → echotools-2.3.39}/src/echotools/media/web/broker.py +0 -0
  172. {echotools-2.3.31 → echotools-2.3.39}/src/echotools/media/web/input_box/app.js +0 -0
  173. {echotools-2.3.31 → echotools-2.3.39}/src/echotools/media/web/input_box/components/filezone.js +0 -0
  174. {echotools-2.3.31 → echotools-2.3.39}/src/echotools/media/web/input_box/components/motionkit.js +0 -0
  175. {echotools-2.3.31 → echotools-2.3.39}/src/echotools/media/web/input_box/components/sortablelist.css +0 -0
  176. {echotools-2.3.31 → echotools-2.3.39}/src/echotools/media/web/input_box/components/sortablelist.js +0 -0
  177. {echotools-2.3.31 → echotools-2.3.39}/src/echotools/media/web/input_box/components/textinput.js +0 -0
  178. {echotools-2.3.31 → echotools-2.3.39}/src/echotools/media/web/input_box/components/voiceinput.js +0 -0
  179. {echotools-2.3.31 → echotools-2.3.39}/src/echotools/media/web/input_box/fonts/inter-500.woff2 +0 -0
  180. {echotools-2.3.31 → echotools-2.3.39}/src/echotools/media/web/input_box/fonts/inter-600.woff2 +0 -0
  181. {echotools-2.3.31 → echotools-2.3.39}/src/echotools/media/web/input_box/fonts/inter400.woff2 +0 -0
  182. {echotools-2.3.31 → echotools-2.3.39}/src/echotools/media/web/input_box/fonts/tailwind.css +0 -0
  183. {echotools-2.3.31 → echotools-2.3.39}/src/echotools/media/web/input_box/inputbox.css +0 -0
  184. {echotools-2.3.31 → echotools-2.3.39}/src/echotools/media/web/input_box/inputbox.js +0 -0
  185. {echotools-2.3.31 → echotools-2.3.39}/src/echotools/media/web/stats.py +0 -0
  186. {echotools-2.3.31 → echotools-2.3.39}/src/echotools.egg-info/dependency_links.txt +0 -0
  187. {echotools-2.3.31 → echotools-2.3.39}/src/echotools.egg-info/requires.txt +0 -0
  188. {echotools-2.3.31 → echotools-2.3.39}/src/echotools.egg-info/top_level.txt +0 -0
  189. {echotools-2.3.31 → echotools-2.3.39}/src/tests/test_entml_thinking_parse.py +0 -0
  190. {echotools-2.3.31 → echotools-2.3.39}/src/tests/test_entml_tools.py +0 -0
@@ -1,129 +1,129 @@
1
- Metadata-Version: 2.4
2
- Name: echotools
3
- Version: 2.3.31
4
- Summary: 通用基础设施 SDK:配置、日志、事件、调度、插件、协议、调用链
5
- Author: nichengfuben
6
- License: MIT
7
- Project-URL: Homepage, https://github.com/nichengfuben/echotools
8
- Project-URL: Repository, https://github.com/nichengfuben/echotools
9
- Project-URL: Issues, https://github.com/nichengfuben/echotools/issues
10
- Classifier: Development Status :: 4 - Beta
11
- Classifier: Intended Audience :: Developers
12
- Classifier: Programming Language :: Python :: 3
13
- Classifier: Programming Language :: Python :: 3.8
14
- Classifier: Programming Language :: Python :: 3.9
15
- Classifier: Programming Language :: Python :: 3.10
16
- Classifier: Programming Language :: Python :: 3.11
17
- Classifier: Programming Language :: Python :: 3.12
18
- Classifier: Programming Language :: Python :: 3.13
19
- Classifier: Topic :: Software Development :: Libraries
20
- Requires-Python: >=3.8
21
- Description-Content-Type: text/markdown
22
- Requires-Dist: typing-extensions>=4.7.0
23
- Provides-Extra: toml
24
- Requires-Dist: tomlkit>=0.11.0; extra == "toml"
25
- Requires-Dist: tomli>=2.0.0; python_version < "3.11" and extra == "toml"
26
- Provides-Extra: watch
27
- Requires-Dist: watchdog>=3.0.0; extra == "watch"
28
- Provides-Extra: http
29
- Requires-Dist: aiohttp>=3.8.0; extra == "http"
30
- Provides-Extra: socks
31
- Requires-Dist: aiohttp-socks>=0.8.0; extra == "socks"
32
- Provides-Extra: ssh
33
- Requires-Dist: paramiko>=3.0.0; extra == "ssh"
34
- Provides-Extra: terminal
35
- Requires-Dist: pywinpty>=2.0.0; sys_platform == "win32" and extra == "terminal"
36
- Provides-Extra: console
37
- Requires-Dist: rich>=13.0; extra == "console"
38
- Requires-Dist: wcwidth>=0.2; extra == "console"
39
- Provides-Extra: all
40
- Requires-Dist: tomlkit>=0.11.0; extra == "all"
41
- Requires-Dist: tomli>=2.0.0; python_version < "3.11" and extra == "all"
42
- Requires-Dist: watchdog>=3.0.0; extra == "all"
43
- Requires-Dist: aiohttp>=3.8.0; extra == "all"
44
- Requires-Dist: aiohttp-socks>=0.8.0; extra == "all"
45
- Requires-Dist: paramiko>=3.0.0; extra == "all"
46
- Requires-Dist: pywinpty>=2.0.0; sys_platform == "win32" and extra == "all"
47
- Requires-Dist: rich>=13.0; extra == "all"
48
- Requires-Dist: wcwidth>=0.2; extra == "all"
49
- Provides-Extra: dev
50
- Requires-Dist: pytest>=7.4.0; extra == "dev"
51
- Requires-Dist: pytest-asyncio>=0.23.0; extra == "dev"
52
- Requires-Dist: pytest-cov>=4.1.0; extra == "dev"
53
- Requires-Dist: mypy>=1.5.0; extra == "dev"
54
- Requires-Dist: ruff>=0.4.0; extra == "dev"
55
-
56
- # echotools
57
-
58
- 通用基础设施 SDK:配置中心、日志、事件总线、调用链、任务调度、
59
- 插件框架、协议系统、自适应选择器,完全项目无关,兼容 Python 3.8–3.14。
60
-
61
- ## 安装
62
-
63
- ```bash
64
- # 核心(仅 typing-extensions)
65
- pip install echotools
66
-
67
- # 完整功能
68
- pip install echotools[all]
69
- ```
70
-
71
- ### 可选依赖
72
-
73
- | Extra | 用途 |
74
- |-------|------|
75
- | `toml` | TOML 配置读写 |
76
- | `watch` | watchdog 文件监视 |
77
- | `http` | aiohttp Web 层 |
78
- | `socks` | SOCKS 代理 |
79
- | `ssh` | SSH 终端 |
80
- | `terminal` | Windows ConPTY |
81
- | `all` | 全部可选依赖 |
82
- | `dev` | pytest, ruff, mypy |
83
-
84
- ## 快速开始
85
-
86
- ```python
87
- from echotools import EchoTools
88
-
89
- et = EchoTools(service_name="myapp")
90
- et.logger.configure(level="INFO", color=True)
91
- cfg = et.config
92
- cfg.load("config.toml")
93
-
94
- with et.tracer.trace("request") as trace:
95
- with et.tracer.span(trace, "db") as span:
96
- span.set_tag("query", "select 1")
97
-
98
- await et.shutdown()
99
- ```
100
-
101
- ## 能力总览
102
-
103
- | 模块 | 说明 |
104
- |------|------|
105
- | `ConfigCenter` | 点路径配置 + 热重载 + 类型绑定 |
106
- | `LoggerManager` | 调用链注入 + 颜色 + 轮转 |
107
- | `EventBus` | 同步/异步事件 |
108
- | `Tracer` | 轻量调用链 |
109
- | `TaskDispatcher` | 单发/竞速 + 贝叶斯自适应选择 |
110
- | `PluginRegistry` | 自动发现 + 热重载 |
111
- | `get_protocol` | XML/antml/original/bracket/nous 等 LLM 工具协议 |
112
- | `ProxyManager` | HTTP/HTTPS/SOCKS |
113
- | `AutoUpdater` | git 自动更新 |
114
- | `FileWatcher` | 轮询文件监视 |
115
-
116
- ## 开发
117
-
118
- ```bash
119
- pip install -e ".[dev,all]"
120
- make lint
121
- make test
122
- make cov
123
- ```
124
-
125
- 模块指南见 [docs/modules.md](docs/modules.md),API 参考见 [docs/api.md](docs/api.md)。
126
-
127
- ## 许可证
128
-
129
- MIT
1
+ Metadata-Version: 2.4
2
+ Name: echotools
3
+ Version: 2.3.39
4
+ Summary: 通用基础设施 SDK:配置、日志、事件、调度、插件、协议、调用链
5
+ Author: nichengfuben
6
+ License: MIT
7
+ Project-URL: Homepage, https://github.com/nichengfuben/echotools
8
+ Project-URL: Repository, https://github.com/nichengfuben/echotools
9
+ Project-URL: Issues, https://github.com/nichengfuben/echotools/issues
10
+ Classifier: Development Status :: 4 - Beta
11
+ Classifier: Intended Audience :: Developers
12
+ Classifier: Programming Language :: Python :: 3
13
+ Classifier: Programming Language :: Python :: 3.8
14
+ Classifier: Programming Language :: Python :: 3.9
15
+ Classifier: Programming Language :: Python :: 3.10
16
+ Classifier: Programming Language :: Python :: 3.11
17
+ Classifier: Programming Language :: Python :: 3.12
18
+ Classifier: Programming Language :: Python :: 3.13
19
+ Classifier: Topic :: Software Development :: Libraries
20
+ Requires-Python: >=3.8
21
+ Description-Content-Type: text/markdown
22
+ Requires-Dist: typing-extensions>=4.7.0
23
+ Provides-Extra: toml
24
+ Requires-Dist: tomlkit>=0.11.0; extra == "toml"
25
+ Requires-Dist: tomli>=2.0.0; python_version < "3.11" and extra == "toml"
26
+ Provides-Extra: watch
27
+ Requires-Dist: watchdog>=3.0.0; extra == "watch"
28
+ Provides-Extra: http
29
+ Requires-Dist: aiohttp>=3.8.0; extra == "http"
30
+ Provides-Extra: socks
31
+ Requires-Dist: aiohttp-socks>=0.8.0; extra == "socks"
32
+ Provides-Extra: ssh
33
+ Requires-Dist: paramiko>=3.0.0; extra == "ssh"
34
+ Provides-Extra: terminal
35
+ Requires-Dist: pywinpty>=2.0.0; sys_platform == "win32" and extra == "terminal"
36
+ Provides-Extra: console
37
+ Requires-Dist: rich>=13.0; extra == "console"
38
+ Requires-Dist: wcwidth>=0.2; extra == "console"
39
+ Provides-Extra: all
40
+ Requires-Dist: tomlkit>=0.11.0; extra == "all"
41
+ Requires-Dist: tomli>=2.0.0; python_version < "3.11" and extra == "all"
42
+ Requires-Dist: watchdog>=3.0.0; extra == "all"
43
+ Requires-Dist: aiohttp>=3.8.0; extra == "all"
44
+ Requires-Dist: aiohttp-socks>=0.8.0; extra == "all"
45
+ Requires-Dist: paramiko>=3.0.0; extra == "all"
46
+ Requires-Dist: pywinpty>=2.0.0; sys_platform == "win32" and extra == "all"
47
+ Requires-Dist: rich>=13.0; extra == "all"
48
+ Requires-Dist: wcwidth>=0.2; extra == "all"
49
+ Provides-Extra: dev
50
+ Requires-Dist: pytest>=7.4.0; extra == "dev"
51
+ Requires-Dist: pytest-asyncio>=0.23.0; extra == "dev"
52
+ Requires-Dist: pytest-cov>=4.1.0; extra == "dev"
53
+ Requires-Dist: mypy>=1.5.0; extra == "dev"
54
+ Requires-Dist: ruff>=0.4.0; extra == "dev"
55
+
56
+ # echotools
57
+
58
+ 通用基础设施 SDK:配置中心、日志、事件总线、调用链、任务调度、
59
+ 插件框架、协议系统、自适应选择器,完全项目无关,兼容 Python 3.8–3.14。
60
+
61
+ ## 安装
62
+
63
+ ```bash
64
+ # 核心(仅 typing-extensions)
65
+ pip install echotools
66
+
67
+ # 完整功能
68
+ pip install echotools[all]
69
+ ```
70
+
71
+ ### 可选依赖
72
+
73
+ | Extra | 用途 |
74
+ |-------|------|
75
+ | `toml` | TOML 配置读写 |
76
+ | `watch` | watchdog 文件监视 |
77
+ | `http` | aiohttp Web 层 |
78
+ | `socks` | SOCKS 代理 |
79
+ | `ssh` | SSH 终端 |
80
+ | `terminal` | Windows ConPTY |
81
+ | `all` | 全部可选依赖 |
82
+ | `dev` | pytest, ruff, mypy |
83
+
84
+ ## 快速开始
85
+
86
+ ```python
87
+ from echotools import EchoTools
88
+
89
+ et = EchoTools(service_name="myapp")
90
+ et.logger.configure(level="INFO", color=True)
91
+ cfg = et.config
92
+ cfg.load("config.toml")
93
+
94
+ with et.tracer.trace("request") as trace:
95
+ with et.tracer.span(trace, "db") as span:
96
+ span.set_tag("query", "select 1")
97
+
98
+ await et.shutdown()
99
+ ```
100
+
101
+ ## 能力总览
102
+
103
+ | 模块 | 说明 |
104
+ |------|------|
105
+ | `ConfigCenter` | 点路径配置 + 热重载 + 类型绑定 |
106
+ | `LoggerManager` | 调用链注入 + 颜色 + 轮转 |
107
+ | `EventBus` | 同步/异步事件 |
108
+ | `Tracer` | 轻量调用链 |
109
+ | `TaskDispatcher` | 单发/竞速 + 贝叶斯自适应选择 |
110
+ | `PluginRegistry` | 自动发现 + 热重载 |
111
+ | `get_protocol` | XML/antml/original/bracket/nous 等 LLM 工具协议 |
112
+ | `ProxyManager` | HTTP/HTTPS/SOCKS |
113
+ | `AutoUpdater` | git 自动更新 |
114
+ | `FileWatcher` | 轮询文件监视 |
115
+
116
+ ## 开发
117
+
118
+ ```bash
119
+ pip install -e ".[dev,all]"
120
+ make lint
121
+ make test
122
+ make cov
123
+ ```
124
+
125
+ 模块指南见 [docs/modules.md](docs/modules.md),API 参考见 [docs/api.md](docs/api.md)。
126
+
127
+ ## 许可证
128
+
129
+ MIT
@@ -1,3 +1,3 @@
1
- # echotools
2
-
3
- Documentation: [docs/README.md](docs/README.md)
1
+ # echotools
2
+
3
+ Documentation: [docs/README.md](docs/README.md)
@@ -1,74 +1,74 @@
1
- # echotools
2
-
3
- 通用基础设施 SDK:配置中心、日志、事件总线、调用链、任务调度、
4
- 插件框架、协议系统、自适应选择器,完全项目无关,兼容 Python 3.8–3.14。
5
-
6
- ## 安装
7
-
8
- ```bash
9
- # 核心(仅 typing-extensions)
10
- pip install echotools
11
-
12
- # 完整功能
13
- pip install echotools[all]
14
- ```
15
-
16
- ### 可选依赖
17
-
18
- | Extra | 用途 |
19
- |-------|------|
20
- | `toml` | TOML 配置读写 |
21
- | `watch` | watchdog 文件监视 |
22
- | `http` | aiohttp Web 层 |
23
- | `socks` | SOCKS 代理 |
24
- | `ssh` | SSH 终端 |
25
- | `terminal` | Windows ConPTY |
26
- | `all` | 全部可选依赖 |
27
- | `dev` | pytest, ruff, mypy |
28
-
29
- ## 快速开始
30
-
31
- ```python
32
- from echotools import EchoTools
33
-
34
- et = EchoTools(service_name="myapp")
35
- et.logger.configure(level="INFO", color=True)
36
- cfg = et.config
37
- cfg.load("config.toml")
38
-
39
- with et.tracer.trace("request") as trace:
40
- with et.tracer.span(trace, "db") as span:
41
- span.set_tag("query", "select 1")
42
-
43
- await et.shutdown()
44
- ```
45
-
46
- ## 能力总览
47
-
48
- | 模块 | 说明 |
49
- |------|------|
50
- | `ConfigCenter` | 点路径配置 + 热重载 + 类型绑定 |
51
- | `LoggerManager` | 调用链注入 + 颜色 + 轮转 |
52
- | `EventBus` | 同步/异步事件 |
53
- | `Tracer` | 轻量调用链 |
54
- | `TaskDispatcher` | 单发/竞速 + 贝叶斯自适应选择 |
55
- | `PluginRegistry` | 自动发现 + 热重载 |
56
- | `get_protocol` | XML/antml/original/bracket/nous 等 LLM 工具协议 |
57
- | `ProxyManager` | HTTP/HTTPS/SOCKS |
58
- | `AutoUpdater` | git 自动更新 |
59
- | `FileWatcher` | 轮询文件监视 |
60
-
61
- ## 开发
62
-
63
- ```bash
64
- pip install -e ".[dev,all]"
65
- make lint
66
- make test
67
- make cov
68
- ```
69
-
70
- 模块指南见 [docs/modules.md](docs/modules.md),API 参考见 [docs/api.md](docs/api.md)。
71
-
72
- ## 许可证
73
-
74
- MIT
1
+ # echotools
2
+
3
+ 通用基础设施 SDK:配置中心、日志、事件总线、调用链、任务调度、
4
+ 插件框架、协议系统、自适应选择器,完全项目无关,兼容 Python 3.8–3.14。
5
+
6
+ ## 安装
7
+
8
+ ```bash
9
+ # 核心(仅 typing-extensions)
10
+ pip install echotools
11
+
12
+ # 完整功能
13
+ pip install echotools[all]
14
+ ```
15
+
16
+ ### 可选依赖
17
+
18
+ | Extra | 用途 |
19
+ |-------|------|
20
+ | `toml` | TOML 配置读写 |
21
+ | `watch` | watchdog 文件监视 |
22
+ | `http` | aiohttp Web 层 |
23
+ | `socks` | SOCKS 代理 |
24
+ | `ssh` | SSH 终端 |
25
+ | `terminal` | Windows ConPTY |
26
+ | `all` | 全部可选依赖 |
27
+ | `dev` | pytest, ruff, mypy |
28
+
29
+ ## 快速开始
30
+
31
+ ```python
32
+ from echotools import EchoTools
33
+
34
+ et = EchoTools(service_name="myapp")
35
+ et.logger.configure(level="INFO", color=True)
36
+ cfg = et.config
37
+ cfg.load("config.toml")
38
+
39
+ with et.tracer.trace("request") as trace:
40
+ with et.tracer.span(trace, "db") as span:
41
+ span.set_tag("query", "select 1")
42
+
43
+ await et.shutdown()
44
+ ```
45
+
46
+ ## 能力总览
47
+
48
+ | 模块 | 说明 |
49
+ |------|------|
50
+ | `ConfigCenter` | 点路径配置 + 热重载 + 类型绑定 |
51
+ | `LoggerManager` | 调用链注入 + 颜色 + 轮转 |
52
+ | `EventBus` | 同步/异步事件 |
53
+ | `Tracer` | 轻量调用链 |
54
+ | `TaskDispatcher` | 单发/竞速 + 贝叶斯自适应选择 |
55
+ | `PluginRegistry` | 自动发现 + 热重载 |
56
+ | `get_protocol` | XML/antml/original/bracket/nous 等 LLM 工具协议 |
57
+ | `ProxyManager` | HTTP/HTTPS/SOCKS |
58
+ | `AutoUpdater` | git 自动更新 |
59
+ | `FileWatcher` | 轮询文件监视 |
60
+
61
+ ## 开发
62
+
63
+ ```bash
64
+ pip install -e ".[dev,all]"
65
+ make lint
66
+ make test
67
+ make cov
68
+ ```
69
+
70
+ 模块指南见 [docs/modules.md](docs/modules.md),API 参考见 [docs/api.md](docs/api.md)。
71
+
72
+ ## 许可证
73
+
74
+ MIT
@@ -4,7 +4,7 @@ build-backend = "setuptools.build_meta"
4
4
 
5
5
  [project]
6
6
  name = "echotools"
7
- version = "2.3.31"
7
+ version = "2.3.39"
8
8
  description = "通用基础设施 SDK:配置、日志、事件、调度、插件、协议、调用链"
9
9
  readme = "docs/README.md"
10
10
  requires-python = ">=3.8"
@@ -97,6 +97,10 @@ disable_error_code = [
97
97
  module = "echotools.exec.terminal.*"
98
98
  ignore_errors = true
99
99
 
100
+ [[tool.mypy.overrides]]
101
+ module = "echotools.media.console.ui"
102
+ ignore_errors = true
103
+
100
104
  [tool.pytest.ini_options]
101
105
  testpaths = ["src/tests"]
102
106
  asyncio_mode = "auto"
@@ -1,4 +1,4 @@
1
- [egg_info]
2
- tag_build =
3
- tag_date = 0
4
-
1
+ [egg_info]
2
+ tag_build =
3
+ tag_date = 0
4
+