echotools 2.3.5__tar.gz → 2.3.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.3.5 → echotools-2.3.6}/PKG-INFO +2 -2
- {echotools-2.3.5 → echotools-2.3.6}/pyproject.toml +3 -2
- {echotools-2.3.5 → echotools-2.3.6}/src/echotools/spinner/spinner.py +3 -3
- {echotools-2.3.5 → echotools-2.3.6}/src/echotools.egg-info/PKG-INFO +2 -2
- {echotools-2.3.5 → echotools-2.3.6}/src/echotools.egg-info/SOURCES.txt +7 -7
- {echotools-2.3.5 → echotools-2.3.6}/tests/test_printstream.py +15 -16
- {echotools-2.3.5 → echotools-2.3.6}/tests/test_protocols.py +5 -2
- {echotools-2.3.5 → echotools-2.3.6}/README.md +0 -0
- {echotools-2.3.5 → echotools-2.3.6}/setup.cfg +0 -0
- {echotools-2.3.5 → echotools-2.3.6}/src/echotools/__init__.py +0 -0
- {echotools-2.3.5 → echotools-2.3.6}/src/echotools/_version.py +0 -0
- {echotools-2.3.5 → echotools-2.3.6}/src/echotools/cache/__init__.py +0 -0
- {echotools-2.3.5 → echotools-2.3.6}/src/echotools/cache/list_cache.py +0 -0
- {echotools-2.3.5 → echotools-2.3.6}/src/echotools/cache/memory_cache.py +0 -0
- {echotools-2.3.5 → echotools-2.3.6}/src/echotools/config/__init__.py +0 -0
- {echotools-2.3.5 → echotools-2.3.6}/src/echotools/config/base.py +0 -0
- {echotools-2.3.5 → echotools-2.3.6}/src/echotools/config/center.py +0 -0
- {echotools-2.3.5 → echotools-2.3.6}/src/echotools/config/loader.py +0 -0
- {echotools-2.3.5 → echotools-2.3.6}/src/echotools/config/merge.py +0 -0
- {echotools-2.3.5 → echotools-2.3.6}/src/echotools/dispatch/__init__.py +0 -0
- {echotools-2.3.5 → echotools-2.3.6}/src/echotools/dispatch/candidate.py +0 -0
- {echotools-2.3.5 → echotools-2.3.6}/src/echotools/dispatch/dispatcher.py +0 -0
- {echotools-2.3.5 → echotools-2.3.6}/src/echotools/dispatch/proxy_selector.py +0 -0
- {echotools-2.3.5 → echotools-2.3.6}/src/echotools/dispatch/selector.py +0 -0
- {echotools-2.3.5 → echotools-2.3.6}/src/echotools/dispatch/usage.py +0 -0
- {echotools-2.3.5 → echotools-2.3.6}/src/echotools/errors/__init__.py +0 -0
- {echotools-2.3.5 → echotools-2.3.6}/src/echotools/errors/base.py +0 -0
- {echotools-2.3.5 → echotools-2.3.6}/src/echotools/errors/classify.py +0 -0
- {echotools-2.3.5 → echotools-2.3.6}/src/echotools/errors/common.py +0 -0
- {echotools-2.3.5 → echotools-2.3.6}/src/echotools/errors/http.py +0 -0
- {echotools-2.3.5 → echotools-2.3.6}/src/echotools/events/__init__.py +0 -0
- {echotools-2.3.5 → echotools-2.3.6}/src/echotools/events/bus.py +0 -0
- {echotools-2.3.5 → echotools-2.3.6}/src/echotools/events/event.py +0 -0
- {echotools-2.3.5 → echotools-2.3.6}/src/echotools/files/__init__.py +0 -0
- {echotools-2.3.5 → echotools-2.3.6}/src/echotools/files/file_util.py +0 -0
- {echotools-2.3.5 → echotools-2.3.6}/src/echotools/fncall/__init__.py +0 -0
- {echotools-2.3.5 → echotools-2.3.6}/src/echotools/fncall/parsers/__init__.py +0 -0
- {echotools-2.3.5 → echotools-2.3.6}/src/echotools/fncall/parsers/stream.py +0 -0
- {echotools-2.3.5 → echotools-2.3.6}/src/echotools/fncall/parsers/xml_parser.py +0 -0
- {echotools-2.3.5 → echotools-2.3.6}/src/echotools/fncall/prompt/__init__.py +0 -0
- {echotools-2.3.5 → echotools-2.3.6}/src/echotools/fncall/prompt/history.py +0 -0
- {echotools-2.3.5 → echotools-2.3.6}/src/echotools/fncall/prompt/inject.py +0 -0
- {echotools-2.3.5 → echotools-2.3.6}/src/echotools/fncall/prompt/templates.py +0 -0
- {echotools-2.3.5 → echotools-2.3.6}/src/echotools/fncall/protocols/__init__.py +0 -0
- {echotools-2.3.5 → echotools-2.3.6}/src/echotools/fncall/protocols/entml.py +0 -0
- {echotools-2.3.5 → echotools-2.3.6}/src/echotools/fncall/registry.py +0 -0
- {echotools-2.3.5 → echotools-2.3.6}/src/echotools/fncall/shared/__init__.py +0 -0
- {echotools-2.3.5 → echotools-2.3.6}/src/echotools/fncall/shared/coercion.py +0 -0
- {echotools-2.3.5 → echotools-2.3.6}/src/echotools/fncall/shared/loop_detect.py +0 -0
- {echotools-2.3.5 → echotools-2.3.6}/src/echotools/fncall/shared/normalization.py +0 -0
- {echotools-2.3.5 → echotools-2.3.6}/src/echotools/fncall/shared/xml_helpers.py +0 -0
- {echotools-2.3.5 → echotools-2.3.6}/src/echotools/ids/__init__.py +0 -0
- {echotools-2.3.5 → echotools-2.3.6}/src/echotools/ids/generator.py +0 -0
- {echotools-2.3.5 → echotools-2.3.6}/src/echotools/io/__init__.py +0 -0
- {echotools-2.3.5 → echotools-2.3.6}/src/echotools/io/io_utils.py +0 -0
- {echotools-2.3.5 → echotools-2.3.6}/src/echotools/io/printstream.py +0 -0
- {echotools-2.3.5 → echotools-2.3.6}/src/echotools/keys.py +0 -0
- {echotools-2.3.5 → echotools-2.3.6}/src/echotools/lifecycle/__init__.py +0 -0
- {echotools-2.3.5 → echotools-2.3.6}/src/echotools/lifecycle/manager.py +0 -0
- {echotools-2.3.5 → echotools-2.3.6}/src/echotools/lifecycle/updater.py +0 -0
- {echotools-2.3.5 → echotools-2.3.6}/src/echotools/logger/__init__.py +0 -0
- {echotools-2.3.5 → echotools-2.3.6}/src/echotools/logger/manager.py +0 -0
- {echotools-2.3.5 → echotools-2.3.6}/src/echotools/network/__init__.py +0 -0
- {echotools-2.3.5 → echotools-2.3.6}/src/echotools/network/http_utils.py +0 -0
- {echotools-2.3.5 → echotools-2.3.6}/src/echotools/plugin/__init__.py +0 -0
- {echotools-2.3.5 → echotools-2.3.6}/src/echotools/plugin/base.py +0 -0
- {echotools-2.3.5 → echotools-2.3.6}/src/echotools/plugin/discovery.py +0 -0
- {echotools-2.3.5 → echotools-2.3.6}/src/echotools/plugin/registry.py +0 -0
- {echotools-2.3.5 → echotools-2.3.6}/src/echotools/process/__init__.py +0 -0
- {echotools-2.3.5 → echotools-2.3.6}/src/echotools/process/port.py +0 -0
- {echotools-2.3.5 → echotools-2.3.6}/src/echotools/protocol/__init__.py +0 -0
- {echotools-2.3.5 → echotools-2.3.6}/src/echotools/protocol/base.py +0 -0
- {echotools-2.3.5 → echotools-2.3.6}/src/echotools/proxy/__init__.py +0 -0
- {echotools-2.3.5 → echotools-2.3.6}/src/echotools/proxy/manager.py +0 -0
- {echotools-2.3.5 → echotools-2.3.6}/src/echotools/py.typed +0 -0
- {echotools-2.3.5 → echotools-2.3.6}/src/echotools/retry/__init__.py +0 -0
- {echotools-2.3.5 → echotools-2.3.6}/src/echotools/retry/retry.py +0 -0
- {echotools-2.3.5 → echotools-2.3.6}/src/echotools/runtime/__init__.py +0 -0
- {echotools-2.3.5 → echotools-2.3.6}/src/echotools/runtime/collector.py +0 -0
- {echotools-2.3.5 → echotools-2.3.6}/src/echotools/scheduler/__init__.py +0 -0
- {echotools-2.3.5 → echotools-2.3.6}/src/echotools/scheduler/scheduler.py +0 -0
- {echotools-2.3.5 → echotools-2.3.6}/src/echotools/sdk/__init__.py +0 -0
- {echotools-2.3.5 → echotools-2.3.6}/src/echotools/sdk/facade.py +0 -0
- {echotools-2.3.5 → echotools-2.3.6}/src/echotools/spinner/__init__.py +0 -0
- {echotools-2.3.5 → echotools-2.3.6}/src/echotools/terminal/__init__.py +0 -0
- {echotools-2.3.5 → echotools-2.3.6}/src/echotools/terminal/conpty.py +0 -0
- {echotools-2.3.5 → echotools-2.3.6}/src/echotools/terminal/local.py +0 -0
- {echotools-2.3.5 → echotools-2.3.6}/src/echotools/terminal/sanitize.py +0 -0
- {echotools-2.3.5 → echotools-2.3.6}/src/echotools/terminal/session.py +0 -0
- {echotools-2.3.5 → echotools-2.3.6}/src/echotools/terminal/ssh.py +0 -0
- {echotools-2.3.5 → echotools-2.3.6}/src/echotools/terminal/tmux.py +0 -0
- {echotools-2.3.5 → echotools-2.3.6}/src/echotools/tracing/__init__.py +0 -0
- {echotools-2.3.5 → echotools-2.3.6}/src/echotools/tracing/context.py +0 -0
- {echotools-2.3.5 → echotools-2.3.6}/src/echotools/tracing/span.py +0 -0
- {echotools-2.3.5 → echotools-2.3.6}/src/echotools/tracing/tracer.py +0 -0
- {echotools-2.3.5 → echotools-2.3.6}/src/echotools/translate.py +0 -0
- {echotools-2.3.5 → echotools-2.3.6}/src/echotools/watcher/__init__.py +0 -0
- {echotools-2.3.5 → echotools-2.3.6}/src/echotools/watcher/file_watcher.py +0 -0
- {echotools-2.3.5 → echotools-2.3.6}/src/echotools/web/__init__.py +0 -0
- {echotools-2.3.5 → echotools-2.3.6}/src/echotools/web/application.py +0 -0
- {echotools-2.3.5 → echotools-2.3.6}/src/echotools/web/broker.py +0 -0
- {echotools-2.3.5 → echotools-2.3.6}/src/echotools/web/input_box/app.js +0 -0
- {echotools-2.3.5/src/echotools/web/input_box/file-zone → echotools-2.3.6/src/echotools/web/input_box/file_zone}/file-zone.js +0 -0
- {echotools-2.3.5 → echotools-2.3.6}/src/echotools/web/input_box/fonts/inter-400.woff2 +0 -0
- {echotools-2.3.5 → echotools-2.3.6}/src/echotools/web/input_box/fonts/inter-500.woff2 +0 -0
- {echotools-2.3.5 → echotools-2.3.6}/src/echotools/web/input_box/fonts/inter-600.woff2 +0 -0
- {echotools-2.3.5 → echotools-2.3.6}/src/echotools/web/input_box/fonts/tailwind.min.css +0 -0
- {echotools-2.3.5 → echotools-2.3.6}/src/echotools/web/input_box/input-box.css +0 -0
- {echotools-2.3.5 → echotools-2.3.6}/src/echotools/web/input_box/input-box.js +0 -0
- {echotools-2.3.5/src/echotools/web/input_box/motion-kit → echotools-2.3.6/src/echotools/web/input_box/motion_kit}/motion-kit.js +0 -0
- {echotools-2.3.5/src/echotools/web/input_box/send-button → echotools-2.3.6/src/echotools/web/input_box/send_button}/send-button.js +0 -0
- {echotools-2.3.5/src/echotools/web/input_box/sortable-list → echotools-2.3.6/src/echotools/web/input_box/sortable_list}/sortable-list.css +0 -0
- {echotools-2.3.5/src/echotools/web/input_box/sortable-list → echotools-2.3.6/src/echotools/web/input_box/sortable_list}/sortable-list.js +0 -0
- {echotools-2.3.5 → echotools-2.3.6}/src/echotools/web/input_box/style.css +0 -0
- {echotools-2.3.5/src/echotools/web/input_box/text-input → echotools-2.3.6/src/echotools/web/input_box/text_input}/text-input.js +0 -0
- {echotools-2.3.5/src/echotools/web/input_box/voice-input → echotools-2.3.6/src/echotools/web/input_box/voice_input}/voice-input.js +0 -0
- {echotools-2.3.5 → echotools-2.3.6}/src/echotools/web/middleware.py +0 -0
- {echotools-2.3.5 → echotools-2.3.6}/src/echotools/web/stats.py +0 -0
- {echotools-2.3.5 → echotools-2.3.6}/src/echotools/web/utils.py +0 -0
- {echotools-2.3.5 → echotools-2.3.6}/src/echotools.egg-info/dependency_links.txt +0 -0
- {echotools-2.3.5 → echotools-2.3.6}/src/echotools.egg-info/requires.txt +0 -0
- {echotools-2.3.5 → echotools-2.3.6}/src/echotools.egg-info/top_level.txt +0 -0
- {echotools-2.3.5 → echotools-2.3.6}/tests/test_cache_retry.py +0 -0
- {echotools-2.3.5 → echotools-2.3.6}/tests/test_completion.py +0 -0
- {echotools-2.3.5 → echotools-2.3.6}/tests/test_config.py +0 -0
- {echotools-2.3.5 → echotools-2.3.6}/tests/test_config_extended.py +0 -0
- {echotools-2.3.5 → echotools-2.3.6}/tests/test_coverage_core.py +0 -0
- {echotools-2.3.5 → echotools-2.3.6}/tests/test_dispatch.py +0 -0
- {echotools-2.3.5 → echotools-2.3.6}/tests/test_dispatch_extended.py +0 -0
- {echotools-2.3.5 → echotools-2.3.6}/tests/test_dispatch_race.py +0 -0
- {echotools-2.3.5 → echotools-2.3.6}/tests/test_errors.py +0 -0
- {echotools-2.3.5 → echotools-2.3.6}/tests/test_errors_common.py +0 -0
- {echotools-2.3.5 → echotools-2.3.6}/tests/test_events.py +0 -0
- {echotools-2.3.5 → echotools-2.3.6}/tests/test_events_event.py +0 -0
- {echotools-2.3.5 → echotools-2.3.6}/tests/test_facade.py +0 -0
- {echotools-2.3.5 → echotools-2.3.6}/tests/test_fncall.py +0 -0
- {echotools-2.3.5 → echotools-2.3.6}/tests/test_ids.py +0 -0
- {echotools-2.3.5 → echotools-2.3.6}/tests/test_imports.py +0 -0
- {echotools-2.3.5 → echotools-2.3.6}/tests/test_io.py +0 -0
- {echotools-2.3.5 → echotools-2.3.6}/tests/test_keys.py +0 -0
- {echotools-2.3.5 → echotools-2.3.6}/tests/test_lifecycle.py +0 -0
- {echotools-2.3.5 → echotools-2.3.6}/tests/test_logger.py +0 -0
- {echotools-2.3.5 → echotools-2.3.6}/tests/test_merge.py +0 -0
- {echotools-2.3.5 → echotools-2.3.6}/tests/test_plugin.py +0 -0
- {echotools-2.3.5 → echotools-2.3.6}/tests/test_proxy.py +0 -0
- {echotools-2.3.5 → echotools-2.3.6}/tests/test_proxy_selector.py +0 -0
- {echotools-2.3.5 → echotools-2.3.6}/tests/test_runtime.py +0 -0
- {echotools-2.3.5 → echotools-2.3.6}/tests/test_scheduler.py +0 -0
- {echotools-2.3.5 → echotools-2.3.6}/tests/test_tracing.py +0 -0
- {echotools-2.3.5 → echotools-2.3.6}/tests/test_usage.py +0 -0
- {echotools-2.3.5 → echotools-2.3.6}/tests/test_web.py +0 -0
- {echotools-2.3.5 → echotools-2.3.6}/tests/test_web_broker.py +0 -0
|
@@ -1,9 +1,9 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: echotools
|
|
3
|
-
Version: 2.3.
|
|
3
|
+
Version: 2.3.6
|
|
4
4
|
Summary: 通用基础设施 SDK:配置、日志、事件、调度、插件、协议、调用链
|
|
5
5
|
Author: nichengfuben
|
|
6
|
-
License
|
|
6
|
+
License: MIT
|
|
7
7
|
Project-URL: Homepage, https://github.com/nichengfuben/echotools
|
|
8
8
|
Project-URL: Repository, https://github.com/nichengfuben/echotools
|
|
9
9
|
Project-URL: Issues, https://github.com/nichengfuben/echotools/issues
|
|
@@ -4,11 +4,11 @@ build-backend = "setuptools.build_meta"
|
|
|
4
4
|
|
|
5
5
|
[project]
|
|
6
6
|
name = "echotools"
|
|
7
|
-
version = "2.3.
|
|
7
|
+
version = "2.3.6"
|
|
8
8
|
description = "通用基础设施 SDK:配置、日志、事件、调度、插件、协议、调用链"
|
|
9
9
|
readme = "README.md"
|
|
10
10
|
requires-python = ">=3.8"
|
|
11
|
-
license = "MIT"
|
|
11
|
+
license = { text = "MIT" }
|
|
12
12
|
authors = [{ name = "nichengfuben" }]
|
|
13
13
|
classifiers = [
|
|
14
14
|
"Development Status :: 4 - Beta",
|
|
@@ -111,6 +111,7 @@ omit = [
|
|
|
111
111
|
"*/tests/*",
|
|
112
112
|
"*/__init__.py",
|
|
113
113
|
"*/terminal/*",
|
|
114
|
+
"*/spinner/*",
|
|
114
115
|
"*/web/input_box/*",
|
|
115
116
|
"*/lifecycle/updater.py",
|
|
116
117
|
"*/watcher/*",
|
|
@@ -30,10 +30,10 @@ def get_default_characters() -> List[str]:
|
|
|
30
30
|
def hue_to_rgb(hue: float) -> Tuple[int, int, int]:
|
|
31
31
|
h = ((hue % 360) + 360) % 360
|
|
32
32
|
s = 0.7
|
|
33
|
-
|
|
34
|
-
c = (1 - abs(2 *
|
|
33
|
+
lightness = 0.6
|
|
34
|
+
c = (1 - abs(2 * lightness - 1)) * s
|
|
35
35
|
x = c * (1 - abs((h / 60) % 2 - 1))
|
|
36
|
-
m =
|
|
36
|
+
m = lightness - c / 2
|
|
37
37
|
r = g = b = 0.0
|
|
38
38
|
if h < 60:
|
|
39
39
|
r = c
|
|
@@ -1,9 +1,9 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: echotools
|
|
3
|
-
Version: 2.3.
|
|
3
|
+
Version: 2.3.6
|
|
4
4
|
Summary: 通用基础设施 SDK:配置、日志、事件、调度、插件、协议、调用链
|
|
5
5
|
Author: nichengfuben
|
|
6
|
-
License
|
|
6
|
+
License: MIT
|
|
7
7
|
Project-URL: Homepage, https://github.com/nichengfuben/echotools
|
|
8
8
|
Project-URL: Repository, https://github.com/nichengfuben/echotools
|
|
9
9
|
Project-URL: Issues, https://github.com/nichengfuben/echotools/issues
|
|
@@ -105,17 +105,17 @@ src/echotools/web/input_box/app.js
|
|
|
105
105
|
src/echotools/web/input_box/input-box.css
|
|
106
106
|
src/echotools/web/input_box/input-box.js
|
|
107
107
|
src/echotools/web/input_box/style.css
|
|
108
|
-
src/echotools/web/input_box/
|
|
108
|
+
src/echotools/web/input_box/file_zone/file-zone.js
|
|
109
109
|
src/echotools/web/input_box/fonts/inter-400.woff2
|
|
110
110
|
src/echotools/web/input_box/fonts/inter-500.woff2
|
|
111
111
|
src/echotools/web/input_box/fonts/inter-600.woff2
|
|
112
112
|
src/echotools/web/input_box/fonts/tailwind.min.css
|
|
113
|
-
src/echotools/web/input_box/
|
|
114
|
-
src/echotools/web/input_box/
|
|
115
|
-
src/echotools/web/input_box/
|
|
116
|
-
src/echotools/web/input_box/
|
|
117
|
-
src/echotools/web/input_box/
|
|
118
|
-
src/echotools/web/input_box/
|
|
113
|
+
src/echotools/web/input_box/motion_kit/motion-kit.js
|
|
114
|
+
src/echotools/web/input_box/send_button/send-button.js
|
|
115
|
+
src/echotools/web/input_box/sortable_list/sortable-list.css
|
|
116
|
+
src/echotools/web/input_box/sortable_list/sortable-list.js
|
|
117
|
+
src/echotools/web/input_box/text_input/text-input.js
|
|
118
|
+
src/echotools/web/input_box/voice_input/voice-input.js
|
|
119
119
|
tests/test_cache_retry.py
|
|
120
120
|
tests/test_completion.py
|
|
121
121
|
tests/test_config.py
|
|
@@ -4,10 +4,7 @@ from __future__ import annotations
|
|
|
4
4
|
|
|
5
5
|
import sys
|
|
6
6
|
import time
|
|
7
|
-
from
|
|
8
|
-
from unittest.mock import MagicMock, patch
|
|
9
|
-
|
|
10
|
-
import pytest
|
|
7
|
+
from unittest.mock import patch
|
|
11
8
|
|
|
12
9
|
from echotools.io.printstream import (
|
|
13
10
|
PrintStream,
|
|
@@ -294,21 +291,23 @@ class TestPrintStreamIntegration:
|
|
|
294
291
|
stream.start()
|
|
295
292
|
|
|
296
293
|
messages = ["First", "Second", "Third"]
|
|
297
|
-
for msg in messages:
|
|
298
|
-
stream.add_to_buffer(msg)
|
|
299
|
-
|
|
300
|
-
# Give time for processing
|
|
301
|
-
time.sleep(0.5)
|
|
302
|
-
|
|
303
|
-
# Flush and check order
|
|
304
294
|
with patch.object(sys.stdout, "write") as mock_write:
|
|
295
|
+
for msg in messages:
|
|
296
|
+
stream.add_to_buffer(msg)
|
|
297
|
+
|
|
298
|
+
# Give time for processing
|
|
299
|
+
time.sleep(0.5)
|
|
305
300
|
stream.flush_remaining()
|
|
301
|
+
|
|
306
302
|
# Check that messages were written in order
|
|
307
|
-
|
|
308
|
-
|
|
309
|
-
|
|
310
|
-
|
|
311
|
-
assert
|
|
303
|
+
written = "".join(call[0][0] for call in mock_write.call_args_list)
|
|
304
|
+
first_idx = written.find("First")
|
|
305
|
+
second_idx = written.find("Second")
|
|
306
|
+
third_idx = written.find("Third")
|
|
307
|
+
assert first_idx != -1
|
|
308
|
+
assert second_idx != -1
|
|
309
|
+
assert third_idx != -1
|
|
310
|
+
assert first_idx < second_idx < third_idx
|
|
312
311
|
|
|
313
312
|
stream.stop()
|
|
314
313
|
|
|
@@ -16,7 +16,10 @@ def test_entml_protocol_parse() -> None:
|
|
|
16
16
|
|
|
17
17
|
|
|
18
18
|
def test_inject_no_tools() -> None:
|
|
19
|
-
"""
|
|
19
|
+
"""无工具时仍包裹历史/当前消息模板,但不注入工具定义。"""
|
|
20
20
|
proto = get_protocol("entml")
|
|
21
21
|
msgs = [{"role": "user", "content": "hi"}]
|
|
22
|
-
|
|
22
|
+
result = inject_fncall(msgs, [], proto)
|
|
23
|
+
assert len(result) == 1
|
|
24
|
+
assert result[0]["role"] == "user"
|
|
25
|
+
assert "<current_user_message>\nhi\n</current_user_message>" in result[0]["content"]
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|