ommlds 0.0.0.dev490__py3-none-any.whl → 0.0.0.dev492__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.
Files changed (88) hide show
  1. ommlds/.omlish-manifests.json +9 -7
  2. ommlds/README.md +11 -0
  3. ommlds/__about__.py +1 -1
  4. ommlds/backends/ollama/_dataclasses.py +53 -23
  5. ommlds/backends/ollama/protocol.py +3 -0
  6. ommlds/cli/_dataclasses.py +439 -289
  7. ommlds/cli/main.py +42 -34
  8. ommlds/cli/rendering/types.py +6 -0
  9. ommlds/cli/sessions/chat/configs.py +2 -2
  10. ommlds/cli/sessions/chat/{agents → drivers}/ai/inject.py +3 -1
  11. ommlds/cli/sessions/chat/{agents → drivers}/configs.py +1 -1
  12. ommlds/cli/sessions/chat/{agents/agent.py → drivers/driver.py} +7 -1
  13. ommlds/cli/sessions/chat/{agents → drivers}/inject.py +13 -6
  14. ommlds/cli/sessions/chat/{agents → drivers}/tools/configs.py +0 -2
  15. ommlds/cli/sessions/chat/drivers/tools/confirmation.py +44 -0
  16. ommlds/cli/sessions/chat/{agents → drivers}/tools/execution.py +2 -3
  17. ommlds/cli/sessions/chat/{agents → drivers}/tools/inject.py +1 -13
  18. ommlds/cli/sessions/chat/{agents → drivers}/tools/rendering.py +1 -1
  19. ommlds/cli/sessions/chat/drivers/types.py +10 -0
  20. ommlds/cli/sessions/chat/{agents → drivers}/user/inject.py +5 -5
  21. ommlds/cli/sessions/chat/inject.py +2 -2
  22. ommlds/cli/sessions/chat/interfaces/bare/inject.py +23 -0
  23. ommlds/cli/sessions/chat/interfaces/bare/interactive.py +12 -6
  24. ommlds/cli/sessions/chat/interfaces/bare/oneshot.py +5 -5
  25. ommlds/cli/sessions/chat/{agents/tools/confirmation.py → interfaces/bare/tools.py} +2 -21
  26. ommlds/cli/sessions/chat/interfaces/bare/user.py +1 -1
  27. ommlds/cli/sessions/chat/interfaces/configs.py +8 -0
  28. ommlds/cli/sessions/chat/interfaces/inject.py +1 -1
  29. ommlds/cli/sessions/chat/interfaces/textual/app.py +154 -103
  30. ommlds/cli/sessions/chat/interfaces/textual/inject.py +34 -9
  31. ommlds/cli/sessions/chat/interfaces/textual/interface.py +85 -0
  32. ommlds/cli/sessions/chat/interfaces/textual/styles/__init__.py +29 -0
  33. ommlds/cli/sessions/chat/interfaces/textual/styles/input.tcss +3 -1
  34. ommlds/cli/sessions/chat/interfaces/textual/styles/markdown.tcss +7 -0
  35. ommlds/cli/sessions/chat/interfaces/textual/styles/messages.tcss +131 -9
  36. ommlds/cli/sessions/chat/interfaces/textual/tools.py +37 -0
  37. ommlds/cli/sessions/chat/interfaces/textual/widgets/__init__.py +0 -0
  38. ommlds/cli/sessions/chat/interfaces/textual/widgets/input.py +36 -0
  39. ommlds/cli/sessions/chat/interfaces/textual/widgets/messages.py +164 -0
  40. ommlds/minichain/backends/impls/ollama/chat.py +50 -56
  41. ommlds/minichain/backends/impls/ollama/protocol.py +144 -0
  42. ommlds/minichain/backends/impls/openai/names.py +3 -1
  43. ommlds/nanochat/rustbpe/README.md +9 -0
  44. {ommlds-0.0.0.dev490.dist-info → ommlds-0.0.0.dev492.dist-info}/METADATA +6 -6
  45. {ommlds-0.0.0.dev490.dist-info → ommlds-0.0.0.dev492.dist-info}/RECORD +88 -78
  46. /ommlds/cli/sessions/chat/{agents → drivers}/__init__.py +0 -0
  47. /ommlds/cli/sessions/chat/{agents → drivers}/ai/__init__.py +0 -0
  48. /ommlds/cli/sessions/chat/{agents → drivers}/ai/configs.py +0 -0
  49. /ommlds/cli/sessions/chat/{agents → drivers}/ai/events.py +0 -0
  50. /ommlds/cli/sessions/chat/{agents → drivers}/ai/injection.py +0 -0
  51. /ommlds/cli/sessions/chat/{agents → drivers}/ai/rendering.py +0 -0
  52. /ommlds/cli/sessions/chat/{agents → drivers}/ai/services.py +0 -0
  53. /ommlds/cli/sessions/chat/{agents → drivers}/ai/tools.py +0 -0
  54. /ommlds/cli/sessions/chat/{agents → drivers}/ai/types.py +0 -0
  55. /ommlds/cli/sessions/chat/{agents → drivers}/events/__init__.py +0 -0
  56. /ommlds/cli/sessions/chat/{agents → drivers}/events/inject.py +0 -0
  57. /ommlds/cli/sessions/chat/{agents → drivers}/events/injection.py +0 -0
  58. /ommlds/cli/sessions/chat/{agents → drivers}/events/manager.py +0 -0
  59. /ommlds/cli/sessions/chat/{agents → drivers}/events/types.py +0 -0
  60. /ommlds/cli/sessions/chat/{agents → drivers}/phases/__init__.py +0 -0
  61. /ommlds/cli/sessions/chat/{agents → drivers}/phases/inject.py +0 -0
  62. /ommlds/cli/sessions/chat/{agents → drivers}/phases/injection.py +0 -0
  63. /ommlds/cli/sessions/chat/{agents → drivers}/phases/manager.py +0 -0
  64. /ommlds/cli/sessions/chat/{agents → drivers}/phases/types.py +0 -0
  65. /ommlds/cli/sessions/chat/{agents → drivers}/state/__init__.py +0 -0
  66. /ommlds/cli/sessions/chat/{agents → drivers}/state/configs.py +0 -0
  67. /ommlds/cli/sessions/chat/{agents → drivers}/state/inject.py +0 -0
  68. /ommlds/cli/sessions/chat/{agents → drivers}/state/inmemory.py +0 -0
  69. /ommlds/cli/sessions/chat/{agents → drivers}/state/storage.py +0 -0
  70. /ommlds/cli/sessions/chat/{agents → drivers}/state/types.py +0 -0
  71. /ommlds/cli/sessions/chat/{agents → drivers}/tools/__init__.py +0 -0
  72. /ommlds/cli/sessions/chat/{agents → drivers}/tools/fs/__init__.py +0 -0
  73. /ommlds/cli/sessions/chat/{agents → drivers}/tools/fs/configs.py +0 -0
  74. /ommlds/cli/sessions/chat/{agents → drivers}/tools/fs/inject.py +0 -0
  75. /ommlds/cli/sessions/chat/{agents → drivers}/tools/injection.py +0 -0
  76. /ommlds/cli/sessions/chat/{agents → drivers}/tools/todo/__init__.py +0 -0
  77. /ommlds/cli/sessions/chat/{agents → drivers}/tools/todo/configs.py +0 -0
  78. /ommlds/cli/sessions/chat/{agents → drivers}/tools/todo/inject.py +0 -0
  79. /ommlds/cli/sessions/chat/{agents → drivers}/tools/weather/__init__.py +0 -0
  80. /ommlds/cli/sessions/chat/{agents → drivers}/tools/weather/configs.py +0 -0
  81. /ommlds/cli/sessions/chat/{agents → drivers}/tools/weather/inject.py +0 -0
  82. /ommlds/cli/sessions/chat/{agents → drivers}/tools/weather/tools.py +0 -0
  83. /ommlds/cli/sessions/chat/{agents → drivers}/user/__init__.py +0 -0
  84. /ommlds/cli/sessions/chat/{agents → drivers}/user/configs.py +0 -0
  85. {ommlds-0.0.0.dev490.dist-info → ommlds-0.0.0.dev492.dist-info}/WHEEL +0 -0
  86. {ommlds-0.0.0.dev490.dist-info → ommlds-0.0.0.dev492.dist-info}/entry_points.txt +0 -0
  87. {ommlds-0.0.0.dev490.dist-info → ommlds-0.0.0.dev492.dist-info}/licenses/LICENSE +0 -0
  88. {ommlds-0.0.0.dev490.dist-info → ommlds-0.0.0.dev492.dist-info}/top_level.txt +0 -0
@@ -25,27 +25,22 @@ def _register(**kwargs):
25
25
 
26
26
  @_register(
27
27
  plan_repr=(
28
- "Plans(tup=(CopyPlan(fields=('ai', 'backend', 'state', 'tools', 'user')), EqPlan(fields=('ai', 'backend', 'stat"
29
- "e', 'tools', 'user')), FrozenPlan(fields=('ai', 'backend', 'state', 'tools', 'user'), allow_dynamic_dunder_att"
30
- "rs=False), HashPlan(action='add', fields=('ai', 'backend', 'state', 'tools', 'user'), cache=False), InitPlan(f"
31
- "ields=(InitPlan.Field(name='ai', annotation=OpRef(name='init.fields.0.annotation'), default=OpRef(name='init.f"
32
- "ields.0.default'), default_factory=None, init=True, override=False, field_type=FieldType.INSTANCE, coerce=None"
33
- ", validate=None, check_type=None), InitPlan.Field(name='backend', annotation=OpRef(name='init.fields.1.annotat"
34
- "ion'), default=OpRef(name='init.fields.1.default'), default_factory=None, init=True, override=False, field_typ"
35
- "e=FieldType.INSTANCE, coerce=None, validate=None, check_type=None), InitPlan.Field(name='state', annotation=Op"
36
- "Ref(name='init.fields.2.annotation'), default=OpRef(name='init.fields.2.default'), default_factory=None, init="
37
- "True, override=False, field_type=FieldType.INSTANCE, coerce=None, validate=None, check_type=None), InitPlan.Fi"
38
- "eld(name='tools', annotation=OpRef(name='init.fields.3.annotation'), default=OpRef(name='init.fields.3.default"
39
- "'), default_factory=None, init=True, override=False, field_type=FieldType.INSTANCE, coerce=None, validate=None"
40
- ", check_type=None), InitPlan.Field(name='user', annotation=OpRef(name='init.fields.4.annotation'), default=OpR"
41
- "ef(name='init.fields.4.default'), default_factory=None, init=True, override=False, field_type=FieldType.INSTAN"
42
- "CE, coerce=None, validate=None, check_type=None)), self_param='self', std_params=(), kw_only_params=('ai', 'ba"
43
- "ckend', 'state', 'tools', 'user'), frozen=True, slots=False, post_init_params=None, init_fns=(), validate_fns="
44
- "()), ReprPlan(fields=(ReprPlan.Field(name='ai', kw_only=True, fn=None), ReprPlan.Field(name='backend', kw_only"
45
- "=True, fn=None), ReprPlan.Field(name='state', kw_only=True, fn=None), ReprPlan.Field(name='tools', kw_only=Tru"
46
- "e, fn=None), ReprPlan.Field(name='user', kw_only=True, fn=None)), id=False, terse=False, default_fn=None)))"
28
+ "Plans(tup=(CopyPlan(fields=('stream', 'verbose', 'enable_tools')), EqPlan(fields=('stream', 'verbose', 'enable"
29
+ "_tools')), FrozenPlan(fields=('stream', 'verbose', 'enable_tools'), allow_dynamic_dunder_attrs=False), HashPla"
30
+ "n(action='add', fields=('stream', 'verbose', 'enable_tools'), cache=False), InitPlan(fields=(InitPlan.Field(na"
31
+ "me='stream', annotation=OpRef(name='init.fields.0.annotation'), default=OpRef(name='init.fields.0.default'), d"
32
+ "efault_factory=None, init=True, override=False, field_type=FieldType.INSTANCE, coerce=None, validate=None, che"
33
+ "ck_type=None), InitPlan.Field(name='verbose', annotation=OpRef(name='init.fields.1.annotation'), default=OpRef"
34
+ "(name='init.fields.1.default'), default_factory=None, init=True, override=False, field_type=FieldType.INSTANCE"
35
+ ", coerce=None, validate=None, check_type=None), InitPlan.Field(name='enable_tools', annotation=OpRef(name='ini"
36
+ "t.fields.2.annotation'), default=OpRef(name='init.fields.2.default'), default_factory=None, init=True, overrid"
37
+ "e=False, field_type=FieldType.INSTANCE, coerce=None, validate=None, check_type=None)), self_param='self', std_"
38
+ "params=(), kw_only_params=('stream', 'verbose', 'enable_tools'), frozen=True, slots=False, post_init_params=No"
39
+ "ne, init_fns=(), validate_fns=()), ReprPlan(fields=(ReprPlan.Field(name='stream', kw_only=True, fn=None), Repr"
40
+ "Plan.Field(name='verbose', kw_only=True, fn=None), ReprPlan.Field(name='enable_tools', kw_only=True, fn=None))"
41
+ ", id=False, terse=False, default_fn=None)))"
47
42
  ),
48
- plan_repr_sha1='ccc522b0563e76033e8f2d3b6864b8a7c48c0fb7',
43
+ plan_repr_sha1='0af757919efd30aee522fc0804dd63f932b30d84',
49
44
  op_ref_idents=(
50
45
  '__dataclass__init__fields__0__annotation',
51
46
  '__dataclass__init__fields__0__default',
@@ -53,16 +48,12 @@ def _register(**kwargs):
53
48
  '__dataclass__init__fields__1__default',
54
49
  '__dataclass__init__fields__2__annotation',
55
50
  '__dataclass__init__fields__2__default',
56
- '__dataclass__init__fields__3__annotation',
57
- '__dataclass__init__fields__3__default',
58
- '__dataclass__init__fields__4__annotation',
59
- '__dataclass__init__fields__4__default',
60
51
  ),
61
52
  cls_names=(
62
- ('ommlds.cli.main', 'AgentConfig'),
53
+ ('ommlds.cli.main', 'AiConfig'),
63
54
  ),
64
55
  )
