ommlds 0.0.0.dev492__py3-none-any.whl → 0.0.0.dev493__py3-none-any.whl

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (52) hide show
  1. ommlds/__about__.py +1 -1
  2. ommlds/cli/_dataclasses.py +617 -724
  3. ommlds/cli/backends/catalog.py +0 -5
  4. ommlds/cli/backends/inject.py +2 -0
  5. ommlds/cli/inject.py +11 -3
  6. ommlds/cli/main.py +33 -24
  7. ommlds/cli/sessions/base.py +1 -10
  8. ommlds/cli/sessions/chat/configs.py +6 -8
  9. ommlds/cli/sessions/chat/drivers/driver.py +3 -1
  10. ommlds/cli/sessions/chat/drivers/inject.py +2 -3
  11. ommlds/cli/sessions/chat/drivers/state/configs.py +2 -0
  12. ommlds/cli/sessions/chat/drivers/state/ids.py +25 -0
  13. ommlds/cli/sessions/chat/drivers/state/inject.py +54 -6
  14. ommlds/cli/sessions/chat/drivers/state/inmemory.py +0 -4
  15. ommlds/cli/sessions/chat/drivers/state/storage.py +17 -10
  16. ommlds/cli/sessions/chat/drivers/state/types.py +9 -4
  17. ommlds/cli/sessions/chat/drivers/user/inject.py +3 -3
  18. ommlds/cli/sessions/chat/facades/__init__.py +0 -0
  19. ommlds/cli/sessions/chat/facades/configs.py +9 -0
  20. ommlds/cli/sessions/chat/facades/facade.py +19 -0
  21. ommlds/cli/sessions/chat/facades/inject.py +23 -0
  22. ommlds/cli/sessions/chat/inject.py +5 -3
  23. ommlds/cli/sessions/chat/interfaces/bare/configs.py +15 -0
  24. ommlds/cli/sessions/chat/interfaces/bare/inject.py +2 -2
  25. ommlds/cli/sessions/chat/interfaces/bare/interactive.py +4 -2
  26. ommlds/cli/sessions/chat/interfaces/configs.py +2 -14
  27. ommlds/cli/sessions/chat/interfaces/inject.py +8 -3
  28. ommlds/cli/sessions/chat/interfaces/textual/app.py +53 -30
  29. ommlds/cli/sessions/chat/interfaces/textual/configs.py +11 -0
  30. ommlds/cli/sessions/chat/interfaces/textual/inject.py +29 -6
  31. ommlds/cli/sessions/chat/interfaces/textual/interface.py +2 -82
  32. ommlds/cli/sessions/chat/interfaces/textual/styles/messages.tcss +8 -5
  33. ommlds/cli/sessions/chat/interfaces/textual/tools.py +4 -3
  34. ommlds/cli/sessions/chat/interfaces/textual/widgets/messages.py +11 -3
  35. ommlds/cli/sessions/chat/session.py +2 -15
  36. ommlds/cli/sessions/completion/configs.py +3 -4
  37. ommlds/cli/sessions/completion/inject.py +1 -2
  38. ommlds/cli/sessions/completion/session.py +4 -8
  39. ommlds/cli/sessions/configs.py +10 -0
  40. ommlds/cli/sessions/embedding/configs.py +3 -4
  41. ommlds/cli/sessions/embedding/inject.py +1 -2
  42. ommlds/cli/sessions/embedding/session.py +4 -8
  43. ommlds/cli/sessions/inject.py +15 -15
  44. ommlds/cli/state/storage.py +7 -1
  45. ommlds/minichain/backends/impls/cerebras/protocol.py +4 -4
  46. ommlds/minichain/backends/impls/ollama/chat.py +2 -2
  47. {ommlds-0.0.0.dev492.dist-info → ommlds-0.0.0.dev493.dist-info}/METADATA +6 -6
  48. {ommlds-0.0.0.dev492.dist-info → ommlds-0.0.0.dev493.dist-info}/RECORD +52 -44
  49. {ommlds-0.0.0.dev492.dist-info → ommlds-0.0.0.dev493.dist-info}/WHEEL +0 -0
  50. {ommlds-0.0.0.dev492.dist-info → ommlds-0.0.0.dev493.dist-info}/entry_points.txt +0 -0
  51. {ommlds-0.0.0.dev492.dist-info → ommlds-0.0.0.dev493.dist-info}/licenses/LICENSE +0 -0
  52. {ommlds-0.0.0.dev492.dist-info → ommlds-0.0.0.dev493.dist-info}/top_level.txt +0 -0
@@ -23,6 +23,121 @@ def _register(**kwargs):
23
23
  ##
24
24
 
25
25
 
