ommlds 0.0.0.dev461__py3-none-any.whl → 0.0.0.dev463__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.

Potentially problematic release.


This version of ommlds might be problematic. Click here for more details.

Files changed (47) hide show
  1. ommlds/.omlish-manifests.json +4 -5
  2. ommlds/__about__.py +2 -2
  3. ommlds/backends/mlx/loading.py +58 -1
  4. ommlds/cli/main.py +18 -2
  5. ommlds/cli/sessions/chat/state.py +3 -3
  6. ommlds/cli/sessions/chat2/__init__.py +0 -0
  7. ommlds/cli/sessions/chat2/_inject.py +105 -0
  8. ommlds/cli/sessions/chat2/backends/__init__.py +0 -0
  9. ommlds/cli/sessions/chat2/backends/catalog.py +56 -0
  10. ommlds/cli/sessions/chat2/backends/types.py +36 -0
  11. ommlds/cli/sessions/chat2/chat/__init__.py +0 -0
  12. ommlds/cli/sessions/chat2/chat/ai/__init__.py +0 -0
  13. ommlds/cli/sessions/chat2/chat/ai/rendering.py +67 -0
  14. ommlds/cli/sessions/chat2/chat/ai/services.py +70 -0
  15. ommlds/cli/sessions/chat2/chat/ai/types.py +28 -0
  16. ommlds/cli/sessions/chat2/chat/state/__init__.py +0 -0
  17. ommlds/cli/sessions/chat2/chat/state/inmemory.py +34 -0
  18. ommlds/cli/sessions/chat2/chat/state/storage.py +53 -0
  19. ommlds/cli/sessions/chat2/chat/state/types.py +38 -0
  20. ommlds/cli/sessions/chat2/chat/user/__init__.py +0 -0
  21. ommlds/cli/sessions/chat2/chat/user/interactive.py +29 -0
  22. ommlds/cli/sessions/chat2/chat/user/oneshot.py +25 -0
  23. ommlds/cli/sessions/chat2/chat/user/types.py +15 -0
  24. ommlds/cli/sessions/chat2/configs.py +33 -0
  25. ommlds/cli/sessions/chat2/content/__init__.py +0 -0
  26. ommlds/cli/sessions/chat2/content/messages.py +30 -0
  27. ommlds/cli/sessions/chat2/content/strings.py +42 -0
  28. ommlds/cli/sessions/chat2/driver.py +43 -0
  29. ommlds/cli/sessions/chat2/inject.py +143 -0
  30. ommlds/cli/sessions/chat2/phases.py +55 -0
  31. ommlds/cli/sessions/chat2/rendering/__init__.py +0 -0
  32. ommlds/cli/sessions/chat2/rendering/markdown.py +52 -0
  33. ommlds/cli/sessions/chat2/rendering/raw.py +73 -0
  34. ommlds/cli/sessions/chat2/rendering/types.py +21 -0
  35. ommlds/cli/sessions/chat2/session.py +27 -0
  36. ommlds/cli/sessions/chat2/tools/__init__.py +0 -0
  37. ommlds/cli/sessions/chat2/tools/confirmation.py +46 -0
  38. ommlds/cli/sessions/chat2/tools/execution.py +53 -0
  39. ommlds/cli/sessions/inject.py +6 -1
  40. ommlds/cli/state.py +40 -23
  41. ommlds/minichain/backends/impls/anthropic/names.py +3 -4
  42. {ommlds-0.0.0.dev461.dist-info → ommlds-0.0.0.dev463.dist-info}/METADATA +7 -7
  43. {ommlds-0.0.0.dev461.dist-info → ommlds-0.0.0.dev463.dist-info}/RECORD +47 -14
  44. {ommlds-0.0.0.dev461.dist-info → ommlds-0.0.0.dev463.dist-info}/WHEEL +0 -0
  45. {ommlds-0.0.0.dev461.dist-info → ommlds-0.0.0.dev463.dist-info}/entry_points.txt +0 -0
  46. {ommlds-0.0.0.dev461.dist-info → ommlds-0.0.0.dev463.dist-info}/licenses/LICENSE +0 -0
  47. {ommlds-0.0.0.dev461.dist-info → ommlds-0.0.0.dev463.dist-info}/top_level.txt +0 -0