65
- def _process_dataclass__ccc522b0563e76033e8f2d3b6864b8a7c48c0fb7():
56
+ def _process_dataclass__0af757919efd30aee522fc0804dd63f932b30d84():
66
57
  def _process_dataclass(
67
58
  *,
68
59
  __dataclass__cls,
@@ -72,10 +63,6 @@ def _process_dataclass__ccc522b0563e76033e8f2d3b6864b8a7c48c0fb7():
72
63
  __dataclass__init__fields__1__default,
73
64
  __dataclass__init__fields__2__annotation,
74
65
  __dataclass__init__fields__2__default,
75
- __dataclass__init__fields__3__annotation,
76
- __dataclass__init__fields__3__default,
77
- __dataclass__init__fields__4__annotation,
78
- __dataclass__init__fields__4__default,
79
66
  __dataclass__FieldFnValidationError, # noqa
80
67
  __dataclass__FieldTypeValidationError, # noqa
81
68
  __dataclass__FnValidationError, # noqa
@@ -94,11 +81,9 @@ def _process_dataclass__ccc522b0563e76033e8f2d3b6864b8a7c48c0fb7():
94
81
  if self.__class__ is not __dataclass__cls:
95
82
  raise TypeError(self)
96
83
  return __dataclass__cls( # noqa
97
- ai=self.ai,
98
- backend=self.backend,
99
- state=self.state,
100
- tools=self.tools,
101
- user=self.user,
84
+ stream=self.stream,
85
+ verbose=self.verbose,
86
+ enable_tools=self.enable_tools,
102
87
  )
103
88
 
104
89
  __copy__.__qualname__ = f"{__dataclass__cls.__qualname__}.__copy__"
@@ -112,11 +97,9 @@ def _process_dataclass__ccc522b0563e76033e8f2d3b6864b8a7c48c0fb7():
112
97
  if self.__class__ is not other.__class__:
113
98
  return NotImplemented
114
99
  return (
115
- self.ai == other.ai and
116
- self.backend == other.backend and
117
- self.state == other.state and
118
- self.tools == other.tools and
119
- self.user == other.user
100
+ self.stream == other.stream and
101
+ self.verbose == other.verbose and
102
+ self.enable_tools == other.enable_tools
120
103
  )
121
104
 
122
105
  __eq__.__qualname__ = f"{__dataclass__cls.__qualname__}.__eq__"
@@ -125,11 +108,9 @@ def _process_dataclass__ccc522b0563e76033e8f2d3b6864b8a7c48c0fb7():
125
108
  setattr(__dataclass__cls, '__eq__', __eq__)
126
109
 
127
110
  __dataclass___setattr_frozen_fields = {
128
- 'ai',
129
- 'backend',
130
- 'state',
131
- 'tools',
132
- 'user',
111
+ 'stream',
112
+ 'verbose',
113
+ 'enable_tools',
133
114
  }
134
115
 
135
116
  def __setattr__(self, name, value):
@@ -146,11 +127,9 @@ def _process_dataclass__ccc522b0563e76033e8f2d3b6864b8a7c48c0fb7():
146
127
  setattr(__dataclass__cls, '__setattr__', __setattr__)
147
128
 
148
129
  __dataclass___delattr_frozen_fields = {
149
- 'ai',
150
- 'backend',
151
- 'state',
152
- 'tools',
153
- 'user',
130
+ 'stream',
131
+ 'verbose',
132
+ 'enable_tools',
154
133
  }
155
134
 
156
135
  def __delattr__(self, name):
@@ -168,11 +147,9 @@ def _process_dataclass__ccc522b0563e76033e8f2d3b6864b8a7c48c0fb7():
168
147
 
169
148
  def __hash__(self):
170
149
  return hash((
171
- self.ai,
172
- self.backend,
173
- self.state,
174
- self.tools,
175
- self.user,
150
+ self.stream,
151
+ self.verbose,
152
+ self.enable_tools,
176
153
  ))
177
154
 
178
155
  __hash__.__qualname__ = f"{__dataclass__cls.__qualname__}.__hash__"
@@ -181,17 +158,13 @@ def _process_dataclass__ccc522b0563e76033e8f2d3b6864b8a7c48c0fb7():
181
158
  def __init__(
182
159
  self,
183
160
  *,
184
- ai: __dataclass__init__fields__0__annotation = __dataclass__init__fields__0__default,
185
- backend: __dataclass__init__fields__1__annotation = __dataclass__init__fields__1__default,
186
- state: __dataclass__init__fields__2__annotation = __dataclass__init__fields__2__default,
187
- tools: __dataclass__init__fields__3__annotation = __dataclass__init__fields__3__default,
188
- user: __dataclass__init__fields__4__annotation = __dataclass__init__fields__4__default,
161
+ stream: __dataclass__init__fields__0__annotation = __dataclass__init__fields__0__default,
162
+ verbose: __dataclass__init__fields__1__annotation = __dataclass__init__fields__1__default,
163
+ enable_tools: __dataclass__init__fields__2__annotation = __dataclass__init__fields__2__default,
189
164
  ) -> __dataclass__None:
190
- __dataclass__object_setattr(self, 'ai', ai)
191
- __dataclass__object_setattr(self, 'backend', backend)
192
- __dataclass__object_setattr(self, 'state', state)
193
- __dataclass__object_setattr(self, 'tools', tools)
194
- __dataclass__object_setattr(self, 'user', user)
165
+ __dataclass__object_setattr(self, 'stream', stream)
166
+ __dataclass__object_setattr(self, 'verbose', verbose)
167
+ __dataclass__object_setattr(self, 'enable_tools', enable_tools)
195
168
 
196
169
  __init__.__qualname__ = f"{__dataclass__cls.__qualname__}.__init__"
197
170
  if '__init__' in __dataclass__cls.__dict__:
@@ -201,11 +174,9 @@ def _process_dataclass__ccc522b0563e76033e8f2d3b6864b8a7c48c0fb7():
201
174
  @__dataclass___recursive_repr()
202
175
  def __repr__(self):
203
176
  parts = []
204
- parts.append(f"ai={self.ai!r}")
205
- parts.append(f"backend={self.backend!r}")
206
- parts.append(f"state={self.state!r}")
207
- parts.append(f"tools={self.tools!r}")
208
- parts.append(f"user={self.user!r}")
177
+ parts.append(f"stream={self.stream!r}")
178
+ parts.append(f"verbose={self.verbose!r}")
179
+ parts.append(f"enable_tools={self.enable_tools!r}")
209
180
  return (
210
181
  f"{self.__class__.__qualname__}("
211
182
  f"{', '.join(parts)}"
@@ -222,44 +193,29 @@ def _process_dataclass__ccc522b0563e76033e8f2d3b6864b8a7c48c0fb7():
222
193
 
223
194
  @_register(
224
195
  plan_repr=(
225
- "Plans(tup=(CopyPlan(fields=('stream', 'verbose', 'enable_tools')), EqPlan(fields=('stream', 'verbose', 'enable"
226
- "_tools')), FrozenPlan(fields=('stream', 'verbose', 'enable_tools'), allow_dynamic_dunder_attrs=False), HashPla"
227
- "n(action='add', fields=('stream', 'verbose', 'enable_tools'), cache=False), InitPlan(fields=(InitPlan.Field(na"
228
- "me='stream', annotation=OpRef(name='init.fields.0.annotation'), default=OpRef(name='init.fields.0.default'), d"
229
- "efault_factory=None, init=True, override=False, field_type=FieldType.INSTANCE, coerce=None, validate=None, che"
230
- "ck_type=None), InitPlan.Field(name='verbose', annotation=OpRef(name='init.fields.1.annotation'), default=OpRef"
231
- "(name='init.fields.1.default'), default_factory=None, init=True, override=False, field_type=FieldType.INSTANCE"
232
- ", coerce=None, validate=None, check_type=None), InitPlan.Field(name='enable_tools', annotation=OpRef(name='ini"
233
- "t.fields.2.annotation'), default=OpRef(name='init.fields.2.default'), default_factory=None, init=True, overrid"
234
- "e=False, field_type=FieldType.INSTANCE, coerce=None, validate=None, check_type=None)), self_param='self', std_"
235
- "params=(), kw_only_params=('stream', 'verbose', 'enable_tools'), frozen=True, slots=False, post_init_params=No"
236
- "ne, init_fns=(), validate_fns=()), ReprPlan(fields=(ReprPlan.Field(name='stream', kw_only=True, fn=None), Repr"
237
- "Plan.Field(name='verbose', kw_only=True, fn=None), ReprPlan.Field(name='enable_tools', kw_only=True, fn=None))"
238
- ", id=False, terse=False, default_fn=None)))"
196
+ "Plans(tup=(CopyPlan(fields=('backend',)), EqPlan(fields=('backend',)), FrozenPlan(fields=('backend',), allow_d"
197
+ "ynamic_dunder_attrs=False), HashPlan(action='add', fields=('backend',), cache=False), InitPlan(fields=(InitPla"
198
+ "n.Field(name='backend', annotation=OpRef(name='init.fields.0.annotation'), default=OpRef(name='init.fields.0.d"
199
+ "efault'), default_factory=None, init=True, override=False, field_type=FieldType.INSTANCE, coerce=None, validat"
200
+ "e=None, check_type=None),), self_param='self', std_params=(), kw_only_params=('backend',), frozen=True, slots="
201
+ "False, post_init_params=None, init_fns=(), validate_fns=()), ReprPlan(fields=(ReprPlan.Field(name='backend', k"
202
+ "w_only=True, fn=None),), id=False, terse=False, default_fn=None)))"
239
203
  ),
240
- plan_repr_sha1='0af757919efd30aee522fc0804dd63f932b30d84',
204
+ plan_repr_sha1='fa5665ecddac4bdf52a6a47db3b5b5362a8b3c7a',
241
205
  op_ref_idents=(
242
206
  '__dataclass__init__fields__0__annotation',
243
207
  '__dataclass__init__fields__0__default',
244
- '__dataclass__init__fields__1__annotation',
245
- '__dataclass__init__fields__1__default',
246
- '__dataclass__init__fields__2__annotation',
247
- '__dataclass__init__fields__2__default',
248
208
  ),
249
209
  cls_names=(
250
- ('ommlds.cli.main', 'AiConfig'),
210
+ ('ommlds.cli.main', 'BackendConfig'),
251
211
  ),
252
212
  )
253
- def _process_dataclass__0af757919efd30aee522fc0804dd63f932b30d84():
213
+ def _process_dataclass__fa5665ecddac4bdf52a6a47db3b5b5362a8b3c7a():
254
214
  def _process_dataclass(
255
215
  *,
256
216
  __dataclass__cls,
257
217
  __dataclass__init__fields__0__annotation,
258
218
  __dataclass__init__fields__0__default,
259
- __dataclass__init__fields__1__annotation,
260
- __dataclass__init__fields__1__default,
261
- __dataclass__init__fields__2__annotation,
262
- __dataclass__init__fields__2__default,
263
219
  __dataclass__FieldFnValidationError, # noqa
264
220
  __dataclass__FieldTypeValidationError, # noqa
265
221
  __dataclass__FnValidationError, # noqa
@@ -278,9 +234,7 @@ def _process_dataclass__0af757919efd30aee522fc0804dd63f932b30d84():
278
234
  if self.__class__ is not __dataclass__cls:
279
235
  raise TypeError(self)
280
236
  return __dataclass__cls( # noqa
281
- stream=self.stream,
282
- verbose=self.verbose,
283
- enable_tools=self.enable_tools,
237
+ backend=self.backend,
284
238
  )
285
239
 
286
240
  __copy__.__qualname__ = f"{__dataclass__cls.__qualname__}.__copy__"
@@ -294,9 +248,7 @@ def _process_dataclass__0af757919efd30aee522fc0804dd63f932b30d84():
294
248
  if self.__class__ is not other.__class__:
295
249
  return NotImplemented
296
250
  return (
297
- self.stream == other.stream and
298
- self.verbose == other.verbose and
299
- self.enable_tools == other.enable_tools
251
+ self.backend == other.backend
300
252
  )
301
253
 
302
254
  __eq__.__qualname__ = f"{__dataclass__cls.__qualname__}.__eq__"
@@ -305,9 +257,7 @@ def _process_dataclass__0af757919efd30aee522fc0804dd63f932b30d84():
305
257
  setattr(__dataclass__cls, '__eq__', __eq__)
306
258
 
307
259
  __dataclass___setattr_frozen_fields = {
308
- 'stream',
309
- 'verbose',
310
- 'enable_tools',
260
+ 'backend',
311
261
  }
312
262
 
313
263
  def __setattr__(self, name, value):
@@ -324,9 +274,7 @@ def _process_dataclass__0af757919efd30aee522fc0804dd63f932b30d84():
324
274
  setattr(__dataclass__cls, '__setattr__', __setattr__)
325
275
 
326
276
  __dataclass___delattr_frozen_fields = {
327
- 'stream',
328
- 'verbose',
329
- 'enable_tools',
277
+ 'backend',
330
278
  }
331
279
 
332
280
  def __delattr__(self, name):
@@ -344,9 +292,7 @@ def _process_dataclass__0af757919efd30aee522fc0804dd63f932b30d84():
344
292
 
345
293
  def __hash__(self):
346
294
  return hash((
347
- self.stream,
348
- self.verbose,
349
- self.enable_tools,
295
+ self.backend,
350
296
  ))
351
297
 
352
298
  __hash__.__qualname__ = f"{__dataclass__cls.__qualname__}.__hash__"
@@ -355,13 +301,9 @@ def _process_dataclass__0af757919efd30aee522fc0804dd63f932b30d84():
355
301
  def __init__(
356
302
  self,
357
303
  *,
358
- stream: __dataclass__init__fields__0__annotation = __dataclass__init__fields__0__default,
359
- verbose: __dataclass__init__fields__1__annotation = __dataclass__init__fields__1__default,
360
- enable_tools: __dataclass__init__fields__2__annotation = __dataclass__init__fields__2__default,
304
+ backend: __dataclass__init__fields__0__annotation = __dataclass__init__fields__0__default,
361
305
  ) -> __dataclass__None:
362
- __dataclass__object_setattr(self, 'stream', stream)
363
- __dataclass__object_setattr(self, 'verbose', verbose)
364
- __dataclass__object_setattr(self, 'enable_tools', enable_tools)
306
+ __dataclass__object_setattr(self, 'backend', backend)
365
307
 
366
308
  __init__.__qualname__ = f"{__dataclass__cls.__qualname__}.__init__"
367
309
  if '__init__' in __dataclass__cls.__dict__:
@@ -371,9 +313,7 @@ def _process_dataclass__0af757919efd30aee522fc0804dd63f932b30d84():
371
313
  @__dataclass___recursive_repr()
372
314
  def __repr__(self):
373
315
  parts = []
374
- parts.append(f"stream={self.stream!r}")
375
- parts.append(f"verbose={self.verbose!r}")
376
- parts.append(f"enable_tools={self.enable_tools!r}")
316
+ parts.append(f"backend={self.backend!r}")
377
317
  return (
378
318
  f"{self.__class__.__qualname__}("
379
319
  f"{', '.join(parts)}"
@@ -390,29 +330,44 @@ def _process_dataclass__0af757919efd30aee522fc0804dd63f932b30d84():
390
330
 
391
331
  @_register(
392
332
  plan_repr=(
393
- "Plans(tup=(CopyPlan(fields=('backend',)), EqPlan(fields=('backend',)), FrozenPlan(fields=('backend',), allow_d"
394
- "ynamic_dunder_attrs=False), HashPlan(action='add', fields=('backend',), cache=False), InitPlan(fields=(InitPla"
395
- "n.Field(name='backend', annotation=OpRef(name='init.fields.0.annotation'), default=OpRef(name='init.fields.0.d"
396
- "efault'), default_factory=None, init=True, override=False, field_type=FieldType.INSTANCE, coerce=None, validat"
397
- "e=None, check_type=None),), self_param='self', std_params=(), kw_only_params=('backend',), frozen=True, slots="
398
- "False, post_init_params=None, init_fns=(), validate_fns=()), ReprPlan(fields=(ReprPlan.Field(name='backend', k"
399
- "w_only=True, fn=None),), id=False, terse=False, default_fn=None)))"
333
+ "Plans(tup=(CopyPlan(fields=('driver', 'interface', 'rendering')), EqPlan(fields=('driver', 'interface', 'rende"
334
+ "ring')), FrozenPlan(fields=('driver', 'interface', 'rendering'), allow_dynamic_dunder_attrs=False), HashPlan(a"
335
+ "ction='add', fields=('driver', 'interface', 'rendering'), cache=False), InitPlan(fields=(InitPlan.Field(name='"
336
+ "driver', annotation=OpRef(name='init.fields.0.annotation'), default=OpRef(name='init.fields.0.default'), defau"
337
+ "lt_factory=None, init=True, override=False, field_type=FieldType.INSTANCE, coerce=None, validate=None, check_t"
338
+ "ype=None), InitPlan.Field(name='interface', annotation=OpRef(name='init.fields.1.annotation'), default=OpRef(n"
339
+ "ame='init.fields.1.default'), default_factory=None, init=True, override=False, field_type=FieldType.INSTANCE, "
340
+ "coerce=None, validate=None, check_type=None), InitPlan.Field(name='rendering', annotation=OpRef(name='init.fie"
341
+ "lds.2.annotation'), default=OpRef(name='init.fields.2.default'), default_factory=None, init=True, override=Fal"
342
+ "se, field_type=FieldType.INSTANCE, coerce=None, validate=None, check_type=None)), self_param='self', std_param"
343
+ "s=(), kw_only_params=('driver', 'interface', 'rendering'), frozen=True, slots=False, post_init_params=None, in"
344
+ "it_fns=(), validate_fns=()), ReprPlan(fields=(ReprPlan.Field(name='driver', kw_only=True, fn=None), ReprPlan.F"
345
+ "ield(name='interface', kw_only=True, fn=None), ReprPlan.Field(name='rendering', kw_only=True, fn=None)), id=Fa"
346
+ "lse, terse=False, default_fn=None)))"
400
347
  ),
401
- plan_repr_sha1='fa5665ecddac4bdf52a6a47db3b5b5362a8b3c7a',
348
+ plan_repr_sha1='103bad1f2af413714bd23ee2d6a5dffda2e6163d',
402
349
  op_ref_idents=(
403
350
  '__dataclass__init__fields__0__annotation',
404
351
  '__dataclass__init__fields__0__default',
352
+ '__dataclass__init__fields__1__annotation',
353
+ '__dataclass__init__fields__1__default',
354
+ '__dataclass__init__fields__2__annotation',
355
+ '__dataclass__init__fields__2__default',
405
356
  ),
406
357
  cls_names=(
407
- ('ommlds.cli.main', 'BackendConfig'),
358
+ ('ommlds.cli.main', 'ChatConfig'),
408
359
  ),
409
360
  )
410
- def _process_dataclass__fa5665ecddac4bdf52a6a47db3b5b5362a8b3c7a():
361
+ def _process_dataclass__103bad1f2af413714bd23ee2d6a5dffda2e6163d():
411
362
  def _process_dataclass(
412
363
  *,
413
364
  __dataclass__cls,
414
365
  __dataclass__init__fields__0__annotation,
415
366
  __dataclass__init__fields__0__default,
367
+ __dataclass__init__fields__1__annotation,
368
+ __dataclass__init__fields__1__default,
369
+ __dataclass__init__fields__2__annotation,
370
+ __dataclass__init__fields__2__default,
416
371
  __dataclass__FieldFnValidationError, # noqa
417
372
  __dataclass__FieldTypeValidationError, # noqa
418
373
  __dataclass__FnValidationError, # noqa
@@ -431,7 +386,9 @@ def _process_dataclass__fa5665ecddac4bdf52a6a47db3b5b5362a8b3c7a():
431
386
  if self.__class__ is not __dataclass__cls:
432
387
  raise TypeError(self)
433
388
  return __dataclass__cls( # noqa
434
- backend=self.backend,
389
+ driver=self.driver,
390
+ interface=self.interface,
391
+ rendering=self.rendering,
435
392
  )
436
393
 
437
394
  __copy__.__qualname__ = f"{__dataclass__cls.__qualname__}.__copy__"
@@ -445,7 +402,9 @@ def _process_dataclass__fa5665ecddac4bdf52a6a47db3b5b5362a8b3c7a():
445
402
  if self.__class__ is not other.__class__:
446
403
  return NotImplemented
447
404
  return (
448
- self.backend == other.backend
405
+ self.driver == other.driver and
406
+ self.interface == other.interface and
407
+ self.rendering == other.rendering
449
408
  )
450
409
 
451
410
  __eq__.__qualname__ = f"{__dataclass__cls.__qualname__}.__eq__"
@@ -454,7 +413,9 @@ def _process_dataclass__fa5665ecddac4bdf52a6a47db3b5b5362a8b3c7a():
454
413
  setattr(__dataclass__cls, '__eq__', __eq__)
455
414
 
456
415
  __dataclass___setattr_frozen_fields = {
457
- 'backend',
416
+ 'driver',
417
+ 'interface',
418
+ 'rendering',
458
419
  }
459
420
 
460
421
  def __setattr__(self, name, value):
@@ -471,7 +432,9 @@ def _process_dataclass__fa5665ecddac4bdf52a6a47db3b5b5362a8b3c7a():
471
432
  setattr(__dataclass__cls, '__setattr__', __setattr__)
472
433
 
473
434
  __dataclass___delattr_frozen_fields = {
474
- 'backend',
435
+ 'driver',
436
+ 'interface',
437
+ 'rendering',
475
438
  }
476
439
 
477
440
  def __delattr__(self, name):
@@ -489,7 +452,9 @@ def _process_dataclass__fa5665ecddac4bdf52a6a47db3b5b5362a8b3c7a():
489
452
 
490
453
  def __hash__(self):
491
454
  return hash((
492
- self.backend,
455
+ self.driver,
456
+ self.interface,
457
+ self.rendering,
493
458
  ))
494
459
 
495
460
  __hash__.__qualname__ = f"{__dataclass__cls.__qualname__}.__hash__"
@@ -498,9 +463,13 @@ def _process_dataclass__fa5665ecddac4bdf52a6a47db3b5b5362a8b3c7a():
498
463
  def __init__(
499
464
  self,
500
465
  *,
501
- backend: __dataclass__init__fields__0__annotation = __dataclass__init__fields__0__default,
466
+ driver: __dataclass__init__fields__0__annotation = __dataclass__init__fields__0__default,
467
+ interface: __dataclass__init__fields__1__annotation = __dataclass__init__fields__1__default,
468
+ rendering: __dataclass__init__fields__2__annotation = __dataclass__init__fields__2__default,
502
469
  ) -> __dataclass__None:
503
- __dataclass__object_setattr(self, 'backend', backend)
470
+ __dataclass__object_setattr(self, 'driver', driver)
471
+ __dataclass__object_setattr(self, 'interface', interface)
472
+ __dataclass__object_setattr(self, 'rendering', rendering)
504
473
 
505
474
  __init__.__qualname__ = f"{__dataclass__cls.__qualname__}.__init__"
506
475
  if '__init__' in __dataclass__cls.__dict__:
@@ -510,7 +479,9 @@ def _process_dataclass__fa5665ecddac4bdf52a6a47db3b5b5362a8b3c7a():
510
479
  @__dataclass___recursive_repr()
511
480
  def __repr__(self):
512
481
  parts = []
513
- parts.append(f"backend={self.backend!r}")
482
+ parts.append(f"driver={self.driver!r}")
483
+ parts.append(f"interface={self.interface!r}")
484
+ parts.append(f"rendering={self.rendering!r}")
514
485
  return (
515
486
  f"{self.__class__.__qualname__}("
516
487
  f"{', '.join(parts)}"
@@ -527,44 +498,35 @@ def _process_dataclass__fa5665ecddac4bdf52a6a47db3b5b5362a8b3c7a():
527
498
 
528
499
  @_register(
529
500
  plan_repr=(
530
- "Plans(tup=(CopyPlan(fields=('agent', 'interface', 'rendering')), EqPlan(fields=('agent', 'interface', 'renderi"
531
- "ng')), FrozenPlan(fields=('agent', 'interface', 'rendering'), allow_dynamic_dunder_attrs=False), HashPlan(acti"
532
- "on='add', fields=('agent', 'interface', 'rendering'), cache=False), InitPlan(fields=(InitPlan.Field(name='agen"
533
- "t', annotation=OpRef(name='init.fields.0.annotation'), default=OpRef(name='init.fields.0.default'), default_fa"
534
- "ctory=None, init=True, override=False, field_type=FieldType.INSTANCE, coerce=None, validate=None, check_type=N"
535
- "one), InitPlan.Field(name='interface', annotation=OpRef(name='init.fields.1.annotation'), default=OpRef(name='"
536
- "init.fields.1.default'), default_factory=None, init=True, override=False, field_type=FieldType.INSTANCE, coerc"
537
- "e=None, validate=None, check_type=None), InitPlan.Field(name='rendering', annotation=OpRef(name='init.fields.2"
538
- ".annotation'), default=OpRef(name='init.fields.2.default'), default_factory=None, init=True, override=False, f"
539
- "ield_type=FieldType.INSTANCE, coerce=None, validate=None, check_type=None)), self_param='self', std_params=(),"
540
- " kw_only_params=('agent', 'interface', 'rendering'), frozen=True, slots=False, post_init_params=None, init_fns"
541
- "=(), validate_fns=()), ReprPlan(fields=(ReprPlan.Field(name='agent', kw_only=True, fn=None), ReprPlan.Field(na"
542
- "me='interface', kw_only=True, fn=None), ReprPlan.Field(name='rendering', kw_only=True, fn=None)), id=False, te"
543
- "rse=False, default_fn=None)))"
501
+ "Plans(tup=(CopyPlan(fields=('content', 'backend')), EqPlan(fields=('content', 'backend')), FrozenPlan(fields=("
502
+ "'content', 'backend'), allow_dynamic_dunder_attrs=False), HashPlan(action='add', fields=('content', 'backend')"
503
+ ", cache=False), InitPlan(fields=(InitPlan.Field(name='content', annotation=OpRef(name='init.fields.0.annotatio"
504
+ "n'), default=None, default_factory=None, init=True, override=False, field_type=FieldType.INSTANCE, coerce=None"
505
+ ", validate=None, check_type=None), InitPlan.Field(name='backend', annotation=OpRef(name='init.fields.1.annotat"
506
+ "ion'), default=OpRef(name='init.fields.1.default'), default_factory=None, init=True, override=False, field_typ"
507
+ "e=FieldType.INSTANCE, coerce=None, validate=None, check_type=None)), self_param='self', std_params=('content',"
508
+ "), kw_only_params=('backend',), frozen=True, slots=False, post_init_params=None, init_fns=(), validate_fns=())"
509
+ ", ReprPlan(fields=(ReprPlan.Field(name='content', kw_only=False, fn=None), ReprPlan.Field(name='backend', kw_o"
510
+ "nly=True, fn=None)), id=False, terse=False, default_fn=None)))"
544
511
  ),
545
- plan_repr_sha1='89b17a90da2a8d6e0122504664c1081522378c1c',
512
+ plan_repr_sha1='010cef854496c65de48af9ea74be543fecd8bec1',
546
513
  op_ref_idents=(
547
514
  '__dataclass__init__fields__0__annotation',
548
- '__dataclass__init__fields__0__default',
549
515
  '__dataclass__init__fields__1__annotation',
550
516
  '__dataclass__init__fields__1__default',
551
- '__dataclass__init__fields__2__annotation',
552
- '__dataclass__init__fields__2__default',
553
517
  ),
554
518
  cls_names=(
555
- ('ommlds.cli.main', 'ChatConfig'),
519
+ ('ommlds.cli.main', 'CompletionConfig'),
520
+ ('ommlds.cli.main', 'EmbeddingConfig'),
556
521
  ),
557
522
  )
558
- def _process_dataclass__89b17a90da2a8d6e0122504664c1081522378c1c():
523
+ def _process_dataclass__010cef854496c65de48af9ea74be543fecd8bec1():
559
524
  def _process_dataclass(
560
525
  *,
561
526
  __dataclass__cls,
562
527
  __dataclass__init__fields__0__annotation,
563
- __dataclass__init__fields__0__default,
564
528
  __dataclass__init__fields__1__annotation,
565
529
  __dataclass__init__fields__1__default,
566
- __dataclass__init__fields__2__annotation,
567
- __dataclass__init__fields__2__default,
568
530
  __dataclass__FieldFnValidationError, # noqa
569
531
  __dataclass__FieldTypeValidationError, # noqa
570
532
  __dataclass__FnValidationError, # noqa
@@ -583,9 +545,8 @@ def _process_dataclass__89b17a90da2a8d6e0122504664c1081522378c1c():
583
545
  if self.__class__ is not __dataclass__cls:
584
546
  raise TypeError(self)
585
547
  return __dataclass__cls( # noqa
586
- agent=self.agent,
587
- interface=self.interface,
588
- rendering=self.rendering,
548
+ content=self.content,
549
+ backend=self.backend,
589
550
  )
590
551
 
591
552
  __copy__.__qualname__ = f"{__dataclass__cls.__qualname__}.__copy__"
@@ -599,9 +560,8 @@ def _process_dataclass__89b17a90da2a8d6e0122504664c1081522378c1c():
599
560
  if self.__class__ is not other.__class__:
600
561
  return NotImplemented
601
562
  return (
602
- self.agent == other.agent and
603
- self.interface == other.interface and
604
- self.rendering == other.rendering
563
+ self.content == other.content and
564
+ self.backend == other.backend
605
565
  )
606
566
 
607
567
  __eq__.__qualname__ = f"{__dataclass__cls.__qualname__}.__eq__"
@@ -610,9 +570,8 @@ def _process_dataclass__89b17a90da2a8d6e0122504664c1081522378c1c():
610
570
  setattr(__dataclass__cls, '__eq__', __eq__)
611
571
 
612
572
  __dataclass___setattr_frozen_fields = {
613
- 'agent',
614
- 'interface',
615
- 'rendering',
573
+ 'content',
574
+ 'backend',
616
575
  }
617
576
 
618
577
  def __setattr__(self, name, value):
@@ -629,9 +588,8 @@ def _process_dataclass__89b17a90da2a8d6e0122504664c1081522378c1c():
629
588
  setattr(__dataclass__cls, '__setattr__', __setattr__)
630
589
 
631
590
  __dataclass___delattr_frozen_fields = {
632
- 'agent',
633
- 'interface',
634
- 'rendering',
591
+ 'content',
592
+ 'backend',
635
593
  }
636
594
 
637
595
  def __delattr__(self, name):
@@ -649,9 +607,8 @@ def _process_dataclass__89b17a90da2a8d6e0122504664c1081522378c1c():
649
607
 
650
608
  def __hash__(self):
651
609
  return hash((
652
- self.agent,
653
- self.interface,
654
- self.rendering,
610
+ self.content,
611
+ self.backend,
655
612
  ))
656
613
 
657
614
  __hash__.__qualname__ = f"{__dataclass__cls.__qualname__}.__hash__"
@@ -659,14 +616,12 @@ def _process_dataclass__89b17a90da2a8d6e0122504664c1081522378c1c():
659
616
 
660
617
  def __init__(
661
618
  self,
619
+ content: __dataclass__init__fields__0__annotation,
662
620
  *,
663
- agent: __dataclass__init__fields__0__annotation = __dataclass__init__fields__0__default,
664
- interface: __dataclass__init__fields__1__annotation = __dataclass__init__fields__1__default,
665
- rendering: __dataclass__init__fields__2__annotation = __dataclass__init__fields__2__default,
621
+ backend: __dataclass__init__fields__1__annotation = __dataclass__init__fields__1__default,
666
622
  ) -> __dataclass__None:
667
- __dataclass__object_setattr(self, 'agent', agent)
668
- __dataclass__object_setattr(self, 'interface', interface)
669
- __dataclass__object_setattr(self, 'rendering', rendering)
623
+ __dataclass__object_setattr(self, 'content', content)
624
+ __dataclass__object_setattr(self, 'backend', backend)
670
625
 
671
626
  __init__.__qualname__ = f"{__dataclass__cls.__qualname__}.__init__"
672
627
  if '__init__' in __dataclass__cls.__dict__:
@@ -676,9 +631,8 @@ def _process_dataclass__89b17a90da2a8d6e0122504664c1081522378c1c():
676
631
  @__dataclass___recursive_repr()
677
632
  def __repr__(self):
678
633
  parts = []
679
- parts.append(f"agent={self.agent!r}")
680
- parts.append(f"interface={self.interface!r}")
681
- parts.append(f"rendering={self.rendering!r}")
634
+ parts.append(f"content={self.content!r}")
635
+ parts.append(f"backend={self.backend!r}")
682
636
  return (
683
637
  f"{self.__class__.__qualname__}("
684
638
  f"{', '.join(parts)}"
@@ -695,35 +649,57 @@ def _process_dataclass__89b17a90da2a8d6e0122504664c1081522378c1c():
695
649
 
696
650
  @_register(
697
651
  plan_repr=(
698
- "Plans(tup=(CopyPlan(fields=('content', 'backend')), EqPlan(fields=('content', 'backend')), FrozenPlan(fields=("
699
- "'content', 'backend'), allow_dynamic_dunder_attrs=False), HashPlan(action='add', fields=('content', 'backend')"
700
- ", cache=False), InitPlan(fields=(InitPlan.Field(name='content', annotation=OpRef(name='init.fields.0.annotatio"
701
- "n'), default=None, default_factory=None, init=True, override=False, field_type=FieldType.INSTANCE, coerce=None"
652
+ "Plans(tup=(CopyPlan(fields=('ai', 'backend', 'state', 'tools', 'user')), EqPlan(fields=('ai', 'backend', 'stat"
653
+ "e', 'tools', 'user')), FrozenPlan(fields=('ai', 'backend', 'state', 'tools', 'user'), allow_dynamic_dunder_att"
654
+ "rs=False), HashPlan(action='add', fields=('ai', 'backend', 'state', 'tools', 'user'), cache=False), InitPlan(f"
655
+ "ields=(InitPlan.Field(name='ai', annotation=OpRef(name='init.fields.0.annotation'), default=OpRef(name='init.f"
656
+ "ields.0.default'), default_factory=None, init=True, override=False, field_type=FieldType.INSTANCE, coerce=None"
702
657
  ", validate=None, check_type=None), InitPlan.Field(name='backend', annotation=OpRef(name='init.fields.1.annotat"
703
658
  "ion'), default=OpRef(name='init.fields.1.default'), default_factory=None, init=True, override=False, field_typ"
704
- "e=FieldType.INSTANCE, coerce=None, validate=None, check_type=None)), self_param='self', std_params=('content',"
705
- "), kw_only_params=('backend',), frozen=True, slots=False, post_init_params=None, init_fns=(), validate_fns=())"
706
- ", ReprPlan(fields=(ReprPlan.Field(name='content', kw_only=False, fn=None), ReprPlan.Field(name='backend', kw_o"
707
- "nly=True, fn=None)), id=False, terse=False, default_fn=None)))"
659
+ "e=FieldType.INSTANCE, coerce=None, validate=None, check_type=None), InitPlan.Field(name='state', annotation=Op"
660
+ "Ref(name='init.fields.2.annotation'), default=OpRef(name='init.fields.2.default'), default_factory=None, init="
661
+ "True, override=False, field_type=FieldType.INSTANCE, coerce=None, validate=None, check_type=None), InitPlan.Fi"
662
+ "eld(name='tools', annotation=OpRef(name='init.fields.3.annotation'), default=OpRef(name='init.fields.3.default"
663
+ "'), default_factory=None, init=True, override=False, field_type=FieldType.INSTANCE, coerce=None, validate=None"
664
+ ", check_type=None), InitPlan.Field(name='user', annotation=OpRef(name='init.fields.4.annotation'), default=OpR"
665
+ "ef(name='init.fields.4.default'), default_factory=None, init=True, override=False, field_type=FieldType.INSTAN"
666
+ "CE, coerce=None, validate=None, check_type=None)), self_param='self', std_params=(), kw_only_params=('ai', 'ba"
667
+ "ckend', 'state', 'tools', 'user'), frozen=True, slots=False, post_init_params=None, init_fns=(), validate_fns="
668
+ "()), ReprPlan(fields=(ReprPlan.Field(name='ai', kw_only=True, fn=None), ReprPlan.Field(name='backend', kw_only"
669
+ "=True, fn=None), ReprPlan.Field(name='state', kw_only=True, fn=None), ReprPlan.Field(name='tools', kw_only=Tru"
670
+ "e, fn=None), ReprPlan.Field(name='user', kw_only=True, fn=None)), id=False, terse=False, default_fn=None)))"
708
671
  ),
709
- plan_repr_sha1='010cef854496c65de48af9ea74be543fecd8bec1',
672
+ plan_repr_sha1='ccc522b0563e76033e8f2d3b6864b8a7c48c0fb7',
710
673
  op_ref_idents=(
711
674
  '__dataclass__init__fields__0__annotation',
675
+ '__dataclass__init__fields__0__default',
712
676
  '__dataclass__init__fields__1__annotation',
713
677
  '__dataclass__init__fields__1__default',
678
+ '__dataclass__init__fields__2__annotation',
679
+ '__dataclass__init__fields__2__default',
680
+ '__dataclass__init__fields__3__annotation',
681
+ '__dataclass__init__fields__3__default',
682
+ '__dataclass__init__fields__4__annotation',
683
+ '__dataclass__init__fields__4__default',
714
684
  ),
715
685
  cls_names=(
716
- ('ommlds.cli.main', 'CompletionConfig'),
717
- ('ommlds.cli.main', 'EmbeddingConfig'),
686
+ ('ommlds.cli.main', 'DriverConfig'),
718
687
  ),
719
688
  )
720
- def _process_dataclass__010cef854496c65de48af9ea74be543fecd8bec1():
689
+ def _process_dataclass__ccc522b0563e76033e8f2d3b6864b8a7c48c0fb7():
721
690
  def _process_dataclass(
722
691
  *,
723
692
  __dataclass__cls,
724
693
  __dataclass__init__fields__0__annotation,
694
+ __dataclass__init__fields__0__default,
725
695
  __dataclass__init__fields__1__annotation,
726
696
  __dataclass__init__fields__1__default,
697
+ __dataclass__init__fields__2__annotation,
698
+ __dataclass__init__fields__2__default,
699
+ __dataclass__init__fields__3__annotation,
700
+ __dataclass__init__fields__3__default,
701
+ __dataclass__init__fields__4__annotation,
702
+ __dataclass__init__fields__4__default,
727
703
  __dataclass__FieldFnValidationError, # noqa
728
704
  __dataclass__FieldTypeValidationError, # noqa
729
705
  __dataclass__FnValidationError, # noqa
@@ -742,8 +718,11 @@ def _process_dataclass__010cef854496c65de48af9ea74be543fecd8bec1():
742
718
  if self.__class__ is not __dataclass__cls:
743
719
  raise TypeError(self)
744
720
  return __dataclass__cls( # noqa
745
- content=self.content,
721
+ ai=self.ai,
746
722
  backend=self.backend,
723
+ state=self.state,
724
+ tools=self.tools,
725
+ user=self.user,
747
726
  )
748
727
 
749
728
  __copy__.__qualname__ = f"{__dataclass__cls.__qualname__}.__copy__"
@@ -757,8 +736,11 @@ def _process_dataclass__010cef854496c65de48af9ea74be543fecd8bec1():
757
736
  if self.__class__ is not other.__class__:
758
737
  return NotImplemented
759
738
  return (
760
- self.content == other.content and
761
- self.backend == other.backend
739
+ self.ai == other.ai and
740
+ self.backend == other.backend and
741
+ self.state == other.state and
742
+ self.tools == other.tools and
743
+ self.user == other.user
762
744
  )
763
745
 
764
746
  __eq__.__qualname__ = f"{__dataclass__cls.__qualname__}.__eq__"
@@ -767,8 +749,11 @@ def _process_dataclass__010cef854496c65de48af9ea74be543fecd8bec1():
767
749
  setattr(__dataclass__cls, '__eq__', __eq__)
768
750
 
769
751
  __dataclass___setattr_frozen_fields = {
770
- 'content',
752
+ 'ai',
771
753
  'backend',
754
+ 'state',
755
+ 'tools',
756
+ 'user',
772
757
  }
773
758
 
774
759
  def __setattr__(self, name, value):
@@ -785,8 +770,11 @@ def _process_dataclass__010cef854496c65de48af9ea74be543fecd8bec1():
785
770
  setattr(__dataclass__cls, '__setattr__', __setattr__)
786
771
 
787
772
  __dataclass___delattr_frozen_fields = {
788
- 'content',
773
+ 'ai',
789
774
  'backend',
775
+ 'state',
776
+ 'tools',
777
+ 'user',
790
778
  }
791
779
 
792
780
  def __delattr__(self, name):
@@ -804,8 +792,11 @@ def _process_dataclass__010cef854496c65de48af9ea74be543fecd8bec1():
804
792
 
805
793
  def __hash__(self):
806
794
  return hash((
807
- self.content,
795
+ self.ai,
808
796
  self.backend,
797
+ self.state,
798
+ self.tools,
799
+ self.user,
809
800
  ))
810
801
 
811
802
  __hash__.__qualname__ = f"{__dataclass__cls.__qualname__}.__hash__"
@@ -813,12 +804,18 @@ def _process_dataclass__010cef854496c65de48af9ea74be543fecd8bec1():
813
804
 
814
805
  def __init__(
815
806
  self,
816
- content: __dataclass__init__fields__0__annotation,
817
807
  *,
808
+ ai: __dataclass__init__fields__0__annotation = __dataclass__init__fields__0__default,
818
809
  backend: __dataclass__init__fields__1__annotation = __dataclass__init__fields__1__default,
810
+ state: __dataclass__init__fields__2__annotation = __dataclass__init__fields__2__default,
811
+ tools: __dataclass__init__fields__3__annotation = __dataclass__init__fields__3__default,
812
+ user: __dataclass__init__fields__4__annotation = __dataclass__init__fields__4__default,
819
813
  ) -> __dataclass__None:
820
- __dataclass__object_setattr(self, 'content', content)
814
+ __dataclass__object_setattr(self, 'ai', ai)
821
815
  __dataclass__object_setattr(self, 'backend', backend)
816
+ __dataclass__object_setattr(self, 'state', state)
817
+ __dataclass__object_setattr(self, 'tools', tools)
818
+ __dataclass__object_setattr(self, 'user', user)
822
819
 
823
820
  __init__.__qualname__ = f"{__dataclass__cls.__qualname__}.__init__"
824
821
  if '__init__' in __dataclass__cls.__dict__:
@@ -828,8 +825,11 @@ def _process_dataclass__010cef854496c65de48af9ea74be543fecd8bec1():
828
825
  @__dataclass___recursive_repr()
829
826
  def __repr__(self):
830
827
  parts = []
831
- parts.append(f"content={self.content!r}")
828
+ parts.append(f"ai={self.ai!r}")
832
829
  parts.append(f"backend={self.backend!r}")
830
+ parts.append(f"state={self.state!r}")
831
+ parts.append(f"tools={self.tools!r}")
832
+ parts.append(f"user={self.user!r}")
833
833
  return (
834
834
  f"{self.__class__.__qualname__}("
835
835
  f"{', '.join(parts)}"
@@ -846,22 +846,31 @@ def _process_dataclass__010cef854496c65de48af9ea74be543fecd8bec1():
846
846
 
847
847
  @_register(
848
848
  plan_repr=(
849
- "Plans(tup=(CopyPlan(fields=('interactive', 'use_textual', 'use_readline')), EqPlan(fields=('interactive', 'use"
850
- "_textual', 'use_readline')), FrozenPlan(fields=('interactive', 'use_textual', 'use_readline'), allow_dynamic_d"
851
- "under_attrs=False), HashPlan(action='add', fields=('interactive', 'use_textual', 'use_readline'), cache=False)"
852
- ", InitPlan(fields=(InitPlan.Field(name='interactive', annotation=OpRef(name='init.fields.0.annotation'), defau"
853
- "lt=OpRef(name='init.fields.0.default'), default_factory=None, init=True, override=False, field_type=FieldType."
854
- "INSTANCE, coerce=None, validate=None, check_type=None), InitPlan.Field(name='use_textual', annotation=OpRef(na"
855
- "me='init.fields.1.annotation'), default=OpRef(name='init.fields.1.default'), default_factory=None, init=True, "
856
- "override=False, field_type=FieldType.INSTANCE, coerce=None, validate=None, check_type=None), InitPlan.Field(na"
857
- "me='use_readline', annotation=OpRef(name='init.fields.2.annotation'), default=OpRef(name='init.fields.2.defaul"
858
- "t'), default_factory=None, init=True, override=False, field_type=FieldType.INSTANCE, coerce=None, validate=Non"
859
- "e, check_type=None)), self_param='self', std_params=(), kw_only_params=('interactive', 'use_textual', 'use_rea"
860
- "dline'), frozen=True, slots=False, post_init_params=None, init_fns=(), validate_fns=()), ReprPlan(fields=(Repr"
861
- "Plan.Field(name='interactive', kw_only=True, fn=None), ReprPlan.Field(name='use_textual', kw_only=True, fn=Non"
862
- "e), ReprPlan.Field(name='use_readline', kw_only=True, fn=None)), id=False, terse=False, default_fn=None)))"
849
+ "Plans(tup=(CopyPlan(fields=('interactive', 'use_textual', 'use_readline', 'enable_tools', 'dangerous_no_tool_c"
850
+ "onfirmation')), EqPlan(fields=('interactive', 'use_textual', 'use_readline', 'enable_tools', 'dangerous_no_too"
851
+ "l_confirmation')), FrozenPlan(fields=('interactive', 'use_textual', 'use_readline', 'enable_tools', 'dangerous"
852
+ "_no_tool_confirmation'), allow_dynamic_dunder_attrs=False), HashPlan(action='add', fields=('interactive', 'use"
853
+ "_textual', 'use_readline', 'enable_tools', 'dangerous_no_tool_confirmation'), cache=False), InitPlan(fields=(I"
854
+ "nitPlan.Field(name='interactive', annotation=OpRef(name='init.fields.0.annotation'), default=OpRef(name='init."
855
+ "fields.0.default'), default_factory=None, init=True, override=False, field_type=FieldType.INSTANCE, coerce=Non"
856
+ "e, validate=None, check_type=None), InitPlan.Field(name='use_textual', annotation=OpRef(name='init.fields.1.an"
857
+ "notation'), default=OpRef(name='init.fields.1.default'), default_factory=None, init=True, override=False, fiel"
858
+ "d_type=FieldType.INSTANCE, coerce=None, validate=None, check_type=None), InitPlan.Field(name='use_readline', a"
859
+ "nnotation=OpRef(name='init.fields.2.annotation'), default=OpRef(name='init.fields.2.default'), default_factory"
860
+ "=None, init=True, override=False, field_type=FieldType.INSTANCE, coerce=None, validate=None, check_type=None),"
861
+ " InitPlan.Field(name='enable_tools', annotation=OpRef(name='init.fields.3.annotation'), default=OpRef(name='in"
862
+ "it.fields.3.default'), default_factory=None, init=True, override=False, field_type=FieldType.INSTANCE, coerce="
863
+ "None, validate=None, check_type=None), InitPlan.Field(name='dangerous_no_tool_confirmation', annotation=OpRef("
864
+ "name='init.fields.4.annotation'), default=OpRef(name='init.fields.4.default'), default_factory=None, init=True"
865
+ ", override=False, field_type=FieldType.INSTANCE, coerce=None, validate=None, check_type=None)), self_param='se"
866
+ "lf', std_params=(), kw_only_params=('interactive', 'use_textual', 'use_readline', 'enable_tools', 'dangerous_n"
867
+ "o_tool_confirmation'), frozen=True, slots=False, post_init_params=None, init_fns=(), validate_fns=()), ReprPla"
868
+ "n(fields=(ReprPlan.Field(name='interactive', kw_only=True, fn=None), ReprPlan.Field(name='use_textual', kw_onl"
869
+ "y=True, fn=None), ReprPlan.Field(name='use_readline', kw_only=True, fn=None), ReprPlan.Field(name='enable_tool"
870
+ "s', kw_only=True, fn=None), ReprPlan.Field(name='dangerous_no_tool_confirmation', kw_only=True, fn=None)), id="
871
+ "False, terse=False, default_fn=None)))"
863
872
  ),
864
- plan_repr_sha1='0c29bdcf28d77e398675068cd30b99ca2f7f6c9e',
873
+ plan_repr_sha1='2ac54f7b23a3729b83684d53c78e05f4c2d354f2',
865
874
  op_ref_idents=(
866
875
  '__dataclass__init__fields__0__annotation',
867
876
  '__dataclass__init__fields__0__default',
@@ -869,12 +878,16 @@ def _process_dataclass__010cef854496c65de48af9ea74be543fecd8bec1():
869
878
  '__dataclass__init__fields__1__default',
870
879
  '__dataclass__init__fields__2__annotation',
871
880
  '__dataclass__init__fields__2__default',
881
+ '__dataclass__init__fields__3__annotation',
882
+ '__dataclass__init__fields__3__default',
883
+ '__dataclass__init__fields__4__annotation',
884
+ '__dataclass__init__fields__4__default',
872
885
  ),
873
886
  cls_names=(
874
887
  ('ommlds.cli.main', 'InterfaceConfig'),
875
888
  ),
876
889
  )
877
- def _process_dataclass__0c29bdcf28d77e398675068cd30b99ca2f7f6c9e():
890
+ def _process_dataclass__2ac54f7b23a3729b83684d53c78e05f4c2d354f2():
878
891
  def _process_dataclass(
879
892
  *,
880
893
  __dataclass__cls,
@@ -884,6 +897,10 @@ def _process_dataclass__0c29bdcf28d77e398675068cd30b99ca2f7f6c9e():
884
897
  __dataclass__init__fields__1__default,
885
898
  __dataclass__init__fields__2__annotation,
886
899
  __dataclass__init__fields__2__default,
900
+ __dataclass__init__fields__3__annotation,
901
+ __dataclass__init__fields__3__default,
902
+ __dataclass__init__fields__4__annotation,
903
+ __dataclass__init__fields__4__default,
887
904
  __dataclass__FieldFnValidationError, # noqa
888
905
  __dataclass__FieldTypeValidationError, # noqa
889
906
  __dataclass__FnValidationError, # noqa
@@ -905,6 +922,8 @@ def _process_dataclass__0c29bdcf28d77e398675068cd30b99ca2f7f6c9e():
905
922
  interactive=self.interactive,
906
923
  use_textual=self.use_textual,
907
924
  use_readline=self.use_readline,
925
+ enable_tools=self.enable_tools,
926
+ dangerous_no_tool_confirmation=self.dangerous_no_tool_confirmation,
908
927
  )
909
928
 
910
929
  __copy__.__qualname__ = f"{__dataclass__cls.__qualname__}.__copy__"
@@ -920,7 +939,9 @@ def _process_dataclass__0c29bdcf28d77e398675068cd30b99ca2f7f6c9e():
920
939
  return (
921
940
  self.interactive == other.interactive and
922
941
  self.use_textual == other.use_textual and
923
- self.use_readline == other.use_readline
942
+ self.use_readline == other.use_readline and
943
+ self.enable_tools == other.enable_tools and
944
+ self.dangerous_no_tool_confirmation == other.dangerous_no_tool_confirmation
924
945
  )
925
946
 
926
947
  __eq__.__qualname__ = f"{__dataclass__cls.__qualname__}.__eq__"
@@ -932,6 +953,8 @@ def _process_dataclass__0c29bdcf28d77e398675068cd30b99ca2f7f6c9e():
932
953
  'interactive',
933
954
  'use_textual',
934
955
  'use_readline',
956
+ 'enable_tools',
957
+ 'dangerous_no_tool_confirmation',
935
958
  }
936
959
 
937
960
  def __setattr__(self, name, value):
@@ -951,6 +974,8 @@ def _process_dataclass__0c29bdcf28d77e398675068cd30b99ca2f7f6c9e():
951
974
  'interactive',
952
975
  'use_textual',
953
976
  'use_readline',
977
+ 'enable_tools',
978
+ 'dangerous_no_tool_confirmation',
954
979
  }
955
980
 
956
981
  def __delattr__(self, name):
@@ -971,6 +996,8 @@ def _process_dataclass__0c29bdcf28d77e398675068cd30b99ca2f7f6c9e():
971
996
  self.interactive,
972
997
  self.use_textual,
973
998
  self.use_readline,
999
+ self.enable_tools,
1000
+ self.dangerous_no_tool_confirmation,
974
1001
  ))
975
1002
 
976
1003
  __hash__.__qualname__ = f"{__dataclass__cls.__qualname__}.__hash__"
@@ -982,10 +1009,14 @@ def _process_dataclass__0c29bdcf28d77e398675068cd30b99ca2f7f6c9e():
982
1009
  interactive: __dataclass__init__fields__0__annotation = __dataclass__init__fields__0__default,
983
1010
  use_textual: __dataclass__init__fields__1__annotation = __dataclass__init__fields__1__default,
984
1011
  use_readline: __dataclass__init__fields__2__annotation = __dataclass__init__fields__2__default,
1012
+ enable_tools: __dataclass__init__fields__3__annotation = __dataclass__init__fields__3__default,
1013
+ dangerous_no_tool_confirmation: __dataclass__init__fields__4__annotation = __dataclass__init__fields__4__default,
985
1014
  ) -> __dataclass__None:
986
1015
  __dataclass__object_setattr(self, 'interactive', interactive)
987
1016
  __dataclass__object_setattr(self, 'use_textual', use_textual)
988
1017
  __dataclass__object_setattr(self, 'use_readline', use_readline)
1018
+ __dataclass__object_setattr(self, 'enable_tools', enable_tools)
1019
+ __dataclass__object_setattr(self, 'dangerous_no_tool_confirmation', dangerous_no_tool_confirmation)
989
1020
 
990
1021
  __init__.__qualname__ = f"{__dataclass__cls.__qualname__}.__init__"
991
1022
  if '__init__' in __dataclass__cls.__dict__:
@@ -998,6 +1029,8 @@ def _process_dataclass__0c29bdcf28d77e398675068cd30b99ca2f7f6c9e():
998
1029
  parts.append(f"interactive={self.interactive!r}")
999
1030
  parts.append(f"use_textual={self.use_textual!r}")
1000
1031
  parts.append(f"use_readline={self.use_readline!r}")
1032
+ parts.append(f"enable_tools={self.enable_tools!r}")
1033
+ parts.append(f"dangerous_no_tool_confirmation={self.dangerous_no_tool_confirmation!r}")
1001
1034
  return (
1002
1035
  f"{self.__class__.__qualname__}("
1003
1036
  f"{', '.join(parts)}"
@@ -1419,9 +1452,9 @@ def _process_dataclass__ecd4e8fdaa04b3fa64e0c01eea919a83fc862e6a():
1419
1452
  op_ref_idents=(),
1420
1453
  cls_names=(
1421
1454
  ('ommlds.cli.main', 'ToolSetConfig'),
1422
- ('ommlds.cli.sessions.chat.agents.tools.fs.configs', 'FsToolSetConfig'),
1423
- ('ommlds.cli.sessions.chat.agents.tools.todo.configs', 'TodoToolSetConfig'),
1424
- ('ommlds.cli.sessions.chat.agents.tools.weather.configs', 'WeatherToolSetConfig'),
1455
+ ('ommlds.cli.sessions.chat.drivers.tools.fs.configs', 'FsToolSetConfig'),
1456
+ ('ommlds.cli.sessions.chat.drivers.tools.todo.configs', 'TodoToolSetConfig'),
1457
+ ('ommlds.cli.sessions.chat.drivers.tools.weather.configs', 'WeatherToolSetConfig'),
1425
1458
  ),
1426
1459
  )
1427
1460
  def _process_dataclass__e1f7edfe11f2b721d6a656c46e698fedc95461bb():
@@ -1523,36 +1556,30 @@ def _process_dataclass__e1f7edfe11f2b721d6a656c46e698fedc95461bb():
1523
1556
 
1524
1557
  @_register(
1525
1558
  plan_repr=(
1526
- "Plans(tup=(CopyPlan(fields=('dangerous_no_confirmation', 'enabled_tools', 'verbose')), EqPlan(fields=('dangero"
1527
- "us_no_confirmation', 'enabled_tools', 'verbose')), FrozenPlan(fields=('dangerous_no_confirmation', 'enabled_to"
1528
- "ols', 'verbose'), allow_dynamic_dunder_attrs=False), HashPlan(action='add', fields=('dangerous_no_confirmation"
1529
- "', 'enabled_tools', 'verbose'), cache=False), InitPlan(fields=(InitPlan.Field(name='dangerous_no_confirmation'"
1530
- ", annotation=OpRef(name='init.fields.0.annotation'), default=OpRef(name='init.fields.0.default'), default_fact"
1531
- "ory=None, init=True, override=False, field_type=FieldType.INSTANCE, coerce=None, validate=None, check_type=Non"
1532
- "e), InitPlan.Field(name='enabled_tools', annotation=OpRef(name='init.fields.1.annotation'), default=OpRef(name"
1533
- "='init.fields.1.default'), default_factory=None, init=True, override=False, field_type=FieldType.INSTANCE, coe"
1534
- "rce=None, validate=None, check_type=None), InitPlan.Field(name='verbose', annotation=OpRef(name='init.fields.2"
1535
- ".annotation'), default=OpRef(name='init.fields.2.default'), default_factory=None, init=True, override=False, f"
1536
- "ield_type=FieldType.INSTANCE, coerce=None, validate=None, check_type=None)), self_param='self', std_params=(),"
1537
- " kw_only_params=('dangerous_no_confirmation', 'enabled_tools', 'verbose'), frozen=True, slots=False, post_init"
1538
- "_params=None, init_fns=(), validate_fns=()), ReprPlan(fields=(ReprPlan.Field(name='dangerous_no_confirmation',"
1539
- " kw_only=True, fn=None), ReprPlan.Field(name='enabled_tools', kw_only=True, fn=None), ReprPlan.Field(name='ver"
1540
- "bose', kw_only=True, fn=None)), id=False, terse=False, default_fn=None)))"
1559
+ "Plans(tup=(CopyPlan(fields=('enabled_tools', 'verbose')), EqPlan(fields=('enabled_tools', 'verbose')), FrozenP"
1560
+ "lan(fields=('enabled_tools', 'verbose'), allow_dynamic_dunder_attrs=False), HashPlan(action='add', fields=('en"
1561
+ "abled_tools', 'verbose'), cache=False), InitPlan(fields=(InitPlan.Field(name='enabled_tools', annotation=OpRef"
1562
+ "(name='init.fields.0.annotation'), default=OpRef(name='init.fields.0.default'), default_factory=None, init=Tru"
1563
+ "e, override=False, field_type=FieldType.INSTANCE, coerce=None, validate=None, check_type=None), InitPlan.Field"
1564
+ "(name='verbose', annotation=OpRef(name='init.fields.1.annotation'), default=OpRef(name='init.fields.1.default'"
1565
+ "), default_factory=None, init=True, override=False, field_type=FieldType.INSTANCE, coerce=None, validate=None,"
1566
+ " check_type=None)), self_param='self', std_params=(), kw_only_params=('enabled_tools', 'verbose'), frozen=True"
1567
+ ", slots=False, post_init_params=None, init_fns=(), validate_fns=()), ReprPlan(fields=(ReprPlan.Field(name='ena"
1568
+ "bled_tools', kw_only=True, fn=None), ReprPlan.Field(name='verbose', kw_only=True, fn=None)), id=False, terse=F"
1569
+ "alse, default_fn=None)))"
1541
1570
  ),
1542
- plan_repr_sha1='94fc5ada3f0f98f677c48389927571e7b6e56249',
1571
+ plan_repr_sha1='aa22ff44ed3bf3e31aaa2841f61d3f7175c85c42',
1543
1572
  op_ref_idents=(
1544
1573
  '__dataclass__init__fields__0__annotation',
1545
1574
  '__dataclass__init__fields__0__default',
1546
1575
  '__dataclass__init__fields__1__annotation',
1547
1576
  '__dataclass__init__fields__1__default',
1548
- '__dataclass__init__fields__2__annotation',
1549
- '__dataclass__init__fields__2__default',
1550
1577
  ),
1551
1578
  cls_names=(
1552
1579
  ('ommlds.cli.main', 'ToolsConfig'),
1553
1580
  ),
1554
1581
  )
1555
- def _process_dataclass__94fc5ada3f0f98f677c48389927571e7b6e56249():
1582
+ def _process_dataclass__aa22ff44ed3bf3e31aaa2841f61d3f7175c85c42():
1556
1583
  def _process_dataclass(
1557
1584
  *,
1558
1585
  __dataclass__cls,
@@ -1560,8 +1587,6 @@ def _process_dataclass__94fc5ada3f0f98f677c48389927571e7b6e56249():
1560
1587
  __dataclass__init__fields__0__default,
1561
1588
  __dataclass__init__fields__1__annotation,
1562
1589
  __dataclass__init__fields__1__default,
1563
- __dataclass__init__fields__2__annotation,
1564
- __dataclass__init__fields__2__default,
1565
1590
  __dataclass__FieldFnValidationError, # noqa
1566
1591
  __dataclass__FieldTypeValidationError, # noqa
1567
1592
  __dataclass__FnValidationError, # noqa
@@ -1580,7 +1605,6 @@ def _process_dataclass__94fc5ada3f0f98f677c48389927571e7b6e56249():
1580
1605
  if self.__class__ is not __dataclass__cls:
1581
1606
  raise TypeError(self)
1582
1607
  return __dataclass__cls( # noqa
1583
- dangerous_no_confirmation=self.dangerous_no_confirmation,
1584
1608
  enabled_tools=self.enabled_tools,
1585
1609
  verbose=self.verbose,
1586
1610
  )
@@ -1596,7 +1620,6 @@ def _process_dataclass__94fc5ada3f0f98f677c48389927571e7b6e56249():
1596
1620
  if self.__class__ is not other.__class__:
1597
1621
  return NotImplemented
1598
1622
  return (
1599
- self.dangerous_no_confirmation == other.dangerous_no_confirmation and
1600
1623
  self.enabled_tools == other.enabled_tools and
1601
1624
  self.verbose == other.verbose
1602
1625
  )
@@ -1607,7 +1630,6 @@ def _process_dataclass__94fc5ada3f0f98f677c48389927571e7b6e56249():
1607
1630
  setattr(__dataclass__cls, '__eq__', __eq__)
1608
1631
 
1609
1632
  __dataclass___setattr_frozen_fields = {
1610
- 'dangerous_no_confirmation',
1611
1633
  'enabled_tools',
1612
1634
  'verbose',
1613
1635
  }
@@ -1626,7 +1648,6 @@ def _process_dataclass__94fc5ada3f0f98f677c48389927571e7b6e56249():
1626
1648
  setattr(__dataclass__cls, '__setattr__', __setattr__)
1627
1649
 
1628
1650
  __dataclass___delattr_frozen_fields = {
1629
- 'dangerous_no_confirmation',
1630
1651
  'enabled_tools',
1631
1652
  'verbose',
1632
1653
  }
@@ -1646,7 +1667,6 @@ def _process_dataclass__94fc5ada3f0f98f677c48389927571e7b6e56249():
1646
1667
 
1647
1668
  def __hash__(self):
1648
1669
  return hash((
1649
- self.dangerous_no_confirmation,
1650
1670
  self.enabled_tools,
1651
1671
  self.verbose,
1652
1672
  ))
@@ -1657,11 +1677,9 @@ def _process_dataclass__94fc5ada3f0f98f677c48389927571e7b6e56249():
1657
1677
  def __init__(
1658
1678
  self,
1659
1679
  *,
1660
- dangerous_no_confirmation: __dataclass__init__fields__0__annotation = __dataclass__init__fields__0__default,
1661
- enabled_tools: __dataclass__init__fields__1__annotation = __dataclass__init__fields__1__default,
1662
- verbose: __dataclass__init__fields__2__annotation = __dataclass__init__fields__2__default,
1680
+ enabled_tools: __dataclass__init__fields__0__annotation = __dataclass__init__fields__0__default,
1681
+ verbose: __dataclass__init__fields__1__annotation = __dataclass__init__fields__1__default,
1663
1682
  ) -> __dataclass__None:
1664
- __dataclass__object_setattr(self, 'dangerous_no_confirmation', dangerous_no_confirmation)
1665
1683
  __dataclass__object_setattr(self, 'enabled_tools', enabled_tools)
1666
1684
  __dataclass__object_setattr(self, 'verbose', verbose)
1667
1685
 
@@ -1673,7 +1691,6 @@ def _process_dataclass__94fc5ada3f0f98f677c48389927571e7b6e56249():
1673
1691
  @__dataclass___recursive_repr()
1674
1692
  def __repr__(self):
1675
1693
  parts = []
1676
- parts.append(f"dangerous_no_confirmation={self.dangerous_no_confirmation!r}")
1677
1694
  parts.append(f"enabled_tools={self.enabled_tools!r}")
1678
1695
  parts.append(f"verbose={self.verbose!r}")
1679
1696
  return (
@@ -1859,7 +1876,7 @@ def _process_dataclass__55eb2b38eb7d4e32f3a9306577040632e1c376fb():
1859
1876
  '__dataclass__init__fields__0__annotation',
1860
1877
  ),
1861
1878
  cls_names=(
1862
- ('ommlds.cli.sessions.chat.agents.agent', 'AiDeltaChatEvent'),
1879
+ ('ommlds.cli.sessions.chat.drivers.driver', 'AiDeltaChatEvent'),
1863
1880
  ),
1864
1881
  )
1865
1882
  def _process_dataclass__aff24d9a92d53ba94dacb7fb303b9eb4ebd0763f():
@@ -1993,8 +2010,8 @@ def _process_dataclass__aff24d9a92d53ba94dacb7fb303b9eb4ebd0763f():
1993
2010
  '__dataclass__init__fields__0__annotation',
1994
2011
  ),
1995
2012
  cls_names=(
1996
- ('ommlds.cli.sessions.chat.agents.agent', 'AiMessagesChatEvent'),
1997
- ('ommlds.cli.sessions.chat.agents.agent', 'UserMessagesChatEvent'),
2013
+ ('ommlds.cli.sessions.chat.drivers.driver', 'AiMessagesChatEvent'),
2014
+ ('ommlds.cli.sessions.chat.drivers.driver', 'UserMessagesChatEvent'),
1998
2015
  ),
1999
2016
  )
2000
2017
  def _process_dataclass__b211fde543b7c2c533cdcf9f21b47d2f7f76e5c9():
@@ -2133,7 +2150,7 @@ def _process_dataclass__b211fde543b7c2c533cdcf9f21b47d2f7f76e5c9():
2133
2150
  '__dataclass__init__fields__1__annotation',
2134
2151
  ),
2135
2152
  cls_names=(
2136
- ('ommlds.cli.sessions.chat.agents.agent', 'ChatPhaseCallback'),
2153
+ ('ommlds.cli.sessions.chat.drivers.driver', 'ChatPhaseCallback'),
2137
2154
  ),
2138
2155
  )
2139
2156
  def _process_dataclass__927265170439340895560333250bc087fa726eff():
@@ -2301,7 +2318,7 @@ def _process_dataclass__927265170439340895560333250bc087fa726eff():
2301
2318
  '__dataclass__init__fields__3__default',
2302
2319
  ),
