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