ommlds 0.0.0.dev489__py3-none-any.whl → 0.0.0.dev490__py3-none-any.whl
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.
- ommlds/cli/_dataclasses.py +657 -328
- ommlds/cli/main.py +74 -42
- ommlds/cli/sessions/chat/agents/agent.py +49 -0
- ommlds/cli/sessions/chat/{chat → agents}/ai/configs.py +3 -1
- ommlds/cli/sessions/chat/agents/ai/events.py +57 -0
- ommlds/cli/sessions/chat/{chat → agents}/ai/inject.py +7 -2
- ommlds/cli/sessions/chat/{chat → agents}/ai/rendering.py +1 -1
- ommlds/cli/sessions/chat/{chat → agents}/ai/services.py +1 -1
- ommlds/cli/sessions/chat/{chat → agents}/ai/tools.py +1 -1
- ommlds/cli/sessions/chat/{chat → agents}/ai/types.py +9 -0
- ommlds/cli/sessions/chat/agents/configs.py +25 -0
- ommlds/cli/sessions/chat/agents/events/inject.py +27 -0
- ommlds/cli/sessions/chat/agents/events/injection.py +14 -0
- ommlds/cli/sessions/chat/agents/events/manager.py +16 -0
- ommlds/cli/sessions/chat/agents/events/types.py +38 -0
- ommlds/cli/sessions/chat/agents/inject.py +62 -0
- ommlds/cli/sessions/chat/{chat → agents}/state/inject.py +3 -3
- ommlds/cli/sessions/chat/{chat → agents}/state/types.py +1 -1
- ommlds/cli/sessions/chat/{tools → agents/tools}/configs.py +3 -1
- ommlds/cli/sessions/chat/{tools → agents/tools}/confirmation.py +1 -1
- ommlds/cli/sessions/chat/{tools → agents/tools}/execution.py +1 -1
- ommlds/cli/sessions/chat/{tools → agents/tools}/fs/inject.py +3 -3
- ommlds/cli/sessions/chat/{tools → agents/tools}/inject.py +8 -4
- ommlds/cli/sessions/chat/{tools → agents/tools}/injection.py +1 -1
- ommlds/cli/sessions/chat/{tools → agents/tools}/rendering.py +3 -3
- ommlds/cli/sessions/chat/{tools → agents/tools}/todo/inject.py +3 -3
- ommlds/cli/sessions/chat/{tools → agents/tools}/weather/tools.py +1 -1
- ommlds/cli/sessions/chat/{chat → agents}/user/configs.py +0 -2
- ommlds/cli/sessions/chat/agents/user/inject.py +40 -0
- ommlds/cli/sessions/chat/configs.py +4 -12
- ommlds/cli/sessions/chat/inject.py +4 -32
- ommlds/cli/sessions/chat/{interface → interfaces}/bare/inject.py +13 -7
- ommlds/cli/sessions/chat/interfaces/bare/interactive.py +41 -0
- ommlds/cli/sessions/chat/interfaces/bare/oneshot.py +21 -0
- ommlds/cli/sessions/chat/{interface → interfaces}/bare/user.py +1 -1
- ommlds/cli/sessions/chat/interfaces/textual/__init__.py +0 -0
- ommlds/cli/sessions/chat/interfaces/textual/app.py +211 -0
- ommlds/cli/sessions/chat/interfaces/textual/inject.py +43 -0
- ommlds/cli/sessions/chat/{interface → interfaces}/textual/interface.py +0 -3
- ommlds/cli/sessions/chat/interfaces/textual/styles/__init__.py +0 -0
- ommlds/cli/sessions/chat/interfaces/textual/styles/input.tcss +51 -0
- ommlds/cli/sessions/chat/interfaces/textual/styles/messages.tcss +33 -0
- ommlds/cli/sessions/chat/session.py +1 -1
- {ommlds-0.0.0.dev489.dist-info → ommlds-0.0.0.dev490.dist-info}/METADATA +4 -4
- {ommlds-0.0.0.dev489.dist-info → ommlds-0.0.0.dev490.dist-info}/RECORD +76 -67
- ommlds/cli/sessions/chat/chat/user/inject.py +0 -52
- ommlds/cli/sessions/chat/chat/user/oneshot.py +0 -25
- ommlds/cli/sessions/chat/chat/user/types.py +0 -15
- ommlds/cli/sessions/chat/driver.py +0 -43
- ommlds/cli/sessions/chat/interface/bare/interface.py +0 -19
- ommlds/cli/sessions/chat/interface/textual/app.py +0 -191
- ommlds/cli/sessions/chat/interface/textual/inject.py +0 -27
- ommlds/cli/sessions/chat/interface/textual/user.py +0 -20
- /ommlds/cli/sessions/chat/{chat → agents}/__init__.py +0 -0
- /ommlds/cli/sessions/chat/{chat → agents}/ai/__init__.py +0 -0
- /ommlds/cli/sessions/chat/{chat → agents}/ai/injection.py +0 -0
- /ommlds/cli/sessions/chat/{chat/state → agents/events}/__init__.py +0 -0
- /ommlds/cli/sessions/chat/{chat/user → agents/phases}/__init__.py +0 -0
- /ommlds/cli/sessions/chat/{phases → agents/phases}/inject.py +0 -0
- /ommlds/cli/sessions/chat/{phases → agents/phases}/injection.py +0 -0
- /ommlds/cli/sessions/chat/{phases → agents/phases}/manager.py +0 -0
- /ommlds/cli/sessions/chat/{phases → agents/phases}/types.py +0 -0
- /ommlds/cli/sessions/chat/{interface → agents/state}/__init__.py +0 -0
- /ommlds/cli/sessions/chat/{chat → agents}/state/configs.py +0 -0
- /ommlds/cli/sessions/chat/{chat → agents}/state/inmemory.py +0 -0
- /ommlds/cli/sessions/chat/{chat → agents}/state/storage.py +0 -0
- /ommlds/cli/sessions/chat/{interface/bare → agents/tools}/__init__.py +0 -0
- /ommlds/cli/sessions/chat/{interface/textual → agents/tools/fs}/__init__.py +0 -0
- /ommlds/cli/sessions/chat/{tools → agents/tools}/fs/configs.py +0 -0
- /ommlds/cli/sessions/chat/{phases → agents/tools/todo}/__init__.py +0 -0
- /ommlds/cli/sessions/chat/{tools → agents/tools}/todo/configs.py +0 -0
- /ommlds/cli/sessions/chat/{tools → agents/tools/weather}/__init__.py +0 -0
- /ommlds/cli/sessions/chat/{tools → agents/tools}/weather/configs.py +0 -0
- /ommlds/cli/sessions/chat/{tools → agents/tools}/weather/inject.py +0 -0
- /ommlds/cli/sessions/chat/{tools/fs → agents/user}/__init__.py +0 -0
- /ommlds/cli/sessions/chat/{tools/todo → interfaces}/__init__.py +0 -0
- /ommlds/cli/sessions/chat/{tools/weather → interfaces/bare}/__init__.py +0 -0
- /ommlds/cli/sessions/chat/{interface → interfaces}/base.py +0 -0
- /ommlds/cli/sessions/chat/{interface → interfaces}/configs.py +0 -0
- /ommlds/cli/sessions/chat/{interface → interfaces}/inject.py +0 -0
- {ommlds-0.0.0.dev489.dist-info → ommlds-0.0.0.dev490.dist-info}/WHEEL +0 -0
- {ommlds-0.0.0.dev489.dist-info → ommlds-0.0.0.dev490.dist-info}/entry_points.txt +0 -0
- {ommlds-0.0.0.dev489.dist-info → ommlds-0.0.0.dev490.dist-info}/licenses/LICENSE +0 -0
- {ommlds-0.0.0.dev489.dist-info → ommlds-0.0.0.dev490.dist-info}/top_level.txt +0 -0
|
@@ -100,10 +100,10 @@ ommlds/backends/transformers/filecache.py,sha256=ycfswt7f4qRrPSTFRhofXZaDBuDPpyp
|
|
|
100
100
|
ommlds/backends/transformers/streamers.py,sha256=Hu_9lp_kUilKjOfs7Ixqr2NoA5FuRn2eRh8JdvaBDYc,1688
|
|
101
101
|
ommlds/cli/__init__.py,sha256=-RtLrdEGN2da1KCf7YNs32jN-kJhT_kNVrcOv4x_J-w,101
|
|
102
102
|
ommlds/cli/__main__.py,sha256=1ffCb0fcUOJMzxROJmJRXQ8PSOVYv7KrcuBtT95cf0c,140
|
|
103
|
-
ommlds/cli/_dataclasses.py,sha256=
|
|
103
|
+
ommlds/cli/_dataclasses.py,sha256=2yC7ci4AgNP_ZNiGlG_NUTNlkG3xWBNb_BVm81kSZiE,143623
|
|
104
104
|
ommlds/cli/asyncs.py,sha256=NAMzzaZq7ORjlbbBB_Y9vcM9qoBpGf4VJNtl_3p_8G4,629
|
|
105
105
|
ommlds/cli/inject.py,sha256=CdG-Zgq3T0pDWLhHRZSqlkR4W2mS7LlCOHD2uP1llf0,610
|
|
106
|
-
ommlds/cli/main.py,sha256=
|
|
106
|
+
ommlds/cli/main.py,sha256=rtLBGDA20q3i3L110vcrSxR770QWZAkWfEHyDGgV9gg,10679
|
|
107
107
|
ommlds/cli/secrets.py,sha256=8GHlewS3yeFDfFNekaYwRm4nG9l3nd-Mc8tKl9Ma_Uo,469
|
|
108
108
|
ommlds/cli/backends/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
109
109
|
ommlds/cli/backends/catalog.py,sha256=hLcBXBCiB7eKT_2yv8kyLD5f94LV7vCcOe144URuJxs,3225
|
|
@@ -127,65 +127,74 @@ ommlds/cli/sessions/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSu
|
|
|
127
127
|
ommlds/cli/sessions/base.py,sha256=diwERBpapd73Cn2T2_ctEIfhzjzJ1DTzjcExxwxccqw,464
|
|
128
128
|
ommlds/cli/sessions/inject.py,sha256=9SrtsozIhqok3jZtepKTJwpOxHkU7FrqKw6pc78mEO4,926
|
|
129
129
|
ommlds/cli/sessions/chat/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
130
|
-
ommlds/cli/sessions/chat/configs.py,sha256=
|
|
131
|
-
ommlds/cli/sessions/chat/
|
|
132
|
-
ommlds/cli/sessions/chat/
|
|
133
|
-
ommlds/cli/sessions/chat/
|
|
134
|
-
ommlds/cli/sessions/chat/
|
|
135
|
-
ommlds/cli/sessions/chat/
|
|
136
|
-
ommlds/cli/sessions/chat/
|
|
137
|
-
ommlds/cli/sessions/chat/
|
|
138
|
-
ommlds/cli/sessions/chat/
|
|
139
|
-
ommlds/cli/sessions/chat/
|
|
140
|
-
ommlds/cli/sessions/chat/
|
|
141
|
-
ommlds/cli/sessions/chat/
|
|
142
|
-
ommlds/cli/sessions/chat/
|
|
143
|
-
ommlds/cli/sessions/chat/
|
|
144
|
-
ommlds/cli/sessions/chat/
|
|
145
|
-
ommlds/cli/sessions/chat/
|
|
146
|
-
ommlds/cli/sessions/chat/
|
|
147
|
-
ommlds/cli/sessions/chat/
|
|
148
|
-
ommlds/cli/sessions/chat/
|
|
149
|
-
ommlds/cli/sessions/chat/
|
|
150
|
-
ommlds/cli/sessions/chat/
|
|
151
|
-
ommlds/cli/sessions/chat/
|
|
152
|
-
ommlds/cli/sessions/chat/
|
|
153
|
-
ommlds/cli/sessions/chat/
|
|
154
|
-
ommlds/cli/sessions/chat/
|
|
155
|
-
ommlds/cli/sessions/chat/
|
|
156
|
-
ommlds/cli/sessions/chat/
|
|
157
|
-
ommlds/cli/sessions/chat/
|
|
158
|
-
ommlds/cli/sessions/chat/
|
|
159
|
-
ommlds/cli/sessions/chat/
|
|
160
|
-
ommlds/cli/sessions/chat/
|
|
161
|
-
ommlds/cli/sessions/chat/
|
|
162
|
-
ommlds/cli/sessions/chat/
|
|
163
|
-
ommlds/cli/sessions/chat/
|
|
164
|
-
ommlds/cli/sessions/chat/
|
|
165
|
-
ommlds/cli/sessions/chat/
|
|
166
|
-
ommlds/cli/sessions/chat/
|
|
167
|
-
ommlds/cli/sessions/chat/
|
|
168
|
-
ommlds/cli/sessions/chat/
|
|
169
|
-
ommlds/cli/sessions/chat/
|
|
170
|
-
ommlds/cli/sessions/chat/
|
|
171
|
-
ommlds/cli/sessions/chat/
|
|
172
|
-
ommlds/cli/sessions/chat/tools/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
173
|
-
ommlds/cli/sessions/chat/tools/configs.py,sha256=
|
|
174
|
-
ommlds/cli/sessions/chat/tools/
|
|
175
|
-
ommlds/cli/sessions/chat/tools/
|
|
176
|
-
ommlds/cli/sessions/chat/tools/
|
|
177
|
-
ommlds/cli/sessions/chat/tools/
|
|
178
|
-
ommlds/cli/sessions/chat/tools/
|
|
179
|
-
ommlds/cli/sessions/chat/
|
|
180
|
-
ommlds/cli/sessions/chat/
|
|
181
|
-
ommlds/cli/sessions/chat/
|
|
182
|
-
ommlds/cli/sessions/chat/
|
|
183
|
-
ommlds/cli/sessions/chat/
|
|
184
|
-
ommlds/cli/sessions/chat/
|
|
185
|
-
ommlds/cli/sessions/chat/
|
|
186
|
-
ommlds/cli/sessions/chat/
|
|
187
|
-
ommlds/cli/sessions/chat/
|
|
188
|
-
ommlds/cli/sessions/chat/
|
|
130
|
+
ommlds/cli/sessions/chat/configs.py,sha256=iCL1XZvRVjDVh6B4Tc1AdpQ3Xlq0NeLi4lXqf-z5oUc,416
|
|
131
|
+
ommlds/cli/sessions/chat/inject.py,sha256=yLkKEvRqRemXr-U1BZ-Rwm9S_JxYCb2U-2gjm4-UjlM,850
|
|
132
|
+
ommlds/cli/sessions/chat/session.py,sha256=gjwCDh8-fDuFD5OvZpJa3C8GShOhbRNZwQv5wreGHR4,801
|
|
133
|
+
ommlds/cli/sessions/chat/agents/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
134
|
+
ommlds/cli/sessions/chat/agents/agent.py,sha256=-hla0N9KhQAfG6h92Pb31tVQ_DA0AvgrJFtuB9POnAM,1520
|
|
135
|
+
ommlds/cli/sessions/chat/agents/configs.py,sha256=5PbxLqhsV8HfUaC0K5oSfBy4coxMopyxiKGl1f3ECb0,523
|
|
136
|
+
ommlds/cli/sessions/chat/agents/inject.py,sha256=vP7zshkarNicHPhG5dvq7Ay_O6OSsT_w7zCj76vVWOA,1207
|
|
137
|
+
ommlds/cli/sessions/chat/agents/ai/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
138
|
+
ommlds/cli/sessions/chat/agents/ai/configs.py,sha256=MjuJicX53mrSHCDTpBTHLUyrovXFkKGqrVguuYbrwNg,185
|
|
139
|
+
ommlds/cli/sessions/chat/agents/ai/events.py,sha256=VLy1OBZWWS82avZhMVUZJrOMNE3muuG9oWZtQ7FK_Po,1593
|
|
140
|
+
ommlds/cli/sessions/chat/agents/ai/inject.py,sha256=FQT_aoHNiU9fV8TF6KMeD_CYgsZFMXIwSKRkycrUWzM,2729
|
|
141
|
+
ommlds/cli/sessions/chat/agents/ai/injection.py,sha256=2O_ELMusxQsYaB2oqvzjYpZQzjshocJup7Z5unzoUIY,404
|
|
142
|
+
ommlds/cli/sessions/chat/agents/ai/rendering.py,sha256=srDRaepttzHSn8w4Cet07bDtGiSApUO4xyhiPbuMU0A,2277
|
|
143
|
+
ommlds/cli/sessions/chat/agents/ai/services.py,sha256=PUySl7Fz4ttElW-V6poEnvF-RaRmbjU3cHULHun5rdk,2508
|
|
144
|
+
ommlds/cli/sessions/chat/agents/ai/tools.py,sha256=XmF-HF7OiUiqXuIgT0QuePmqnHTmpjK-lLt5WocAiws,1093
|
|
145
|
+
ommlds/cli/sessions/chat/agents/ai/types.py,sha256=_Ees5ia0fKMr-BvKpTeryY-KXWP0bAfWrOGg2JDFpuE,913
|
|
146
|
+
ommlds/cli/sessions/chat/agents/events/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
147
|
+
ommlds/cli/sessions/chat/agents/events/inject.py,sha256=quPbkuhPyJ_zFpFzh5hrkqWspwk9El0a8_82r1LphIY,449
|
|
148
|
+
ommlds/cli/sessions/chat/agents/events/injection.py,sha256=Q32VFAww9EkzkqdqrbamKuuVcfzbGol6JojNYo61jG0,326
|
|
149
|
+
ommlds/cli/sessions/chat/agents/events/manager.py,sha256=5NTDIFBtGXMT_86CiQgXoUSHqEweFENUDSDQ8d3ouiE,348
|
|
150
|
+
ommlds/cli/sessions/chat/agents/events/types.py,sha256=cxTq5xEzg97zsqqnQCZ8FP3UM0wj3yuvqGB3teR2YGw,655
|
|
151
|
+
ommlds/cli/sessions/chat/agents/phases/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
152
|
+
ommlds/cli/sessions/chat/agents/phases/inject.py,sha256=m9GcCVcp1GnNKN1qwDSgTkfp3e107wXgPeEHDLbfG8s,448
|
|
153
|
+
ommlds/cli/sessions/chat/agents/phases/injection.py,sha256=ZUFRRLp3HNhKaPBW6aiw5XFEGNkqTj8WVSlXM0kg0y0,326
|
|
154
|
+
ommlds/cli/sessions/chat/agents/phases/manager.py,sha256=_wfc0FfL5h_5L-6hnYb3U3kiRmkGDkJu7wGj5Cgz7_Y,727
|
|
155
|
+
ommlds/cli/sessions/chat/agents/phases/types.py,sha256=w1pAEydJYaHzSzdlqygCwKxvVZnfo_R_xJqq8wBzZsQ,512
|
|
156
|
+
ommlds/cli/sessions/chat/agents/state/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
157
|
+
ommlds/cli/sessions/chat/agents/state/configs.py,sha256=VMrqC-2dE8lXZmT1dBgUUReS0FDQWzD0U6thSyjOOZM,192
|
|
158
|
+
ommlds/cli/sessions/chat/agents/state/inject.py,sha256=w4kwGfvuwrmLYC4BLi0ARzJTixwv-IPoDxA1SYDzf8g,1104
|
|
159
|
+
ommlds/cli/sessions/chat/agents/state/inmemory.py,sha256=4wX-8NA8SUTytXeUaTMaI64KBqbXMPIe2TRuI2GO0_8,872
|
|
160
|
+
ommlds/cli/sessions/chat/agents/state/storage.py,sha256=gKUNsNj3TtH67-FOuHXrQlDsESeIYDUHPhn7unTQCx8,1447
|
|
161
|
+
ommlds/cli/sessions/chat/agents/state/types.py,sha256=PnOvGxaWvtVeawWRAiRqfGTs-COWfBdUT6vQCzZp-3w,808
|
|
162
|
+
ommlds/cli/sessions/chat/agents/tools/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
163
|
+
ommlds/cli/sessions/chat/agents/tools/configs.py,sha256=5mC3JIJ9W3j935FXbGfVxPssO7HGa_NplIiDXLNT9wA,364
|
|
164
|
+
ommlds/cli/sessions/chat/agents/tools/confirmation.py,sha256=giN5HDTpR4aPfAmna4iUGrgUG9CXbXiri1N1cjQXXXY,1073
|
|
165
|
+
ommlds/cli/sessions/chat/agents/tools/execution.py,sha256=G-oCNa1QnnhdL9ByR6cwwRHe1J4v7JssZhSMpvG5imo,1577
|
|
166
|
+
ommlds/cli/sessions/chat/agents/tools/inject.py,sha256=WAOz32aYd2OIZ0Ze4l7sA-1RWtmW13gm06nW-mXMhqo,2672
|
|
167
|
+
ommlds/cli/sessions/chat/agents/tools/injection.py,sha256=tP2tsF2brfpNEBDcZSaMQ5hTEodC7ijOHKkp-qToit8,1162
|
|
168
|
+
ommlds/cli/sessions/chat/agents/tools/rendering.py,sha256=SlVFqoqs_be-FFPtrnBzYnowlqAsxCc_kCyqPD14L8E,1421
|
|
169
|
+
ommlds/cli/sessions/chat/agents/tools/fs/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
170
|
+
ommlds/cli/sessions/chat/agents/tools/fs/configs.py,sha256=hwQ3WRP6hYxjIx-m8z_ZZZ-HwiREuIpa2gRKzeqkoHk,205
|
|
171
|
+
ommlds/cli/sessions/chat/agents/tools/fs/inject.py,sha256=unLnYOBW6PooTsoO6UuS6BtD0GC-GexKitjca1yECes,809
|
|
172
|
+
ommlds/cli/sessions/chat/agents/tools/todo/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
173
|
+
ommlds/cli/sessions/chat/agents/tools/todo/configs.py,sha256=pcdjTKsRB4J_iBET2tcOx-32EHqtecxLg4JtelMyh1o,207
|
|
174
|
+
ommlds/cli/sessions/chat/agents/tools/todo/inject.py,sha256=6wzNlX97MaHVtaPbVmvSh4_zU7ukVgjFTVxubUaR16w,808
|
|
175
|
+
ommlds/cli/sessions/chat/agents/tools/weather/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
176
|
+
ommlds/cli/sessions/chat/agents/tools/weather/configs.py,sha256=VzamzIHkTOVVEKeH5pCq3oWZdREpT2O73v0CImCerDU,210
|
|
177
|
+
ommlds/cli/sessions/chat/agents/tools/weather/inject.py,sha256=HSB6gCp23T2HME07FzBiiFpWnloErCIO7yTWcOu5DVk,456
|
|
178
|
+
ommlds/cli/sessions/chat/agents/tools/weather/tools.py,sha256=tGkr97D-60Lgsnjs1nSqV5BEZrTNlcaU_TFCY4ZRQyE,304
|
|
179
|
+
ommlds/cli/sessions/chat/agents/user/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
180
|
+
ommlds/cli/sessions/chat/agents/user/configs.py,sha256=tBSP2j1Bynn0Qt_S0GNUuNniMWivVSCFad3H4UCS3qY,280
|
|
181
|
+
ommlds/cli/sessions/chat/agents/user/inject.py,sha256=PbOpQn7YzE9Ltjsswd00_IWyc2lNVZplPGN_1YGRnKA,1388
|
|
182
|
+
ommlds/cli/sessions/chat/interfaces/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
183
|
+
ommlds/cli/sessions/chat/interfaces/base.py,sha256=3z7yI-ow7037_n6VanQYZjOgKL_iRZ8FB6JP553SY7M,198
|
|
184
|
+
ommlds/cli/sessions/chat/interfaces/configs.py,sha256=xu9nUAI9opNR7X4m92JKr5HhXPNNflHUHQ4UbOPmVMg,244
|
|
185
|
+
ommlds/cli/sessions/chat/interfaces/inject.py,sha256=Ip-srA7ONGF-YgbLikwfTd3O1UoxeDTMI6CnPpc6A80,493
|
|
186
|
+
ommlds/cli/sessions/chat/interfaces/bare/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
187
|
+
ommlds/cli/sessions/chat/interfaces/bare/inject.py,sha256=cPbffOxttIDApBoEBqHCbRoSqxvkzE0lKR-LPZdrBQs,1211
|
|
188
|
+
ommlds/cli/sessions/chat/interfaces/bare/interactive.py,sha256=77Rqpa3ProkxKDvLC9H9RzWmatzgyzNMOVWSqLEnKYI,1086
|
|
189
|
+
ommlds/cli/sessions/chat/interfaces/bare/oneshot.py,sha256=aRuyaLPuknfw3WWQE_yP4hNW0lLePQMRDyjMRm7-dMQ,379
|
|
190
|
+
ommlds/cli/sessions/chat/interfaces/bare/user.py,sha256=vFwU59vgI6_RPobFiPpCE4P0NLNXlmGV6WD3v9b4b28,876
|
|
191
|
+
ommlds/cli/sessions/chat/interfaces/textual/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
192
|
+
ommlds/cli/sessions/chat/interfaces/textual/app.py,sha256=YONhAvnMC3UhmhPxDTBH2RrEcEi-x1JbwCuS68Pzc2w,5226
|
|
193
|
+
ommlds/cli/sessions/chat/interfaces/textual/inject.py,sha256=ZqSkqCnWBFDFuqMRKPtzt1uZQSf59V5TEsJhphZKKJY,869
|
|
194
|
+
ommlds/cli/sessions/chat/interfaces/textual/interface.py,sha256=tvS8ORiunBxTIkTW2YmqRRyL7p46FrVpZEeix-ez9FA,322
|
|
195
|
+
ommlds/cli/sessions/chat/interfaces/textual/styles/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
196
|
+
ommlds/cli/sessions/chat/interfaces/textual/styles/input.tcss,sha256=6aYFNxZ-GmTLirWnJcxVNPeq8YqgjS4GJDuxwXbOBhI,601
|
|
197
|
+
ommlds/cli/sessions/chat/interfaces/textual/styles/messages.tcss,sha256=vxMUmhAUKiJlQ4gznIml28hzGYfXWF0GeXd0Q_H4BzU,358
|
|
189
198
|
ommlds/cli/sessions/completion/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
190
199
|
ommlds/cli/sessions/completion/configs.py,sha256=ZibOyJxIMbclzKDK_mj8jVzFJxjkyVWmo1Tb9ZnQQ1M,240
|
|
191
200
|
ommlds/cli/sessions/completion/inject.py,sha256=vk3ewhXWGemKcOllr1iG_nMz5523qEu40MI62Dlx9AQ,933
|
|
@@ -449,9 +458,9 @@ ommlds/wiki/utils/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU
|
|
|
449
458
|
ommlds/wiki/utils/io.py,sha256=UKgDJGtmpnWvIqVd2mJc2QNPOqlToEY1GEveNp6_pMo,7088
|
|
450
459
|
ommlds/wiki/utils/progress.py,sha256=EhvKcMFYtsarCQhIahlO6f0SboyAKP3UwUyrnVnP-Vk,3222
|
|
451
460
|
ommlds/wiki/utils/xml.py,sha256=sNJNkZ9rT8B-kJMO6bRz8J1USy4fyPx0m2PwTX7vxYY,3846
|
|
452
|
-
ommlds-0.0.0.
|
|
453
|
-
ommlds-0.0.0.
|
|
454
|
-
ommlds-0.0.0.
|
|
455
|
-
ommlds-0.0.0.
|
|
456
|
-
ommlds-0.0.0.
|
|
457
|
-
ommlds-0.0.0.
|
|
461
|
+
ommlds-0.0.0.dev490.dist-info/licenses/LICENSE,sha256=B_hVtavaA8zCYDW99DYdcpDLKz1n3BBRjZrcbv8uG8c,1451
|
|
462
|
+
ommlds-0.0.0.dev490.dist-info/METADATA,sha256=bzhiY6QERXq35iGmzD2aseo9UEpkdEmHBmnbktJ0kFs,3493
|
|
463
|
+
ommlds-0.0.0.dev490.dist-info/WHEEL,sha256=_zCd3N1l69ArxyTb8rzEoP9TpbYXkqRFSNOD5OuxnTs,91
|
|
464
|
+
ommlds-0.0.0.dev490.dist-info/entry_points.txt,sha256=Z5YWtX7ClfiCKdW-dd_CSVvM0h4yQpJPi-2G3q6gNFo,35
|
|
465
|
+
ommlds-0.0.0.dev490.dist-info/top_level.txt,sha256=Rbnk5d5wi58vnAXx13WFZqdQ4VX8hBCS2hEL3WeXOhY,7
|
|
466
|
+
ommlds-0.0.0.dev490.dist-info/RECORD,,
|
|
@@ -1,52 +0,0 @@
|
|
|
1
|
-
from omlish import inject as inj
|
|
2
|
-
from omlish import lang
|
|
3
|
-
|
|
4
|
-
from ...... import minichain as mc
|
|
5
|
-
from ...phases.injection import phase_callbacks
|
|
6
|
-
from ...phases.types import ChatPhase
|
|
7
|
-
from ...phases.types import ChatPhaseCallback
|
|
8
|
-
from .configs import UserConfig
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
with lang.auto_proxy_import(globals()):
|
|
12
|
-
from ..state import types as _state
|
|
13
|
-
from . import oneshot as _oneshot
|
|
14
|
-
from . import types as _types
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
##
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
def bind_user(cfg: UserConfig = UserConfig()) -> inj.Elements:
|
|
21
|
-
els: list[inj.Elemental] = []
|
|
22
|
-
|
|
23
|
-
# FIXME: barf
|
|
24
|
-
if cfg.initial_system_content is not None:
|
|
25
|
-
async def add_initial_system_content(cm: '_state.ChatStateManager') -> None:
|
|
26
|
-
await cm.extend_chat([mc.SystemMessage(cfg.initial_system_content)])
|
|
27
|
-
|
|
28
|
-
els.append(phase_callbacks().bind_item(to_fn=lang.typed_lambda(cm=_state.ChatStateManager)(
|
|
29
|
-
lambda cm: ChatPhaseCallback(ChatPhase.STARTED, lambda: add_initial_system_content(cm)),
|
|
30
|
-
)))
|
|
31
|
-
|
|
32
|
-
if cfg.interactive:
|
|
33
|
-
if cfg.initial_user_content is not None:
|
|
34
|
-
async def add_initial_user_content(cm: '_state.ChatStateManager') -> None:
|
|
35
|
-
await cm.extend_chat([mc.UserMessage(cfg.initial_user_content)])
|
|
36
|
-
|
|
37
|
-
els.append(phase_callbacks().bind_item(to_fn=lang.typed_lambda(cm=_state.ChatStateManager)(
|
|
38
|
-
lambda cm: ChatPhaseCallback(ChatPhase.STARTED, lambda: add_initial_user_content(cm)),
|
|
39
|
-
)))
|
|
40
|
-
|
|
41
|
-
raise NotImplementedError
|
|
42
|
-
|
|
43
|
-
else:
|
|
44
|
-
if cfg.initial_user_content is None:
|
|
45
|
-
raise ValueError('Initial user content is required for non-interactive chat')
|
|
46
|
-
|
|
47
|
-
els.extend([
|
|
48
|
-
inj.bind(_oneshot.OneshotUserChatInputInitialChat, to_const=[mc.UserMessage(cfg.initial_user_content)]),
|
|
49
|
-
inj.bind(_types.UserChatInput, to_ctor=_oneshot.OneshotUserChatInput, singleton=True),
|
|
50
|
-
])
|
|
51
|
-
|
|
52
|
-
return inj.as_elements(*els)
|
|
@@ -1,25 +0,0 @@
|
|
|
1
|
-
import typing as ta
|
|
2
|
-
|
|
3
|
-
from ...... import minichain as mc
|
|
4
|
-
from .types import UserChatInput
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
##
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
OneshotUserChatInputInitialChat = ta.NewType('OneshotUserChatInputInitialChat', mc.UserChat)
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
class OneshotUserChatInput(UserChatInput):
|
|
14
|
-
def __init__(
|
|
15
|
-
self,
|
|
16
|
-
initial_chat: OneshotUserChatInputInitialChat,
|
|
17
|
-
) -> None:
|
|
18
|
-
super().__init__()
|
|
19
|
-
|
|
20
|
-
self._pending_chat: mc.UserChat | None = initial_chat
|
|
21
|
-
|
|
22
|
-
async def get_next_user_messages(self) -> 'mc.UserChat':
|
|
23
|
-
ret = self._pending_chat
|
|
24
|
-
self._pending_chat = None
|
|
25
|
-
return ret or []
|
|
@@ -1,15 +0,0 @@
|
|
|
1
|
-
import abc
|
|
2
|
-
import typing as ta
|
|
3
|
-
|
|
4
|
-
from omlish import lang
|
|
5
|
-
|
|
6
|
-
from ...... import minichain as mc
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
##
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
class UserChatInput(lang.Abstract):
|
|
13
|
-
@abc.abstractmethod
|
|
14
|
-
def get_next_user_messages(self) -> ta.Awaitable['mc.UserChat']:
|
|
15
|
-
raise NotImplementedError
|
|
@@ -1,43 +0,0 @@
|
|
|
1
|
-
from .chat.ai.types import AiChatGenerator
|
|
2
|
-
from .chat.state.types import ChatStateManager
|
|
3
|
-
from .chat.user.types import UserChatInput
|
|
4
|
-
from .phases.manager import ChatPhaseManager
|
|
5
|
-
from .phases.types import ChatPhase
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
##
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
class ChatDriver:
|
|
12
|
-
def __init__(
|
|
13
|
-
self,
|
|
14
|
-
*,
|
|
15
|
-
phases: ChatPhaseManager,
|
|
16
|
-
ai_chat_generator: AiChatGenerator,
|
|
17
|
-
user_chat_input: UserChatInput,
|
|
18
|
-
chat_state_manager: ChatStateManager,
|
|
19
|
-
):
|
|
20
|
-
super().__init__()
|
|
21
|
-
|
|
22
|
-
self._phases = phases
|
|
23
|
-
self._ai_chat_generator = ai_chat_generator
|
|
24
|
-
self._user_chat_input = user_chat_input
|
|
25
|
-
self._chat_state_manager = chat_state_manager
|
|
26
|
-
|
|
27
|
-
async def run(self) -> None:
|
|
28
|
-
await self._phases.set_phase(ChatPhase.STARTING)
|
|
29
|
-
await self._phases.set_phase(ChatPhase.STARTED)
|
|
30
|
-
|
|
31
|
-
while True:
|
|
32
|
-
next_user_chat = await self._user_chat_input.get_next_user_messages()
|
|
33
|
-
if not next_user_chat:
|
|
34
|
-
break
|
|
35
|
-
|
|
36
|
-
prev_user_chat = (await self._chat_state_manager.get_state()).chat
|
|
37
|
-
|
|
38
|
-
next_ai_chat = await self._ai_chat_generator.get_next_ai_messages([*prev_user_chat, *next_user_chat])
|
|
39
|
-
|
|
40
|
-
await self._chat_state_manager.extend_chat([*next_user_chat, *next_ai_chat])
|
|
41
|
-
|
|
42
|
-
await self._phases.set_phase(ChatPhase.STOPPING)
|
|
43
|
-
await self._phases.set_phase(ChatPhase.STOPPED)
|
|
@@ -1,19 +0,0 @@
|
|
|
1
|
-
from ...driver import ChatDriver
|
|
2
|
-
from ..base import ChatInterface
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
##
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
class BareChatInterface(ChatInterface):
|
|
9
|
-
def __init__(
|
|
10
|
-
self,
|
|
11
|
-
*,
|
|
12
|
-
driver: ChatDriver,
|
|
13
|
-
) -> None:
|
|
14
|
-
super().__init__()
|
|
15
|
-
|
|
16
|
-
self._driver = driver
|
|
17
|
-
|
|
18
|
-
async def run(self) -> None:
|
|
19
|
-
await self._driver.run()
|
|
@@ -1,191 +0,0 @@
|
|
|
1
|
-
import asyncio
|
|
2
|
-
import dataclasses as dc
|
|
3
|
-
import typing as ta
|
|
4
|
-
|
|
5
|
-
from omdev.tui import textual as tx
|
|
6
|
-
from omlish import check
|
|
7
|
-
|
|
8
|
-
from ...... import minichain as mc
|
|
9
|
-
from ...driver import ChatDriver
|
|
10
|
-
from .user import QueueUserChatInput
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
##
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
class UserMessage(tx.Static):
|
|
17
|
-
pass
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
class AiMessage(tx.Static):
|
|
21
|
-
pass
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
##
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
class InputTextArea(tx.TextArea):
|
|
28
|
-
@dc.dataclass()
|
|
29
|
-
class Submitted(tx.Message):
|
|
30
|
-
text: str
|
|
31
|
-
|
|
32
|
-
def __init__(self, **kwargs: ta.Any) -> None:
|
|
33
|
-
super().__init__(**kwargs)
|
|
34
|
-
|
|
35
|
-
async def _on_key(self, event: tx.Key) -> None:
|
|
36
|
-
if event.key == 'enter':
|
|
37
|
-
event.prevent_default()
|
|
38
|
-
event.stop()
|
|
39
|
-
|
|
40
|
-
if text := self.text.strip():
|
|
41
|
-
self.post_message(self.Submitted(text))
|
|
42
|
-
|
|
43
|
-
else:
|
|
44
|
-
await super()._on_key(event)
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
##
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
class ChatApp(tx.App):
|
|
51
|
-
def __init__(
|
|
52
|
-
self,
|
|
53
|
-
*,
|
|
54
|
-
chat_driver: ChatDriver,
|
|
55
|
-
queue_user_chat_input: QueueUserChatInput,
|
|
56
|
-
) -> None:
|
|
57
|
-
super().__init__()
|
|
58
|
-
|
|
59
|
-
self._chat_driver = chat_driver
|
|
60
|
-
self._queue_user_chat_input = queue_user_chat_input
|
|
61
|
-
|
|
62
|
-
CSS: ta.ClassVar[str] = """
|
|
63
|
-
#messages-scroll {
|
|
64
|
-
width: 100%;
|
|
65
|
-
height: 1fr;
|
|
66
|
-
|
|
67
|
-
padding: 0 2 0 2;
|
|
68
|
-
}
|
|
69
|
-
|
|
70
|
-
#messages-container {
|
|
71
|
-
height: auto;
|
|
72
|
-
width: 100%;
|
|
73
|
-
|
|
74
|
-
margin-top: 1;
|
|
75
|
-
margin-bottom: 0;
|
|
76
|
-
|
|
77
|
-
layout: stream;
|
|
78
|
-
text-align: left;
|
|
79
|
-
}
|
|
80
|
-
|
|
81
|
-
#input-outer {
|
|
82
|
-
width: 100%;
|
|
83
|
-
height: auto;
|
|
84
|
-
}
|
|
85
|
-
|
|
86
|
-
#input-vertical {
|
|
87
|
-
width: 100%;
|
|
88
|
-
height: auto;
|
|
89
|
-
|
|
90
|
-
margin: 0 2 1 2;
|
|
91
|
-
|
|
92
|
-
padding: 0;
|
|
93
|
-
}
|
|
94
|
-
|
|
95
|
-
#input-vertical2 {
|
|
96
|
-
width: 100%;
|
|
97
|
-
height: auto;
|
|
98
|
-
|
|
99
|
-
border: round $foreground-muted;
|
|
100
|
-
|
|
101
|
-
padding: 0 1;
|
|
102
|
-
}
|
|
103
|
-
|
|
104
|
-
#input-horizontal {
|
|
105
|
-
width: 100%;
|
|
106
|
-
height: auto;
|
|
107
|
-
}
|
|
108
|
-
|
|
109
|
-
#input-glyph {
|
|
110
|
-
width: auto;
|
|
111
|
-
|
|
112
|
-
padding: 0 1 0 0;
|
|
113
|
-
|
|
114
|
-
background: transparent;
|
|
115
|
-
color: $primary;
|
|
116
|
-
|
|
117
|
-
text-style: bold;
|
|
118
|
-
}
|
|
119
|
-
|
|
120
|
-
#input {
|
|
121
|
-
width: 1fr;
|
|
122
|
-
height: auto;
|
|
123
|
-
max-height: 16;
|
|
124
|
-
|
|
125
|
-
border: none;
|
|
126
|
-
|
|
127
|
-
padding: 0;
|
|
128
|
-
|
|
129
|
-
background: transparent;
|
|
130
|
-
color: $text;
|
|
131
|
-
}
|
|
132
|
-
"""
|
|
133
|
-
|
|
134
|
-
ENABLE_COMMAND_PALETTE: ta.ClassVar[bool] = False
|
|
135
|
-
|
|
136
|
-
#
|
|
137
|
-
|
|
138
|
-
def compose(self) -> tx.ComposeResult:
|
|
139
|
-
with tx.VerticalScroll(id='messages-scroll'):
|
|
140
|
-
yield tx.Static(id='messages-container')
|
|
141
|
-
|
|
142
|
-
with tx.Static(id='input-outer'):
|
|
143
|
-
with tx.Vertical(id='input-vertical'):
|
|
144
|
-
with tx.Vertical(id='input-vertical2'):
|
|
145
|
-
with tx.Horizontal(id='input-horizontal'):
|
|
146
|
-
yield tx.Static('>', id='input-glyph')
|
|
147
|
-
yield InputTextArea(placeholder='...', id='input')
|
|
148
|
-
|
|
149
|
-
#
|
|
150
|
-
|
|
151
|
-
def _get_input_text_area(self) -> InputTextArea:
|
|
152
|
-
return self.query_one('#input', InputTextArea)
|
|
153
|
-
|
|
154
|
-
def _get_messages_container(self) -> tx.Static:
|
|
155
|
-
return self.query_one('#messages-container', tx.Static)
|
|
156
|
-
|
|
157
|
-
#
|
|
158
|
-
|
|
159
|
-
async def _mount_message(self, *messages: tx.Widget) -> None:
|
|
160
|
-
msg_ctr = self._get_messages_container()
|
|
161
|
-
|
|
162
|
-
for msg in messages:
|
|
163
|
-
await msg_ctr.mount(msg)
|
|
164
|
-
|
|
165
|
-
self.call_after_refresh(lambda: msg_ctr.scroll_end(animate=False))
|
|
166
|
-
|
|
167
|
-
#
|
|
168
|
-
|
|
169
|
-
_chat_driver_task: asyncio.Task | None = None
|
|
170
|
-
|
|
171
|
-
async def on_mount(self) -> None:
|
|
172
|
-
check.none(self._chat_driver_task)
|
|
173
|
-
self._chat_driver_task = asyncio.create_task(self._chat_driver.run())
|
|
174
|
-
|
|
175
|
-
self._get_input_text_area().focus()
|
|
176
|
-
|
|
177
|
-
await self._mount_message(UserMessage('Hello!'))
|
|
178
|
-
|
|
179
|
-
async def on_unmount(self) -> None:
|
|
180
|
-
await self._queue_user_chat_input.push_next_user_messages([])
|
|
181
|
-
await check.not_none(self._chat_driver_task)
|
|
182
|
-
|
|
183
|
-
async def on_input_text_area_submitted(self, event: InputTextArea.Submitted) -> None:
|
|
184
|
-
self._get_input_text_area().clear()
|
|
185
|
-
|
|
186
|
-
await self._mount_message(
|
|
187
|
-
UserMessage(event.text),
|
|
188
|
-
# AiMessage(f'You said: {event.text}!'),
|
|
189
|
-
)
|
|
190
|
-
|
|
191
|
-
await self._queue_user_chat_input.push_next_user_messages([mc.UserMessage(event.text)])
|
|
@@ -1,27 +0,0 @@
|
|
|
1
|
-
from omlish import inject as inj
|
|
2
|
-
|
|
3
|
-
from ...chat.user.types import UserChatInput
|
|
4
|
-
from ..base import ChatInterface
|
|
5
|
-
from .app import ChatApp
|
|
6
|
-
from .interface import TextualChatInterface
|
|
7
|
-
from .user import QueueUserChatInput
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
##
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
def bind_textual() -> inj.Elements:
|
|
14
|
-
els: list[inj.Elemental] = [
|
|
15
|
-
inj.bind(ChatInterface, to_ctor=TextualChatInterface, singleton=True),
|
|
16
|
-
]
|
|
17
|
-
|
|
18
|
-
els.extend([
|
|
19
|
-
inj.bind(ChatApp, singleton=True),
|
|
20
|
-
])
|
|
21
|
-
|
|
22
|
-
els.extend([
|
|
23
|
-
inj.bind(QueueUserChatInput, singleton=True),
|
|
24
|
-
inj.bind(UserChatInput, to_key=QueueUserChatInput),
|
|
25
|
-
])
|
|
26
|
-
|
|
27
|
-
return inj.as_elements(*els)
|
|
@@ -1,20 +0,0 @@
|
|
|
1
|
-
import asyncio
|
|
2
|
-
|
|
3
|
-
from ...... import minichain as mc
|
|
4
|
-
from ...chat.user.types import UserChatInput
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
##
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
class QueueUserChatInput(UserChatInput):
|
|
11
|
-
def __init__(self) -> None:
|
|
12
|
-
super().__init__()
|
|
13
|
-
|
|
14
|
-
self._queue: asyncio.Queue[mc.UserChat] = asyncio.Queue()
|
|
15
|
-
|
|
16
|
-
async def push_next_user_messages(self, chat: 'mc.UserChat') -> None:
|
|
17
|
-
await self._queue.put(chat)
|
|
18
|
-
|
|
19
|
-
async def get_next_user_messages(self) -> 'mc.UserChat':
|
|
20
|
-
return await self._queue.get()
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|