2303
2320
  cls_names=(
2304
- ('ommlds.cli.sessions.chat.agents.agent', 'ChatState'),
2321
+ ('ommlds.cli.sessions.chat.drivers.driver', 'ChatState'),
2305
2322
  ),
2306
2323
  )
2307
2324
  def _process_dataclass__9f7e26a87dd163b610f38caa1ce9b3c6356e632a():
@@ -2474,7 +2491,7 @@ def _process_dataclass__9f7e26a87dd163b610f38caa1ce9b3c6356e632a():
2474
2491
  '__dataclass__init__fields__1__annotation',
2475
2492
  ),
2476
2493
  cls_names=(
2477
- ('ommlds.cli.sessions.chat.agents.state.storage', 'MarshaledState'),
2494
+ ('ommlds.cli.sessions.chat.drivers.state.storage', 'MarshaledState'),
2478
2495
  ),
2479
2496
  )
2480
2497
  def _process_dataclass__be0d400bb9a95f7b7d493de698bc2bcac269b46e():
@@ -2620,7 +2637,7 @@ def _process_dataclass__be0d400bb9a95f7b7d493de698bc2bcac269b46e():
2620
2637
  '__dataclass__init__fields__1__annotation',
2621
2638
  ),
2622
2639
  cls_names=(
2623
- ('ommlds.cli.sessions.chat.agents.tools.inject', 'ToolSetBinder'),
2640
+ ('ommlds.cli.sessions.chat.drivers.tools.inject', 'ToolSetBinder'),
2624
2641
  ),
