kash-shell 0.3.10__py3-none-any.whl → 0.3.12__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.
- kash/actions/core/format_markdown_template.py +2 -5
- kash/actions/core/markdownify.py +2 -4
- kash/actions/core/readability.py +2 -4
- kash/actions/core/render_as_html.py +30 -11
- kash/actions/core/show_webpage.py +6 -11
- kash/actions/core/strip_html.py +4 -8
- kash/actions/core/{webpage_config.py → tabbed_webpage_config.py} +5 -3
- kash/actions/core/{webpage_generate.py → tabbed_webpage_generate.py} +5 -4
- kash/commands/base/basic_file_commands.py +21 -3
- kash/commands/base/files_command.py +29 -10
- kash/commands/extras/parse_uv_lock.py +12 -3
- kash/commands/workspace/selection_commands.py +1 -1
- kash/commands/workspace/workspace_commands.py +2 -3
- kash/config/colors.py +2 -2
- kash/config/env_settings.py +2 -42
- kash/config/logger.py +30 -25
- kash/config/logger_basic.py +6 -6
- kash/config/settings.py +23 -7
- kash/config/setup.py +33 -5
- kash/config/text_styles.py +25 -22
- kash/embeddings/cosine.py +12 -4
- kash/embeddings/embeddings.py +16 -6
- kash/embeddings/text_similarity.py +10 -4
- kash/exec/__init__.py +3 -0
- kash/exec/action_decorators.py +10 -25
- kash/exec/action_exec.py +43 -23
- kash/exec/llm_transforms.py +6 -3
- kash/exec/preconditions.py +10 -12
- kash/exec/resolve_args.py +4 -0
- kash/exec/runtime_settings.py +134 -0
- kash/exec/shell_callable_action.py +5 -3
- kash/file_storage/file_store.py +37 -38
- kash/file_storage/item_file_format.py +6 -3
- kash/file_storage/store_filenames.py +6 -3
- kash/help/function_param_info.py +1 -1
- kash/llm_utils/init_litellm.py +16 -0
- kash/llm_utils/llm_api_keys.py +6 -2
- kash/llm_utils/llm_completion.py +11 -4
- kash/local_server/local_server_routes.py +1 -7
- kash/mcp/mcp_cli.py +3 -2
- kash/mcp/mcp_server_routes.py +11 -12
- kash/media_base/transcription_deepgram.py +15 -2
- kash/model/__init__.py +1 -1
- kash/model/actions_model.py +6 -54
- kash/model/exec_model.py +79 -0
- kash/model/items_model.py +102 -35
- kash/model/operations_model.py +38 -15
- kash/model/paths_model.py +2 -0
- kash/shell/output/shell_output.py +10 -8
- kash/shell/shell_main.py +2 -2
- kash/shell/utils/exception_printing.py +2 -2
- kash/shell/utils/shell_function_wrapper.py +15 -15
- kash/text_handling/doc_normalization.py +16 -8
- kash/text_handling/markdown_render.py +1 -0
- kash/text_handling/markdown_utils.py +105 -2
- kash/utils/common/format_utils.py +2 -8
- kash/utils/common/function_inspect.py +360 -110
- kash/utils/common/inflection.py +22 -0
- kash/utils/common/task_stack.py +4 -15
- kash/utils/errors.py +14 -9
- kash/utils/file_utils/file_ext.py +4 -0
- kash/utils/file_utils/file_formats_model.py +32 -1
- kash/utils/file_utils/file_sort_filter.py +10 -3
- kash/web_gen/__init__.py +0 -4
- kash/web_gen/simple_webpage.py +52 -0
- kash/web_gen/tabbed_webpage.py +23 -16
- kash/web_gen/template_render.py +37 -2
- kash/web_gen/templates/base_styles.css.jinja +84 -59
- kash/web_gen/templates/base_webpage.html.jinja +85 -67
- kash/web_gen/templates/item_view.html.jinja +47 -37
- kash/web_gen/templates/simple_webpage.html.jinja +24 -0
- kash/web_gen/templates/tabbed_webpage.html.jinja +42 -32
- kash/workspaces/__init__.py +12 -3
- kash/workspaces/workspace_dirs.py +58 -0
- kash/workspaces/workspace_importing.py +1 -1
- kash/workspaces/workspaces.py +26 -90
- {kash_shell-0.3.10.dist-info → kash_shell-0.3.12.dist-info}/METADATA +7 -7
- {kash_shell-0.3.10.dist-info → kash_shell-0.3.12.dist-info}/RECORD +81 -76
- kash/shell/utils/argparse_utils.py +0 -20
- kash/utils/lang_utils/inflection.py +0 -18
- {kash_shell-0.3.10.dist-info → kash_shell-0.3.12.dist-info}/WHEEL +0 -0
- {kash_shell-0.3.10.dist-info → kash_shell-0.3.12.dist-info}/entry_points.txt +0 -0
- {kash_shell-0.3.10.dist-info → kash_shell-0.3.12.dist-info}/licenses/LICENSE +0 -0
kash/workspaces/workspaces.py
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import
|
|
2
|
-
|
|
1
|
+
from __future__ import annotations
|
|
2
|
+
|
|
3
3
|
from abc import ABC, abstractmethod
|
|
4
4
|
from functools import cache
|
|
5
5
|
from pathlib import Path
|
|
@@ -13,10 +13,13 @@ from kash.config.settings import (
|
|
|
13
13
|
global_settings,
|
|
14
14
|
resolve_and_create_dirs,
|
|
15
15
|
)
|
|
16
|
+
from kash.config.text_styles import STYLE_HINT
|
|
16
17
|
from kash.file_storage.metadata_dirs import MetadataDirs
|
|
17
18
|
from kash.model.params_model import GLOBAL_PARAMS, RawParamValues
|
|
19
|
+
from kash.shell.output.shell_output import PrintHooks, cprint
|
|
18
20
|
from kash.utils.errors import FileNotFound, InvalidInput, InvalidState
|
|
19
21
|
from kash.utils.file_utils.ignore_files import IgnoreFilter, is_ignored_default
|
|
22
|
+
from kash.workspaces.workspace_dirs import check_strict_workspace_name, is_global_ws_dir, is_ws_dir
|
|
20
23
|
from kash.workspaces.workspace_registry import WorkspaceInfo, get_ws_registry
|
|
21
24
|
|
|
22
25
|
if TYPE_CHECKING:
|
|
@@ -25,19 +28,6 @@ if TYPE_CHECKING:
|
|
|
25
28
|
log = get_logger(__name__)
|
|
26
29
|
|
|
27
30
|
|
|
28
|
-
def normalize_workspace_name(ws_name: str) -> str:
|
|
29
|
-
return str(ws_name).strip().rstrip("/")
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
def check_strict_workspace_name(ws_name: str) -> str:
|
|
33
|
-
ws_name = normalize_workspace_name(ws_name)
|
|
34
|
-
if not re.match(r"^[\w.-]+$", ws_name):
|
|
35
|
-
raise InvalidInput(
|
|
36
|
-
f"Use an alphanumeric name (- and . also allowed) for the workspace name: `{ws_name}`"
|
|
37
|
-
)
|
|
38
|
-
return ws_name
|
|
39
|
-
|
|
40
|
-
|
|
41
31
|
class Workspace(ABC):
|
|
42
32
|
"""
|
|
43
33
|
A workspace is the context for actions and is tied to a folder on disk.
|
|
@@ -59,50 +49,6 @@ class Workspace(ABC):
|
|
|
59
49
|
def base_dir(self) -> Path:
|
|
60
50
|
"""The base directory for this workspace."""
|
|
61
51
|
|
|
62
|
-
def __enter__(self):
|
|
63
|
-
"""
|
|
64
|
-
Context manager to set this workspace as the current workspace.
|
|
65
|
-
"""
|
|
66
|
-
from kash.workspaces.workspaces import current_ws_context
|
|
67
|
-
|
|
68
|
-
self._token = current_ws_context.set(self.base_dir)
|
|
69
|
-
return self
|
|
70
|
-
|
|
71
|
-
def __exit__(self, exc_type, exc_val, exc_tb):
|
|
72
|
-
"""
|
|
73
|
-
Restore the previous workspace context.
|
|
74
|
-
"""
|
|
75
|
-
from kash.workspaces.workspaces import current_ws_context
|
|
76
|
-
|
|
77
|
-
current_ws_context.reset(self._token)
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
current_ws_context: contextvars.ContextVar[Path | None] = contextvars.ContextVar(
|
|
81
|
-
"current_ws_context", default=None
|
|
82
|
-
)
|
|
83
|
-
"""
|
|
84
|
-
Context variable that tracks the current workspace. Only used if it is
|
|
85
|
-
explicitly set with a `with ws.as_current()` block.
|
|
86
|
-
"""
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
def is_ws_dir(path: Path) -> bool:
|
|
90
|
-
dirs = MetadataDirs(path, False)
|
|
91
|
-
return dirs.is_initialized()
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
def enclosing_ws_dir(path: Path) -> Path | None:
|
|
95
|
-
"""
|
|
96
|
-
Get the workspace directory enclosing the given path (itself or a parent or None).
|
|
97
|
-
"""
|
|
98
|
-
path = path.absolute()
|
|
99
|
-
while path != Path("/"):
|
|
100
|
-
if is_ws_dir(path):
|
|
101
|
-
return path
|
|
102
|
-
path = path.parent
|
|
103
|
-
|
|
104
|
-
return None
|
|
105
|
-
|
|
106
52
|
|
|
107
53
|
def resolve_ws(name: str | Path) -> WorkspaceInfo:
|
|
108
54
|
"""
|
|
@@ -137,10 +83,10 @@ def resolve_ws(name: str | Path) -> WorkspaceInfo:
|
|
|
137
83
|
|
|
138
84
|
ws_name = check_strict_workspace_name(resolved.name)
|
|
139
85
|
|
|
140
|
-
return WorkspaceInfo(ws_name, resolved,
|
|
86
|
+
return WorkspaceInfo(ws_name, resolved, is_global_ws_dir(resolved))
|
|
141
87
|
|
|
142
88
|
|
|
143
|
-
def get_ws(name_or_path: str | Path, auto_init: bool = True) ->
|
|
89
|
+
def get_ws(name_or_path: str | Path, auto_init: bool = True) -> FileStore:
|
|
144
90
|
"""
|
|
145
91
|
Get a workspace by name or path. Adds to the in-memory registry so we reuse it.
|
|
146
92
|
With `auto_init` true, will initialize the workspace if it is not already initialized.
|
|
@@ -162,18 +108,14 @@ def global_ws_dir() -> Path:
|
|
|
162
108
|
return kb_path
|
|
163
109
|
|
|
164
110
|
|
|
165
|
-
def
|
|
166
|
-
return path.name.lower() == GLOBAL_WS_NAME.lower()
|
|
167
|
-
|
|
168
|
-
|
|
169
|
-
def get_global_ws() -> "FileStore":
|
|
111
|
+
def get_global_ws() -> FileStore:
|
|
170
112
|
"""
|
|
171
113
|
Get the global_ws workspace.
|
|
172
114
|
"""
|
|
173
115
|
return get_ws_registry().load(GLOBAL_WS_NAME, global_ws_dir(), True)
|
|
174
116
|
|
|
175
117
|
|
|
176
|
-
def
|
|
118
|
+
def _switch_ws_settings(base_dir: Path) -> FileStore:
|
|
177
119
|
"""
|
|
178
120
|
Switch the current workspace to the given directory.
|
|
179
121
|
Updates logging and cache directories to be within that workspace.
|
|
@@ -199,41 +141,35 @@ def switch_to_ws(base_dir: Path) -> "FileStore":
|
|
|
199
141
|
return get_ws_registry().load(info.name, info.base_dir, info.is_global_ws)
|
|
200
142
|
|
|
201
143
|
|
|
202
|
-
def
|
|
203
|
-
"""
|
|
204
|
-
Infer the current workspace from context or the current working directory.
|
|
205
|
-
Does not load the workspace.
|
|
206
|
-
"""
|
|
207
|
-
# First check if we have an explicit workspace context.
|
|
208
|
-
override_dir = current_ws_context.get()
|
|
209
|
-
if override_dir:
|
|
210
|
-
return override_dir, is_global_ws_path(override_dir)
|
|
211
|
-
|
|
212
|
-
# Fall back to detecting from the current working directory.
|
|
213
|
-
dir = enclosing_ws_dir(Path("."))
|
|
214
|
-
is_global_ws = is_global_ws_path(dir) if dir else False
|
|
215
|
-
if not dir or is_global_ws:
|
|
216
|
-
dir = global_ws_dir()
|
|
217
|
-
return dir, is_global_ws
|
|
218
|
-
|
|
219
|
-
|
|
220
|
-
def current_ws(silent: bool = False) -> "FileStore":
|
|
144
|
+
def current_ws(silent: bool = False) -> FileStore:
|
|
221
145
|
"""
|
|
222
146
|
Get the current workspace based on the current working directory.
|
|
223
147
|
Loads and registers the workspace if it is not already loaded.
|
|
224
|
-
|
|
148
|
+
|
|
149
|
+
As a convenience, this call also auto-updates logging and cache directories
|
|
150
|
+
if this has changed.
|
|
225
151
|
"""
|
|
226
|
-
|
|
152
|
+
from kash.exec.runtime_settings import current_ws_context
|
|
153
|
+
|
|
154
|
+
ws_context = current_ws_context()
|
|
155
|
+
base_dir = ws_context.current_ws_dir
|
|
227
156
|
if not base_dir:
|
|
228
157
|
raise InvalidState(
|
|
229
158
|
f"No workspace found in: {fmt_path(Path('.').absolute(), resolve=False)}\n"
|
|
230
159
|
"Create one with the `workspace` command."
|
|
231
160
|
)
|
|
232
161
|
|
|
233
|
-
ws =
|
|
162
|
+
ws = _switch_ws_settings(base_dir)
|
|
234
163
|
|
|
235
164
|
if not silent:
|
|
236
|
-
ws.log_workspace_info(once=True)
|
|
165
|
+
did_log = ws.log_workspace_info(once=True)
|
|
166
|
+
if did_log and ws.is_global_ws and not ws_context.override_dir:
|
|
167
|
+
PrintHooks.spacer()
|
|
168
|
+
log.warning("Note you are currently using the default global workspace.")
|
|
169
|
+
cprint(
|
|
170
|
+
"Create or switch to another workspace with the `workspace` command.",
|
|
171
|
+
style=STYLE_HINT,
|
|
172
|
+
)
|
|
237
173
|
|
|
238
174
|
return ws
|
|
239
175
|
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: kash-shell
|
|
3
|
-
Version: 0.3.
|
|
3
|
+
Version: 0.3.12
|
|
4
4
|
Summary: The knowledge agent shell (core)
|
|
5
5
|
Project-URL: Repository, https://github.com/jlevy/kash-shell
|
|
6
6
|
Author-email: Joshua Levy <joshua@cal.berkeley.edu>
|
|
@@ -20,30 +20,30 @@ Requires-Dist: anyio>=4.8.0
|
|
|
20
20
|
Requires-Dist: audioop-lts>=0.2.1; python_version >= '3.13'
|
|
21
21
|
Requires-Dist: cachetools>=5.5.2
|
|
22
22
|
Requires-Dist: chopdiff>=0.2.1
|
|
23
|
-
Requires-Dist: clideps>=0.1.
|
|
23
|
+
Requires-Dist: clideps>=0.1.4
|
|
24
24
|
Requires-Dist: colour>=0.1.5
|
|
25
25
|
Requires-Dist: cssselect>=1.2.0
|
|
26
26
|
Requires-Dist: deepgram-sdk>=3.10.1
|
|
27
27
|
Requires-Dist: dunamai>=1.23.0
|
|
28
28
|
Requires-Dist: fastapi>=0.115.11
|
|
29
|
-
Requires-Dist: flowmark>=0.4.
|
|
29
|
+
Requires-Dist: flowmark>=0.4.6
|
|
30
30
|
Requires-Dist: frontmatter-format>=0.2.1
|
|
31
31
|
Requires-Dist: funlog>=0.2.0
|
|
32
32
|
Requires-Dist: humanfriendly>=10.0
|
|
33
|
-
Requires-Dist: inflect>=7.5.0
|
|
34
33
|
Requires-Dist: inquirerpy>=0.3.4
|
|
35
34
|
Requires-Dist: jinja2>=3.1.6
|
|
36
35
|
Requires-Dist: justext>=3.0.2
|
|
37
36
|
Requires-Dist: lazyasd>=0.1.4
|
|
38
37
|
Requires-Dist: litellm>=1.63.11
|
|
39
|
-
Requires-Dist: markdownify>=0.
|
|
38
|
+
Requires-Dist: markdownify>=0.13.1
|
|
40
39
|
Requires-Dist: mcp-proxy>=0.5.0
|
|
41
40
|
Requires-Dist: mcp>=1.6.0
|
|
42
41
|
Requires-Dist: openai>=1.66.3
|
|
43
42
|
Requires-Dist: pandas>=2.2.3
|
|
44
43
|
Requires-Dist: patch-ng>=1.18.1
|
|
45
44
|
Requires-Dist: pathspec>=0.12.1
|
|
46
|
-
Requires-Dist:
|
|
45
|
+
Requires-Dist: pluralizer>=1.2.0
|
|
46
|
+
Requires-Dist: prettyfmt>=0.3.1
|
|
47
47
|
Requires-Dist: prompt-toolkit>=3.0.50
|
|
48
48
|
Requires-Dist: pydantic>=2.10.6
|
|
49
49
|
Requires-Dist: pydub>=0.25.1
|
|
@@ -59,7 +59,7 @@ Requires-Dist: rich>=14.0.0
|
|
|
59
59
|
Requires-Dist: ripgrepy>=2.1.0
|
|
60
60
|
Requires-Dist: send2trash>=1.8.3
|
|
61
61
|
Requires-Dist: setproctitle>=1.3.5
|
|
62
|
-
Requires-Dist: strif>=3.0.
|
|
62
|
+
Requires-Dist: strif>=3.0.1
|
|
63
63
|
Requires-Dist: tenacity>=9.0.0
|
|
64
64
|
Requires-Dist: thefuzz>=0.22.1
|
|
65
65
|
Requires-Dist: tiktoken>=0.9.0
|
|
@@ -3,52 +3,52 @@ kash/__main__.py,sha256=83JiHvCNK7BAwEkaTD0kVekj7PEMucvCyquSl4p-1QA,78
|
|
|
3
3
|
kash/actions/__init__.py,sha256=a4pQw8O-Y3q5N4Qg2jUV0xEZLX6d164FQhZ6zizY9fE,1357
|
|
4
4
|
kash/actions/core/assistant_chat.py,sha256=28G20cSr7Z94cltouTPve5TXY3km0lACrRvpLE27fK8,1837
|
|
5
5
|
kash/actions/core/chat.py,sha256=yCannBFa0cSpR_in-XSSuMm1x2ZZQUCKmlqzhsUfpOo,2696
|
|
6
|
-
kash/actions/core/format_markdown_template.py,sha256=
|
|
7
|
-
kash/actions/core/markdownify.py,sha256=
|
|
8
|
-
kash/actions/core/readability.py,sha256=
|
|
9
|
-
kash/actions/core/render_as_html.py,sha256=
|
|
10
|
-
kash/actions/core/show_webpage.py,sha256=
|
|
11
|
-
kash/actions/core/strip_html.py,sha256=
|
|
6
|
+
kash/actions/core/format_markdown_template.py,sha256=ZJbtyTSypPo2ewLiGRSyIpVf711vQMhI_-Ng-FgCs80,2991
|
|
7
|
+
kash/actions/core/markdownify.py,sha256=3WO940dQGr_5M_Z3QuJHhfPhqr1FyasMY8Vz8LJ3JVE,1140
|
|
8
|
+
kash/actions/core/readability.py,sha256=6BoiQrlc8c4REGCOehmKyhhhf2M-pzGhl8VeUS4G0u0,969
|
|
9
|
+
kash/actions/core/render_as_html.py,sha256=YbXZ9idT12fHoK5D-IXyECUB3-pwvODs65ljUTfA1VA,1794
|
|
10
|
+
kash/actions/core/show_webpage.py,sha256=052HG80kSBP98qITp0gfKJ0G4PxGGS0o0N-L64JxWP0,889
|
|
11
|
+
kash/actions/core/strip_html.py,sha256=FDLN_4CKB11q5cU4NixTf7PGrAq92AjQNbKAdvQDwCY,849
|
|
12
12
|
kash/actions/core/summarize_as_bullets.py,sha256=Zwr8lNzL77pwpnW_289LQjNBijNDpTPANfFdOJA-PZ4,2070
|
|
13
|
-
kash/actions/core/
|
|
14
|
-
kash/actions/core/
|
|
13
|
+
kash/actions/core/tabbed_webpage_config.py,sha256=rIbzEhBTmnkbSiRZC-Rj46T1J6c0jOztiKE9Usa4nsc,980
|
|
14
|
+
kash/actions/core/tabbed_webpage_generate.py,sha256=_w_4LsgDqNnVvtX6Y4Txq56HAwEVMAY7RooWB29Okdk,954
|
|
15
15
|
kash/actions/meta/write_instructions.py,sha256=zeKKX-Yi8jSyjvZ4Ii_4MNBRtM2MENuHyrD0Vxsaos8,1277
|
|
16
16
|
kash/actions/meta/write_new_action.py,sha256=w7SJZ2FjzRbKwqKX9PeozUrh8cNJAumX7F80wW7dQts,6356
|
|
17
17
|
kash/commands/__init__.py,sha256=MhdPSluWGE3XVQ7LSv2L8_aAxaey8CLjQBjGC9B4nRM,191
|
|
18
|
-
kash/commands/base/basic_file_commands.py,sha256=
|
|
18
|
+
kash/commands/base/basic_file_commands.py,sha256=5jvyEVK6JruCXt3w0h1kF8BCjoKbaDt9psVtHngpOdA,6982
|
|
19
19
|
kash/commands/base/browser_commands.py,sha256=iYvpW4D_tlhW_p0cq3A6YO9UGCdHtvzIQiNMDwCY07A,1574
|
|
20
20
|
kash/commands/base/debug_commands.py,sha256=9I5W3SMQvsnpcs-b6CJCYu1Ydl6gIoTUcDZxvn1dN3g,7643
|
|
21
21
|
kash/commands/base/diff_commands.py,sha256=U2geK6TLji9hnSfKW1DDGICaawm9p6Ht_Way6W_34AY,3446
|
|
22
|
-
kash/commands/base/files_command.py,sha256=
|
|
22
|
+
kash/commands/base/files_command.py,sha256=KZjlBSJ3_e2YazZFMGr2ybAdsp5bcf9JBj3_3CHaRyc,16768
|
|
23
23
|
kash/commands/base/general_commands.py,sha256=KaCbzk7o-ejwXE_H3PB3MrN00uTinP3T8uHKYrGPrIw,6946
|
|
24
24
|
kash/commands/base/logs_commands.py,sha256=IyNgxaAoa5LlS-VxD_x8bXTVbD04pT8qEHlIJNM09UU,2963
|
|
25
25
|
kash/commands/base/model_commands.py,sha256=d17a2NvfDbwV1y8gyZVsOtX-j5H5we5OEXM9TxTqvBs,1790
|
|
26
26
|
kash/commands/base/reformat_command.py,sha256=C4EJz4DRrNon8TLgzlUeR64iLIdorGwx2nRGviI8zxs,1863
|
|
27
27
|
kash/commands/base/search_command.py,sha256=FXtP09HmmfHRrjenvmU4j0Lcw34piIzdI3UFGbUQ1tg,2201
|
|
28
28
|
kash/commands/base/show_command.py,sha256=J0zw8gBcDQJ0nI47EkrGY9VfNFb_thQXcxNCele9av8,2895
|
|
29
|
-
kash/commands/extras/parse_uv_lock.py,sha256=
|
|
29
|
+
kash/commands/extras/parse_uv_lock.py,sha256=HVqmGhJAd3ZCTTTaXe_nzzTMFKhwjLLP7hx4NTM224U,5696
|
|
30
30
|
kash/commands/extras/utils_commands.py,sha256=rz3N7VxoUHvCxksRt-sLubkvyW-VH9OTltLEMEnjRfU,769
|
|
31
31
|
kash/commands/help/assistant_commands.py,sha256=BhGhtyoiEbu6xYfi-r47g_U4pxptUkucyNmiv5_kg34,3042
|
|
32
32
|
kash/commands/help/doc_commands.py,sha256=7lKR7mzue2N7pSkNqblpFJy892fS5N6jWVOHqeXziHw,2466
|
|
33
33
|
kash/commands/help/help_commands.py,sha256=eJTpIhXck123PAUq2k-D3Q6UL6IQ8atOVYurLi2GD0A,4229
|
|
34
34
|
kash/commands/help/logo.py,sha256=W8SUach9FjoTqpHZwTGS582ry4ZluxbBp86ZCiAtDkY,3505
|
|
35
35
|
kash/commands/help/welcome.py,sha256=F4QBgj3e1dM9Pf0H4TSzCrkVfXQVKUIl0b6Qmofbdo4,905
|
|
36
|
-
kash/commands/workspace/selection_commands.py,sha256=
|
|
37
|
-
kash/commands/workspace/workspace_commands.py,sha256=
|
|
36
|
+
kash/commands/workspace/selection_commands.py,sha256=JyQMLXKydn_vvlNrltHNXfQtMjDEc_x3K96d12ZLt4s,7447
|
|
37
|
+
kash/commands/workspace/workspace_commands.py,sha256=ktNDRbOD0ZIJVb3Zfj1KMQQvMXTxTaNRUylJ9hLk9nU,22646
|
|
38
38
|
kash/config/__init__.py,sha256=ytly9Typ1mWV4CXfV9G3CIPtPQ02u2rpZ304L3GlFro,148
|
|
39
39
|
kash/config/capture_output.py,sha256=ud3uUVNuDicHj3mI_nBUBO-VmOrxtBdA3z-I3D1lSCU,2398
|
|
40
|
-
kash/config/colors.py,sha256=
|
|
41
|
-
kash/config/env_settings.py,sha256=
|
|
40
|
+
kash/config/colors.py,sha256=6lqrB2RQYF2OLw-njfOqVHO9Bwiq7bW6K1ROCOAd1EM,9949
|
|
41
|
+
kash/config/env_settings.py,sha256=uhCdfs9-TzJ15SzbuIQP1yIORaLUqYXCxh9qq_Z8cJc,996
|
|
42
42
|
kash/config/init.py,sha256=aE4sZ6DggBmmoZEx9C5mQKrEbcDiswX--HF7pfCFKzc,526
|
|
43
43
|
kash/config/lazy_imports.py,sha256=MCZXLnKvNyfHi0k7MU5rNwcdJtUF28naCixuogsAOAA,805
|
|
44
|
-
kash/config/logger.py,sha256=
|
|
45
|
-
kash/config/logger_basic.py,sha256=
|
|
44
|
+
kash/config/logger.py,sha256=VHsHb9Llp9Z3QmPqh4x42IaZs8pyQqfWT3pWvxY7x8o,11923
|
|
45
|
+
kash/config/logger_basic.py,sha256=Gsxitz7xeMGCUr5qjWK6y72qeMsIz4mcDZP5xyzK0WU,1598
|
|
46
46
|
kash/config/logo.txt,sha256=P4RO1cJ9HRF1BavTp3Kae9iByDNhzhEC-qLAa6ww1RA,217
|
|
47
47
|
kash/config/server_config.py,sha256=eQ1yxDk031QI0Efp0I1VetqQd9wG7MrLVBCHFm4gp2g,1790
|
|
48
|
-
kash/config/settings.py,sha256=
|
|
49
|
-
kash/config/setup.py,sha256=
|
|
48
|
+
kash/config/settings.py,sha256=P3g0RSR6vrvfovDDYOIx6Hxafrg1mYTAxrTiVgH2Tm4,8889
|
|
49
|
+
kash/config/setup.py,sha256=zFxfTPG1cbsozuwUkIyAYebxuHhpYCiaexHnYnYJG1c,3524
|
|
50
50
|
kash/config/suppress_warnings.py,sha256=yty5ZodMLIpmjphRtcVmRamXfiWbyfga9annve6qxb0,1475
|
|
51
|
-
kash/config/text_styles.py,sha256=
|
|
51
|
+
kash/config/text_styles.py,sha256=R9jHvupnC_ln3-wWksYLQXWZZBJCazr3ru8WyDsL6UA,13790
|
|
52
52
|
kash/docs/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
53
53
|
kash/docs/all_docs.py,sha256=NutfgU8VOA7_K2HX18FoOHVvvLL14dALoCxK9qDbQ04,3157
|
|
54
54
|
kash/docs/load_actions_info.py,sha256=D9uv8gdBtkBmdbFZeyIigsupPF9_WfidHVwWQrlggI0,937
|
|
@@ -77,12 +77,12 @@ kash/docs_base/load_recipe_snippets.py,sha256=nGw4xlbfsKdR6ZngBBGBeRHBwfSPpI_gnJ
|
|
|
77
77
|
kash/docs_base/recipes/general_system_commands.sh,sha256=rFNPuLj3Md09L5yzWx6ILjaR-mFROSlL1cmpWiyJ9WQ,208
|
|
78
78
|
kash/docs_base/recipes/python_dev_commands.sh,sha256=9vJsQiDZKJ7ShokFnzc2Jsto6n87MNRkbgcc2Ee9Kro,179
|
|
79
79
|
kash/docs_base/recipes/tldr_standard_commands.sh,sha256=7nPES55aT45HF3eDhQRrEUiWRpPdvvp40Sg88uADa80,60491
|
|
80
|
-
kash/embeddings/cosine.py,sha256=
|
|
81
|
-
kash/embeddings/embeddings.py,sha256=
|
|
82
|
-
kash/embeddings/text_similarity.py,sha256=
|
|
83
|
-
kash/exec/__init__.py,sha256=
|
|
84
|
-
kash/exec/action_decorators.py,sha256=
|
|
85
|
-
kash/exec/action_exec.py,sha256=
|
|
80
|
+
kash/embeddings/cosine.py,sha256=QTWPWUHivXjxCM6APSqij_-4mywM2BVVm0xb0hu7FHA,1587
|
|
81
|
+
kash/embeddings/embeddings.py,sha256=v6RmrEHsx5PuE3fPrY15RK4fgW0K_VlNWDTjCVr11zY,4451
|
|
82
|
+
kash/embeddings/text_similarity.py,sha256=BOo9Vcs5oi2Zs5La56uTkPMHo65XSd4qz_yr6GTfUA4,1924
|
|
83
|
+
kash/exec/__init__.py,sha256=rdSsKzTaXfSZmD5JvmUSSwmpfvl-moNv9PUgtE_WUpQ,1148
|
|
84
|
+
kash/exec/action_decorators.py,sha256=VOSCnFiev2_DuFoSk0i_moejwM4wJ1j6QfsQd93uetI,16480
|
|
85
|
+
kash/exec/action_exec.py,sha256=_NVf4Il_lntGtRosDmZdRHxLL0QPmlr3_x6MpuVID2Q,18567
|
|
86
86
|
kash/exec/action_registry.py,sha256=numU9pH_W5RgIrYmfi0iYMYy_kLJl6vup8PMrhxAfdc,2627
|
|
87
87
|
kash/exec/combiners.py,sha256=AJ6wgPUHsmwanObsUw64B83XzU26yuh5t4l7igLn82I,4291
|
|
88
88
|
kash/exec/command_exec.py,sha256=zc-gWm7kyB5J5Kp8xhULQ9Jj9AL927KkDPXXk-Yr1Bw,1292
|
|
@@ -90,30 +90,31 @@ kash/exec/command_registry.py,sha256=1s2ogU8b8nqK_AEtslbr1eYrXCGDkeT30UrB7L0BRoM
|
|
|
90
90
|
kash/exec/fetch_url_metadata.py,sha256=mgS4zwPw0HAVYIroTeKN_whMyoVE2DUDN_W6ylO3gVw,2656
|
|
91
91
|
kash/exec/history.py,sha256=l2XwHGBR1UgTGSFPSBE9mltmxvjR_5qFFO6d-Z008nc,1208
|
|
92
92
|
kash/exec/importing.py,sha256=i1utrbqpn8MKfCQ06vavka_cjNaYRHaWnsy0ygNRbxI,1825
|
|
93
|
-
kash/exec/llm_transforms.py,sha256=
|
|
93
|
+
kash/exec/llm_transforms.py,sha256=nr_9C0aW6-EL9LvZIr7nG040js9W1BOiR4FyTg94WSc,4372
|
|
94
94
|
kash/exec/precondition_checks.py,sha256=HymxL7qm4Yz8V76Um5pKdIRnQ2N-p9rpQQi1fI38bNA,2139
|
|
95
95
|
kash/exec/precondition_registry.py,sha256=cmp0mUfLS42AbAByDhwGx8GWz9PuZNR7z5rPZW9WQE4,1244
|
|
96
|
-
kash/exec/preconditions.py,sha256=
|
|
97
|
-
kash/exec/resolve_args.py,sha256=
|
|
98
|
-
kash/exec/
|
|
96
|
+
kash/exec/preconditions.py,sha256=Ar37VJgPRQR1nh5y_SRqDRa2dI0D4rJYcO92oWHeSzo,4333
|
|
97
|
+
kash/exec/resolve_args.py,sha256=yGU6Jjzn5yyAN9pNZx8Qfc9oBrosFEdazIs5g9pjWTs,4410
|
|
98
|
+
kash/exec/runtime_settings.py,sha256=aK6nGbZhKSIDVmV6AqV68hQkiaIGWnCiNzHtwwZ5V0w,3960
|
|
99
|
+
kash/exec/shell_callable_action.py,sha256=x-Hs4EqpsZfKEcwhWkhc27HCIfoI91b-DrbG40BLxRY,4350
|
|
99
100
|
kash/exec_model/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
100
101
|
kash/exec_model/args_model.py,sha256=gquOD0msFA-5xhNU-3R5l8wlwyAMefpMHltpxrDlYGQ,2662
|
|
101
102
|
kash/exec_model/commands_model.py,sha256=iM8QhzA0tAas5OwF5liUfHtm45XIH1LcvCviuh3As7s,4923
|
|
102
103
|
kash/exec_model/script_model.py,sha256=1VG3LhkTmlKzHOYouZ92ZpOSKSCcsz3-tHNcFMQF788,5031
|
|
103
104
|
kash/exec_model/shell_model.py,sha256=LUhQivbpXlerM-DUzNY7BtctNBbn08Wto8CSSxQDxRU,568
|
|
104
105
|
kash/file_storage/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
105
|
-
kash/file_storage/file_store.py,sha256=
|
|
106
|
-
kash/file_storage/item_file_format.py,sha256=
|
|
106
|
+
kash/file_storage/file_store.py,sha256=ibIqaNqimfGDH_xN-IBQ1ySAkdbGc5kUI-qZOt4cFsE,26669
|
|
107
|
+
kash/file_storage/item_file_format.py,sha256=GIOAD95hxbhmbsbcClim1YOQUP4Qar1uHL6UtebuyAE,5469
|
|
107
108
|
kash/file_storage/metadata_dirs.py,sha256=9AqO3S3SSY1dtvP2iLX--E4ui0VIzXttG8R040otfyg,3820
|
|
108
109
|
kash/file_storage/persisted_yaml.py,sha256=4-4RkFqdlBUkTOwkdA4vRKUywEE9TaDo13OGaDUyU9M,1309
|
|
109
110
|
kash/file_storage/store_cache_warmer.py,sha256=cQ_KwxkBPWT3lMmYOCTkXgo7CKaGINns2YzIH32ExSU,1013
|
|
110
|
-
kash/file_storage/store_filenames.py,sha256=
|
|
111
|
+
kash/file_storage/store_filenames.py,sha256=YKpeuFEWgT4SgArhhU97NW13YK0TgfY3Ozp1Hm3F9Z8,1738
|
|
111
112
|
kash/help/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
112
113
|
kash/help/assistant.py,sha256=R0XHNi-h51QoQ7rGouD2chrDPGomYaPQUqJdvpjlCs8,11535
|
|
113
114
|
kash/help/assistant_instructions.py,sha256=jW5XAsmLx8YZMKSDJgWnqo9Vwe7VuiTURQHjKBqr_L8,2549
|
|
114
115
|
kash/help/assistant_output.py,sha256=9sM-OVLc6eMSOkxyovB88dNlsknFpf8Wz89Zp5PuEA8,1668
|
|
115
116
|
kash/help/docstring_utils.py,sha256=80vcEGR05G1wwIfzaKhX5QzU38mkKna-gN6_wTNHjXg,3208
|
|
116
|
-
kash/help/function_param_info.py,sha256=
|
|
117
|
+
kash/help/function_param_info.py,sha256=IVi6dtRjAWUCxpy9rZ1fRqKLCciK_kuMybTwCZ9XiYg,1692
|
|
117
118
|
kash/help/help_embeddings.py,sha256=_ca7hPo_2UPwSGnB2k3KbcNU1b_I9OMI4RH2Z2E1PCU,2777
|
|
118
119
|
kash/help/help_lookups.py,sha256=0dtuLWEXncqhJCijC98IA9stBDNNcJewt1JYqMLkTx4,2029
|
|
119
120
|
kash/help/help_pages.py,sha256=XyV3SN1cvGjpS8xAbZ_X_6Z9hTIH7vXdgK8DCX2cwNg,3886
|
|
@@ -124,8 +125,9 @@ kash/help/tldr_help.py,sha256=bcu__MIF4vYlZEeqQqieGIBcRhNCTK5u8jPV08ObzCI,9654
|
|
|
124
125
|
kash/llm_utils/__init__.py,sha256=3yjign7KD-kM3ZBBcgtrZz-zjJ2Yx2Q-9bzknBx5vbU,401
|
|
125
126
|
kash/llm_utils/clean_headings.py,sha256=TGUcPSmUMepTPF5st8b4Jbe9TzZ6HD0Jf_9Nh1SoilA,2330
|
|
126
127
|
kash/llm_utils/fuzzy_parsing.py,sha256=bbG2Y7i5w6kxAVPAixyluv3MDS2hW_pkhnJpVOLHZQc,3278
|
|
127
|
-
kash/llm_utils/
|
|
128
|
-
kash/llm_utils/
|
|
128
|
+
kash/llm_utils/init_litellm.py,sha256=5Fn9uW4P7lfEO8Rk1EJJUzDEGNjw-PDvxFgHlKDf-Ok,409
|
|
129
|
+
kash/llm_utils/llm_api_keys.py,sha256=nTB9wSFfHTOXvqshSQCQGCPxUwOW1U7oslngya8nHkw,1168
|
|
130
|
+
kash/llm_utils/llm_completion.py,sha256=uIw6GEV17KXjOzZDshRO8LQ4faglyOAjY_Ny2D86EVg,5451
|
|
129
131
|
kash/llm_utils/llm_features.py,sha256=NXZ3nvwcsVe0RLj3TtlK9gUu-UWoxdCU6Uw2X2IChrk,1773
|
|
130
132
|
kash/llm_utils/llm_messages.py,sha256=70QwIIvdwo-h4Jfn_6MbEHb3LTUjUmzg_v_dU_Ey__g,1174
|
|
131
133
|
kash/llm_utils/llm_names.py,sha256=VZbdKnoeBx_luB5YQ-Rz37gMt3_FcueJdp40ZaQbpUA,3620
|
|
@@ -133,15 +135,15 @@ kash/llm_utils/llms.py,sha256=Zz45v7qrmBNGnmyF-Mn5Q4F1dZGFT2xf_kmWGUMSUUw,3518
|
|
|
133
135
|
kash/local_server/__init__.py,sha256=kLah74GG0msEARgH6CrilY3OUPuivvx_fXVCqDzDMrc,142
|
|
134
136
|
kash/local_server/local_server.py,sha256=EugjL30VM0pWdZDsiQxU-o6EdEa082qlGd_7RHvI5tk,5863
|
|
135
137
|
kash/local_server/local_server_commands.py,sha256=xJQ1vHVWqkbPwRMw9LwHE8CnKrb8uWeXItI1ruQPx2Y,1584
|
|
136
|
-
kash/local_server/local_server_routes.py,sha256=
|
|
138
|
+
kash/local_server/local_server_routes.py,sha256=SgYB_BQ8SRED_4Wtba6iwl_5y3Yjrn-5s9q3zEPsgC8,10533
|
|
137
139
|
kash/local_server/local_url_formatters.py,sha256=SqHjGMEufvm43n34SCa_8Asdwm7utx91Wwymj15TuSY,5327
|
|
138
140
|
kash/local_server/port_tools.py,sha256=oFfOvO6keqS5GowTpVg2FTu5KqkPHBq-dWAEomUIgGo,2008
|
|
139
141
|
kash/local_server/rich_html_template.py,sha256=O9CnkMYkWuMvKJkqD0P8jaZqfUe6hMP4LXFvcLpwN8Q,196
|
|
140
142
|
kash/mcp/__init__.py,sha256=kLah74GG0msEARgH6CrilY3OUPuivvx_fXVCqDzDMrc,142
|
|
141
|
-
kash/mcp/mcp_cli.py,sha256=
|
|
143
|
+
kash/mcp/mcp_cli.py,sha256=po0BrdAYwrhmzX4X6ro1wT7XOYSZgK3XxgI7BCZRYtA,3841
|
|
142
144
|
kash/mcp/mcp_main.py,sha256=6PhjKwp631mezDTUAd-pL8lUZx9Gl7yCrCQFW61pqJU,3167
|
|
143
145
|
kash/mcp/mcp_server_commands.py,sha256=dPvW6fE5FRQuaK5Gurg9_Mjk-U-sdoQ17tXOm3_Wh6Q,4163
|
|
144
|
-
kash/mcp/mcp_server_routes.py,sha256=
|
|
146
|
+
kash/mcp/mcp_server_routes.py,sha256=radxy5cc0yBmcbqAbB1LpZ0qcNtfDbtS5RTGwvgliDM,10617
|
|
145
147
|
kash/mcp/mcp_server_sse.py,sha256=_D61cRWMuxgMrk-KxhkRLaaXXpgzJJa0sOB3uRxR0XM,5886
|
|
146
148
|
kash/mcp/mcp_server_stdio.py,sha256=u-oeIZKwzIAGlKmBpipC-hfNQKx36Md9hST11y3AZUY,1174
|
|
147
149
|
kash/media_base/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
@@ -150,26 +152,27 @@ kash/media_base/media_cache.py,sha256=0YnZBCPbi12TG0eZoa-02XBoRVZAEmmR6XT8PS-avB
|
|
|
150
152
|
kash/media_base/media_services.py,sha256=7H7Y-WDjvZCidoLCsWi01xfuJoP7uiUklviwN_78crE,3406
|
|
151
153
|
kash/media_base/media_tools.py,sha256=enzSebW41vDBGWUwkEn5udhRHmSBvH01MAt5rY1s388,1466
|
|
152
154
|
kash/media_base/timestamp_citations.py,sha256=IHTvlZD3lIfe8T2uHFitgom82WahdHBeKqyc2OjUi9g,2368
|
|
153
|
-
kash/media_base/transcription_deepgram.py,sha256=
|
|
155
|
+
kash/media_base/transcription_deepgram.py,sha256=yuwqgTPY-d7XnLMTuNDX0PLBxazqOy8osDXEscNOrGo,5308
|
|
154
156
|
kash/media_base/transcription_format.py,sha256=rOVPTpwvW22c27BRwYF-Tc_xzqK_wOtUZpOPlvkHiDY,2344
|
|
155
157
|
kash/media_base/transcription_whisper.py,sha256=GqvroW9kBAH4-gcbYkMgNCfs2MpMIgm1ip3NMWtJ0IE,1169
|
|
156
158
|
kash/media_base/services/local_file_media.py,sha256=-A-tK6XP7XDCqXQIAoohesFZ3OIvpXWsDoktYBvBuNA,5399
|
|
157
|
-
kash/model/__init__.py,sha256=
|
|
158
|
-
kash/model/actions_model.py,sha256=
|
|
159
|
+
kash/model/__init__.py,sha256=kFfBKb5N70NWYUfpRRxn_Sb9p_vXlB6BBaTCqWmSReo,2978
|
|
160
|
+
kash/model/actions_model.py,sha256=f7CBBkhgpbqdRWVoC8VVn8KL-_dGBoiSTz219WKtMZk,21720
|
|
159
161
|
kash/model/assistant_response_model.py,sha256=6eDfC27nyuBDFjv5nCYMa_Qb2mPbKwDzZy7uLOIyskI,2653
|
|
160
162
|
kash/model/compound_actions_model.py,sha256=HiDK5wwCu3WwZYHATZoLEguiqwR9V6V296wiKtGIX8s,6926
|
|
161
163
|
kash/model/concept_model.py,sha256=we2qOcy9Mv1q7XPfkDLp_CyO_-8DwAUfUYlpgy_jrFs,1011
|
|
164
|
+
kash/model/exec_model.py,sha256=IlfvtQyoFRRWhWju7vdXp9J-w_NGcGtL5DhDLy9gRd8,2250
|
|
162
165
|
kash/model/graph_model.py,sha256=jnctrPiBZ0xwAR8D54JMAJPanA1yZdaxSFQoIpe8anA,2662
|
|
163
|
-
kash/model/items_model.py,sha256=
|
|
166
|
+
kash/model/items_model.py,sha256=Qvo7yot4G4rXRtdiO91VIehJUtE488ilbGF_V-zXhWY,33489
|
|
164
167
|
kash/model/language_list.py,sha256=I3RIbxTseVmPdhExQimimEv18Gmy2ImMbpXe0-_t1Qw,450
|
|
165
168
|
kash/model/llm_actions_model.py,sha256=a29uXVNfS2CiqvM7HPdC6H9A23rSQQihAideuBLMH8g,2110
|
|
166
169
|
kash/model/media_model.py,sha256=64Zic4cRjQpgf_-tOuZlZZe59mz_qu0s6OQSU0YlDUI,3357
|
|
167
|
-
kash/model/operations_model.py,sha256=
|
|
170
|
+
kash/model/operations_model.py,sha256=dPgccwh6HwWhag_MkhEfEwByuZamcJEFrvq4w4NtrII,6112
|
|
168
171
|
kash/model/params_model.py,sha256=qGhsGvtDQoSqWkrKk9QZZfEh-jO1q2V-s-p6X-F37_M,14939
|
|
169
|
-
kash/model/paths_model.py,sha256=
|
|
172
|
+
kash/model/paths_model.py,sha256=KDFm7wan7hjObHbnV2rR8-jsyLTVqbKcwFdKeLFRtdM,15889
|
|
170
173
|
kash/model/preconditions_model.py,sha256=-IfsVR0NkQhq_3hUTXzK2bFYAd--3YjSwUiDKHVQQqk,2887
|
|
171
174
|
kash/shell/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
172
|
-
kash/shell/shell_main.py,sha256=
|
|
175
|
+
kash/shell/shell_main.py,sha256=nqbP8NyxtxAwh787YWhpbWelt_ObfIRZzCMK1aaQcmg,2094
|
|
173
176
|
kash/shell/version.py,sha256=FRGs_jmzk6QiRPZfZv36SPzeyJCsVWZ_E2CKRkExazw,835
|
|
174
177
|
kash/shell/completions/completion_scoring.py,sha256=-svesm2cR1AA86jYcxlynXCBZON26eUJce93FlL2nQo,10209
|
|
175
178
|
kash/shell/completions/completion_types.py,sha256=FocRXd6Df3Df0nL2Y1GevMx3FsljJwbQdVgWsIngpaQ,4793
|
|
@@ -186,41 +189,41 @@ kash/shell/output/kerm_code_utils.py,sha256=92A4AV-IFKKZMWLNZnd_zksNFMBgE_VNXySy
|
|
|
186
189
|
kash/shell/output/kerm_codes.py,sha256=KLVdTM_dL_NeYmGbllzsQoW4IHXJjEsgqqIp1s7P1yI,18877
|
|
187
190
|
kash/shell/output/kmarkdown.py,sha256=RRB5b0Ip0KZ71vnJKFfvxerYkeDFTCVTlHqHfmMy80Y,3675
|
|
188
191
|
kash/shell/output/shell_formatting.py,sha256=oxmAeJ2j0ANYSUsL15CUv--KcGlQ6Wa_rywXSDlsZM4,3331
|
|
189
|
-
kash/shell/output/shell_output.py,sha256
|
|
192
|
+
kash/shell/output/shell_output.py,sha256=J3c6L_gkMgjwla4U0LkXsyzLODVAGbkVuLK0zKvf-JQ,11178
|
|
190
193
|
kash/shell/ui/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
191
194
|
kash/shell/ui/shell_results.py,sha256=vO_9UUnI_cr1ZJqCSFgeVwGFy7JLsrEpIAobKvTdkmo,4109
|
|
192
195
|
kash/shell/ui/shell_syntax.py,sha256=1fuDqcCV16AAWwWS4w4iT-tlSnl-Ywdrf68Ge8XIfmQ,751
|
|
193
|
-
kash/shell/utils/
|
|
194
|
-
kash/shell/utils/exception_printing.py,sha256=jkSbEZLQmMjLPMRIBolZSkrACYMHJJ_lh6yZQ7Gv-9g,1898
|
|
196
|
+
kash/shell/utils/exception_printing.py,sha256=UizjOkBPhW6YbkiFP965BE5FrCwn04MXGDbxyTuyvOk,1908
|
|
195
197
|
kash/shell/utils/native_utils.py,sha256=FtIjjB1sOgNifTx1u7nKSAwg9A8wc9-fkACw2_xWnNg,9153
|
|
196
|
-
kash/shell/utils/shell_function_wrapper.py,sha256=
|
|
198
|
+
kash/shell/utils/shell_function_wrapper.py,sha256=fgUuVhocYMKLkGJJQJOER5nFMAvM0ZVpfGu7iJPJI9s,7385
|
|
197
199
|
kash/text_handling/custom_sliding_transforms.py,sha256=stbvN8McdHqC8oOs7QYK0J-Rh3kBLxxxbw7kjlOLKfM,9764
|
|
198
|
-
kash/text_handling/doc_normalization.py,sha256=
|
|
199
|
-
kash/text_handling/markdown_render.py,sha256=
|
|
200
|
-
kash/text_handling/markdown_utils.py,sha256=
|
|
200
|
+
kash/text_handling/doc_normalization.py,sha256=LvAsdz-lkKI0NG5-Nn3XTM2bbMXSCO5Hw2dEQ8dzYqw,2755
|
|
201
|
+
kash/text_handling/markdown_render.py,sha256=Ea-QiBND0kp4Dc9rYr8Z3dB_CRpAxneGHBOlTDWsDo0,3751
|
|
202
|
+
kash/text_handling/markdown_utils.py,sha256=abrtwF1wMWxOIya0KB3tgO4y6Oj9kjU-RF8fjCR4wJA,9853
|
|
201
203
|
kash/text_handling/unified_diffs.py,sha256=AS5el-uPkXwpRA9bD46dyMo-YBDXb7zRF_MH3c47shA,4335
|
|
202
204
|
kash/utils/__init__.py,sha256=4Jl_AtgRADdGORimWhYZwbSfQSpQ6SiexNIZzmbcngI,111
|
|
203
|
-
kash/utils/errors.py,sha256=
|
|
205
|
+
kash/utils/errors.py,sha256=2lPL0fxI8pPOiDvjl0j-rvwY8uhmWetsrYYIc2-x1WY,3906
|
|
204
206
|
kash/utils/common/__init__.py,sha256=ggeWw1xmbl1mgCQD3c4CNN2h5WXFCsN2wXlCWurEUEI,161
|
|
205
|
-
kash/utils/common/format_utils.py,sha256=
|
|
206
|
-
kash/utils/common/function_inspect.py,sha256=
|
|
207
|
+
kash/utils/common/format_utils.py,sha256=6zDHYsFlDzNGaqMkxXyYcX806tXwn-9rv0mJDMT-pUo,2343
|
|
208
|
+
kash/utils/common/function_inspect.py,sha256=gJ7jzd14hpuhJW18kxj6MgC2Q60nhYccQK78tq_hf_M,14085
|
|
207
209
|
kash/utils/common/import_utils.py,sha256=FUsasP-PgxOtRIutm3SnCGH_MBPK6pxUb-oc6dXT0aA,3428
|
|
210
|
+
kash/utils/common/inflection.py,sha256=efufYj57MCGJeKv30BKVf0mfMX_MmJCT7PiiQKqVhw8,531
|
|
208
211
|
kash/utils/common/lazyobject.py,sha256=9dmOfSheblOXgo2RRakMwgfPIKdTgtyrlm6dCKAze04,5157
|
|
209
212
|
kash/utils/common/obj_replace.py,sha256=AuiXptUOnuDNcWDgAJ3jEHkLh89XIqCP_SOkgaVyFIQ,2075
|
|
210
213
|
kash/utils/common/parse_key_vals.py,sha256=yZRZIa5GD9SlnBSn2YNZm8PRVKoSJMY8DCmdGujQj_I,2418
|
|
211
214
|
kash/utils/common/parse_shell_args.py,sha256=UZXTZDbV5m5Jy39jdAQ6W8uilr1TNa0__RqnE8UmQ_M,10604
|
|
212
215
|
kash/utils/common/stack_traces.py,sha256=a2NwlK_0xxnjMCDC4LrQu7ueFylF-OImFG3bAAHpPwY,1392
|
|
213
|
-
kash/utils/common/task_stack.py,sha256=
|
|
216
|
+
kash/utils/common/task_stack.py,sha256=XkeBz3BwYY1HxxTqd3f7CulV0s61PePAKw1Irrtvf5o,4536
|
|
214
217
|
kash/utils/common/type_utils.py,sha256=SJirXhPilQom_-OKkFToDLm_82ZwpjcNjRy8U1HaQ0Q,3829
|
|
215
218
|
kash/utils/common/uniquifier.py,sha256=75OY4KIVF8u1eoO0FCPbEGTyVpPOtM-0ctoG_s_jahM,3082
|
|
216
219
|
kash/utils/common/url.py,sha256=hEDC0ImO3DLvaPRflcmiUZ1wK_Ilsm6_9fLaG23sUfo,6515
|
|
217
220
|
kash/utils/file_formats/chat_format.py,sha256=Onby7Zany1UQSUo_JzLs6MIfmoXViZeOAacRTMVe92M,11818
|
|
218
221
|
kash/utils/file_utils/__init__.py,sha256=loL_iW0oOZs0mJ5GelBPptBcqzYKSWdsGcHrpRyxitQ,43
|
|
219
222
|
kash/utils/file_utils/dir_info.py,sha256=HamMr58k_DanTLifj7A2JDxTGWXEZZx2pQuE6Hjcm8g,1856
|
|
220
|
-
kash/utils/file_utils/file_ext.py,sha256
|
|
223
|
+
kash/utils/file_utils/file_ext.py,sha256=-H63vlrVI3pfE2Cn_9qF7-QLDaUIu_njc4TieNgAHSY,1860
|
|
221
224
|
kash/utils/file_utils/file_formats.py,sha256=tmrmqM5YTxfvlpvqmeOVz0yVRuPxxIAkVZf1-D0fp5Y,4902
|
|
222
|
-
kash/utils/file_utils/file_formats_model.py,sha256=
|
|
223
|
-
kash/utils/file_utils/file_sort_filter.py,sha256
|
|
225
|
+
kash/utils/file_utils/file_formats_model.py,sha256=DQdwshgfKjzS8a8teDZA_PQrn1saxRlY-gvekxtFdPw,15039
|
|
226
|
+
kash/utils/file_utils/file_sort_filter.py,sha256=_k1chT3dJl5lSmKA2PW90KaoG4k4zftGdtwWoNEljP4,7136
|
|
224
227
|
kash/utils/file_utils/file_walk.py,sha256=cpwVDPuaVm95_ZwFJiAdIuZAGhASI3gJ3ZUsCGP75b8,5527
|
|
225
228
|
kash/utils/file_utils/filename_parsing.py,sha256=sxrZGOv1d4YOCRRtLlpkpYdB-7fIQJqIzUDGH2_S9EA,3350
|
|
226
229
|
kash/utils/file_utils/ignore_files.py,sha256=QJ0SFeGdxSCaf4v45qQE_BMsMT5nOgomma0TuJRibp8,3546
|
|
@@ -228,7 +231,6 @@ kash/utils/file_utils/mtime_cache.py,sha256=1QvAPdBSvKZL3j2cxm4lgZYTik4QdeIIC8Tz
|
|
|
228
231
|
kash/utils/file_utils/path_utils.py,sha256=x0__A1-5Cjsit_RZr-wnNNQEzgVJ93Es5zSdJk7Ycz0,1069
|
|
229
232
|
kash/utils/lang_utils/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
230
233
|
kash/utils/lang_utils/capitalization.py,sha256=5XbqBvjkzlxsm1Ue5AQP3P1J1IG0PubMVmGnoKVTF-c,3903
|
|
231
|
-
kash/utils/lang_utils/inflection.py,sha256=lIroEww-JnaDv_p55r8p6sG9XslVQxQPtwuqOzJauF0,336
|
|
232
234
|
kash/utils/rich_custom/__init__.py,sha256=_g2F3Bqc1UnLTdAdCwkvzXmW7OvmqXrA8DpfT1dKy6w,75
|
|
233
235
|
kash/utils/rich_custom/ansi_cell_len.py,sha256=oQlNrqWB0f6pmigkbRRyeK6oWlGHMPbV_YLO_qmDH5E,2356
|
|
234
236
|
kash/utils/rich_custom/rich_char_transform.py,sha256=3M89tViKM0y31VHsDoHi5eHFWlv5ME7F4p35IdDxnrw,2616
|
|
@@ -244,23 +246,26 @@ kash/web_content/web_extract_justext.py,sha256=74HLJBKDGKatwxyRDX6za70bZG9LrVmtj
|
|
|
244
246
|
kash/web_content/web_extract_readabilipy.py,sha256=yxwO-bVtRGepOobqa3AWSVe7WYCOBvWJV9Sktp60_UI,763
|
|
245
247
|
kash/web_content/web_fetch.py,sha256=dy3p-jrZY2szSgMUgLYWzEbMPsuFopPWKS0C8WIYgMM,3737
|
|
246
248
|
kash/web_content/web_page_model.py,sha256=g9GUJpPJOd3-3mwajVodA3dcapDg1CMHxnPczXKEWUk,657
|
|
247
|
-
kash/web_gen/__init__.py,sha256=
|
|
248
|
-
kash/web_gen/
|
|
249
|
-
kash/web_gen/
|
|
250
|
-
kash/web_gen/
|
|
251
|
-
kash/web_gen/templates/
|
|
249
|
+
kash/web_gen/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
250
|
+
kash/web_gen/simple_webpage.py,sha256=Lu99W277NT04lnFCrLEjea_RI0VcD56BDk8mUW1bRh4,1393
|
|
251
|
+
kash/web_gen/tabbed_webpage.py,sha256=Q_Htw2QO0O9H3A9OFrWw9GBD73cbwB6hOKF-W6mO6YE,4807
|
|
252
|
+
kash/web_gen/template_render.py,sha256=aypo6UanouftV4RpxgNm6JdquelI52fV0IlihdA3yjE,1908
|
|
253
|
+
kash/web_gen/templates/base_styles.css.jinja,sha256=4_-ipKCvne_WrzNZVEB7VwztXJgTrVAPlqIOfrjOVSM,6610
|
|
254
|
+
kash/web_gen/templates/base_webpage.html.jinja,sha256=Nvdd8pLSG2OdbrDQRvYcexYIZoMdr1G_7MdUVHNDoA8,7945
|
|
252
255
|
kash/web_gen/templates/content_styles.css.jinja,sha256=3qcIwIt3DipCDJa9z6oIM_BMxmwoT7E_loTK0F3L9Vo,3629
|
|
253
256
|
kash/web_gen/templates/explain_view.html.jinja,sha256=DNw5Iw5SrhIUFRGB4qNvfcKXsBHVbEJVURGdhvyC75Q,949
|
|
254
|
-
kash/web_gen/templates/item_view.html.jinja,sha256
|
|
255
|
-
kash/web_gen/templates/
|
|
256
|
-
kash/
|
|
257
|
+
kash/web_gen/templates/item_view.html.jinja,sha256=-Rqf2qS9KNbcJp9q1OOtl1aBGgPuwG7jc2Bgw_6YfBg,6791
|
|
258
|
+
kash/web_gen/templates/simple_webpage.html.jinja,sha256=wUUOVhOjCRyHxjOhIl3dcRwppENOzgWaskiM0nX8TNU,721
|
|
259
|
+
kash/web_gen/templates/tabbed_webpage.html.jinja,sha256=u7gabDsCs3neQQlH1y1rIaqT8UumPKVPPZG4VKg5R_g,1823
|
|
260
|
+
kash/workspaces/__init__.py,sha256=q1gFERRZLJMA9-XSUKvB1ulauHDKqyzzc86GFLbxAuk,700
|
|
257
261
|
kash/workspaces/param_state.py,sha256=vT_eGWqg2SRviIM5jqEAauznX2B5Xt2nHHu2oRxTcIU,746
|
|
258
262
|
kash/workspaces/selections.py,sha256=bles1G_XueDIP9-kjuTmb1BfI1KK9mBTuHZ2GxJLrEM,12003
|
|
259
263
|
kash/workspaces/source_items.py,sha256=Pwnw3OhjR2IJEMEeHf6hpKloj-ellM5vsY7LgkGevRY,2861
|
|
260
|
-
kash/workspaces/
|
|
264
|
+
kash/workspaces/workspace_dirs.py,sha256=kjuY4t7mSSXq00fZmln7p9TWq4kAZoPTCDM0DG7uEaI,1545
|
|
265
|
+
kash/workspaces/workspace_importing.py,sha256=s7_OpRRLI-L58bjoOe4fo8czZsVFLBNgaB6VuzhUPUs,1930
|
|
261
266
|
kash/workspaces/workspace_output.py,sha256=dEtXBCdGufupiG2hzB1xZQpS3E-vbVfqHlpRfPWTBRE,5692
|
|
262
267
|
kash/workspaces/workspace_registry.py,sha256=SQt2DZgBEu95Zj9fpy67XdJPgJyKFDCU2laSuiZswNo,2200
|
|
263
|
-
kash/workspaces/workspaces.py,sha256=
|
|
268
|
+
kash/workspaces/workspaces.py,sha256=kQyS3F57Y9A9xVT_Ss7HzJhDGlI-UXHKvRDnEVkBnik,6764
|
|
264
269
|
kash/xonsh_custom/command_nl_utils.py,sha256=6Xcx98HXL5HywziHi0XskwFx6kfvz7oCmMX-siJib1A,3392
|
|
265
270
|
kash/xonsh_custom/custom_shell.py,sha256=jydWwHR0-RslioaHHY1sHnM6H6fG3cwOw1XO__sG_b0,19026
|
|
266
271
|
kash/xonsh_custom/customize_prompt.py,sha256=u-jRY-ftXYflBkbJVetEg6GYelPUvqZEpjrPRUTfy8w,6896
|
|
@@ -274,8 +279,8 @@ kash/xonsh_custom/xonsh_modern_tools.py,sha256=mj_b34LZXfE8MJe9EpDmp5JZ0tDM1biYN
|
|
|
274
279
|
kash/xonsh_custom/xonsh_ranking_completer.py,sha256=ZRGiAfoEgqgnlq2-ReUVEaX5oOgW1DQ9WxIv2OJLuTo,5620
|
|
275
280
|
kash/xontrib/fnm.py,sha256=V2tsOdmIDgbFbZSfMLpsvDIwwJJqiYnOkOySD1cXNXw,3700
|
|
276
281
|
kash/xontrib/kash_extension.py,sha256=JRRJC3cZSMOl4sSWEdKAQ_dVRMubWaOltKr8G0dWt6Y,1876
|
|
277
|
-
kash_shell-0.3.
|
|
278
|
-
kash_shell-0.3.
|
|
279
|
-
kash_shell-0.3.
|
|
280
|
-
kash_shell-0.3.
|
|
281
|
-
kash_shell-0.3.
|
|
282
|
+
kash_shell-0.3.12.dist-info/METADATA,sha256=AziaMFV9B3BAhc_nn8N5gvS7d9O0_he_bBVhYc96LDM,31258
|
|
283
|
+
kash_shell-0.3.12.dist-info/WHEEL,sha256=qtCwoSJWgHk21S1Kb4ihdzI2rlJ1ZKaIurTj_ngOhyQ,87
|
|
284
|
+
kash_shell-0.3.12.dist-info/entry_points.txt,sha256=SQraWDAo8SqYpthLXThei0mf_hGGyhYBUO-Er_0HcwI,85
|
|
285
|
+
kash_shell-0.3.12.dist-info/licenses/LICENSE,sha256=rCh2PsfYeiU6FK_0wb58kHGm_Fj5c43fdcHEexiVzIo,34562
|
|
286
|
+
kash_shell-0.3.12.dist-info/RECORD,,
|
|
@@ -1,20 +0,0 @@
|
|
|
1
|
-
from typing import Any
|
|
2
|
-
|
|
3
|
-
from rich import get_console
|
|
4
|
-
from rich_argparse.contrib import ParagraphRichHelpFormatter
|
|
5
|
-
|
|
6
|
-
MAX_WIDTH = 88
|
|
7
|
-
MIN_WIDTH = 40
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
class WrappedColorFormatter(ParagraphRichHelpFormatter):
|
|
11
|
-
"""
|
|
12
|
-
A formatter for argparse that colorizes with rich_argparse and also wraps
|
|
13
|
-
text to console width, which is better for readability in both wide and
|
|
14
|
-
narrow consoles. Also preserves paragraphs, unlike the default argparse
|
|
15
|
-
formatters.
|
|
16
|
-
"""
|
|
17
|
-
|
|
18
|
-
def __init__(self, *args: Any, **kwargs: Any) -> None:
|
|
19
|
-
width = max(MIN_WIDTH, min(MAX_WIDTH, get_console().width))
|
|
20
|
-
super().__init__(*args, width=width, **kwargs)
|
|
@@ -1,18 +0,0 @@
|
|
|
1
|
-
from functools import cache
|
|
2
|
-
|
|
3
|
-
from chopdiff.docs import is_word
|
|
4
|
-
from inflect import engine
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
@cache
|
|
8
|
-
def inflect():
|
|
9
|
-
return engine()
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
def plural(word: str, count: int | None = None) -> str:
|
|
13
|
-
"""
|
|
14
|
-
Pluralize a word.
|
|
15
|
-
"""
|
|
16
|
-
if not is_word(word):
|
|
17
|
-
return word
|
|
18
|
-
return inflect().plural(word, count) # pyright: ignore
|
|
File without changes
|
|
File without changes
|
|
File without changes
|