echotools 2.3.90__tar.gz → 2.3.91__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.3.90 → echotools-2.3.91}/PKG-INFO +1 -1
- {echotools-2.3.90 → echotools-2.3.91}/pyproject.toml +1 -1
- {echotools-2.3.90 → echotools-2.3.91}/src/echotools/exec/fncall/prompt/templates.py +27 -14
- {echotools-2.3.90 → echotools-2.3.91}/src/echotools.egg-info/PKG-INFO +1 -1
- {echotools-2.3.90 → echotools-2.3.91}/src/tests/test_entml_protocol.py +3 -3
- {echotools-2.3.90 → echotools-2.3.91}/src/tests/test_entml_tool_pipeline.py +2 -2
- {echotools-2.3.90 → echotools-2.3.91}/README.md +0 -0
- {echotools-2.3.90 → echotools-2.3.91}/setup.cfg +0 -0
- {echotools-2.3.90 → echotools-2.3.91}/src/echotools/__init__.py +0 -0
- {echotools-2.3.90 → echotools-2.3.91}/src/echotools/base/cache/__init__.py +0 -0
- {echotools-2.3.90 → echotools-2.3.91}/src/echotools/base/cache/list_cache.py +0 -0
- {echotools-2.3.90 → echotools-2.3.91}/src/echotools/base/cache/memory_cache.py +0 -0
- {echotools-2.3.90 → echotools-2.3.91}/src/echotools/base/config/__init__.py +0 -0
- {echotools-2.3.90 → echotools-2.3.91}/src/echotools/base/config/base.py +0 -0
- {echotools-2.3.90 → echotools-2.3.91}/src/echotools/base/config/center.py +0 -0
- {echotools-2.3.90 → echotools-2.3.91}/src/echotools/base/config/center_notify.py +0 -0
- {echotools-2.3.90 → echotools-2.3.91}/src/echotools/base/config/center_template.py +0 -0
- {echotools-2.3.90 → echotools-2.3.91}/src/echotools/base/config/loader.py +0 -0
- {echotools-2.3.90 → echotools-2.3.91}/src/echotools/base/config/merge.py +0 -0
- {echotools-2.3.90 → echotools-2.3.91}/src/echotools/base/errors/__init__.py +0 -0
- {echotools-2.3.90 → echotools-2.3.91}/src/echotools/base/errors/base.py +0 -0
- {echotools-2.3.90 → echotools-2.3.91}/src/echotools/base/errors/classify.py +0 -0
- {echotools-2.3.90 → echotools-2.3.91}/src/echotools/base/errors/common.py +0 -0
- {echotools-2.3.90 → echotools-2.3.91}/src/echotools/base/errors/http.py +0 -0
- {echotools-2.3.90 → echotools-2.3.91}/src/echotools/base/ids/__init__.py +0 -0
- {echotools-2.3.90 → echotools-2.3.91}/src/echotools/base/ids/generator.py +0 -0
- {echotools-2.3.90 → echotools-2.3.91}/src/echotools/base/io/__init__.py +0 -0
- {echotools-2.3.90 → echotools-2.3.91}/src/echotools/base/io/io_utils.py +0 -0
- {echotools-2.3.90 → echotools-2.3.91}/src/echotools/base/io/printstream.py +0 -0
- {echotools-2.3.90 → echotools-2.3.91}/src/echotools/base/logger/__init__.py +0 -0
- {echotools-2.3.90 → echotools-2.3.91}/src/echotools/base/logger/manager.py +0 -0
- {echotools-2.3.90 → echotools-2.3.91}/src/echotools/base/retry/__init__.py +0 -0
- {echotools-2.3.90 → echotools-2.3.91}/src/echotools/base/retry/retry.py +0 -0
- {echotools-2.3.90 → echotools-2.3.91}/src/echotools/compat.py +0 -0
- {echotools-2.3.90 → echotools-2.3.91}/src/echotools/exec/dispatch/__init__.py +0 -0
- {echotools-2.3.90 → echotools-2.3.91}/src/echotools/exec/dispatch/candidate.py +0 -0
- {echotools-2.3.90 → echotools-2.3.91}/src/echotools/exec/dispatch/dispatcher.py +0 -0
- {echotools-2.3.90 → echotools-2.3.91}/src/echotools/exec/dispatch/proxy_selector.py +0 -0
- {echotools-2.3.90 → echotools-2.3.91}/src/echotools/exec/dispatch/race.py +0 -0
- {echotools-2.3.90 → echotools-2.3.91}/src/echotools/exec/dispatch/selector.py +0 -0
- {echotools-2.3.90 → echotools-2.3.91}/src/echotools/exec/dispatch/usage.py +0 -0
- {echotools-2.3.90 → echotools-2.3.91}/src/echotools/exec/fncall/__init__.py +0 -0
- {echotools-2.3.90 → echotools-2.3.91}/src/echotools/exec/fncall/parsers/__init__.py +0 -0
- {echotools-2.3.90 → echotools-2.3.91}/src/echotools/exec/fncall/parsers/stream.py +0 -0
- {echotools-2.3.90 → echotools-2.3.91}/src/echotools/exec/fncall/parsers/stream_delta.py +0 -0
- {echotools-2.3.90 → echotools-2.3.91}/src/echotools/exec/fncall/parsers/stream_feed.py +0 -0
- {echotools-2.3.90 → echotools-2.3.91}/src/echotools/exec/fncall/parsers/stream_final.py +0 -0
- {echotools-2.3.90 → echotools-2.3.91}/src/echotools/exec/fncall/parsers/xml_params.py +0 -0
- {echotools-2.3.90 → echotools-2.3.91}/src/echotools/exec/fncall/parsers/xml_parser.py +0 -0
- {echotools-2.3.90 → echotools-2.3.91}/src/echotools/exec/fncall/prompt/__init__.py +0 -0
- {echotools-2.3.90 → echotools-2.3.91}/src/echotools/exec/fncall/prompt/history.py +0 -0
- {echotools-2.3.90 → echotools-2.3.91}/src/echotools/exec/fncall/prompt/history_format.py +0 -0
- {echotools-2.3.90 → echotools-2.3.91}/src/echotools/exec/fncall/prompt/inject.py +0 -0
- {echotools-2.3.90 → echotools-2.3.91}/src/echotools/exec/fncall/prompt/prompt_helpers.py +0 -0
- {echotools-2.3.90 → echotools-2.3.91}/src/echotools/exec/fncall/protocols/__init__.py +0 -0
- {echotools-2.3.90 → echotools-2.3.91}/src/echotools/exec/fncall/protocols/entml.py +0 -0
- {echotools-2.3.90 → echotools-2.3.91}/src/echotools/exec/fncall/protocols/entml_invoke.py +0 -0
- {echotools-2.3.90 → echotools-2.3.91}/src/echotools/exec/fncall/protocols/entml_patterns.py +0 -0
- {echotools-2.3.90 → echotools-2.3.91}/src/echotools/exec/fncall/protocols/entml_schema.py +0 -0
- {echotools-2.3.90 → echotools-2.3.91}/src/echotools/exec/fncall/protocols/entml_stream/__init__.py +0 -0
- {echotools-2.3.90 → echotools-2.3.91}/src/echotools/exec/fncall/protocols/entml_stream/body.py +0 -0
- {echotools-2.3.90 → echotools-2.3.91}/src/echotools/exec/fncall/protocols/entml_stream/snap.py +0 -0
- {echotools-2.3.90 → echotools-2.3.91}/src/echotools/exec/fncall/protocols/entml_think/__init__.py +0 -0
- {echotools-2.3.90 → echotools-2.3.91}/src/echotools/exec/fncall/protocols/entml_think/blocks.py +0 -0
- {echotools-2.3.90 → echotools-2.3.91}/src/echotools/exec/fncall/protocols/entml_think/core.py +0 -0
- {echotools-2.3.90 → echotools-2.3.91}/src/echotools/exec/fncall/protocols/entml_think/filter.py +0 -0
- {echotools-2.3.90 → echotools-2.3.91}/src/echotools/exec/fncall/protocols/entml_think/hist.py +0 -0
- {echotools-2.3.90 → echotools-2.3.91}/src/echotools/exec/fncall/protocols/entml_think/hold.py +0 -0
- {echotools-2.3.90 → echotools-2.3.91}/src/echotools/exec/fncall/protocols/entml_think/parse.py +0 -0
- {echotools-2.3.90 → echotools-2.3.91}/src/echotools/exec/fncall/registry.py +0 -0
- {echotools-2.3.90 → echotools-2.3.91}/src/echotools/exec/fncall/shared/__init__.py +0 -0
- {echotools-2.3.90 → echotools-2.3.91}/src/echotools/exec/fncall/shared/coercion.py +0 -0
- {echotools-2.3.90 → echotools-2.3.91}/src/echotools/exec/fncall/shared/history_markup.py +0 -0
- {echotools-2.3.90 → echotools-2.3.91}/src/echotools/exec/fncall/shared/loop_detect.py +0 -0
- {echotools-2.3.90 → echotools-2.3.91}/src/echotools/exec/fncall/shared/normalization.py +0 -0
- {echotools-2.3.90 → echotools-2.3.91}/src/echotools/exec/fncall/shared/schema_render.py +0 -0
- {echotools-2.3.90 → echotools-2.3.91}/src/echotools/exec/fncall/shared/xml_helpers.py +0 -0
- {echotools-2.3.90 → echotools-2.3.91}/src/echotools/exec/keys.py +0 -0
- {echotools-2.3.90 → echotools-2.3.91}/src/echotools/exec/lifecycle/__init__.py +0 -0
- {echotools-2.3.90 → echotools-2.3.91}/src/echotools/exec/lifecycle/manager.py +0 -0
- {echotools-2.3.90 → echotools-2.3.91}/src/echotools/exec/lifecycle/updater.py +0 -0
- {echotools-2.3.90 → echotools-2.3.91}/src/echotools/exec/lifecycle/updater_pull.py +0 -0
- {echotools-2.3.90 → echotools-2.3.91}/src/echotools/exec/process/__init__.py +0 -0
- {echotools-2.3.90 → echotools-2.3.91}/src/echotools/exec/process/port.py +0 -0
- {echotools-2.3.90 → echotools-2.3.91}/src/echotools/exec/protocol/__init__.py +0 -0
- {echotools-2.3.90 → echotools-2.3.91}/src/echotools/exec/protocol/base.py +0 -0
- {echotools-2.3.90 → echotools-2.3.91}/src/echotools/exec/terminal/__init__.py +0 -0
- {echotools-2.3.90 → echotools-2.3.91}/src/echotools/exec/terminal/conpty.py +0 -0
- {echotools-2.3.90 → echotools-2.3.91}/src/echotools/exec/terminal/local/__init__.py +0 -0
- {echotools-2.3.90 → echotools-2.3.91}/src/echotools/exec/terminal/local/core.py +0 -0
- {echotools-2.3.90 → echotools-2.3.91}/src/echotools/exec/terminal/local/proc.py +0 -0
- {echotools-2.3.90 → echotools-2.3.91}/src/echotools/exec/terminal/local/unix.py +0 -0
- {echotools-2.3.90 → echotools-2.3.91}/src/echotools/exec/terminal/local/win.py +0 -0
- {echotools-2.3.90 → echotools-2.3.91}/src/echotools/exec/terminal/sanitize.py +0 -0
- {echotools-2.3.90 → echotools-2.3.91}/src/echotools/exec/terminal/session/__init__.py +0 -0
- {echotools-2.3.90 → echotools-2.3.91}/src/echotools/exec/terminal/session/base.py +0 -0
- {echotools-2.3.90 → echotools-2.3.91}/src/echotools/exec/terminal/session/client.py +0 -0
- {echotools-2.3.90 → echotools-2.3.91}/src/echotools/exec/terminal/ssh.py +0 -0
- {echotools-2.3.90 → echotools-2.3.91}/src/echotools/exec/terminal/tmux.py +0 -0
- {echotools-2.3.90 → echotools-2.3.91}/src/echotools/media/console/__init__.py +0 -0
- {echotools-2.3.90 → echotools-2.3.91}/src/echotools/media/console/charmap.py +0 -0
- {echotools-2.3.90 → echotools-2.3.91}/src/echotools/media/console/spinner.py +0 -0
- {echotools-2.3.90 → echotools-2.3.91}/src/echotools/media/console/ui.py +0 -0
- {echotools-2.3.90 → echotools-2.3.91}/src/echotools/media/console/uicore/mixins/__init__.py +0 -0
- {echotools-2.3.90 → echotools-2.3.91}/src/echotools/media/console/uicore/mixins/uibase.py +0 -0
- {echotools-2.3.90 → echotools-2.3.91}/src/echotools/media/console/uicore/mixins/uicmds.py +0 -0
- {echotools-2.3.90 → echotools-2.3.91}/src/echotools/media/console/uicore/mixins/uiinteract.py +0 -0
- {echotools-2.3.90 → echotools-2.3.91}/src/echotools/media/console/uicore/mixins/uioutput.py +0 -0
- {echotools-2.3.90 → echotools-2.3.91}/src/echotools/media/console/uicore/mixins/uistream.py +0 -0
- {echotools-2.3.90 → echotools-2.3.91}/src/echotools/media/console/uicore/ui_console.py +0 -0
- {echotools-2.3.90 → echotools-2.3.91}/src/echotools/media/console/uicore/ui_io.py +0 -0
- {echotools-2.3.90 → echotools-2.3.91}/src/echotools/media/console/uicore/ui_log.py +0 -0
- {echotools-2.3.90 → echotools-2.3.91}/src/echotools/media/console/uicore/ui_platform.py +0 -0
- {echotools-2.3.90 → echotools-2.3.91}/src/echotools/media/console/uicore/ui_text.py +0 -0
- {echotools-2.3.90 → echotools-2.3.91}/src/echotools/media/console/uicore/ui_types.py +0 -0
- {echotools-2.3.90 → echotools-2.3.91}/src/echotools/media/console/uilayout/ui_countdown.py +0 -0
- {echotools-2.3.90 → echotools-2.3.91}/src/echotools/media/console/uilayout/ui_layout.py +0 -0
- {echotools-2.3.90 → echotools-2.3.91}/src/echotools/media/console/uilayout/ui_misc.py +0 -0
- {echotools-2.3.90 → echotools-2.3.91}/src/echotools/media/console/uilayout/ui_panel.py +0 -0
- {echotools-2.3.90 → echotools-2.3.91}/src/echotools/media/console/uilayout/ui_table.py +0 -0
- {echotools-2.3.90 → echotools-2.3.91}/src/echotools/media/console/uilayout/ui_tree.py +0 -0
- {echotools-2.3.90 → echotools-2.3.91}/src/echotools/media/console/uiwidgets/ui_box.py +0 -0
- {echotools-2.3.90 → echotools-2.3.91}/src/echotools/media/console/uiwidgets/ui_editor.py +0 -0
- {echotools-2.3.90 → echotools-2.3.91}/src/echotools/media/console/uiwidgets/ui_progress.py +0 -0
- {echotools-2.3.90 → echotools-2.3.91}/src/echotools/media/console/uiwidgets/ui_select.py +0 -0
- {echotools-2.3.90 → echotools-2.3.91}/src/echotools/media/console/uiwidgets/ui_stream.py +0 -0
- {echotools-2.3.90 → echotools-2.3.91}/src/echotools/media/events/__init__.py +0 -0
- {echotools-2.3.90 → echotools-2.3.91}/src/echotools/media/events/bus.py +0 -0
- {echotools-2.3.90 → echotools-2.3.91}/src/echotools/media/events/event.py +0 -0
- {echotools-2.3.90 → echotools-2.3.91}/src/echotools/media/spinner/__init__.py +0 -0
- {echotools-2.3.90 → echotools-2.3.91}/src/echotools/media/spinner/spinner.py +0 -0
- {echotools-2.3.90 → echotools-2.3.91}/src/echotools/media/spinner/spinner_color.py +0 -0
- {echotools-2.3.90 → echotools-2.3.91}/src/echotools/media/tracing/__init__.py +0 -0
- {echotools-2.3.90 → echotools-2.3.91}/src/echotools/media/tracing/context.py +0 -0
- {echotools-2.3.90 → echotools-2.3.91}/src/echotools/media/tracing/span.py +0 -0
- {echotools-2.3.90 → echotools-2.3.91}/src/echotools/media/tracing/tracer.py +0 -0
- {echotools-2.3.90 → echotools-2.3.91}/src/echotools/media/translate.py +0 -0
- {echotools-2.3.90 → echotools-2.3.91}/src/echotools/media/watcher/__init__.py +0 -0
- {echotools-2.3.90 → echotools-2.3.91}/src/echotools/media/watcher/file_watcher.py +0 -0
- {echotools-2.3.90 → echotools-2.3.91}/src/echotools/media/web/__init__.py +0 -0
- {echotools-2.3.90 → echotools-2.3.91}/src/echotools/media/web/application.py +0 -0
- {echotools-2.3.90 → echotools-2.3.91}/src/echotools/media/web/broker.py +0 -0
- {echotools-2.3.90 → echotools-2.3.91}/src/echotools/media/web/input_box/app.js +0 -0
- {echotools-2.3.90 → echotools-2.3.91}/src/echotools/media/web/input_box/components/filezone.js +0 -0
- {echotools-2.3.90 → echotools-2.3.91}/src/echotools/media/web/input_box/components/motionkit.js +0 -0
- {echotools-2.3.90 → echotools-2.3.91}/src/echotools/media/web/input_box/components/sendbutton.js +0 -0
- {echotools-2.3.90 → echotools-2.3.91}/src/echotools/media/web/input_box/components/sortablelist.css +0 -0
- {echotools-2.3.90 → echotools-2.3.91}/src/echotools/media/web/input_box/components/sortablelist.js +0 -0
- {echotools-2.3.90 → echotools-2.3.91}/src/echotools/media/web/input_box/components/textinput.js +0 -0
- {echotools-2.3.90 → echotools-2.3.91}/src/echotools/media/web/input_box/components/voiceinput.js +0 -0
- {echotools-2.3.90 → echotools-2.3.91}/src/echotools/media/web/input_box/fonts/inter-500.woff2 +0 -0
- {echotools-2.3.90 → echotools-2.3.91}/src/echotools/media/web/input_box/fonts/inter-600.woff2 +0 -0
- {echotools-2.3.90 → echotools-2.3.91}/src/echotools/media/web/input_box/fonts/inter400.woff2 +0 -0
- {echotools-2.3.90 → echotools-2.3.91}/src/echotools/media/web/input_box/inputbox.css +0 -0
- {echotools-2.3.90 → echotools-2.3.91}/src/echotools/media/web/input_box/inputbox.js +0 -0
- {echotools-2.3.90 → echotools-2.3.91}/src/echotools/media/web/input_box/style.css +0 -0
- {echotools-2.3.90 → echotools-2.3.91}/src/echotools/media/web/input_box/voicegif.js +0 -0
- {echotools-2.3.90 → echotools-2.3.91}/src/echotools/media/web/middleware.py +0 -0
- {echotools-2.3.90 → echotools-2.3.91}/src/echotools/media/web/stats.py +0 -0
- {echotools-2.3.90 → echotools-2.3.91}/src/echotools/media/web/utils.py +0 -0
- {echotools-2.3.90 → echotools-2.3.91}/src/echotools/plat/files/__init__.py +0 -0
- {echotools-2.3.90 → echotools-2.3.91}/src/echotools/plat/files/file_util.py +0 -0
- {echotools-2.3.90 → echotools-2.3.91}/src/echotools/plat/network/__init__.py +0 -0
- {echotools-2.3.90 → echotools-2.3.91}/src/echotools/plat/network/http_utils.py +0 -0
- {echotools-2.3.90 → echotools-2.3.91}/src/echotools/plat/plugin/__init__.py +0 -0
- {echotools-2.3.90 → echotools-2.3.91}/src/echotools/plat/plugin/base.py +0 -0
- {echotools-2.3.90 → echotools-2.3.91}/src/echotools/plat/plugin/discovery.py +0 -0
- {echotools-2.3.90 → echotools-2.3.91}/src/echotools/plat/plugin/registry.py +0 -0
- {echotools-2.3.90 → echotools-2.3.91}/src/echotools/plat/plugin/registry_ops.py +0 -0
- {echotools-2.3.90 → echotools-2.3.91}/src/echotools/plat/proxy/__init__.py +0 -0
- {echotools-2.3.90 → echotools-2.3.91}/src/echotools/plat/proxy/manager.py +0 -0
- {echotools-2.3.90 → echotools-2.3.91}/src/echotools/plat/runtime/__init__.py +0 -0
- {echotools-2.3.90 → echotools-2.3.91}/src/echotools/plat/runtime/collector.py +0 -0
- {echotools-2.3.90 → echotools-2.3.91}/src/echotools/plat/scheduler/__init__.py +0 -0
- {echotools-2.3.90 → echotools-2.3.91}/src/echotools/plat/scheduler/scheduler.py +0 -0
- {echotools-2.3.90 → echotools-2.3.91}/src/echotools/plat/sdk/__init__.py +0 -0
- {echotools-2.3.90 → echotools-2.3.91}/src/echotools/plat/sdk/facade.py +0 -0
- {echotools-2.3.90 → echotools-2.3.91}/src/echotools/version.py +0 -0
- {echotools-2.3.90 → echotools-2.3.91}/src/echotools.egg-info/SOURCES.txt +0 -0
- {echotools-2.3.90 → echotools-2.3.91}/src/echotools.egg-info/dependency_links.txt +0 -0
- {echotools-2.3.90 → echotools-2.3.91}/src/echotools.egg-info/requires.txt +0 -0
- {echotools-2.3.90 → echotools-2.3.91}/src/echotools.egg-info/top_level.txt +0 -0
- {echotools-2.3.90 → echotools-2.3.91}/src/tests/bench_import.py +0 -0
- {echotools-2.3.90 → echotools-2.3.91}/src/tests/conftest.py +0 -0
- {echotools-2.3.90 → echotools-2.3.91}/src/tests/fixtures/__init__.py +0 -0
- {echotools-2.3.90 → echotools-2.3.91}/src/tests/fixtures/simulated_fake_history_markup_responses.py +0 -0
- {echotools-2.3.90 → echotools-2.3.91}/src/tests/fixtures/simulated_fault_thinking_responses.py +0 -0
- {echotools-2.3.90 → echotools-2.3.91}/src/tests/fixtures/simulated_llm_tool_responses.py +0 -0
- {echotools-2.3.90 → echotools-2.3.91}/src/tests/test_adversarial_stream_splits.py +0 -0
- {echotools-2.3.90 → echotools-2.3.91}/src/tests/test_cache_retry.py +0 -0
- {echotools-2.3.90 → echotools-2.3.91}/src/tests/test_completion.py +0 -0
- {echotools-2.3.90 → echotools-2.3.91}/src/tests/test_config.py +0 -0
- {echotools-2.3.90 → echotools-2.3.91}/src/tests/test_config_extended.py +0 -0
- {echotools-2.3.90 → echotools-2.3.91}/src/tests/test_console.py +0 -0
- {echotools-2.3.90 → echotools-2.3.91}/src/tests/test_coverage_core.py +0 -0
- {echotools-2.3.90 → echotools-2.3.91}/src/tests/test_dispatch.py +0 -0
- {echotools-2.3.90 → echotools-2.3.91}/src/tests/test_dispatch_extended.py +0 -0
- {echotools-2.3.90 → echotools-2.3.91}/src/tests/test_dispatch_race.py +0 -0
- {echotools-2.3.90 → echotools-2.3.91}/src/tests/test_entml_agent_output_formats.py +0 -0
- {echotools-2.3.90 → echotools-2.3.91}/src/tests/test_entml_bare_invoke_format.py +0 -0
- {echotools-2.3.90 → echotools-2.3.91}/src/tests/test_entml_batch_stream_comprehensive.py +0 -0
- {echotools-2.3.90 → echotools-2.3.91}/src/tests/test_entml_invoke_known_tool_gate.py +0 -0
- {echotools-2.3.90 → echotools-2.3.91}/src/tests/test_entml_parser_comprehensive.py +0 -0
- {echotools-2.3.90 → echotools-2.3.91}/src/tests/test_entml_stream_json.py +0 -0
- {echotools-2.3.90 → echotools-2.3.91}/src/tests/test_entml_stream_json_exhaustive.py +0 -0
- {echotools-2.3.90 → echotools-2.3.91}/src/tests/test_entml_thinking_history.py +0 -0
- {echotools-2.3.90 → echotools-2.3.91}/src/tests/test_entml_thinking_parse.py +0 -0
- {echotools-2.3.90 → echotools-2.3.91}/src/tests/test_entml_tool_parse_leak.py +0 -0
- {echotools-2.3.90 → echotools-2.3.91}/src/tests/test_entml_tools.py +0 -0
- {echotools-2.3.90 → echotools-2.3.91}/src/tests/test_errors.py +0 -0
- {echotools-2.3.90 → echotools-2.3.91}/src/tests/test_errors_common.py +0 -0
- {echotools-2.3.90 → echotools-2.3.91}/src/tests/test_events.py +0 -0
- {echotools-2.3.90 → echotools-2.3.91}/src/tests/test_events_event.py +0 -0
- {echotools-2.3.90 → echotools-2.3.91}/src/tests/test_facade.py +0 -0
- {echotools-2.3.90 → echotools-2.3.91}/src/tests/test_fake_history_markup_batch.py +0 -0
- {echotools-2.3.90 → echotools-2.3.91}/src/tests/test_fake_history_markup_invoke_preserve.py +0 -0
- {echotools-2.3.90 → echotools-2.3.91}/src/tests/test_fake_history_markup_reply_protect.py +0 -0
- {echotools-2.3.90 → echotools-2.3.91}/src/tests/test_fake_history_markup_stream.py +0 -0
- {echotools-2.3.90 → echotools-2.3.91}/src/tests/test_fault_thinking_close_batch.py +0 -0
- {echotools-2.3.90 → echotools-2.3.91}/src/tests/test_fault_thinking_close_stream.py +0 -0
- {echotools-2.3.90 → echotools-2.3.91}/src/tests/test_fncall.py +0 -0
- {echotools-2.3.90 → echotools-2.3.91}/src/tests/test_fncall_stream_thinking.py +0 -0
- {echotools-2.3.90 → echotools-2.3.91}/src/tests/test_history_markup_filter.py +0 -0
- {echotools-2.3.90 → echotools-2.3.91}/src/tests/test_ids.py +0 -0
- {echotools-2.3.90 → echotools-2.3.91}/src/tests/test_imports.py +0 -0
- {echotools-2.3.90 → echotools-2.3.91}/src/tests/test_io.py +0 -0
- {echotools-2.3.90 → echotools-2.3.91}/src/tests/test_keys.py +0 -0
- {echotools-2.3.90 → echotools-2.3.91}/src/tests/test_lifecycle.py +0 -0
- {echotools-2.3.90 → echotools-2.3.91}/src/tests/test_logger.py +0 -0
- {echotools-2.3.90 → echotools-2.3.91}/src/tests/test_merge.py +0 -0
- {echotools-2.3.90 → echotools-2.3.91}/src/tests/test_model_branch_matrix.py +0 -0
- {echotools-2.3.90 → echotools-2.3.91}/src/tests/test_plugin.py +0 -0
- {echotools-2.3.90 → echotools-2.3.91}/src/tests/test_printstream.py +0 -0
- {echotools-2.3.90 → echotools-2.3.91}/src/tests/test_protocols.py +0 -0
- {echotools-2.3.90 → echotools-2.3.91}/src/tests/test_proxy.py +0 -0
- {echotools-2.3.90 → echotools-2.3.91}/src/tests/test_proxy_selector.py +0 -0
- {echotools-2.3.90 → echotools-2.3.91}/src/tests/test_runtime.py +0 -0
- {echotools-2.3.90 → echotools-2.3.91}/src/tests/test_scheduler.py +0 -0
- {echotools-2.3.90 → echotools-2.3.91}/src/tests/test_simulated_llm_tool_parse.py +0 -0
- {echotools-2.3.90 → echotools-2.3.91}/src/tests/test_stream_partial_json_parity.py +0 -0
- {echotools-2.3.90 → echotools-2.3.91}/src/tests/test_stream_realtime_parse.py +0 -0
- {echotools-2.3.90 → echotools-2.3.91}/src/tests/test_tracing.py +0 -0
- {echotools-2.3.90 → echotools-2.3.91}/src/tests/test_usage.py +0 -0
- {echotools-2.3.90 → echotools-2.3.91}/src/tests/test_web.py +0 -0
- {echotools-2.3.90 → echotools-2.3.91}/src/tests/test_web_broker.py +0 -0
|
@@ -118,20 +118,33 @@ _HISTORY_CLARIFY_EN = (
|
|
|
118
118
|
"The user's latest message follows below."
|
|
119
119
|
)
|
|
120
120
|
|
|
121
|
-
_TOOL_INVOKE_REMINDER_EN =
|
|
122
|
-
|
|
123
|
-
|
|
124
|
-
|
|
125
|
-
|
|
126
|
-
|
|
127
|
-
|
|
128
|
-
|
|
129
|
-
|
|
130
|
-
|
|
131
|
-
|
|
132
|
-
|
|
133
|
-
|
|
134
|
-
|
|
121
|
+
_TOOL_INVOKE_REMINDER_EN = """\
|
|
122
|
+
IMPORTANT: If you execute a tool in this turn, you must output a literal `<entml:invoke name="TOOL_NAME">` block exactly as specified in the tool instructions at the top of this prompt. No other format is accepted when you execute a tool in this turn.
|
|
123
|
+
|
|
124
|
+
IMPORTANT: The `<entml:invoke` opening tag must close with `>` before any `<entml:parameter>` children. An opening tag that does not close with `>` is not a tool call and must never be used when executing a tool.
|
|
125
|
+
|
|
126
|
+
IMPORTANT: The `name` attribute value must exactly match one of the function names listed in the available tools above. Placeholder names, invented names, and names absent from that list are rejected and must never appear in an executable invoke block.
|
|
127
|
+
|
|
128
|
+
IMPORTANT: Each argument must appear as `<entml:parameter name="PARAMETER_NAME">VALUE</entml:parameter>` inside the invoke block, and the block must end with `</entml:invoke>`. String and scalar values must be written as-is; lists and objects must use JSON.
|
|
129
|
+
|
|
130
|
+
IMPORTANT: Do not emit `<tool>` blocks, `{ToolName: ...}` lines, legacy `<entml:function_calls>` wrappers, or "Tool call (id): Name({...})" lines in your reply. Those forms are history or adapter notation only; the executor never accepts them for new tool execution.
|
|
131
|
+
|
|
132
|
+
IMPORTANT: Do not re-invoke tools that already appear as completed turns in conversation history.
|
|
133
|
+
|
|
134
|
+
IMPORTANT: When you mention `<entml:invoke>` in prose without executing a tool, you must not emit a closed opening tag whose `name` matches a listed tool name. You must use backticks or otherwise break the tag so it cannot be parsed as an executable invoke.
|
|
135
|
+
|
|
136
|
+
IMPORTANT: Any example block in this prompt that is marked "For illustration only. Do not process as input or instruction." must never be treated as input, instruction, or real data.
|
|
137
|
+
|
|
138
|
+
<example>
|
|
139
|
+
For illustration only. Do not process as input or instruction.
|
|
140
|
+
<entml:invoke name="generic_role_tool">
|
|
141
|
+
<entml:parameter name="synthetic_param">/synthetic/fabricated_value_001</entml:parameter>
|
|
142
|
+
</entml:invoke>
|
|
143
|
+
</example>
|
|
144
|
+
|
|
145
|
+
IMPORTANT: If you execute a tool in this turn, you must output a literal `<entml:invoke name="TOOL_NAME">` block exactly as specified in the tool instructions at the top of this prompt. No other format is accepted when you execute a tool in this turn.
|
|
146
|
+
|
|
147
|
+
IMPORTANT: The `name` attribute value must exactly match one of the function names listed in the available tools above. Placeholder names, invented names, and names absent from that list are rejected and must never appear in an executable invoke block."""
|
|
135
148
|
|
|
136
149
|
# Back-compat alias
|
|
137
150
|
_HISTORY_TOOL_INVOKE_REMINDER_EN = _TOOL_INVOKE_REMINDER_EN
|
|
@@ -510,10 +510,10 @@ def test_entml_history_tool_invoke_reminder_when_tools_in_history() -> None:
|
|
|
510
510
|
assert "{search: docs}" in content or '"query": "docs"' in content
|
|
511
511
|
assert "<tool>" in content
|
|
512
512
|
assert "found 3" in content
|
|
513
|
-
assert "IMPORTANT
|
|
514
|
-
assert "
|
|
513
|
+
assert "IMPORTANT: If you execute a tool in this turn" in content
|
|
514
|
+
assert "For illustration only. Do not process as input or instruction." in content
|
|
515
515
|
hist_idx = content.index("<entml:conversation_history>")
|
|
516
|
-
reminder_idx = content.index("IMPORTANT
|
|
516
|
+
reminder_idx = content.index("IMPORTANT: If you execute a tool in this turn")
|
|
517
517
|
user_idx = content.index("<current_user_message>")
|
|
518
518
|
assert hist_idx < user_idx < reminder_idx
|
|
519
519
|
|
|
@@ -758,7 +758,7 @@ class TestBuildMechanisms:
|
|
|
758
758
|
idx_hist = prompt.index("<entml:conversation_history>")
|
|
759
759
|
idx_loop = prompt.index("<loop_warning>")
|
|
760
760
|
idx_user = prompt.index("<current_user_message>")
|
|
761
|
-
idx_remind = prompt.index("IMPORTANT
|
|
761
|
+
idx_remind = prompt.index("IMPORTANT: If you execute a tool in this turn")
|
|
762
762
|
idx_think = prompt.index("<entml:thinking_mode>")
|
|
763
763
|
assert idx_tools < idx_sys < idx_hist < idx_loop < idx_user < idx_remind < idx_think
|
|
764
764
|
|
|
@@ -788,7 +788,7 @@ class TestBuildMechanisms:
|
|
|
788
788
|
assert "{search: q}" in content
|
|
789
789
|
assert "found" in content
|
|
790
790
|
assert "<current_user_message>\nnext\n</current_user_message>" in content
|
|
791
|
-
assert "IMPORTANT
|
|
791
|
+
assert "IMPORTANT: If you execute a tool in this turn" in content
|
|
792
792
|
|
|
793
793
|
def test_build_then_parse_multi_tool_roundtrip(self) -> None:
|
|
794
794
|
rendered = format_entml_tool_calls(
|
|
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.3.90 → echotools-2.3.91}/src/echotools/exec/fncall/protocols/entml_stream/__init__.py
RENAMED
|
File without changes
|
{echotools-2.3.90 → echotools-2.3.91}/src/echotools/exec/fncall/protocols/entml_stream/body.py
RENAMED
|
File without changes
|
{echotools-2.3.90 → echotools-2.3.91}/src/echotools/exec/fncall/protocols/entml_stream/snap.py
RENAMED
|
File without changes
|
{echotools-2.3.90 → echotools-2.3.91}/src/echotools/exec/fncall/protocols/entml_think/__init__.py
RENAMED
|
File without changes
|
{echotools-2.3.90 → echotools-2.3.91}/src/echotools/exec/fncall/protocols/entml_think/blocks.py
RENAMED
|
File without changes
|
{echotools-2.3.90 → echotools-2.3.91}/src/echotools/exec/fncall/protocols/entml_think/core.py
RENAMED
|
File without changes
|
{echotools-2.3.90 → echotools-2.3.91}/src/echotools/exec/fncall/protocols/entml_think/filter.py
RENAMED
|
File without changes
|
{echotools-2.3.90 → echotools-2.3.91}/src/echotools/exec/fncall/protocols/entml_think/hist.py
RENAMED
|
File without changes
|
{echotools-2.3.90 → echotools-2.3.91}/src/echotools/exec/fncall/protocols/entml_think/hold.py
RENAMED
|
File without changes
|
{echotools-2.3.90 → echotools-2.3.91}/src/echotools/exec/fncall/protocols/entml_think/parse.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
|
{echotools-2.3.90 → echotools-2.3.91}/src/echotools/media/console/uicore/mixins/uiinteract.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
|
{echotools-2.3.90 → echotools-2.3.91}/src/echotools/media/web/input_box/components/filezone.js
RENAMED
|
File without changes
|
{echotools-2.3.90 → echotools-2.3.91}/src/echotools/media/web/input_box/components/motionkit.js
RENAMED
|
File without changes
|
{echotools-2.3.90 → echotools-2.3.91}/src/echotools/media/web/input_box/components/sendbutton.js
RENAMED
|
File without changes
|
{echotools-2.3.90 → echotools-2.3.91}/src/echotools/media/web/input_box/components/sortablelist.css
RENAMED
|
File without changes
|
{echotools-2.3.90 → echotools-2.3.91}/src/echotools/media/web/input_box/components/sortablelist.js
RENAMED
|
File without changes
|
{echotools-2.3.90 → echotools-2.3.91}/src/echotools/media/web/input_box/components/textinput.js
RENAMED
|
File without changes
|
{echotools-2.3.90 → echotools-2.3.91}/src/echotools/media/web/input_box/components/voiceinput.js
RENAMED
|
File without changes
|
{echotools-2.3.90 → echotools-2.3.91}/src/echotools/media/web/input_box/fonts/inter-500.woff2
RENAMED
|
File without changes
|
{echotools-2.3.90 → echotools-2.3.91}/src/echotools/media/web/input_box/fonts/inter-600.woff2
RENAMED
|
File without changes
|
{echotools-2.3.90 → echotools-2.3.91}/src/echotools/media/web/input_box/fonts/inter400.woff2
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
|
{echotools-2.3.90 → echotools-2.3.91}/src/tests/fixtures/simulated_fake_history_markup_responses.py
RENAMED
|
File without changes
|
{echotools-2.3.90 → echotools-2.3.91}/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
|