2625
2642
  )
2626
2643
  def _process_dataclass__0f6d91dd6a878d827836d961e4683d55b1c9095a():
@@ -2750,24 +2767,157 @@ def _process_dataclass__0f6d91dd6a878d827836d961e4683d55b1c9095a():
2750
2767
 
2751
2768
  @_register(
2752
2769
  plan_repr=(
2753
- "Plans(tup=(CopyPlan(fields=('agent', 'interface', 'rendering')), EqPlan(fields=('agent', 'interface', 'renderi"
2754
- "ng')), FrozenPlan(fields=('agent', 'interface', 'rendering', 'configurable_cls'), allow_dynamic_dunder_attrs=F"
2755
- "alse), HashPlan(action='add', fields=('agent', 'interface', 'rendering'), cache=False), InitPlan(fields=(InitP"
2756
- "lan.Field(name='agent', annotation=OpRef(name='init.fields.0.annotation'), default=OpRef(name='init.fields.0.d"
2757
- "efault'), default_factory=None, init=True, override=False, field_type=FieldType.INSTANCE, coerce=None, validat"
2758
- "e=None, check_type=None), InitPlan.Field(name='interface', annotation=OpRef(name='init.fields.1.annotation'), "
2759
- "default=OpRef(name='init.fields.1.default'), default_factory=None, init=True, override=False, field_type=Field"
2760
- "Type.INSTANCE, coerce=None, validate=None, check_type=None), InitPlan.Field(name='rendering', annotation=OpRef"
2761
- "(name='init.fields.2.annotation'), default=OpRef(name='init.fields.2.default'), default_factory=None, init=Tru"
2762
- "e, override=False, field_type=FieldType.INSTANCE, coerce=None, validate=None, check_type=None), InitPlan.Field"
2763
- "(name='configurable_cls', annotation=OpRef(name='init.fields.3.annotation'), default=None, default_factory=Non"
2764
- "e, init=True, override=False, field_type=FieldType.CLASS_VAR, coerce=None, validate=None, check_type=None)), s"
2765
- "elf_param='self', std_params=(), kw_only_params=('agent', 'interface', 'rendering'), frozen=True, slots=False,"
2766
- " post_init_params=None, init_fns=(), validate_fns=()), ReprPlan(fields=(ReprPlan.Field(name='agent', kw_only=T"
2767
- "rue, fn=None), ReprPlan.Field(name='interface', kw_only=True, fn=None), ReprPlan.Field(name='rendering', kw_on"
2768
- "ly=True, fn=None)), id=False, terse=False, default_fn=None)))"
2770
+ "Plans(tup=(CopyPlan(fields=('v',)), EqPlan(fields=('v',)), FrozenPlan(fields=('v',), allow_dynamic_dunder_attr"
2771
+ "s=False), HashPlan(action='add', fields=('v',), cache=False), InitPlan(fields=(InitPlan.Field(name='v', annota"
2772
+ "tion=OpRef(name='init.fields.0.annotation'), default=None, default_factory=None, init=True, override=False, fi"
2773
+ "eld_type=FieldType.INSTANCE, coerce=None, validate=None, check_type=None),), self_param='self', std_params=('v"
2774
+ "',), kw_only_params=(), frozen=True, slots=False, post_init_params=None, init_fns=(), validate_fns=()), ReprPl"
2775
+ "an(fields=(ReprPlan.Field(name='v', kw_only=False, fn=None),), id=False, terse=True, default_fn=None)))"
2776
+ ),
2777
+ plan_repr_sha1='3576262424b3ef8ff20966fa3744e5dba9a2ae7d',
2778
+ op_ref_idents=(
2779
+ '__dataclass__init__fields__0__annotation',
2780
+ ),
2781
+ cls_names=(
2782
+ ('ommlds.cli.sessions.chat.drivers.types', 'ChatDriverId'),
2783
+ ),
2784
+ )
2785
+ def _process_dataclass__3576262424b3ef8ff20966fa3744e5dba9a2ae7d():
2786
+ def _process_dataclass(
2787
+ *,
2788
+ __dataclass__cls,
2789
+ __dataclass__init__fields__0__annotation,
2790
+ __dataclass__FieldFnValidationError, # noqa
2791
+ __dataclass__FieldTypeValidationError, # noqa
2792
+ __dataclass__FnValidationError, # noqa
2793
+ __dataclass__FrozenInstanceError=dataclasses.FrozenInstanceError, # noqa
2794
+ __dataclass__FunctionType=types.FunctionType, # noqa
2795
+ __dataclass__HAS_DEFAULT_FACTORY=dataclasses._HAS_DEFAULT_FACTORY, # noqa
2796
+ __dataclass__MISSING=dataclasses.MISSING, # noqa
2797
+ __dataclass__None=None, # noqa
2798
+ __dataclass__TypeError=TypeError, # noqa
2799
+ __dataclass___recursive_repr=reprlib.recursive_repr, # noqa
2800
+ __dataclass__isinstance=isinstance, # noqa
2801
+ __dataclass__object_setattr=object.__setattr__, # noqa
2802
+ __dataclass__property=property, # noqa
2803
+ ):
2804
+ def __copy__(self):
2805
+ if self.__class__ is not __dataclass__cls:
2806
+ raise TypeError(self)
2807
+ return __dataclass__cls( # noqa
2808
+ v=self.v,
2809
+ )
2810
+
2811
+ __copy__.__qualname__ = f"{__dataclass__cls.__qualname__}.__copy__"
2812
+ if '__copy__' in __dataclass__cls.__dict__:
2813
+ raise __dataclass__TypeError(f"Cannot overwrite attribute __copy__ in class {__dataclass__cls.__name__}")
2814
+ setattr(__dataclass__cls, '__copy__', __copy__)
2815
+
2816
+ def __eq__(self, other):
2817
+ if self is other:
2818
+ return True
2819
+ if self.__class__ is not other.__class__:
2820
+ return NotImplemented
2821
+ return (
2822
+ self.v == other.v
2823
+ )
2824
+
2825
+ __eq__.__qualname__ = f"{__dataclass__cls.__qualname__}.__eq__"
2826
+ if '__eq__' in __dataclass__cls.__dict__:
2827
+ raise __dataclass__TypeError(f"Cannot overwrite attribute __eq__ in class {__dataclass__cls.__name__}")
2828
+ setattr(__dataclass__cls, '__eq__', __eq__)
2829
+
2830
+ __dataclass___setattr_frozen_fields = {
2831
+ 'v',
2832
+ }
2833
+
2834
+ def __setattr__(self, name, value):
2835
+ if (
2836
+ type(self) is __dataclass__cls
2837
+ or name in __dataclass___setattr_frozen_fields
2838
+ ):
2839
+ raise __dataclass__FrozenInstanceError(f"cannot assign to field {name!r}")
2840
+ super(__dataclass__cls, self).__setattr__(name, value)
2841
+
2842
+ __setattr__.__qualname__ = f"{__dataclass__cls.__qualname__}.__setattr__"
2843
+ if '__setattr__' in __dataclass__cls.__dict__:
2844
+ raise __dataclass__TypeError(f"Cannot overwrite attribute __setattr__ in class {__dataclass__cls.__name__}")
2845
+ setattr(__dataclass__cls, '__setattr__', __setattr__)
2846
+
2847
+ __dataclass___delattr_frozen_fields = {
2848
+ 'v',
2849
+ }
2850
+
2851
+ def __delattr__(self, name):
2852
+ if (
2853
+ type(self) is __dataclass__cls
2854
+ or name in __dataclass___delattr_frozen_fields
2855
+ ):
2856
+ raise __dataclass__FrozenInstanceError(f"cannot delete field {name!r}")
2857
+ super(__dataclass__cls, self).__delattr__(name)
2858
+
2859
+ __delattr__.__qualname__ = f"{__dataclass__cls.__qualname__}.__delattr__"
2860
+ if '__delattr__' in __dataclass__cls.__dict__:
2861
+ raise __dataclass__TypeError(f"Cannot overwrite attribute __delattr__ in class {__dataclass__cls.__name__}")
2862
+ setattr(__dataclass__cls, '__delattr__', __delattr__)
2863
+
2864
+ def __hash__(self):
2865
+ return hash((
2866
+ self.v,
2867
+ ))
2868
+
2869
+ __hash__.__qualname__ = f"{__dataclass__cls.__qualname__}.__hash__"
2870
+ setattr(__dataclass__cls, '__hash__', __hash__)
2871
+
2872
+ def __init__(
2873
+ self,
2874
+ v: __dataclass__init__fields__0__annotation,
2875
+ ) -> __dataclass__None:
2876
+ __dataclass__object_setattr(self, 'v', v)
2877
+
2878
+ __init__.__qualname__ = f"{__dataclass__cls.__qualname__}.__init__"
2879
+ if '__init__' in __dataclass__cls.__dict__:
2880
+ raise __dataclass__TypeError(f"Cannot overwrite attribute __init__ in class {__dataclass__cls.__name__}")
2881
+ setattr(__dataclass__cls, '__init__', __init__)
2882
+
2883
+ @__dataclass___recursive_repr()
2884
+ def __repr__(self):
2885
+ parts = []
2886
+ parts.append(f"{self.v!r}")
2887
+ return (
2888
+ f"{self.__class__.__qualname__}("
2889
+ f"{', '.join(parts)}"
2890
+ f")"
2891
+ )
2892
+
2893
+ __repr__.__qualname__ = f"{__dataclass__cls.__qualname__}.__repr__"
2894
+ if '__repr__' in __dataclass__cls.__dict__:
2895
+ raise __dataclass__TypeError(f"Cannot overwrite attribute __repr__ in class {__dataclass__cls.__name__}")
2896
+ setattr(__dataclass__cls, '__repr__', __repr__)
2897
+
2898
+ return _process_dataclass
2899
+
2900
+
2901
+ @_register(
2902
+ plan_repr=(
2903
+ "Plans(tup=(CopyPlan(fields=('driver', 'interface', 'rendering')), EqPlan(fields=('driver', 'interface', 'rende"
2904
+ "ring')), FrozenPlan(fields=('driver', 'interface', 'rendering', 'configurable_cls'), allow_dynamic_dunder_attr"
2905
+ "s=False), HashPlan(action='add', fields=('driver', 'interface', 'rendering'), cache=False), InitPlan(fields=(I"
2906
+ "nitPlan.Field(name='driver', annotation=OpRef(name='init.fields.0.annotation'), default=OpRef(name='init.field"
2907
+ "s.0.default'), default_factory=None, init=True, override=False, field_type=FieldType.INSTANCE, coerce=None, va"
2908
+ "lidate=None, check_type=None), InitPlan.Field(name='interface', annotation=OpRef(name='init.fields.1.annotatio"
2909
+ "n'), default=OpRef(name='init.fields.1.default'), default_factory=None, init=True, override=False, field_type="
2910
+ "FieldType.INSTANCE, coerce=None, validate=None, check_type=None), InitPlan.Field(name='rendering', annotation="
2911
+ "OpRef(name='init.fields.2.annotation'), default=OpRef(name='init.fields.2.default'), default_factory=None, ini"
2912
+ "t=True, override=False, field_type=FieldType.INSTANCE, coerce=None, validate=None, check_type=None), InitPlan."
2913
+ "Field(name='configurable_cls', annotation=OpRef(name='init.fields.3.annotation'), default=None, default_factor"
2914
+ "y=None, init=True, override=False, field_type=FieldType.CLASS_VAR, coerce=None, validate=None, check_type=None"
2915
+ ")), self_param='self', std_params=(), kw_only_params=('driver', 'interface', 'rendering'), frozen=True, slots="
2916
+ "False, post_init_params=None, init_fns=(), validate_fns=()), ReprPlan(fields=(ReprPlan.Field(name='driver', kw"
2917
+ "_only=True, fn=None), ReprPlan.Field(name='interface', kw_only=True, fn=None), ReprPlan.Field(name='rendering'"
2918
+ ", kw_only=True, fn=None)), id=False, terse=False, default_fn=None)))"
2769
2919
  ),
2770
- plan_repr_sha1='c7ef8f206aa733e203b02aa86b11fa4af1f182b1',
2920
+ plan_repr_sha1='9ae844d2d0421cd416bf6d9a25f3a9571a7e1251',
2771
2921
  op_ref_idents=(
2772
2922
  '__dataclass__init__fields__0__annotation',
2773
2923
  '__dataclass__init__fields__0__default',
@@ -2780,7 +2930,7 @@ def _process_dataclass__0f6d91dd6a878d827836d961e4683d55b1c9095a():
2780
2930
  ('ommlds.cli.sessions.chat.session', 'ChatSession.Config'),
2781
2931
  ),
2782
2932
  )