@@ -0,0 +1,53 @@
1
+ import abc
2
+ import typing as ta
3
+
4
+ from omlish import check
5
+ from omlish import lang
6
+
7
+ from ..... import minichain as mc
8
+ from .confirmation import ToolExecutionConfirmation
9
+
10
+
11
+ ##
12
+
13
+
14
+ class ToolUseExecutor(lang.Abstract):
15
+ @abc.abstractmethod
16
+ def execute_tool_use(
17
+ self,
18
+ use: mc.ToolUse,
19
+ *ctx_items: ta.Any,
20
+ ) -> ta.Awaitable[mc.ToolUseResultMessage]:
21
+ raise NotImplementedError
22
+
23
+
24
+ class ToolUseExecutorImpl(ToolUseExecutor):
25
+ def __init__(
26
+ self,
27
+ *,
28
+ catalog: mc.ToolCatalog,
29
+ confirmation: ToolExecutionConfirmation | None = None,
30
+ ) -> None:
31
+ super().__init__()
32
+
33
+ self._catalog = catalog
34
+ self._confirmation = confirmation
35
+
36
+ async def execute_tool_use(
37
+ self,
38
+ use: mc.ToolUse,
39
+ *ctx_items: ta.Any,
40
+ ) -> mc.ToolUseResultMessage:
41
+ tce = self._catalog.by_name[check.non_empty_str(use.name)]
42
+
43
+ if self._confirmation is not None:
44
+ await self._confirmation.confirm_tool_execution_or_raise(use, tce)
45
+
46
+ return await mc.execute_tool_use(
47
+ mc.ToolContext(
48
+ use,
49
+ *ctx_items,
50
+ ),
51
+ tce.executor(),
52
+ use,
53
+ )
@@ -2,7 +2,7 @@ from omlish import inject as inj
2
2
 
3
3
  from .base import Session
4
4
  from .chat.base import ChatSession
5
- from .chat.inject import bind_chat_session
5
+ from .chat2.session import Chat2Session
6
6
 
7
7
 
8
8
  ##
@@ -16,6 +16,11 @@ def bind_sessions(session_cfg: Session.Config) -> inj.Elements:
16
16
  ]
17
17
 
18
18
  if isinstance(session_cfg, ChatSession.Config):
19
+ from .chat.inject import bind_chat_session
19
20
  els.append(bind_chat_session(session_cfg))
20
21
 
22
+ elif isinstance(session_cfg, Chat2Session.Config):
23
+ from .chat2.inject import bind_chat
24
+ els.append(bind_chat(session_cfg)) # noqa
25
+
21
26
  return inj.as_elements(*els)
ommlds/cli/state.py CHANGED
@@ -14,6 +14,38 @@ T = ta.TypeVar('T')
14
14
  ##
15
15
 
16
16
 
17
+ class StateStorage(lang.Abstract):
18
+ @abc.abstractmethod
19
+ def load_state(self, key: str, ty: type[T] | None) -> ta.Awaitable[T | None]:
20
+ raise NotImplementedError
21
+
22
+ @abc.abstractmethod
23
+ def save_state(self, key: str, obj: ta.Any | None, ty: type[T] | None) -> ta.Awaitable[None]:
24
+ raise NotImplementedError
25
+
26
+
27
+ ##
28
+
29
+
30
+ class InMemoryStateStorage(StateStorage):
31
+ def __init__(self) -> None:
32
+ super().__init__()
33
+
34
+ self._dct: dict[str, ta.Any] = {}
35
+
36
+ async def load_state(self, key: str, ty: type[T] | None) -> T | None:
37
+ return self._dct.get(key)
38
+
39
+ async def save_state(self, key: str, obj: ta.Any | None, ty: type[T] | None) -> None:
40
+ if obj is None:
41
+ self._dct.pop(key, None)
42
+ else:
43
+ self._dct[key] = obj
44
+
45
+
46
+ ##
47
+
48
+
17
49
  STATE_VERSION = 0
