ommlds 0.0.0.dev484__py3-none-any.whl → 0.0.0.dev486__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.
@@ -25,35 +25,44 @@ def _register(**kwargs):
25
25
 
26
26
  @_register(
27
27
  plan_repr=(
28
- "Plans(tup=(CopyPlan(fields=('content', 'backend')), EqPlan(fields=('content', 'backend')), FrozenPlan(fields=("
29
- "'content', 'backend'), allow_dynamic_dunder_attrs=False), HashPlan(action='add', fields=('content', 'backend')"
30
- ", cache=False), InitPlan(fields=(InitPlan.Field(name='content', annotation=OpRef(name='init.fields.0.annotatio"
31
- "n'), default=None, default_factory=None, init=True, override=False, field_type=FieldType.INSTANCE, coerce=None"
32
- ", validate=None, check_type=None), InitPlan.Field(name='backend', annotation=OpRef(name='init.fields.1.annotat"
33
- "ion'), default=OpRef(name='init.fields.1.default'), default_factory=None, init=True, override=False, field_typ"
34
- "e=FieldType.INSTANCE, coerce=None, validate=None, check_type=None)), self_param='self', std_params=('content',"
35
- "), kw_only_params=('backend',), frozen=True, slots=False, post_init_params=None, init_fns=(), validate_fns=())"
36
- ", ReprPlan(fields=(ReprPlan.Field(name='content', kw_only=False, fn=None), ReprPlan.Field(name='backend', kw_o"
37
- "nly=True, fn=None)), id=False, terse=False, default_fn=None)))"
28
+ "Plans(tup=(CopyPlan(fields=('stream', 'silent', 'enable_tools')), EqPlan(fields=('stream', 'silent', 'enable_t"
29
+ "ools')), FrozenPlan(fields=('stream', 'silent', 'enable_tools'), allow_dynamic_dunder_attrs=False), HashPlan(a"
30
+ "ction='add', fields=('stream', 'silent', 'enable_tools'), cache=False), InitPlan(fields=(InitPlan.Field(name='"
31
+ "stream', annotation=OpRef(name='init.fields.0.annotation'), default=OpRef(name='init.fields.0.default'), defau"
32
+ "lt_factory=None, init=True, override=False, field_type=FieldType.INSTANCE, coerce=None, validate=None, check_t"
33
+ "ype=None), InitPlan.Field(name='silent', annotation=OpRef(name='init.fields.1.annotation'), default=OpRef(name"
34
+ "='init.fields.1.default'), default_factory=None, init=True, override=False, field_type=FieldType.INSTANCE, coe"
35
+ "rce=None, validate=None, check_type=None), InitPlan.Field(name='enable_tools', annotation=OpRef(name='init.fie"
36
+ "lds.2.annotation'), default=OpRef(name='init.fields.2.default'), default_factory=None, init=True, override=Fal"
37
+ "se, field_type=FieldType.INSTANCE, coerce=None, validate=None, check_type=None)), self_param='self', std_param"
38
+ "s=(), kw_only_params=('stream', 'silent', 'enable_tools'), frozen=True, slots=False, post_init_params=None, in"
39
+ "it_fns=(), validate_fns=()), ReprPlan(fields=(ReprPlan.Field(name='stream', kw_only=True, fn=None), ReprPlan.F"
40
+ "ield(name='silent', kw_only=True, fn=None), ReprPlan.Field(name='enable_tools', kw_only=True, fn=None)), id=Fa"
41
+ "lse, terse=False, default_fn=None)))"
38
42
  ),
39
- plan_repr_sha1='010cef854496c65de48af9ea74be543fecd8bec1',
43
+ plan_repr_sha1='034c3027d32a8d78f606c678892cbfe84a8f230f',
40
44
  op_ref_idents=(
41
45
  '__dataclass__init__fields__0__annotation',
46
+ '__dataclass__init__fields__0__default',
42
47
  '__dataclass__init__fields__1__annotation',
43
48
  '__dataclass__init__fields__1__default',
49
+ '__dataclass__init__fields__2__annotation',
50
+ '__dataclass__init__fields__2__default',
44
51
  ),
45
52
  cls_names=(
46
- ('ommlds.cli.main', 'CompletionConfig'),
47
- ('ommlds.cli.main', 'EmbeddingConfig'),
53
+ ('ommlds.cli.main', 'AiConfig'),
48
54
  ),
49
55
  )