2783
- def _process_dataclass__c7ef8f206aa733e203b02aa86b11fa4af1f182b1():
2933
+ def _process_dataclass__9ae844d2d0421cd416bf6d9a25f3a9571a7e1251():
2784
2934
  def _process_dataclass(
2785
2935
  *,
2786
2936
  __dataclass__cls,
@@ -2808,7 +2958,7 @@ def _process_dataclass__c7ef8f206aa733e203b02aa86b11fa4af1f182b1():
2808
2958
  if self.__class__ is not __dataclass__cls:
2809
2959
  raise TypeError(self)
2810
2960
  return __dataclass__cls( # noqa
2811
- agent=self.agent,
2961
+ driver=self.driver,
2812
2962
  interface=self.interface,
2813
2963
  rendering=self.rendering,
2814
2964
  )
@@ -2824,7 +2974,7 @@ def _process_dataclass__c7ef8f206aa733e203b02aa86b11fa4af1f182b1():
2824
2974
  if self.__class__ is not other.__class__:
2825
2975
  return NotImplemented
2826
2976
  return (
2827
- self.agent == other.agent and
2977
+ self.driver == other.driver and
2828
2978
  self.interface == other.interface and
2829
2979
  self.rendering == other.rendering
2830
2980
  )
@@ -2835,7 +2985,7 @@ def _process_dataclass__c7ef8f206aa733e203b02aa86b11fa4af1f182b1():
2835
2985
  setattr(__dataclass__cls, '__eq__', __eq__)
2836
2986
 
2837
2987
  __dataclass___setattr_frozen_fields = {
2838
- 'agent',
2988
+ 'driver',
2839
2989
  'interface',
2840
2990
  'rendering',
2841
2991
  'configurable_cls',
@@ -2855,7 +3005,7 @@ def _process_dataclass__c7ef8f206aa733e203b02aa86b11fa4af1f182b1():
2855
3005
  setattr(__dataclass__cls, '__setattr__', __setattr__)
2856
3006
 
2857
3007
  __dataclass___delattr_frozen_fields = {
2858
- 'agent',
3008
+ 'driver',
2859
3009
  'interface',
2860
3010
  'rendering',
2861
3011
  'configurable_cls',
@@ -2876,7 +3026,7 @@ def _process_dataclass__c7ef8f206aa733e203b02aa86b11fa4af1f182b1():
2876
3026
 
2877
3027
  def __hash__(self):
2878
3028
  return hash((
2879
- self.agent,
3029
+ self.driver,
2880
3030
  self.interface,
2881
3031
  self.rendering,
2882
3032
  ))
@@ -2887,11 +3037,11 @@ def _process_dataclass__c7ef8f206aa733e203b02aa86b11fa4af1f182b1():
2887
3037
  def __init__(
2888
3038
  self,
2889
3039
  *,
2890
- agent: __dataclass__init__fields__0__annotation = __dataclass__init__fields__0__default,
3040
+ driver: __dataclass__init__fields__0__annotation = __dataclass__init__fields__0__default,
2891
3041
  interface: __dataclass__init__fields__1__annotation = __dataclass__init__fields__1__default,
2892
3042
  rendering: __dataclass__init__fields__2__annotation = __dataclass__init__fields__2__default,
2893
3043
  ) -> __dataclass__None:
2894
- __dataclass__object_setattr(self, 'agent', agent)
3044
+ __dataclass__object_setattr(self, 'driver', driver)
2895
3045
  __dataclass__object_setattr(self, 'interface', interface)
2896
3046
  __dataclass__object_setattr(self, 'rendering', rendering)
2897
3047
 
@@ -2903,7 +3053,7 @@ def _process_dataclass__c7ef8f206aa733e203b02aa86b11fa4af1f182b1():
2903
3053
  @__dataclass___recursive_repr()
2904
3054
  def __repr__(self):
2905
3055
  parts = []
2906
- parts.append(f"agent={self.agent!r}")
3056
+ parts.append(f"driver={self.driver!r}")
2907
3057
  parts.append(f"interface={self.interface!r}")
2908
3058
  parts.append(f"rendering={self.rendering!r}")
2909
3059
  return (