echotools 2.4.5__tar.gz → 2.4.6__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.
- {echotools-2.4.5 → echotools-2.4.6}/PKG-INFO +2 -2
- {echotools-2.4.5 → echotools-2.4.6}/README.md +1 -1
- {echotools-2.4.5 → echotools-2.4.6}/pyproject.toml +1 -1
- {echotools-2.4.5 → echotools-2.4.6}/src/echotools/exec/fncall/prompt/behavior_blocks.py +3 -1
- {echotools-2.4.5 → echotools-2.4.6}/src/echotools.egg-info/PKG-INFO +2 -2
- {echotools-2.4.5 → echotools-2.4.6}/src/tests/test_entml_protocol.py +1 -0
- {echotools-2.4.5 → echotools-2.4.6}/setup.cfg +0 -0
- {echotools-2.4.5 → echotools-2.4.6}/src/echotools/__init__.py +0 -0
- {echotools-2.4.5 → echotools-2.4.6}/src/echotools/base/cache/__init__.py +0 -0
- {echotools-2.4.5 → echotools-2.4.6}/src/echotools/base/cache/list_cache.py +0 -0
- {echotools-2.4.5 → echotools-2.4.6}/src/echotools/base/cache/memory_cache.py +0 -0
- {echotools-2.4.5 → echotools-2.4.6}/src/echotools/base/config/__init__.py +0 -0
- {echotools-2.4.5 → echotools-2.4.6}/src/echotools/base/config/base.py +0 -0
- {echotools-2.4.5 → echotools-2.4.6}/src/echotools/base/config/center.py +0 -0
- {echotools-2.4.5 → echotools-2.4.6}/src/echotools/base/config/center_notify.py +0 -0
- {echotools-2.4.5 → echotools-2.4.6}/src/echotools/base/config/center_template.py +0 -0
- {echotools-2.4.5 → echotools-2.4.6}/src/echotools/base/config/loader.py +0 -0
- {echotools-2.4.5 → echotools-2.4.6}/src/echotools/base/config/merge.py +0 -0
- {echotools-2.4.5 → echotools-2.4.6}/src/echotools/base/errors/__init__.py +0 -0
- {echotools-2.4.5 → echotools-2.4.6}/src/echotools/base/errors/base.py +0 -0
- {echotools-2.4.5 → echotools-2.4.6}/src/echotools/base/errors/classify.py +0 -0
- {echotools-2.4.5 → echotools-2.4.6}/src/echotools/base/errors/common.py +0 -0
- {echotools-2.4.5 → echotools-2.4.6}/src/echotools/base/errors/http.py +0 -0
- {echotools-2.4.5 → echotools-2.4.6}/src/echotools/base/ids/__init__.py +0 -0
- {echotools-2.4.5 → echotools-2.4.6}/src/echotools/base/ids/generator.py +0 -0
- {echotools-2.4.5 → echotools-2.4.6}/src/echotools/base/io/__init__.py +0 -0
- {echotools-2.4.5 → echotools-2.4.6}/src/echotools/base/io/io_utils.py +0 -0
- {echotools-2.4.5 → echotools-2.4.6}/src/echotools/base/io/printstream.py +0 -0
- {echotools-2.4.5 → echotools-2.4.6}/src/echotools/base/logger/__init__.py +0 -0
- {echotools-2.4.5 → echotools-2.4.6}/src/echotools/base/logger/manager.py +0 -0
- {echotools-2.4.5 → echotools-2.4.6}/src/echotools/base/retry/__init__.py +0 -0
- {echotools-2.4.5 → echotools-2.4.6}/src/echotools/base/retry/retry.py +0 -0
- {echotools-2.4.5 → echotools-2.4.6}/src/echotools/exec/dispatch/__init__.py +0 -0
- {echotools-2.4.5 → echotools-2.4.6}/src/echotools/exec/dispatch/candidate.py +0 -0
- {echotools-2.4.5 → echotools-2.4.6}/src/echotools/exec/dispatch/dispatcher.py +0 -0
- {echotools-2.4.5 → echotools-2.4.6}/src/echotools/exec/dispatch/proxy_selector.py +0 -0
- {echotools-2.4.5 → echotools-2.4.6}/src/echotools/exec/dispatch/race.py +0 -0
- {echotools-2.4.5 → echotools-2.4.6}/src/echotools/exec/dispatch/selector.py +0 -0
- {echotools-2.4.5 → echotools-2.4.6}/src/echotools/exec/dispatch/usage.py +0 -0
- {echotools-2.4.5 → echotools-2.4.6}/src/echotools/exec/fncall/__init__.py +0 -0
- {echotools-2.4.5 → echotools-2.4.6}/src/echotools/exec/fncall/parsers/__init__.py +0 -0
- {echotools-2.4.5 → echotools-2.4.6}/src/echotools/exec/fncall/parsers/stream.py +0 -0
- {echotools-2.4.5 → echotools-2.4.6}/src/echotools/exec/fncall/parsers/stream_delta.py +0 -0
- {echotools-2.4.5 → echotools-2.4.6}/src/echotools/exec/fncall/parsers/stream_feed.py +0 -0
- {echotools-2.4.5 → echotools-2.4.6}/src/echotools/exec/fncall/parsers/stream_final.py +0 -0
- {echotools-2.4.5 → echotools-2.4.6}/src/echotools/exec/fncall/prompt/__init__.py +0 -0
- {echotools-2.4.5 → echotools-2.4.6}/src/echotools/exec/fncall/prompt/history.py +0 -0
- {echotools-2.4.5 → echotools-2.4.6}/src/echotools/exec/fncall/prompt/history_format.py +0 -0
- {echotools-2.4.5 → echotools-2.4.6}/src/echotools/exec/fncall/prompt/inject.py +0 -0
- {echotools-2.4.5 → echotools-2.4.6}/src/echotools/exec/fncall/prompt/prompt_helpers.py +0 -0
- {echotools-2.4.5 → echotools-2.4.6}/src/echotools/exec/fncall/protocols/__init__.py +0 -0
- {echotools-2.4.5 → echotools-2.4.6}/src/echotools/exec/fncall/protocols/entml.py +0 -0
- {echotools-2.4.5 → echotools-2.4.6}/src/echotools/exec/fncall/protocols/entml_patterns/__init__.py +0 -0
- {echotools-2.4.5 → echotools-2.4.6}/src/echotools/exec/fncall/protocols/entml_patterns/invoke.py +0 -0
- {echotools-2.4.5 → echotools-2.4.6}/src/echotools/exec/fncall/protocols/entml_patterns/params.py +0 -0
- {echotools-2.4.5 → echotools-2.4.6}/src/echotools/exec/fncall/protocols/entml_patterns/regex.py +0 -0
- {echotools-2.4.5 → echotools-2.4.6}/src/echotools/exec/fncall/protocols/entml_patterns/strip.py +0 -0
- {echotools-2.4.5 → echotools-2.4.6}/src/echotools/exec/fncall/protocols/entml_schema/__init__.py +0 -0
- {echotools-2.4.5 → echotools-2.4.6}/src/echotools/exec/fncall/protocols/entml_schema/mangled.py +0 -0
- {echotools-2.4.5 → echotools-2.4.6}/src/echotools/exec/fncall/protocols/entml_schema/validate.py +0 -0
- {echotools-2.4.5 → echotools-2.4.6}/src/echotools/exec/fncall/protocols/entml_stream/__init__.py +0 -0
- {echotools-2.4.5 → echotools-2.4.6}/src/echotools/exec/fncall/protocols/entml_stream/body.py +0 -0
- {echotools-2.4.5 → echotools-2.4.6}/src/echotools/exec/fncall/protocols/entml_stream/snap.py +0 -0
- {echotools-2.4.5 → echotools-2.4.6}/src/echotools/exec/fncall/protocols/entml_think/__init__.py +0 -0
- {echotools-2.4.5 → echotools-2.4.6}/src/echotools/exec/fncall/protocols/entml_think/core.py +0 -0
- {echotools-2.4.5 → echotools-2.4.6}/src/echotools/exec/fncall/protocols/entml_think/filter.py +0 -0
- {echotools-2.4.5 → echotools-2.4.6}/src/echotools/exec/fncall/protocols/entml_think/hist.py +0 -0
- {echotools-2.4.5 → echotools-2.4.6}/src/echotools/exec/fncall/protocols/entml_think/hold.py +0 -0
- {echotools-2.4.5 → echotools-2.4.6}/src/echotools/exec/fncall/protocols/entml_think/parse.py +0 -0
- {echotools-2.4.5 → echotools-2.4.6}/src/echotools/exec/fncall/protocols/entml_tool/__init__.py +0 -0
- {echotools-2.4.5 → echotools-2.4.6}/src/echotools/exec/fncall/protocols/entml_tool/comment.py +0 -0
- {echotools-2.4.5 → echotools-2.4.6}/src/echotools/exec/fncall/protocols/entml_tool/fakemarkup.py +0 -0
- {echotools-2.4.5 → echotools-2.4.6}/src/echotools/exec/fncall/protocols/entml_tool/invoke.py +0 -0
- {echotools-2.4.5 → echotools-2.4.6}/src/echotools/exec/fncall/protocols/entml_tool/tools.py +0 -0
- {echotools-2.4.5 → echotools-2.4.6}/src/echotools/exec/fncall/protocols/entml_tool/values.py +0 -0
- {echotools-2.4.5 → echotools-2.4.6}/src/echotools/exec/fncall/registry.py +0 -0
- {echotools-2.4.5 → echotools-2.4.6}/src/echotools/exec/fncall/shared/__init__.py +0 -0
- {echotools-2.4.5 → echotools-2.4.6}/src/echotools/exec/fncall/shared/coercion.py +0 -0
- {echotools-2.4.5 → echotools-2.4.6}/src/echotools/exec/fncall/shared/entml_format.py +0 -0
- {echotools-2.4.5 → echotools-2.4.6}/src/echotools/exec/fncall/shared/history_markup.py +0 -0
- {echotools-2.4.5 → echotools-2.4.6}/src/echotools/exec/fncall/shared/loop_detect.py +0 -0
- {echotools-2.4.5 → echotools-2.4.6}/src/echotools/exec/fncall/shared/normalization.py +0 -0
- {echotools-2.4.5 → echotools-2.4.6}/src/echotools/exec/fncall/shared/schema_render.py +0 -0
- {echotools-2.4.5 → echotools-2.4.6}/src/echotools/exec/fncall/tool_id.py +0 -0
- {echotools-2.4.5 → echotools-2.4.6}/src/echotools/exec/keys.py +0 -0
- {echotools-2.4.5 → echotools-2.4.6}/src/echotools/exec/lifecycle/__init__.py +0 -0
- {echotools-2.4.5 → echotools-2.4.6}/src/echotools/exec/lifecycle/manager.py +0 -0
- {echotools-2.4.5 → echotools-2.4.6}/src/echotools/exec/lifecycle/updater.py +0 -0
- {echotools-2.4.5 → echotools-2.4.6}/src/echotools/exec/lifecycle/updater_pull.py +0 -0
- {echotools-2.4.5 → echotools-2.4.6}/src/echotools/exec/process/__init__.py +0 -0
- {echotools-2.4.5 → echotools-2.4.6}/src/echotools/exec/process/port.py +0 -0
- {echotools-2.4.5 → echotools-2.4.6}/src/echotools/exec/protocol/__init__.py +0 -0
- {echotools-2.4.5 → echotools-2.4.6}/src/echotools/exec/protocol/base.py +0 -0
- {echotools-2.4.5 → echotools-2.4.6}/src/echotools/exec/terminal/__init__.py +0 -0
- {echotools-2.4.5 → echotools-2.4.6}/src/echotools/exec/terminal/conpty.py +0 -0
- {echotools-2.4.5 → echotools-2.4.6}/src/echotools/exec/terminal/local/__init__.py +0 -0
- {echotools-2.4.5 → echotools-2.4.6}/src/echotools/exec/terminal/local/core.py +0 -0
- {echotools-2.4.5 → echotools-2.4.6}/src/echotools/exec/terminal/local/proc.py +0 -0
- {echotools-2.4.5 → echotools-2.4.6}/src/echotools/exec/terminal/local/unix.py +0 -0
- {echotools-2.4.5 → echotools-2.4.6}/src/echotools/exec/terminal/local/win.py +0 -0
- {echotools-2.4.5 → echotools-2.4.6}/src/echotools/exec/terminal/sanitize.py +0 -0
- {echotools-2.4.5 → echotools-2.4.6}/src/echotools/exec/terminal/session/__init__.py +0 -0
- {echotools-2.4.5 → echotools-2.4.6}/src/echotools/exec/terminal/session/base.py +0 -0
- {echotools-2.4.5 → echotools-2.4.6}/src/echotools/exec/terminal/session/client.py +0 -0
- {echotools-2.4.5 → echotools-2.4.6}/src/echotools/exec/terminal/ssh.py +0 -0
- {echotools-2.4.5 → echotools-2.4.6}/src/echotools/exec/terminal/tmux.py +0 -0
- {echotools-2.4.5 → echotools-2.4.6}/src/echotools/media/console/__init__.py +0 -0
- {echotools-2.4.5 → echotools-2.4.6}/src/echotools/media/console/charmap.py +0 -0
- {echotools-2.4.5 → echotools-2.4.6}/src/echotools/media/console/spinner.py +0 -0
- {echotools-2.4.5 → echotools-2.4.6}/src/echotools/media/console/ui.py +0 -0
- {echotools-2.4.5 → echotools-2.4.6}/src/echotools/media/console/uicore/mixins/__init__.py +0 -0
- {echotools-2.4.5 → echotools-2.4.6}/src/echotools/media/console/uicore/mixins/uibase.py +0 -0
- {echotools-2.4.5 → echotools-2.4.6}/src/echotools/media/console/uicore/mixins/uicmds.py +0 -0
- {echotools-2.4.5 → echotools-2.4.6}/src/echotools/media/console/uicore/mixins/uiinteract.py +0 -0
- {echotools-2.4.5 → echotools-2.4.6}/src/echotools/media/console/uicore/mixins/uioutput.py +0 -0
- {echotools-2.4.5 → echotools-2.4.6}/src/echotools/media/console/uicore/mixins/uistream.py +0 -0
- {echotools-2.4.5 → echotools-2.4.6}/src/echotools/media/console/uicore/ui_console.py +0 -0
- {echotools-2.4.5 → echotools-2.4.6}/src/echotools/media/console/uicore/ui_io.py +0 -0
- {echotools-2.4.5 → echotools-2.4.6}/src/echotools/media/console/uicore/ui_log.py +0 -0
- {echotools-2.4.5 → echotools-2.4.6}/src/echotools/media/console/uicore/ui_platform.py +0 -0
- {echotools-2.4.5 → echotools-2.4.6}/src/echotools/media/console/uicore/ui_text.py +0 -0
- {echotools-2.4.5 → echotools-2.4.6}/src/echotools/media/console/uicore/ui_types.py +0 -0
- {echotools-2.4.5 → echotools-2.4.6}/src/echotools/media/console/uilayout/ui_bridge.py +0 -0
- {echotools-2.4.5 → echotools-2.4.6}/src/echotools/media/console/uilayout/ui_countdown.py +0 -0
- {echotools-2.4.5 → echotools-2.4.6}/src/echotools/media/console/uilayout/ui_layout.py +0 -0
- {echotools-2.4.5 → echotools-2.4.6}/src/echotools/media/console/uilayout/ui_misc.py +0 -0
- {echotools-2.4.5 → echotools-2.4.6}/src/echotools/media/console/uilayout/ui_panel.py +0 -0
- {echotools-2.4.5 → echotools-2.4.6}/src/echotools/media/console/uilayout/ui_table.py +0 -0
- {echotools-2.4.5 → echotools-2.4.6}/src/echotools/media/console/uilayout/ui_tree.py +0 -0
- {echotools-2.4.5 → echotools-2.4.6}/src/echotools/media/console/uiwidgets/ui_box.py +0 -0
- {echotools-2.4.5 → echotools-2.4.6}/src/echotools/media/console/uiwidgets/ui_editor.py +0 -0
- {echotools-2.4.5 → echotools-2.4.6}/src/echotools/media/console/uiwidgets/ui_progress.py +0 -0
- {echotools-2.4.5 → echotools-2.4.6}/src/echotools/media/console/uiwidgets/ui_richcli.py +0 -0
- {echotools-2.4.5 → echotools-2.4.6}/src/echotools/media/console/uiwidgets/ui_select.py +0 -0
- {echotools-2.4.5 → echotools-2.4.6}/src/echotools/media/console/uiwidgets/ui_stream.py +0 -0
- {echotools-2.4.5 → echotools-2.4.6}/src/echotools/media/console/uiwidgets/ui_themes.py +0 -0
- {echotools-2.4.5 → echotools-2.4.6}/src/echotools/media/events/__init__.py +0 -0
- {echotools-2.4.5 → echotools-2.4.6}/src/echotools/media/events/bus.py +0 -0
- {echotools-2.4.5 → echotools-2.4.6}/src/echotools/media/events/event.py +0 -0
- {echotools-2.4.5 → echotools-2.4.6}/src/echotools/media/spinner/__init__.py +0 -0
- {echotools-2.4.5 → echotools-2.4.6}/src/echotools/media/spinner/spinner.py +0 -0
- {echotools-2.4.5 → echotools-2.4.6}/src/echotools/media/spinner/spinner_color.py +0 -0
- {echotools-2.4.5 → echotools-2.4.6}/src/echotools/media/tracing/__init__.py +0 -0
- {echotools-2.4.5 → echotools-2.4.6}/src/echotools/media/tracing/context.py +0 -0
- {echotools-2.4.5 → echotools-2.4.6}/src/echotools/media/tracing/span.py +0 -0
- {echotools-2.4.5 → echotools-2.4.6}/src/echotools/media/tracing/tracer.py +0 -0
- {echotools-2.4.5 → echotools-2.4.6}/src/echotools/media/translate.py +0 -0
- {echotools-2.4.5 → echotools-2.4.6}/src/echotools/media/watcher/__init__.py +0 -0
- {echotools-2.4.5 → echotools-2.4.6}/src/echotools/media/watcher/file_watcher.py +0 -0
- {echotools-2.4.5 → echotools-2.4.6}/src/echotools/media/web/__init__.py +0 -0
- {echotools-2.4.5 → echotools-2.4.6}/src/echotools/media/web/application.py +0 -0
- {echotools-2.4.5 → echotools-2.4.6}/src/echotools/media/web/broker.py +0 -0
- {echotools-2.4.5 → echotools-2.4.6}/src/echotools/media/web/input_box/app.js +0 -0
- {echotools-2.4.5 → echotools-2.4.6}/src/echotools/media/web/input_box/components/filezone.js +0 -0
- {echotools-2.4.5 → echotools-2.4.6}/src/echotools/media/web/input_box/components/motionkit.js +0 -0
- {echotools-2.4.5 → echotools-2.4.6}/src/echotools/media/web/input_box/components/sendbutton.js +0 -0
- {echotools-2.4.5 → echotools-2.4.6}/src/echotools/media/web/input_box/components/sortablelist.css +0 -0
- {echotools-2.4.5 → echotools-2.4.6}/src/echotools/media/web/input_box/components/sortablelist.js +0 -0
- {echotools-2.4.5 → echotools-2.4.6}/src/echotools/media/web/input_box/components/textinput.js +0 -0
- {echotools-2.4.5 → echotools-2.4.6}/src/echotools/media/web/input_box/components/voiceinput.js +0 -0
- {echotools-2.4.5 → echotools-2.4.6}/src/echotools/media/web/input_box/fonts/inter-500.woff2 +0 -0
- {echotools-2.4.5 → echotools-2.4.6}/src/echotools/media/web/input_box/fonts/inter-600.woff2 +0 -0
- {echotools-2.4.5 → echotools-2.4.6}/src/echotools/media/web/input_box/fonts/inter400.woff2 +0 -0
- {echotools-2.4.5 → echotools-2.4.6}/src/echotools/media/web/input_box/inputbox.css +0 -0
- {echotools-2.4.5 → echotools-2.4.6}/src/echotools/media/web/input_box/inputbox.js +0 -0
- {echotools-2.4.5 → echotools-2.4.6}/src/echotools/media/web/input_box/style.css +0 -0
- {echotools-2.4.5 → echotools-2.4.6}/src/echotools/media/web/input_box/voicegif.js +0 -0
- {echotools-2.4.5 → echotools-2.4.6}/src/echotools/media/web/middleware.py +0 -0
- {echotools-2.4.5 → echotools-2.4.6}/src/echotools/media/web/stats.py +0 -0
- {echotools-2.4.5 → echotools-2.4.6}/src/echotools/media/web/utils.py +0 -0
- {echotools-2.4.5 → echotools-2.4.6}/src/echotools/plat/files/__init__.py +0 -0
- {echotools-2.4.5 → echotools-2.4.6}/src/echotools/plat/files/file_util.py +0 -0
- {echotools-2.4.5 → echotools-2.4.6}/src/echotools/plat/network/__init__.py +0 -0
- {echotools-2.4.5 → echotools-2.4.6}/src/echotools/plat/network/http_utils.py +0 -0
- {echotools-2.4.5 → echotools-2.4.6}/src/echotools/plat/plugin/__init__.py +0 -0
- {echotools-2.4.5 → echotools-2.4.6}/src/echotools/plat/plugin/base.py +0 -0
- {echotools-2.4.5 → echotools-2.4.6}/src/echotools/plat/plugin/discovery.py +0 -0
- {echotools-2.4.5 → echotools-2.4.6}/src/echotools/plat/plugin/registry.py +0 -0
- {echotools-2.4.5 → echotools-2.4.6}/src/echotools/plat/plugin/registry_ops.py +0 -0
- {echotools-2.4.5 → echotools-2.4.6}/src/echotools/plat/proxy/__init__.py +0 -0
- {echotools-2.4.5 → echotools-2.4.6}/src/echotools/plat/proxy/manager.py +0 -0
- {echotools-2.4.5 → echotools-2.4.6}/src/echotools/plat/runtime/__init__.py +0 -0
- {echotools-2.4.5 → echotools-2.4.6}/src/echotools/plat/runtime/collector.py +0 -0
- {echotools-2.4.5 → echotools-2.4.6}/src/echotools/plat/scheduler/__init__.py +0 -0
- {echotools-2.4.5 → echotools-2.4.6}/src/echotools/plat/scheduler/scheduler.py +0 -0
- {echotools-2.4.5 → echotools-2.4.6}/src/echotools/plat/sdk/__init__.py +0 -0
- {echotools-2.4.5 → echotools-2.4.6}/src/echotools/plat/sdk/facade.py +0 -0
- {echotools-2.4.5 → echotools-2.4.6}/src/echotools/version.py +0 -0
- {echotools-2.4.5 → echotools-2.4.6}/src/echotools.egg-info/SOURCES.txt +0 -0
- {echotools-2.4.5 → echotools-2.4.6}/src/echotools.egg-info/dependency_links.txt +0 -0
- {echotools-2.4.5 → echotools-2.4.6}/src/echotools.egg-info/requires.txt +0 -0
- {echotools-2.4.5 → echotools-2.4.6}/src/echotools.egg-info/top_level.txt +0 -0
- {echotools-2.4.5 → echotools-2.4.6}/src/tests/_check_parity.py +0 -0
- {echotools-2.4.5 → echotools-2.4.6}/src/tests/bench_import.py +0 -0
- {echotools-2.4.5 → echotools-2.4.6}/src/tests/conftest.py +0 -0
- {echotools-2.4.5 → echotools-2.4.6}/src/tests/fixtures/__init__.py +0 -0
- {echotools-2.4.5 → echotools-2.4.6}/src/tests/fixtures/entml_golden.py +0 -0
- {echotools-2.4.5 → echotools-2.4.6}/src/tests/fixtures/entml_golden_update.py +0 -0
- {echotools-2.4.5 → echotools-2.4.6}/src/tests/fixtures/simulated_fake_history_markup_responses.py +0 -0
- {echotools-2.4.5 → echotools-2.4.6}/src/tests/fixtures/simulated_fault_thinking_responses.py +0 -0
- {echotools-2.4.5 → echotools-2.4.6}/src/tests/fixtures/simulated_llm_tool_responses.py +0 -0
- {echotools-2.4.5 → echotools-2.4.6}/src/tests/test_adversarial_stream_splits.py +0 -0
- {echotools-2.4.5 → echotools-2.4.6}/src/tests/test_cache_retry.py +0 -0
- {echotools-2.4.5 → echotools-2.4.6}/src/tests/test_completion.py +0 -0
- {echotools-2.4.5 → echotools-2.4.6}/src/tests/test_config.py +0 -0
- {echotools-2.4.5 → echotools-2.4.6}/src/tests/test_config_extended.py +0 -0
- {echotools-2.4.5 → echotools-2.4.6}/src/tests/test_console.py +0 -0
- {echotools-2.4.5 → echotools-2.4.6}/src/tests/test_coverage_core.py +0 -0
- {echotools-2.4.5 → echotools-2.4.6}/src/tests/test_dispatch.py +0 -0
- {echotools-2.4.5 → echotools-2.4.6}/src/tests/test_dispatch_extended.py +0 -0
- {echotools-2.4.5 → echotools-2.4.6}/src/tests/test_dispatch_race.py +0 -0
- {echotools-2.4.5 → echotools-2.4.6}/src/tests/test_entml_agent_output_formats.py +0 -0
- {echotools-2.4.5 → echotools-2.4.6}/src/tests/test_entml_bare_invoke_format.py +0 -0
- {echotools-2.4.5 → echotools-2.4.6}/src/tests/test_entml_batch_stream_comprehensive.py +0 -0
- {echotools-2.4.5 → echotools-2.4.6}/src/tests/test_entml_fake_structure_markup.py +0 -0
- {echotools-2.4.5 → echotools-2.4.6}/src/tests/test_entml_golden.py +0 -0
- {echotools-2.4.5 → echotools-2.4.6}/src/tests/test_entml_invoke_known_tool_gate.py +0 -0
- {echotools-2.4.5 → echotools-2.4.6}/src/tests/test_entml_parser_comprehensive.py +0 -0
- {echotools-2.4.5 → echotools-2.4.6}/src/tests/test_entml_stream_json.py +0 -0
- {echotools-2.4.5 → echotools-2.4.6}/src/tests/test_entml_stream_json_exhaustive.py +0 -0
- {echotools-2.4.5 → echotools-2.4.6}/src/tests/test_entml_thinking_history.py +0 -0
- {echotools-2.4.5 → echotools-2.4.6}/src/tests/test_entml_thinking_parse.py +0 -0
- {echotools-2.4.5 → echotools-2.4.6}/src/tests/test_entml_tool_parse_leak.py +0 -0
- {echotools-2.4.5 → echotools-2.4.6}/src/tests/test_entml_tool_pipeline.py +0 -0
- {echotools-2.4.5 → echotools-2.4.6}/src/tests/test_entml_tools.py +0 -0
- {echotools-2.4.5 → echotools-2.4.6}/src/tests/test_errors.py +0 -0
- {echotools-2.4.5 → echotools-2.4.6}/src/tests/test_errors_common.py +0 -0
- {echotools-2.4.5 → echotools-2.4.6}/src/tests/test_events.py +0 -0
- {echotools-2.4.5 → echotools-2.4.6}/src/tests/test_events_event.py +0 -0
- {echotools-2.4.5 → echotools-2.4.6}/src/tests/test_facade.py +0 -0
- {echotools-2.4.5 → echotools-2.4.6}/src/tests/test_fake_history_markup_batch.py +0 -0
- {echotools-2.4.5 → echotools-2.4.6}/src/tests/test_fake_history_markup_invoke_preserve.py +0 -0
- {echotools-2.4.5 → echotools-2.4.6}/src/tests/test_fake_history_markup_reply_protect.py +0 -0
- {echotools-2.4.5 → echotools-2.4.6}/src/tests/test_fake_history_markup_stream.py +0 -0
- {echotools-2.4.5 → echotools-2.4.6}/src/tests/test_fault_thinking_close_batch.py +0 -0
- {echotools-2.4.5 → echotools-2.4.6}/src/tests/test_fault_thinking_close_stream.py +0 -0
- {echotools-2.4.5 → echotools-2.4.6}/src/tests/test_fncall.py +0 -0
- {echotools-2.4.5 → echotools-2.4.6}/src/tests/test_fncall_stream_thinking.py +0 -0
- {echotools-2.4.5 → echotools-2.4.6}/src/tests/test_history_markup_filter.py +0 -0
- {echotools-2.4.5 → echotools-2.4.6}/src/tests/test_ids.py +0 -0
- {echotools-2.4.5 → echotools-2.4.6}/src/tests/test_imports.py +0 -0
- {echotools-2.4.5 → echotools-2.4.6}/src/tests/test_io.py +0 -0
- {echotools-2.4.5 → echotools-2.4.6}/src/tests/test_keys.py +0 -0
- {echotools-2.4.5 → echotools-2.4.6}/src/tests/test_lifecycle.py +0 -0
- {echotools-2.4.5 → echotools-2.4.6}/src/tests/test_logger.py +0 -0
- {echotools-2.4.5 → echotools-2.4.6}/src/tests/test_merge.py +0 -0
- {echotools-2.4.5 → echotools-2.4.6}/src/tests/test_model_branch_matrix.py +0 -0
- {echotools-2.4.5 → echotools-2.4.6}/src/tests/test_multiline_parameter_comprehensive.py +0 -0
- {echotools-2.4.5 → echotools-2.4.6}/src/tests/test_plugin.py +0 -0
- {echotools-2.4.5 → echotools-2.4.6}/src/tests/test_printstream.py +0 -0
- {echotools-2.4.5 → echotools-2.4.6}/src/tests/test_protocols.py +0 -0
- {echotools-2.4.5 → echotools-2.4.6}/src/tests/test_proxy.py +0 -0
- {echotools-2.4.5 → echotools-2.4.6}/src/tests/test_proxy_selector.py +0 -0
- {echotools-2.4.5 → echotools-2.4.6}/src/tests/test_runtime.py +0 -0
- {echotools-2.4.5 → echotools-2.4.6}/src/tests/test_scheduler.py +0 -0
- {echotools-2.4.5 → echotools-2.4.6}/src/tests/test_schema_validate.py +0 -0
- {echotools-2.4.5 → echotools-2.4.6}/src/tests/test_simulated_llm_tool_parse.py +0 -0
- {echotools-2.4.5 → echotools-2.4.6}/src/tests/test_stream_partial_json_parity.py +0 -0
- {echotools-2.4.5 → echotools-2.4.6}/src/tests/test_stream_realtime_parse.py +0 -0
- {echotools-2.4.5 → echotools-2.4.6}/src/tests/test_tool_id.py +0 -0
- {echotools-2.4.5 → echotools-2.4.6}/src/tests/test_tracing.py +0 -0
- {echotools-2.4.5 → echotools-2.4.6}/src/tests/test_ui_bridge.py +0 -0
- {echotools-2.4.5 → echotools-2.4.6}/src/tests/test_usage.py +0 -0
- {echotools-2.4.5 → echotools-2.4.6}/src/tests/test_web.py +0 -0
- {echotools-2.4.5 → echotools-2.4.6}/src/tests/test_web_broker.py +0 -0
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: echotools
|
|
3
|
-
Version: 2.4.
|
|
3
|
+
Version: 2.4.6
|
|
4
4
|
Summary: 通用基础设施 SDK:配置、日志、事件、调度、插件、协议、调用链
|
|
5
5
|
Home-page: https://github.com/nichengfuben/echotools
|
|
6
6
|
Author: nichengfuben
|
|
@@ -58,7 +58,7 @@ Requires-Dist: ruff>=0.4.0; extra == "dev"
|
|
|
58
58
|
|
|
59
59
|
通用基础设施 SDK:配置、日志、事件、调度、插件、调用链,以及 **entml** LLM 工具调用协议与终端 Console UI。
|
|
60
60
|
|
|
61
|
-
完全项目无关,兼容 Python 3.8–3.14。当前版本:**2.4.
|
|
61
|
+
完全项目无关,兼容 Python 3.8–3.14。当前版本:**2.4.6**(详见 [CHANGELOG](docs/CHANGELOG.md))。
|
|
62
62
|
|
|
63
63
|
## 安装
|
|
64
64
|
|
|
@@ -7,7 +7,9 @@ IMPORTANT: The <entml:funtions_results> block is a top-level block, independent
|
|
|
7
7
|
|
|
8
8
|
IMPORTANT: The id-bearing comment following an invocation inside <entml:conversation_history> is written by the execution environment only when logging an already-completed turn. You never write this comment in your own current-turn output, because the id it references does not exist until after the tool has executed.
|
|
9
9
|
|
|
10
|
-
IMPORTANT:
|
|
10
|
+
IMPORTANT: You never output an HTML comment of the form <!-- Tool Result ID:… --> anywhere in your current-turn reply. This includes lines such as <!-- Tool Result ID:toolu_376919369ffb428c9f76284f --> immediately after </entml:invoke>, on their own, or embedded in visible text. Only the execution environment writes Tool Result ID comments when logging completed turns into <entml:conversation_history>; imitating that pattern in live output is always wrong.
|
|
11
|
+
|
|
12
|
+
IMPORTANT: Your turn ends immediately at the closing tag of the last <entml:invoke> block you emit. Nothing follows it — no comment, no id, no Tool Result ID HTML comment, no result, no visible text, no conclusion that depends on data you have not yet received.
|
|
11
13
|
|
|
12
14
|
IMPORTANT: Structural patterns you observe in <entml:conversation_history> — an invocation followed by an id comment — describe what the environment logged after a past turn ended. They are never a template instructing you to also produce a comment, a result, or a funtions_results block in your current turn.
|
|
13
15
|
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: echotools
|
|
3
|
-
Version: 2.4.
|
|
3
|
+
Version: 2.4.6
|
|
4
4
|
Summary: 通用基础设施 SDK:配置、日志、事件、调度、插件、协议、调用链
|
|
5
5
|
Home-page: https://github.com/nichengfuben/echotools
|
|
6
6
|
Author: nichengfuben
|
|
@@ -58,7 +58,7 @@ Requires-Dist: ruff>=0.4.0; extra == "dev"
|
|
|
58
58
|
|
|
59
59
|
通用基础设施 SDK:配置、日志、事件、调度、插件、调用链,以及 **entml** LLM 工具调用协议与终端 Console UI。
|
|
60
60
|
|
|
61
|
-
完全项目无关,兼容 Python 3.8–3.14。当前版本:**2.4.
|
|
61
|
+
完全项目无关,兼容 Python 3.8–3.14。当前版本:**2.4.6**(详见 [CHANGELOG](docs/CHANGELOG.md))。
|
|
62
62
|
|
|
63
63
|
## 安装
|
|
64
64
|
|
|
@@ -854,6 +854,7 @@ def test_entml_instruction_matches_spec_format() -> None:
|
|
|
854
854
|
assert "<thinking_behavior>" in prompt
|
|
855
855
|
assert "Every reply begins with a <entml:thinking>" in prompt
|
|
856
856
|
assert "<function_calling_behavior>" in prompt
|
|
857
|
+
assert "Tool Result ID:toolu_376919369ffb428c9f76284f" in prompt
|
|
857
858
|
assert "<function_results>" not in prompt
|
|
858
859
|
assert "<entml:conversation_history>\n" not in prompt
|
|
859
860
|
assert "<entml:history>" not in prompt
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{echotools-2.4.5 → echotools-2.4.6}/src/echotools/exec/fncall/protocols/entml_patterns/__init__.py
RENAMED
|
File without changes
|
{echotools-2.4.5 → echotools-2.4.6}/src/echotools/exec/fncall/protocols/entml_patterns/invoke.py
RENAMED
|
File without changes
|
{echotools-2.4.5 → echotools-2.4.6}/src/echotools/exec/fncall/protocols/entml_patterns/params.py
RENAMED
|
File without changes
|
{echotools-2.4.5 → echotools-2.4.6}/src/echotools/exec/fncall/protocols/entml_patterns/regex.py
RENAMED
|
File without changes
|
{echotools-2.4.5 → echotools-2.4.6}/src/echotools/exec/fncall/protocols/entml_patterns/strip.py
RENAMED
|
File without changes
|
{echotools-2.4.5 → echotools-2.4.6}/src/echotools/exec/fncall/protocols/entml_schema/__init__.py
RENAMED
|
File without changes
|
{echotools-2.4.5 → echotools-2.4.6}/src/echotools/exec/fncall/protocols/entml_schema/mangled.py
RENAMED
|
File without changes
|
{echotools-2.4.5 → echotools-2.4.6}/src/echotools/exec/fncall/protocols/entml_schema/validate.py
RENAMED
|
File without changes
|
{echotools-2.4.5 → echotools-2.4.6}/src/echotools/exec/fncall/protocols/entml_stream/__init__.py
RENAMED
|
File without changes
|
{echotools-2.4.5 → echotools-2.4.6}/src/echotools/exec/fncall/protocols/entml_stream/body.py
RENAMED
|
File without changes
|
{echotools-2.4.5 → echotools-2.4.6}/src/echotools/exec/fncall/protocols/entml_stream/snap.py
RENAMED
|
File without changes
|
{echotools-2.4.5 → echotools-2.4.6}/src/echotools/exec/fncall/protocols/entml_think/__init__.py
RENAMED
|
File without changes
|
|
File without changes
|
{echotools-2.4.5 → echotools-2.4.6}/src/echotools/exec/fncall/protocols/entml_think/filter.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
{echotools-2.4.5 → echotools-2.4.6}/src/echotools/exec/fncall/protocols/entml_think/parse.py
RENAMED
|
File without changes
|
{echotools-2.4.5 → echotools-2.4.6}/src/echotools/exec/fncall/protocols/entml_tool/__init__.py
RENAMED
|
File without changes
|
{echotools-2.4.5 → echotools-2.4.6}/src/echotools/exec/fncall/protocols/entml_tool/comment.py
RENAMED
|
File without changes
|
{echotools-2.4.5 → echotools-2.4.6}/src/echotools/exec/fncall/protocols/entml_tool/fakemarkup.py
RENAMED
|
File without changes
|
{echotools-2.4.5 → echotools-2.4.6}/src/echotools/exec/fncall/protocols/entml_tool/invoke.py
RENAMED
|
File without changes
|
|
File without changes
|
{echotools-2.4.5 → echotools-2.4.6}/src/echotools/exec/fncall/protocols/entml_tool/values.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{echotools-2.4.5 → echotools-2.4.6}/src/echotools/media/web/input_box/components/filezone.js
RENAMED
|
File without changes
|
{echotools-2.4.5 → echotools-2.4.6}/src/echotools/media/web/input_box/components/motionkit.js
RENAMED
|
File without changes
|
{echotools-2.4.5 → echotools-2.4.6}/src/echotools/media/web/input_box/components/sendbutton.js
RENAMED
|
File without changes
|
{echotools-2.4.5 → echotools-2.4.6}/src/echotools/media/web/input_box/components/sortablelist.css
RENAMED
|
File without changes
|
{echotools-2.4.5 → echotools-2.4.6}/src/echotools/media/web/input_box/components/sortablelist.js
RENAMED
|
File without changes
|
{echotools-2.4.5 → echotools-2.4.6}/src/echotools/media/web/input_box/components/textinput.js
RENAMED
|
File without changes
|
{echotools-2.4.5 → echotools-2.4.6}/src/echotools/media/web/input_box/components/voiceinput.js
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{echotools-2.4.5 → echotools-2.4.6}/src/tests/fixtures/simulated_fake_history_markup_responses.py
RENAMED
|
File without changes
|
{echotools-2.4.5 → echotools-2.4.6}/src/tests/fixtures/simulated_fault_thinking_responses.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|