26
+ @_register(
27
+ plan_repr=(
28
+ "Plans(tup=(CopyPlan(fields=()), EqPlan(fields=()), FrozenPlan(fields=(), allow_dynamic_dunder_attrs=False), Ha"
29
+ "shPlan(action='add', fields=(), cache=False), InitPlan(fields=(), self_param='self', std_params=(), kw_only_pa"
30
+ "rams=(), frozen=True, slots=False, post_init_params=None, init_fns=(), validate_fns=()), ReprPlan(fields=(), i"
31
+ "d=False, terse=False, default_fn=None)))"
32
+ ),
33
+ plan_repr_sha1='e1f7edfe11f2b721d6a656c46e698fedc95461bb',
34
+ op_ref_idents=(),
35
+ cls_names=(
36
+ ('ommlds.cli.inject', 'SessionConfig'),
37
+ ('ommlds.cli.main', 'FacadeConfig'),
38
+ ('ommlds.cli.main', 'ToolSetConfig'),
39
+ ('ommlds.cli.sessions.chat.drivers.tools.fs.configs', 'FsToolSetConfig'),
40
+ ('ommlds.cli.sessions.chat.drivers.tools.todo.configs', 'TodoToolSetConfig'),
41
+ ('ommlds.cli.sessions.chat.drivers.tools.weather.configs', 'WeatherToolSetConfig'),
42
+ ),
43
+ )
44
+ def _process_dataclass__e1f7edfe11f2b721d6a656c46e698fedc95461bb():
45
+ def _process_dataclass(
46
+ *,
47
+ __dataclass__cls,
48
+ __dataclass__FieldFnValidationError, # noqa
49
+ __dataclass__FieldTypeValidationError, # noqa
50
+ __dataclass__FnValidationError, # noqa
51
+ __dataclass__FrozenInstanceError=dataclasses.FrozenInstanceError, # noqa
52
+ __dataclass__FunctionType=types.FunctionType, # noqa
53
+ __dataclass__HAS_DEFAULT_FACTORY=dataclasses._HAS_DEFAULT_FACTORY, # noqa
54
+ __dataclass__MISSING=dataclasses.MISSING, # noqa
55
+ __dataclass__None=None, # noqa
56
+ __dataclass__TypeError=TypeError, # noqa
57
+ __dataclass___recursive_repr=reprlib.recursive_repr, # noqa
58
+ __dataclass__isinstance=isinstance, # noqa
59
+ __dataclass__object_setattr=object.__setattr__, # noqa
60
+ __dataclass__property=property, # noqa
61
+ ):
62
+ def __copy__(self):
63
+ if self.__class__ is not __dataclass__cls:
64
+ raise TypeError(self)
65
+ return __dataclass__cls() # noqa
66
+
67
+ __copy__.__qualname__ = f"{__dataclass__cls.__qualname__}.__copy__"
68
+ if '__copy__' in __dataclass__cls.__dict__:
69
+ raise __dataclass__TypeError(f"Cannot overwrite attribute __copy__ in class {__dataclass__cls.__name__}")
70
+ setattr(__dataclass__cls, '__copy__', __copy__)
71
+
72
+ def __eq__(self, other):
73
+ if self is other:
74
+ return True
75
+ if self.__class__ is not other.__class__:
76
+ return NotImplemented
77
+ return True
78
+
79
+ __eq__.__qualname__ = f"{__dataclass__cls.__qualname__}.__eq__"
80
+ if '__eq__' in __dataclass__cls.__dict__:
81
+ raise __dataclass__TypeError(f"Cannot overwrite attribute __eq__ in class {__dataclass__cls.__name__}")
82
+ setattr(__dataclass__cls, '__eq__', __eq__)
83
+
84
+ def __setattr__(self, name, value):
85
+ if (
86
+ type(self) is __dataclass__cls
87
+ ):
88
+ raise __dataclass__FrozenInstanceError(f"cannot assign to field {name!r}")
89
+ super(__dataclass__cls, self).__setattr__(name, value)
90
+
91
+ __setattr__.__qualname__ = f"{__dataclass__cls.__qualname__}.__setattr__"
92
+ if '__setattr__' in __dataclass__cls.__dict__:
93
+ raise __dataclass__TypeError(f"Cannot overwrite attribute __setattr__ in class {__dataclass__cls.__name__}")
94
+ setattr(__dataclass__cls, '__setattr__', __setattr__)
95
+
96
+ def __delattr__(self, name):
97
+ if (
98
+ type(self) is __dataclass__cls
99
+ ):
100
+ raise __dataclass__FrozenInstanceError(f"cannot delete field {name!r}")
101
+ super(__dataclass__cls, self).__delattr__(name)
102
+
103
+ __delattr__.__qualname__ = f"{__dataclass__cls.__qualname__}.__delattr__"
104
+ if '__delattr__' in __dataclass__cls.__dict__:
105
+ raise __dataclass__TypeError(f"Cannot overwrite attribute __delattr__ in class {__dataclass__cls.__name__}")
106
+ setattr(__dataclass__cls, '__delattr__', __delattr__)
107
+
108
+ def __hash__(self):
109
+ return hash(())
110
+
111
+ __hash__.__qualname__ = f"{__dataclass__cls.__qualname__}.__hash__"
112
+ setattr(__dataclass__cls, '__hash__', __hash__)
113
+
114
+ def __init__(
115
+ self,
116
+ ) -> __dataclass__None:
117
+ pass
118
+
119
+ __init__.__qualname__ = f"{__dataclass__cls.__qualname__}.__init__"
120
+ if '__init__' in __dataclass__cls.__dict__:
121
+ raise __dataclass__TypeError(f"Cannot overwrite attribute __init__ in class {__dataclass__cls.__name__}")
122
+ setattr(__dataclass__cls, '__init__', __init__)
123
+
124
+ @__dataclass___recursive_repr()
125
+ def __repr__(self):
126
+ parts = []
127
+ return (
128
+ f"{self.__class__.__qualname__}("
129
+ f"{', '.join(parts)}"
130
+ f")"
131
+ )
132
+
133
+ __repr__.__qualname__ = f"{__dataclass__cls.__qualname__}.__repr__"
134
+ if '__repr__' in __dataclass__cls.__dict__:
135
+ raise __dataclass__TypeError(f"Cannot overwrite attribute __repr__ in class {__dataclass__cls.__name__}")
136
+ setattr(__dataclass__cls, '__repr__', __repr__)
137
+
138
+ return _process_dataclass
139
+
140
+
26
141
  @_register(
27
142
  plan_repr=(
28
143
  "Plans(tup=(CopyPlan(fields=('stream', 'verbose', 'enable_tools')), EqPlan(fields=('stream', 'verbose', 'enable"
@@ -330,22 +445,27 @@ def _process_dataclass__fa5665ecddac4bdf52a6a47db3b5b5362a8b3c7a():
330
445
 
331
446
  @_register(
332
447
  plan_repr=(
333
- "Plans(tup=(CopyPlan(fields=('driver', 'interface', 'rendering')), EqPlan(fields=('driver', 'interface', 'rende"
334
- "ring')), FrozenPlan(fields=('driver', 'interface', 'rendering'), allow_dynamic_dunder_attrs=False), HashPlan(a"
335
- "ction='add', fields=('driver', 'interface', 'rendering'), cache=False), InitPlan(fields=(InitPlan.Field(name='"
336
- "driver', annotation=OpRef(name='init.fields.0.annotation'), default=OpRef(name='init.fields.0.default'), defau"
337
- "lt_factory=None, init=True, override=False, field_type=FieldType.INSTANCE, coerce=None, validate=None, check_t"
338
- "ype=None), InitPlan.Field(name='interface', annotation=OpRef(name='init.fields.1.annotation'), default=OpRef(n"
339
- "ame='init.fields.1.default'), default_factory=None, init=True, override=False, field_type=FieldType.INSTANCE, "
340
- "coerce=None, validate=None, check_type=None), InitPlan.Field(name='rendering', annotation=OpRef(name='init.fie"
341
- "lds.2.annotation'), default=OpRef(name='init.fields.2.default'), default_factory=None, init=True, override=Fal"
342
- "se, field_type=FieldType.INSTANCE, coerce=None, validate=None, check_type=None)), self_param='self', std_param"
343
- "s=(), kw_only_params=('driver', 'interface', 'rendering'), frozen=True, slots=False, post_init_params=None, in"
344
- "it_fns=(), validate_fns=()), ReprPlan(fields=(ReprPlan.Field(name='driver', kw_only=True, fn=None), ReprPlan.F"
345
- "ield(name='interface', kw_only=True, fn=None), ReprPlan.Field(name='rendering', kw_only=True, fn=None)), id=Fa"
346
- "lse, terse=False, default_fn=None)))"
448
+ "Plans(tup=(CopyPlan(fields=('enable_tools', 'dangerous_no_tool_confirmation', 'interactive', 'use_readline')),"
449
+ " EqPlan(fields=('enable_tools', 'dangerous_no_tool_confirmation', 'interactive', 'use_readline')), FrozenPlan("
450
+ "fields=('enable_tools', 'dangerous_no_tool_confirmation', 'interactive', 'use_readline'), allow_dynamic_dunder"
451
+ "_attrs=False), HashPlan(action='add', fields=('enable_tools', 'dangerous_no_tool_confirmation', 'interactive',"
452
+ " 'use_readline'), cache=False), InitPlan(fields=(InitPlan.Field(name='enable_tools', annotation=OpRef(name='in"
453
+ "it.fields.0.annotation'), default=OpRef(name='init.fields.0.default'), default_factory=None, init=True, overri"
454
+ "de=False, field_type=FieldType.INSTANCE, coerce=None, validate=None, check_type=None), InitPlan.Field(name='da"
455
+ "ngerous_no_tool_confirmation', annotation=OpRef(name='init.fields.1.annotation'), default=OpRef(name='init.fie"
456
+ "lds.1.default'), default_factory=None, init=True, override=False, field_type=FieldType.INSTANCE, coerce=None, "
457
+ "validate=None, check_type=None), InitPlan.Field(name='interactive', annotation=OpRef(name='init.fields.2.annot"
458
+ "ation'), default=OpRef(name='init.fields.2.default'), default_factory=None, init=True, override=False, field_t"
459
+ "ype=FieldType.INSTANCE, coerce=None, validate=None, check_type=None), InitPlan.Field(name='use_readline', anno"
460
+ "tation=OpRef(name='init.fields.3.annotation'), default=OpRef(name='init.fields.3.default'), default_factory=No"
461
+ "ne, init=True, override=False, field_type=FieldType.INSTANCE, coerce=None, validate=None, check_type=None)), s"
462
+ "elf_param='self', std_params=(), kw_only_params=('enable_tools', 'dangerous_no_tool_confirmation', 'interactiv"
463
+ "e', 'use_readline'), frozen=True, slots=False, post_init_params=None, init_fns=(), validate_fns=()), ReprPlan("
464
+ "fields=(ReprPlan.Field(name='enable_tools', kw_only=True, fn=None), ReprPlan.Field(name='dangerous_no_tool_con"
465
+ "firmation', kw_only=True, fn=None), ReprPlan.Field(name='interactive', kw_only=True, fn=None), ReprPlan.Field("
466
+ "name='use_readline', kw_only=True, fn=None)), id=False, terse=False, default_fn=None)))"
347
467
  ),
348
- plan_repr_sha1='103bad1f2af413714bd23ee2d6a5dffda2e6163d',
468
+ plan_repr_sha1='9e8c99e7d2eb01a6861d3003bd95e38b3c3fe9ae',
349
469
  op_ref_idents=(
350
470
  '__dataclass__init__fields__0__annotation',
351
471
  '__dataclass__init__fields__0__default',
@@ -353,12 +473,14 @@ def _process_dataclass__fa5665ecddac4bdf52a6a47db3b5b5362a8b3c7a():
353
473
  '__dataclass__init__fields__1__default',
354
474
  '__dataclass__init__fields__2__annotation',
355
475
  '__dataclass__init__fields__2__default',
476
+ '__dataclass__init__fields__3__annotation',
477
+ '__dataclass__init__fields__3__default',
356
478
  ),
357
479
  cls_names=(
358
- ('ommlds.cli.main', 'ChatConfig'),
480
+ ('ommlds.cli.main', 'BareInterfaceConfig'),
359
481
  ),
360
482
  )
361
- def _process_dataclass__103bad1f2af413714bd23ee2d6a5dffda2e6163d():
483
+ def _process_dataclass__9e8c99e7d2eb01a6861d3003bd95e38b3c3fe9ae():
362
484
  def _process_dataclass(
363
485
  *,
364
486
  __dataclass__cls,
@@ -368,6 +490,8 @@ def _process_dataclass__103bad1f2af413714bd23ee2d6a5dffda2e6163d():
368
490
  __dataclass__init__fields__1__default,
369
491
  __dataclass__init__fields__2__annotation,
370
492
  __dataclass__init__fields__2__default,
493
+ __dataclass__init__fields__3__annotation,
494
+ __dataclass__init__fields__3__default,
371
495
  __dataclass__FieldFnValidationError, # noqa
372
496
  __dataclass__FieldTypeValidationError, # noqa
373
497
  __dataclass__FnValidationError, # noqa
@@ -386,9 +510,10 @@ def _process_dataclass__103bad1f2af413714bd23ee2d6a5dffda2e6163d():
386
510
  if self.__class__ is not __dataclass__cls:
387
511
  raise TypeError(self)
388
512
  return __dataclass__cls( # noqa
389
- driver=self.driver,
390
- interface=self.interface,
391
- rendering=self.rendering,
513
+ enable_tools=self.enable_tools,
514
+ dangerous_no_tool_confirmation=self.dangerous_no_tool_confirmation,
515
+ interactive=self.interactive,
516
+ use_readline=self.use_readline,
392
517
  )
393
518
 
394
519
  __copy__.__qualname__ = f"{__dataclass__cls.__qualname__}.__copy__"
@@ -402,9 +527,10 @@ def _process_dataclass__103bad1f2af413714bd23ee2d6a5dffda2e6163d():
402
527
  if self.__class__ is not other.__class__:
403
528
  return NotImplemented
404
529
  return (
405
- self.driver == other.driver and
406
- self.interface == other.interface and
407
- self.rendering == other.rendering
530
+ self.enable_tools == other.enable_tools and
531
+ self.dangerous_no_tool_confirmation == other.dangerous_no_tool_confirmation and
532
+ self.interactive == other.interactive and
533
+ self.use_readline == other.use_readline
408
534
  )
409
535
 
410
536
  __eq__.__qualname__ = f"{__dataclass__cls.__qualname__}.__eq__"
@@ -413,9 +539,10 @@ def _process_dataclass__103bad1f2af413714bd23ee2d6a5dffda2e6163d():
413
539
  setattr(__dataclass__cls, '__eq__', __eq__)
414
540
 
415
541
  __dataclass___setattr_frozen_fields = {
416
- 'driver',
417
- 'interface',
418
- 'rendering',
542
+ 'enable_tools',
543
+ 'dangerous_no_tool_confirmation',
544
+ 'interactive',
545
+ 'use_readline',
419
546
  }
420
547
 
421
548
  def __setattr__(self, name, value):
@@ -432,9 +559,10 @@ def _process_dataclass__103bad1f2af413714bd23ee2d6a5dffda2e6163d():
432
559
  setattr(__dataclass__cls, '__setattr__', __setattr__)
433
560
 
434
561
  __dataclass___delattr_frozen_fields = {
435
- 'driver',
436
- 'interface',
437
- 'rendering',
562
+ 'enable_tools',
563
+ 'dangerous_no_tool_confirmation',
564
+ 'interactive',
565
+ 'use_readline',
438
566
  }
439
567
 
440
568
  def __delattr__(self, name):
@@ -452,9 +580,10 @@ def _process_dataclass__103bad1f2af413714bd23ee2d6a5dffda2e6163d():
452
580
 
453
581
  def __hash__(self):
454
582
  return hash((
455
- self.driver,
456
- self.interface,
457
- self.rendering,
583
+ self.enable_tools,
584
+ self.dangerous_no_tool_confirmation,
585
+ self.interactive,
586
+ self.use_readline,
458
587
  ))
459
588
 
460
589
  __hash__.__qualname__ = f"{__dataclass__cls.__qualname__}.__hash__"
@@ -463,13 +592,15 @@ def _process_dataclass__103bad1f2af413714bd23ee2d6a5dffda2e6163d():
463
592
  def __init__(
464
593
  self,
465
594
  *,
466
- driver: __dataclass__init__fields__0__annotation = __dataclass__init__fields__0__default,
467
- interface: __dataclass__init__fields__1__annotation = __dataclass__init__fields__1__default,
468
- rendering: __dataclass__init__fields__2__annotation = __dataclass__init__fields__2__default,
595
+ enable_tools: __dataclass__init__fields__0__annotation = __dataclass__init__fields__0__default,
596
+ dangerous_no_tool_confirmation: __dataclass__init__fields__1__annotation = __dataclass__init__fields__1__default,
597
+ interactive: __dataclass__init__fields__2__annotation = __dataclass__init__fields__2__default,
598
+ use_readline: __dataclass__init__fields__3__annotation = __dataclass__init__fields__3__default,
469
599
  ) -> __dataclass__None:
470
- __dataclass__object_setattr(self, 'driver', driver)
471
- __dataclass__object_setattr(self, 'interface', interface)
472
- __dataclass__object_setattr(self, 'rendering', rendering)
600
+ __dataclass__object_setattr(self, 'enable_tools', enable_tools)
601
+ __dataclass__object_setattr(self, 'dangerous_no_tool_confirmation', dangerous_no_tool_confirmation)
602
+ __dataclass__object_setattr(self, 'interactive', interactive)
603
+ __dataclass__object_setattr(self, 'use_readline', use_readline)
473
604
 
474
605
  __init__.__qualname__ = f"{__dataclass__cls.__qualname__}.__init__"
475
606
  if '__init__' in __dataclass__cls.__dict__:
@@ -479,9 +610,10 @@ def _process_dataclass__103bad1f2af413714bd23ee2d6a5dffda2e6163d():
479
610
  @__dataclass___recursive_repr()
480
611
  def __repr__(self):
481
612
  parts = []
482
- parts.append(f"driver={self.driver!r}")
483
- parts.append(f"interface={self.interface!r}")
484
- parts.append(f"rendering={self.rendering!r}")
613
+ parts.append(f"enable_tools={self.enable_tools!r}")
614
+ parts.append(f"dangerous_no_tool_confirmation={self.dangerous_no_tool_confirmation!r}")
615
+ parts.append(f"interactive={self.interactive!r}")
616
+ parts.append(f"use_readline={self.use_readline!r}")
485
617
  return (
486
618
  f"{self.__class__.__qualname__}("
487
619
  f"{', '.join(parts)}"
@@ -498,35 +630,51 @@ def _process_dataclass__103bad1f2af413714bd23ee2d6a5dffda2e6163d():
498
630
 
499
631
  @_register(
500
632
  plan_repr=(
501
- "Plans(tup=(CopyPlan(fields=('content', 'backend')), EqPlan(fields=('content', 'backend')), FrozenPlan(fields=("
502
- "'content', 'backend'), allow_dynamic_dunder_attrs=False), HashPlan(action='add', fields=('content', 'backend')"
503
- ", cache=False), InitPlan(fields=(InitPlan.Field(name='content', annotation=OpRef(name='init.fields.0.annotatio"
504
- "n'), default=None, default_factory=None, init=True, override=False, field_type=FieldType.INSTANCE, coerce=None"
505
- ", validate=None, check_type=None), InitPlan.Field(name='backend', annotation=OpRef(name='init.fields.1.annotat"
506
- "ion'), default=OpRef(name='init.fields.1.default'), default_factory=None, init=True, override=False, field_typ"
507
- "e=FieldType.INSTANCE, coerce=None, validate=None, check_type=None)), self_param='self', std_params=('content',"
508
- "), kw_only_params=('backend',), frozen=True, slots=False, post_init_params=None, init_fns=(), validate_fns=())"
509
- ", ReprPlan(fields=(ReprPlan.Field(name='content', kw_only=False, fn=None), ReprPlan.Field(name='backend', kw_o"
633
+ "Plans(tup=(CopyPlan(fields=('driver', 'facade', 'interface', 'rendering')), EqPlan(fields=('driver', 'facade',"
634
+ " 'interface', 'rendering')), FrozenPlan(fields=('driver', 'facade', 'interface', 'rendering'), allow_dynamic_d"
635
+ "under_attrs=False), HashPlan(action='add', fields=('driver', 'facade', 'interface', 'rendering'), cache=False)"
636
+ ", InitPlan(fields=(InitPlan.Field(name='driver', annotation=OpRef(name='init.fields.0.annotation'), default=Op"
637
+ "Ref(name='init.fields.0.default'), default_factory=None, init=True, override=False, field_type=FieldType.INSTA"
638
+ "NCE, coerce=None, validate=None, check_type=None), InitPlan.Field(name='facade', annotation=OpRef(name='init.f"
639
+ "ields.1.annotation'), default=OpRef(name='init.fields.1.default'), default_factory=None, init=True, override=F"
640
+ "alse, field_type=FieldType.INSTANCE, coerce=None, validate=None, check_type=None), InitPlan.Field(name='interf"
641
+ "ace', annotation=OpRef(name='init.fields.2.annotation'), default=OpRef(name='init.fields.2.default'), default_"
642
+ "factory=None, init=True, override=False, field_type=FieldType.INSTANCE, coerce=None, validate=None, check_type"
643
+ "=None), InitPlan.Field(name='rendering', annotation=OpRef(name='init.fields.3.annotation'), default=OpRef(name"
644
+ "='init.fields.3.default'), default_factory=None, init=True, override=False, field_type=FieldType.INSTANCE, coe"
645
+ "rce=None, validate=None, check_type=None)), self_param='self', std_params=(), kw_only_params=('driver', 'facad"
646
+ "e', 'interface', 'rendering'), frozen=True, slots=False, post_init_params=None, init_fns=(), validate_fns=()),"
647
+ " ReprPlan(fields=(ReprPlan.Field(name='driver', kw_only=True, fn=None), ReprPlan.Field(name='facade', kw_only="
648
+ "True, fn=None), ReprPlan.Field(name='interface', kw_only=True, fn=None), ReprPlan.Field(name='rendering', kw_o"
510
649
  "nly=True, fn=None)), id=False, terse=False, default_fn=None)))"
511
650
  ),
512
- plan_repr_sha1='010cef854496c65de48af9ea74be543fecd8bec1',
651
+ plan_repr_sha1='e6b40ac244fb47a1c6436b8775079bada9725246',
513
652
  op_ref_idents=(
514
653
  '__dataclass__init__fields__0__annotation',
654
+ '__dataclass__init__fields__0__default',
515
655
  '__dataclass__init__fields__1__annotation',
516
656
  '__dataclass__init__fields__1__default',
657
+ '__dataclass__init__fields__2__annotation',
658
+ '__dataclass__init__fields__2__default',
659
+ '__dataclass__init__fields__3__annotation',
660
+ '__dataclass__init__fields__3__default',
517
661
  ),
518
662
  cls_names=(
519
- ('ommlds.cli.main', 'CompletionConfig'),
520
- ('ommlds.cli.main', 'EmbeddingConfig'),
663
+ ('ommlds.cli.main', 'ChatConfig'),
521
664
  ),
522
665
  )
523
- def _process_dataclass__010cef854496c65de48af9ea74be543fecd8bec1():
666
+ def _process_dataclass__e6b40ac244fb47a1c6436b8775079bada9725246():
524
667
  def _process_dataclass(
525
668
  *,
526
669
  __dataclass__cls,
527
670
  __dataclass__init__fields__0__annotation,
671
+ __dataclass__init__fields__0__default,
528
672
  __dataclass__init__fields__1__annotation,
529
673
  __dataclass__init__fields__1__default,
674
+ __dataclass__init__fields__2__annotation,
675
+ __dataclass__init__fields__2__default,
676
+ __dataclass__init__fields__3__annotation,
677
+ __dataclass__init__fields__3__default,
530
678
  __dataclass__FieldFnValidationError, # noqa
531
679
  __dataclass__FieldTypeValidationError, # noqa
532
680
  __dataclass__FnValidationError, # noqa
@@ -545,8 +693,10 @@ def _process_dataclass__010cef854496c65de48af9ea74be543fecd8bec1():
545
693
  if self.__class__ is not __dataclass__cls:
546
694
  raise TypeError(self)
547
695
  return __dataclass__cls( # noqa
548
- content=self.content,
549
- backend=self.backend,
696
+ driver=self.driver,
697
+ facade=self.facade,
698
+ interface=self.interface,
699
+ rendering=self.rendering,
550
700
  )
551
701
 
552
702
  __copy__.__qualname__ = f"{__dataclass__cls.__qualname__}.__copy__"
@@ -560,8 +710,10 @@ def _process_dataclass__010cef854496c65de48af9ea74be543fecd8bec1():
560
710
  if self.__class__ is not other.__class__:
561
711
  return NotImplemented
562
712
  return (
563
- self.content == other.content and
564
- self.backend == other.backend
713
+ self.driver == other.driver and
714
+ self.facade == other.facade and
715
+ self.interface == other.interface and
716
+ self.rendering == other.rendering
565
717
  )
566
718
 
567
719
  __eq__.__qualname__ = f"{__dataclass__cls.__qualname__}.__eq__"
@@ -570,8 +722,10 @@ def _process_dataclass__010cef854496c65de48af9ea74be543fecd8bec1():
570
722
  setattr(__dataclass__cls, '__eq__', __eq__)
571
723
 
572
724
  __dataclass___setattr_frozen_fields = {
573
- 'content',
574
- 'backend',
725
+ 'driver',
726
+ 'facade',
727
+ 'interface',
728
+ 'rendering',
575
729
  }
576
730
 
577
731
  def __setattr__(self, name, value):
@@ -588,8 +742,10 @@ def _process_dataclass__010cef854496c65de48af9ea74be543fecd8bec1():
588
742
  setattr(__dataclass__cls, '__setattr__', __setattr__)
589
743
 
590
744
  __dataclass___delattr_frozen_fields = {
591
- 'content',
592
- 'backend',
745
+ 'driver',
746
+ 'facade',
747
+ 'interface',
748
+ 'rendering',
593
749
  }
594
750
 
595
751
  def __delattr__(self, name):
@@ -607,8 +763,10 @@ def _process_dataclass__010cef854496c65de48af9ea74be543fecd8bec1():
607
763
 
608
764
  def __hash__(self):
609
765
  return hash((
610
- self.content,
611
- self.backend,
766
+ self.driver,
767
+ self.facade,
768
+ self.interface,
769
+ self.rendering,
612
770
  ))
613
771
 
614
772
  __hash__.__qualname__ = f"{__dataclass__cls.__qualname__}.__hash__"
@@ -616,12 +774,16 @@ def _process_dataclass__010cef854496c65de48af9ea74be543fecd8bec1():
616
774
 
617
775
  def __init__(
618
776
  self,
619
- content: __dataclass__init__fields__0__annotation,
620
777
  *,
621
- backend: __dataclass__init__fields__1__annotation = __dataclass__init__fields__1__default,
778
+ driver: __dataclass__init__fields__0__annotation = __dataclass__init__fields__0__default,
779
+ facade: __dataclass__init__fields__1__annotation = __dataclass__init__fields__1__default,
780
+ interface: __dataclass__init__fields__2__annotation = __dataclass__init__fields__2__default,
781
+ rendering: __dataclass__init__fields__3__annotation = __dataclass__init__fields__3__default,
622
782
  ) -> __dataclass__None:
623
- __dataclass__object_setattr(self, 'content', content)
624
- __dataclass__object_setattr(self, 'backend', backend)
783
+ __dataclass__object_setattr(self, 'driver', driver)
784
+ __dataclass__object_setattr(self, 'facade', facade)
785
+ __dataclass__object_setattr(self, 'interface', interface)
786
+ __dataclass__object_setattr(self, 'rendering', rendering)
625
787
 
626
788
  __init__.__qualname__ = f"{__dataclass__cls.__qualname__}.__init__"
627
789
  if '__init__' in __dataclass__cls.__dict__:
@@ -631,8 +793,10 @@ def _process_dataclass__010cef854496c65de48af9ea74be543fecd8bec1():
631
793
  @__dataclass___recursive_repr()
632
794
  def __repr__(self):
633
795
  parts = []
634
- parts.append(f"content={self.content!r}")
635
- parts.append(f"backend={self.backend!r}")
796
+ parts.append(f"driver={self.driver!r}")
797
+ parts.append(f"facade={self.facade!r}")
798
+ parts.append(f"interface={self.interface!r}")
799
+ parts.append(f"rendering={self.rendering!r}")
636
800
  return (
637
801
  f"{self.__class__.__qualname__}("
638
802
  f"{', '.join(parts)}"
@@ -649,57 +813,35 @@ def _process_dataclass__010cef854496c65de48af9ea74be543fecd8bec1():
649
813
 
650
814
  @_register(
651
815
  plan_repr=(
652
- "Plans(tup=(CopyPlan(fields=('ai', 'backend', 'state', 'tools', 'user')), EqPlan(fields=('ai', 'backend', 'stat"
653
- "e', 'tools', 'user')), FrozenPlan(fields=('ai', 'backend', 'state', 'tools', 'user'), allow_dynamic_dunder_att"
654
- "rs=False), HashPlan(action='add', fields=('ai', 'backend', 'state', 'tools', 'user'), cache=False), InitPlan(f"
655
- "ields=(InitPlan.Field(name='ai', annotation=OpRef(name='init.fields.0.annotation'), default=OpRef(name='init.f"
656
- "ields.0.default'), default_factory=None, init=True, override=False, field_type=FieldType.INSTANCE, coerce=None"
816
+ "Plans(tup=(CopyPlan(fields=('content', 'backend')), EqPlan(fields=('content', 'backend')), FrozenPlan(fields=("
817
+ "'content', 'backend'), allow_dynamic_dunder_attrs=False), HashPlan(action='add', fields=('content', 'backend')"
818
+ ", cache=False), InitPlan(fields=(InitPlan.Field(name='content', annotation=OpRef(name='init.fields.0.annotatio"
819
+ "n'), default=None, default_factory=None, init=True, override=False, field_type=FieldType.INSTANCE, coerce=None"
657
820
  ", validate=None, check_type=None), InitPlan.Field(name='backend', annotation=OpRef(name='init.fields.1.annotat"
658
821
  "ion'), default=OpRef(name='init.fields.1.default'), default_factory=None, init=True, override=False, field_typ"
659
- "e=FieldType.INSTANCE, coerce=None, validate=None, check_type=None), InitPlan.Field(name='state', annotation=Op"
660
- "Ref(name='init.fields.2.annotation'), default=OpRef(name='init.fields.2.default'), default_factory=None, init="
661
- "True, override=False, field_type=FieldType.INSTANCE, coerce=None, validate=None, check_type=None), InitPlan.Fi"
662
- "eld(name='tools', annotation=OpRef(name='init.fields.3.annotation'), default=OpRef(name='init.fields.3.default"
663
- "'), default_factory=None, init=True, override=False, field_type=FieldType.INSTANCE, coerce=None, validate=None"
664
- ", check_type=None), InitPlan.Field(name='user', annotation=OpRef(name='init.fields.4.annotation'), default=OpR"
665
- "ef(name='init.fields.4.default'), default_factory=None, init=True, override=False, field_type=FieldType.INSTAN"
666
- "CE, coerce=None, validate=None, check_type=None)), self_param='self', std_params=(), kw_only_params=('ai', 'ba"
667
- "ckend', 'state', 'tools', 'user'), frozen=True, slots=False, post_init_params=None, init_fns=(), validate_fns="
668
- "()), ReprPlan(fields=(ReprPlan.Field(name='ai', kw_only=True, fn=None), ReprPlan.Field(name='backend', kw_only"
669
- "=True, fn=None), ReprPlan.Field(name='state', kw_only=True, fn=None), ReprPlan.Field(name='tools', kw_only=Tru"
670
- "e, fn=None), ReprPlan.Field(name='user', kw_only=True, fn=None)), id=False, terse=False, default_fn=None)))"
822
+ "e=FieldType.INSTANCE, coerce=None, validate=None, check_type=None)), self_param='self', std_params=(), kw_only"
823
+ "_params=('content', 'backend'), frozen=True, slots=False, post_init_params=None, init_fns=(), validate_fns=())"
824
+ ", ReprPlan(fields=(ReprPlan.Field(name='content', kw_only=True, fn=None), ReprPlan.Field(name='backend', kw_on"
825
+ "ly=True, fn=None)), id=False, terse=False, default_fn=None)))"
671
826
  ),
672
- plan_repr_sha1='ccc522b0563e76033e8f2d3b6864b8a7c48c0fb7',
827
+ plan_repr_sha1='3fffc5e71015066ea8ecac48620fe5be7ba69f26',
673
828
  op_ref_idents=(
674
829
  '__dataclass__init__fields__0__annotation',
675
- '__dataclass__init__fields__0__default',
676
830
  '__dataclass__init__fields__1__annotation',
677
831
  '__dataclass__init__fields__1__default',
678
- '__dataclass__init__fields__2__annotation',
679
- '__dataclass__init__fields__2__default',
680
- '__dataclass__init__fields__3__annotation',
681
- '__dataclass__init__fields__3__default',
682
- '__dataclass__init__fields__4__annotation',
683
- '__dataclass__init__fields__4__default',
684
832
  ),
685
833
  cls_names=(
686
- ('ommlds.cli.main', 'DriverConfig'),
834
+ ('ommlds.cli.main', 'CompletionConfig'),
835
+ ('ommlds.cli.main', 'EmbeddingConfig'),
687
836
  ),
688
837
  )
689
- def _process_dataclass__ccc522b0563e76033e8f2d3b6864b8a7c48c0fb7():
838
+ def _process_dataclass__3fffc5e71015066ea8ecac48620fe5be7ba69f26():
690
839
  def _process_dataclass(
691
840
  *,
692
841
  __dataclass__cls,
693
842
  __dataclass__init__fields__0__annotation,
694
- __dataclass__init__fields__0__default,
695
843
  __dataclass__init__fields__1__annotation,
696
844
  __dataclass__init__fields__1__default,
697
- __dataclass__init__fields__2__annotation,
698
- __dataclass__init__fields__2__default,
699
- __dataclass__init__fields__3__annotation,
700
- __dataclass__init__fields__3__default,
701
- __dataclass__init__fields__4__annotation,
702
- __dataclass__init__fields__4__default,
703
845
  __dataclass__FieldFnValidationError, # noqa
704
846
  __dataclass__FieldTypeValidationError, # noqa
705
847
  __dataclass__FnValidationError, # noqa
@@ -718,11 +860,8 @@ def _process_dataclass__ccc522b0563e76033e8f2d3b6864b8a7c48c0fb7():
718
860
  if self.__class__ is not __dataclass__cls:
719
861
  raise TypeError(self)
720
862
  return __dataclass__cls( # noqa
721
- ai=self.ai,
863
+ content=self.content,
722
864
  backend=self.backend,
723
- state=self.state,
724
- tools=self.tools,
725
- user=self.user,
726
865
  )
727
866
 
728
867
  __copy__.__qualname__ = f"{__dataclass__cls.__qualname__}.__copy__"
@@ -736,11 +875,8 @@ def _process_dataclass__ccc522b0563e76033e8f2d3b6864b8a7c48c0fb7():
736
875
  if self.__class__ is not other.__class__:
737
876
  return NotImplemented
738
877
  return (
739
- self.ai == other.ai and
740
- self.backend == other.backend and
741
- self.state == other.state and
742
- self.tools == other.tools and
743
- self.user == other.user
878
+ self.content == other.content and
879
+ self.backend == other.backend
744
880
  )
745
881
 
746
882
  __eq__.__qualname__ = f"{__dataclass__cls.__qualname__}.__eq__"
@@ -749,11 +885,8 @@ def _process_dataclass__ccc522b0563e76033e8f2d3b6864b8a7c48c0fb7():
749
885
  setattr(__dataclass__cls, '__eq__', __eq__)
750
886
 
751
887
  __dataclass___setattr_frozen_fields = {
752
- 'ai',
888
+ 'content',
753
889
  'backend',
754
- 'state',
755
- 'tools',
756
- 'user',
757
890
  }
758
891
 
759
892
  def __setattr__(self, name, value):
@@ -770,11 +903,8 @@ def _process_dataclass__ccc522b0563e76033e8f2d3b6864b8a7c48c0fb7():
770
903
  setattr(__dataclass__cls, '__setattr__', __setattr__)
771
904
 
772
905
  __dataclass___delattr_frozen_fields = {
773
- 'ai',
906
+ 'content',
774
907
  'backend',
775
- 'state',
776
- 'tools',
777
- 'user',
778
908
  }
779
909
 
780
910
  def __delattr__(self, name):
@@ -792,11 +922,8 @@ def _process_dataclass__ccc522b0563e76033e8f2d3b6864b8a7c48c0fb7():
792
922
 
793
923
  def __hash__(self):
794
924
  return hash((
795
- self.ai,
925
+ self.content,
796
926
  self.backend,
797
- self.state,
798
- self.tools,
799
- self.user,
800
927
  ))
801
928
 
802
929
  __hash__.__qualname__ = f"{__dataclass__cls.__qualname__}.__hash__"
@@ -805,17 +932,11 @@ def _process_dataclass__ccc522b0563e76033e8f2d3b6864b8a7c48c0fb7():
805
932
  def __init__(
806
933
  self,
807
934
  *,
808
- ai: __dataclass__init__fields__0__annotation = __dataclass__init__fields__0__default,
935
+ content: __dataclass__init__fields__0__annotation,
809
936
  backend: __dataclass__init__fields__1__annotation = __dataclass__init__fields__1__default,
810
- state: __dataclass__init__fields__2__annotation = __dataclass__init__fields__2__default,
811
- tools: __dataclass__init__fields__3__annotation = __dataclass__init__fields__3__default,
812
- user: __dataclass__init__fields__4__annotation = __dataclass__init__fields__4__default,
813
937
  ) -> __dataclass__None:
814
- __dataclass__object_setattr(self, 'ai', ai)
938
+ __dataclass__object_setattr(self, 'content', content)
815
939
  __dataclass__object_setattr(self, 'backend', backend)
816
- __dataclass__object_setattr(self, 'state', state)
817
- __dataclass__object_setattr(self, 'tools', tools)
818
- __dataclass__object_setattr(self, 'user', user)
819
940
 
820
941
  __init__.__qualname__ = f"{__dataclass__cls.__qualname__}.__init__"
821
942
  if '__init__' in __dataclass__cls.__dict__:
@@ -825,11 +946,8 @@ def _process_dataclass__ccc522b0563e76033e8f2d3b6864b8a7c48c0fb7():
825
946
  @__dataclass___recursive_repr()
826
947
  def __repr__(self):
827
948
  parts = []
828
- parts.append(f"ai={self.ai!r}")
949
+ parts.append(f"content={self.content!r}")
829
950
  parts.append(f"backend={self.backend!r}")
830
- parts.append(f"state={self.state!r}")
831
- parts.append(f"tools={self.tools!r}")
832
- parts.append(f"user={self.user!r}")
833
951
  return (
834
952
  f"{self.__class__.__qualname__}("
835
953
  f"{', '.join(parts)}"
@@ -846,31 +964,27 @@ def _process_dataclass__ccc522b0563e76033e8f2d3b6864b8a7c48c0fb7():
846
964
 
847
965
  @_register(
848
966
  plan_repr=(
849
- "Plans(tup=(CopyPlan(fields=('interactive', 'use_textual', 'use_readline', 'enable_tools', 'dangerous_no_tool_c"
850
- "onfirmation')), EqPlan(fields=('interactive', 'use_textual', 'use_readline', 'enable_tools', 'dangerous_no_too"
851
- "l_confirmation')), FrozenPlan(fields=('interactive', 'use_textual', 'use_readline', 'enable_tools', 'dangerous"
852
- "_no_tool_confirmation'), allow_dynamic_dunder_attrs=False), HashPlan(action='add', fields=('interactive', 'use"
853
- "_textual', 'use_readline', 'enable_tools', 'dangerous_no_tool_confirmation'), cache=False), InitPlan(fields=(I"
854
- "nitPlan.Field(name='interactive', annotation=OpRef(name='init.fields.0.annotation'), default=OpRef(name='init."
855
- "fields.0.default'), default_factory=None, init=True, override=False, field_type=FieldType.INSTANCE, coerce=Non"
856
- "e, validate=None, check_type=None), InitPlan.Field(name='use_textual', annotation=OpRef(name='init.fields.1.an"
857
- "notation'), default=OpRef(name='init.fields.1.default'), default_factory=None, init=True, override=False, fiel"
858
- "d_type=FieldType.INSTANCE, coerce=None, validate=None, check_type=None), InitPlan.Field(name='use_readline', a"
859
- "nnotation=OpRef(name='init.fields.2.annotation'), default=OpRef(name='init.fields.2.default'), default_factory"
860
- "=None, init=True, override=False, field_type=FieldType.INSTANCE, coerce=None, validate=None, check_type=None),"
861
- " InitPlan.Field(name='enable_tools', annotation=OpRef(name='init.fields.3.annotation'), default=OpRef(name='in"
862
- "it.fields.3.default'), default_factory=None, init=True, override=False, field_type=FieldType.INSTANCE, coerce="
863
- "None, validate=None, check_type=None), InitPlan.Field(name='dangerous_no_tool_confirmation', annotation=OpRef("
864
- "name='init.fields.4.annotation'), default=OpRef(name='init.fields.4.default'), default_factory=None, init=True"
865
- ", override=False, field_type=FieldType.INSTANCE, coerce=None, validate=None, check_type=None)), self_param='se"
866
- "lf', std_params=(), kw_only_params=('interactive', 'use_textual', 'use_readline', 'enable_tools', 'dangerous_n"
867
- "o_tool_confirmation'), frozen=True, slots=False, post_init_params=None, init_fns=(), validate_fns=()), ReprPla"
868
- "n(fields=(ReprPlan.Field(name='interactive', kw_only=True, fn=None), ReprPlan.Field(name='use_textual', kw_onl"
869
- "y=True, fn=None), ReprPlan.Field(name='use_readline', kw_only=True, fn=None), ReprPlan.Field(name='enable_tool"
870
- "s', kw_only=True, fn=None), ReprPlan.Field(name='dangerous_no_tool_confirmation', kw_only=True, fn=None)), id="
871
- "False, terse=False, default_fn=None)))"
967
+ "Plans(tup=(CopyPlan(fields=('ai', 'backend', 'state', 'tools', 'user')), EqPlan(fields=('ai', 'backend', 'stat"
968
+ "e', 'tools', 'user')), FrozenPlan(fields=('ai', 'backend', 'state', 'tools', 'user'), allow_dynamic_dunder_att"
969
+ "rs=False), HashPlan(action='add', fields=('ai', 'backend', 'state', 'tools', 'user'), cache=False), InitPlan(f"
970
+ "ields=(InitPlan.Field(name='ai', annotation=OpRef(name='init.fields.0.annotation'), default=OpRef(name='init.f"
971
+ "ields.0.default'), default_factory=None, init=True, override=False, field_type=FieldType.INSTANCE, coerce=None"
972
+ ", validate=None, check_type=None), InitPlan.Field(name='backend', annotation=OpRef(name='init.fields.1.annotat"
973
+ "ion'), default=OpRef(name='init.fields.1.default'), default_factory=None, init=True, override=False, field_typ"
974
+ "e=FieldType.INSTANCE, coerce=None, validate=None, check_type=None), InitPlan.Field(name='state', annotation=Op"
975
+ "Ref(name='init.fields.2.annotation'), default=OpRef(name='init.fields.2.default'), default_factory=None, init="
976
+ "True, override=False, field_type=FieldType.INSTANCE, coerce=None, validate=None, check_type=None), InitPlan.Fi"
977
+ "eld(name='tools', annotation=OpRef(name='init.fields.3.annotation'), default=OpRef(name='init.fields.3.default"
978
+ "'), default_factory=None, init=True, override=False, field_type=FieldType.INSTANCE, coerce=None, validate=None"
979
+ ", check_type=None), InitPlan.Field(name='user', annotation=OpRef(name='init.fields.4.annotation'), default=OpR"
980
+ "ef(name='init.fields.4.default'), default_factory=None, init=True, override=False, field_type=FieldType.INSTAN"
981
+ "CE, coerce=None, validate=None, check_type=None)), self_param='self', std_params=(), kw_only_params=('ai', 'ba"
982
+ "ckend', 'state', 'tools', 'user'), frozen=True, slots=False, post_init_params=None, init_fns=(), validate_fns="
983
+ "()), ReprPlan(fields=(ReprPlan.Field(name='ai', kw_only=True, fn=None), ReprPlan.Field(name='backend', kw_only"
984
+ "=True, fn=None), ReprPlan.Field(name='state', kw_only=True, fn=None), ReprPlan.Field(name='tools', kw_only=Tru"
985
+ "e, fn=None), ReprPlan.Field(name='user', kw_only=True, fn=None)), id=False, terse=False, default_fn=None)))"
872
986
  ),
873
- plan_repr_sha1='2ac54f7b23a3729b83684d53c78e05f4c2d354f2',
987
+ plan_repr_sha1='ccc522b0563e76033e8f2d3b6864b8a7c48c0fb7',
874
988
  op_ref_idents=(
875
989
  '__dataclass__init__fields__0__annotation',
876
990
  '__dataclass__init__fields__0__default',
@@ -884,10 +998,10 @@ def _process_dataclass__ccc522b0563e76033e8f2d3b6864b8a7c48c0fb7():
884
998
  '__dataclass__init__fields__4__default',
885
999
  ),
886
1000
  cls_names=(
887
- ('ommlds.cli.main', 'InterfaceConfig'),
1001
+ ('ommlds.cli.main', 'DriverConfig'),
888
1002
  ),
889
1003
  )
890
- def _process_dataclass__2ac54f7b23a3729b83684d53c78e05f4c2d354f2():
1004
+ def _process_dataclass__ccc522b0563e76033e8f2d3b6864b8a7c48c0fb7():
891
1005
  def _process_dataclass(
892
1006
  *,
893
1007
  __dataclass__cls,
@@ -919,11 +1033,11 @@ def _process_dataclass__2ac54f7b23a3729b83684d53c78e05f4c2d354f2():
919
1033
  if self.__class__ is not __dataclass__cls:
920
1034
  raise TypeError(self)
921
1035
  return __dataclass__cls( # noqa
922
- interactive=self.interactive,
923
- use_textual=self.use_textual,
924
- use_readline=self.use_readline,
925
- enable_tools=self.enable_tools,
926
- dangerous_no_tool_confirmation=self.dangerous_no_tool_confirmation,
1036
+ ai=self.ai,
1037
+ backend=self.backend,
1038
+ state=self.state,
1039
+ tools=self.tools,
1040
+ user=self.user,
927
1041
  )
928
1042
 
929
1043
  __copy__.__qualname__ = f"{__dataclass__cls.__qualname__}.__copy__"
@@ -937,11 +1051,11 @@ def _process_dataclass__2ac54f7b23a3729b83684d53c78e05f4c2d354f2():
937
1051
  if self.__class__ is not other.__class__:
938
1052
  return NotImplemented
939
1053
  return (
940
- self.interactive == other.interactive and
941
- self.use_textual == other.use_textual and
942
- self.use_readline == other.use_readline and
943
- self.enable_tools == other.enable_tools and
944
- self.dangerous_no_tool_confirmation == other.dangerous_no_tool_confirmation
1054
+ self.ai == other.ai and
1055
+ self.backend == other.backend and
1056
+ self.state == other.state and
1057
+ self.tools == other.tools and
1058
+ self.user == other.user
945
1059
  )
946
1060
 
947
1061
  __eq__.__qualname__ = f"{__dataclass__cls.__qualname__}.__eq__"
@@ -950,11 +1064,11 @@ def _process_dataclass__2ac54f7b23a3729b83684d53c78e05f4c2d354f2():
950
1064
  setattr(__dataclass__cls, '__eq__', __eq__)
951
1065
 
952
1066
  __dataclass___setattr_frozen_fields = {
953
- 'interactive',
954
- 'use_textual',
955
- 'use_readline',
956
- 'enable_tools',
957
- 'dangerous_no_tool_confirmation',
1067
+ 'ai',
1068
+ 'backend',
1069
+ 'state',
1070
+ 'tools',
1071
+ 'user',
958
1072
  }
959
1073
 
960
1074
  def __setattr__(self, name, value):
@@ -971,11 +1085,11 @@ def _process_dataclass__2ac54f7b23a3729b83684d53c78e05f4c2d354f2():
971
1085
  setattr(__dataclass__cls, '__setattr__', __setattr__)
972
1086
 
973
1087
  __dataclass___delattr_frozen_fields = {
974
- 'interactive',
975
- 'use_textual',
976
- 'use_readline',
977
- 'enable_tools',
978
- 'dangerous_no_tool_confirmation',
1088
+ 'ai',
1089
+ 'backend',
1090
+ 'state',
1091
+ 'tools',
1092
+ 'user',
979
1093
  }
980
1094
 
981
1095
  def __delattr__(self, name):
@@ -993,11 +1107,11 @@ def _process_dataclass__2ac54f7b23a3729b83684d53c78e05f4c2d354f2():
993
1107
 
994
1108
  def __hash__(self):
995
1109
  return hash((
996
- self.interactive,
997
- self.use_textual,
998
- self.use_readline,
999
- self.enable_tools,
1000
- self.dangerous_no_tool_confirmation,
1110
+ self.ai,
1111
+ self.backend,
1112
+ self.state,
1113
+ self.tools,
1114
+ self.user,
1001
1115
  ))
1002
1116
 
1003
1117
  __hash__.__qualname__ = f"{__dataclass__cls.__qualname__}.__hash__"
@@ -1006,17 +1120,17 @@ def _process_dataclass__2ac54f7b23a3729b83684d53c78e05f4c2d354f2():
1006
1120
  def __init__(
1007
1121
  self,
1008
1122
  *,
1009
- interactive: __dataclass__init__fields__0__annotation = __dataclass__init__fields__0__default,
1010
- use_textual: __dataclass__init__fields__1__annotation = __dataclass__init__fields__1__default,
1011
- use_readline: __dataclass__init__fields__2__annotation = __dataclass__init__fields__2__default,
1012
- enable_tools: __dataclass__init__fields__3__annotation = __dataclass__init__fields__3__default,
1013
- dangerous_no_tool_confirmation: __dataclass__init__fields__4__annotation = __dataclass__init__fields__4__default,
1123
+ ai: __dataclass__init__fields__0__annotation = __dataclass__init__fields__0__default,
1124
+ backend: __dataclass__init__fields__1__annotation = __dataclass__init__fields__1__default,
1125
+ state: __dataclass__init__fields__2__annotation = __dataclass__init__fields__2__default,
1126
+ tools: __dataclass__init__fields__3__annotation = __dataclass__init__fields__3__default,
1127
+ user: __dataclass__init__fields__4__annotation = __dataclass__init__fields__4__default,
1014
1128
  ) -> __dataclass__None:
1015
- __dataclass__object_setattr(self, 'interactive', interactive)
1016
- __dataclass__object_setattr(self, 'use_textual', use_textual)
1017
- __dataclass__object_setattr(self, 'use_readline', use_readline)
1018
- __dataclass__object_setattr(self, 'enable_tools', enable_tools)
1019
- __dataclass__object_setattr(self, 'dangerous_no_tool_confirmation', dangerous_no_tool_confirmation)
1129
+ __dataclass__object_setattr(self, 'ai', ai)
1130
+ __dataclass__object_setattr(self, 'backend', backend)
1131
+ __dataclass__object_setattr(self, 'state', state)
1132
+ __dataclass__object_setattr(self, 'tools', tools)
1133
+ __dataclass__object_setattr(self, 'user', user)
1020
1134
 
1021
1135
  __init__.__qualname__ = f"{__dataclass__cls.__qualname__}.__init__"
1022
1136
  if '__init__' in __dataclass__cls.__dict__:
@@ -1026,11 +1140,11 @@ def _process_dataclass__2ac54f7b23a3729b83684d53c78e05f4c2d354f2():
1026
1140
  @__dataclass___recursive_repr()
1027
1141
  def __repr__(self):
1028
1142
  parts = []
1029
- parts.append(f"interactive={self.interactive!r}")
1030
- parts.append(f"use_textual={self.use_textual!r}")
1031
- parts.append(f"use_readline={self.use_readline!r}")
1032
- parts.append(f"enable_tools={self.enable_tools!r}")
1033
- parts.append(f"dangerous_no_tool_confirmation={self.dangerous_no_tool_confirmation!r}")
1143
+ parts.append(f"ai={self.ai!r}")
1144
+ parts.append(f"backend={self.backend!r}")
1145
+ parts.append(f"state={self.state!r}")
1146
+ parts.append(f"tools={self.tools!r}")
1147
+ parts.append(f"user={self.user!r}")
1034
1148
  return (
1035
1149
  f"{self.__class__.__qualname__}("
1036
1150
  f"{', '.join(parts)}"
@@ -1047,29 +1161,39 @@ def _process_dataclass__2ac54f7b23a3729b83684d53c78e05f4c2d354f2():
1047
1161
 
1048
1162
  @_register(
1049
1163
  plan_repr=(
1050
- "Plans(tup=(CopyPlan(fields=('markdown',)), EqPlan(fields=('markdown',)), FrozenPlan(fields=('markdown',), allo"
1051
- "w_dynamic_dunder_attrs=False), HashPlan(action='add', fields=('markdown',), cache=False), InitPlan(fields=(Ini"
1052
- "tPlan.Field(name='markdown', annotation=OpRef(name='init.fields.0.annotation'), default=OpRef(name='init.field"
1053
- "s.0.default'), default_factory=None, init=True, override=False, field_type=FieldType.INSTANCE, coerce=None, va"
1054
- "lidate=None, check_type=None),), self_param='self', std_params=(), kw_only_params=('markdown',), frozen=True, "
1055
- "slots=False, post_init_params=None, init_fns=(), validate_fns=()), ReprPlan(fields=(ReprPlan.Field(name='markd"
1056
- "own', kw_only=True, fn=None),), id=False, terse=False, default_fn=None)))"
1164
+ "Plans(tup=(CopyPlan(fields=('enable_tools', 'dangerous_no_tool_confirmation')), EqPlan(fields=('enable_tools',"
1165
+ " 'dangerous_no_tool_confirmation')), FrozenPlan(fields=('enable_tools', 'dangerous_no_tool_confirmation'), all"
1166
+ "ow_dynamic_dunder_attrs=False), HashPlan(action='add', fields=('enable_tools', 'dangerous_no_tool_confirmation"
1167
+ "'), cache=False), InitPlan(fields=(InitPlan.Field(name='enable_tools', annotation=OpRef(name='init.fields.0.an"
1168
+ "notation'), default=OpRef(name='init.fields.0.default'), default_factory=None, init=True, override=False, fiel"
1169
+ "d_type=FieldType.INSTANCE, coerce=None, validate=None, check_type=None), InitPlan.Field(name='dangerous_no_too"
1170
+ "l_confirmation', annotation=OpRef(name='init.fields.1.annotation'), default=OpRef(name='init.fields.1.default'"
1171
+ "), default_factory=None, init=True, override=False, field_type=FieldType.INSTANCE, coerce=None, validate=None,"
1172
+ " check_type=None)), self_param='self', std_params=(), kw_only_params=('enable_tools', 'dangerous_no_tool_confi"
1173
+ "rmation'), frozen=True, slots=False, post_init_params=None, init_fns=(), validate_fns=()), ReprPlan(fields=(Re"
1174
+ "prPlan.Field(name='enable_tools', kw_only=True, fn=None), ReprPlan.Field(name='dangerous_no_tool_confirmation'"
1175
+ ", kw_only=True, fn=None)), id=False, terse=False, default_fn=None)))"
1057
1176
  ),
1058
- plan_repr_sha1='254623427d52b86f69ed60d24a0e95b0b1b391ca',
1177
+ plan_repr_sha1='d65d18393f357ae0fb02bb80268c6f1473462613',
1059
1178
  op_ref_idents=(
1060
1179
  '__dataclass__init__fields__0__annotation',
1061
1180
  '__dataclass__init__fields__0__default',
1181
+ '__dataclass__init__fields__1__annotation',
1182
+ '__dataclass__init__fields__1__default',
1062
1183
  ),
1063
1184
  cls_names=(
1064
- ('ommlds.cli.main', 'RenderingConfig'),
1185
+ ('ommlds.cli.main', 'InterfaceConfig'),
1186
+ ('ommlds.cli.main', 'TextualInterfaceConfig'),
1065
1187
  ),
1066
1188
  )
1067
- def _process_dataclass__254623427d52b86f69ed60d24a0e95b0b1b391ca():
1189
+ def _process_dataclass__d65d18393f357ae0fb02bb80268c6f1473462613():
1068
1190
  def _process_dataclass(
1069
1191
  *,
1070
1192
  __dataclass__cls,
1071
1193
  __dataclass__init__fields__0__annotation,
1072
1194
  __dataclass__init__fields__0__default,
1195
+ __dataclass__init__fields__1__annotation,
1196
+ __dataclass__init__fields__1__default,
1073
1197
  __dataclass__FieldFnValidationError, # noqa
1074
1198
  __dataclass__FieldTypeValidationError, # noqa
1075
1199
  __dataclass__FnValidationError, # noqa
@@ -1088,7 +1212,8 @@ def _process_dataclass__254623427d52b86f69ed60d24a0e95b0b1b391ca():
1088
1212
  if self.__class__ is not __dataclass__cls:
1089
1213
  raise TypeError(self)
1090
1214
  return __dataclass__cls( # noqa
1091
- markdown=self.markdown,
1215
+ enable_tools=self.enable_tools,
1216
+ dangerous_no_tool_confirmation=self.dangerous_no_tool_confirmation,
1092
1217
  )
1093
1218
 
1094
1219
  __copy__.__qualname__ = f"{__dataclass__cls.__qualname__}.__copy__"
@@ -1102,7 +1227,8 @@ def _process_dataclass__254623427d52b86f69ed60d24a0e95b0b1b391ca():
1102
1227
  if self.__class__ is not other.__class__:
1103
1228
  return NotImplemented
1104
1229
  return (
1105
- self.markdown == other.markdown
1230
+ self.enable_tools == other.enable_tools and
1231
+ self.dangerous_no_tool_confirmation == other.dangerous_no_tool_confirmation
1106
1232
  )
1107
1233
 
1108
1234
  __eq__.__qualname__ = f"{__dataclass__cls.__qualname__}.__eq__"
@@ -1111,7 +1237,8 @@ def _process_dataclass__254623427d52b86f69ed60d24a0e95b0b1b391ca():
1111
1237
  setattr(__dataclass__cls, '__eq__', __eq__)
1112
1238
 
1113
1239
  __dataclass___setattr_frozen_fields = {
1114
- 'markdown',
1240
+ 'enable_tools',
1241
+ 'dangerous_no_tool_confirmation',
1115
1242
  }
1116
1243
 
1117
1244
  def __setattr__(self, name, value):
@@ -1128,7 +1255,8 @@ def _process_dataclass__254623427d52b86f69ed60d24a0e95b0b1b391ca():
1128
1255
  setattr(__dataclass__cls, '__setattr__', __setattr__)
1129
1256
 
1130
1257
  __dataclass___delattr_frozen_fields = {
1131
- 'markdown',
1258
+ 'enable_tools',
1259
+ 'dangerous_no_tool_confirmation',
1132
1260
  }
1133
1261
 
1134
1262
  def __delattr__(self, name):
@@ -1146,7 +1274,8 @@ def _process_dataclass__254623427d52b86f69ed60d24a0e95b0b1b391ca():
1146
1274
 
1147
1275
  def __hash__(self):
1148
1276
  return hash((
1149
- self.markdown,
1277
+ self.enable_tools,
1278
+ self.dangerous_no_tool_confirmation,
1150
1279
  ))
1151
1280
 
1152
1281
  __hash__.__qualname__ = f"{__dataclass__cls.__qualname__}.__hash__"
@@ -1155,9 +1284,11 @@ def _process_dataclass__254623427d52b86f69ed60d24a0e95b0b1b391ca():
1155
1284
  def __init__(
1156
1285
  self,
1157
1286
  *,
1158
- markdown: __dataclass__init__fields__0__annotation = __dataclass__init__fields__0__default,
1287
+ enable_tools: __dataclass__init__fields__0__annotation = __dataclass__init__fields__0__default,
1288
+ dangerous_no_tool_confirmation: __dataclass__init__fields__1__annotation = __dataclass__init__fields__1__default,
1159
1289
  ) -> __dataclass__None:
1160
- __dataclass__object_setattr(self, 'markdown', markdown)
1290
+ __dataclass__object_setattr(self, 'enable_tools', enable_tools)
1291
+ __dataclass__object_setattr(self, 'dangerous_no_tool_confirmation', dangerous_no_tool_confirmation)
1161
1292
 
1162
1293
  __init__.__qualname__ = f"{__dataclass__cls.__qualname__}.__init__"
1163
1294
  if '__init__' in __dataclass__cls.__dict__:
@@ -1167,7 +1298,8 @@ def _process_dataclass__254623427d52b86f69ed60d24a0e95b0b1b391ca():
1167
1298
  @__dataclass___recursive_repr()
1168
1299
  def __repr__(self):
1169
1300
  parts = []
1170
- parts.append(f"markdown={self.markdown!r}")
1301
+ parts.append(f"enable_tools={self.enable_tools!r}")
1302
+ parts.append(f"dangerous_no_tool_confirmation={self.dangerous_no_tool_confirmation!r}")
1171
1303
  return (
1172
1304
  f"{self.__class__.__qualname__}("
1173
1305
  f"{', '.join(parts)}"
@@ -1184,23 +1316,29 @@ def _process_dataclass__254623427d52b86f69ed60d24a0e95b0b1b391ca():
1184
1316
 
1185
1317
  @_register(
1186
1318
  plan_repr=(
1187
- "Plans(tup=(CopyPlan(fields=()), EqPlan(fields=()), FrozenPlan(fields=('configurable_cls',), allow_dynamic_dund"
1188
- "er_attrs=False), HashPlan(action='add', fields=(), cache=False), InitPlan(fields=(InitPlan.Field(name='configu"
1189
- "rable_cls', annotation=OpRef(name='init.fields.0.annotation'), default=None, default_factory=None, init=True, "
1190
- "override=False, field_type=FieldType.CLASS_VAR, coerce=None, validate=None, check_type=None),), self_param='se"
1191
- "lf', std_params=(), kw_only_params=(), frozen=True, slots=False, post_init_params=None, init_fns=(), validate_"
1192
- "fns=()), ReprPlan(fields=(), id=False, terse=False, default_fn=None)))"
1319
+ "Plans(tup=(CopyPlan(fields=('markdown',)), EqPlan(fields=('markdown',)), FrozenPlan(fields=('markdown',), allo"
1320
+ "w_dynamic_dunder_attrs=False), HashPlan(action='add', fields=('markdown',), cache=False), InitPlan(fields=(Ini"
1321
+ "tPlan.Field(name='markdown', annotation=OpRef(name='init.fields.0.annotation'), default=OpRef(name='init.field"
1322
+ "s.0.default'), default_factory=None, init=True, override=False, field_type=FieldType.INSTANCE, coerce=None, va"
1323
+ "lidate=None, check_type=None),), self_param='self', std_params=(), kw_only_params=('markdown',), frozen=True, "
1324
+ "slots=False, post_init_params=None, init_fns=(), validate_fns=()), ReprPlan(fields=(ReprPlan.Field(name='markd"
1325
+ "own', kw_only=True, fn=None),), id=False, terse=False, default_fn=None)))"
1326
+ ),
1327
+ plan_repr_sha1='254623427d52b86f69ed60d24a0e95b0b1b391ca',
1328
+ op_ref_idents=(
1329
+ '__dataclass__init__fields__0__annotation',
1330
+ '__dataclass__init__fields__0__default',
1193
1331
  ),
1194
- plan_repr_sha1='d76e197a98f6f128efdad4ad19e3e15bf64e6652',
1195
- op_ref_idents=(),
1196
1332
  cls_names=(
1197
- ('ommlds.cli.main', 'Session.Config'),
1333
+ ('ommlds.cli.main', 'RenderingConfig'),
1198
1334
  ),
1199
1335
  )
1200
- def _process_dataclass__d76e197a98f6f128efdad4ad19e3e15bf64e6652():
1336
+ def _process_dataclass__254623427d52b86f69ed60d24a0e95b0b1b391ca():
1201
1337
  def _process_dataclass(
1202
1338
  *,
1203
1339
  __dataclass__cls,
1340
+ __dataclass__init__fields__0__annotation,
1341
+ __dataclass__init__fields__0__default,
1204
1342
  __dataclass__FieldFnValidationError, # noqa
1205
1343
  __dataclass__FieldTypeValidationError, # noqa
1206
1344
  __dataclass__FnValidationError, # noqa
@@ -1218,7 +1356,9 @@ def _process_dataclass__d76e197a98f6f128efdad4ad19e3e15bf64e6652():
1218
1356
  def __copy__(self):
1219
1357
  if self.__class__ is not __dataclass__cls:
1220
1358
  raise TypeError(self)
1221
- return __dataclass__cls() # noqa
1359
+ return __dataclass__cls( # noqa
1360
+ markdown=self.markdown,
1361
+ )
1222
1362
 
1223
1363
  __copy__.__qualname__ = f"{__dataclass__cls.__qualname__}.__copy__"
1224
1364
  if '__copy__' in __dataclass__cls.__dict__:
@@ -1230,7 +1370,9 @@ def _process_dataclass__d76e197a98f6f128efdad4ad19e3e15bf64e6652():
1230
1370
  return True
1231
1371
  if self.__class__ is not other.__class__:
1232
1372
  return NotImplemented
1233
- return True
1373
+ return (
1374
+ self.markdown == other.markdown
1375
+ )
1234
1376
 
1235
1377
  __eq__.__qualname__ = f"{__dataclass__cls.__qualname__}.__eq__"
1236
1378
  if '__eq__' in __dataclass__cls.__dict__:
@@ -1238,7 +1380,7 @@ def _process_dataclass__d76e197a98f6f128efdad4ad19e3e15bf64e6652():
1238
1380
  setattr(__dataclass__cls, '__eq__', __eq__)
1239
1381
 
1240
1382
  __dataclass___setattr_frozen_fields = {
1241
- 'configurable_cls',
1383
+ 'markdown',
1242
1384
  }
1243
1385
 
1244
1386
  def __setattr__(self, name, value):
@@ -1255,7 +1397,7 @@ def _process_dataclass__d76e197a98f6f128efdad4ad19e3e15bf64e6652():
1255
1397
  setattr(__dataclass__cls, '__setattr__', __setattr__)
1256
1398
 
1257
1399
  __dataclass___delattr_frozen_fields = {
1258
- 'configurable_cls',
1400
+ 'markdown',
1259
1401
  }
1260
1402
 
1261
1403
  def __delattr__(self, name):
@@ -1272,15 +1414,19 @@ def _process_dataclass__d76e197a98f6f128efdad4ad19e3e15bf64e6652():
1272
1414
  setattr(__dataclass__cls, '__delattr__', __delattr__)
1273
1415
 
1274
1416
  def __hash__(self):
1275
- return hash(())
1417
+ return hash((
1418
+ self.markdown,
1419
+ ))
1276
1420
 
1277
1421
  __hash__.__qualname__ = f"{__dataclass__cls.__qualname__}.__hash__"
1278
1422
  setattr(__dataclass__cls, '__hash__', __hash__)
1279
1423
 
1280
1424
  def __init__(
1281
1425
  self,
1426
+ *,
1427
+ markdown: __dataclass__init__fields__0__annotation = __dataclass__init__fields__0__default,
1282
1428
  ) -> __dataclass__None:
1283
- pass
1429
+ __dataclass__object_setattr(self, 'markdown', markdown)
1284
1430
 
1285
1431
  __init__.__qualname__ = f"{__dataclass__cls.__qualname__}.__init__"
1286
1432
  if '__init__' in __dataclass__cls.__dict__:
@@ -1290,6 +1436,7 @@ def _process_dataclass__d76e197a98f6f128efdad4ad19e3e15bf64e6652():
1290
1436
  @__dataclass___recursive_repr()
1291
1437
  def __repr__(self):
1292
1438
  parts = []
1439
+ parts.append(f"markdown={self.markdown!r}")
1293
1440
  return (
1294
1441
  f"{self.__class__.__qualname__}("
1295
1442
  f"{', '.join(parts)}"
@@ -1306,29 +1453,36 @@ def _process_dataclass__d76e197a98f6f128efdad4ad19e3e15bf64e6652():
1306
1453
 
1307
1454
  @_register(
1308
1455
  plan_repr=(
1309
- "Plans(tup=(CopyPlan(fields=('state',)), EqPlan(fields=('state',)), FrozenPlan(fields=('state',), allow_dynamic"
1310
- "_dunder_attrs=False), HashPlan(action='add', fields=('state',), cache=False), InitPlan(fields=(InitPlan.Field("
1311
- "name='state', annotation=OpRef(name='init.fields.0.annotation'), default=OpRef(name='init.fields.0.default'), "
1312
- "default_factory=None, init=True, override=False, field_type=FieldType.INSTANCE, coerce=None, validate=None, ch"
1313
- "eck_type=None),), self_param='self', std_params=(), kw_only_params=('state',), frozen=True, slots=False, post_"
1314
- "init_params=None, init_fns=(), validate_fns=()), ReprPlan(fields=(ReprPlan.Field(name='state', kw_only=True, f"
1315
- "n=None),), id=False, terse=False, default_fn=None)))"
1456
+ "Plans(tup=(CopyPlan(fields=('state', 'chat_id')), EqPlan(fields=('state', 'chat_id')), FrozenPlan(fields=('sta"
1457
+ "te', 'chat_id'), allow_dynamic_dunder_attrs=False), HashPlan(action='add', fields=('state', 'chat_id'), cache="
1458
+ "False), InitPlan(fields=(InitPlan.Field(name='state', annotation=OpRef(name='init.fields.0.annotation'), defau"
1459
+ "lt=OpRef(name='init.fields.0.default'), default_factory=None, init=True, override=False, field_type=FieldType."
1460
+ "INSTANCE, coerce=None, validate=None, check_type=None), InitPlan.Field(name='chat_id', annotation=OpRef(name='"
1461
+ "init.fields.1.annotation'), default=OpRef(name='init.fields.1.default'), default_factory=None, init=True, over"
1462
+ "ride=False, field_type=FieldType.INSTANCE, coerce=None, validate=None, check_type=None)), self_param='self', s"
1463
+ "td_params=(), kw_only_params=('state', 'chat_id'), frozen=True, slots=False, post_init_params=None, init_fns=("
1464
+ "), validate_fns=()), ReprPlan(fields=(ReprPlan.Field(name='state', kw_only=True, fn=None), ReprPlan.Field(name"
1465
+ "='chat_id', kw_only=True, fn=None)), id=False, terse=False, default_fn=None)))"
1316
1466
  ),
1317
- plan_repr_sha1='ecd4e8fdaa04b3fa64e0c01eea919a83fc862e6a',
1467
+ plan_repr_sha1='76648be4a999973a966584081092052c01632d85',
1318
1468
  op_ref_idents=(
1319
1469
  '__dataclass__init__fields__0__annotation',
1320
1470
  '__dataclass__init__fields__0__default',
1471
+ '__dataclass__init__fields__1__annotation',
1472
+ '__dataclass__init__fields__1__default',
1321
1473
  ),
1322
1474
  cls_names=(
1323
1475
  ('ommlds.cli.main', 'StateConfig'),
1324
1476
  ),
1325
1477
  )
1326
- def _process_dataclass__ecd4e8fdaa04b3fa64e0c01eea919a83fc862e6a():
1478
+ def _process_dataclass__76648be4a999973a966584081092052c01632d85():
1327
1479
  def _process_dataclass(
1328
1480
  *,
1329
1481
  __dataclass__cls,
1330
1482
  __dataclass__init__fields__0__annotation,
1331
1483
  __dataclass__init__fields__0__default,
1484
+ __dataclass__init__fields__1__annotation,
1485
+ __dataclass__init__fields__1__default,
1332
1486
  __dataclass__FieldFnValidationError, # noqa
1333
1487
  __dataclass__FieldTypeValidationError, # noqa
1334
1488
  __dataclass__FnValidationError, # noqa
@@ -1348,6 +1502,7 @@ def _process_dataclass__ecd4e8fdaa04b3fa64e0c01eea919a83fc862e6a():
1348
1502
  raise TypeError(self)
1349
1503
  return __dataclass__cls( # noqa
1350
1504
  state=self.state,
1505
+ chat_id=self.chat_id,
1351
1506
  )
1352
1507
 
1353
1508
  __copy__.__qualname__ = f"{__dataclass__cls.__qualname__}.__copy__"
@@ -1361,7 +1516,8 @@ def _process_dataclass__ecd4e8fdaa04b3fa64e0c01eea919a83fc862e6a():
1361
1516
  if self.__class__ is not other.__class__:
1362
1517
  return NotImplemented
1363
1518
  return (
1364
- self.state == other.state
1519
+ self.state == other.state and
1520
+ self.chat_id == other.chat_id
1365
1521
  )
1366
1522
 
1367
1523
  __eq__.__qualname__ = f"{__dataclass__cls.__qualname__}.__eq__"
@@ -1371,6 +1527,7 @@ def _process_dataclass__ecd4e8fdaa04b3fa64e0c01eea919a83fc862e6a():
1371
1527
 
1372
1528
  __dataclass___setattr_frozen_fields = {
1373
1529
  'state',
1530
+ 'chat_id',
1374
1531
  }
1375
1532
 
1376
1533
  def __setattr__(self, name, value):
@@ -1388,6 +1545,7 @@ def _process_dataclass__ecd4e8fdaa04b3fa64e0c01eea919a83fc862e6a():
1388
1545
 
1389
1546
  __dataclass___delattr_frozen_fields = {
1390
1547
  'state',
1548
+ 'chat_id',
1391
1549
  }
1392
1550
 
1393
1551
  def __delattr__(self, name):
@@ -1406,6 +1564,7 @@ def _process_dataclass__ecd4e8fdaa04b3fa64e0c01eea919a83fc862e6a():
1406
1564
  def __hash__(self):
1407
1565
  return hash((
1408
1566
  self.state,
1567
+ self.chat_id,
1409
1568
  ))
1410
1569
 
1411
1570
  __hash__.__qualname__ = f"{__dataclass__cls.__qualname__}.__hash__"
@@ -1415,8 +1574,10 @@ def _process_dataclass__ecd4e8fdaa04b3fa64e0c01eea919a83fc862e6a():
1415
1574
  self,
1416
1575
  *,
1417
1576
  state: __dataclass__init__fields__0__annotation = __dataclass__init__fields__0__default,
1577
+ chat_id: __dataclass__init__fields__1__annotation = __dataclass__init__fields__1__default,
1418
1578
  ) -> __dataclass__None:
1419
1579
  __dataclass__object_setattr(self, 'state', state)
1580
+ __dataclass__object_setattr(self, 'chat_id', chat_id)
1420
1581
 
1421
1582
  __init__.__qualname__ = f"{__dataclass__cls.__qualname__}.__init__"
1422
1583
  if '__init__' in __dataclass__cls.__dict__:
@@ -1427,6 +1588,7 @@ def _process_dataclass__ecd4e8fdaa04b3fa64e0c01eea919a83fc862e6a():
1427
1588
  def __repr__(self):
1428
1589
  parts = []
1429
1590
  parts.append(f"state={self.state!r}")
1591
+ parts.append(f"chat_id={self.chat_id!r}")
1430
1592
  return (
1431
1593
  f"{self.__class__.__qualname__}("
1432
1594
  f"{', '.join(parts)}"
@@ -1443,24 +1605,37 @@ def _process_dataclass__ecd4e8fdaa04b3fa64e0c01eea919a83fc862e6a():
1443
1605
 
1444
1606
  @_register(
1445
1607
  plan_repr=(
1446
- "Plans(tup=(CopyPlan(fields=()), EqPlan(fields=()), FrozenPlan(fields=(), allow_dynamic_dunder_attrs=False), Ha"
1447
- "shPlan(action='add', fields=(), cache=False), InitPlan(fields=(), self_param='self', std_params=(), kw_only_pa"
1448
- "rams=(), frozen=True, slots=False, post_init_params=None, init_fns=(), validate_fns=()), ReprPlan(fields=(), i"
1449
- "d=False, terse=False, default_fn=None)))"
1608
+ "Plans(tup=(CopyPlan(fields=('enabled_tools', 'verbose')), EqPlan(fields=('enabled_tools', 'verbose')), FrozenP"
1609
+ "lan(fields=('enabled_tools', 'verbose'), allow_dynamic_dunder_attrs=False), HashPlan(action='add', fields=('en"
1610
+ "abled_tools', 'verbose'), cache=False), InitPlan(fields=(InitPlan.Field(name='enabled_tools', annotation=OpRef"
1611
+ "(name='init.fields.0.annotation'), default=OpRef(name='init.fields.0.default'), default_factory=None, init=Tru"
1612
+ "e, override=False, field_type=FieldType.INSTANCE, coerce=None, validate=None, check_type=None), InitPlan.Field"
1613
+ "(name='verbose', annotation=OpRef(name='init.fields.1.annotation'), default=OpRef(name='init.fields.1.default'"
1614
+ "), default_factory=None, init=True, override=False, field_type=FieldType.INSTANCE, coerce=None, validate=None,"
1615
+ " check_type=None)), self_param='self', std_params=(), kw_only_params=('enabled_tools', 'verbose'), frozen=True"
1616
+ ", slots=False, post_init_params=None, init_fns=(), validate_fns=()), ReprPlan(fields=(ReprPlan.Field(name='ena"
1617
+ "bled_tools', kw_only=True, fn=None), ReprPlan.Field(name='verbose', kw_only=True, fn=None)), id=False, terse=F"
1618
+ "alse, default_fn=None)))"
1619
+ ),
1620
+ plan_repr_sha1='aa22ff44ed3bf3e31aaa2841f61d3f7175c85c42',
1621
+ op_ref_idents=(
1622
+ '__dataclass__init__fields__0__annotation',
1623
+ '__dataclass__init__fields__0__default',
1624
+ '__dataclass__init__fields__1__annotation',
1625
+ '__dataclass__init__fields__1__default',
1450
1626
  ),
1451
- plan_repr_sha1='e1f7edfe11f2b721d6a656c46e698fedc95461bb',
1452
- op_ref_idents=(),
1453
1627
  cls_names=(
1454
- ('ommlds.cli.main', 'ToolSetConfig'),
1455
- ('ommlds.cli.sessions.chat.drivers.tools.fs.configs', 'FsToolSetConfig'),
1456
- ('ommlds.cli.sessions.chat.drivers.tools.todo.configs', 'TodoToolSetConfig'),
1457
- ('ommlds.cli.sessions.chat.drivers.tools.weather.configs', 'WeatherToolSetConfig'),
1628
+ ('ommlds.cli.main', 'ToolsConfig'),
1458
1629
  ),
1459
1630
  )
1460
- def _process_dataclass__e1f7edfe11f2b721d6a656c46e698fedc95461bb():
1631
+ def _process_dataclass__aa22ff44ed3bf3e31aaa2841f61d3f7175c85c42():
1461
1632
  def _process_dataclass(
1462
1633
  *,
1463
1634
  __dataclass__cls,
1635
+ __dataclass__init__fields__0__annotation,
1636
+ __dataclass__init__fields__0__default,
1637
+ __dataclass__init__fields__1__annotation,
1638
+ __dataclass__init__fields__1__default,
1464
1639
  __dataclass__FieldFnValidationError, # noqa
1465
1640
  __dataclass__FieldTypeValidationError, # noqa
1466
1641
  __dataclass__FnValidationError, # noqa
@@ -1478,8 +1653,11 @@ def _process_dataclass__e1f7edfe11f2b721d6a656c46e698fedc95461bb():
1478
1653
  def __copy__(self):
1479
1654
  if self.__class__ is not __dataclass__cls:
1480
1655
  raise TypeError(self)
1481
- return __dataclass__cls() # noqa
1482
-
1656
+ return __dataclass__cls( # noqa
1657
+ enabled_tools=self.enabled_tools,
1658
+ verbose=self.verbose,
1659
+ )
1660
+
1483
1661
  __copy__.__qualname__ = f"{__dataclass__cls.__qualname__}.__copy__"
1484
1662
  if '__copy__' in __dataclass__cls.__dict__:
1485
1663
  raise __dataclass__TypeError(f"Cannot overwrite attribute __copy__ in class {__dataclass__cls.__name__}")
@@ -1490,16 +1668,25 @@ def _process_dataclass__e1f7edfe11f2b721d6a656c46e698fedc95461bb():
1490
1668
  return True
1491
1669
  if self.__class__ is not other.__class__:
1492
1670
  return NotImplemented
1493
- return True
1671
+ return (
1672
+ self.enabled_tools == other.enabled_tools and
1673
+ self.verbose == other.verbose
1674
+ )
1494
1675
 
1495
1676
  __eq__.__qualname__ = f"{__dataclass__cls.__qualname__}.__eq__"
1496
1677
  if '__eq__' in __dataclass__cls.__dict__:
1497
1678
  raise __dataclass__TypeError(f"Cannot overwrite attribute __eq__ in class {__dataclass__cls.__name__}")
1498
1679
  setattr(__dataclass__cls, '__eq__', __eq__)
1499
1680
 
1681
+ __dataclass___setattr_frozen_fields = {
1682
+ 'enabled_tools',
1683
+ 'verbose',
1684
+ }
1685
+
1500
1686
  def __setattr__(self, name, value):
1501
1687
  if (
1502
1688
  type(self) is __dataclass__cls
1689
+ or name in __dataclass___setattr_frozen_fields
1503
1690
  ):
1504
1691
  raise __dataclass__FrozenInstanceError(f"cannot assign to field {name!r}")
1505
1692
  super(__dataclass__cls, self).__setattr__(name, value)
@@ -1509,9 +1696,15 @@ def _process_dataclass__e1f7edfe11f2b721d6a656c46e698fedc95461bb():
1509
1696
  raise __dataclass__TypeError(f"Cannot overwrite attribute __setattr__ in class {__dataclass__cls.__name__}")
1510
1697
  setattr(__dataclass__cls, '__setattr__', __setattr__)
1511
1698
 
1699
+ __dataclass___delattr_frozen_fields = {
1700
+ 'enabled_tools',
1701
+ 'verbose',
1702
+ }
1703
+
1512
1704
  def __delattr__(self, name):
1513
1705
  if (
1514
1706
  type(self) is __dataclass__cls
1707
+ or name in __dataclass___delattr_frozen_fields
1515
1708
  ):
1516
1709
  raise __dataclass__FrozenInstanceError(f"cannot delete field {name!r}")
1517
1710
  super(__dataclass__cls, self).__delattr__(name)
@@ -1522,15 +1715,22 @@ def _process_dataclass__e1f7edfe11f2b721d6a656c46e698fedc95461bb():
1522
1715
  setattr(__dataclass__cls, '__delattr__', __delattr__)
1523
1716
 
1524
1717
  def __hash__(self):
1525
- return hash(())
1718
+ return hash((
1719
+ self.enabled_tools,
1720
+ self.verbose,
1721
+ ))
1526
1722
 
1527
1723
  __hash__.__qualname__ = f"{__dataclass__cls.__qualname__}.__hash__"
1528
1724
  setattr(__dataclass__cls, '__hash__', __hash__)
1529
1725
 
1530
1726
  def __init__(
1531
1727
  self,
1728
+ *,
1729
+ enabled_tools: __dataclass__init__fields__0__annotation = __dataclass__init__fields__0__default,
1730
+ verbose: __dataclass__init__fields__1__annotation = __dataclass__init__fields__1__default,
1532
1731
  ) -> __dataclass__None:
1533
- pass
1732
+ __dataclass__object_setattr(self, 'enabled_tools', enabled_tools)
1733
+ __dataclass__object_setattr(self, 'verbose', verbose)
1534
1734
 
1535
1735
  __init__.__qualname__ = f"{__dataclass__cls.__qualname__}.__init__"
1536
1736
  if '__init__' in __dataclass__cls.__dict__:
@@ -1540,6 +1740,8 @@ def _process_dataclass__e1f7edfe11f2b721d6a656c46e698fedc95461bb():
1540
1740
  @__dataclass___recursive_repr()
1541
1741
  def __repr__(self):
1542
1742
  parts = []
1743
+ parts.append(f"enabled_tools={self.enabled_tools!r}")
1744
+ parts.append(f"verbose={self.verbose!r}")
1543
1745
  return (
1544
1746
  f"{self.__class__.__qualname__}("
1545
1747
  f"{', '.join(parts)}"
@@ -1556,19 +1758,20 @@ def _process_dataclass__e1f7edfe11f2b721d6a656c46e698fedc95461bb():
1556
1758
 
1557
1759
  @_register(
1558
1760
  plan_repr=(
1559
- "Plans(tup=(CopyPlan(fields=('enabled_tools', 'verbose')), EqPlan(fields=('enabled_tools', 'verbose')), FrozenP"
1560
- "lan(fields=('enabled_tools', 'verbose'), allow_dynamic_dunder_attrs=False), HashPlan(action='add', fields=('en"
1561
- "abled_tools', 'verbose'), cache=False), InitPlan(fields=(InitPlan.Field(name='enabled_tools', annotation=OpRef"
1562
- "(name='init.fields.0.annotation'), default=OpRef(name='init.fields.0.default'), default_factory=None, init=Tru"
1563
- "e, override=False, field_type=FieldType.INSTANCE, coerce=None, validate=None, check_type=None), InitPlan.Field"
1564
- "(name='verbose', annotation=OpRef(name='init.fields.1.annotation'), default=OpRef(name='init.fields.1.default'"
1761
+ "Plans(tup=(CopyPlan(fields=('initial_system_content', 'initial_user_content')), EqPlan(fields=('initial_system"
1762
+ "_content', 'initial_user_content')), FrozenPlan(fields=('initial_system_content', 'initial_user_content'), all"
1763
+ "ow_dynamic_dunder_attrs=False), HashPlan(action='add', fields=('initial_system_content', 'initial_user_content"
1764
+ "'), cache=False), InitPlan(fields=(InitPlan.Field(name='initial_system_content', annotation=OpRef(name='init.f"
1765
+ "ields.0.annotation'), default=OpRef(name='init.fields.0.default'), default_factory=None, init=True, override=F"
1766
+ "alse, field_type=FieldType.INSTANCE, coerce=None, validate=None, check_type=None), InitPlan.Field(name='initia"
1767
+ "l_user_content', annotation=OpRef(name='init.fields.1.annotation'), default=OpRef(name='init.fields.1.default'"
1565
1768
  "), default_factory=None, init=True, override=False, field_type=FieldType.INSTANCE, coerce=None, validate=None,"
1566
- " check_type=None)), self_param='self', std_params=(), kw_only_params=('enabled_tools', 'verbose'), frozen=True"
1567
- ", slots=False, post_init_params=None, init_fns=(), validate_fns=()), ReprPlan(fields=(ReprPlan.Field(name='ena"
1568
- "bled_tools', kw_only=True, fn=None), ReprPlan.Field(name='verbose', kw_only=True, fn=None)), id=False, terse=F"
1569
- "alse, default_fn=None)))"
1769
+ " check_type=None)), self_param='self', std_params=(), kw_only_params=('initial_system_content', 'initial_user_"
1770
+ "content'), frozen=True, slots=False, post_init_params=None, init_fns=(), validate_fns=()), ReprPlan(fields=(Re"
1771
+ "prPlan.Field(name='initial_system_content', kw_only=True, fn=None), ReprPlan.Field(name='initial_user_content'"
1772
+ ", kw_only=True, fn=None)), id=False, terse=False, default_fn=None)))"
1570
1773
  ),
1571
- plan_repr_sha1='aa22ff44ed3bf3e31aaa2841f61d3f7175c85c42',
1774
+ plan_repr_sha1='55eb2b38eb7d4e32f3a9306577040632e1c376fb',
1572
1775
  op_ref_idents=(
1573
1776
  '__dataclass__init__fields__0__annotation',
1574
1777
  '__dataclass__init__fields__0__default',
@@ -1576,10 +1779,10 @@ def _process_dataclass__e1f7edfe11f2b721d6a656c46e698fedc95461bb():
1576
1779
  '__dataclass__init__fields__1__default',
1577
1780
  ),
1578
1781
  cls_names=(
1579
- ('ommlds.cli.main', 'ToolsConfig'),
1782
+ ('ommlds.cli.main', 'UserConfig'),
1580
1783
  ),
1581
1784
  )
1582
- def _process_dataclass__aa22ff44ed3bf3e31aaa2841f61d3f7175c85c42():
1785
+ def _process_dataclass__55eb2b38eb7d4e32f3a9306577040632e1c376fb():
1583
1786
  def _process_dataclass(
1584
1787
  *,
1585
1788
  __dataclass__cls,
@@ -1605,8 +1808,8 @@ def _process_dataclass__aa22ff44ed3bf3e31aaa2841f61d3f7175c85c42():
1605
1808
  if self.__class__ is not __dataclass__cls:
1606
1809
  raise TypeError(self)
1607
1810
  return __dataclass__cls( # noqa
1608
- enabled_tools=self.enabled_tools,
1609
- verbose=self.verbose,
1811
+ initial_system_content=self.initial_system_content,
1812
+ initial_user_content=self.initial_user_content,
1610
1813
  )
1611
1814
 
1612
1815
  __copy__.__qualname__ = f"{__dataclass__cls.__qualname__}.__copy__"
@@ -1620,8 +1823,8 @@ def _process_dataclass__aa22ff44ed3bf3e31aaa2841f61d3f7175c85c42():
1620
1823
  if self.__class__ is not other.__class__:
1621
1824
  return NotImplemented
1622
1825
  return (
1623
- self.enabled_tools == other.enabled_tools and
1624
- self.verbose == other.verbose
1826
+ self.initial_system_content == other.initial_system_content and
1827
+ self.initial_user_content == other.initial_user_content
1625
1828
  )
1626
1829
 
1627
1830
  __eq__.__qualname__ = f"{__dataclass__cls.__qualname__}.__eq__"
@@ -1630,8 +1833,8 @@ def _process_dataclass__aa22ff44ed3bf3e31aaa2841f61d3f7175c85c42():
1630
1833
  setattr(__dataclass__cls, '__eq__', __eq__)
1631
1834
 
1632
1835
  __dataclass___setattr_frozen_fields = {
1633
- 'enabled_tools',
1634
- 'verbose',
1836
+ 'initial_system_content',
1837
+ 'initial_user_content',
1635
1838
  }
1636
1839
 
1637
1840
  def __setattr__(self, name, value):
@@ -1648,8 +1851,8 @@ def _process_dataclass__aa22ff44ed3bf3e31aaa2841f61d3f7175c85c42():
1648
1851
  setattr(__dataclass__cls, '__setattr__', __setattr__)
1649
1852
 
1650
1853
  __dataclass___delattr_frozen_fields = {
1651
- 'enabled_tools',
1652
- 'verbose',
1854
+ 'initial_system_content',
1855
+ 'initial_user_content',
1653
1856
  }
1654
1857
 
1655
1858
  def __delattr__(self, name):
@@ -1667,8 +1870,8 @@ def _process_dataclass__aa22ff44ed3bf3e31aaa2841f61d3f7175c85c42():
1667
1870
 
1668
1871
  def __hash__(self):
1669
1872
  return hash((
1670
- self.enabled_tools,
1671
- self.verbose,
1873
+ self.initial_system_content,
1874
+ self.initial_user_content,
1672
1875
  ))
1673
1876
 
1674
1877
  __hash__.__qualname__ = f"{__dataclass__cls.__qualname__}.__hash__"
@@ -1677,11 +1880,11 @@ def _process_dataclass__aa22ff44ed3bf3e31aaa2841f61d3f7175c85c42():
1677
1880
  def __init__(
1678
1881
  self,
1679
1882
  *,
1680
- enabled_tools: __dataclass__init__fields__0__annotation = __dataclass__init__fields__0__default,
1681
- verbose: __dataclass__init__fields__1__annotation = __dataclass__init__fields__1__default,
1883
+ initial_system_content: __dataclass__init__fields__0__annotation = __dataclass__init__fields__0__default,
1884
+ initial_user_content: __dataclass__init__fields__1__annotation = __dataclass__init__fields__1__default,
1682
1885
  ) -> __dataclass__None:
1683
- __dataclass__object_setattr(self, 'enabled_tools', enabled_tools)
1684
- __dataclass__object_setattr(self, 'verbose', verbose)
1886
+ __dataclass__object_setattr(self, 'initial_system_content', initial_system_content)
1887
+ __dataclass__object_setattr(self, 'initial_user_content', initial_user_content)
1685
1888
 
1686
1889
  __init__.__qualname__ = f"{__dataclass__cls.__qualname__}.__init__"
1687
1890
  if '__init__' in __dataclass__cls.__dict__:
@@ -1691,8 +1894,8 @@ def _process_dataclass__aa22ff44ed3bf3e31aaa2841f61d3f7175c85c42():
1691
1894
  @__dataclass___recursive_repr()
1692
1895
  def __repr__(self):
1693
1896
  parts = []
1694
- parts.append(f"enabled_tools={self.enabled_tools!r}")
1695
- parts.append(f"verbose={self.verbose!r}")
1897
+ parts.append(f"initial_system_content={self.initial_system_content!r}")
1898
+ parts.append(f"initial_user_content={self.initial_user_content!r}")
1696
1899
  return (
1697
1900
  f"{self.__class__.__qualname__}("
1698
1901
  f"{', '.join(parts)}"
@@ -1709,38 +1912,27 @@ def _process_dataclass__aa22ff44ed3bf3e31aaa2841f61d3f7175c85c42():
1709
1912
 
1710
1913
  @_register(
1711
1914
  plan_repr=(
1712
- "Plans(tup=(CopyPlan(fields=('initial_system_content', 'initial_user_content')), EqPlan(fields=('initial_system"
1713
- "_content', 'initial_user_content')), FrozenPlan(fields=('initial_system_content', 'initial_user_content'), all"
1714
- "ow_dynamic_dunder_attrs=False), HashPlan(action='add', fields=('initial_system_content', 'initial_user_content"
1715
- "'), cache=False), InitPlan(fields=(InitPlan.Field(name='initial_system_content', annotation=OpRef(name='init.f"
1716
- "ields.0.annotation'), default=OpRef(name='init.fields.0.default'), default_factory=None, init=True, override=F"
1717
- "alse, field_type=FieldType.INSTANCE, coerce=None, validate=None, check_type=None), InitPlan.Field(name='initia"
1718
- "l_user_content', annotation=OpRef(name='init.fields.1.annotation'), default=OpRef(name='init.fields.1.default'"
1719
- "), default_factory=None, init=True, override=False, field_type=FieldType.INSTANCE, coerce=None, validate=None,"
1720
- " check_type=None)), self_param='self', std_params=(), kw_only_params=('initial_system_content', 'initial_user_"
1721
- "content'), frozen=True, slots=False, post_init_params=None, init_fns=(), validate_fns=()), ReprPlan(fields=(Re"
1722
- "prPlan.Field(name='initial_system_content', kw_only=True, fn=None), ReprPlan.Field(name='initial_user_content'"
1723
- ", kw_only=True, fn=None)), id=False, terse=False, default_fn=None)))"
1915
+ "Plans(tup=(CopyPlan(fields=('delta',)), EqPlan(fields=('delta',)), FrozenPlan(fields=('delta',), allow_dynamic"
1916
+ "_dunder_attrs=False), HashPlan(action='add', fields=('delta',), cache=False), InitPlan(fields=(InitPlan.Field("
1917
+ "name='delta', annotation=OpRef(name='init.fields.0.annotation'), default=None, default_factory=None, init=True"
1918
+ ", override=False, field_type=FieldType.INSTANCE, coerce=None, validate=None, check_type=None),), self_param='s"
1919
+ "elf', std_params=('delta',), kw_only_params=(), frozen=True, slots=False, post_init_params=None, init_fns=(), "
1920
+ "validate_fns=()), ReprPlan(fields=(ReprPlan.Field(name='delta', kw_only=False, fn=None),), id=False, terse=Fal"
1921
+ "se, default_fn=None)))"
1724
1922
  ),
1725
- plan_repr_sha1='55eb2b38eb7d4e32f3a9306577040632e1c376fb',
1923
+ plan_repr_sha1='aff24d9a92d53ba94dacb7fb303b9eb4ebd0763f',
1726
1924
  op_ref_idents=(
1727
1925
  '__dataclass__init__fields__0__annotation',
1728
- '__dataclass__init__fields__0__default',
1729
- '__dataclass__init__fields__1__annotation',
1730
- '__dataclass__init__fields__1__default',
1731
1926
  ),
1732
1927
  cls_names=(
1733
- ('ommlds.cli.main', 'UserConfig'),
1928
+ ('ommlds.cli.sessions.chat.drivers.driver', 'AiDeltaChatEvent'),
1734
1929
  ),
1735
1930
  )
1736
- def _process_dataclass__55eb2b38eb7d4e32f3a9306577040632e1c376fb():
1931
+ def _process_dataclass__aff24d9a92d53ba94dacb7fb303b9eb4ebd0763f():
1737
1932
  def _process_dataclass(
1738
1933
  *,
1739
1934
  __dataclass__cls,
1740
1935
  __dataclass__init__fields__0__annotation,
1741
- __dataclass__init__fields__0__default,
1742
- __dataclass__init__fields__1__annotation,
1743
- __dataclass__init__fields__1__default,
1744
1936
  __dataclass__FieldFnValidationError, # noqa
1745
1937
  __dataclass__FieldTypeValidationError, # noqa
1746
1938
  __dataclass__FnValidationError, # noqa
@@ -1759,8 +1951,7 @@ def _process_dataclass__55eb2b38eb7d4e32f3a9306577040632e1c376fb():
1759
1951
  if self.__class__ is not __dataclass__cls:
1760
1952
  raise TypeError(self)
1761
1953
  return __dataclass__cls( # noqa
1762
- initial_system_content=self.initial_system_content,
1763
- initial_user_content=self.initial_user_content,
1954
+ delta=self.delta,
1764
1955
  )
1765
1956
 
1766
1957
  __copy__.__qualname__ = f"{__dataclass__cls.__qualname__}.__copy__"
@@ -1774,8 +1965,7 @@ def _process_dataclass__55eb2b38eb7d4e32f3a9306577040632e1c376fb():
1774
1965
  if self.__class__ is not other.__class__:
1775
1966
  return NotImplemented
1776
1967
  return (
1777
- self.initial_system_content == other.initial_system_content and
1778
- self.initial_user_content == other.initial_user_content
1968
+ self.delta == other.delta
1779
1969
  )
1780
1970
 
1781
1971
  __eq__.__qualname__ = f"{__dataclass__cls.__qualname__}.__eq__"
@@ -1784,8 +1974,7 @@ def _process_dataclass__55eb2b38eb7d4e32f3a9306577040632e1c376fb():
1784
1974
  setattr(__dataclass__cls, '__eq__', __eq__)
1785
1975
 
1786
1976
  __dataclass___setattr_frozen_fields = {
1787
- 'initial_system_content',
1788
- 'initial_user_content',
1977
+ 'delta',
1789
1978
  }
1790
1979
 
1791
1980
  def __setattr__(self, name, value):
@@ -1802,8 +1991,7 @@ def _process_dataclass__55eb2b38eb7d4e32f3a9306577040632e1c376fb():
1802
1991
  setattr(__dataclass__cls, '__setattr__', __setattr__)
1803
1992
 
1804
1993
  __dataclass___delattr_frozen_fields = {
1805
- 'initial_system_content',
1806
- 'initial_user_content',
1994
+ 'delta',
1807
1995
  }
1808
1996
 
1809
1997
  def __delattr__(self, name):
@@ -1821,8 +2009,7 @@ def _process_dataclass__55eb2b38eb7d4e32f3a9306577040632e1c376fb():
1821
2009
 
1822
2010
  def __hash__(self):
1823
2011
  return hash((
1824
- self.initial_system_content,
1825
- self.initial_user_content,
2012
+ self.delta,
1826
2013
  ))
1827
2014
 
1828
2015
  __hash__.__qualname__ = f"{__dataclass__cls.__qualname__}.__hash__"
@@ -1830,12 +2017,9 @@ def _process_dataclass__55eb2b38eb7d4e32f3a9306577040632e1c376fb():
1830
2017
 
1831
2018
  def __init__(
1832
2019
  self,
1833
- *,
1834
- initial_system_content: __dataclass__init__fields__0__annotation = __dataclass__init__fields__0__default,
1835
- initial_user_content: __dataclass__init__fields__1__annotation = __dataclass__init__fields__1__default,
2020
+ delta: __dataclass__init__fields__0__annotation,
1836
2021
  ) -> __dataclass__None:
1837
- __dataclass__object_setattr(self, 'initial_system_content', initial_system_content)
1838
- __dataclass__object_setattr(self, 'initial_user_content', initial_user_content)
2022
+ __dataclass__object_setattr(self, 'delta', delta)
1839
2023
 
1840
2024
  __init__.__qualname__ = f"{__dataclass__cls.__qualname__}.__init__"
1841
2025
  if '__init__' in __dataclass__cls.__dict__:
@@ -1845,8 +2029,7 @@ def _process_dataclass__55eb2b38eb7d4e32f3a9306577040632e1c376fb():
1845
2029
  @__dataclass___recursive_repr()
1846
2030
  def __repr__(self):
1847
2031
  parts = []
1848
- parts.append(f"initial_system_content={self.initial_system_content!r}")
1849
- parts.append(f"initial_user_content={self.initial_user_content!r}")
2032
+ parts.append(f"delta={self.delta!r}")
1850
2033
  return (
1851
2034
  f"{self.__class__.__qualname__}("
1852
2035
  f"{', '.join(parts)}"
@@ -1863,23 +2046,24 @@ def _process_dataclass__55eb2b38eb7d4e32f3a9306577040632e1c376fb():
1863
2046
 
1864
2047
  @_register(
1865
2048
  plan_repr=(
1866
- "Plans(tup=(CopyPlan(fields=('delta',)), EqPlan(fields=('delta',)), FrozenPlan(fields=('delta',), allow_dynamic"
1867
- "_dunder_attrs=False), HashPlan(action='add', fields=('delta',), cache=False), InitPlan(fields=(InitPlan.Field("
1868
- "name='delta', annotation=OpRef(name='init.fields.0.annotation'), default=None, default_factory=None, init=True"
1869
- ", override=False, field_type=FieldType.INSTANCE, coerce=None, validate=None, check_type=None),), self_param='s"
1870
- "elf', std_params=('delta',), kw_only_params=(), frozen=True, slots=False, post_init_params=None, init_fns=(), "
1871
- "validate_fns=()), ReprPlan(fields=(ReprPlan.Field(name='delta', kw_only=False, fn=None),), id=False, terse=Fal"
1872
- "se, default_fn=None)))"
2049
+ "Plans(tup=(CopyPlan(fields=('chat',)), EqPlan(fields=('chat',)), FrozenPlan(fields=('chat',), allow_dynamic_du"
2050
+ "nder_attrs=False), HashPlan(action='add', fields=('chat',), cache=False), InitPlan(fields=(InitPlan.Field(name"
2051
+ "='chat', annotation=OpRef(name='init.fields.0.annotation'), default=None, default_factory=None, init=True, ove"
2052
+ "rride=False, field_type=FieldType.INSTANCE, coerce=None, validate=None, check_type=None),), self_param='self',"
2053
+ " std_params=('chat',), kw_only_params=(), frozen=True, slots=False, post_init_params=None, init_fns=(), valida"
2054
+ "te_fns=()), ReprPlan(fields=(ReprPlan.Field(name='chat', kw_only=False, fn=None),), id=False, terse=False, def"
2055
+ "ault_fn=None)))"
1873
2056
  ),
1874
- plan_repr_sha1='aff24d9a92d53ba94dacb7fb303b9eb4ebd0763f',
2057
+ plan_repr_sha1='b211fde543b7c2c533cdcf9f21b47d2f7f76e5c9',
1875
2058
  op_ref_idents=(
1876
2059
  '__dataclass__init__fields__0__annotation',
1877
2060
  ),
1878
2061
  cls_names=(
1879
- ('ommlds.cli.sessions.chat.drivers.driver', 'AiDeltaChatEvent'),
2062
+ ('ommlds.cli.sessions.chat.drivers.driver', 'AiMessagesChatEvent'),
2063
+ ('ommlds.cli.sessions.chat.drivers.driver', 'UserMessagesChatEvent'),
1880
2064
  ),
1881
2065
  )
1882
- def _process_dataclass__aff24d9a92d53ba94dacb7fb303b9eb4ebd0763f():
2066
+ def _process_dataclass__b211fde543b7c2c533cdcf9f21b47d2f7f76e5c9():
1883
2067
  def _process_dataclass(
1884
2068
  *,
1885
2069
  __dataclass__cls,
@@ -1902,7 +2086,7 @@ def _process_dataclass__aff24d9a92d53ba94dacb7fb303b9eb4ebd0763f():
1902
2086
  if self.__class__ is not __dataclass__cls:
1903
2087
  raise TypeError(self)
1904
2088
  return __dataclass__cls( # noqa
1905
- delta=self.delta,
2089
+ chat=self.chat,
1906
2090
  )
1907
2091
 
1908
2092
  __copy__.__qualname__ = f"{__dataclass__cls.__qualname__}.__copy__"
@@ -1916,7 +2100,7 @@ def _process_dataclass__aff24d9a92d53ba94dacb7fb303b9eb4ebd0763f():
1916
2100
  if self.__class__ is not other.__class__:
1917
2101
  return NotImplemented
1918
2102
  return (
1919
- self.delta == other.delta
2103
+ self.chat == other.chat
1920
2104
  )
1921
2105
 
1922
2106
  __eq__.__qualname__ = f"{__dataclass__cls.__qualname__}.__eq__"
@@ -1925,7 +2109,7 @@ def _process_dataclass__aff24d9a92d53ba94dacb7fb303b9eb4ebd0763f():
1925
2109
  setattr(__dataclass__cls, '__eq__', __eq__)
1926
2110
 
1927
2111
  __dataclass___setattr_frozen_fields = {
1928
- 'delta',
2112
+ 'chat',
1929
2113
  }
1930
2114
 
1931
2115
  def __setattr__(self, name, value):
@@ -1942,7 +2126,7 @@ def _process_dataclass__aff24d9a92d53ba94dacb7fb303b9eb4ebd0763f():
1942
2126
  setattr(__dataclass__cls, '__setattr__', __setattr__)
1943
2127
 
1944
2128
  __dataclass___delattr_frozen_fields = {
1945
- 'delta',
2129
+ 'chat',
1946
2130
  }
1947
2131
 
1948
2132
  def __delattr__(self, name):
@@ -1960,7 +2144,7 @@ def _process_dataclass__aff24d9a92d53ba94dacb7fb303b9eb4ebd0763f():
1960
2144
 
1961
2145
  def __hash__(self):
1962
2146
  return hash((
1963
- self.delta,
2147
+ self.chat,
1964
2148
  ))
1965
2149
 
1966
2150
  __hash__.__qualname__ = f"{__dataclass__cls.__qualname__}.__hash__"
@@ -1968,9 +2152,9 @@ def _process_dataclass__aff24d9a92d53ba94dacb7fb303b9eb4ebd0763f():
1968
2152
 
1969
2153
  def __init__(
1970
2154
  self,
1971
- delta: __dataclass__init__fields__0__annotation,
2155
+ chat: __dataclass__init__fields__0__annotation,
1972
2156
  ) -> __dataclass__None:
1973
- __dataclass__object_setattr(self, 'delta', delta)
2157
+ __dataclass__object_setattr(self, 'chat', chat)
1974
2158
 
1975
2159
  __init__.__qualname__ = f"{__dataclass__cls.__qualname__}.__init__"
1976
2160
  if '__init__' in __dataclass__cls.__dict__:
@@ -1980,7 +2164,7 @@ def _process_dataclass__aff24d9a92d53ba94dacb7fb303b9eb4ebd0763f():
1980
2164
  @__dataclass___recursive_repr()
1981
2165
  def __repr__(self):
1982
2166
  parts = []
1983
- parts.append(f"delta={self.delta!r}")
2167
+ parts.append(f"chat={self.chat!r}")
1984
2168
  return (
1985
2169
  f"{self.__class__.__qualname__}("
1986
2170
  f"{', '.join(parts)}"
@@ -1997,24 +2181,24 @@ def _process_dataclass__aff24d9a92d53ba94dacb7fb303b9eb4ebd0763f():
1997
2181
 
1998
2182
  @_register(
1999
2183
  plan_repr=(
2000
- "Plans(tup=(CopyPlan(fields=('chat',)), EqPlan(fields=('chat',)), FrozenPlan(fields=('chat',), allow_dynamic_du"
2001
- "nder_attrs=False), HashPlan(action='add', fields=('chat',), cache=False), InitPlan(fields=(InitPlan.Field(name"
2002
- "='chat', annotation=OpRef(name='init.fields.0.annotation'), default=None, default_factory=None, init=True, ove"
2003
- "rride=False, field_type=FieldType.INSTANCE, coerce=None, validate=None, check_type=None),), self_param='self',"
2004
- " std_params=('chat',), kw_only_params=(), frozen=True, slots=False, post_init_params=None, init_fns=(), valida"
2005
- "te_fns=()), ReprPlan(fields=(ReprPlan.Field(name='chat', kw_only=False, fn=None),), id=False, terse=False, def"
2006
- "ault_fn=None)))"
2184
+ "Plans(tup=(CopyPlan(fields=('v',)), EqPlan(fields=('v',)), FrozenPlan(fields=('v',), allow_dynamic_dunder_attr"
2185
+ "s=False), HashPlan(action='add', fields=('v',), cache=False), InitPlan(fields=(InitPlan.Field(name='v', annota"
2186
+ "tion=OpRef(name='init.fields.0.annotation'), default=None, default_factory=None, init=True, override=False, fi"
2187
+ "eld_type=FieldType.INSTANCE, coerce=None, validate=None, check_type=None),), self_param='self', std_params=('v"
2188
+ "',), kw_only_params=(), frozen=True, slots=False, post_init_params=None, init_fns=(), validate_fns=()), ReprPl"
2189
+ "an(fields=(ReprPlan.Field(name='v', kw_only=False, fn=None),), id=False, terse=True, default_fn=None)))"
2007
2190
  ),
2008
- plan_repr_sha1='b211fde543b7c2c533cdcf9f21b47d2f7f76e5c9',
2191
+ plan_repr_sha1='3576262424b3ef8ff20966fa3744e5dba9a2ae7d',
2009
2192
  op_ref_idents=(
2010
2193
  '__dataclass__init__fields__0__annotation',
2011
2194
  ),
2012
2195
  cls_names=(
2013
- ('ommlds.cli.sessions.chat.drivers.driver', 'AiMessagesChatEvent'),
2014
- ('ommlds.cli.sessions.chat.drivers.driver', 'UserMessagesChatEvent'),
2196
+ ('ommlds.cli.sessions.chat.drivers.driver', 'ChatId'),
2197
+ ('ommlds.cli.sessions.chat.drivers.state.ids', 'ChatStateStorageKey'),
2198
+ ('ommlds.cli.sessions.chat.drivers.types', 'ChatDriverId'),
2015
2199
  ),
2016
2200
  )
2017
- def _process_dataclass__b211fde543b7c2c533cdcf9f21b47d2f7f76e5c9():
2201
+ def _process_dataclass__3576262424b3ef8ff20966fa3744e5dba9a2ae7d():
2018
2202
  def _process_dataclass(
2019
2203
  *,
2020
2204
  __dataclass__cls,
@@ -2037,7 +2221,7 @@ def _process_dataclass__b211fde543b7c2c533cdcf9f21b47d2f7f76e5c9():
2037
2221
  if self.__class__ is not __dataclass__cls:
2038
2222
  raise TypeError(self)
2039
2223
  return __dataclass__cls( # noqa
2040
- chat=self.chat,
2224
+ v=self.v,
2041
2225
  )
2042
2226
 
2043
2227
  __copy__.__qualname__ = f"{__dataclass__cls.__qualname__}.__copy__"
@@ -2051,7 +2235,7 @@ def _process_dataclass__b211fde543b7c2c533cdcf9f21b47d2f7f76e5c9():
2051
2235
  if self.__class__ is not other.__class__:
2052
2236
  return NotImplemented
2053
2237
  return (
2054
- self.chat == other.chat
2238
+ self.v == other.v
2055
2239
  )
2056
2240
 
2057
2241
  __eq__.__qualname__ = f"{__dataclass__cls.__qualname__}.__eq__"
@@ -2060,7 +2244,7 @@ def _process_dataclass__b211fde543b7c2c533cdcf9f21b47d2f7f76e5c9():
2060
2244
  setattr(__dataclass__cls, '__eq__', __eq__)
2061
2245
 
2062
2246
  __dataclass___setattr_frozen_fields = {
2063
- 'chat',
2247
+ 'v',
2064
2248
  }
2065
2249
 
2066
2250
  def __setattr__(self, name, value):
@@ -2077,7 +2261,7 @@ def _process_dataclass__b211fde543b7c2c533cdcf9f21b47d2f7f76e5c9():
2077
2261
  setattr(__dataclass__cls, '__setattr__', __setattr__)
2078
2262
 
2079
2263
  __dataclass___delattr_frozen_fields = {
2080
- 'chat',
2264
+ 'v',
2081
2265
  }
2082
2266
 
2083
2267
  def __delattr__(self, name):
@@ -2095,7 +2279,7 @@ def _process_dataclass__b211fde543b7c2c533cdcf9f21b47d2f7f76e5c9():
2095
2279
 
2096
2280
  def __hash__(self):
2097
2281
  return hash((
2098
- self.chat,
2282
+ self.v,
2099
2283
  ))
2100
2284
 
2101
2285
  __hash__.__qualname__ = f"{__dataclass__cls.__qualname__}.__hash__"
@@ -2103,9 +2287,9 @@ def _process_dataclass__b211fde543b7c2c533cdcf9f21b47d2f7f76e5c9():
2103
2287
 
2104
2288
  def __init__(
2105
2289
  self,
2106
- chat: __dataclass__init__fields__0__annotation,
2290
+ v: __dataclass__init__fields__0__annotation,
2107
2291
  ) -> __dataclass__None:
2108
- __dataclass__object_setattr(self, 'chat', chat)
2292
+ __dataclass__object_setattr(self, 'v', v)
2109
2293
 
2110
2294
  __init__.__qualname__ = f"{__dataclass__cls.__qualname__}.__init__"
2111
2295
  if '__init__' in __dataclass__cls.__dict__:
@@ -2115,7 +2299,7 @@ def _process_dataclass__b211fde543b7c2c533cdcf9f21b47d2f7f76e5c9():
2115
2299
  @__dataclass___recursive_repr()
2116
2300
  def __repr__(self):
2117
2301
  parts = []
2118
- parts.append(f"chat={self.chat!r}")
2302
+ parts.append(f"{self.v!r}")
2119
2303
  return (
2120
2304
  f"{self.__class__.__qualname__}("
2121
2305
  f"{', '.join(parts)}"
@@ -2474,32 +2658,47 @@ def _process_dataclass__9f7e26a87dd163b610f38caa1ce9b3c6356e632a():
2474
2658
 
2475
2659
  @_register(
2476
2660
  plan_repr=(
2477
- "Plans(tup=(CopyPlan(fields=('version', 'payload')), EqPlan(fields=('version', 'payload')), FrozenPlan(fields=("
2478
- "'version', 'payload'), allow_dynamic_dunder_attrs=False), HashPlan(action='add', fields=('version', 'payload')"
2479
- ", cache=False), InitPlan(fields=(InitPlan.Field(name='version', annotation=OpRef(name='init.fields.0.annotatio"
2480
- "n'), default=None, default_factory=None, init=True, override=False, field_type=FieldType.INSTANCE, coerce=None"
2481
- ", validate=None, check_type=None), InitPlan.Field(name='payload', annotation=OpRef(name='init.fields.1.annotat"
2661
+ "Plans(tup=(CopyPlan(fields=('version', 'payload', 'created_at', 'updated_at')), EqPlan(fields=('version', 'pay"
2662
+ "load', 'created_at', 'updated_at')), FrozenPlan(fields=('version', 'payload', 'created_at', 'updated_at'), all"
2663
+ "ow_dynamic_dunder_attrs=False), HashPlan(action='add', fields=('version', 'payload', 'created_at', 'updated_at"
2664
+ "'), cache=False), InitPlan(fields=(InitPlan.Field(name='version', annotation=OpRef(name='init.fields.0.annotat"
2482
2665
  "ion'), default=None, default_factory=None, init=True, override=False, field_type=FieldType.INSTANCE, coerce=No"
2483
- "ne, validate=None, check_type=None)), self_param='self', std_params=('version', 'payload'), kw_only_params=(),"
2484
- " frozen=True, slots=False, post_init_params=None, init_fns=(), validate_fns=()), ReprPlan(fields=(ReprPlan.Fie"
2485
- "ld(name='version', kw_only=False, fn=None), ReprPlan.Field(name='payload', kw_only=False, fn=None)), id=False,"
2486
- " terse=False, default_fn=None)))"
2666
+ "ne, validate=None, check_type=None), InitPlan.Field(name='payload', annotation=OpRef(name='init.fields.1.annot"
2667
+ "ation'), default=None, default_factory=None, init=True, override=False, field_type=FieldType.INSTANCE, coerce="
2668
+ "None, validate=None, check_type=None), InitPlan.Field(name='created_at', annotation=OpRef(name='init.fields.2."
2669
+ "annotation'), default=None, default_factory=OpRef(name='init.fields.2.default_factory'), init=True, override=F"
2670
+ "alse, field_type=FieldType.INSTANCE, coerce=None, validate=None, check_type=None), InitPlan.Field(name='update"
2671
+ "d_at', annotation=OpRef(name='init.fields.3.annotation'), default=None, default_factory=OpRef(name='init.field"
2672
+ "s.3.default_factory'), init=True, override=False, field_type=FieldType.INSTANCE, coerce=None, validate=None, c"
2673
+ "heck_type=None)), self_param='self', std_params=('version', 'payload', 'created_at', 'updated_at'), kw_only_pa"
2674
+ "rams=(), frozen=True, slots=False, post_init_params=None, init_fns=(), validate_fns=()), ReprPlan(fields=(Repr"
2675
+ "Plan.Field(name='version', kw_only=False, fn=None), ReprPlan.Field(name='payload', kw_only=False, fn=None), Re"
2676
+ "prPlan.Field(name='created_at', kw_only=False, fn=None), ReprPlan.Field(name='updated_at', kw_only=False, fn=N"
2677
+ "one)), id=False, terse=False, default_fn=None)))"
2487
2678
  ),
2488
- plan_repr_sha1='be0d400bb9a95f7b7d493de698bc2bcac269b46e',
2679
+ plan_repr_sha1='61e69339fbc885327f4389d705747f188b874a91',
2489
2680
  op_ref_idents=(
2490
2681
  '__dataclass__init__fields__0__annotation',
2491
2682
  '__dataclass__init__fields__1__annotation',
2683
+ '__dataclass__init__fields__2__annotation',
2684
+ '__dataclass__init__fields__2__default_factory',
2685
+ '__dataclass__init__fields__3__annotation',
2686
+ '__dataclass__init__fields__3__default_factory',
2492
2687
  ),
2493
2688
  cls_names=(
2494
- ('ommlds.cli.sessions.chat.drivers.state.storage', 'MarshaledState'),
2689
+ ('ommlds.cli.sessions.chat.drivers.state.ids', 'MarshaledState'),
2495
2690
  ),
2496
2691
  )
2497
- def _process_dataclass__be0d400bb9a95f7b7d493de698bc2bcac269b46e():
2692
+ def _process_dataclass__61e69339fbc885327f4389d705747f188b874a91():
2498
2693
  def _process_dataclass(
2499
2694
  *,
2500
2695
  __dataclass__cls,
2501
2696
  __dataclass__init__fields__0__annotation,
2502
2697
  __dataclass__init__fields__1__annotation,
2698
+ __dataclass__init__fields__2__annotation,
2699
+ __dataclass__init__fields__2__default_factory,
2700
+ __dataclass__init__fields__3__annotation,
2701
+ __dataclass__init__fields__3__default_factory,
2503
2702
  __dataclass__FieldFnValidationError, # noqa
2504
2703
  __dataclass__FieldTypeValidationError, # noqa
2505
2704
  __dataclass__FnValidationError, # noqa
@@ -2520,6 +2719,8 @@ def _process_dataclass__be0d400bb9a95f7b7d493de698bc2bcac269b46e():
2520
2719
  return __dataclass__cls( # noqa
2521
2720
  version=self.version,
2522
2721
  payload=self.payload,
2722
+ created_at=self.created_at,
2723
+ updated_at=self.updated_at,
2523
2724
  )
2524
2725
 
2525
2726
  __copy__.__qualname__ = f"{__dataclass__cls.__qualname__}.__copy__"
@@ -2534,7 +2735,9 @@ def _process_dataclass__be0d400bb9a95f7b7d493de698bc2bcac269b46e():
2534
2735
  return NotImplemented
2535
2736
  return (
2536
2737
  self.version == other.version and
2537
- self.payload == other.payload
2738
+ self.payload == other.payload and
2739
+ self.created_at == other.created_at and
2740
+ self.updated_at == other.updated_at
2538
2741
  )
2539
2742
 
2540
2743
  __eq__.__qualname__ = f"{__dataclass__cls.__qualname__}.__eq__"
@@ -2545,6 +2748,8 @@ def _process_dataclass__be0d400bb9a95f7b7d493de698bc2bcac269b46e():
2545
2748
  __dataclass___setattr_frozen_fields = {
2546
2749
  'version',
2547
2750
  'payload',
2751
+ 'created_at',
2752
+ 'updated_at',
2548
2753
  }
2549
2754
 
2550
2755
  def __setattr__(self, name, value):
@@ -2563,6 +2768,8 @@ def _process_dataclass__be0d400bb9a95f7b7d493de698bc2bcac269b46e():
2563
2768
  __dataclass___delattr_frozen_fields = {
2564
2769
  'version',
2565
2770
  'payload',
2771
+ 'created_at',
2772
+ 'updated_at',
2566
2773
  }
2567
2774
 
2568
2775
  def __delattr__(self, name):
@@ -2582,6 +2789,8 @@ def _process_dataclass__be0d400bb9a95f7b7d493de698bc2bcac269b46e():
2582
2789
  return hash((
2583
2790
  self.version,
2584
2791
  self.payload,
2792
+ self.created_at,
2793
+ self.updated_at,
2585
2794
  ))
2586
2795
 
2587
2796
  __hash__.__qualname__ = f"{__dataclass__cls.__qualname__}.__hash__"
@@ -2591,9 +2800,17 @@ def _process_dataclass__be0d400bb9a95f7b7d493de698bc2bcac269b46e():
2591
2800
  self,
2592
2801
  version: __dataclass__init__fields__0__annotation,
2593
2802
  payload: __dataclass__init__fields__1__annotation,
2803
+ created_at: __dataclass__init__fields__2__annotation = __dataclass__HAS_DEFAULT_FACTORY,
2804
+ updated_at: __dataclass__init__fields__3__annotation = __dataclass__HAS_DEFAULT_FACTORY,
2594
2805
  ) -> __dataclass__None:
2806
+ if created_at is __dataclass__HAS_DEFAULT_FACTORY:
2807
+ created_at = __dataclass__init__fields__2__default_factory()
2808
+ if updated_at is __dataclass__HAS_DEFAULT_FACTORY:
2809
+ updated_at = __dataclass__init__fields__3__default_factory()
2595
2810
  __dataclass__object_setattr(self, 'version', version)
2596
2811
  __dataclass__object_setattr(self, 'payload', payload)
2812
+ __dataclass__object_setattr(self, 'created_at', created_at)
2813
+ __dataclass__object_setattr(self, 'updated_at', updated_at)
2597
2814
 
2598
2815
  __init__.__qualname__ = f"{__dataclass__cls.__qualname__}.__init__"
2599
2816
  if '__init__' in __dataclass__cls.__dict__:
@@ -2605,6 +2822,8 @@ def _process_dataclass__be0d400bb9a95f7b7d493de698bc2bcac269b46e():
2605
2822
  parts = []
2606
2823
  parts.append(f"version={self.version!r}")
2607
2824
  parts.append(f"payload={self.payload!r}")
2825
+ parts.append(f"created_at={self.created_at!r}")
2826
+ parts.append(f"updated_at={self.updated_at!r}")
2608
2827
  return (
2609
2828
  f"{self.__class__.__qualname__}("
2610
2829
  f"{', '.join(parts)}"
@@ -2767,22 +2986,23 @@ def _process_dataclass__0f6d91dd6a878d827836d961e4683d55b1c9095a():
2767
2986
 
2768
2987
  @_register(
2769
2988
  plan_repr=(
2770
- "Plans(tup=(CopyPlan(fields=('v',)), EqPlan(fields=('v',)), FrozenPlan(fields=('v',), allow_dynamic_dunder_attr"
2771
- "s=False), HashPlan(action='add', fields=('v',), cache=False), InitPlan(fields=(InitPlan.Field(name='v', annota"
2772
- "tion=OpRef(name='init.fields.0.annotation'), default=None, default_factory=None, init=True, override=False, fi"
2773
- "eld_type=FieldType.INSTANCE, coerce=None, validate=None, check_type=None),), self_param='self', std_params=('v"
2774
- "',), kw_only_params=(), frozen=True, slots=False, post_init_params=None, init_fns=(), validate_fns=()), ReprPl"
2775
- "an(fields=(ReprPlan.Field(name='v', kw_only=False, fn=None),), id=False, terse=True, default_fn=None)))"
2989
+ "Plans(tup=(CopyPlan(fields=('text',)), EqPlan(fields=('text',)), FrozenPlan(fields=('text',), allow_dynamic_du"
2990
+ "nder_attrs=False), HashPlan(action='add', fields=('text',), cache=False), InitPlan(fields=(InitPlan.Field(name"
2991
+ "='text', annotation=OpRef(name='init.fields.0.annotation'), default=None, default_factory=None, init=True, ove"
2992
+ "rride=False, field_type=FieldType.INSTANCE, coerce=None, validate=None, check_type=None),), self_param='self',"
2993
+ " std_params=('text',), kw_only_params=(), frozen=True, slots=False, post_init_params=None, init_fns=(), valida"
2994
+ "te_fns=()), ReprPlan(fields=(ReprPlan.Field(name='text', kw_only=False, fn=None),), id=False, terse=False, def"
2995
+ "ault_fn=None)))"
2776
2996
  ),
2777
- plan_repr_sha1='3576262424b3ef8ff20966fa3744e5dba9a2ae7d',
2997
+ plan_repr_sha1='ce2a4c81e0f66e62a54ea3adfdc532902daece78',
2778
2998
  op_ref_idents=(
2779
2999
  '__dataclass__init__fields__0__annotation',
2780
3000
  ),
2781
3001
  cls_names=(
2782
- ('ommlds.cli.sessions.chat.drivers.types', 'ChatDriverId'),
3002
+ ('ommlds.cli.sessions.chat.interfaces.textual.app', 'ChatApp.UserInput'),
2783
3003
  ),
2784
3004
  )
2785
- def _process_dataclass__3576262424b3ef8ff20966fa3744e5dba9a2ae7d():
3005
+ def _process_dataclass__ce2a4c81e0f66e62a54ea3adfdc532902daece78():
2786
3006
  def _process_dataclass(
2787
3007
  *,
2788
3008
  __dataclass__cls,
@@ -2805,7 +3025,7 @@ def _process_dataclass__3576262424b3ef8ff20966fa3744e5dba9a2ae7d():
2805
3025
  if self.__class__ is not __dataclass__cls:
2806
3026
  raise TypeError(self)
2807
3027
  return __dataclass__cls( # noqa
2808
- v=self.v,
3028
+ text=self.text,
2809
3029
  )
2810
3030
 
2811
3031
  __copy__.__qualname__ = f"{__dataclass__cls.__qualname__}.__copy__"
@@ -2819,7 +3039,7 @@ def _process_dataclass__3576262424b3ef8ff20966fa3744e5dba9a2ae7d():
2819
3039
  if self.__class__ is not other.__class__:
2820
3040
  return NotImplemented
2821
3041
  return (
2822
- self.v == other.v
3042
+ self.text == other.text
2823
3043
  )
2824
3044
 
2825
3045
  __eq__.__qualname__ = f"{__dataclass__cls.__qualname__}.__eq__"
@@ -2828,7 +3048,7 @@ def _process_dataclass__3576262424b3ef8ff20966fa3744e5dba9a2ae7d():
2828
3048
  setattr(__dataclass__cls, '__eq__', __eq__)
2829
3049
 
2830
3050
  __dataclass___setattr_frozen_fields = {
2831
- 'v',
3051
+ 'text',
2832
3052
  }
2833
3053
 
2834
3054
  def __setattr__(self, name, value):
@@ -2845,7 +3065,7 @@ def _process_dataclass__3576262424b3ef8ff20966fa3744e5dba9a2ae7d():
2845
3065
  setattr(__dataclass__cls, '__setattr__', __setattr__)
2846
3066
 
2847
3067
  __dataclass___delattr_frozen_fields = {
2848
- 'v',
3068
+ 'text',
2849
3069
  }
2850
3070
 
2851
3071
  def __delattr__(self, name):
@@ -2863,7 +3083,7 @@ def _process_dataclass__3576262424b3ef8ff20966fa3744e5dba9a2ae7d():
2863
3083
 
2864
3084
  def __hash__(self):
2865
3085
  return hash((
2866
- self.v,
3086
+ self.text,
2867
3087
  ))
2868
3088
 
2869
3089
  __hash__.__qualname__ = f"{__dataclass__cls.__qualname__}.__hash__"
@@ -2871,9 +3091,9 @@ def _process_dataclass__3576262424b3ef8ff20966fa3744e5dba9a2ae7d():
2871
3091
 
2872
3092
  def __init__(
2873
3093
  self,
2874
- v: __dataclass__init__fields__0__annotation,
3094
+ text: __dataclass__init__fields__0__annotation,
2875
3095
  ) -> __dataclass__None:
2876
- __dataclass__object_setattr(self, 'v', v)
3096
+ __dataclass__object_setattr(self, 'text', text)
2877
3097
 
2878
3098
  __init__.__qualname__ = f"{__dataclass__cls.__qualname__}.__init__"
2879
3099
  if '__init__' in __dataclass__cls.__dict__:
@@ -2883,334 +3103,7 @@ def _process_dataclass__3576262424b3ef8ff20966fa3744e5dba9a2ae7d():
2883
3103
  @__dataclass___recursive_repr()
2884
3104
  def __repr__(self):
2885
3105
  parts = []
2886
- parts.append(f"{self.v!r}")
2887
- return (
2888
- f"{self.__class__.__qualname__}("
2889
- f"{', '.join(parts)}"
2890
- f")"
2891
- )
2892
-
2893
- __repr__.__qualname__ = f"{__dataclass__cls.__qualname__}.__repr__"
2894
- if '__repr__' in __dataclass__cls.__dict__:
2895
- raise __dataclass__TypeError(f"Cannot overwrite attribute __repr__ in class {__dataclass__cls.__name__}")
2896
- setattr(__dataclass__cls, '__repr__', __repr__)
2897
-
2898
- return _process_dataclass
2899
-
2900
-
2901
- @_register(
2902
- plan_repr=(
2903
- "Plans(tup=(CopyPlan(fields=('driver', 'interface', 'rendering')), EqPlan(fields=('driver', 'interface', 'rende"
2904
- "ring')), FrozenPlan(fields=('driver', 'interface', 'rendering', 'configurable_cls'), allow_dynamic_dunder_attr"
2905
- "s=False), HashPlan(action='add', fields=('driver', 'interface', 'rendering'), cache=False), InitPlan(fields=(I"
2906
- "nitPlan.Field(name='driver', annotation=OpRef(name='init.fields.0.annotation'), default=OpRef(name='init.field"
2907
- "s.0.default'), default_factory=None, init=True, override=False, field_type=FieldType.INSTANCE, coerce=None, va"
2908
- "lidate=None, check_type=None), InitPlan.Field(name='interface', annotation=OpRef(name='init.fields.1.annotatio"
2909
- "n'), default=OpRef(name='init.fields.1.default'), default_factory=None, init=True, override=False, field_type="
2910
- "FieldType.INSTANCE, coerce=None, validate=None, check_type=None), InitPlan.Field(name='rendering', annotation="
2911
- "OpRef(name='init.fields.2.annotation'), default=OpRef(name='init.fields.2.default'), default_factory=None, ini"
2912
- "t=True, override=False, field_type=FieldType.INSTANCE, coerce=None, validate=None, check_type=None), InitPlan."
2913
- "Field(name='configurable_cls', annotation=OpRef(name='init.fields.3.annotation'), default=None, default_factor"
2914
- "y=None, init=True, override=False, field_type=FieldType.CLASS_VAR, coerce=None, validate=None, check_type=None"
2915
- ")), self_param='self', std_params=(), kw_only_params=('driver', 'interface', 'rendering'), frozen=True, slots="
2916
- "False, post_init_params=None, init_fns=(), validate_fns=()), ReprPlan(fields=(ReprPlan.Field(name='driver', kw"
2917
- "_only=True, fn=None), ReprPlan.Field(name='interface', kw_only=True, fn=None), ReprPlan.Field(name='rendering'"
2918
- ", kw_only=True, fn=None)), id=False, terse=False, default_fn=None)))"
2919
- ),
2920
- plan_repr_sha1='9ae844d2d0421cd416bf6d9a25f3a9571a7e1251',
2921
- op_ref_idents=(
2922
- '__dataclass__init__fields__0__annotation',
2923
- '__dataclass__init__fields__0__default',
2924
- '__dataclass__init__fields__1__annotation',
2925
- '__dataclass__init__fields__1__default',
2926
- '__dataclass__init__fields__2__annotation',
2927
- '__dataclass__init__fields__2__default',
2928
- ),
2929
- cls_names=(
2930
- ('ommlds.cli.sessions.chat.session', 'ChatSession.Config'),
2931
- ),
2932
- )
2933
- def _process_dataclass__9ae844d2d0421cd416bf6d9a25f3a9571a7e1251():
2934
- def _process_dataclass(
2935
- *,
2936
- __dataclass__cls,
2937
- __dataclass__init__fields__0__annotation,
2938
- __dataclass__init__fields__0__default,
2939
- __dataclass__init__fields__1__annotation,
2940
- __dataclass__init__fields__1__default,
2941
- __dataclass__init__fields__2__annotation,
2942
- __dataclass__init__fields__2__default,
2943
- __dataclass__FieldFnValidationError, # noqa
2944
- __dataclass__FieldTypeValidationError, # noqa
2945
- __dataclass__FnValidationError, # noqa
2946
- __dataclass__FrozenInstanceError=dataclasses.FrozenInstanceError, # noqa
2947
- __dataclass__FunctionType=types.FunctionType, # noqa
2948
- __dataclass__HAS_DEFAULT_FACTORY=dataclasses._HAS_DEFAULT_FACTORY, # noqa
2949
- __dataclass__MISSING=dataclasses.MISSING, # noqa
2950
- __dataclass__None=None, # noqa
2951
- __dataclass__TypeError=TypeError, # noqa
2952
- __dataclass___recursive_repr=reprlib.recursive_repr, # noqa
2953
- __dataclass__isinstance=isinstance, # noqa
2954
- __dataclass__object_setattr=object.__setattr__, # noqa
2955
- __dataclass__property=property, # noqa
2956
- ):
2957
- def __copy__(self):
2958
- if self.__class__ is not __dataclass__cls:
2959
- raise TypeError(self)
2960
- return __dataclass__cls( # noqa
2961
- driver=self.driver,
2962
- interface=self.interface,
2963
- rendering=self.rendering,
2964
- )
2965
-
2966
- __copy__.__qualname__ = f"{__dataclass__cls.__qualname__}.__copy__"
2967
- if '__copy__' in __dataclass__cls.__dict__:
2968
- raise __dataclass__TypeError(f"Cannot overwrite attribute __copy__ in class {__dataclass__cls.__name__}")
2969
- setattr(__dataclass__cls, '__copy__', __copy__)
2970
-
2971
- def __eq__(self, other):
2972
- if self is other:
2973
- return True
2974
- if self.__class__ is not other.__class__:
2975
- return NotImplemented
2976
- return (
2977
- self.driver == other.driver and
2978
- self.interface == other.interface and
2979
- self.rendering == other.rendering
2980
- )
2981
-
2982
- __eq__.__qualname__ = f"{__dataclass__cls.__qualname__}.__eq__"
2983
- if '__eq__' in __dataclass__cls.__dict__:
2984
- raise __dataclass__TypeError(f"Cannot overwrite attribute __eq__ in class {__dataclass__cls.__name__}")
2985
- setattr(__dataclass__cls, '__eq__', __eq__)
2986
-
2987
- __dataclass___setattr_frozen_fields = {
2988
- 'driver',
2989
- 'interface',
2990
- 'rendering',
2991
- 'configurable_cls',
2992
- }
2993
-
2994
- def __setattr__(self, name, value):
2995
- if (
2996
- type(self) is __dataclass__cls
2997
- or name in __dataclass___setattr_frozen_fields
2998
- ):
2999
- raise __dataclass__FrozenInstanceError(f"cannot assign to field {name!r}")
3000
- super(__dataclass__cls, self).__setattr__(name, value)
3001
-
3002
- __setattr__.__qualname__ = f"{__dataclass__cls.__qualname__}.__setattr__"
3003
- if '__setattr__' in __dataclass__cls.__dict__:
3004
- raise __dataclass__TypeError(f"Cannot overwrite attribute __setattr__ in class {__dataclass__cls.__name__}")
3005
- setattr(__dataclass__cls, '__setattr__', __setattr__)
3006
-
3007
- __dataclass___delattr_frozen_fields = {
3008
- 'driver',
3009
- 'interface',
3010
- 'rendering',
3011
- 'configurable_cls',
3012
- }
3013
-
3014
- def __delattr__(self, name):
3015
- if (
3016
- type(self) is __dataclass__cls
3017
- or name in __dataclass___delattr_frozen_fields
3018
- ):
3019
- raise __dataclass__FrozenInstanceError(f"cannot delete field {name!r}")
3020
- super(__dataclass__cls, self).__delattr__(name)
3021
-
3022
- __delattr__.__qualname__ = f"{__dataclass__cls.__qualname__}.__delattr__"
3023
- if '__delattr__' in __dataclass__cls.__dict__:
3024
- raise __dataclass__TypeError(f"Cannot overwrite attribute __delattr__ in class {__dataclass__cls.__name__}")
3025
- setattr(__dataclass__cls, '__delattr__', __delattr__)
3026
-
3027
- def __hash__(self):
3028
- return hash((
3029
- self.driver,
3030
- self.interface,
3031
- self.rendering,
3032
- ))
3033
-
3034
- __hash__.__qualname__ = f"{__dataclass__cls.__qualname__}.__hash__"
3035
- setattr(__dataclass__cls, '__hash__', __hash__)
3036
-
3037
- def __init__(
3038
- self,
3039
- *,
3040
- driver: __dataclass__init__fields__0__annotation = __dataclass__init__fields__0__default,
3041
- interface: __dataclass__init__fields__1__annotation = __dataclass__init__fields__1__default,
3042
- rendering: __dataclass__init__fields__2__annotation = __dataclass__init__fields__2__default,
3043
- ) -> __dataclass__None:
3044
- __dataclass__object_setattr(self, 'driver', driver)
3045
- __dataclass__object_setattr(self, 'interface', interface)
3046
- __dataclass__object_setattr(self, 'rendering', rendering)
3047
-
3048
- __init__.__qualname__ = f"{__dataclass__cls.__qualname__}.__init__"
3049
- if '__init__' in __dataclass__cls.__dict__:
3050
- raise __dataclass__TypeError(f"Cannot overwrite attribute __init__ in class {__dataclass__cls.__name__}")
3051
- setattr(__dataclass__cls, '__init__', __init__)
3052
-
3053
- @__dataclass___recursive_repr()
3054
- def __repr__(self):
3055
- parts = []
3056
- parts.append(f"driver={self.driver!r}")
3057
- parts.append(f"interface={self.interface!r}")
3058
- parts.append(f"rendering={self.rendering!r}")
3059
- return (
3060
- f"{self.__class__.__qualname__}("
3061
- f"{', '.join(parts)}"
3062
- f")"
3063
- )
3064
-
3065
- __repr__.__qualname__ = f"{__dataclass__cls.__qualname__}.__repr__"
3066
- if '__repr__' in __dataclass__cls.__dict__:
3067
- raise __dataclass__TypeError(f"Cannot overwrite attribute __repr__ in class {__dataclass__cls.__name__}")
3068
- setattr(__dataclass__cls, '__repr__', __repr__)
3069
-
3070
- return _process_dataclass
3071
-
3072
-
3073
- @_register(
3074
- plan_repr=(
3075
- "Plans(tup=(CopyPlan(fields=('content', 'backend')), EqPlan(fields=('content', 'backend')), FrozenPlan(fields=("
3076
- "'content', 'backend', 'configurable_cls'), allow_dynamic_dunder_attrs=False), HashPlan(action='add', fields=('"
3077
- "content', 'backend'), cache=False), InitPlan(fields=(InitPlan.Field(name='content', annotation=OpRef(name='ini"
3078
- "t.fields.0.annotation'), default=None, default_factory=None, init=True, override=False, field_type=FieldType.I"
3079
- "NSTANCE, coerce=None, validate=None, check_type=None), InitPlan.Field(name='backend', annotation=OpRef(name='i"
3080
- "nit.fields.1.annotation'), default=OpRef(name='init.fields.1.default'), default_factory=None, init=True, overr"
3081
- "ide=False, field_type=FieldType.INSTANCE, coerce=None, validate=None, check_type=None), InitPlan.Field(name='c"
3082
- "onfigurable_cls', annotation=OpRef(name='init.fields.2.annotation'), default=None, default_factory=None, init="
3083
- "True, override=False, field_type=FieldType.CLASS_VAR, coerce=None, validate=None, check_type=None)), self_para"
3084
- "m='self', std_params=('content',), kw_only_params=('backend',), frozen=True, slots=False, post_init_params=Non"
3085
- "e, init_fns=(), validate_fns=()), ReprPlan(fields=(ReprPlan.Field(name='content', kw_only=False, fn=None), Rep"
3086
- "rPlan.Field(name='backend', kw_only=True, fn=None)), id=False, terse=False, default_fn=None)))"
3087
- ),
3088
- plan_repr_sha1='68fe24967af76c907a1aebfe8185412042d24fa8',
3089
- op_ref_idents=(
3090
- '__dataclass__init__fields__0__annotation',
3091
- '__dataclass__init__fields__1__annotation',
3092
- '__dataclass__init__fields__1__default',
3093
- ),
3094
- cls_names=(
3095
- ('ommlds.cli.sessions.completion.session', 'CompletionSession.Config'),
3096
- ('ommlds.cli.sessions.embedding.session', 'EmbeddingSession.Config'),
3097
- ),
3098
- )
3099
- def _process_dataclass__68fe24967af76c907a1aebfe8185412042d24fa8():
3100
- def _process_dataclass(
3101
- *,
3102
- __dataclass__cls,
3103
- __dataclass__init__fields__0__annotation,
3104
- __dataclass__init__fields__1__annotation,
3105
- __dataclass__init__fields__1__default,
3106
- __dataclass__FieldFnValidationError, # noqa
3107
- __dataclass__FieldTypeValidationError, # noqa
3108
- __dataclass__FnValidationError, # noqa
3109
- __dataclass__FrozenInstanceError=dataclasses.FrozenInstanceError, # noqa
3110
- __dataclass__FunctionType=types.FunctionType, # noqa
3111
- __dataclass__HAS_DEFAULT_FACTORY=dataclasses._HAS_DEFAULT_FACTORY, # noqa
3112
- __dataclass__MISSING=dataclasses.MISSING, # noqa
3113
- __dataclass__None=None, # noqa
3114
- __dataclass__TypeError=TypeError, # noqa
3115
- __dataclass___recursive_repr=reprlib.recursive_repr, # noqa
3116
- __dataclass__isinstance=isinstance, # noqa
3117
- __dataclass__object_setattr=object.__setattr__, # noqa
3118
- __dataclass__property=property, # noqa
3119
- ):
3120
- def __copy__(self):
3121
- if self.__class__ is not __dataclass__cls:
3122
- raise TypeError(self)
3123
- return __dataclass__cls( # noqa
3124
- content=self.content,
3125
- backend=self.backend,
3126
- )
3127
-
3128
- __copy__.__qualname__ = f"{__dataclass__cls.__qualname__}.__copy__"
3129
- if '__copy__' in __dataclass__cls.__dict__:
3130
- raise __dataclass__TypeError(f"Cannot overwrite attribute __copy__ in class {__dataclass__cls.__name__}")
3131
- setattr(__dataclass__cls, '__copy__', __copy__)
3132
-
3133
- def __eq__(self, other):
3134
- if self is other:
3135
- return True
3136
- if self.__class__ is not other.__class__:
3137
- return NotImplemented
3138
- return (
3139
- self.content == other.content and
3140
- self.backend == other.backend
3141
- )
3142
-
3143
- __eq__.__qualname__ = f"{__dataclass__cls.__qualname__}.__eq__"
3144
- if '__eq__' in __dataclass__cls.__dict__:
3145
- raise __dataclass__TypeError(f"Cannot overwrite attribute __eq__ in class {__dataclass__cls.__name__}")
3146
- setattr(__dataclass__cls, '__eq__', __eq__)
3147
-
3148
- __dataclass___setattr_frozen_fields = {
3149
- 'content',
3150
- 'backend',
3151
- 'configurable_cls',
3152
- }
3153
-
3154
- def __setattr__(self, name, value):
3155
- if (
3156
- type(self) is __dataclass__cls
3157
- or name in __dataclass___setattr_frozen_fields
3158
- ):
3159
- raise __dataclass__FrozenInstanceError(f"cannot assign to field {name!r}")
3160
- super(__dataclass__cls, self).__setattr__(name, value)
3161
-
3162
- __setattr__.__qualname__ = f"{__dataclass__cls.__qualname__}.__setattr__"
3163
- if '__setattr__' in __dataclass__cls.__dict__:
3164
- raise __dataclass__TypeError(f"Cannot overwrite attribute __setattr__ in class {__dataclass__cls.__name__}")
3165
- setattr(__dataclass__cls, '__setattr__', __setattr__)
3166
-
3167
- __dataclass___delattr_frozen_fields = {
3168
- 'content',
3169
- 'backend',
3170
- 'configurable_cls',
3171
- }
3172
-
3173
- def __delattr__(self, name):
3174
- if (
3175
- type(self) is __dataclass__cls
3176
- or name in __dataclass___delattr_frozen_fields
3177
- ):
3178
- raise __dataclass__FrozenInstanceError(f"cannot delete field {name!r}")
3179
- super(__dataclass__cls, self).__delattr__(name)
3180
-
3181
- __delattr__.__qualname__ = f"{__dataclass__cls.__qualname__}.__delattr__"
3182
- if '__delattr__' in __dataclass__cls.__dict__:
3183
- raise __dataclass__TypeError(f"Cannot overwrite attribute __delattr__ in class {__dataclass__cls.__name__}")
3184
- setattr(__dataclass__cls, '__delattr__', __delattr__)
3185
-
3186
- def __hash__(self):
3187
- return hash((
3188
- self.content,
3189
- self.backend,
3190
- ))
3191
-
3192
- __hash__.__qualname__ = f"{__dataclass__cls.__qualname__}.__hash__"
3193
- setattr(__dataclass__cls, '__hash__', __hash__)
3194
-
3195
- def __init__(
3196
- self,
3197
- content: __dataclass__init__fields__0__annotation,
3198
- *,
3199
- backend: __dataclass__init__fields__1__annotation = __dataclass__init__fields__1__default,
3200
- ) -> __dataclass__None:
3201
- __dataclass__object_setattr(self, 'content', content)
3202
- __dataclass__object_setattr(self, 'backend', backend)
3203
-
3204
- __init__.__qualname__ = f"{__dataclass__cls.__qualname__}.__init__"
3205
- if '__init__' in __dataclass__cls.__dict__:
3206
- raise __dataclass__TypeError(f"Cannot overwrite attribute __init__ in class {__dataclass__cls.__name__}")
3207
- setattr(__dataclass__cls, '__init__', __init__)
3208
-
3209
- @__dataclass___recursive_repr()
3210
- def __repr__(self):
3211
- parts = []
3212
- parts.append(f"content={self.content!r}")
3213
- parts.append(f"backend={self.backend!r}")
3106
+ parts.append(f"text={self.text!r}")
3214
3107
  return (
3215
3108
  f"{self.__class__.__qualname__}("
3216
3109
  f"{', '.join(parts)}"