50
- def _process_dataclass__010cef854496c65de48af9ea74be543fecd8bec1():
56
+ def _process_dataclass__034c3027d32a8d78f606c678892cbfe84a8f230f():
51
57
  def _process_dataclass(
52
58
  *,
53
59
  __dataclass__cls,
54
60
  __dataclass__init__fields__0__annotation,
61
+ __dataclass__init__fields__0__default,
55
62
  __dataclass__init__fields__1__annotation,
56
63
  __dataclass__init__fields__1__default,
64
+ __dataclass__init__fields__2__annotation,
65
+ __dataclass__init__fields__2__default,
57
66
  __dataclass__FieldFnValidationError, # noqa
58
67
  __dataclass__FieldTypeValidationError, # noqa
59
68
  __dataclass__FnValidationError, # noqa
@@ -72,8 +81,9 @@ def _process_dataclass__010cef854496c65de48af9ea74be543fecd8bec1():
72
81
  if self.__class__ is not __dataclass__cls:
73
82
  raise TypeError(self)
74
83
  return __dataclass__cls( # noqa
75
- content=self.content,
76
- backend=self.backend,
84
+ stream=self.stream,
85
+ silent=self.silent,
86
+ enable_tools=self.enable_tools,
77
87
  )
78
88
 
79
89
  __copy__.__qualname__ = f"{__dataclass__cls.__qualname__}.__copy__"
@@ -87,8 +97,9 @@ def _process_dataclass__010cef854496c65de48af9ea74be543fecd8bec1():
87
97
  if self.__class__ is not other.__class__:
88
98
  return NotImplemented
89
99
  return (
90
- self.content == other.content and
91
- self.backend == other.backend
100
+ self.stream == other.stream and
101
+ self.silent == other.silent and
102
+ self.enable_tools == other.enable_tools
92
103
  )
93
104
 
94
105
  __eq__.__qualname__ = f"{__dataclass__cls.__qualname__}.__eq__"
@@ -97,8 +108,9 @@ def _process_dataclass__010cef854496c65de48af9ea74be543fecd8bec1():
97
108
  setattr(__dataclass__cls, '__eq__', __eq__)
98
109
 
99
110
  __dataclass___setattr_frozen_fields = {
100
- 'content',
101
- 'backend',
111
+ 'stream',
112
+ 'silent',
113
+ 'enable_tools',
102
114
  }
103
115
 
104
116
  def __setattr__(self, name, value):
@@ -115,8 +127,9 @@ def _process_dataclass__010cef854496c65de48af9ea74be543fecd8bec1():
115
127
  setattr(__dataclass__cls, '__setattr__', __setattr__)
116
128
 
117
129
  __dataclass___delattr_frozen_fields = {
118
- 'content',
119
- 'backend',
130
+ 'stream',
131
+ 'silent',
132
+ 'enable_tools',
120
133
  }
121
134
 
122
135
  def __delattr__(self, name):
@@ -134,8 +147,9 @@ def _process_dataclass__010cef854496c65de48af9ea74be543fecd8bec1():
134
147
 
135
148
  def __hash__(self):
136
149
  return hash((
137
- self.content,
138
- self.backend,
150
+ self.stream,
151
+ self.silent,
152
+ self.enable_tools,
139
153
  ))
140
154
 
141
155
  __hash__.__qualname__ = f"{__dataclass__cls.__qualname__}.__hash__"
@@ -143,12 +157,14 @@ def _process_dataclass__010cef854496c65de48af9ea74be543fecd8bec1():
143
157
 
144
158
  def __init__(
145
159
  self,
146
- content: __dataclass__init__fields__0__annotation,
147
160
  *,
148
- backend: __dataclass__init__fields__1__annotation = __dataclass__init__fields__1__default,
161
+ stream: __dataclass__init__fields__0__annotation = __dataclass__init__fields__0__default,
162
+ silent: __dataclass__init__fields__1__annotation = __dataclass__init__fields__1__default,
163
+ enable_tools: __dataclass__init__fields__2__annotation = __dataclass__init__fields__2__default,
149
164
  ) -> __dataclass__None:
150
- __dataclass__object_setattr(self, 'content', content)
151
- __dataclass__object_setattr(self, 'backend', backend)
165
+ __dataclass__object_setattr(self, 'stream', stream)
166
+ __dataclass__object_setattr(self, 'silent', silent)
167
+ __dataclass__object_setattr(self, 'enable_tools', enable_tools)
152
168
 
153
169
  __init__.__qualname__ = f"{__dataclass__cls.__qualname__}.__init__"
154
170
  if '__init__' in __dataclass__cls.__dict__:
@@ -158,8 +174,9 @@ def _process_dataclass__010cef854496c65de48af9ea74be543fecd8bec1():
158
174
  @__dataclass___recursive_repr()
159
175
  def __repr__(self):
160
176
  parts = []
161
- parts.append(f"content={self.content!r}")
162
- parts.append(f"backend={self.backend!r}")
177
+ parts.append(f"stream={self.stream!r}")
178
+ parts.append(f"silent={self.silent!r}")
179
+ parts.append(f"enable_tools={self.enable_tools!r}")
163
180
  return (
164
181
  f"{self.__class__.__qualname__}("
165
182
  f"{', '.join(parts)}"
@@ -176,44 +193,29 @@ def _process_dataclass__010cef854496c65de48af9ea74be543fecd8bec1():
176
193
 
177
194
  @_register(
178
195
  plan_repr=(
179
- "Plans(tup=(CopyPlan(fields=('stream', 'silent', 'enable_tools')), EqPlan(fields=('stream', 'silent', 'enable_t"
180
- "ools')), FrozenPlan(fields=('stream', 'silent', 'enable_tools'), allow_dynamic_dunder_attrs=False), HashPlan(a"
181
- "ction='add', fields=('stream', 'silent', 'enable_tools'), cache=False), InitPlan(fields=(InitPlan.Field(name='"
182
- "stream', annotation=OpRef(name='init.fields.0.annotation'), default=OpRef(name='init.fields.0.default'), defau"
183
- "lt_factory=None, init=True, override=False, field_type=FieldType.INSTANCE, coerce=None, validate=None, check_t"
184
- "ype=None), InitPlan.Field(name='silent', annotation=OpRef(name='init.fields.1.annotation'), default=OpRef(name"
185
- "='init.fields.1.default'), default_factory=None, init=True, override=False, field_type=FieldType.INSTANCE, coe"
186
- "rce=None, validate=None, check_type=None), InitPlan.Field(name='enable_tools', annotation=OpRef(name='init.fie"
187
- "lds.2.annotation'), default=OpRef(name='init.fields.2.default'), default_factory=None, init=True, override=Fal"
188
- "se, field_type=FieldType.INSTANCE, coerce=None, validate=None, check_type=None)), self_param='self', std_param"
189
- "s=(), kw_only_params=('stream', 'silent', 'enable_tools'), frozen=True, slots=False, post_init_params=None, in"
190
- "it_fns=(), validate_fns=()), ReprPlan(fields=(ReprPlan.Field(name='stream', kw_only=True, fn=None), ReprPlan.F"
191
- "ield(name='silent', kw_only=True, fn=None), ReprPlan.Field(name='enable_tools', kw_only=True, fn=None)), id=Fa"
192
- "lse, 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)))"
193
203
  ),
194
- plan_repr_sha1='034c3027d32a8d78f606c678892cbfe84a8f230f',
204
+ plan_repr_sha1='fa5665ecddac4bdf52a6a47db3b5b5362a8b3c7a',
195
205
  op_ref_idents=(
196
206
  '__dataclass__init__fields__0__annotation',
197
207
  '__dataclass__init__fields__0__default',
198
- '__dataclass__init__fields__1__annotation',
199
- '__dataclass__init__fields__1__default',
200
- '__dataclass__init__fields__2__annotation',
201
- '__dataclass__init__fields__2__default',
202
208
  ),
203
209
  cls_names=(
204
- ('ommlds.cli.main', 'AiConfig'),
210
+ ('ommlds.cli.main', 'BackendConfig'),
205
211
  ),
206
212
  )
207
- def _process_dataclass__034c3027d32a8d78f606c678892cbfe84a8f230f():
213
+ def _process_dataclass__fa5665ecddac4bdf52a6a47db3b5b5362a8b3c7a():
208
214
  def _process_dataclass(
209
215
  *,
210
216
  __dataclass__cls,
211
217
  __dataclass__init__fields__0__annotation,
212
218
  __dataclass__init__fields__0__default,
213
- __dataclass__init__fields__1__annotation,
214
- __dataclass__init__fields__1__default,
215
- __dataclass__init__fields__2__annotation,
216
- __dataclass__init__fields__2__default,
217
219
  __dataclass__FieldFnValidationError, # noqa
218
220
  __dataclass__FieldTypeValidationError, # noqa
219
221
  __dataclass__FnValidationError, # noqa
@@ -232,9 +234,7 @@ def _process_dataclass__034c3027d32a8d78f606c678892cbfe84a8f230f():
232
234
  if self.__class__ is not __dataclass__cls:
233
235
  raise TypeError(self)
234
236
  return __dataclass__cls( # noqa
235
- stream=self.stream,
236
- silent=self.silent,
237
- enable_tools=self.enable_tools,
237
+ backend=self.backend,
238
238
  )
239
239
 
240
240
  __copy__.__qualname__ = f"{__dataclass__cls.__qualname__}.__copy__"
@@ -248,9 +248,7 @@ def _process_dataclass__034c3027d32a8d78f606c678892cbfe84a8f230f():
248
248
  if self.__class__ is not other.__class__:
249
249
  return NotImplemented
250
250
  return (
251
- self.stream == other.stream and
252
- self.silent == other.silent and
253
- self.enable_tools == other.enable_tools
251
+ self.backend == other.backend
254
252
  )
255
253
 
256
254
  __eq__.__qualname__ = f"{__dataclass__cls.__qualname__}.__eq__"
@@ -259,9 +257,7 @@ def _process_dataclass__034c3027d32a8d78f606c678892cbfe84a8f230f():
259
257
  setattr(__dataclass__cls, '__eq__', __eq__)
260
258
 
261
259
  __dataclass___setattr_frozen_fields = {
262
- 'stream',
263
- 'silent',
264
- 'enable_tools',
260
+ 'backend',
265
261
  }
266
262
 
267
263
  def __setattr__(self, name, value):
@@ -278,9 +274,7 @@ def _process_dataclass__034c3027d32a8d78f606c678892cbfe84a8f230f():
278
274
  setattr(__dataclass__cls, '__setattr__', __setattr__)
279
275
 
280
276
  __dataclass___delattr_frozen_fields = {
281
- 'stream',
282
- 'silent',
283
- 'enable_tools',
277
+ 'backend',
284
278
  }
285
279
 
286
280
  def __delattr__(self, name):
@@ -298,9 +292,7 @@ def _process_dataclass__034c3027d32a8d78f606c678892cbfe84a8f230f():
298
292
 
299
293
  def __hash__(self):
300
294
  return hash((
301
- self.stream,
302
- self.silent,
303
- self.enable_tools,
295
+ self.backend,
304
296
  ))
305
297
 
306
298
  __hash__.__qualname__ = f"{__dataclass__cls.__qualname__}.__hash__"
@@ -309,13 +301,9 @@ def _process_dataclass__034c3027d32a8d78f606c678892cbfe84a8f230f():
309
301
  def __init__(
310
302
  self,
311
303
  *,
312
- stream: __dataclass__init__fields__0__annotation = __dataclass__init__fields__0__default,
313
- silent: __dataclass__init__fields__1__annotation = __dataclass__init__fields__1__default,
314
- enable_tools: __dataclass__init__fields__2__annotation = __dataclass__init__fields__2__default,
304
+ backend: __dataclass__init__fields__0__annotation = __dataclass__init__fields__0__default,
315
305
  ) -> __dataclass__None:
316
- __dataclass__object_setattr(self, 'stream', stream)
317
- __dataclass__object_setattr(self, 'silent', silent)
318
- __dataclass__object_setattr(self, 'enable_tools', enable_tools)
306
+ __dataclass__object_setattr(self, 'backend', backend)
319
307
 
320
308
  __init__.__qualname__ = f"{__dataclass__cls.__qualname__}.__init__"
321
309
  if '__init__' in __dataclass__cls.__dict__:
@@ -325,9 +313,7 @@ def _process_dataclass__034c3027d32a8d78f606c678892cbfe84a8f230f():
325
313
  @__dataclass___recursive_repr()
326
314
  def __repr__(self):
327
315
  parts = []
328
- parts.append(f"stream={self.stream!r}")
329
- parts.append(f"silent={self.silent!r}")
330
- parts.append(f"enable_tools={self.enable_tools!r}")
316
+ parts.append(f"backend={self.backend!r}")
331
317
  return (
332
318
  f"{self.__class__.__qualname__}("
333
319
  f"{', '.join(parts)}"
@@ -344,31 +330,65 @@ def _process_dataclass__034c3027d32a8d78f606c678892cbfe84a8f230f():
344
330
 
345
331
  @_register(
346
332
  plan_repr=(
347
- "Plans(tup=(CopyPlan(fields=('cfg_cls', 'fn')), EqPlan(fields=('cfg_cls', 'fn')), FrozenPlan(fields=('cfg_cls',"
348
- " 'fn'), allow_dynamic_dunder_attrs=False), HashPlan(action='add', fields=('cfg_cls', 'fn'), cache=False), Init"
349
- "Plan(fields=(InitPlan.Field(name='cfg_cls', annotation=OpRef(name='init.fields.0.annotation'), default=None, d"
350
- "efault_factory=None, init=True, override=False, field_type=FieldType.INSTANCE, coerce=None, validate=None, che"
351
- "ck_type=None), InitPlan.Field(name='fn', annotation=OpRef(name='init.fields.1.annotation'), default=None, defa"
352
- "ult_factory=None, init=True, override=False, field_type=FieldType.INSTANCE, coerce=None, validate=None, check_"
353
- "type=None)), self_param='self', std_params=('cfg_cls', 'fn'), kw_only_params=(), frozen=True, slots=False, pos"
354
- "t_init_params=None, init_fns=(), validate_fns=()), ReprPlan(fields=(ReprPlan.Field(name='cfg_cls', kw_only=Fal"
355
- "se, fn=None), ReprPlan.Field(name='fn', kw_only=False, fn=None)), id=False, terse=False, default_fn=None)))"
333
+ "Plans(tup=(CopyPlan(fields=('backend', 'ai', 'state', 'user', 'rendering', 'tools')), EqPlan(fields=('backend'"
334
+ ", 'ai', 'state', 'user', 'rendering', 'tools')), FrozenPlan(fields=('backend', 'ai', 'state', 'user', 'renderi"
335
+ "ng', 'tools'), allow_dynamic_dunder_attrs=False), HashPlan(action='add', fields=('backend', 'ai', 'state', 'us"
336
+ "er', 'rendering', 'tools'), cache=False), InitPlan(fields=(InitPlan.Field(name='backend', annotation=OpRef(nam"
337
+ "e='init.fields.0.annotation'), default=OpRef(name='init.fields.0.default'), default_factory=None, init=True, o"
338
+ "verride=False, field_type=FieldType.INSTANCE, coerce=None, validate=None, check_type=None), InitPlan.Field(nam"
339
+ "e='ai', annotation=OpRef(name='init.fields.1.annotation'), default=OpRef(name='init.fields.1.default'), defaul"
340
+ "t_factory=None, init=True, override=False, field_type=FieldType.INSTANCE, coerce=None, validate=None, check_ty"
341
+ "pe=None), InitPlan.Field(name='state', annotation=OpRef(name='init.fields.2.annotation'), default=OpRef(name='"
342
+ "init.fields.2.default'), default_factory=None, init=True, override=False, field_type=FieldType.INSTANCE, coerc"
343
+ "e=None, validate=None, check_type=None), InitPlan.Field(name='user', annotation=OpRef(name='init.fields.3.anno"
344
+ "tation'), default=OpRef(name='init.fields.3.default'), default_factory=None, init=True, override=False, field_"
345
+ "type=FieldType.INSTANCE, coerce=None, validate=None, check_type=None), InitPlan.Field(name='rendering', annota"
346
+ "tion=OpRef(name='init.fields.4.annotation'), default=OpRef(name='init.fields.4.default'), default_factory=None"
347
+ ", init=True, override=False, field_type=FieldType.INSTANCE, coerce=None, validate=None, check_type=None), Init"
348
+ "Plan.Field(name='tools', annotation=OpRef(name='init.fields.5.annotation'), default=OpRef(name='init.fields.5."
349
+ "default'), default_factory=None, init=True, override=False, field_type=FieldType.INSTANCE, coerce=None, valida"
350
+ "te=None, check_type=None)), self_param='self', std_params=(), kw_only_params=('backend', 'ai', 'state', 'user'"
351
+ ", 'rendering', 'tools'), frozen=True, slots=False, post_init_params=None, init_fns=(), validate_fns=()), ReprP"
352
+ "lan(fields=(ReprPlan.Field(name='backend', kw_only=True, fn=None), ReprPlan.Field(name='ai', kw_only=True, fn="
353
+ "None), ReprPlan.Field(name='state', kw_only=True, fn=None), ReprPlan.Field(name='user', kw_only=True, fn=None)"
354
+ ", ReprPlan.Field(name='rendering', kw_only=True, fn=None), ReprPlan.Field(name='tools', kw_only=True, fn=None)"
355
+ "), id=False, terse=False, default_fn=None)))"
356
356
  ),
357
- plan_repr_sha1='0f6d91dd6a878d827836d961e4683d55b1c9095a',
357
+ plan_repr_sha1='d7bd53eeb4e47004afc2820f52bcabdde108d61f',
358
358
  op_ref_idents=(
359
359
  '__dataclass__init__fields__0__annotation',
360
+ '__dataclass__init__fields__0__default',
360
361
  '__dataclass__init__fields__1__annotation',
362
+ '__dataclass__init__fields__1__default',
363
+ '__dataclass__init__fields__2__annotation',
364
+ '__dataclass__init__fields__2__default',
365
+ '__dataclass__init__fields__3__annotation',
366
+ '__dataclass__init__fields__3__default',
367
+ '__dataclass__init__fields__4__annotation',
368
+ '__dataclass__init__fields__4__default',
369
+ '__dataclass__init__fields__5__annotation',
370
+ '__dataclass__init__fields__5__default',
361
371
  ),
362
372
  cls_names=(
363
- ('ommlds.cli.sessions.chat.tools.inject', 'ToolSetBinder'),
373
+ ('ommlds.cli.main', 'ChatConfig'),
364
374
  ),
365
375
  )
366
- def _process_dataclass__0f6d91dd6a878d827836d961e4683d55b1c9095a():
376
+ def _process_dataclass__d7bd53eeb4e47004afc2820f52bcabdde108d61f():
367
377
  def _process_dataclass(
368
378
  *,
369
379
  __dataclass__cls,
370
380
  __dataclass__init__fields__0__annotation,
381
+ __dataclass__init__fields__0__default,
371
382
  __dataclass__init__fields__1__annotation,
383
+ __dataclass__init__fields__1__default,
384
+ __dataclass__init__fields__2__annotation,
385
+ __dataclass__init__fields__2__default,
386
+ __dataclass__init__fields__3__annotation,
387
+ __dataclass__init__fields__3__default,
388
+ __dataclass__init__fields__4__annotation,
389
+ __dataclass__init__fields__4__default,
390
+ __dataclass__init__fields__5__annotation,
391
+ __dataclass__init__fields__5__default,
372
392
  __dataclass__FieldFnValidationError, # noqa
373
393
  __dataclass__FieldTypeValidationError, # noqa
374
394
  __dataclass__FnValidationError, # noqa
@@ -387,8 +407,12 @@ def _process_dataclass__0f6d91dd6a878d827836d961e4683d55b1c9095a():
387
407
  if self.__class__ is not __dataclass__cls:
388
408
  raise TypeError(self)
389
409
  return __dataclass__cls( # noqa
390
- cfg_cls=self.cfg_cls,
391
- fn=self.fn,
410
+ backend=self.backend,
411
+ ai=self.ai,
412
+ state=self.state,
413
+ user=self.user,
414
+ rendering=self.rendering,
415
+ tools=self.tools,
392
416
  )
393
417
 
394
418
  __copy__.__qualname__ = f"{__dataclass__cls.__qualname__}.__copy__"
@@ -402,8 +426,12 @@ def _process_dataclass__0f6d91dd6a878d827836d961e4683d55b1c9095a():
402
426
  if self.__class__ is not other.__class__:
403
427
  return NotImplemented
404
428
  return (
405
- self.cfg_cls == other.cfg_cls and
406
- self.fn == other.fn
429
+ self.backend == other.backend and
430
+ self.ai == other.ai and
431
+ self.state == other.state and
432
+ self.user == other.user and
433
+ self.rendering == other.rendering and
434
+ self.tools == other.tools
407
435
  )
408
436
 
409
437
  __eq__.__qualname__ = f"{__dataclass__cls.__qualname__}.__eq__"
@@ -412,8 +440,12 @@ def _process_dataclass__0f6d91dd6a878d827836d961e4683d55b1c9095a():
412
440
  setattr(__dataclass__cls, '__eq__', __eq__)
413
441
 
414
442
  __dataclass___setattr_frozen_fields = {
415
- 'cfg_cls',
416
- 'fn',
443
+ 'backend',
444
+ 'ai',
445
+ 'state',
446
+ 'user',
447
+ 'rendering',
448
+ 'tools',
417
449
  }
418
450
 
419
451
  def __setattr__(self, name, value):
@@ -430,8 +462,12 @@ def _process_dataclass__0f6d91dd6a878d827836d961e4683d55b1c9095a():
430
462
  setattr(__dataclass__cls, '__setattr__', __setattr__)
431
463
 
432
464
  __dataclass___delattr_frozen_fields = {
433
- 'cfg_cls',
434
- 'fn',
465
+ 'backend',
466
+ 'ai',
467
+ 'state',
468
+ 'user',
469
+ 'rendering',
470
+ 'tools',
435
471
  }
436
472
 
437
473
  def __delattr__(self, name):
@@ -449,8 +485,12 @@ def _process_dataclass__0f6d91dd6a878d827836d961e4683d55b1c9095a():
449
485
 
450
486
  def __hash__(self):
451
487
  return hash((
452
- self.cfg_cls,
453
- self.fn,
488
+ self.backend,
489
+ self.ai,
490
+ self.state,
491
+ self.user,
492
+ self.rendering,
493
+ self.tools,
454
494
  ))
455
495
 
456
496
  __hash__.__qualname__ = f"{__dataclass__cls.__qualname__}.__hash__"
@@ -458,22 +498,35 @@ def _process_dataclass__0f6d91dd6a878d827836d961e4683d55b1c9095a():
458
498
 
459
499
  def __init__(
460
500
  self,
461
- cfg_cls: __dataclass__init__fields__0__annotation,
462
- fn: __dataclass__init__fields__1__annotation,
501
+ *,
502
+ backend: __dataclass__init__fields__0__annotation = __dataclass__init__fields__0__default,
503
+ ai: __dataclass__init__fields__1__annotation = __dataclass__init__fields__1__default,
504
+ state: __dataclass__init__fields__2__annotation = __dataclass__init__fields__2__default,
505
+ user: __dataclass__init__fields__3__annotation = __dataclass__init__fields__3__default,
506
+ rendering: __dataclass__init__fields__4__annotation = __dataclass__init__fields__4__default,
507
+ tools: __dataclass__init__fields__5__annotation = __dataclass__init__fields__5__default,
463
508
  ) -> __dataclass__None:
464
- __dataclass__object_setattr(self, 'cfg_cls', cfg_cls)
465
- __dataclass__object_setattr(self, 'fn', fn)
466
-
467
- __init__.__qualname__ = f"{__dataclass__cls.__qualname__}.__init__"
468
- if '__init__' in __dataclass__cls.__dict__:
509
+ __dataclass__object_setattr(self, 'backend', backend)
510
+ __dataclass__object_setattr(self, 'ai', ai)
511
+ __dataclass__object_setattr(self, 'state', state)
512
+ __dataclass__object_setattr(self, 'user', user)
513
+ __dataclass__object_setattr(self, 'rendering', rendering)
514
+ __dataclass__object_setattr(self, 'tools', tools)
515
+
516
+ __init__.__qualname__ = f"{__dataclass__cls.__qualname__}.__init__"
517
+ if '__init__' in __dataclass__cls.__dict__:
469
518
  raise __dataclass__TypeError(f"Cannot overwrite attribute __init__ in class {__dataclass__cls.__name__}")
470
519
  setattr(__dataclass__cls, '__init__', __init__)
471
520
 
472
521
  @__dataclass___recursive_repr()
473
522
  def __repr__(self):
474
523
  parts = []
475
- parts.append(f"cfg_cls={self.cfg_cls!r}")
476
- parts.append(f"fn={self.fn!r}")
524
+ parts.append(f"backend={self.backend!r}")
525
+ parts.append(f"ai={self.ai!r}")
526
+ parts.append(f"state={self.state!r}")
527
+ parts.append(f"user={self.user!r}")
528
+ parts.append(f"rendering={self.rendering!r}")
529
+ parts.append(f"tools={self.tools!r}")
477
530
  return (
478
531
  f"{self.__class__.__qualname__}("
479
532
  f"{', '.join(parts)}"
@@ -490,29 +543,35 @@ def _process_dataclass__0f6d91dd6a878d827836d961e4683d55b1c9095a():
490
543
 
491
544
  @_register(
492
545
  plan_repr=(
493
- "Plans(tup=(CopyPlan(fields=('markdown',)), EqPlan(fields=('markdown',)), FrozenPlan(fields=('markdown',), allo"
494
- "w_dynamic_dunder_attrs=False), HashPlan(action='add', fields=('markdown',), cache=False), InitPlan(fields=(Ini"
495
- "tPlan.Field(name='markdown', annotation=OpRef(name='init.fields.0.annotation'), default=OpRef(name='init.field"
496
- "s.0.default'), default_factory=None, init=True, override=False, field_type=FieldType.INSTANCE, coerce=None, va"
497
- "lidate=None, check_type=None),), self_param='self', std_params=(), kw_only_params=('markdown',), frozen=True, "
498
- "slots=False, post_init_params=None, init_fns=(), validate_fns=()), ReprPlan(fields=(ReprPlan.Field(name='markd"
499
- "own', kw_only=True, fn=None),), id=False, terse=False, default_fn=None)))"
546
+ "Plans(tup=(CopyPlan(fields=('content', 'backend')), EqPlan(fields=('content', 'backend')), FrozenPlan(fields=("
547
+ "'content', 'backend'), allow_dynamic_dunder_attrs=False), HashPlan(action='add', fields=('content', 'backend')"
548
+ ", cache=False), InitPlan(fields=(InitPlan.Field(name='content', annotation=OpRef(name='init.fields.0.annotatio"
549
+ "n'), default=None, default_factory=None, init=True, override=False, field_type=FieldType.INSTANCE, coerce=None"
550
+ ", validate=None, check_type=None), InitPlan.Field(name='backend', annotation=OpRef(name='init.fields.1.annotat"
551
+ "ion'), default=OpRef(name='init.fields.1.default'), default_factory=None, init=True, override=False, field_typ"
552
+ "e=FieldType.INSTANCE, coerce=None, validate=None, check_type=None)), self_param='self', std_params=('content',"
553
+ "), kw_only_params=('backend',), frozen=True, slots=False, post_init_params=None, init_fns=(), validate_fns=())"
554
+ ", ReprPlan(fields=(ReprPlan.Field(name='content', kw_only=False, fn=None), ReprPlan.Field(name='backend', kw_o"
555
+ "nly=True, fn=None)), id=False, terse=False, default_fn=None)))"
500
556
  ),
501
- plan_repr_sha1='254623427d52b86f69ed60d24a0e95b0b1b391ca',
557
+ plan_repr_sha1='010cef854496c65de48af9ea74be543fecd8bec1',
502
558
  op_ref_idents=(
503
559
  '__dataclass__init__fields__0__annotation',
504
- '__dataclass__init__fields__0__default',
560
+ '__dataclass__init__fields__1__annotation',
561
+ '__dataclass__init__fields__1__default',
505
562
  ),
506
563
  cls_names=(
507
- ('ommlds.cli.main', 'RenderingConfig'),
564
+ ('ommlds.cli.main', 'CompletionConfig'),
565
+ ('ommlds.cli.main', 'EmbeddingConfig'),
508
566
  ),
509
567
  )
510
- def _process_dataclass__254623427d52b86f69ed60d24a0e95b0b1b391ca():
568
+ def _process_dataclass__010cef854496c65de48af9ea74be543fecd8bec1():
511
569
  def _process_dataclass(
512
570
  *,
513
571
  __dataclass__cls,
514
572
  __dataclass__init__fields__0__annotation,
515
- __dataclass__init__fields__0__default,
573
+ __dataclass__init__fields__1__annotation,
574
+ __dataclass__init__fields__1__default,
516
575
  __dataclass__FieldFnValidationError, # noqa
517
576
  __dataclass__FieldTypeValidationError, # noqa
518
577
  __dataclass__FnValidationError, # noqa
@@ -531,7 +590,8 @@ def _process_dataclass__254623427d52b86f69ed60d24a0e95b0b1b391ca():
531
590
  if self.__class__ is not __dataclass__cls:
532
591
  raise TypeError(self)
533
592
  return __dataclass__cls( # noqa
534
- markdown=self.markdown,
593
+ content=self.content,
594
+ backend=self.backend,
535
595
  )
536
596
 
537
597
  __copy__.__qualname__ = f"{__dataclass__cls.__qualname__}.__copy__"
@@ -545,7 +605,8 @@ def _process_dataclass__254623427d52b86f69ed60d24a0e95b0b1b391ca():
545
605
  if self.__class__ is not other.__class__:
546
606
  return NotImplemented
547
607
  return (
548
- self.markdown == other.markdown
608
+ self.content == other.content and
609
+ self.backend == other.backend
549
610
  )
550
611
 
551
612
  __eq__.__qualname__ = f"{__dataclass__cls.__qualname__}.__eq__"
@@ -554,7 +615,8 @@ def _process_dataclass__254623427d52b86f69ed60d24a0e95b0b1b391ca():
554
615
  setattr(__dataclass__cls, '__eq__', __eq__)
555
616
 
556
617
  __dataclass___setattr_frozen_fields = {
557
- 'markdown',
618
+ 'content',
619
+ 'backend',
558
620
  }
559
621
 
560
622
  def __setattr__(self, name, value):
@@ -571,7 +633,8 @@ def _process_dataclass__254623427d52b86f69ed60d24a0e95b0b1b391ca():
571
633
  setattr(__dataclass__cls, '__setattr__', __setattr__)
572
634
 
573
635
  __dataclass___delattr_frozen_fields = {
574
- 'markdown',
636
+ 'content',
637
+ 'backend',
575
638
  }
576
639
 
577
640
  def __delattr__(self, name):
@@ -589,7 +652,8 @@ def _process_dataclass__254623427d52b86f69ed60d24a0e95b0b1b391ca():
589
652
 
590
653
  def __hash__(self):
591
654
  return hash((
592
- self.markdown,
655
+ self.content,
656
+ self.backend,
593
657
  ))
594
658
 
595
659
  __hash__.__qualname__ = f"{__dataclass__cls.__qualname__}.__hash__"
@@ -597,10 +661,12 @@ def _process_dataclass__254623427d52b86f69ed60d24a0e95b0b1b391ca():
597
661
 
598
662
  def __init__(
599
663
  self,
664
+ content: __dataclass__init__fields__0__annotation,
600
665
  *,
601
- markdown: __dataclass__init__fields__0__annotation = __dataclass__init__fields__0__default,
666
+ backend: __dataclass__init__fields__1__annotation = __dataclass__init__fields__1__default,
602
667
  ) -> __dataclass__None:
603
- __dataclass__object_setattr(self, 'markdown', markdown)
668
+ __dataclass__object_setattr(self, 'content', content)
669
+ __dataclass__object_setattr(self, 'backend', backend)
604
670
 
605
671
  __init__.__qualname__ = f"{__dataclass__cls.__qualname__}.__init__"
606
672
  if '__init__' in __dataclass__cls.__dict__:
@@ -610,7 +676,8 @@ def _process_dataclass__254623427d52b86f69ed60d24a0e95b0b1b391ca():
610
676
  @__dataclass___recursive_repr()
611
677
  def __repr__(self):
612
678
  parts = []
613
- parts.append(f"markdown={self.markdown!r}")
679
+ parts.append(f"content={self.content!r}")
680
+ parts.append(f"backend={self.backend!r}")
614
681
  return (
615
682
  f"{self.__class__.__qualname__}("
616
683
  f"{', '.join(parts)}"
@@ -627,67 +694,29 @@ def _process_dataclass__254623427d52b86f69ed60d24a0e95b0b1b391ca():
627
694
 
628
695
  @_register(
629
696
  plan_repr=(
630
- "Plans(tup=(CopyPlan(fields=('backend', 'ai', 'state', 'user', 'rendering', 'tools')), EqPlan(fields=('backend'"
631
- ", 'ai', 'state', 'user', 'rendering', 'tools')), FrozenPlan(fields=('backend', 'ai', 'state', 'user', 'renderi"
632
- "ng', 'tools', 'configurable_cls'), allow_dynamic_dunder_attrs=False), HashPlan(action='add', fields=('backend'"
633
- ", 'ai', 'state', 'user', 'rendering', 'tools'), cache=False), InitPlan(fields=(InitPlan.Field(name='backend', "
634
- "annotation=OpRef(name='init.fields.0.annotation'), default=OpRef(name='init.fields.0.default'), default_factor"
635
- "y=None, init=True, override=False, field_type=FieldType.INSTANCE, coerce=None, validate=None, check_type=None)"
636
- ", InitPlan.Field(name='ai', annotation=OpRef(name='init.fields.1.annotation'), default=OpRef(name='init.fields"
637
- ".1.default'), default_factory=None, init=True, override=False, field_type=FieldType.INSTANCE, coerce=None, val"
638
- "idate=None, check_type=None), InitPlan.Field(name='state', annotation=OpRef(name='init.fields.2.annotation'), "
639
- "default=OpRef(name='init.fields.2.default'), default_factory=None, init=True, override=False, field_type=Field"
640
- "Type.INSTANCE, coerce=None, validate=None, check_type=None), InitPlan.Field(name='user', annotation=OpRef(name"
641
- "='init.fields.3.annotation'), default=OpRef(name='init.fields.3.default'), default_factory=None, init=True, ov"
642
- "erride=False, field_type=FieldType.INSTANCE, coerce=None, validate=None, check_type=None), InitPlan.Field(name"
643
- "='rendering', annotation=OpRef(name='init.fields.4.annotation'), default=OpRef(name='init.fields.4.default'), "
644
- "default_factory=None, init=True, override=False, field_type=FieldType.INSTANCE, coerce=None, validate=None, ch"
645
- "eck_type=None), InitPlan.Field(name='tools', annotation=OpRef(name='init.fields.5.annotation'), default=OpRef("
646
- "name='init.fields.5.default'), default_factory=None, init=True, override=False, field_type=FieldType.INSTANCE,"
647
- " coerce=None, validate=None, check_type=None), InitPlan.Field(name='configurable_cls', annotation=OpRef(name='"
648
- "init.fields.6.annotation'), default=None, default_factory=None, init=True, override=False, field_type=FieldTyp"
649
- "e.CLASS_VAR, coerce=None, validate=None, check_type=None)), self_param='self', std_params=(), kw_only_params=("
650
- "'backend', 'ai', 'state', 'user', 'rendering', 'tools'), frozen=True, slots=False, post_init_params=None, init"
651
- "_fns=(), validate_fns=()), ReprPlan(fields=(ReprPlan.Field(name='backend', kw_only=True, fn=None), ReprPlan.Fi"
652
- "eld(name='ai', kw_only=True, fn=None), ReprPlan.Field(name='state', kw_only=True, fn=None), ReprPlan.Field(nam"
653
- "e='user', kw_only=True, fn=None), ReprPlan.Field(name='rendering', kw_only=True, fn=None), ReprPlan.Field(name"
654
- "='tools', kw_only=True, fn=None)), id=False, terse=False, default_fn=None)))"
697
+ "Plans(tup=(CopyPlan(fields=('markdown',)), EqPlan(fields=('markdown',)), FrozenPlan(fields=('markdown',), allo"
698
+ "w_dynamic_dunder_attrs=False), HashPlan(action='add', fields=('markdown',), cache=False), InitPlan(fields=(Ini"
699
+ "tPlan.Field(name='markdown', annotation=OpRef(name='init.fields.0.annotation'), default=OpRef(name='init.field"
700
+ "s.0.default'), default_factory=None, init=True, override=False, field_type=FieldType.INSTANCE, coerce=None, va"
701
+ "lidate=None, check_type=None),), self_param='self', std_params=(), kw_only_params=('markdown',), frozen=True, "
702
+ "slots=False, post_init_params=None, init_fns=(), validate_fns=()), ReprPlan(fields=(ReprPlan.Field(name='markd"
703
+ "own', kw_only=True, fn=None),), id=False, terse=False, default_fn=None)))"
655
704
  ),
656
- plan_repr_sha1='2a3ef7bb5eaa4148e2dfb52433ac48683c100e35',
705
+ plan_repr_sha1='254623427d52b86f69ed60d24a0e95b0b1b391ca',
657
706
  op_ref_idents=(
658
707
  '__dataclass__init__fields__0__annotation',
659
708
  '__dataclass__init__fields__0__default',
660
- '__dataclass__init__fields__1__annotation',
661
- '__dataclass__init__fields__1__default',
662
- '__dataclass__init__fields__2__annotation',
663
- '__dataclass__init__fields__2__default',
664
- '__dataclass__init__fields__3__annotation',
665
- '__dataclass__init__fields__3__default',
666
- '__dataclass__init__fields__4__annotation',
667
- '__dataclass__init__fields__4__default',
668
- '__dataclass__init__fields__5__annotation',
669
- '__dataclass__init__fields__5__default',
670
709
  ),
671
710
  cls_names=(
672
- ('ommlds.cli.sessions.chat.session', 'ChatSession.Config'),
711
+ ('ommlds.cli.main', 'RenderingConfig'),
673
712
  ),
674
713
  )
675
- def _process_dataclass__2a3ef7bb5eaa4148e2dfb52433ac48683c100e35():
714
+ def _process_dataclass__254623427d52b86f69ed60d24a0e95b0b1b391ca():
676
715
  def _process_dataclass(
677
716
  *,
678
717
  __dataclass__cls,
679
718
  __dataclass__init__fields__0__annotation,
680
719
  __dataclass__init__fields__0__default,
681
- __dataclass__init__fields__1__annotation,
682
- __dataclass__init__fields__1__default,
683
- __dataclass__init__fields__2__annotation,
684
- __dataclass__init__fields__2__default,
685
- __dataclass__init__fields__3__annotation,
686
- __dataclass__init__fields__3__default,
687
- __dataclass__init__fields__4__annotation,
688
- __dataclass__init__fields__4__default,
689
- __dataclass__init__fields__5__annotation,
690
- __dataclass__init__fields__5__default,
691
720
  __dataclass__FieldFnValidationError, # noqa
692
721
  __dataclass__FieldTypeValidationError, # noqa
693
722
  __dataclass__FnValidationError, # noqa
@@ -706,12 +735,7 @@ def _process_dataclass__2a3ef7bb5eaa4148e2dfb52433ac48683c100e35():
706
735
  if self.__class__ is not __dataclass__cls:
707
736
  raise TypeError(self)
708
737
  return __dataclass__cls( # noqa
709
- backend=self.backend,
710
- ai=self.ai,
711
- state=self.state,
712
- user=self.user,
713
- rendering=self.rendering,
714
- tools=self.tools,
738
+ markdown=self.markdown,
715
739
  )
716
740
 
717
741
  __copy__.__qualname__ = f"{__dataclass__cls.__qualname__}.__copy__"
@@ -725,12 +749,7 @@ def _process_dataclass__2a3ef7bb5eaa4148e2dfb52433ac48683c100e35():
725
749
  if self.__class__ is not other.__class__:
726
750
  return NotImplemented
727
751
  return (
728
- self.backend == other.backend and
729
- self.ai == other.ai and
730
- self.state == other.state and
731
- self.user == other.user and
732
- self.rendering == other.rendering and
733
- self.tools == other.tools
752
+ self.markdown == other.markdown
734
753
  )
735
754
 
736
755
  __eq__.__qualname__ = f"{__dataclass__cls.__qualname__}.__eq__"
@@ -739,13 +758,7 @@ def _process_dataclass__2a3ef7bb5eaa4148e2dfb52433ac48683c100e35():
739
758
  setattr(__dataclass__cls, '__eq__', __eq__)
740
759
 
741
760
  __dataclass___setattr_frozen_fields = {
742
- 'backend',
743
- 'ai',
744
- 'state',
745
- 'user',
746
- 'rendering',
747
- 'tools',
748
- 'configurable_cls',
761
+ 'markdown',
749
762
  }
750
763
 
751
764
  def __setattr__(self, name, value):
@@ -762,13 +775,7 @@ def _process_dataclass__2a3ef7bb5eaa4148e2dfb52433ac48683c100e35():
762
775
  setattr(__dataclass__cls, '__setattr__', __setattr__)
763
776
 
764
777
  __dataclass___delattr_frozen_fields = {
765
- 'backend',
766
- 'ai',
767
- 'state',
768
- 'user',
769
- 'rendering',
770
- 'tools',
771
- 'configurable_cls',
778
+ 'markdown',
772
779
  }
773
780
 
774
781
  def __delattr__(self, name):
@@ -786,12 +793,7 @@ def _process_dataclass__2a3ef7bb5eaa4148e2dfb52433ac48683c100e35():
786
793
 
787
794
  def __hash__(self):
788
795
  return hash((
789
- self.backend,
790
- self.ai,
791
- self.state,
792
- self.user,
793
- self.rendering,
794
- self.tools,
796
+ self.markdown,
795
797
  ))
796
798
 
797
799
  __hash__.__qualname__ = f"{__dataclass__cls.__qualname__}.__hash__"
@@ -800,19 +802,9 @@ def _process_dataclass__2a3ef7bb5eaa4148e2dfb52433ac48683c100e35():
800
802
  def __init__(
801
803
  self,
802
804
  *,
803
- backend: __dataclass__init__fields__0__annotation = __dataclass__init__fields__0__default,
804
- ai: __dataclass__init__fields__1__annotation = __dataclass__init__fields__1__default,
805
- state: __dataclass__init__fields__2__annotation = __dataclass__init__fields__2__default,
806
- user: __dataclass__init__fields__3__annotation = __dataclass__init__fields__3__default,
807
- rendering: __dataclass__init__fields__4__annotation = __dataclass__init__fields__4__default,
808
- tools: __dataclass__init__fields__5__annotation = __dataclass__init__fields__5__default,
805
+ markdown: __dataclass__init__fields__0__annotation = __dataclass__init__fields__0__default,
809
806
  ) -> __dataclass__None:
810
- __dataclass__object_setattr(self, 'backend', backend)
811
- __dataclass__object_setattr(self, 'ai', ai)
812
- __dataclass__object_setattr(self, 'state', state)
813
- __dataclass__object_setattr(self, 'user', user)
814
- __dataclass__object_setattr(self, 'rendering', rendering)
815
- __dataclass__object_setattr(self, 'tools', tools)
807
+ __dataclass__object_setattr(self, 'markdown', markdown)
816
808
 
817
809
  __init__.__qualname__ = f"{__dataclass__cls.__qualname__}.__init__"
818
810
  if '__init__' in __dataclass__cls.__dict__:
@@ -822,12 +814,7 @@ def _process_dataclass__2a3ef7bb5eaa4148e2dfb52433ac48683c100e35():
822
814
  @__dataclass___recursive_repr()
823
815
  def __repr__(self):
824
816
  parts = []
825
- parts.append(f"backend={self.backend!r}")
826
- parts.append(f"ai={self.ai!r}")
827
- parts.append(f"state={self.state!r}")
828
- parts.append(f"user={self.user!r}")
829
- parts.append(f"rendering={self.rendering!r}")
830
- parts.append(f"tools={self.tools!r}")
817
+ parts.append(f"markdown={self.markdown!r}")
831
818
  return (
832
819
  f"{self.__class__.__qualname__}("
833
820
  f"{', '.join(parts)}"
@@ -844,37 +831,23 @@ def _process_dataclass__2a3ef7bb5eaa4148e2dfb52433ac48683c100e35():
844
831
 
845
832
  @_register(
846
833
  plan_repr=(
847
- "Plans(tup=(CopyPlan(fields=('content', 'backend')), EqPlan(fields=('content', 'backend')), FrozenPlan(fields=("
848
- "'content', 'backend', 'configurable_cls'), allow_dynamic_dunder_attrs=False), HashPlan(action='add', fields=('"
849
- "content', 'backend'), cache=False), InitPlan(fields=(InitPlan.Field(name='content', annotation=OpRef(name='ini"
850
- "t.fields.0.annotation'), default=None, default_factory=None, init=True, override=False, field_type=FieldType.I"
851
- "NSTANCE, coerce=None, validate=None, check_type=None), InitPlan.Field(name='backend', annotation=OpRef(name='i"
852
- "nit.fields.1.annotation'), default=OpRef(name='init.fields.1.default'), default_factory=None, init=True, overr"
853
- "ide=False, field_type=FieldType.INSTANCE, coerce=None, validate=None, check_type=None), InitPlan.Field(name='c"
854
- "onfigurable_cls', annotation=OpRef(name='init.fields.2.annotation'), default=None, default_factory=None, init="
855
- "True, override=False, field_type=FieldType.CLASS_VAR, coerce=None, validate=None, check_type=None)), self_para"
856
- "m='self', std_params=('content',), kw_only_params=('backend',), frozen=True, slots=False, post_init_params=Non"
857
- "e, init_fns=(), validate_fns=()), ReprPlan(fields=(ReprPlan.Field(name='content', kw_only=False, fn=None), Rep"
858
- "rPlan.Field(name='backend', kw_only=True, fn=None)), id=False, terse=False, default_fn=None)))"
859
- ),
860
- plan_repr_sha1='68fe24967af76c907a1aebfe8185412042d24fa8',
861
- op_ref_idents=(
862
- '__dataclass__init__fields__0__annotation',
863
- '__dataclass__init__fields__1__annotation',
864
- '__dataclass__init__fields__1__default',
834
+ "Plans(tup=(CopyPlan(fields=()), EqPlan(fields=()), FrozenPlan(fields=('configurable_cls',), allow_dynamic_dund"
835
+ "er_attrs=False), HashPlan(action='add', fields=(), cache=False), InitPlan(fields=(InitPlan.Field(name='configu"
836
+ "rable_cls', annotation=OpRef(name='init.fields.0.annotation'), default=None, default_factory=None, init=True, "
837
+ "override=False, field_type=FieldType.CLASS_VAR, coerce=None, validate=None, check_type=None),), self_param='se"
838
+ "lf', std_params=(), kw_only_params=(), frozen=True, slots=False, post_init_params=None, init_fns=(), validate_"
839
+ "fns=()), ReprPlan(fields=(), id=False, terse=False, default_fn=None)))"
865
840
  ),
841
+ plan_repr_sha1='d76e197a98f6f128efdad4ad19e3e15bf64e6652',
842
+ op_ref_idents=(),
866
843
  cls_names=(
867
- ('ommlds.cli.sessions.completion.session', 'CompletionSession.Config'),
868
- ('ommlds.cli.sessions.embedding.session', 'EmbeddingSession.Config'),
844
+ ('ommlds.cli.main', 'Session.Config'),
869
845
  ),
870
846
  )
871
- def _process_dataclass__68fe24967af76c907a1aebfe8185412042d24fa8():
847
+ def _process_dataclass__d76e197a98f6f128efdad4ad19e3e15bf64e6652():
872
848
  def _process_dataclass(
873
849
  *,
874
850
  __dataclass__cls,
875
- __dataclass__init__fields__0__annotation,
876
- __dataclass__init__fields__1__annotation,
877
- __dataclass__init__fields__1__default,
878
851
  __dataclass__FieldFnValidationError, # noqa
879
852
  __dataclass__FieldTypeValidationError, # noqa
880
853
  __dataclass__FnValidationError, # noqa
@@ -892,10 +865,7 @@ def _process_dataclass__68fe24967af76c907a1aebfe8185412042d24fa8():
892
865
  def __copy__(self):
893
866
  if self.__class__ is not __dataclass__cls:
894
867
  raise TypeError(self)
895
- return __dataclass__cls( # noqa
896
- content=self.content,
897
- backend=self.backend,
898
- )
868
+ return __dataclass__cls() # noqa
899
869
 
900
870
  __copy__.__qualname__ = f"{__dataclass__cls.__qualname__}.__copy__"
901
871
  if '__copy__' in __dataclass__cls.__dict__:
@@ -907,10 +877,7 @@ def _process_dataclass__68fe24967af76c907a1aebfe8185412042d24fa8():
907
877
  return True
908
878
  if self.__class__ is not other.__class__:
909
879
  return NotImplemented
910
- return (
911
- self.content == other.content and
912
- self.backend == other.backend
913
- )
880
+ return True
914
881
 
915
882
  __eq__.__qualname__ = f"{__dataclass__cls.__qualname__}.__eq__"
916
883
  if '__eq__' in __dataclass__cls.__dict__:
@@ -918,8 +885,6 @@ def _process_dataclass__68fe24967af76c907a1aebfe8185412042d24fa8():
918
885
  setattr(__dataclass__cls, '__eq__', __eq__)
919
886
 
920
887
  __dataclass___setattr_frozen_fields = {
921
- 'content',
922
- 'backend',
923
888
  'configurable_cls',
924
889
  }
925
890
 
@@ -937,8 +902,6 @@ def _process_dataclass__68fe24967af76c907a1aebfe8185412042d24fa8():
937
902
  setattr(__dataclass__cls, '__setattr__', __setattr__)
938
903
 
939
904
  __dataclass___delattr_frozen_fields = {
940
- 'content',
941
- 'backend',
942
905
  'configurable_cls',
943
906
  }
944
907
 
@@ -956,22 +919,15 @@ def _process_dataclass__68fe24967af76c907a1aebfe8185412042d24fa8():
956
919
  setattr(__dataclass__cls, '__delattr__', __delattr__)
957
920
 
958
921
  def __hash__(self):
959
- return hash((
960
- self.content,
961
- self.backend,
962
- ))
922
+ return hash(())
963
923
 
964
924
  __hash__.__qualname__ = f"{__dataclass__cls.__qualname__}.__hash__"
965
925
  setattr(__dataclass__cls, '__hash__', __hash__)
966
926
 
967
927
  def __init__(
968
928
  self,
969
- content: __dataclass__init__fields__0__annotation,
970
- *,
971
- backend: __dataclass__init__fields__1__annotation = __dataclass__init__fields__1__default,
972
929
  ) -> __dataclass__None:
973
- __dataclass__object_setattr(self, 'content', content)
974
- __dataclass__object_setattr(self, 'backend', backend)
930
+ pass
975
931
 
976
932
  __init__.__qualname__ = f"{__dataclass__cls.__qualname__}.__init__"
977
933
  if '__init__' in __dataclass__cls.__dict__:
@@ -981,8 +937,6 @@ def _process_dataclass__68fe24967af76c907a1aebfe8185412042d24fa8():
981
937
  @__dataclass___recursive_repr()
982
938
  def __repr__(self):
983
939
  parts = []
984
- parts.append(f"content={self.content!r}")
985
- parts.append(f"backend={self.backend!r}")
986
940
  return (
987
941
  f"{self.__class__.__qualname__}("
988
942
  f"{', '.join(parts)}"
@@ -999,34 +953,29 @@ def _process_dataclass__68fe24967af76c907a1aebfe8185412042d24fa8():
999
953
 
1000
954
  @_register(
1001
955
  plan_repr=(
1002
- "Plans(tup=(CopyPlan(fields=('phase', 'fn')), EqPlan(fields=('phase', 'fn')), FrozenPlan(fields=('phase', 'fn')"
1003
- ", allow_dynamic_dunder_attrs=False), HashPlan(action='add', fields=('phase', 'fn'), cache=False), InitPlan(fie"
1004
- "lds=(InitPlan.Field(name='phase', annotation=OpRef(name='init.fields.0.annotation'), default=None, default_fac"
1005
- "tory=None, init=True, override=False, field_type=FieldType.INSTANCE, coerce=None, validate=OpRef(name='init.fi"
1006
- "elds.0.validate'), check_type=None), InitPlan.Field(name='fn', annotation=OpRef(name='init.fields.1.annotation"
1007
- "'), default=None, default_factory=None, init=True, override=False, field_type=FieldType.INSTANCE, coerce=None,"
1008
- " validate=None, check_type=None)), self_param='self', std_params=('phase', 'fn'), kw_only_params=(), frozen=Tr"
1009
- "ue, slots=False, post_init_params=None, init_fns=(), validate_fns=()), ReprPlan(fields=(ReprPlan.Field(name='p"
1010
- "hase', kw_only=False, fn=None), ReprPlan.Field(name='fn', kw_only=False, fn=None)), id=False, terse=False, def"
1011
- "ault_fn=None)))"
956
+ "Plans(tup=(CopyPlan(fields=('state',)), EqPlan(fields=('state',)), FrozenPlan(fields=('state',), allow_dynamic"
957
+ "_dunder_attrs=False), HashPlan(action='add', fields=('state',), cache=False), InitPlan(fields=(InitPlan.Field("
958
+ "name='state', annotation=OpRef(name='init.fields.0.annotation'), default=OpRef(name='init.fields.0.default'), "
959
+ "default_factory=None, init=True, override=False, field_type=FieldType.INSTANCE, coerce=None, validate=None, ch"
960
+ "eck_type=None),), self_param='self', std_params=(), kw_only_params=('state',), frozen=True, slots=False, post_"
961
+ "init_params=None, init_fns=(), validate_fns=()), ReprPlan(fields=(ReprPlan.Field(name='state', kw_only=True, f"
962
+ "n=None),), id=False, terse=False, default_fn=None)))"
1012
963
  ),
1013
- plan_repr_sha1='927265170439340895560333250bc087fa726eff',
964
+ plan_repr_sha1='ecd4e8fdaa04b3fa64e0c01eea919a83fc862e6a',
1014
965
  op_ref_idents=(
1015
966
  '__dataclass__init__fields__0__annotation',
1016
- '__dataclass__init__fields__0__validate',
1017
- '__dataclass__init__fields__1__annotation',
967
+ '__dataclass__init__fields__0__default',
1018
968
  ),
1019
969
  cls_names=(
1020
- ('ommlds.cli.sessions.chat.driver', 'ChatPhaseCallback'),
970
+ ('ommlds.cli.main', 'StateConfig'),
1021
971
  ),
1022
972
  )
1023
- def _process_dataclass__927265170439340895560333250bc087fa726eff():
973
+ def _process_dataclass__ecd4e8fdaa04b3fa64e0c01eea919a83fc862e6a():
1024
974
  def _process_dataclass(
1025
975
  *,
1026
976
  __dataclass__cls,
1027
977
  __dataclass__init__fields__0__annotation,
1028
- __dataclass__init__fields__0__validate,
1029
- __dataclass__init__fields__1__annotation,
978
+ __dataclass__init__fields__0__default,
1030
979
  __dataclass__FieldFnValidationError, # noqa
1031
980
  __dataclass__FieldTypeValidationError, # noqa
1032
981
  __dataclass__FnValidationError, # noqa
@@ -1045,8 +994,7 @@ def _process_dataclass__927265170439340895560333250bc087fa726eff():
1045
994
  if self.__class__ is not __dataclass__cls:
1046
995
  raise TypeError(self)
1047
996
  return __dataclass__cls( # noqa
1048
- phase=self.phase,
1049
- fn=self.fn,
997
+ state=self.state,
1050
998
  )
1051
999
 
1052
1000
  __copy__.__qualname__ = f"{__dataclass__cls.__qualname__}.__copy__"
@@ -1060,8 +1008,7 @@ def _process_dataclass__927265170439340895560333250bc087fa726eff():
1060
1008
  if self.__class__ is not other.__class__:
1061
1009
  return NotImplemented
1062
1010
  return (
1063
- self.phase == other.phase and
1064
- self.fn == other.fn
1011
+ self.state == other.state
1065
1012
  )
1066
1013
 
1067
1014
  __eq__.__qualname__ = f"{__dataclass__cls.__qualname__}.__eq__"
@@ -1070,8 +1017,7 @@ def _process_dataclass__927265170439340895560333250bc087fa726eff():
1070
1017
  setattr(__dataclass__cls, '__eq__', __eq__)
1071
1018
 
1072
1019
  __dataclass___setattr_frozen_fields = {
1073
- 'phase',
1074
- 'fn',
1020
+ 'state',
1075
1021
  }
1076
1022
 
1077
1023
  def __setattr__(self, name, value):
@@ -1088,8 +1034,7 @@ def _process_dataclass__927265170439340895560333250bc087fa726eff():
1088
1034
  setattr(__dataclass__cls, '__setattr__', __setattr__)
1089
1035
 
1090
1036
  __dataclass___delattr_frozen_fields = {
1091
- 'phase',
1092
- 'fn',
1037
+ 'state',
1093
1038
  }
1094
1039
 
1095
1040
  def __delattr__(self, name):
@@ -1107,8 +1052,7 @@ def _process_dataclass__927265170439340895560333250bc087fa726eff():
1107
1052
 
1108
1053
  def __hash__(self):
1109
1054
  return hash((
1110
- self.phase,
1111
- self.fn,
1055
+ self.state,
1112
1056
  ))
1113
1057
 
1114
1058
  __hash__.__qualname__ = f"{__dataclass__cls.__qualname__}.__hash__"
@@ -1116,18 +1060,10 @@ def _process_dataclass__927265170439340895560333250bc087fa726eff():
1116
1060
 
1117
1061
  def __init__(
1118
1062
  self,
1119
- phase: __dataclass__init__fields__0__annotation,
1120
- fn: __dataclass__init__fields__1__annotation,
1063
+ *,
1064
+ state: __dataclass__init__fields__0__annotation = __dataclass__init__fields__0__default,
1121
1065
  ) -> __dataclass__None:
1122
- if not __dataclass__init__fields__0__validate(phase):
1123
- raise __dataclass__FieldFnValidationError(
1124
- obj=self,
1125
- fn=__dataclass__init__fields__0__validate,
1126
- field='phase',
1127
- value=phase,
1128
- )
1129
- __dataclass__object_setattr(self, 'phase', phase)
1130
- __dataclass__object_setattr(self, 'fn', fn)
1066
+ __dataclass__object_setattr(self, 'state', state)
1131
1067
 
1132
1068
  __init__.__qualname__ = f"{__dataclass__cls.__qualname__}.__init__"
1133
1069
  if '__init__' in __dataclass__cls.__dict__:
@@ -1137,8 +1073,7 @@ def _process_dataclass__927265170439340895560333250bc087fa726eff():
1137
1073
  @__dataclass___recursive_repr()
1138
1074
  def __repr__(self):
1139
1075
  parts = []
1140
- parts.append(f"phase={self.phase!r}")
1141
- parts.append(f"fn={self.fn!r}")
1076
+ parts.append(f"state={self.state!r}")
1142
1077
  return (
1143
1078
  f"{self.__class__.__qualname__}("
1144
1079
  f"{', '.join(parts)}"
@@ -1155,51 +1090,24 @@ def _process_dataclass__927265170439340895560333250bc087fa726eff():
1155
1090
 
1156
1091
  @_register(
1157
1092
  plan_repr=(
1158
- "Plans(tup=(CopyPlan(fields=('name', 'created_at', 'updated_at', 'chat')), EqPlan(fields=('name', 'created_at',"
1159
- " 'updated_at', 'chat')), FrozenPlan(fields=('name', 'created_at', 'updated_at', 'chat'), allow_dynamic_dunder_"
1160
- "attrs=False), HashPlan(action='add', fields=('name', 'created_at', 'updated_at', 'chat'), cache=False), InitPl"
1161
- "an(fields=(InitPlan.Field(name='name', annotation=OpRef(name='init.fields.0.annotation'), default=OpRef(name='"
1162
- "init.fields.0.default'), default_factory=None, init=True, override=False, field_type=FieldType.INSTANCE, coerc"
1163
- "e=None, validate=None, check_type=None), InitPlan.Field(name='created_at', annotation=OpRef(name='init.fields."
1164
- "1.annotation'), default=None, default_factory=OpRef(name='init.fields.1.default_factory'), init=True, override"
1165
- "=False, field_type=FieldType.INSTANCE, coerce=None, validate=None, check_type=None), InitPlan.Field(name='upda"
1166
- "ted_at', annotation=OpRef(name='init.fields.2.annotation'), default=None, default_factory=OpRef(name='init.fie"
1167
- "lds.2.default_factory'), init=True, override=False, field_type=FieldType.INSTANCE, coerce=None, validate=None,"
1168
- " check_type=None), InitPlan.Field(name='chat', annotation=OpRef(name='init.fields.3.annotation'), default=OpRe"
1169
- "f(name='init.fields.3.default'), default_factory=None, init=True, override=False, field_type=FieldType.INSTANC"
1170
- "E, coerce=None, validate=None, check_type=None)), self_param='self', std_params=('name', 'created_at', 'update"
1171
- "d_at', 'chat'), kw_only_params=(), frozen=True, slots=False, post_init_params=None, init_fns=(), validate_fns="
1172
- "()), ReprPlan(fields=(ReprPlan.Field(name='name', kw_only=False, fn=None), ReprPlan.Field(name='created_at', k"
1173
- "w_only=False, fn=None), ReprPlan.Field(name='updated_at', kw_only=False, fn=None), ReprPlan.Field(name='chat',"
1174
- " kw_only=False, fn=None)), id=False, terse=False, default_fn=None)))"
1175
- ),
1176
- plan_repr_sha1='9f7e26a87dd163b610f38caa1ce9b3c6356e632a',
1177
- op_ref_idents=(
1178
- '__dataclass__init__fields__0__annotation',
1179
- '__dataclass__init__fields__0__default',
1180
- '__dataclass__init__fields__1__annotation',
1181
- '__dataclass__init__fields__1__default_factory',
1182
- '__dataclass__init__fields__2__annotation',
1183
- '__dataclass__init__fields__2__default_factory',
1184
- '__dataclass__init__fields__3__annotation',
1185
- '__dataclass__init__fields__3__default',
1093
+ "Plans(tup=(CopyPlan(fields=()), EqPlan(fields=()), FrozenPlan(fields=(), allow_dynamic_dunder_attrs=False), Ha"
1094
+ "shPlan(action='add', fields=(), cache=False), InitPlan(fields=(), self_param='self', std_params=(), kw_only_pa"
1095
+ "rams=(), frozen=True, slots=False, post_init_params=None, init_fns=(), validate_fns=()), ReprPlan(fields=(), i"
1096
+ "d=False, terse=False, default_fn=None)))"
1186
1097
  ),
1098
+ plan_repr_sha1='e1f7edfe11f2b721d6a656c46e698fedc95461bb',
1099
+ op_ref_idents=(),
1187
1100
  cls_names=(
1188
- ('ommlds.cli.sessions.chat.driver', 'ChatState'),
1101
+ ('ommlds.cli.main', 'ToolSetConfig'),
1102
+ ('ommlds.cli.sessions.chat.tools.fs.configs', 'FsToolSetConfig'),
1103
+ ('ommlds.cli.sessions.chat.tools.todo.configs', 'TodoToolSetConfig'),
1104
+ ('ommlds.cli.sessions.chat.tools.weather.configs', 'WeatherToolSetConfig'),
1189
1105
  ),
1190
1106
  )
1191
- def _process_dataclass__9f7e26a87dd163b610f38caa1ce9b3c6356e632a():
1107
+ def _process_dataclass__e1f7edfe11f2b721d6a656c46e698fedc95461bb():
1192
1108
  def _process_dataclass(
1193
1109
  *,
1194
1110
  __dataclass__cls,
1195
- __dataclass__init__fields__0__annotation,
1196
- __dataclass__init__fields__0__default,
1197
- __dataclass__init__fields__1__annotation,
1198
- __dataclass__init__fields__1__default_factory,
1199
- __dataclass__init__fields__2__annotation,
1200
- __dataclass__init__fields__2__default_factory,
1201
- __dataclass__init__fields__3__annotation,
1202
- __dataclass__init__fields__3__default,
1203
1111
  __dataclass__FieldFnValidationError, # noqa
1204
1112
  __dataclass__FieldTypeValidationError, # noqa
1205
1113
  __dataclass__FnValidationError, # noqa
@@ -1217,12 +1125,7 @@ def _process_dataclass__9f7e26a87dd163b610f38caa1ce9b3c6356e632a():
1217
1125
  def __copy__(self):
1218
1126
  if self.__class__ is not __dataclass__cls:
1219
1127
  raise TypeError(self)
1220
- return __dataclass__cls( # noqa
1221
- name=self.name,
1222
- created_at=self.created_at,
1223
- updated_at=self.updated_at,
1224
- chat=self.chat,
1225
- )
1128
+ return __dataclass__cls() # noqa
1226
1129
 
1227
1130
  __copy__.__qualname__ = f"{__dataclass__cls.__qualname__}.__copy__"
1228
1131
  if '__copy__' in __dataclass__cls.__dict__:
@@ -1234,29 +1137,16 @@ def _process_dataclass__9f7e26a87dd163b610f38caa1ce9b3c6356e632a():
1234
1137
  return True
1235
1138
  if self.__class__ is not other.__class__:
1236
1139
  return NotImplemented
1237
- return (
1238
- self.name == other.name and
1239
- self.created_at == other.created_at and
1240
- self.updated_at == other.updated_at and
1241
- self.chat == other.chat
1242
- )
1140
+ return True
1243
1141
 
1244
1142
  __eq__.__qualname__ = f"{__dataclass__cls.__qualname__}.__eq__"
1245
1143
  if '__eq__' in __dataclass__cls.__dict__:
1246
1144
  raise __dataclass__TypeError(f"Cannot overwrite attribute __eq__ in class {__dataclass__cls.__name__}")
1247
1145
  setattr(__dataclass__cls, '__eq__', __eq__)
1248
1146
 
1249
- __dataclass___setattr_frozen_fields = {
1250
- 'name',
1251
- 'created_at',
1252
- 'updated_at',
1253
- 'chat',
1254
- }
1255
-
1256
1147
  def __setattr__(self, name, value):
1257
1148
  if (
1258
1149
  type(self) is __dataclass__cls
1259
- or name in __dataclass___setattr_frozen_fields
1260
1150
  ):
1261
1151
  raise __dataclass__FrozenInstanceError(f"cannot assign to field {name!r}")
1262
1152
  super(__dataclass__cls, self).__setattr__(name, value)
@@ -1266,17 +1156,9 @@ def _process_dataclass__9f7e26a87dd163b610f38caa1ce9b3c6356e632a():
1266
1156
  raise __dataclass__TypeError(f"Cannot overwrite attribute __setattr__ in class {__dataclass__cls.__name__}")
1267
1157
  setattr(__dataclass__cls, '__setattr__', __setattr__)
1268
1158
 
1269
- __dataclass___delattr_frozen_fields = {
1270
- 'name',
1271
- 'created_at',
1272
- 'updated_at',
1273
- 'chat',
1274
- }
1275
-
1276
1159
  def __delattr__(self, name):
1277
1160
  if (
1278
1161
  type(self) is __dataclass__cls
1279
- or name in __dataclass___delattr_frozen_fields
1280
1162
  ):
1281
1163
  raise __dataclass__FrozenInstanceError(f"cannot delete field {name!r}")
1282
1164
  super(__dataclass__cls, self).__delattr__(name)
@@ -1287,31 +1169,15 @@ def _process_dataclass__9f7e26a87dd163b610f38caa1ce9b3c6356e632a():
1287
1169
  setattr(__dataclass__cls, '__delattr__', __delattr__)
1288
1170
 
1289
1171
  def __hash__(self):
1290
- return hash((
1291
- self.name,
1292
- self.created_at,
1293
- self.updated_at,
1294
- self.chat,
1295
- ))
1172
+ return hash(())
1296
1173
 
1297
1174
  __hash__.__qualname__ = f"{__dataclass__cls.__qualname__}.__hash__"
1298
1175
  setattr(__dataclass__cls, '__hash__', __hash__)
1299
1176
 
1300
1177
  def __init__(
1301
1178
  self,
1302
- name: __dataclass__init__fields__0__annotation = __dataclass__init__fields__0__default,
1303
- created_at: __dataclass__init__fields__1__annotation = __dataclass__HAS_DEFAULT_FACTORY,
1304
- updated_at: __dataclass__init__fields__2__annotation = __dataclass__HAS_DEFAULT_FACTORY,
1305
- chat: __dataclass__init__fields__3__annotation = __dataclass__init__fields__3__default,
1306
1179
  ) -> __dataclass__None:
1307
- if created_at is __dataclass__HAS_DEFAULT_FACTORY:
1308
- created_at = __dataclass__init__fields__1__default_factory()
1309
- if updated_at is __dataclass__HAS_DEFAULT_FACTORY:
1310
- updated_at = __dataclass__init__fields__2__default_factory()
1311
- __dataclass__object_setattr(self, 'name', name)
1312
- __dataclass__object_setattr(self, 'created_at', created_at)
1313
- __dataclass__object_setattr(self, 'updated_at', updated_at)
1314
- __dataclass__object_setattr(self, 'chat', chat)
1180
+ pass
1315
1181
 
1316
1182
  __init__.__qualname__ = f"{__dataclass__cls.__qualname__}.__init__"
1317
1183
  if '__init__' in __dataclass__cls.__dict__:
@@ -1321,10 +1187,6 @@ def _process_dataclass__9f7e26a87dd163b610f38caa1ce9b3c6356e632a():
1321
1187
  @__dataclass___recursive_repr()
1322
1188
  def __repr__(self):
1323
1189
  parts = []
1324
- parts.append(f"name={self.name!r}")
1325
- parts.append(f"created_at={self.created_at!r}")
1326
- parts.append(f"updated_at={self.updated_at!r}")
1327
- parts.append(f"chat={self.chat!r}")
1328
1190
  return (
1329
1191
  f"{self.__class__.__qualname__}("
1330
1192
  f"{', '.join(parts)}"
@@ -1341,27 +1203,23 @@ def _process_dataclass__9f7e26a87dd163b610f38caa1ce9b3c6356e632a():
1341
1203
 
1342
1204
  @_register(
1343
1205
  plan_repr=(
1344
- "Plans(tup=(CopyPlan(fields=('initial_system_content', 'initial_user_content', 'interactive', 'use_readline')),"
1345
- " EqPlan(fields=('initial_system_content', 'initial_user_content', 'interactive', 'use_readline')), FrozenPlan("
1346
- "fields=('initial_system_content', 'initial_user_content', 'interactive', 'use_readline'), allow_dynamic_dunder"
1347
- "_attrs=False), HashPlan(action='add', fields=('initial_system_content', 'initial_user_content', 'interactive',"
1348
- " 'use_readline'), cache=False), InitPlan(fields=(InitPlan.Field(name='initial_system_content', annotation=OpRe"
1349
- "f(name='init.fields.0.annotation'), default=OpRef(name='init.fields.0.default'), default_factory=None, init=Tr"
1350
- "ue, override=False, field_type=FieldType.INSTANCE, coerce=None, validate=None, check_type=None), InitPlan.Fiel"
1351
- "d(name='initial_user_content', annotation=OpRef(name='init.fields.1.annotation'), default=OpRef(name='init.fie"
1352
- "lds.1.default'), default_factory=None, init=True, override=False, field_type=FieldType.INSTANCE, coerce=None, "
1353
- "validate=None, check_type=None), InitPlan.Field(name='interactive', annotation=OpRef(name='init.fields.2.annot"
1354
- "ation'), default=OpRef(name='init.fields.2.default'), default_factory=None, init=True, override=False, field_t"
1355
- "ype=FieldType.INSTANCE, coerce=None, validate=None, check_type=None), InitPlan.Field(name='use_readline', anno"
1356
- "tation=OpRef(name='init.fields.3.annotation'), default=OpRef(name='init.fields.3.default'), default_factory=No"
1357
- "ne, init=True, override=False, field_type=FieldType.INSTANCE, coerce=None, validate=None, check_type=None)), s"
1358
- "elf_param='self', std_params=(), kw_only_params=('initial_system_content', 'initial_user_content', 'interactiv"
1359
- "e', 'use_readline'), frozen=True, slots=False, post_init_params=None, init_fns=(), validate_fns=()), ReprPlan("
1360
- "fields=(ReprPlan.Field(name='initial_system_content', kw_only=True, fn=None), ReprPlan.Field(name='initial_use"
1361
- "r_content', kw_only=True, fn=None), ReprPlan.Field(name='interactive', kw_only=True, fn=None), ReprPlan.Field("
1362
- "name='use_readline', kw_only=True, fn=None)), id=False, terse=False, default_fn=None)))"
1206
+ "Plans(tup=(CopyPlan(fields=('silent', 'dangerous_no_confirmation', 'enabled_tools')), EqPlan(fields=('silent',"
1207
+ " 'dangerous_no_confirmation', 'enabled_tools')), FrozenPlan(fields=('silent', 'dangerous_no_confirmation', 'en"
1208
+ "abled_tools'), allow_dynamic_dunder_attrs=False), HashPlan(action='add', fields=('silent', 'dangerous_no_confi"
1209
+ "rmation', 'enabled_tools'), cache=False), InitPlan(fields=(InitPlan.Field(name='silent', annotation=OpRef(name"
1210
+ "='init.fields.0.annotation'), default=OpRef(name='init.fields.0.default'), default_factory=None, init=True, ov"
1211
+ "erride=False, field_type=FieldType.INSTANCE, coerce=None, validate=None, check_type=None), InitPlan.Field(name"
1212
+ "='dangerous_no_confirmation', annotation=OpRef(name='init.fields.1.annotation'), default=OpRef(name='init.fiel"
1213
+ "ds.1.default'), default_factory=None, init=True, override=False, field_type=FieldType.INSTANCE, coerce=None, v"
1214
+ "alidate=None, check_type=None), InitPlan.Field(name='enabled_tools', annotation=OpRef(name='init.fields.2.anno"
1215
+ "tation'), default=OpRef(name='init.fields.2.default'), default_factory=None, init=True, override=False, field_"
1216
+ "type=FieldType.INSTANCE, coerce=None, validate=None, check_type=None)), self_param='self', std_params=(), kw_o"
1217
+ "nly_params=('silent', 'dangerous_no_confirmation', 'enabled_tools'), frozen=True, slots=False, post_init_param"
1218
+ "s=None, init_fns=(), validate_fns=()), ReprPlan(fields=(ReprPlan.Field(name='silent', kw_only=True, fn=None), "
1219
+ "ReprPlan.Field(name='dangerous_no_confirmation', kw_only=True, fn=None), ReprPlan.Field(name='enabled_tools', "
1220
+ "kw_only=True, fn=None)), id=False, terse=False, default_fn=None)))"
1363
1221
  ),
1364
- plan_repr_sha1='ad8f706819608fb705450357f229d03ce012b8db',
1222
+ plan_repr_sha1='db9677a2fd3b495102177f315b60f0d1469bbee9',
1365
1223
  op_ref_idents=(
1366
1224
  '__dataclass__init__fields__0__annotation',
1367
1225
  '__dataclass__init__fields__0__default',
@@ -1369,14 +1227,12 @@ def _process_dataclass__9f7e26a87dd163b610f38caa1ce9b3c6356e632a():
1369
1227
  '__dataclass__init__fields__1__default',
1370
1228
  '__dataclass__init__fields__2__annotation',
1371
1229
  '__dataclass__init__fields__2__default',
1372
- '__dataclass__init__fields__3__annotation',
1373
- '__dataclass__init__fields__3__default',
1374
1230
  ),
1375
1231
  cls_names=(
1376
- ('ommlds.cli.main', 'UserConfig'),
1232
+ ('ommlds.cli.main', 'ToolsConfig'),
1377
1233
  ),
1378
1234
  )
1379
- def _process_dataclass__ad8f706819608fb705450357f229d03ce012b8db():
1235
+ def _process_dataclass__db9677a2fd3b495102177f315b60f0d1469bbee9():
1380
1236
  def _process_dataclass(
1381
1237
  *,
1382
1238
  __dataclass__cls,
@@ -1386,8 +1242,6 @@ def _process_dataclass__ad8f706819608fb705450357f229d03ce012b8db():
1386
1242
  __dataclass__init__fields__1__default,
1387
1243
  __dataclass__init__fields__2__annotation,
1388
1244
  __dataclass__init__fields__2__default,
1389
- __dataclass__init__fields__3__annotation,
1390
- __dataclass__init__fields__3__default,
1391
1245
  __dataclass__FieldFnValidationError, # noqa
1392
1246
  __dataclass__FieldTypeValidationError, # noqa
1393
1247
  __dataclass__FnValidationError, # noqa
@@ -1406,10 +1260,9 @@ def _process_dataclass__ad8f706819608fb705450357f229d03ce012b8db():
1406
1260
  if self.__class__ is not __dataclass__cls:
1407
1261
  raise TypeError(self)
1408
1262
  return __dataclass__cls( # noqa
1409
- initial_system_content=self.initial_system_content,
1410
- initial_user_content=self.initial_user_content,
1411
- interactive=self.interactive,
1412
- use_readline=self.use_readline,
1263
+ silent=self.silent,
1264
+ dangerous_no_confirmation=self.dangerous_no_confirmation,
1265
+ enabled_tools=self.enabled_tools,
1413
1266
  )
1414
1267
 
1415
1268
  __copy__.__qualname__ = f"{__dataclass__cls.__qualname__}.__copy__"
@@ -1423,10 +1276,9 @@ def _process_dataclass__ad8f706819608fb705450357f229d03ce012b8db():
1423
1276
  if self.__class__ is not other.__class__:
1424
1277
  return NotImplemented
1425
1278
  return (
1426
- self.initial_system_content == other.initial_system_content and
1427
- self.initial_user_content == other.initial_user_content and
1428
- self.interactive == other.interactive and
1429
- self.use_readline == other.use_readline
1279
+ self.silent == other.silent and
1280
+ self.dangerous_no_confirmation == other.dangerous_no_confirmation and
1281
+ self.enabled_tools == other.enabled_tools
1430
1282
  )
1431
1283
 
1432
1284
  __eq__.__qualname__ = f"{__dataclass__cls.__qualname__}.__eq__"
@@ -1435,10 +1287,9 @@ def _process_dataclass__ad8f706819608fb705450357f229d03ce012b8db():
1435
1287
  setattr(__dataclass__cls, '__eq__', __eq__)
1436
1288
 
1437
1289
  __dataclass___setattr_frozen_fields = {
1438
- 'initial_system_content',
1439
- 'initial_user_content',
1440
- 'interactive',
1441
- 'use_readline',
1290
+ 'silent',
1291
+ 'dangerous_no_confirmation',
1292
+ 'enabled_tools',
1442
1293
  }
1443
1294
 
1444
1295
  def __setattr__(self, name, value):
@@ -1455,10 +1306,9 @@ def _process_dataclass__ad8f706819608fb705450357f229d03ce012b8db():
1455
1306
  setattr(__dataclass__cls, '__setattr__', __setattr__)
1456
1307
 
1457
1308
  __dataclass___delattr_frozen_fields = {
1458
- 'initial_system_content',
1459
- 'initial_user_content',
1460
- 'interactive',
1461
- 'use_readline',
1309
+ 'silent',
1310
+ 'dangerous_no_confirmation',
1311
+ 'enabled_tools',
1462
1312
  }
1463
1313
 
1464
1314
  def __delattr__(self, name):
@@ -1476,10 +1326,9 @@ def _process_dataclass__ad8f706819608fb705450357f229d03ce012b8db():
1476
1326
 
1477
1327
  def __hash__(self):
1478
1328
  return hash((
1479
- self.initial_system_content,
1480
- self.initial_user_content,
1481
- self.interactive,
1482
- self.use_readline,
1329
+ self.silent,
1330
+ self.dangerous_no_confirmation,
1331
+ self.enabled_tools,
1483
1332
  ))
1484
1333
 
1485
1334
  __hash__.__qualname__ = f"{__dataclass__cls.__qualname__}.__hash__"
@@ -1488,15 +1337,13 @@ def _process_dataclass__ad8f706819608fb705450357f229d03ce012b8db():
1488
1337
  def __init__(
1489
1338
  self,
1490
1339
  *,
1491
- initial_system_content: __dataclass__init__fields__0__annotation = __dataclass__init__fields__0__default,
1492
- initial_user_content: __dataclass__init__fields__1__annotation = __dataclass__init__fields__1__default,
1493
- interactive: __dataclass__init__fields__2__annotation = __dataclass__init__fields__2__default,
1494
- use_readline: __dataclass__init__fields__3__annotation = __dataclass__init__fields__3__default,
1340
+ silent: __dataclass__init__fields__0__annotation = __dataclass__init__fields__0__default,
1341
+ dangerous_no_confirmation: __dataclass__init__fields__1__annotation = __dataclass__init__fields__1__default,
1342
+ enabled_tools: __dataclass__init__fields__2__annotation = __dataclass__init__fields__2__default,
1495
1343
  ) -> __dataclass__None:
1496
- __dataclass__object_setattr(self, 'initial_system_content', initial_system_content)
1497
- __dataclass__object_setattr(self, 'initial_user_content', initial_user_content)
1498
- __dataclass__object_setattr(self, 'interactive', interactive)
1499
- __dataclass__object_setattr(self, 'use_readline', use_readline)
1344
+ __dataclass__object_setattr(self, 'silent', silent)
1345
+ __dataclass__object_setattr(self, 'dangerous_no_confirmation', dangerous_no_confirmation)
1346
+ __dataclass__object_setattr(self, 'enabled_tools', enabled_tools)
1500
1347
 
1501
1348
  __init__.__qualname__ = f"{__dataclass__cls.__qualname__}.__init__"
1502
1349
  if '__init__' in __dataclass__cls.__dict__:
@@ -1506,10 +1353,9 @@ def _process_dataclass__ad8f706819608fb705450357f229d03ce012b8db():
1506
1353
  @__dataclass___recursive_repr()
1507
1354
  def __repr__(self):
1508
1355
  parts = []
1509
- parts.append(f"initial_system_content={self.initial_system_content!r}")
1510
- parts.append(f"initial_user_content={self.initial_user_content!r}")
1511
- parts.append(f"interactive={self.interactive!r}")
1512
- parts.append(f"use_readline={self.use_readline!r}")
1356
+ parts.append(f"silent={self.silent!r}")
1357
+ parts.append(f"dangerous_no_confirmation={self.dangerous_no_confirmation!r}")
1358
+ parts.append(f"enabled_tools={self.enabled_tools!r}")
1513
1359
  return (
1514
1360
  f"{self.__class__.__qualname__}("
1515
1361
  f"{', '.join(parts)}"
@@ -1526,32 +1372,53 @@ def _process_dataclass__ad8f706819608fb705450357f229d03ce012b8db():
1526
1372
 
1527
1373
  @_register(
1528
1374
  plan_repr=(
1529
- "Plans(tup=(CopyPlan(fields=('version', 'payload')), EqPlan(fields=('version', 'payload')), FrozenPlan(fields=("
1530
- "'version', 'payload'), allow_dynamic_dunder_attrs=False), HashPlan(action='add', fields=('version', 'payload')"
1531
- ", cache=False), InitPlan(fields=(InitPlan.Field(name='version', annotation=OpRef(name='init.fields.0.annotatio"
1532
- "n'), default=None, default_factory=None, init=True, override=False, field_type=FieldType.INSTANCE, coerce=None"
1533
- ", validate=None, check_type=None), InitPlan.Field(name='payload', annotation=OpRef(name='init.fields.1.annotat"
1534
- "ion'), default=None, default_factory=None, init=True, override=False, field_type=FieldType.INSTANCE, coerce=No"
1535
- "ne, validate=None, check_type=None)), self_param='self', std_params=('version', 'payload'), kw_only_params=(),"
1536
- " frozen=True, slots=False, post_init_params=None, init_fns=(), validate_fns=()), ReprPlan(fields=(ReprPlan.Fie"
1537
- "ld(name='version', kw_only=False, fn=None), ReprPlan.Field(name='payload', kw_only=False, fn=None)), id=False,"
1538
- " terse=False, default_fn=None)))"
1375
+ "Plans(tup=(CopyPlan(fields=('initial_system_content', 'initial_user_content', 'interactive', 'use_readline')),"
1376
+ " EqPlan(fields=('initial_system_content', 'initial_user_content', 'interactive', 'use_readline')), FrozenPlan("
1377
+ "fields=('initial_system_content', 'initial_user_content', 'interactive', 'use_readline'), allow_dynamic_dunder"
1378
+ "_attrs=False), HashPlan(action='add', fields=('initial_system_content', 'initial_user_content', 'interactive',"
1379
+ " 'use_readline'), cache=False), InitPlan(fields=(InitPlan.Field(name='initial_system_content', annotation=OpRe"
1380
+ "f(name='init.fields.0.annotation'), default=OpRef(name='init.fields.0.default'), default_factory=None, init=Tr"
1381
+ "ue, override=False, field_type=FieldType.INSTANCE, coerce=None, validate=None, check_type=None), InitPlan.Fiel"
1382
+ "d(name='initial_user_content', annotation=OpRef(name='init.fields.1.annotation'), default=OpRef(name='init.fie"
1383
+ "lds.1.default'), default_factory=None, init=True, override=False, field_type=FieldType.INSTANCE, coerce=None, "
1384
+ "validate=None, check_type=None), InitPlan.Field(name='interactive', annotation=OpRef(name='init.fields.2.annot"
1385
+ "ation'), default=OpRef(name='init.fields.2.default'), default_factory=None, init=True, override=False, field_t"
1386
+ "ype=FieldType.INSTANCE, coerce=None, validate=None, check_type=None), InitPlan.Field(name='use_readline', anno"
1387
+ "tation=OpRef(name='init.fields.3.annotation'), default=OpRef(name='init.fields.3.default'), default_factory=No"
1388
+ "ne, init=True, override=False, field_type=FieldType.INSTANCE, coerce=None, validate=None, check_type=None)), s"
1389
+ "elf_param='self', std_params=(), kw_only_params=('initial_system_content', 'initial_user_content', 'interactiv"
1390
+ "e', 'use_readline'), frozen=True, slots=False, post_init_params=None, init_fns=(), validate_fns=()), ReprPlan("
1391
+ "fields=(ReprPlan.Field(name='initial_system_content', kw_only=True, fn=None), ReprPlan.Field(name='initial_use"
1392
+ "r_content', kw_only=True, fn=None), ReprPlan.Field(name='interactive', kw_only=True, fn=None), ReprPlan.Field("
1393
+ "name='use_readline', kw_only=True, fn=None)), id=False, terse=False, default_fn=None)))"
1539
1394
  ),
1540
- plan_repr_sha1='be0d400bb9a95f7b7d493de698bc2bcac269b46e',
1395
+ plan_repr_sha1='ad8f706819608fb705450357f229d03ce012b8db',
1541
1396
  op_ref_idents=(
1542
1397
  '__dataclass__init__fields__0__annotation',
1398
+ '__dataclass__init__fields__0__default',
1543
1399
  '__dataclass__init__fields__1__annotation',
1400
+ '__dataclass__init__fields__1__default',
1401
+ '__dataclass__init__fields__2__annotation',
1402
+ '__dataclass__init__fields__2__default',
1403
+ '__dataclass__init__fields__3__annotation',
1404
+ '__dataclass__init__fields__3__default',
1544
1405
  ),
1545
1406
  cls_names=(
1546
- ('ommlds.cli.sessions.chat.chat.state.storage', 'MarshaledState'),
1407
+ ('ommlds.cli.main', 'UserConfig'),
1547
1408
  ),
1548
1409
  )
1549
- def _process_dataclass__be0d400bb9a95f7b7d493de698bc2bcac269b46e():
1410
+ def _process_dataclass__ad8f706819608fb705450357f229d03ce012b8db():
1550
1411
  def _process_dataclass(
1551
1412
  *,
1552
1413
  __dataclass__cls,
1553
1414
  __dataclass__init__fields__0__annotation,
1415
+ __dataclass__init__fields__0__default,
1554
1416
  __dataclass__init__fields__1__annotation,
1417
+ __dataclass__init__fields__1__default,
1418
+ __dataclass__init__fields__2__annotation,
1419
+ __dataclass__init__fields__2__default,
1420
+ __dataclass__init__fields__3__annotation,
1421
+ __dataclass__init__fields__3__default,
1555
1422
  __dataclass__FieldFnValidationError, # noqa
1556
1423
  __dataclass__FieldTypeValidationError, # noqa
1557
1424
  __dataclass__FnValidationError, # noqa
@@ -1570,8 +1437,10 @@ def _process_dataclass__be0d400bb9a95f7b7d493de698bc2bcac269b46e():
1570
1437
  if self.__class__ is not __dataclass__cls:
1571
1438
  raise TypeError(self)
1572
1439
  return __dataclass__cls( # noqa
1573
- version=self.version,
1574
- payload=self.payload,
1440
+ initial_system_content=self.initial_system_content,
1441
+ initial_user_content=self.initial_user_content,
1442
+ interactive=self.interactive,
1443
+ use_readline=self.use_readline,
1575
1444
  )
1576
1445
 
1577
1446
  __copy__.__qualname__ = f"{__dataclass__cls.__qualname__}.__copy__"
@@ -1585,8 +1454,10 @@ def _process_dataclass__be0d400bb9a95f7b7d493de698bc2bcac269b46e():
1585
1454
  if self.__class__ is not other.__class__:
1586
1455
  return NotImplemented
1587
1456
  return (
1588
- self.version == other.version and
1589
- self.payload == other.payload
1457
+ self.initial_system_content == other.initial_system_content and
1458
+ self.initial_user_content == other.initial_user_content and
1459
+ self.interactive == other.interactive and
1460
+ self.use_readline == other.use_readline
1590
1461
  )
1591
1462
 
1592
1463
  __eq__.__qualname__ = f"{__dataclass__cls.__qualname__}.__eq__"
@@ -1595,8 +1466,10 @@ def _process_dataclass__be0d400bb9a95f7b7d493de698bc2bcac269b46e():
1595
1466
  setattr(__dataclass__cls, '__eq__', __eq__)
1596
1467
 
1597
1468
  __dataclass___setattr_frozen_fields = {
1598
- 'version',
1599
- 'payload',
1469
+ 'initial_system_content',
1470
+ 'initial_user_content',
1471
+ 'interactive',
1472
+ 'use_readline',
1600
1473
  }
1601
1474
 
1602
1475
  def __setattr__(self, name, value):
@@ -1613,8 +1486,10 @@ def _process_dataclass__be0d400bb9a95f7b7d493de698bc2bcac269b46e():
1613
1486
  setattr(__dataclass__cls, '__setattr__', __setattr__)
1614
1487
 
1615
1488
  __dataclass___delattr_frozen_fields = {
1616
- 'version',
1617
- 'payload',
1489
+ 'initial_system_content',
1490
+ 'initial_user_content',
1491
+ 'interactive',
1492
+ 'use_readline',
1618
1493
  }
1619
1494
 
1620
1495
  def __delattr__(self, name):
@@ -1632,8 +1507,10 @@ def _process_dataclass__be0d400bb9a95f7b7d493de698bc2bcac269b46e():
1632
1507
 
1633
1508
  def __hash__(self):
1634
1509
  return hash((
1635
- self.version,
1636
- self.payload,
1510
+ self.initial_system_content,
1511
+ self.initial_user_content,
1512
+ self.interactive,
1513
+ self.use_readline,
1637
1514
  ))
1638
1515
 
1639
1516
  __hash__.__qualname__ = f"{__dataclass__cls.__qualname__}.__hash__"
@@ -1641,11 +1518,16 @@ def _process_dataclass__be0d400bb9a95f7b7d493de698bc2bcac269b46e():
1641
1518
 
1642
1519
  def __init__(
1643
1520
  self,
1644
- version: __dataclass__init__fields__0__annotation,
1645
- payload: __dataclass__init__fields__1__annotation,
1521
+ *,
1522
+ initial_system_content: __dataclass__init__fields__0__annotation = __dataclass__init__fields__0__default,
1523
+ initial_user_content: __dataclass__init__fields__1__annotation = __dataclass__init__fields__1__default,
1524
+ interactive: __dataclass__init__fields__2__annotation = __dataclass__init__fields__2__default,
1525
+ use_readline: __dataclass__init__fields__3__annotation = __dataclass__init__fields__3__default,
1646
1526
  ) -> __dataclass__None:
1647
- __dataclass__object_setattr(self, 'version', version)
1648
- __dataclass__object_setattr(self, 'payload', payload)
1527
+ __dataclass__object_setattr(self, 'initial_system_content', initial_system_content)
1528
+ __dataclass__object_setattr(self, 'initial_user_content', initial_user_content)
1529
+ __dataclass__object_setattr(self, 'interactive', interactive)
1530
+ __dataclass__object_setattr(self, 'use_readline', use_readline)
1649
1531
 
1650
1532
  __init__.__qualname__ = f"{__dataclass__cls.__qualname__}.__init__"
1651
1533
  if '__init__' in __dataclass__cls.__dict__:
@@ -1655,8 +1537,10 @@ def _process_dataclass__be0d400bb9a95f7b7d493de698bc2bcac269b46e():
1655
1537
  @__dataclass___recursive_repr()
1656
1538
  def __repr__(self):
1657
1539
  parts = []
1658
- parts.append(f"version={self.version!r}")
1659
- parts.append(f"payload={self.payload!r}")
1540
+ parts.append(f"initial_system_content={self.initial_system_content!r}")
1541
+ parts.append(f"initial_user_content={self.initial_user_content!r}")
1542
+ parts.append(f"interactive={self.interactive!r}")
1543
+ parts.append(f"use_readline={self.use_readline!r}")
1660
1544
  return (
1661
1545
  f"{self.__class__.__qualname__}("
1662
1546
  f"{', '.join(parts)}"
@@ -1673,23 +1557,32 @@ def _process_dataclass__be0d400bb9a95f7b7d493de698bc2bcac269b46e():
1673
1557
 
1674
1558
  @_register(
1675
1559
  plan_repr=(
1676
- "Plans(tup=(CopyPlan(fields=()), EqPlan(fields=()), FrozenPlan(fields=('configurable_cls',), allow_dynamic_dund"
1677
- "er_attrs=False), HashPlan(action='add', fields=(), cache=False), InitPlan(fields=(InitPlan.Field(name='configu"
1678
- "rable_cls', annotation=OpRef(name='init.fields.0.annotation'), default=None, default_factory=None, init=True, "
1679
- "override=False, field_type=FieldType.CLASS_VAR, coerce=None, validate=None, check_type=None),), self_param='se"
1680
- "lf', std_params=(), kw_only_params=(), frozen=True, slots=False, post_init_params=None, init_fns=(), validate_"
1681
- "fns=()), ReprPlan(fields=(), id=False, terse=False, default_fn=None)))"
1560
+ "Plans(tup=(CopyPlan(fields=('version', 'payload')), EqPlan(fields=('version', 'payload')), FrozenPlan(fields=("
1561
+ "'version', 'payload'), allow_dynamic_dunder_attrs=False), HashPlan(action='add', fields=('version', 'payload')"
1562
+ ", cache=False), InitPlan(fields=(InitPlan.Field(name='version', annotation=OpRef(name='init.fields.0.annotatio"
1563
+ "n'), default=None, default_factory=None, init=True, override=False, field_type=FieldType.INSTANCE, coerce=None"
1564
+ ", validate=None, check_type=None), InitPlan.Field(name='payload', annotation=OpRef(name='init.fields.1.annotat"
1565
+ "ion'), default=None, default_factory=None, init=True, override=False, field_type=FieldType.INSTANCE, coerce=No"
1566
+ "ne, validate=None, check_type=None)), self_param='self', std_params=('version', 'payload'), kw_only_params=(),"
1567
+ " frozen=True, slots=False, post_init_params=None, init_fns=(), validate_fns=()), ReprPlan(fields=(ReprPlan.Fie"
1568
+ "ld(name='version', kw_only=False, fn=None), ReprPlan.Field(name='payload', kw_only=False, fn=None)), id=False,"
1569
+ " terse=False, default_fn=None)))"
1570
+ ),
1571
+ plan_repr_sha1='be0d400bb9a95f7b7d493de698bc2bcac269b46e',
1572
+ op_ref_idents=(
1573
+ '__dataclass__init__fields__0__annotation',
1574
+ '__dataclass__init__fields__1__annotation',
1682
1575
  ),
1683
- plan_repr_sha1='d76e197a98f6f128efdad4ad19e3e15bf64e6652',
1684
- op_ref_idents=(),
1685
1576
  cls_names=(
1686
- ('ommlds.cli.main', 'Session.Config'),
1577
+ ('ommlds.cli.sessions.chat.chat.state.storage', 'MarshaledState'),
1687
1578
  ),
1688
1579
  )
1689
- def _process_dataclass__d76e197a98f6f128efdad4ad19e3e15bf64e6652():
1580
+ def _process_dataclass__be0d400bb9a95f7b7d493de698bc2bcac269b46e():
1690
1581
  def _process_dataclass(
1691
1582
  *,
1692
1583
  __dataclass__cls,
1584
+ __dataclass__init__fields__0__annotation,
1585
+ __dataclass__init__fields__1__annotation,
1693
1586
  __dataclass__FieldFnValidationError, # noqa
1694
1587
  __dataclass__FieldTypeValidationError, # noqa
1695
1588
  __dataclass__FnValidationError, # noqa
@@ -1707,7 +1600,10 @@ def _process_dataclass__d76e197a98f6f128efdad4ad19e3e15bf64e6652():
1707
1600
  def __copy__(self):
1708
1601
  if self.__class__ is not __dataclass__cls:
1709
1602
  raise TypeError(self)
1710
- return __dataclass__cls() # noqa
1603
+ return __dataclass__cls( # noqa
1604
+ version=self.version,
1605
+ payload=self.payload,
1606
+ )
1711
1607
 
1712
1608
  __copy__.__qualname__ = f"{__dataclass__cls.__qualname__}.__copy__"
1713
1609
  if '__copy__' in __dataclass__cls.__dict__:
@@ -1719,7 +1615,10 @@ def _process_dataclass__d76e197a98f6f128efdad4ad19e3e15bf64e6652():
1719
1615
  return True
1720
1616
  if self.__class__ is not other.__class__:
1721
1617
  return NotImplemented
1722
- return True
1618
+ return (
1619
+ self.version == other.version and
1620
+ self.payload == other.payload
1621
+ )
1723
1622
 
1724
1623
  __eq__.__qualname__ = f"{__dataclass__cls.__qualname__}.__eq__"
1725
1624
  if '__eq__' in __dataclass__cls.__dict__:
@@ -1727,7 +1626,8 @@ def _process_dataclass__d76e197a98f6f128efdad4ad19e3e15bf64e6652():
1727
1626
  setattr(__dataclass__cls, '__eq__', __eq__)
1728
1627
 
1729
1628
  __dataclass___setattr_frozen_fields = {
1730
- 'configurable_cls',
1629
+ 'version',
1630
+ 'payload',
1731
1631
  }
1732
1632
 
1733
1633
  def __setattr__(self, name, value):
@@ -1744,7 +1644,8 @@ def _process_dataclass__d76e197a98f6f128efdad4ad19e3e15bf64e6652():
1744
1644
  setattr(__dataclass__cls, '__setattr__', __setattr__)
1745
1645
 
1746
1646
  __dataclass___delattr_frozen_fields = {
1747
- 'configurable_cls',
1647
+ 'version',
1648
+ 'payload',
1748
1649
  }
1749
1650
 
1750
1651
  def __delattr__(self, name):
@@ -1761,15 +1662,21 @@ def _process_dataclass__d76e197a98f6f128efdad4ad19e3e15bf64e6652():
1761
1662
  setattr(__dataclass__cls, '__delattr__', __delattr__)
1762
1663
 
1763
1664
  def __hash__(self):
1764
- return hash(())
1665
+ return hash((
1666
+ self.version,
1667
+ self.payload,
1668
+ ))
1765
1669
 
1766
1670
  __hash__.__qualname__ = f"{__dataclass__cls.__qualname__}.__hash__"
1767
1671
  setattr(__dataclass__cls, '__hash__', __hash__)
1768
1672
 
1769
1673
  def __init__(
1770
1674
  self,
1675
+ version: __dataclass__init__fields__0__annotation,
1676
+ payload: __dataclass__init__fields__1__annotation,
1771
1677
  ) -> __dataclass__None:
1772
- pass
1678
+ __dataclass__object_setattr(self, 'version', version)
1679
+ __dataclass__object_setattr(self, 'payload', payload)
1773
1680
 
1774
1681
  __init__.__qualname__ = f"{__dataclass__cls.__qualname__}.__init__"
1775
1682
  if '__init__' in __dataclass__cls.__dict__:
@@ -1779,6 +1686,8 @@ def _process_dataclass__d76e197a98f6f128efdad4ad19e3e15bf64e6652():
1779
1686
  @__dataclass___recursive_repr()
1780
1687
  def __repr__(self):
1781
1688
  parts = []
1689
+ parts.append(f"version={self.version!r}")
1690
+ parts.append(f"payload={self.payload!r}")
1782
1691
  return (
1783
1692
  f"{self.__class__.__qualname__}("
1784
1693
  f"{', '.join(parts)}"
@@ -1795,65 +1704,34 @@ def _process_dataclass__d76e197a98f6f128efdad4ad19e3e15bf64e6652():
1795
1704
 
1796
1705
  @_register(
1797
1706
  plan_repr=(
1798
- "Plans(tup=(CopyPlan(fields=('backend', 'ai', 'state', 'user', 'rendering', 'tools')), EqPlan(fields=('backend'"
1799
- ", 'ai', 'state', 'user', 'rendering', 'tools')), FrozenPlan(fields=('backend', 'ai', 'state', 'user', 'renderi"
1800
- "ng', 'tools'), allow_dynamic_dunder_attrs=False), HashPlan(action='add', fields=('backend', 'ai', 'state', 'us"
1801
- "er', 'rendering', 'tools'), cache=False), InitPlan(fields=(InitPlan.Field(name='backend', annotation=OpRef(nam"
1802
- "e='init.fields.0.annotation'), default=OpRef(name='init.fields.0.default'), default_factory=None, init=True, o"
1803
- "verride=False, field_type=FieldType.INSTANCE, coerce=None, validate=None, check_type=None), InitPlan.Field(nam"
1804
- "e='ai', annotation=OpRef(name='init.fields.1.annotation'), default=OpRef(name='init.fields.1.default'), defaul"
1805
- "t_factory=None, init=True, override=False, field_type=FieldType.INSTANCE, coerce=None, validate=None, check_ty"
1806
- "pe=None), InitPlan.Field(name='state', annotation=OpRef(name='init.fields.2.annotation'), default=OpRef(name='"
1807
- "init.fields.2.default'), default_factory=None, init=True, override=False, field_type=FieldType.INSTANCE, coerc"
1808
- "e=None, validate=None, check_type=None), InitPlan.Field(name='user', annotation=OpRef(name='init.fields.3.anno"
1809
- "tation'), default=OpRef(name='init.fields.3.default'), default_factory=None, init=True, override=False, field_"
1810
- "type=FieldType.INSTANCE, coerce=None, validate=None, check_type=None), InitPlan.Field(name='rendering', annota"
1811
- "tion=OpRef(name='init.fields.4.annotation'), default=OpRef(name='init.fields.4.default'), default_factory=None"
1812
- ", init=True, override=False, field_type=FieldType.INSTANCE, coerce=None, validate=None, check_type=None), Init"
1813
- "Plan.Field(name='tools', annotation=OpRef(name='init.fields.5.annotation'), default=OpRef(name='init.fields.5."
1814
- "default'), default_factory=None, init=True, override=False, field_type=FieldType.INSTANCE, coerce=None, valida"
1815
- "te=None, check_type=None)), self_param='self', std_params=(), kw_only_params=('backend', 'ai', 'state', 'user'"
1816
- ", 'rendering', 'tools'), frozen=True, slots=False, post_init_params=None, init_fns=(), validate_fns=()), ReprP"
1817
- "lan(fields=(ReprPlan.Field(name='backend', kw_only=True, fn=None), ReprPlan.Field(name='ai', kw_only=True, fn="
1818
- "None), ReprPlan.Field(name='state', kw_only=True, fn=None), ReprPlan.Field(name='user', kw_only=True, fn=None)"
1819
- ", ReprPlan.Field(name='rendering', kw_only=True, fn=None), ReprPlan.Field(name='tools', kw_only=True, fn=None)"
1820
- "), id=False, terse=False, default_fn=None)))"
1707
+ "Plans(tup=(CopyPlan(fields=('phase', 'fn')), EqPlan(fields=('phase', 'fn')), FrozenPlan(fields=('phase', 'fn')"
1708
+ ", allow_dynamic_dunder_attrs=False), HashPlan(action='add', fields=('phase', 'fn'), cache=False), InitPlan(fie"
1709
+ "lds=(InitPlan.Field(name='phase', annotation=OpRef(name='init.fields.0.annotation'), default=None, default_fac"
1710
+ "tory=None, init=True, override=False, field_type=FieldType.INSTANCE, coerce=None, validate=OpRef(name='init.fi"
1711
+ "elds.0.validate'), check_type=None), InitPlan.Field(name='fn', annotation=OpRef(name='init.fields.1.annotation"
1712
+ "'), default=None, default_factory=None, init=True, override=False, field_type=FieldType.INSTANCE, coerce=None,"
1713
+ " validate=None, check_type=None)), self_param='self', std_params=('phase', 'fn'), kw_only_params=(), frozen=Tr"
1714
+ "ue, slots=False, post_init_params=None, init_fns=(), validate_fns=()), ReprPlan(fields=(ReprPlan.Field(name='p"
1715
+ "hase', kw_only=False, fn=None), ReprPlan.Field(name='fn', kw_only=False, fn=None)), id=False, terse=False, def"
1716
+ "ault_fn=None)))"
1821
1717
  ),
1822
- plan_repr_sha1='d7bd53eeb4e47004afc2820f52bcabdde108d61f',
1718
+ plan_repr_sha1='927265170439340895560333250bc087fa726eff',
1823
1719
  op_ref_idents=(
1824
1720
  '__dataclass__init__fields__0__annotation',
1825
- '__dataclass__init__fields__0__default',
1721
+ '__dataclass__init__fields__0__validate',
1826
1722
  '__dataclass__init__fields__1__annotation',
1827
- '__dataclass__init__fields__1__default',
1828
- '__dataclass__init__fields__2__annotation',
1829
- '__dataclass__init__fields__2__default',
1830
- '__dataclass__init__fields__3__annotation',
1831
- '__dataclass__init__fields__3__default',
1832
- '__dataclass__init__fields__4__annotation',
1833
- '__dataclass__init__fields__4__default',
1834
- '__dataclass__init__fields__5__annotation',
1835
- '__dataclass__init__fields__5__default',
1836
1723
  ),
1837
1724
  cls_names=(
1838
- ('ommlds.cli.main', 'ChatConfig'),
1725
+ ('ommlds.cli.sessions.chat.driver', 'ChatPhaseCallback'),
1839
1726
  ),
1840
1727
  )
1841
- def _process_dataclass__d7bd53eeb4e47004afc2820f52bcabdde108d61f():
1728
+ def _process_dataclass__927265170439340895560333250bc087fa726eff():
1842
1729
  def _process_dataclass(
1843
1730
  *,
1844
1731
  __dataclass__cls,
1845
1732
  __dataclass__init__fields__0__annotation,
1846
- __dataclass__init__fields__0__default,
1733
+ __dataclass__init__fields__0__validate,
1847
1734
  __dataclass__init__fields__1__annotation,
1848
- __dataclass__init__fields__1__default,
1849
- __dataclass__init__fields__2__annotation,
1850
- __dataclass__init__fields__2__default,
1851
- __dataclass__init__fields__3__annotation,
1852
- __dataclass__init__fields__3__default,
1853
- __dataclass__init__fields__4__annotation,
1854
- __dataclass__init__fields__4__default,
1855
- __dataclass__init__fields__5__annotation,
1856
- __dataclass__init__fields__5__default,
1857
1735
  __dataclass__FieldFnValidationError, # noqa
1858
1736
  __dataclass__FieldTypeValidationError, # noqa
1859
1737
  __dataclass__FnValidationError, # noqa
@@ -1872,12 +1750,8 @@ def _process_dataclass__d7bd53eeb4e47004afc2820f52bcabdde108d61f():
1872
1750
  if self.__class__ is not __dataclass__cls:
1873
1751
  raise TypeError(self)
1874
1752
  return __dataclass__cls( # noqa
1875
- backend=self.backend,
1876
- ai=self.ai,
1877
- state=self.state,
1878
- user=self.user,
1879
- rendering=self.rendering,
1880
- tools=self.tools,
1753
+ phase=self.phase,
1754
+ fn=self.fn,
1881
1755
  )
1882
1756
 
1883
1757
  __copy__.__qualname__ = f"{__dataclass__cls.__qualname__}.__copy__"
@@ -1891,12 +1765,8 @@ def _process_dataclass__d7bd53eeb4e47004afc2820f52bcabdde108d61f():
1891
1765
  if self.__class__ is not other.__class__:
1892
1766
  return NotImplemented
1893
1767
  return (
1894
- self.backend == other.backend and
1895
- self.ai == other.ai and
1896
- self.state == other.state and
1897
- self.user == other.user and
1898
- self.rendering == other.rendering and
1899
- self.tools == other.tools
1768
+ self.phase == other.phase and
1769
+ self.fn == other.fn
1900
1770
  )
1901
1771
 
1902
1772
  __eq__.__qualname__ = f"{__dataclass__cls.__qualname__}.__eq__"
@@ -1905,12 +1775,8 @@ def _process_dataclass__d7bd53eeb4e47004afc2820f52bcabdde108d61f():
1905
1775
  setattr(__dataclass__cls, '__eq__', __eq__)
1906
1776
 
1907
1777
  __dataclass___setattr_frozen_fields = {
1908
- 'backend',
1909
- 'ai',
1910
- 'state',
1911
- 'user',
1912
- 'rendering',
1913
- 'tools',
1778
+ 'phase',
1779
+ 'fn',
1914
1780
  }
1915
1781
 
1916
1782
  def __setattr__(self, name, value):
@@ -1927,12 +1793,8 @@ def _process_dataclass__d7bd53eeb4e47004afc2820f52bcabdde108d61f():
1927
1793
  setattr(__dataclass__cls, '__setattr__', __setattr__)
1928
1794
 
1929
1795
  __dataclass___delattr_frozen_fields = {
1930
- 'backend',
1931
- 'ai',
1932
- 'state',
1933
- 'user',
1934
- 'rendering',
1935
- 'tools',
1796
+ 'phase',
1797
+ 'fn',
1936
1798
  }
1937
1799
 
1938
1800
  def __delattr__(self, name):
@@ -1950,12 +1812,8 @@ def _process_dataclass__d7bd53eeb4e47004afc2820f52bcabdde108d61f():
1950
1812
 
1951
1813
  def __hash__(self):
1952
1814
  return hash((
1953
- self.backend,
1954
- self.ai,
1955
- self.state,
1956
- self.user,
1957
- self.rendering,
1958
- self.tools,
1815
+ self.phase,
1816
+ self.fn,
1959
1817
  ))
1960
1818
 
1961
1819
  __hash__.__qualname__ = f"{__dataclass__cls.__qualname__}.__hash__"
@@ -1963,20 +1821,18 @@ def _process_dataclass__d7bd53eeb4e47004afc2820f52bcabdde108d61f():
1963
1821
 
1964
1822
  def __init__(
1965
1823
  self,
1966
- *,
1967
- backend: __dataclass__init__fields__0__annotation = __dataclass__init__fields__0__default,
1968
- ai: __dataclass__init__fields__1__annotation = __dataclass__init__fields__1__default,
1969
- state: __dataclass__init__fields__2__annotation = __dataclass__init__fields__2__default,
1970
- user: __dataclass__init__fields__3__annotation = __dataclass__init__fields__3__default,
1971
- rendering: __dataclass__init__fields__4__annotation = __dataclass__init__fields__4__default,
1972
- tools: __dataclass__init__fields__5__annotation = __dataclass__init__fields__5__default,
1824
+ phase: __dataclass__init__fields__0__annotation,
1825
+ fn: __dataclass__init__fields__1__annotation,
1973
1826
  ) -> __dataclass__None:
1974
- __dataclass__object_setattr(self, 'backend', backend)
1975
- __dataclass__object_setattr(self, 'ai', ai)
1976
- __dataclass__object_setattr(self, 'state', state)
1977
- __dataclass__object_setattr(self, 'user', user)
1978
- __dataclass__object_setattr(self, 'rendering', rendering)
1979
- __dataclass__object_setattr(self, 'tools', tools)
1827
+ if not __dataclass__init__fields__0__validate(phase):
1828
+ raise __dataclass__FieldFnValidationError(
1829
+ obj=self,
1830
+ fn=__dataclass__init__fields__0__validate,
1831
+ field='phase',
1832
+ value=phase,
1833
+ )
1834
+ __dataclass__object_setattr(self, 'phase', phase)
1835
+ __dataclass__object_setattr(self, 'fn', fn)
1980
1836
 
1981
1837
  __init__.__qualname__ = f"{__dataclass__cls.__qualname__}.__init__"
1982
1838
  if '__init__' in __dataclass__cls.__dict__:
@@ -1986,12 +1842,8 @@ def _process_dataclass__d7bd53eeb4e47004afc2820f52bcabdde108d61f():
1986
1842
  @__dataclass___recursive_repr()
1987
1843
  def __repr__(self):
1988
1844
  parts = []
1989
- parts.append(f"backend={self.backend!r}")
1990
- parts.append(f"ai={self.ai!r}")
1991
- parts.append(f"state={self.state!r}")
1992
- parts.append(f"user={self.user!r}")
1993
- parts.append(f"rendering={self.rendering!r}")
1994
- parts.append(f"tools={self.tools!r}")
1845
+ parts.append(f"phase={self.phase!r}")
1846
+ parts.append(f"fn={self.fn!r}")
1995
1847
  return (
1996
1848
  f"{self.__class__.__qualname__}("
1997
1849
  f"{', '.join(parts)}"
@@ -2008,45 +1860,51 @@ def _process_dataclass__d7bd53eeb4e47004afc2820f52bcabdde108d61f():
2008
1860
 
2009
1861
  @_register(
2010
1862
  plan_repr=(
2011
- "Plans(tup=(CopyPlan(fields=('silent', 'dangerous_no_confirmation', 'enabled_tools')), EqPlan(fields=('silent',"
2012
- " 'dangerous_no_confirmation', 'enabled_tools')), FrozenPlan(fields=('silent', 'dangerous_no_confirmation', 'en"
2013
- "abled_tools'), allow_dynamic_dunder_attrs=False), HashPlan(action='add', fields=('silent', 'dangerous_no_confi"
2014
- "rmation', 'enabled_tools'), cache=False), InitPlan(fields=(InitPlan.Field(name='silent', annotation=OpRef(name"
2015
- "='init.fields.0.annotation'), default=OpRef(name='init.fields.0.default'), default_factory=None, init=True, ov"
2016
- "erride=False, field_type=FieldType.INSTANCE, coerce=None, validate=None, check_type=None), InitPlan.Field(name"
2017
- "='dangerous_no_confirmation', annotation=OpRef(name='init.fields.1.annotation'), default=OpRef(name='init.fiel"
2018
- "ds.1.default'), default_factory=None, init=True, override=False, field_type=FieldType.INSTANCE, coerce=None, v"
2019
- "alidate=None, check_type=None), InitPlan.Field(name='enabled_tools', annotation=OpRef(name='init.fields.2.anno"
2020
- "tation'), default=OpRef(name='init.fields.2.default'), default_factory=None, init=True, override=False, field_"
2021
- "type=FieldType.INSTANCE, coerce=None, validate=None, check_type=None)), self_param='self', std_params=(), kw_o"
2022
- "nly_params=('silent', 'dangerous_no_confirmation', 'enabled_tools'), frozen=True, slots=False, post_init_param"
2023
- "s=None, init_fns=(), validate_fns=()), ReprPlan(fields=(ReprPlan.Field(name='silent', kw_only=True, fn=None), "
2024
- "ReprPlan.Field(name='dangerous_no_confirmation', kw_only=True, fn=None), ReprPlan.Field(name='enabled_tools', "
2025
- "kw_only=True, fn=None)), id=False, terse=False, default_fn=None)))"
1863
+ "Plans(tup=(CopyPlan(fields=('name', 'created_at', 'updated_at', 'chat')), EqPlan(fields=('name', 'created_at',"
1864
+ " 'updated_at', 'chat')), FrozenPlan(fields=('name', 'created_at', 'updated_at', 'chat'), allow_dynamic_dunder_"
1865
+ "attrs=False), HashPlan(action='add', fields=('name', 'created_at', 'updated_at', 'chat'), cache=False), InitPl"
1866
+ "an(fields=(InitPlan.Field(name='name', annotation=OpRef(name='init.fields.0.annotation'), default=OpRef(name='"
1867
+ "init.fields.0.default'), default_factory=None, init=True, override=False, field_type=FieldType.INSTANCE, coerc"
1868
+ "e=None, validate=None, check_type=None), InitPlan.Field(name='created_at', annotation=OpRef(name='init.fields."
1869
+ "1.annotation'), default=None, default_factory=OpRef(name='init.fields.1.default_factory'), init=True, override"
1870
+ "=False, field_type=FieldType.INSTANCE, coerce=None, validate=None, check_type=None), InitPlan.Field(name='upda"
1871
+ "ted_at', annotation=OpRef(name='init.fields.2.annotation'), default=None, default_factory=OpRef(name='init.fie"
1872
+ "lds.2.default_factory'), init=True, override=False, field_type=FieldType.INSTANCE, coerce=None, validate=None,"
1873
+ " check_type=None), InitPlan.Field(name='chat', annotation=OpRef(name='init.fields.3.annotation'), default=OpRe"
1874
+ "f(name='init.fields.3.default'), default_factory=None, init=True, override=False, field_type=FieldType.INSTANC"
1875
+ "E, coerce=None, validate=None, check_type=None)), self_param='self', std_params=('name', 'created_at', 'update"
1876
+ "d_at', 'chat'), kw_only_params=(), frozen=True, slots=False, post_init_params=None, init_fns=(), validate_fns="
1877
+ "()), ReprPlan(fields=(ReprPlan.Field(name='name', kw_only=False, fn=None), ReprPlan.Field(name='created_at', k"
1878
+ "w_only=False, fn=None), ReprPlan.Field(name='updated_at', kw_only=False, fn=None), ReprPlan.Field(name='chat',"
1879
+ " kw_only=False, fn=None)), id=False, terse=False, default_fn=None)))"
2026
1880
  ),
2027
- plan_repr_sha1='db9677a2fd3b495102177f315b60f0d1469bbee9',
1881
+ plan_repr_sha1='9f7e26a87dd163b610f38caa1ce9b3c6356e632a',
2028
1882
  op_ref_idents=(
2029
1883
  '__dataclass__init__fields__0__annotation',
2030
1884
  '__dataclass__init__fields__0__default',
2031
1885
  '__dataclass__init__fields__1__annotation',
2032
- '__dataclass__init__fields__1__default',
1886
+ '__dataclass__init__fields__1__default_factory',
2033
1887
  '__dataclass__init__fields__2__annotation',
2034
- '__dataclass__init__fields__2__default',
1888
+ '__dataclass__init__fields__2__default_factory',
1889
+ '__dataclass__init__fields__3__annotation',
1890
+ '__dataclass__init__fields__3__default',
2035
1891
  ),
2036
1892
  cls_names=(
2037
- ('ommlds.cli.main', 'ToolsConfig'),
1893
+ ('ommlds.cli.sessions.chat.driver', 'ChatState'),
2038
1894
  ),
2039
1895
  )
2040
- def _process_dataclass__db9677a2fd3b495102177f315b60f0d1469bbee9():
1896
+ def _process_dataclass__9f7e26a87dd163b610f38caa1ce9b3c6356e632a():
2041
1897
  def _process_dataclass(
2042
1898
  *,
2043
1899
  __dataclass__cls,
2044
1900
  __dataclass__init__fields__0__annotation,
2045
1901
  __dataclass__init__fields__0__default,
2046
1902
  __dataclass__init__fields__1__annotation,
2047
- __dataclass__init__fields__1__default,
1903
+ __dataclass__init__fields__1__default_factory,
2048
1904
  __dataclass__init__fields__2__annotation,
2049
- __dataclass__init__fields__2__default,
1905
+ __dataclass__init__fields__2__default_factory,
1906
+ __dataclass__init__fields__3__annotation,
1907
+ __dataclass__init__fields__3__default,
2050
1908
  __dataclass__FieldFnValidationError, # noqa
2051
1909
  __dataclass__FieldTypeValidationError, # noqa
2052
1910
  __dataclass__FnValidationError, # noqa
@@ -2065,9 +1923,10 @@ def _process_dataclass__db9677a2fd3b495102177f315b60f0d1469bbee9():
2065
1923
  if self.__class__ is not __dataclass__cls:
2066
1924
  raise TypeError(self)
2067
1925
  return __dataclass__cls( # noqa
2068
- silent=self.silent,
2069
- dangerous_no_confirmation=self.dangerous_no_confirmation,
2070
- enabled_tools=self.enabled_tools,
1926
+ name=self.name,
1927
+ created_at=self.created_at,
1928
+ updated_at=self.updated_at,
1929
+ chat=self.chat,
2071
1930
  )
2072
1931
 
2073
1932
  __copy__.__qualname__ = f"{__dataclass__cls.__qualname__}.__copy__"
@@ -2081,9 +1940,10 @@ def _process_dataclass__db9677a2fd3b495102177f315b60f0d1469bbee9():
2081
1940
  if self.__class__ is not other.__class__:
2082
1941
  return NotImplemented
2083
1942
  return (
2084
- self.silent == other.silent and
2085
- self.dangerous_no_confirmation == other.dangerous_no_confirmation and
2086
- self.enabled_tools == other.enabled_tools
1943
+ self.name == other.name and
1944
+ self.created_at == other.created_at and
1945
+ self.updated_at == other.updated_at and
1946
+ self.chat == other.chat
2087
1947
  )
2088
1948
 
2089
1949
  __eq__.__qualname__ = f"{__dataclass__cls.__qualname__}.__eq__"
@@ -2092,9 +1952,10 @@ def _process_dataclass__db9677a2fd3b495102177f315b60f0d1469bbee9():
2092
1952
  setattr(__dataclass__cls, '__eq__', __eq__)
2093
1953
 
2094
1954
  __dataclass___setattr_frozen_fields = {
2095
- 'silent',
2096
- 'dangerous_no_confirmation',
2097
- 'enabled_tools',
1955
+ 'name',
1956
+ 'created_at',
1957
+ 'updated_at',
1958
+ 'chat',
2098
1959
  }
2099
1960
 
2100
1961
  def __setattr__(self, name, value):
@@ -2111,9 +1972,10 @@ def _process_dataclass__db9677a2fd3b495102177f315b60f0d1469bbee9():
2111
1972
  setattr(__dataclass__cls, '__setattr__', __setattr__)
2112
1973
 
2113
1974
  __dataclass___delattr_frozen_fields = {
2114
- 'silent',
2115
- 'dangerous_no_confirmation',
2116
- 'enabled_tools',
1975
+ 'name',
1976
+ 'created_at',
1977
+ 'updated_at',
1978
+ 'chat',
2117
1979
  }
2118
1980
 
2119
1981
  def __delattr__(self, name):
@@ -2131,9 +1993,10 @@ def _process_dataclass__db9677a2fd3b495102177f315b60f0d1469bbee9():
2131
1993
 
2132
1994
  def __hash__(self):
2133
1995
  return hash((
2134
- self.silent,
2135
- self.dangerous_no_confirmation,
2136
- self.enabled_tools,
1996
+ self.name,
1997
+ self.created_at,
1998
+ self.updated_at,
1999
+ self.chat,
2137
2000
  ))
2138
2001
 
2139
2002
  __hash__.__qualname__ = f"{__dataclass__cls.__qualname__}.__hash__"
@@ -2141,14 +2004,19 @@ def _process_dataclass__db9677a2fd3b495102177f315b60f0d1469bbee9():
2141
2004
 
2142
2005
  def __init__(
2143
2006
  self,
2144
- *,
2145
- silent: __dataclass__init__fields__0__annotation = __dataclass__init__fields__0__default,
2146
- dangerous_no_confirmation: __dataclass__init__fields__1__annotation = __dataclass__init__fields__1__default,
2147
- enabled_tools: __dataclass__init__fields__2__annotation = __dataclass__init__fields__2__default,
2007
+ name: __dataclass__init__fields__0__annotation = __dataclass__init__fields__0__default,
2008
+ created_at: __dataclass__init__fields__1__annotation = __dataclass__HAS_DEFAULT_FACTORY,
2009
+ updated_at: __dataclass__init__fields__2__annotation = __dataclass__HAS_DEFAULT_FACTORY,
2010
+ chat: __dataclass__init__fields__3__annotation = __dataclass__init__fields__3__default,
2148
2011
  ) -> __dataclass__None:
2149
- __dataclass__object_setattr(self, 'silent', silent)
2150
- __dataclass__object_setattr(self, 'dangerous_no_confirmation', dangerous_no_confirmation)
2151
- __dataclass__object_setattr(self, 'enabled_tools', enabled_tools)
2012
+ if created_at is __dataclass__HAS_DEFAULT_FACTORY:
2013
+ created_at = __dataclass__init__fields__1__default_factory()
2014
+ if updated_at is __dataclass__HAS_DEFAULT_FACTORY:
2015
+ updated_at = __dataclass__init__fields__2__default_factory()
2016
+ __dataclass__object_setattr(self, 'name', name)
2017
+ __dataclass__object_setattr(self, 'created_at', created_at)
2018
+ __dataclass__object_setattr(self, 'updated_at', updated_at)
2019
+ __dataclass__object_setattr(self, 'chat', chat)
2152
2020
 
2153
2021
  __init__.__qualname__ = f"{__dataclass__cls.__qualname__}.__init__"
2154
2022
  if '__init__' in __dataclass__cls.__dict__:
@@ -2158,9 +2026,10 @@ def _process_dataclass__db9677a2fd3b495102177f315b60f0d1469bbee9():
2158
2026
  @__dataclass___recursive_repr()
2159
2027
  def __repr__(self):
2160
2028
  parts = []
2161
- parts.append(f"silent={self.silent!r}")
2162
- parts.append(f"dangerous_no_confirmation={self.dangerous_no_confirmation!r}")
2163
- parts.append(f"enabled_tools={self.enabled_tools!r}")
2029
+ parts.append(f"name={self.name!r}")
2030
+ parts.append(f"created_at={self.created_at!r}")
2031
+ parts.append(f"updated_at={self.updated_at!r}")
2032
+ parts.append(f"chat={self.chat!r}")
2164
2033
  return (
2165
2034
  f"{self.__class__.__qualname__}("
2166
2035
  f"{', '.join(parts)}"
@@ -2177,24 +2046,67 @@ def _process_dataclass__db9677a2fd3b495102177f315b60f0d1469bbee9():
2177
2046
 
2178
2047
  @_register(
2179
2048
  plan_repr=(
2180
- "Plans(tup=(CopyPlan(fields=()), EqPlan(fields=()), FrozenPlan(fields=(), allow_dynamic_dunder_attrs=False), Ha"
2181
- "shPlan(action='add', fields=(), cache=False), InitPlan(fields=(), self_param='self', std_params=(), kw_only_pa"
2182
- "rams=(), frozen=True, slots=False, post_init_params=None, init_fns=(), validate_fns=()), ReprPlan(fields=(), i"
2183
- "d=False, terse=False, default_fn=None)))"
2049
+ "Plans(tup=(CopyPlan(fields=('backend', 'ai', 'state', 'user', 'rendering', 'tools')), EqPlan(fields=('backend'"
2050
+ ", 'ai', 'state', 'user', 'rendering', 'tools')), FrozenPlan(fields=('backend', 'ai', 'state', 'user', 'renderi"
2051
+ "ng', 'tools', 'configurable_cls'), allow_dynamic_dunder_attrs=False), HashPlan(action='add', fields=('backend'"
2052
+ ", 'ai', 'state', 'user', 'rendering', 'tools'), cache=False), InitPlan(fields=(InitPlan.Field(name='backend', "
2053
+ "annotation=OpRef(name='init.fields.0.annotation'), default=OpRef(name='init.fields.0.default'), default_factor"
2054
+ "y=None, init=True, override=False, field_type=FieldType.INSTANCE, coerce=None, validate=None, check_type=None)"
2055
+ ", InitPlan.Field(name='ai', annotation=OpRef(name='init.fields.1.annotation'), default=OpRef(name='init.fields"
2056
+ ".1.default'), default_factory=None, init=True, override=False, field_type=FieldType.INSTANCE, coerce=None, val"
2057
+ "idate=None, check_type=None), InitPlan.Field(name='state', annotation=OpRef(name='init.fields.2.annotation'), "
2058
+ "default=OpRef(name='init.fields.2.default'), default_factory=None, init=True, override=False, field_type=Field"
2059
+ "Type.INSTANCE, coerce=None, validate=None, check_type=None), InitPlan.Field(name='user', annotation=OpRef(name"
2060
+ "='init.fields.3.annotation'), default=OpRef(name='init.fields.3.default'), default_factory=None, init=True, ov"
2061
+ "erride=False, field_type=FieldType.INSTANCE, coerce=None, validate=None, check_type=None), InitPlan.Field(name"
2062
+ "='rendering', annotation=OpRef(name='init.fields.4.annotation'), default=OpRef(name='init.fields.4.default'), "
2063
+ "default_factory=None, init=True, override=False, field_type=FieldType.INSTANCE, coerce=None, validate=None, ch"
2064
+ "eck_type=None), InitPlan.Field(name='tools', annotation=OpRef(name='init.fields.5.annotation'), default=OpRef("
2065
+ "name='init.fields.5.default'), default_factory=None, init=True, override=False, field_type=FieldType.INSTANCE,"
2066
+ " coerce=None, validate=None, check_type=None), InitPlan.Field(name='configurable_cls', annotation=OpRef(name='"
2067
+ "init.fields.6.annotation'), default=None, default_factory=None, init=True, override=False, field_type=FieldTyp"
2068
+ "e.CLASS_VAR, coerce=None, validate=None, check_type=None)), self_param='self', std_params=(), kw_only_params=("
2069
+ "'backend', 'ai', 'state', 'user', 'rendering', 'tools'), frozen=True, slots=False, post_init_params=None, init"
2070
+ "_fns=(), validate_fns=()), ReprPlan(fields=(ReprPlan.Field(name='backend', kw_only=True, fn=None), ReprPlan.Fi"
2071
+ "eld(name='ai', kw_only=True, fn=None), ReprPlan.Field(name='state', kw_only=True, fn=None), ReprPlan.Field(nam"
2072
+ "e='user', kw_only=True, fn=None), ReprPlan.Field(name='rendering', kw_only=True, fn=None), ReprPlan.Field(name"
2073
+ "='tools', kw_only=True, fn=None)), id=False, terse=False, default_fn=None)))"
2074
+ ),
2075
+ plan_repr_sha1='2a3ef7bb5eaa4148e2dfb52433ac48683c100e35',
2076
+ op_ref_idents=(
2077
+ '__dataclass__init__fields__0__annotation',
2078
+ '__dataclass__init__fields__0__default',
2079
+ '__dataclass__init__fields__1__annotation',
2080
+ '__dataclass__init__fields__1__default',
2081
+ '__dataclass__init__fields__2__annotation',
2082
+ '__dataclass__init__fields__2__default',
2083
+ '__dataclass__init__fields__3__annotation',
2084
+ '__dataclass__init__fields__3__default',
2085
+ '__dataclass__init__fields__4__annotation',
2086
+ '__dataclass__init__fields__4__default',
2087
+ '__dataclass__init__fields__5__annotation',
2088
+ '__dataclass__init__fields__5__default',
2184
2089
  ),
2185
- plan_repr_sha1='e1f7edfe11f2b721d6a656c46e698fedc95461bb',
2186
- op_ref_idents=(),
2187
2090
  cls_names=(
2188
- ('ommlds.cli.main', 'ToolSetConfig'),
2189
- ('ommlds.cli.sessions.chat.tools.fs.configs', 'FsToolSetConfig'),
2190
- ('ommlds.cli.sessions.chat.tools.todo.configs', 'TodoToolSetConfig'),
2191
- ('ommlds.cli.sessions.chat.tools.weather.configs', 'WeatherToolSetConfig'),
2091
+ ('ommlds.cli.sessions.chat.session', 'ChatSession.Config'),
2192
2092
  ),
2193
2093
  )
2194
- def _process_dataclass__e1f7edfe11f2b721d6a656c46e698fedc95461bb():
2094
+ def _process_dataclass__2a3ef7bb5eaa4148e2dfb52433ac48683c100e35():
2195
2095
  def _process_dataclass(
2196
2096
  *,
2197
2097
  __dataclass__cls,
2098
+ __dataclass__init__fields__0__annotation,
2099
+ __dataclass__init__fields__0__default,
2100
+ __dataclass__init__fields__1__annotation,
2101
+ __dataclass__init__fields__1__default,
2102
+ __dataclass__init__fields__2__annotation,
2103
+ __dataclass__init__fields__2__default,
2104
+ __dataclass__init__fields__3__annotation,
2105
+ __dataclass__init__fields__3__default,
2106
+ __dataclass__init__fields__4__annotation,
2107
+ __dataclass__init__fields__4__default,
2108
+ __dataclass__init__fields__5__annotation,
2109
+ __dataclass__init__fields__5__default,
2198
2110
  __dataclass__FieldFnValidationError, # noqa
2199
2111
  __dataclass__FieldTypeValidationError, # noqa
2200
2112
  __dataclass__FnValidationError, # noqa
@@ -2212,7 +2124,14 @@ def _process_dataclass__e1f7edfe11f2b721d6a656c46e698fedc95461bb():
2212
2124
  def __copy__(self):
2213
2125
  if self.__class__ is not __dataclass__cls:
2214
2126
  raise TypeError(self)
2215
- return __dataclass__cls() # noqa
2127
+ return __dataclass__cls( # noqa
2128
+ backend=self.backend,
2129
+ ai=self.ai,
2130
+ state=self.state,
2131
+ user=self.user,
2132
+ rendering=self.rendering,
2133
+ tools=self.tools,
2134
+ )
2216
2135
 
2217
2136
  __copy__.__qualname__ = f"{__dataclass__cls.__qualname__}.__copy__"
2218
2137
  if '__copy__' in __dataclass__cls.__dict__:
@@ -2224,16 +2143,34 @@ def _process_dataclass__e1f7edfe11f2b721d6a656c46e698fedc95461bb():
2224
2143
  return True
2225
2144
  if self.__class__ is not other.__class__:
2226
2145
  return NotImplemented
2227
- return True
2146
+ return (
2147
+ self.backend == other.backend and
2148
+ self.ai == other.ai and
2149
+ self.state == other.state and
2150
+ self.user == other.user and
2151
+ self.rendering == other.rendering and
2152
+ self.tools == other.tools
2153
+ )
2228
2154
 
2229
2155
  __eq__.__qualname__ = f"{__dataclass__cls.__qualname__}.__eq__"
2230
2156
  if '__eq__' in __dataclass__cls.__dict__:
2231
2157
  raise __dataclass__TypeError(f"Cannot overwrite attribute __eq__ in class {__dataclass__cls.__name__}")
2232
2158
  setattr(__dataclass__cls, '__eq__', __eq__)
2233
2159
 
2160
+ __dataclass___setattr_frozen_fields = {
2161
+ 'backend',
2162
+ 'ai',
2163
+ 'state',
2164
+ 'user',
2165
+ 'rendering',
2166
+ 'tools',
2167
+ 'configurable_cls',
2168
+ }
2169
+
2234
2170
  def __setattr__(self, name, value):
2235
2171
  if (
2236
2172
  type(self) is __dataclass__cls
2173
+ or name in __dataclass___setattr_frozen_fields
2237
2174
  ):
2238
2175
  raise __dataclass__FrozenInstanceError(f"cannot assign to field {name!r}")
2239
2176
  super(__dataclass__cls, self).__setattr__(name, value)
@@ -2243,9 +2180,20 @@ def _process_dataclass__e1f7edfe11f2b721d6a656c46e698fedc95461bb():
2243
2180
  raise __dataclass__TypeError(f"Cannot overwrite attribute __setattr__ in class {__dataclass__cls.__name__}")
2244
2181
  setattr(__dataclass__cls, '__setattr__', __setattr__)
2245
2182
 
2183
+ __dataclass___delattr_frozen_fields = {
2184
+ 'backend',
2185
+ 'ai',
2186
+ 'state',
2187
+ 'user',
2188
+ 'rendering',
2189
+ 'tools',
2190
+ 'configurable_cls',
2191
+ }
2192
+
2246
2193
  def __delattr__(self, name):
2247
2194
  if (
2248
2195
  type(self) is __dataclass__cls
2196
+ or name in __dataclass___delattr_frozen_fields
2249
2197
  ):
2250
2198
  raise __dataclass__FrozenInstanceError(f"cannot delete field {name!r}")
2251
2199
  super(__dataclass__cls, self).__delattr__(name)
@@ -2256,15 +2204,34 @@ def _process_dataclass__e1f7edfe11f2b721d6a656c46e698fedc95461bb():
2256
2204
  setattr(__dataclass__cls, '__delattr__', __delattr__)
2257
2205
 
2258
2206
  def __hash__(self):
2259
- return hash(())
2207
+ return hash((
2208
+ self.backend,
2209
+ self.ai,
2210
+ self.state,
2211
+ self.user,
2212
+ self.rendering,
2213
+ self.tools,
2214
+ ))
2260
2215
 
2261
2216
  __hash__.__qualname__ = f"{__dataclass__cls.__qualname__}.__hash__"
2262
2217
  setattr(__dataclass__cls, '__hash__', __hash__)
2263
2218
 
2264
2219
  def __init__(
2265
2220
  self,
2221
+ *,
2222
+ backend: __dataclass__init__fields__0__annotation = __dataclass__init__fields__0__default,
2223
+ ai: __dataclass__init__fields__1__annotation = __dataclass__init__fields__1__default,
2224
+ state: __dataclass__init__fields__2__annotation = __dataclass__init__fields__2__default,
2225
+ user: __dataclass__init__fields__3__annotation = __dataclass__init__fields__3__default,
2226
+ rendering: __dataclass__init__fields__4__annotation = __dataclass__init__fields__4__default,
2227
+ tools: __dataclass__init__fields__5__annotation = __dataclass__init__fields__5__default,
2266
2228
  ) -> __dataclass__None:
2267
- pass
2229
+ __dataclass__object_setattr(self, 'backend', backend)
2230
+ __dataclass__object_setattr(self, 'ai', ai)
2231
+ __dataclass__object_setattr(self, 'state', state)
2232
+ __dataclass__object_setattr(self, 'user', user)
2233
+ __dataclass__object_setattr(self, 'rendering', rendering)
2234
+ __dataclass__object_setattr(self, 'tools', tools)
2268
2235
 
2269
2236
  __init__.__qualname__ = f"{__dataclass__cls.__qualname__}.__init__"
2270
2237
  if '__init__' in __dataclass__cls.__dict__:
@@ -2274,6 +2241,12 @@ def _process_dataclass__e1f7edfe11f2b721d6a656c46e698fedc95461bb():
2274
2241
  @__dataclass___recursive_repr()
2275
2242
  def __repr__(self):
2276
2243
  parts = []
2244
+ parts.append(f"backend={self.backend!r}")
2245
+ parts.append(f"ai={self.ai!r}")
2246
+ parts.append(f"state={self.state!r}")
2247
+ parts.append(f"user={self.user!r}")
2248
+ parts.append(f"rendering={self.rendering!r}")
2249
+ parts.append(f"tools={self.tools!r}")
2277
2250
  return (
2278
2251
  f"{self.__class__.__qualname__}("
2279
2252
  f"{', '.join(parts)}"
@@ -2290,29 +2263,31 @@ def _process_dataclass__e1f7edfe11f2b721d6a656c46e698fedc95461bb():
2290
2263
 
2291
2264
  @_register(
2292
2265
  plan_repr=(
2293
- "Plans(tup=(CopyPlan(fields=('state',)), EqPlan(fields=('state',)), FrozenPlan(fields=('state',), allow_dynamic"
2294
- "_dunder_attrs=False), HashPlan(action='add', fields=('state',), cache=False), InitPlan(fields=(InitPlan.Field("
2295
- "name='state', annotation=OpRef(name='init.fields.0.annotation'), default=OpRef(name='init.fields.0.default'), "
2296
- "default_factory=None, init=True, override=False, field_type=FieldType.INSTANCE, coerce=None, validate=None, ch"
2297
- "eck_type=None),), self_param='self', std_params=(), kw_only_params=('state',), frozen=True, slots=False, post_"
2298
- "init_params=None, init_fns=(), validate_fns=()), ReprPlan(fields=(ReprPlan.Field(name='state', kw_only=True, f"
2299
- "n=None),), id=False, terse=False, default_fn=None)))"
2266
+ "Plans(tup=(CopyPlan(fields=('cfg_cls', 'fn')), EqPlan(fields=('cfg_cls', 'fn')), FrozenPlan(fields=('cfg_cls',"
2267
+ " 'fn'), allow_dynamic_dunder_attrs=False), HashPlan(action='add', fields=('cfg_cls', 'fn'), cache=False), Init"
2268
+ "Plan(fields=(InitPlan.Field(name='cfg_cls', annotation=OpRef(name='init.fields.0.annotation'), default=None, d"
2269
+ "efault_factory=None, init=True, override=False, field_type=FieldType.INSTANCE, coerce=None, validate=None, che"
2270
+ "ck_type=None), InitPlan.Field(name='fn', annotation=OpRef(name='init.fields.1.annotation'), default=None, defa"
2271
+ "ult_factory=None, init=True, override=False, field_type=FieldType.INSTANCE, coerce=None, validate=None, check_"
2272
+ "type=None)), self_param='self', std_params=('cfg_cls', 'fn'), kw_only_params=(), frozen=True, slots=False, pos"
2273
+ "t_init_params=None, init_fns=(), validate_fns=()), ReprPlan(fields=(ReprPlan.Field(name='cfg_cls', kw_only=Fal"
2274
+ "se, fn=None), ReprPlan.Field(name='fn', kw_only=False, fn=None)), id=False, terse=False, default_fn=None)))"
2300
2275
  ),
2301
- plan_repr_sha1='ecd4e8fdaa04b3fa64e0c01eea919a83fc862e6a',
2276
+ plan_repr_sha1='0f6d91dd6a878d827836d961e4683d55b1c9095a',
2302
2277
  op_ref_idents=(
2303
2278
  '__dataclass__init__fields__0__annotation',
2304
- '__dataclass__init__fields__0__default',
2279
+ '__dataclass__init__fields__1__annotation',
2305
2280
  ),
2306
2281
  cls_names=(
2307
- ('ommlds.cli.main', 'StateConfig'),
2282
+ ('ommlds.cli.sessions.chat.tools.inject', 'ToolSetBinder'),
2308
2283
  ),
2309
2284
  )
2310
- def _process_dataclass__ecd4e8fdaa04b3fa64e0c01eea919a83fc862e6a():
2285
+ def _process_dataclass__0f6d91dd6a878d827836d961e4683d55b1c9095a():
2311
2286
  def _process_dataclass(
2312
2287
  *,
2313
2288
  __dataclass__cls,
2314
2289
  __dataclass__init__fields__0__annotation,
2315
- __dataclass__init__fields__0__default,
2290
+ __dataclass__init__fields__1__annotation,
2316
2291
  __dataclass__FieldFnValidationError, # noqa
2317
2292
  __dataclass__FieldTypeValidationError, # noqa
2318
2293
  __dataclass__FnValidationError, # noqa
@@ -2331,7 +2306,8 @@ def _process_dataclass__ecd4e8fdaa04b3fa64e0c01eea919a83fc862e6a():
2331
2306
  if self.__class__ is not __dataclass__cls:
2332
2307
  raise TypeError(self)
2333
2308
  return __dataclass__cls( # noqa
2334
- state=self.state,
2309
+ cfg_cls=self.cfg_cls,
2310
+ fn=self.fn,
2335
2311
  )
2336
2312
 
2337
2313
  __copy__.__qualname__ = f"{__dataclass__cls.__qualname__}.__copy__"
@@ -2345,7 +2321,8 @@ def _process_dataclass__ecd4e8fdaa04b3fa64e0c01eea919a83fc862e6a():
2345
2321
  if self.__class__ is not other.__class__:
2346
2322
  return NotImplemented
2347
2323
  return (
2348
- self.state == other.state
2324
+ self.cfg_cls == other.cfg_cls and
2325
+ self.fn == other.fn
2349
2326
  )
2350
2327
 
2351
2328
  __eq__.__qualname__ = f"{__dataclass__cls.__qualname__}.__eq__"
@@ -2354,7 +2331,8 @@ def _process_dataclass__ecd4e8fdaa04b3fa64e0c01eea919a83fc862e6a():
2354
2331
  setattr(__dataclass__cls, '__eq__', __eq__)
2355
2332
 
2356
2333
  __dataclass___setattr_frozen_fields = {
2357
- 'state',
2334
+ 'cfg_cls',
2335
+ 'fn',
2358
2336
  }
2359
2337
 
2360
2338
  def __setattr__(self, name, value):
@@ -2371,7 +2349,8 @@ def _process_dataclass__ecd4e8fdaa04b3fa64e0c01eea919a83fc862e6a():
2371
2349
  setattr(__dataclass__cls, '__setattr__', __setattr__)
2372
2350
 
2373
2351
  __dataclass___delattr_frozen_fields = {
2374
- 'state',
2352
+ 'cfg_cls',
2353
+ 'fn',
2375
2354
  }
2376
2355
 
2377
2356
  def __delattr__(self, name):
@@ -2389,7 +2368,8 @@ def _process_dataclass__ecd4e8fdaa04b3fa64e0c01eea919a83fc862e6a():
2389
2368
 
2390
2369
  def __hash__(self):
2391
2370
  return hash((
2392
- self.state,
2371
+ self.cfg_cls,
2372
+ self.fn,
2393
2373
  ))
2394
2374
 
2395
2375
  __hash__.__qualname__ = f"{__dataclass__cls.__qualname__}.__hash__"
@@ -2397,10 +2377,11 @@ def _process_dataclass__ecd4e8fdaa04b3fa64e0c01eea919a83fc862e6a():
2397
2377
 
2398
2378
  def __init__(
2399
2379
  self,
2400
- *,
2401
- state: __dataclass__init__fields__0__annotation = __dataclass__init__fields__0__default,
2380
+ cfg_cls: __dataclass__init__fields__0__annotation,
2381
+ fn: __dataclass__init__fields__1__annotation,
2402
2382
  ) -> __dataclass__None:
2403
- __dataclass__object_setattr(self, 'state', state)
2383
+ __dataclass__object_setattr(self, 'cfg_cls', cfg_cls)
2384
+ __dataclass__object_setattr(self, 'fn', fn)
2404
2385
 
2405
2386
  __init__.__qualname__ = f"{__dataclass__cls.__qualname__}.__init__"
2406
2387
  if '__init__' in __dataclass__cls.__dict__:
@@ -2410,7 +2391,8 @@ def _process_dataclass__ecd4e8fdaa04b3fa64e0c01eea919a83fc862e6a():
2410
2391
  @__dataclass___recursive_repr()
2411
2392
  def __repr__(self):
2412
2393
  parts = []
2413
- parts.append(f"state={self.state!r}")
2394
+ parts.append(f"cfg_cls={self.cfg_cls!r}")
2395
+ parts.append(f"fn={self.fn!r}")
2414
2396
  return (
2415
2397
  f"{self.__class__.__qualname__}("
2416
2398
  f"{', '.join(parts)}"
@@ -2427,29 +2409,37 @@ def _process_dataclass__ecd4e8fdaa04b3fa64e0c01eea919a83fc862e6a():
2427
2409
 
2428
2410
  @_register(
2429
2411
  plan_repr=(
2430
- "Plans(tup=(CopyPlan(fields=('backend',)), EqPlan(fields=('backend',)), FrozenPlan(fields=('backend',), allow_d"
2431
- "ynamic_dunder_attrs=False), HashPlan(action='add', fields=('backend',), cache=False), InitPlan(fields=(InitPla"
2432
- "n.Field(name='backend', annotation=OpRef(name='init.fields.0.annotation'), default=OpRef(name='init.fields.0.d"
2433
- "efault'), default_factory=None, init=True, override=False, field_type=FieldType.INSTANCE, coerce=None, validat"
2434
- "e=None, check_type=None),), self_param='self', std_params=(), kw_only_params=('backend',), frozen=True, slots="
2435
- "False, post_init_params=None, init_fns=(), validate_fns=()), ReprPlan(fields=(ReprPlan.Field(name='backend', k"
2436
- "w_only=True, fn=None),), id=False, terse=False, default_fn=None)))"
2412
+ "Plans(tup=(CopyPlan(fields=('content', 'backend')), EqPlan(fields=('content', 'backend')), FrozenPlan(fields=("
2413
+ "'content', 'backend', 'configurable_cls'), allow_dynamic_dunder_attrs=False), HashPlan(action='add', fields=('"
2414
+ "content', 'backend'), cache=False), InitPlan(fields=(InitPlan.Field(name='content', annotation=OpRef(name='ini"
2415
+ "t.fields.0.annotation'), default=None, default_factory=None, init=True, override=False, field_type=FieldType.I"
2416
+ "NSTANCE, coerce=None, validate=None, check_type=None), InitPlan.Field(name='backend', annotation=OpRef(name='i"
2417
+ "nit.fields.1.annotation'), default=OpRef(name='init.fields.1.default'), default_factory=None, init=True, overr"
2418
+ "ide=False, field_type=FieldType.INSTANCE, coerce=None, validate=None, check_type=None), InitPlan.Field(name='c"
2419
+ "onfigurable_cls', annotation=OpRef(name='init.fields.2.annotation'), default=None, default_factory=None, init="
2420
+ "True, override=False, field_type=FieldType.CLASS_VAR, coerce=None, validate=None, check_type=None)), self_para"
2421
+ "m='self', std_params=('content',), kw_only_params=('backend',), frozen=True, slots=False, post_init_params=Non"
2422
+ "e, init_fns=(), validate_fns=()), ReprPlan(fields=(ReprPlan.Field(name='content', kw_only=False, fn=None), Rep"
2423
+ "rPlan.Field(name='backend', kw_only=True, fn=None)), id=False, terse=False, default_fn=None)))"
2437
2424
  ),
2438
- plan_repr_sha1='fa5665ecddac4bdf52a6a47db3b5b5362a8b3c7a',
2425
+ plan_repr_sha1='68fe24967af76c907a1aebfe8185412042d24fa8',
2439
2426
  op_ref_idents=(
2440
2427
  '__dataclass__init__fields__0__annotation',
2441
- '__dataclass__init__fields__0__default',
2428
+ '__dataclass__init__fields__1__annotation',
2429
+ '__dataclass__init__fields__1__default',
2442
2430
  ),
2443
2431
  cls_names=(
2444
- ('ommlds.cli.main', 'BackendConfig'),
2432
+ ('ommlds.cli.sessions.completion.session', 'CompletionSession.Config'),
2433
+ ('ommlds.cli.sessions.embedding.session', 'EmbeddingSession.Config'),
2445
2434
  ),
2446
2435
  )
2447
- def _process_dataclass__fa5665ecddac4bdf52a6a47db3b5b5362a8b3c7a():
2436
+ def _process_dataclass__68fe24967af76c907a1aebfe8185412042d24fa8():
2448
2437
  def _process_dataclass(
2449
2438
  *,
2450
2439
  __dataclass__cls,
2451
2440
  __dataclass__init__fields__0__annotation,
2452
- __dataclass__init__fields__0__default,
2441
+ __dataclass__init__fields__1__annotation,
2442
+ __dataclass__init__fields__1__default,
2453
2443
  __dataclass__FieldFnValidationError, # noqa
2454
2444
  __dataclass__FieldTypeValidationError, # noqa
2455
2445
  __dataclass__FnValidationError, # noqa
@@ -2468,6 +2458,7 @@ def _process_dataclass__fa5665ecddac4bdf52a6a47db3b5b5362a8b3c7a():
2468
2458
  if self.__class__ is not __dataclass__cls:
2469
2459
  raise TypeError(self)
2470
2460
  return __dataclass__cls( # noqa
2461
+ content=self.content,
2471
2462
  backend=self.backend,
2472
2463
  )
2473
2464
 
@@ -2482,6 +2473,7 @@ def _process_dataclass__fa5665ecddac4bdf52a6a47db3b5b5362a8b3c7a():
2482
2473
  if self.__class__ is not other.__class__:
2483
2474
  return NotImplemented
2484
2475
  return (
2476
+ self.content == other.content and
2485
2477
  self.backend == other.backend
2486
2478
  )
2487
2479
 
@@ -2491,7 +2483,9 @@ def _process_dataclass__fa5665ecddac4bdf52a6a47db3b5b5362a8b3c7a():
2491
2483
  setattr(__dataclass__cls, '__eq__', __eq__)
2492
2484
 
2493
2485
  __dataclass___setattr_frozen_fields = {
2486
+ 'content',
2494
2487
  'backend',
2488
+ 'configurable_cls',
2495
2489
  }
2496
2490
 
2497
2491
  def __setattr__(self, name, value):
@@ -2508,7 +2502,9 @@ def _process_dataclass__fa5665ecddac4bdf52a6a47db3b5b5362a8b3c7a():
2508
2502
  setattr(__dataclass__cls, '__setattr__', __setattr__)
2509
2503
 
2510
2504
  __dataclass___delattr_frozen_fields = {
2505
+ 'content',
2511
2506
  'backend',
2507
+ 'configurable_cls',
2512
2508
  }
2513
2509
 
2514
2510
  def __delattr__(self, name):
@@ -2526,6 +2522,7 @@ def _process_dataclass__fa5665ecddac4bdf52a6a47db3b5b5362a8b3c7a():
2526
2522
 
2527
2523
  def __hash__(self):
2528
2524
  return hash((
2525
+ self.content,
2529
2526
  self.backend,
2530
2527
  ))
2531
2528
 
@@ -2534,9 +2531,11 @@ def _process_dataclass__fa5665ecddac4bdf52a6a47db3b5b5362a8b3c7a():
2534
2531
 
2535
2532
  def __init__(
2536
2533
  self,
2534
+ content: __dataclass__init__fields__0__annotation,
2537
2535
  *,
2538
- backend: __dataclass__init__fields__0__annotation = __dataclass__init__fields__0__default,
2536
+ backend: __dataclass__init__fields__1__annotation = __dataclass__init__fields__1__default,
2539
2537
  ) -> __dataclass__None:
2538
+ __dataclass__object_setattr(self, 'content', content)
2540
2539
  __dataclass__object_setattr(self, 'backend', backend)
2541
2540
 
2542
2541
  __init__.__qualname__ = f"{__dataclass__cls.__qualname__}.__init__"
@@ -2547,6 +2546,7 @@ def _process_dataclass__fa5665ecddac4bdf52a6a47db3b5b5362a8b3c7a():
2547
2546
  @__dataclass___recursive_repr()
2548
2547
  def __repr__(self):
2549
2548
  parts = []
2549
+ parts.append(f"content={self.content!r}")
2550
2550
  parts.append(f"backend={self.backend!r}")
2551
2551
  return (
2552
2552
  f"{self.__class__.__qualname__}("