18
50
 
19
51
 
@@ -23,10 +55,7 @@ class MarshaledState:
23
55
  payload: ta.Any
24
56
 
25
57
 
26
- #
27
-
28
-
29
- class StateStorage(lang.Abstract):
58
+ class MarshalStateStorage(StateStorage, lang.Abstract):
30
59
  def __init__(
31
60
  self,
32
61
  *,
@@ -36,36 +65,24 @@ class StateStorage(lang.Abstract):
36
65
 
37
66
  self._version = version
38
67
 
39
- #
40
-
41
- def unmarshal_state(self, obj: ta.Any, ty: type[T] | None = None) -> T | None:
68
+ def _unmarshal_state(self, obj: ta.Any, ty: type[T] | None = None) -> T | None:
42
69
  ms = msh.unmarshal(obj, MarshaledState)
43
70
  if ms.version < self._version:
44
71
  return None
45
72
  return msh.unmarshal(ms.payload, ty)
46
73
 
47
- def marshal_state(self, obj: ta.Any, ty: type | None = None) -> ta.Any:
74
+ def _marshal_state(self, obj: ta.Any, ty: type | None = None) -> ta.Any:
48
75
  ms = MarshaledState(
49
76
  version=self._version,
50
77
  payload=msh.marshal(obj, ty),
51
78
  )
52
79
  return msh.marshal(ms)
53
80
 
54
- #
55
-
56
- @abc.abstractmethod
57
- def load_state(self, key: str, ty: type[T] | None) -> T | None:
58
- raise NotImplementedError
59
-
60
- @abc.abstractmethod
61
- def save_state(self, key: str, obj: ta.Any | None, ty: type[T] | None) -> None:
62
- raise NotImplementedError
63
-
64
81
 
65
82
  #
66
83
 
67
84
 
68
- class JsonFileStateStorage(StateStorage):
85
+ class JsonFileStateStorage(MarshalStateStorage):
69
86
  def __init__(
70
87
  self,
71
88
  file: str,
@@ -91,19 +108,19 @@ class JsonFileStateStorage(StateStorage):
91
108
 
92
109
  #
93
110
 
94
- def load_state(self, key: str, ty: type[T] | None) -> T | None:
111
+ async def load_state(self, key: str, ty: type[T] | None) -> T | None:
95
112
  if not (data := self._load_file_data()):
96
113
  return None
97
114
  if (dct := data.get(key)) is None:
98
115
  return None
99
- return self.unmarshal_state(dct, ty)
116
+ return self._unmarshal_state(dct, ty)
100
117
 
101
- def save_state(self, key: str, obj: ta.Any | None, ty: type[T] | None) -> None:
118
+ async def save_state(self, key: str, obj: ta.Any | None, ty: type[T] | None) -> None:
102
119
  if (data := self._load_file_data()) is None:
103
120
  data = {}
104
121
  if obj is None:
105
122
  data.pop(key, None)
106
123
  else:
107
- dct = self.marshal_state(obj, ty)
124
+ dct = self._marshal_state(obj, ty)
108
125
  data[key] = dct
109
126
  self._save_file_data(data)
@@ -22,10 +22,9 @@ MODEL_NAMES = ModelNameCollection(
22
22
  'claude-sonnet-4-5': 'claude-sonnet-4-5-20250929',
23
23
  'claude-sonnet': 'claude-sonnet-4-5',
24
24
 
25
- 'claude-3-5-haiku-latest': None,
26
- 'claude-haiku-3-5-latest': 'claude-3-5-haiku-latest',
27
- 'claude-haiku-3-5': 'claude-haiku-3-5-latest',
28
- 'claude-haiku': 'claude-haiku-3-5',
25
+ 'claude-haiku-4-5-20251001': None,
26
+ 'claude-haiku-4-5': 'claude-haiku-4-5-20251001',
27
+ 'claude-haiku': 'claude-haiku-4-5',
29
28
 
30
29
  'claude': 'claude-haiku',
31
30
  },
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: ommlds
3
- Version: 0.0.0.dev461
3
+ Version: 0.0.0.dev463
4
4
  Summary: ommlds
5
5
  Author: wrmsr
6
6
  License-Expression: BSD-3-Clause
@@ -14,8 +14,8 @@ Classifier: Programming Language :: Python :: 3.13
14
14
  Requires-Python: >=3.13
15
15
  Description-Content-Type: text/markdown
16
16
  License-File: LICENSE
17
- Requires-Dist: omdev==0.0.0.dev461
18
- Requires-Dist: omlish==0.0.0.dev461
17
+ Requires-Dist: omdev==0.0.0.dev463
18
+ Requires-Dist: omlish==0.0.0.dev463
19
19
  Provides-Extra: all
20
20
  Requires-Dist: llama-cpp-python~=0.3; extra == "all"
21
21
  Requires-Dist: mlx~=0.29; extra == "all"
@@ -23,7 +23,7 @@ Requires-Dist: mlx-lm~=0.28; sys_platform == "darwin" and extra == "all"
23
23
  Requires-Dist: tiktoken~=0.12; extra == "all"
24
24
  Requires-Dist: tinygrad~=0.11; extra == "all"
25
25
  Requires-Dist: tokenizers~=0.22; extra == "all"
26
- Requires-Dist: torch~=2.8; extra == "all"
26
+ Requires-Dist: torch~=2.9; extra == "all"
27
27
  Requires-Dist: transformers~=4.57; extra == "all"
28
28
  Requires-Dist: sentence-transformers~=5.1; extra == "all"
29
29
  Requires-Dist: huggingface-hub~=0.35; extra == "all"
@@ -31,7 +31,7 @@ Requires-Dist: datasets~=4.2; extra == "all"
31
31
  Requires-Dist: numpy>=1.26; extra == "all"
32
32
  Requires-Dist: pytesseract~=0.3; extra == "all"
33
33
  Requires-Dist: rapidocr-onnxruntime~=1.4; extra == "all"
34
- Requires-Dist: pillow~=11.3; extra == "all"
34
+ Requires-Dist: pillow~=12.0; extra == "all"
35
35
  Requires-Dist: ddgs~=9.6; extra == "all"
36
36
  Requires-Dist: mwparserfromhell~=0.7; extra == "all"
37
37
  Requires-Dist: wikitextparser~=0.56; extra == "all"
@@ -43,7 +43,7 @@ Requires-Dist: mlx-lm~=0.28; sys_platform == "darwin" and extra == "backends"
43
43
  Requires-Dist: tiktoken~=0.12; extra == "backends"
44
44
  Requires-Dist: tinygrad~=0.11; extra == "backends"
45
45
  Requires-Dist: tokenizers~=0.22; extra == "backends"
46
- Requires-Dist: torch~=2.8; extra == "backends"
46
+ Requires-Dist: torch~=2.9; extra == "backends"
47
47
  Requires-Dist: transformers~=4.57; extra == "backends"
48
48
  Requires-Dist: sentence-transformers~=5.1; extra == "backends"
49
49
  Provides-Extra: huggingface
@@ -55,7 +55,7 @@ Provides-Extra: ocr
55
55
  Requires-Dist: pytesseract~=0.3; extra == "ocr"
56
56
  Requires-Dist: rapidocr-onnxruntime~=1.4; extra == "ocr"
57
57
  Provides-Extra: pillow
58
- Requires-Dist: pillow~=11.3; extra == "pillow"
58
+ Requires-Dist: pillow~=12.0; extra == "pillow"
59
59
  Provides-Extra: search
60
60
  Requires-Dist: ddgs~=9.6; extra == "search"
61
61
  Provides-Extra: wiki
@@ -1,5 +1,5 @@
1
- ommlds/.omlish-manifests.json,sha256=rrjnJ9Ux5kxBEZc3jHSKc_BRwyiV0OW11sIVQRFUkf8,17992
2
- ommlds/__about__.py,sha256=ihOSwOzbSqpYjC0oisAXE8bAnknrAKuDPQ8RI2y0n7U,1759
1
+ ommlds/.omlish-manifests.json,sha256=5W7s8h2xvV_Y2YA1m4hYz0949Yb5XoDNTFAQCrvrDlQ,17930
2
+ ommlds/__about__.py,sha256=uAJgr2I_m_oZPlV5P8XLFeYpBlEM-DdzeyF6O5OK_qs,1759
3
3
  ommlds/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
4
4
  ommlds/huggingface.py,sha256=JfEyfKOxU3-SY_ojtXBJFNeD-NIuKjvMe3GL3e93wNA,1175
5
5
  ommlds/_hacks/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
@@ -26,7 +26,7 @@ ommlds/backends/mlx/caching.py,sha256=jPhVclrm8RckXiJLY-iokCSGjMfVMr_VH8fTFYA3FB
26
26
  ommlds/backends/mlx/cli.py,sha256=In4gGBqvFApLE-vNMi6bqba7Xa-SZfCmSSGuRCDCjlU,10685
27
27
  ommlds/backends/mlx/generation.py,sha256=e53MT80QJI6KhUr9UNnJkx9h3bUFtn1dy9K-R57c6hk,9785
28
28
  ommlds/backends/mlx/limits.py,sha256=GZfad6q14fvFHoPfovdnH3jnM1qGvdprfQk_pMWqI5g,2780
29
- ommlds/backends/mlx/loading.py,sha256=v8k--OD1qG6ivrD2sQv_DhIwBAxJe47vKfhkD_KmuOQ,2031
29
+ ommlds/backends/mlx/loading.py,sha256=5M18MPeXiIsPV5Laww6gu3KicLKJ11G0OJMjyixDa9c,3585
30
30
  ommlds/backends/mlx/tokenization/LICENSE,sha256=0T9KDFIRDAqANM8DZgpgrzPq3WwnBKsw5EkrkeR3xqM,1066
31
31
  ommlds/backends/mlx/tokenization/__init__.py,sha256=0GfhhjUc4OhY_dpQncq984kcdyOCholjVNjAIAcjAHM,232
32
32
  ommlds/backends/mlx/tokenization/loading.py,sha256=OSD7-ZnLuY2Owv5MpQB8CCEPMhOPwParqMPpS5omZBI,3154
@@ -78,14 +78,14 @@ ommlds/backends/torch/purge.py,sha256=sp6XUxNLoVCepxIPKw3tevHn-cQqgorILvIQzixaui
78
78
  ommlds/cli/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
79
79
  ommlds/cli/__main__.py,sha256=1ffCb0fcUOJMzxROJmJRXQ8PSOVYv7KrcuBtT95cf0c,140
80
80
  ommlds/cli/inject.py,sha256=4YqgTvVKoe1bFQ_Qfgy-_pOcv6ZOq537T6_uF7Lkiew,1338
81
- ommlds/cli/main.py,sha256=dy_uES0N4_ULmizx72RN06SGtXfDv3VFdqd3dpYgfqg,5805
82
- ommlds/cli/state.py,sha256=CRmScYuNvwe8nbZ41NQOpUiV9HuSjINzu6vIjwEDVnI,2447
81
+ ommlds/cli/main.py,sha256=kyR2QoFbuXwpThQ6VQ7Ty-ILyvyUY-mCbG5B2m-atPQ,6310
82
+ ommlds/cli/state.py,sha256=tRPmgCANRrw7A5Qr700OaH58F6S96O37I8Ivrbo7_gI,3001
83
83
  ommlds/cli/backends/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
84
84
  ommlds/cli/backends/inject.py,sha256=OVstNsoeVnprM9PBL_zP0N46KkoDg3_Wz90BWcQ7km4,1734
85
85
  ommlds/cli/backends/standard.py,sha256=HnammWyAXJHeqXJrAMBdarcT4Nyt2CxudZdD2fW_Y9M,631
86
86
  ommlds/cli/sessions/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
87
87
  ommlds/cli/sessions/base.py,sha256=oTqsqZ9jhBWFblANpVWLLIzmRfP8HO9QYtPnZ-GZxS0,452
88
- ommlds/cli/sessions/inject.py,sha256=sCwNFDhiyir1taxufFVEcHtaK_o14IcsQOvGUHWM9Jo,545
88
+ ommlds/cli/sessions/inject.py,sha256=dPpcYioOvoK286C5hRR348pnS6UmQJ429AF7aY7HGfk,744
89
89
  ommlds/cli/sessions/chat/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
90
90
  ommlds/cli/sessions/chat/base.py,sha256=GlDBXZ-KymSokNl1a7uwX1abswmRE67Q0zOIHjhZb_0,796
91
91
  ommlds/cli/sessions/chat/code.py,sha256=6hnjibVMTxSUciIIsDPsLHLGMlJNNUZtVQJxFkpi8sM,4269
@@ -93,8 +93,41 @@ ommlds/cli/sessions/chat/inject.py,sha256=uF-QJvONu5sntXxaEu5KTYy2MUaSY8c5oJz0Hp
93
93
  ommlds/cli/sessions/chat/interactive.py,sha256=gurYiDCQSY_5llcE75zvEbpVp77AbKSfgY243Z68bLw,2039
94
94
  ommlds/cli/sessions/chat/printing.py,sha256=3f6icLamt7Wd7oiTshGVnIgC5YAsx_CBvZ4QH_7_mFs,2921
95
95
  ommlds/cli/sessions/chat/prompt.py,sha256=tB8Wsy1FYXU6Gq-xOUTVpk8PVAu03mh7lcXf7xO7uJ4,5288
96
- ommlds/cli/sessions/chat/state.py,sha256=CjYkcpZ4fEBE0kPl1g101EDzq0MKy6S6E84dfDhwzcQ,2649
96
+ ommlds/cli/sessions/chat/state.py,sha256=pdYwkovRxcLVyIHS3yGrMlqP-81j-XrKAFd4AnGzx5o,2700
97
97
  ommlds/cli/sessions/chat/tools.py,sha256=dj6ADr6RIJnoIKH5wxRLGkgKAfZ_TtnqNLQ6uO-1Gfg,2325
98
+ ommlds/cli/sessions/chat2/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
99
+ ommlds/cli/sessions/chat2/_inject.py,sha256=Rf54u0TVvZNW4jOFx7nQqATo71TcOLx1_8jjyNIBGV4,2465
100
+ ommlds/cli/sessions/chat2/configs.py,sha256=C7MvPpZKQ8Tr43CrCxMr2Ey0yO-rvruWLfMntRAQuDU,534
101
+ ommlds/cli/sessions/chat2/driver.py,sha256=el3D4vAOswtwEd5TELRMUDoJxg07vca1bnTJ4gvz5Lk,1381
102
+ ommlds/cli/sessions/chat2/inject.py,sha256=RvEVvoTaWoth5X48bnMLL5umm5L2_Z-j-YBrsMyHXyc,4256
103
+ ommlds/cli/sessions/chat2/phases.py,sha256=bFAPQQuVh3pd8gV-scMsrGwwAHokTdl9YHfBni5v-wA,1171
104
+ ommlds/cli/sessions/chat2/session.py,sha256=ENE_YrN1A7ZLaDorJfBuRVI7pntMl4KTnUH11c9Vajo,523
105
+ ommlds/cli/sessions/chat2/backends/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
106
+ ommlds/cli/sessions/chat2/backends/catalog.py,sha256=awERG2SgoMqxcjMt1LBQ2iTxn7qhsiJXxSBSHDOafZU,1746
107
+ ommlds/cli/sessions/chat2/backends/types.py,sha256=RgVvXV8OjVxApszYVv-XTfD3gw7ZlbNCs10_Wl5Dico,690
108
+ ommlds/cli/sessions/chat2/chat/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
109
+ ommlds/cli/sessions/chat2/chat/ai/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
110
+ ommlds/cli/sessions/chat2/chat/ai/rendering.py,sha256=gw3MMoFFyEvac2Ett8gI2-cgUITTWMrTnW7BR_VaT3s,2051
111
+ ommlds/cli/sessions/chat2/chat/ai/services.py,sha256=mgFm0D9Z3WJQ6L7EJyRaYRxgxRgl7TzbPUQtxYTCuVA,2124
112
+ ommlds/cli/sessions/chat2/chat/ai/types.py,sha256=OBU0WhxT-ot3ALdystR2-Bu5eoy62TWy8f3mWTsMEJM,742
113
+ ommlds/cli/sessions/chat2/chat/state/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
114
+ ommlds/cli/sessions/chat2/chat/state/inmemory.py,sha256=ltwNMI4CWevJmR4z42Bmd_BBrnyalEPkATAuYHq2Z0g,859
115
+ ommlds/cli/sessions/chat2/chat/state/storage.py,sha256=XgYYSuv-RduiEjdhTRmV8OG_1WHyEMuoIITaH6bE0mg,1426
116
+ ommlds/cli/sessions/chat2/chat/state/types.py,sha256=m3G5T7fqZXqaz_gz1IDSi83b9FPMV3B3dNeVg0q4tJ8,792
117
+ ommlds/cli/sessions/chat2/chat/user/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
118
+ ommlds/cli/sessions/chat2/chat/user/interactive.py,sha256=ClTaO132682LbCpXN1MQxhoJOlmTIzzR_Vc2yHyJymc,686
119
+ ommlds/cli/sessions/chat2/chat/user/oneshot.py,sha256=eIUA3slRzcqwf5qR5TG_rwV4Wd-K_ItKF0LdhA8exz4,586
120
+ ommlds/cli/sessions/chat2/chat/user/types.py,sha256=zjBUDz1U0VnmTFq3enl-CL1ZWoc8Aa0_0b41nbZ0PkQ,260
121
+ ommlds/cli/sessions/chat2/content/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
122
+ ommlds/cli/sessions/chat2/content/messages.py,sha256=MP3LsKWy97yFq1WCireCk1W6_TyeT5SlTom8SimOlCQ,821
123
+ ommlds/cli/sessions/chat2/content/strings.py,sha256=IRwgAR8_CWVU8TxX9ZBJOznnIg-N4GUQ0lbyHy8jj4g,1051
124
+ ommlds/cli/sessions/chat2/rendering/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
125
+ ommlds/cli/sessions/chat2/rendering/markdown.py,sha256=dL5lIZJkwqTuvBdNU4q-z0qIuo8sqvnUlIK6xL55PH4,1799
126
+ ommlds/cli/sessions/chat2/rendering/raw.py,sha256=iimt5lRY7mxkmDD3cOri9oxQ0zCuA5PC_LeDOR_Znbk,2428
127
+ ommlds/cli/sessions/chat2/rendering/types.py,sha256=7D8QV8r4Xy5LQ5lCaLEF7JvomWCwnoHH78EKy7UzEbM,447
128
+ ommlds/cli/sessions/chat2/tools/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
129
+ ommlds/cli/sessions/chat2/tools/confirmation.py,sha256=ZiSBp0RKLPAVyHsFdUJrdZmvYnyZAVFt_zaqvF4JDeU,1064
130
+ ommlds/cli/sessions/chat2/tools/execution.py,sha256=FAyaxw9BPNWveouF8s7GJiYxqECs0i72ZFXYW12z00c,1268
98
131
  ommlds/cli/sessions/completion/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
99
132
  ommlds/cli/sessions/completion/completion.py,sha256=2ZrzmHBCF3mG13ABcoiHva6OUzPpdF7qzByteaLNsxk,1077
100
133
  ommlds/cli/sessions/embedding/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
@@ -129,7 +162,7 @@ ommlds/minichain/backends/impls/mistral.py,sha256=I_HTwXqAoQi2xyw_nLTeUamtOZLLl-
129
162
  ommlds/minichain/backends/impls/sqlite.py,sha256=NOFm_fgr-OZ8mo7etj0zwvxsDnidRwKzhdDom58e6ks,2157
130
163
  ommlds/minichain/backends/impls/anthropic/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
131
164
  ommlds/minichain/backends/impls/anthropic/chat.py,sha256=S1Z1v4Wl7YEcdDj-XmCLaZ4d7tn3k10f59O-m34IPOg,6554
132
- ommlds/minichain/backends/impls/anthropic/names.py,sha256=pqZcPl8Wxf6DHAS9h2jlXTMmCtlAISG-LDFYjgM9JPI,1157
165
+ ommlds/minichain/backends/impls/anthropic/names.py,sha256=GPPeYt0CcDcDCR8I6BMd7bMjC_Zk_bjnLLpF9ClwXcg,1099
133
166
  ommlds/minichain/backends/impls/anthropic/stream.py,sha256=znEBkTn3Yh8KjV3xVDIaUcbs-_PTAeabJSKBSnzsSYQ,7825
134
167
  ommlds/minichain/backends/impls/duckduckgo/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
135
168
  ommlds/minichain/backends/impls/duckduckgo/search.py,sha256=igzeU9P9b1MMiu4KAJVS9H6KLIoPm68wXi4Kx3_DHyQ,940
@@ -325,9 +358,9 @@ ommlds/wiki/utils/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU
325
358
  ommlds/wiki/utils/io.py,sha256=UKgDJGtmpnWvIqVd2mJc2QNPOqlToEY1GEveNp6_pMo,7088
326
359
  ommlds/wiki/utils/progress.py,sha256=EhvKcMFYtsarCQhIahlO6f0SboyAKP3UwUyrnVnP-Vk,3222
327
360
  ommlds/wiki/utils/xml.py,sha256=vVV8Ctn13aaRM9eYfs9Wd6rHn5WOCEUzQ44fIhOvJdg,3754
328
- ommlds-0.0.0.dev461.dist-info/licenses/LICENSE,sha256=B_hVtavaA8zCYDW99DYdcpDLKz1n3BBRjZrcbv8uG8c,1451
329
- ommlds-0.0.0.dev461.dist-info/METADATA,sha256=ictJNO5iWFoU9TN6EDbf_r6HMeWvbLYsr-n0zf7-cSg,3224
330
- ommlds-0.0.0.dev461.dist-info/WHEEL,sha256=_zCd3N1l69ArxyTb8rzEoP9TpbYXkqRFSNOD5OuxnTs,91
331
- ommlds-0.0.0.dev461.dist-info/entry_points.txt,sha256=Z5YWtX7ClfiCKdW-dd_CSVvM0h4yQpJPi-2G3q6gNFo,35
332
- ommlds-0.0.0.dev461.dist-info/top_level.txt,sha256=Rbnk5d5wi58vnAXx13WFZqdQ4VX8hBCS2hEL3WeXOhY,7
333
- ommlds-0.0.0.dev461.dist-info/RECORD,,
361
+ ommlds-0.0.0.dev463.dist-info/licenses/LICENSE,sha256=B_hVtavaA8zCYDW99DYdcpDLKz1n3BBRjZrcbv8uG8c,1451
362
+ ommlds-0.0.0.dev463.dist-info/METADATA,sha256=mIhlH46UdhPuSfHGwghj8EAqxLWoSPCUtCgtHlCSleQ,3224
363
+ ommlds-0.0.0.dev463.dist-info/WHEEL,sha256=_zCd3N1l69ArxyTb8rzEoP9TpbYXkqRFSNOD5OuxnTs,91
364
+ ommlds-0.0.0.dev463.dist-info/entry_points.txt,sha256=Z5YWtX7ClfiCKdW-dd_CSVvM0h4yQpJPi-2G3q6gNFo,35
365
+ ommlds-0.0.0.dev463.dist-info/top_level.txt,sha256=Rbnk5d5wi58vnAXx13WFZqdQ4VX8hBCS2hEL3WeXOhY,7
366
+ ommlds-0.0.0.dev463.dist-info/RECORD,,