kash-shell 0.3.9__py3-none-any.whl → 0.3.11__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/__init__.py +4 -4
- kash/actions/core/format_markdown_template.py +2 -5
- kash/actions/core/markdownify.py +7 -6
- kash/actions/core/readability.py +7 -6
- kash/actions/core/render_as_html.py +37 -0
- kash/actions/core/show_webpage.py +6 -11
- kash/actions/core/strip_html.py +2 -6
- kash/actions/core/tabbed_webpage_config.py +31 -0
- kash/actions/core/{webpage_generate.py → tabbed_webpage_generate.py} +5 -4
- kash/commands/__init__.py +8 -20
- kash/commands/base/basic_file_commands.py +15 -0
- kash/commands/base/debug_commands.py +13 -0
- kash/commands/base/files_command.py +28 -10
- kash/commands/base/general_commands.py +21 -16
- kash/commands/base/logs_commands.py +4 -2
- kash/commands/base/model_commands.py +8 -8
- kash/commands/base/search_command.py +3 -2
- kash/commands/base/show_command.py +5 -3
- kash/commands/extras/parse_uv_lock.py +186 -0
- kash/commands/help/doc_commands.py +2 -31
- kash/commands/help/welcome.py +33 -0
- kash/commands/workspace/selection_commands.py +11 -6
- kash/commands/workspace/workspace_commands.py +19 -17
- kash/config/colors.py +3 -1
- kash/config/env_settings.py +14 -1
- kash/config/init.py +2 -2
- kash/config/logger.py +59 -56
- kash/config/logger_basic.py +3 -3
- kash/config/settings.py +116 -57
- kash/config/setup.py +28 -12
- kash/config/text_styles.py +3 -13
- kash/docs/load_api_docs.py +2 -1
- kash/docs/markdown/topics/a3_getting_started.md +3 -2
- kash/{concepts → embeddings}/text_similarity.py +2 -2
- kash/exec/__init__.py +20 -3
- kash/exec/action_decorators.py +24 -10
- kash/exec/action_exec.py +41 -23
- kash/exec/action_registry.py +13 -48
- kash/exec/command_registry.py +2 -1
- kash/exec/fetch_url_metadata.py +4 -6
- kash/exec/importing.py +56 -0
- kash/exec/llm_transforms.py +12 -10
- kash/exec/precondition_registry.py +2 -1
- kash/exec/preconditions.py +22 -1
- kash/exec/resolve_args.py +4 -0
- kash/exec/shell_callable_action.py +33 -19
- kash/file_storage/file_store.py +42 -27
- kash/file_storage/item_file_format.py +5 -2
- kash/file_storage/metadata_dirs.py +11 -2
- kash/help/assistant.py +1 -1
- kash/help/assistant_instructions.py +2 -1
- kash/help/function_param_info.py +1 -1
- kash/help/help_embeddings.py +2 -2
- kash/help/help_printing.py +7 -11
- kash/llm_utils/clean_headings.py +1 -1
- kash/llm_utils/llm_api_keys.py +4 -4
- kash/llm_utils/llm_features.py +68 -0
- kash/llm_utils/llm_messages.py +1 -2
- kash/llm_utils/llm_names.py +1 -1
- kash/llm_utils/llms.py +8 -3
- kash/local_server/__init__.py +5 -2
- kash/local_server/local_server.py +8 -5
- kash/local_server/local_server_commands.py +2 -2
- kash/local_server/local_server_routes.py +1 -7
- kash/local_server/local_url_formatters.py +1 -1
- kash/mcp/__init__.py +5 -2
- kash/mcp/mcp_cli.py +5 -5
- kash/mcp/mcp_server_commands.py +5 -5
- kash/mcp/mcp_server_routes.py +5 -5
- kash/mcp/mcp_server_sse.py +4 -2
- kash/media_base/media_cache.py +8 -8
- kash/media_base/media_services.py +1 -1
- kash/media_base/media_tools.py +6 -6
- kash/media_base/services/local_file_media.py +2 -2
- kash/media_base/{speech_transcription.py → transcription_deepgram.py} +25 -110
- kash/media_base/transcription_format.py +73 -0
- kash/media_base/transcription_whisper.py +38 -0
- kash/model/__init__.py +73 -5
- kash/model/actions_model.py +38 -4
- kash/model/concept_model.py +30 -0
- kash/model/items_model.py +115 -32
- kash/model/params_model.py +24 -0
- kash/shell/completions/completion_scoring.py +37 -5
- kash/shell/output/kerm_codes.py +1 -2
- kash/shell/output/shell_formatting.py +14 -4
- kash/shell/shell_main.py +2 -2
- kash/shell/utils/exception_printing.py +6 -0
- kash/shell/utils/native_utils.py +26 -20
- kash/shell/utils/shell_function_wrapper.py +15 -15
- kash/text_handling/custom_sliding_transforms.py +12 -4
- kash/text_handling/doc_normalization.py +6 -2
- kash/text_handling/markdown_render.py +118 -0
- kash/text_handling/markdown_utils.py +226 -0
- kash/utils/common/function_inspect.py +360 -110
- kash/utils/common/import_utils.py +12 -3
- kash/utils/common/type_utils.py +0 -29
- kash/utils/common/url.py +27 -3
- kash/utils/errors.py +6 -0
- kash/utils/file_utils/file_ext.py +4 -0
- kash/utils/file_utils/file_formats.py +2 -2
- kash/utils/file_utils/file_formats_model.py +20 -1
- kash/web_content/dir_store.py +1 -2
- kash/web_content/file_cache_utils.py +37 -10
- kash/web_content/file_processing.py +68 -0
- kash/web_content/local_file_cache.py +12 -9
- kash/web_content/web_extract.py +8 -3
- kash/web_content/web_fetch.py +12 -4
- kash/web_gen/__init__.py +0 -4
- kash/web_gen/simple_webpage.py +52 -0
- kash/web_gen/tabbed_webpage.py +24 -14
- kash/web_gen/template_render.py +37 -2
- kash/web_gen/templates/base_styles.css.jinja +169 -43
- kash/web_gen/templates/base_webpage.html.jinja +110 -45
- kash/web_gen/templates/content_styles.css.jinja +4 -2
- kash/web_gen/templates/item_view.html.jinja +49 -39
- kash/web_gen/templates/simple_webpage.html.jinja +24 -0
- kash/web_gen/templates/tabbed_webpage.html.jinja +42 -33
- kash/workspaces/__init__.py +15 -2
- kash/workspaces/selections.py +18 -3
- kash/workspaces/source_items.py +0 -1
- kash/workspaces/workspaces.py +5 -11
- kash/xonsh_custom/command_nl_utils.py +40 -19
- kash/xonsh_custom/custom_shell.py +43 -11
- kash/xonsh_custom/customize_prompt.py +39 -21
- kash/xonsh_custom/load_into_xonsh.py +22 -25
- kash/xonsh_custom/shell_load_commands.py +2 -2
- kash/xonsh_custom/xonsh_completers.py +2 -249
- kash/xonsh_custom/xonsh_keybindings.py +282 -0
- kash/xonsh_custom/xonsh_modern_tools.py +3 -3
- kash/xontrib/kash_extension.py +5 -6
- {kash_shell-0.3.9.dist-info → kash_shell-0.3.11.dist-info}/METADATA +10 -8
- {kash_shell-0.3.9.dist-info → kash_shell-0.3.11.dist-info}/RECORD +137 -136
- kash/actions/core/webpage_config.py +0 -21
- kash/concepts/concept_formats.py +0 -23
- kash/shell/clideps/api_keys.py +0 -100
- kash/shell/clideps/dotenv_setup.py +0 -115
- kash/shell/clideps/dotenv_utils.py +0 -98
- kash/shell/clideps/pkg_deps.py +0 -257
- kash/shell/clideps/platforms.py +0 -11
- kash/shell/clideps/terminal_features.py +0 -56
- kash/shell/utils/osc_utils.py +0 -95
- kash/shell/utils/terminal_images.py +0 -133
- kash/text_handling/markdown_util.py +0 -167
- kash/utils/common/atomic_var.py +0 -171
- kash/utils/common/string_replace.py +0 -93
- kash/utils/common/string_template.py +0 -101
- /kash/{concepts → embeddings}/cosine.py +0 -0
- /kash/{concepts → embeddings}/embeddings.py +0 -0
- {kash_shell-0.3.9.dist-info → kash_shell-0.3.11.dist-info}/WHEEL +0 -0
- {kash_shell-0.3.9.dist-info → kash_shell-0.3.11.dist-info}/entry_points.txt +0 -0
- {kash_shell-0.3.9.dist-info → kash_shell-0.3.11.dist-info}/licenses/LICENSE +0 -0
|
@@ -1,59 +1,58 @@
|
|
|
1
1
|
kash/__init__.py,sha256=hplHtnRqt1MpGIgKv3WZb9YoCoMPGtnNGtu8Eb9G6zI,110
|
|
2
2
|
kash/__main__.py,sha256=83JiHvCNK7BAwEkaTD0kVekj7PEMucvCyquSl4p-1QA,78
|
|
3
|
-
kash/actions/__init__.py,sha256=
|
|
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/
|
|
10
|
-
kash/actions/core/
|
|
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=UXtkAiFqPK02CNGyMDHiwNSimF54mP5xaSUYr4uRJFM,1768
|
|
10
|
+
kash/actions/core/show_webpage.py,sha256=TZJWqKMo2aJIUiJMYBR_t_2FLPihjpg5UtuTMJ4eb7E,863
|
|
11
|
+
kash/actions/core/strip_html.py,sha256=T35SVA-0YLyiwf7eBpJhKaJqZgqq0vfPn2IxpMetGMY,835
|
|
11
12
|
kash/actions/core/summarize_as_bullets.py,sha256=Zwr8lNzL77pwpnW_289LQjNBijNDpTPANfFdOJA-PZ4,2070
|
|
12
|
-
kash/actions/core/
|
|
13
|
-
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
|
|
14
15
|
kash/actions/meta/write_instructions.py,sha256=zeKKX-Yi8jSyjvZ4Ii_4MNBRtM2MENuHyrD0Vxsaos8,1277
|
|
15
16
|
kash/actions/meta/write_new_action.py,sha256=w7SJZ2FjzRbKwqKX9PeozUrh8cNJAumX7F80wW7dQts,6356
|
|
16
|
-
kash/commands/__init__.py,sha256=
|
|
17
|
-
kash/commands/base/basic_file_commands.py,sha256=
|
|
17
|
+
kash/commands/__init__.py,sha256=MhdPSluWGE3XVQ7LSv2L8_aAxaey8CLjQBjGC9B4nRM,191
|
|
18
|
+
kash/commands/base/basic_file_commands.py,sha256=7aZ5ZuSTCZE8jilDxD_41C7Ie88nmx9aGgiJCQLasCA,6359
|
|
18
19
|
kash/commands/base/browser_commands.py,sha256=iYvpW4D_tlhW_p0cq3A6YO9UGCdHtvzIQiNMDwCY07A,1574
|
|
19
|
-
kash/commands/base/debug_commands.py,sha256=
|
|
20
|
+
kash/commands/base/debug_commands.py,sha256=9I5W3SMQvsnpcs-b6CJCYu1Ydl6gIoTUcDZxvn1dN3g,7643
|
|
20
21
|
kash/commands/base/diff_commands.py,sha256=U2geK6TLji9hnSfKW1DDGICaawm9p6Ht_Way6W_34AY,3446
|
|
21
|
-
kash/commands/base/files_command.py,sha256=
|
|
22
|
-
kash/commands/base/general_commands.py,sha256=
|
|
23
|
-
kash/commands/base/logs_commands.py,sha256=
|
|
24
|
-
kash/commands/base/model_commands.py,sha256=
|
|
22
|
+
kash/commands/base/files_command.py,sha256=JAjj9Xu76N3cgoU9Mb1CPCCxy3BP7amFm4EXLMSN9bM,16681
|
|
23
|
+
kash/commands/base/general_commands.py,sha256=KaCbzk7o-ejwXE_H3PB3MrN00uTinP3T8uHKYrGPrIw,6946
|
|
24
|
+
kash/commands/base/logs_commands.py,sha256=IyNgxaAoa5LlS-VxD_x8bXTVbD04pT8qEHlIJNM09UU,2963
|
|
25
|
+
kash/commands/base/model_commands.py,sha256=d17a2NvfDbwV1y8gyZVsOtX-j5H5we5OEXM9TxTqvBs,1790
|
|
25
26
|
kash/commands/base/reformat_command.py,sha256=C4EJz4DRrNon8TLgzlUeR64iLIdorGwx2nRGviI8zxs,1863
|
|
26
|
-
kash/commands/base/search_command.py,sha256=
|
|
27
|
-
kash/commands/base/show_command.py,sha256=
|
|
27
|
+
kash/commands/base/search_command.py,sha256=FXtP09HmmfHRrjenvmU4j0Lcw34piIzdI3UFGbUQ1tg,2201
|
|
28
|
+
kash/commands/base/show_command.py,sha256=J0zw8gBcDQJ0nI47EkrGY9VfNFb_thQXcxNCele9av8,2895
|
|
29
|
+
kash/commands/extras/parse_uv_lock.py,sha256=Uwu6uq5mmHEKdQMTyiYxiLQ5FJSI5rGtVn6JQtzyufU,5542
|
|
28
30
|
kash/commands/extras/utils_commands.py,sha256=rz3N7VxoUHvCxksRt-sLubkvyW-VH9OTltLEMEnjRfU,769
|
|
29
31
|
kash/commands/help/assistant_commands.py,sha256=BhGhtyoiEbu6xYfi-r47g_U4pxptUkucyNmiv5_kg34,3042
|
|
30
|
-
kash/commands/help/doc_commands.py,sha256=
|
|
32
|
+
kash/commands/help/doc_commands.py,sha256=7lKR7mzue2N7pSkNqblpFJy892fS5N6jWVOHqeXziHw,2466
|
|
31
33
|
kash/commands/help/help_commands.py,sha256=eJTpIhXck123PAUq2k-D3Q6UL6IQ8atOVYurLi2GD0A,4229
|
|
32
34
|
kash/commands/help/logo.py,sha256=W8SUach9FjoTqpHZwTGS582ry4ZluxbBp86ZCiAtDkY,3505
|
|
33
|
-
kash/commands/
|
|
34
|
-
kash/commands/workspace/
|
|
35
|
-
kash/
|
|
36
|
-
kash/concepts/cosine.py,sha256=Nke3WF9XB305dWYCzko7vmIwxOWgBu_RlpR-tnMq0ik,1422
|
|
37
|
-
kash/concepts/embeddings.py,sha256=vx8klwgPc6D7oswWD5MfA3xGCke8zEwS1cGGln7P388,4249
|
|
38
|
-
kash/concepts/text_similarity.py,sha256=UKwcpmhlMwZTxdEpKc2Sv5I6H9a2Mrk8WpOQ_IVAgQY,1783
|
|
35
|
+
kash/commands/help/welcome.py,sha256=F4QBgj3e1dM9Pf0H4TSzCrkVfXQVKUIl0b6Qmofbdo4,905
|
|
36
|
+
kash/commands/workspace/selection_commands.py,sha256=nWWIN-8EnEgjgWIbQevqz5_3iDbcIJT3ffQg-_WAlHU,7451
|
|
37
|
+
kash/commands/workspace/workspace_commands.py,sha256=ch8PbV1JcCXIxNtIME_RlZ3X4zRVyrxh9jd_6SxSqYs,22650
|
|
39
38
|
kash/config/__init__.py,sha256=ytly9Typ1mWV4CXfV9G3CIPtPQ02u2rpZ304L3GlFro,148
|
|
40
39
|
kash/config/capture_output.py,sha256=ud3uUVNuDicHj3mI_nBUBO-VmOrxtBdA3z-I3D1lSCU,2398
|
|
41
|
-
kash/config/colors.py,sha256=
|
|
42
|
-
kash/config/env_settings.py,sha256=
|
|
43
|
-
kash/config/init.py,sha256=
|
|
40
|
+
kash/config/colors.py,sha256=6lqrB2RQYF2OLw-njfOqVHO9Bwiq7bW6K1ROCOAd1EM,9949
|
|
41
|
+
kash/config/env_settings.py,sha256=DXp9Q9u-EC7cK0nyXIcKvPV9DuChvoVw7QCe7ZGe3Rw,2225
|
|
42
|
+
kash/config/init.py,sha256=aE4sZ6DggBmmoZEx9C5mQKrEbcDiswX--HF7pfCFKzc,526
|
|
44
43
|
kash/config/lazy_imports.py,sha256=MCZXLnKvNyfHi0k7MU5rNwcdJtUF28naCixuogsAOAA,805
|
|
45
|
-
kash/config/logger.py,sha256=
|
|
46
|
-
kash/config/logger_basic.py,sha256
|
|
44
|
+
kash/config/logger.py,sha256=uy6KXsCjvr_-6IB45wmNNDgkkTcFLxH56QPxx8-0MT0,11537
|
|
45
|
+
kash/config/logger_basic.py,sha256=yLZtDqIETBvZTilLDI-yJahmhVVW4twCNyKlsREEq0g,1511
|
|
47
46
|
kash/config/logo.txt,sha256=P4RO1cJ9HRF1BavTp3Kae9iByDNhzhEC-qLAa6ww1RA,217
|
|
48
47
|
kash/config/server_config.py,sha256=eQ1yxDk031QI0Efp0I1VetqQd9wG7MrLVBCHFm4gp2g,1790
|
|
49
|
-
kash/config/settings.py,sha256=
|
|
50
|
-
kash/config/setup.py,sha256=
|
|
48
|
+
kash/config/settings.py,sha256=SwCe1ttV0vKA4Koin1I6RqHplMBlixlHhf5N2bOLjWo,8425
|
|
49
|
+
kash/config/setup.py,sha256=AgeLPGM01C5H5z1_WK-zoWb_HqryJsQ7sU1yN5qca9E,2531
|
|
51
50
|
kash/config/suppress_warnings.py,sha256=yty5ZodMLIpmjphRtcVmRamXfiWbyfga9annve6qxb0,1475
|
|
52
|
-
kash/config/text_styles.py,sha256=
|
|
51
|
+
kash/config/text_styles.py,sha256=3k0iar_hDW0iv7JKi5bKHyQZFOGzDjA8x0IaFi69mj8,13498
|
|
53
52
|
kash/docs/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
54
53
|
kash/docs/all_docs.py,sha256=NutfgU8VOA7_K2HX18FoOHVvvLL14dALoCxK9qDbQ04,3157
|
|
55
54
|
kash/docs/load_actions_info.py,sha256=D9uv8gdBtkBmdbFZeyIigsupPF9_WfidHVwWQrlggI0,937
|
|
56
|
-
kash/docs/load_api_docs.py,sha256=
|
|
55
|
+
kash/docs/load_api_docs.py,sha256=6fj2Y92JWE-edYWh5mvSFmZp8YVrIunXXq_CNbqgk5c,484
|
|
57
56
|
kash/docs/load_help_topics.py,sha256=49RbwYS_Qn8JJI5q8Nlj-SpQ95xRDOSGuEKOWaDhUSM,1583
|
|
58
57
|
kash/docs/load_source_code.py,sha256=ysVZKUnLOrnRAIo_M25tPcYO64_fBdssD3-2XUx-4hg,4123
|
|
59
58
|
kash/docs/markdown/api_docs_template.md,sha256=nUjrV5FhDql8odjjPiwOK8roCUiauy31G2ARiS_OGiQ,1457
|
|
@@ -63,7 +62,7 @@ kash/docs/markdown/warning.md,sha256=bG0T3UFqAkzF8217J8AbIbQ7ftJ_GKMRilIGq9eLdYc
|
|
|
63
62
|
kash/docs/markdown/welcome.md,sha256=yp_tmGXGIb8043ZDIL97Q1uaKVys7-ArHCprgDlon7w,611
|
|
64
63
|
kash/docs/markdown/topics/a1_what_is_kash.md,sha256=EE1ImWkkXHImmpe24QEau30suUMBRllHa0e6e99MUGQ,4983
|
|
65
64
|
kash/docs/markdown/topics/a2_installation.md,sha256=fzx2rkMK-hJh9XlFqHutGVFZS5OkweZYizJO5_FCqHw,6019
|
|
66
|
-
kash/docs/markdown/topics/a3_getting_started.md,sha256=
|
|
65
|
+
kash/docs/markdown/topics/a3_getting_started.md,sha256=qUeFYAn18DkZn0JkkpIkoHh8LFRipeQBaoYa9U8mDK8,9577
|
|
67
66
|
kash/docs/markdown/topics/a4_elements.md,sha256=XNJRw-iqnytiIHOAshp1YnUpHM5KBgFAhuOdp_fekxQ,4615
|
|
68
67
|
kash/docs/markdown/topics/a5_tips_for_use_with_other_tools.md,sha256=VGUdq8dm78E8PFbNR9BmV8Gj-r8zP-vOQz8TibQmGw0,3259
|
|
69
68
|
kash/docs/markdown/topics/b0_philosophy_of_kash.md,sha256=ADtgbvv756vKrJPhdvNGVzJVedOgo6ak7_vGEEFi8Sc,8749
|
|
@@ -78,99 +77,101 @@ kash/docs_base/load_recipe_snippets.py,sha256=nGw4xlbfsKdR6ZngBBGBeRHBwfSPpI_gnJ
|
|
|
78
77
|
kash/docs_base/recipes/general_system_commands.sh,sha256=rFNPuLj3Md09L5yzWx6ILjaR-mFROSlL1cmpWiyJ9WQ,208
|
|
79
78
|
kash/docs_base/recipes/python_dev_commands.sh,sha256=9vJsQiDZKJ7ShokFnzc2Jsto6n87MNRkbgcc2Ee9Kro,179
|
|
80
79
|
kash/docs_base/recipes/tldr_standard_commands.sh,sha256=7nPES55aT45HF3eDhQRrEUiWRpPdvvp40Sg88uADa80,60491
|
|
81
|
-
kash/
|
|
82
|
-
kash/
|
|
83
|
-
kash/
|
|
84
|
-
kash/exec/
|
|
80
|
+
kash/embeddings/cosine.py,sha256=Nke3WF9XB305dWYCzko7vmIwxOWgBu_RlpR-tnMq0ik,1422
|
|
81
|
+
kash/embeddings/embeddings.py,sha256=vx8klwgPc6D7oswWD5MfA3xGCke8zEwS1cGGln7P388,4249
|
|
82
|
+
kash/embeddings/text_similarity.py,sha256=t5I1s5pW9WKBej5h9msg6J4rFzRRY17oJCCa8UFxd28,1787
|
|
83
|
+
kash/exec/__init__.py,sha256=m9UFokJm7EXCMPETXf1hE63zIZDiAfVGRAHb6SmaHbs,1018
|
|
84
|
+
kash/exec/action_decorators.py,sha256=zq6OWQI069ZZi_k7zgqWrM6RNKhc85q7LdqZ7LCzXck,16962
|
|
85
|
+
kash/exec/action_exec.py,sha256=Fo5HK7H87xw2G2FUr8PPgt-eFev2y4caTU9tW15ip4A,17942
|
|
86
|
+
kash/exec/action_registry.py,sha256=numU9pH_W5RgIrYmfi0iYMYy_kLJl6vup8PMrhxAfdc,2627
|
|
85
87
|
kash/exec/combiners.py,sha256=AJ6wgPUHsmwanObsUw64B83XzU26yuh5t4l7igLn82I,4291
|
|
86
88
|
kash/exec/command_exec.py,sha256=zc-gWm7kyB5J5Kp8xhULQ9Jj9AL927KkDPXXk-Yr1Bw,1292
|
|
87
|
-
kash/exec/command_registry.py,sha256=
|
|
88
|
-
kash/exec/fetch_url_metadata.py,sha256=
|
|
89
|
+
kash/exec/command_registry.py,sha256=1s2ogU8b8nqK_AEtslbr1eYrXCGDkeT30UrB7L0BRoM,2027
|
|
90
|
+
kash/exec/fetch_url_metadata.py,sha256=mgS4zwPw0HAVYIroTeKN_whMyoVE2DUDN_W6ylO3gVw,2656
|
|
89
91
|
kash/exec/history.py,sha256=l2XwHGBR1UgTGSFPSBE9mltmxvjR_5qFFO6d-Z008nc,1208
|
|
90
|
-
kash/exec/
|
|
92
|
+
kash/exec/importing.py,sha256=i1utrbqpn8MKfCQ06vavka_cjNaYRHaWnsy0ygNRbxI,1825
|
|
93
|
+
kash/exec/llm_transforms.py,sha256=cKFjGzjC0sWFCtx8nUC7CxDZjhYt2aehZ8PzaCwnF7g,4382
|
|
91
94
|
kash/exec/precondition_checks.py,sha256=HymxL7qm4Yz8V76Um5pKdIRnQ2N-p9rpQQi1fI38bNA,2139
|
|
92
|
-
kash/exec/precondition_registry.py,sha256
|
|
93
|
-
kash/exec/preconditions.py,sha256=
|
|
94
|
-
kash/exec/resolve_args.py,sha256=
|
|
95
|
-
kash/exec/shell_callable_action.py,sha256=
|
|
95
|
+
kash/exec/precondition_registry.py,sha256=cmp0mUfLS42AbAByDhwGx8GWz9PuZNR7z5rPZW9WQE4,1244
|
|
96
|
+
kash/exec/preconditions.py,sha256=kUZFLIoN10P32kIhe7nBHAaj83GzOmtNKXP4pgZESY4,4568
|
|
97
|
+
kash/exec/resolve_args.py,sha256=yGU6Jjzn5yyAN9pNZx8Qfc9oBrosFEdazIs5g9pjWTs,4410
|
|
98
|
+
kash/exec/shell_callable_action.py,sha256=HsufAc4fWNWOZvciwzujs4CABKOgB5emWP4Ux1LbQZ4,4302
|
|
96
99
|
kash/exec_model/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
97
100
|
kash/exec_model/args_model.py,sha256=gquOD0msFA-5xhNU-3R5l8wlwyAMefpMHltpxrDlYGQ,2662
|
|
98
101
|
kash/exec_model/commands_model.py,sha256=iM8QhzA0tAas5OwF5liUfHtm45XIH1LcvCviuh3As7s,4923
|
|
99
102
|
kash/exec_model/script_model.py,sha256=1VG3LhkTmlKzHOYouZ92ZpOSKSCcsz3-tHNcFMQF788,5031
|
|
100
103
|
kash/exec_model/shell_model.py,sha256=LUhQivbpXlerM-DUzNY7BtctNBbn08Wto8CSSxQDxRU,568
|
|
101
104
|
kash/file_storage/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
102
|
-
kash/file_storage/file_store.py,sha256=
|
|
103
|
-
kash/file_storage/item_file_format.py,sha256=
|
|
104
|
-
kash/file_storage/metadata_dirs.py,sha256=
|
|
105
|
+
kash/file_storage/file_store.py,sha256=88gWDwZTSpQPlobwWgVZKUzHp5w60nbb9AQLe0CT4J0,26819
|
|
106
|
+
kash/file_storage/item_file_format.py,sha256=oe71pB7hK6tkU0tBuUEjiuba0NuO7ovkJ1oUqd0UaRo,5368
|
|
107
|
+
kash/file_storage/metadata_dirs.py,sha256=9AqO3S3SSY1dtvP2iLX--E4ui0VIzXttG8R040otfyg,3820
|
|
105
108
|
kash/file_storage/persisted_yaml.py,sha256=4-4RkFqdlBUkTOwkdA4vRKUywEE9TaDo13OGaDUyU9M,1309
|
|
106
109
|
kash/file_storage/store_cache_warmer.py,sha256=cQ_KwxkBPWT3lMmYOCTkXgo7CKaGINns2YzIH32ExSU,1013
|
|
107
110
|
kash/file_storage/store_filenames.py,sha256=95TVIrG0C36Rf77-uhqqfSrt-Xq6DTD0jZDoKnIODD4,1663
|
|
108
111
|
kash/help/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
109
|
-
kash/help/assistant.py,sha256=
|
|
110
|
-
kash/help/assistant_instructions.py,sha256=
|
|
112
|
+
kash/help/assistant.py,sha256=R0XHNi-h51QoQ7rGouD2chrDPGomYaPQUqJdvpjlCs8,11535
|
|
113
|
+
kash/help/assistant_instructions.py,sha256=jW5XAsmLx8YZMKSDJgWnqo9Vwe7VuiTURQHjKBqr_L8,2549
|
|
111
114
|
kash/help/assistant_output.py,sha256=9sM-OVLc6eMSOkxyovB88dNlsknFpf8Wz89Zp5PuEA8,1668
|
|
112
115
|
kash/help/docstring_utils.py,sha256=80vcEGR05G1wwIfzaKhX5QzU38mkKna-gN6_wTNHjXg,3208
|
|
113
|
-
kash/help/function_param_info.py,sha256=
|
|
114
|
-
kash/help/help_embeddings.py,sha256=
|
|
116
|
+
kash/help/function_param_info.py,sha256=IVi6dtRjAWUCxpy9rZ1fRqKLCciK_kuMybTwCZ9XiYg,1692
|
|
117
|
+
kash/help/help_embeddings.py,sha256=_ca7hPo_2UPwSGnB2k3KbcNU1b_I9OMI4RH2Z2E1PCU,2777
|
|
115
118
|
kash/help/help_lookups.py,sha256=0dtuLWEXncqhJCijC98IA9stBDNNcJewt1JYqMLkTx4,2029
|
|
116
119
|
kash/help/help_pages.py,sha256=XyV3SN1cvGjpS8xAbZ_X_6Z9hTIH7vXdgK8DCX2cwNg,3886
|
|
117
|
-
kash/help/help_printing.py,sha256=
|
|
120
|
+
kash/help/help_printing.py,sha256=NAJa8qfaZGce5NKtUqdyDE8Ey0ag2ywjL2LP8ACT060,6078
|
|
118
121
|
kash/help/help_types.py,sha256=xo0AXfaNjlMrWp6dkGixo6P61n1tIhFhlvv9sWhNBrI,7909
|
|
119
122
|
kash/help/recommended_commands.py,sha256=jqc3TjWFBqDJ-iSzXn8vTOplb4uHndwvdAGJfcUV_qs,2486
|
|
120
123
|
kash/help/tldr_help.py,sha256=bcu__MIF4vYlZEeqQqieGIBcRhNCTK5u8jPV08ObzCI,9654
|
|
121
124
|
kash/llm_utils/__init__.py,sha256=3yjign7KD-kM3ZBBcgtrZz-zjJ2Yx2Q-9bzknBx5vbU,401
|
|
122
|
-
kash/llm_utils/clean_headings.py,sha256=
|
|
125
|
+
kash/llm_utils/clean_headings.py,sha256=TGUcPSmUMepTPF5st8b4Jbe9TzZ6HD0Jf_9Nh1SoilA,2330
|
|
123
126
|
kash/llm_utils/fuzzy_parsing.py,sha256=bbG2Y7i5w6kxAVPAixyluv3MDS2hW_pkhnJpVOLHZQc,3278
|
|
124
|
-
kash/llm_utils/llm_api_keys.py,sha256=
|
|
127
|
+
kash/llm_utils/llm_api_keys.py,sha256=Vy2LdX3-3czlQSrHn1Iq7_GXfeu7vETZWKGfCOFAWrg,1086
|
|
125
128
|
kash/llm_utils/llm_completion.py,sha256=ig_rZCHjaOZbt5D-3sOPsSFLpO8AMDXDi40jzdGeOk8,5296
|
|
126
|
-
kash/llm_utils/
|
|
127
|
-
kash/llm_utils/
|
|
128
|
-
kash/llm_utils/
|
|
129
|
-
kash/
|
|
130
|
-
kash/local_server/
|
|
131
|
-
kash/local_server/
|
|
132
|
-
kash/local_server/
|
|
133
|
-
kash/local_server/
|
|
129
|
+
kash/llm_utils/llm_features.py,sha256=NXZ3nvwcsVe0RLj3TtlK9gUu-UWoxdCU6Uw2X2IChrk,1773
|
|
130
|
+
kash/llm_utils/llm_messages.py,sha256=70QwIIvdwo-h4Jfn_6MbEHb3LTUjUmzg_v_dU_Ey__g,1174
|
|
131
|
+
kash/llm_utils/llm_names.py,sha256=VZbdKnoeBx_luB5YQ-Rz37gMt3_FcueJdp40ZaQbpUA,3620
|
|
132
|
+
kash/llm_utils/llms.py,sha256=Zz45v7qrmBNGnmyF-Mn5Q4F1dZGFT2xf_kmWGUMSUUw,3518
|
|
133
|
+
kash/local_server/__init__.py,sha256=kLah74GG0msEARgH6CrilY3OUPuivvx_fXVCqDzDMrc,142
|
|
134
|
+
kash/local_server/local_server.py,sha256=EugjL30VM0pWdZDsiQxU-o6EdEa082qlGd_7RHvI5tk,5863
|
|
135
|
+
kash/local_server/local_server_commands.py,sha256=xJQ1vHVWqkbPwRMw9LwHE8CnKrb8uWeXItI1ruQPx2Y,1584
|
|
136
|
+
kash/local_server/local_server_routes.py,sha256=SgYB_BQ8SRED_4Wtba6iwl_5y3Yjrn-5s9q3zEPsgC8,10533
|
|
137
|
+
kash/local_server/local_url_formatters.py,sha256=SqHjGMEufvm43n34SCa_8Asdwm7utx91Wwymj15TuSY,5327
|
|
134
138
|
kash/local_server/port_tools.py,sha256=oFfOvO6keqS5GowTpVg2FTu5KqkPHBq-dWAEomUIgGo,2008
|
|
135
139
|
kash/local_server/rich_html_template.py,sha256=O9CnkMYkWuMvKJkqD0P8jaZqfUe6hMP4LXFvcLpwN8Q,196
|
|
136
|
-
kash/mcp/__init__.py,sha256
|
|
137
|
-
kash/mcp/mcp_cli.py,sha256=
|
|
140
|
+
kash/mcp/__init__.py,sha256=kLah74GG0msEARgH6CrilY3OUPuivvx_fXVCqDzDMrc,142
|
|
141
|
+
kash/mcp/mcp_cli.py,sha256=jeNmqYTlYpDeFoOsZqtixIQ5ywoIB1LJZaK28opn4p8,3838
|
|
138
142
|
kash/mcp/mcp_main.py,sha256=6PhjKwp631mezDTUAd-pL8lUZx9Gl7yCrCQFW61pqJU,3167
|
|
139
|
-
kash/mcp/mcp_server_commands.py,sha256=
|
|
140
|
-
kash/mcp/mcp_server_routes.py,sha256=
|
|
141
|
-
kash/mcp/mcp_server_sse.py,sha256=
|
|
143
|
+
kash/mcp/mcp_server_commands.py,sha256=dPvW6fE5FRQuaK5Gurg9_Mjk-U-sdoQ17tXOm3_Wh6Q,4163
|
|
144
|
+
kash/mcp/mcp_server_routes.py,sha256=_7KMZM-iNvySXZcPxRMrOsJKcr7L_OtVHujAqHkPJV0,10674
|
|
145
|
+
kash/mcp/mcp_server_sse.py,sha256=_D61cRWMuxgMrk-KxhkRLaaXXpgzJJa0sOB3uRxR0XM,5886
|
|
142
146
|
kash/mcp/mcp_server_stdio.py,sha256=u-oeIZKwzIAGlKmBpipC-hfNQKx36Md9hST11y3AZUY,1174
|
|
143
147
|
kash/media_base/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
144
148
|
kash/media_base/audio_processing.py,sha256=k8V3SpQrSzdxHiInei4z6LycoAnfpQ2dttOfWhWLTX8,2874
|
|
145
|
-
kash/media_base/media_cache.py,sha256=
|
|
146
|
-
kash/media_base/media_services.py,sha256=
|
|
147
|
-
kash/media_base/media_tools.py,sha256=
|
|
148
|
-
kash/media_base/speech_transcription.py,sha256=ccE37w5t7vJuxgF7zGe7txsv6ob2ed5gfDhTUNrLe_U,7816
|
|
149
|
+
kash/media_base/media_cache.py,sha256=0YnZBCPbi12TG0eZoa-02XBoRVZAEmmR6XT8PS-avBI,7453
|
|
150
|
+
kash/media_base/media_services.py,sha256=7H7Y-WDjvZCidoLCsWi01xfuJoP7uiUklviwN_78crE,3406
|
|
151
|
+
kash/media_base/media_tools.py,sha256=enzSebW41vDBGWUwkEn5udhRHmSBvH01MAt5rY1s388,1466
|
|
149
152
|
kash/media_base/timestamp_citations.py,sha256=IHTvlZD3lIfe8T2uHFitgom82WahdHBeKqyc2OjUi9g,2368
|
|
150
|
-
kash/media_base/
|
|
151
|
-
kash/
|
|
152
|
-
kash/
|
|
153
|
+
kash/media_base/transcription_deepgram.py,sha256=AENcjBMyzf01yx-OrsQ5tqOg0-xJigvuMrm0IJgFRF8,5108
|
|
154
|
+
kash/media_base/transcription_format.py,sha256=rOVPTpwvW22c27BRwYF-Tc_xzqK_wOtUZpOPlvkHiDY,2344
|
|
155
|
+
kash/media_base/transcription_whisper.py,sha256=GqvroW9kBAH4-gcbYkMgNCfs2MpMIgm1ip3NMWtJ0IE,1169
|
|
156
|
+
kash/media_base/services/local_file_media.py,sha256=-A-tK6XP7XDCqXQIAoohesFZ3OIvpXWsDoktYBvBuNA,5399
|
|
157
|
+
kash/model/__init__.py,sha256=3cF2ExBzLfMsHul5IAjOywyBjdMthWFtbvLkjqc_BjU,2949
|
|
158
|
+
kash/model/actions_model.py,sha256=RSPGAdrBYkSerUPalYMx3Z1xm570Edoz-5buWX7WFG8,23289
|
|
153
159
|
kash/model/assistant_response_model.py,sha256=6eDfC27nyuBDFjv5nCYMa_Qb2mPbKwDzZy7uLOIyskI,2653
|
|
154
160
|
kash/model/compound_actions_model.py,sha256=HiDK5wwCu3WwZYHATZoLEguiqwR9V6V296wiKtGIX8s,6926
|
|
161
|
+
kash/model/concept_model.py,sha256=we2qOcy9Mv1q7XPfkDLp_CyO_-8DwAUfUYlpgy_jrFs,1011
|
|
155
162
|
kash/model/graph_model.py,sha256=jnctrPiBZ0xwAR8D54JMAJPanA1yZdaxSFQoIpe8anA,2662
|
|
156
|
-
kash/model/items_model.py,sha256=
|
|
163
|
+
kash/model/items_model.py,sha256=HPQX8VxGxJM5pFszYIcFxOqLlLQu3rk6ohPDAkXbqZI,32176
|
|
157
164
|
kash/model/language_list.py,sha256=I3RIbxTseVmPdhExQimimEv18Gmy2ImMbpXe0-_t1Qw,450
|
|
158
165
|
kash/model/llm_actions_model.py,sha256=a29uXVNfS2CiqvM7HPdC6H9A23rSQQihAideuBLMH8g,2110
|
|
159
166
|
kash/model/media_model.py,sha256=64Zic4cRjQpgf_-tOuZlZZe59mz_qu0s6OQSU0YlDUI,3357
|
|
160
167
|
kash/model/operations_model.py,sha256=OGNtCY0QDqHtRNL5ueVpmOASYrwg-ysoUKMvBsQTMWk,5194
|
|
161
|
-
kash/model/params_model.py,sha256=
|
|
168
|
+
kash/model/params_model.py,sha256=qGhsGvtDQoSqWkrKk9QZZfEh-jO1q2V-s-p6X-F37_M,14939
|
|
162
169
|
kash/model/paths_model.py,sha256=H2CZNieTPF2ceW6QQDiwuZwpLddoo6ysazBi3THeNvM,15807
|
|
163
170
|
kash/model/preconditions_model.py,sha256=-IfsVR0NkQhq_3hUTXzK2bFYAd--3YjSwUiDKHVQQqk,2887
|
|
164
171
|
kash/shell/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
165
|
-
kash/shell/shell_main.py,sha256=
|
|
172
|
+
kash/shell/shell_main.py,sha256=pR2a0Y0kXwXJBa6X7FayiM4SGtSs7fclDADUjMI3YEU,2092
|
|
166
173
|
kash/shell/version.py,sha256=FRGs_jmzk6QiRPZfZv36SPzeyJCsVWZ_E2CKRkExazw,835
|
|
167
|
-
kash/shell/
|
|
168
|
-
kash/shell/clideps/dotenv_setup.py,sha256=4PXfTPJ5T4rbmOJKK3Fih3kwlQCONiPc-PRD7bYz_Bg,3823
|
|
169
|
-
kash/shell/clideps/dotenv_utils.py,sha256=R0ZE2RixS6DbQerDufX5NXlApwI0CyymdHBSLiIPCCw,3534
|
|
170
|
-
kash/shell/clideps/pkg_deps.py,sha256=n1_wM7sI6cHheQEsRAc04_nWy6qKxz9U6d3puobQgQ0,7809
|
|
171
|
-
kash/shell/clideps/platforms.py,sha256=TA2Ji-QQNtsaGJ5owZPJxfFE82LfaaHfwaBRPjlT1Q8,175
|
|
172
|
-
kash/shell/clideps/terminal_features.py,sha256=bGrjaNb1NoWJApAL9vYcQs8IXn6MyzY8yyIG0wkQOlg,1692
|
|
173
|
-
kash/shell/completions/completion_scoring.py,sha256=MAWqcDJKDeWk1LzBIex-1MaG7G4QoRsXflJBlM0JgAQ,9053
|
|
174
|
+
kash/shell/completions/completion_scoring.py,sha256=-svesm2cR1AA86jYcxlynXCBZON26eUJce93FlL2nQo,10209
|
|
174
175
|
kash/shell/completions/completion_types.py,sha256=FocRXd6Df3Df0nL2Y1GevMx3FsljJwbQdVgWsIngpaQ,4793
|
|
175
176
|
kash/shell/completions/shell_completions.py,sha256=yHCFs-XRNjReuEsmhEUi-iTE2MoZrUa3RDSKhVe5EfQ,8846
|
|
176
177
|
kash/shell/file_icons/color_for_format.py,sha256=bFuE1lwiyUkgWB3Gk3jrch-9EIQz9thILQiX_a5dGb8,2034
|
|
@@ -182,47 +183,43 @@ kash/shell/input/param_inputs.py,sha256=FiGClMtMe0pv0y_45qJ9PKF61vn8SOPiNeh5yvH0
|
|
|
182
183
|
kash/shell/input/shell_confirm.py,sha256=A17HTxx_DPnis2503Q_LOEW8P9yIWvaj1zHVz4LSz_Q,1070
|
|
183
184
|
kash/shell/output/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
184
185
|
kash/shell/output/kerm_code_utils.py,sha256=92A4AV-IFKKZMWLNZnd_zksNFMBgE_VNXySyn0Kn6Zk,1673
|
|
185
|
-
kash/shell/output/kerm_codes.py,sha256=
|
|
186
|
+
kash/shell/output/kerm_codes.py,sha256=KLVdTM_dL_NeYmGbllzsQoW4IHXJjEsgqqIp1s7P1yI,18877
|
|
186
187
|
kash/shell/output/kmarkdown.py,sha256=RRB5b0Ip0KZ71vnJKFfvxerYkeDFTCVTlHqHfmMy80Y,3675
|
|
187
|
-
kash/shell/output/shell_formatting.py,sha256=
|
|
188
|
+
kash/shell/output/shell_formatting.py,sha256=oxmAeJ2j0ANYSUsL15CUv--KcGlQ6Wa_rywXSDlsZM4,3331
|
|
188
189
|
kash/shell/output/shell_output.py,sha256=-Y0BUh4DOlhyVdawBXvUa6UUYkv38iaKAay-57yBb7Y,11067
|
|
189
190
|
kash/shell/ui/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
190
191
|
kash/shell/ui/shell_results.py,sha256=vO_9UUnI_cr1ZJqCSFgeVwGFy7JLsrEpIAobKvTdkmo,4109
|
|
191
192
|
kash/shell/ui/shell_syntax.py,sha256=1fuDqcCV16AAWwWS4w4iT-tlSnl-Ywdrf68Ge8XIfmQ,751
|
|
192
193
|
kash/shell/utils/argparse_utils.py,sha256=UD2NZXyOlziWf-fPtGCmcmHNmFbNTcFX1UDtx67bJeE,649
|
|
193
|
-
kash/shell/utils/exception_printing.py,sha256=
|
|
194
|
-
kash/shell/utils/native_utils.py,sha256=
|
|
195
|
-
kash/shell/utils/
|
|
196
|
-
kash/
|
|
197
|
-
kash/
|
|
198
|
-
kash/text_handling/
|
|
199
|
-
kash/text_handling/
|
|
200
|
-
kash/text_handling/markdown_util.py,sha256=4E4fkOgw0YTNt1IToS1mb-dvtmAKQjIoWpnMPD60Pl4,4494
|
|
194
|
+
kash/shell/utils/exception_printing.py,sha256=jkSbEZLQmMjLPMRIBolZSkrACYMHJJ_lh6yZQ7Gv-9g,1898
|
|
195
|
+
kash/shell/utils/native_utils.py,sha256=FtIjjB1sOgNifTx1u7nKSAwg9A8wc9-fkACw2_xWnNg,9153
|
|
196
|
+
kash/shell/utils/shell_function_wrapper.py,sha256=fgUuVhocYMKLkGJJQJOER5nFMAvM0ZVpfGu7iJPJI9s,7385
|
|
197
|
+
kash/text_handling/custom_sliding_transforms.py,sha256=stbvN8McdHqC8oOs7QYK0J-Rh3kBLxxxbw7kjlOLKfM,9764
|
|
198
|
+
kash/text_handling/doc_normalization.py,sha256=vWqmIbYLepsJv_kz789aRAGzqAUtUh2iMjjbyZgBh-U,2556
|
|
199
|
+
kash/text_handling/markdown_render.py,sha256=Ea-QiBND0kp4Dc9rYr8Z3dB_CRpAxneGHBOlTDWsDo0,3751
|
|
200
|
+
kash/text_handling/markdown_utils.py,sha256=tjOJYkiq9tw6k1fGDmO81Yv5GiW-ND_yM6Em7aj6pGM,6985
|
|
201
201
|
kash/text_handling/unified_diffs.py,sha256=AS5el-uPkXwpRA9bD46dyMo-YBDXb7zRF_MH3c47shA,4335
|
|
202
202
|
kash/utils/__init__.py,sha256=4Jl_AtgRADdGORimWhYZwbSfQSpQ6SiexNIZzmbcngI,111
|
|
203
|
-
kash/utils/errors.py,sha256=
|
|
203
|
+
kash/utils/errors.py,sha256=tTosrR8Z2bJGoBDxBbmEJ4GPQhS6_P6ENeDUNdLDyRg,3815
|
|
204
204
|
kash/utils/common/__init__.py,sha256=ggeWw1xmbl1mgCQD3c4CNN2h5WXFCsN2wXlCWurEUEI,161
|
|
205
|
-
kash/utils/common/atomic_var.py,sha256=W2PfFgj8yRF6QvMkDlvYm0yqYKpws5EO5SkDTeHjL80,5402
|
|
206
205
|
kash/utils/common/format_utils.py,sha256=IPMKhx-S_SyqiN1cwUKFLJhpt1hT9P4cKZYrfKd1mYk,2431
|
|
207
|
-
kash/utils/common/function_inspect.py,sha256=
|
|
208
|
-
kash/utils/common/import_utils.py,sha256=
|
|
206
|
+
kash/utils/common/function_inspect.py,sha256=gJ7jzd14hpuhJW18kxj6MgC2Q60nhYccQK78tq_hf_M,14085
|
|
207
|
+
kash/utils/common/import_utils.py,sha256=FUsasP-PgxOtRIutm3SnCGH_MBPK6pxUb-oc6dXT0aA,3428
|
|
209
208
|
kash/utils/common/lazyobject.py,sha256=9dmOfSheblOXgo2RRakMwgfPIKdTgtyrlm6dCKAze04,5157
|
|
210
209
|
kash/utils/common/obj_replace.py,sha256=AuiXptUOnuDNcWDgAJ3jEHkLh89XIqCP_SOkgaVyFIQ,2075
|
|
211
210
|
kash/utils/common/parse_key_vals.py,sha256=yZRZIa5GD9SlnBSn2YNZm8PRVKoSJMY8DCmdGujQj_I,2418
|
|
212
211
|
kash/utils/common/parse_shell_args.py,sha256=UZXTZDbV5m5Jy39jdAQ6W8uilr1TNa0__RqnE8UmQ_M,10604
|
|
213
212
|
kash/utils/common/stack_traces.py,sha256=a2NwlK_0xxnjMCDC4LrQu7ueFylF-OImFG3bAAHpPwY,1392
|
|
214
|
-
kash/utils/common/string_replace.py,sha256=KX1IftQPYfIm_4CqpMeS8uRrRiSwx9LfyIajjw3Qfo0,2981
|
|
215
|
-
kash/utils/common/string_template.py,sha256=PmmkcUpSxM2JzAzzbvrs6MEOlolD_-Qkuq3VeLPwo4Y,3758
|
|
216
213
|
kash/utils/common/task_stack.py,sha256=C8tJ4liA9__04EBf75o16FhaBWyyHqSdYKFcZRPOXn8,4800
|
|
217
|
-
kash/utils/common/type_utils.py,sha256=
|
|
214
|
+
kash/utils/common/type_utils.py,sha256=SJirXhPilQom_-OKkFToDLm_82ZwpjcNjRy8U1HaQ0Q,3829
|
|
218
215
|
kash/utils/common/uniquifier.py,sha256=75OY4KIVF8u1eoO0FCPbEGTyVpPOtM-0ctoG_s_jahM,3082
|
|
219
|
-
kash/utils/common/url.py,sha256=
|
|
216
|
+
kash/utils/common/url.py,sha256=hEDC0ImO3DLvaPRflcmiUZ1wK_Ilsm6_9fLaG23sUfo,6515
|
|
220
217
|
kash/utils/file_formats/chat_format.py,sha256=Onby7Zany1UQSUo_JzLs6MIfmoXViZeOAacRTMVe92M,11818
|
|
221
218
|
kash/utils/file_utils/__init__.py,sha256=loL_iW0oOZs0mJ5GelBPptBcqzYKSWdsGcHrpRyxitQ,43
|
|
222
219
|
kash/utils/file_utils/dir_info.py,sha256=HamMr58k_DanTLifj7A2JDxTGWXEZZx2pQuE6Hjcm8g,1856
|
|
223
|
-
kash/utils/file_utils/file_ext.py,sha256
|
|
224
|
-
kash/utils/file_utils/file_formats.py,sha256=
|
|
225
|
-
kash/utils/file_utils/file_formats_model.py,sha256=
|
|
220
|
+
kash/utils/file_utils/file_ext.py,sha256=-H63vlrVI3pfE2Cn_9qF7-QLDaUIu_njc4TieNgAHSY,1860
|
|
221
|
+
kash/utils/file_utils/file_formats.py,sha256=tmrmqM5YTxfvlpvqmeOVz0yVRuPxxIAkVZf1-D0fp5Y,4902
|
|
222
|
+
kash/utils/file_utils/file_formats_model.py,sha256=ZCrjJSgiS6jukJuwoGQVz2W9-u9bzBa2S26hyqWR2oE,14638
|
|
226
223
|
kash/utils/file_utils/file_sort_filter.py,sha256=-hjNV0AvDTU64zTag9vOlZ7Bg5y04I8Bn61J43si7hw,7003
|
|
227
224
|
kash/utils/file_utils/file_walk.py,sha256=cpwVDPuaVm95_ZwFJiAdIuZAGhASI3gJ3ZUsCGP75b8,5527
|
|
228
225
|
kash/utils/file_utils/filename_parsing.py,sha256=sxrZGOv1d4YOCRRtLlpkpYdB-7fIQJqIzUDGH2_S9EA,3350
|
|
@@ -238,45 +235,49 @@ kash/utils/rich_custom/rich_char_transform.py,sha256=3M89tViKM0y31VHsDoHi5eHFWlv
|
|
|
238
235
|
kash/utils/rich_custom/rich_indent.py,sha256=nz72yNpUuYjOsaPNVmxM81oEQm-GKEfQkNsuWmv16G0,2286
|
|
239
236
|
kash/utils/rich_custom/rich_markdown_fork.py,sha256=M_JRaSAyHrSg-wuLv9C9P7SkehSim3lwkqQPuMIFkVw,26551
|
|
240
237
|
kash/web_content/canon_url.py,sha256=Zv2q7xQdIHBFkxxwyJn3_ME-qqMFRi_fKxE_IgV2Z50,742
|
|
241
|
-
kash/web_content/dir_store.py,sha256=
|
|
242
|
-
kash/web_content/file_cache_utils.py,sha256=
|
|
243
|
-
kash/web_content/
|
|
244
|
-
kash/web_content/
|
|
238
|
+
kash/web_content/dir_store.py,sha256=BJc-s-RL5CC-GwhFTC_lhLXSMWluPPnLVmVBx-66DiM,3425
|
|
239
|
+
kash/web_content/file_cache_utils.py,sha256=VZfN6AD_yQT4Q-G3w5QRoCSFeynq0BSOUxcRmltQa0c,5070
|
|
240
|
+
kash/web_content/file_processing.py,sha256=cQC-MnJMM5qG9-y0S4yobkmRi6A75qhHjV6xTwbtYDY,1904
|
|
241
|
+
kash/web_content/local_file_cache.py,sha256=pkGrFF32idDjY0IL0NkzBKWKvVS_tzy0yy3c0mOdcZA,8431
|
|
242
|
+
kash/web_content/web_extract.py,sha256=TjfVyVN7bAtKjGRpgeuV-Mr3VBAZuJE0hZ63rSlJ1gU,2296
|
|
245
243
|
kash/web_content/web_extract_justext.py,sha256=74HLJBKDGKatwxyRDX6za70bZG9LrVmtj9jLX7UJzg4,2540
|
|
246
244
|
kash/web_content/web_extract_readabilipy.py,sha256=yxwO-bVtRGepOobqa3AWSVe7WYCOBvWJV9Sktp60_UI,763
|
|
247
|
-
kash/web_content/web_fetch.py,sha256=
|
|
245
|
+
kash/web_content/web_fetch.py,sha256=dy3p-jrZY2szSgMUgLYWzEbMPsuFopPWKS0C8WIYgMM,3737
|
|
248
246
|
kash/web_content/web_page_model.py,sha256=g9GUJpPJOd3-3mwajVodA3dcapDg1CMHxnPczXKEWUk,657
|
|
249
|
-
kash/web_gen/__init__.py,sha256=
|
|
250
|
-
kash/web_gen/
|
|
251
|
-
kash/web_gen/
|
|
252
|
-
kash/web_gen/
|
|
253
|
-
kash/web_gen/templates/
|
|
254
|
-
kash/web_gen/templates/
|
|
247
|
+
kash/web_gen/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
248
|
+
kash/web_gen/simple_webpage.py,sha256=Lu99W277NT04lnFCrLEjea_RI0VcD56BDk8mUW1bRh4,1393
|
|
249
|
+
kash/web_gen/tabbed_webpage.py,sha256=Q_Htw2QO0O9H3A9OFrWw9GBD73cbwB6hOKF-W6mO6YE,4807
|
|
250
|
+
kash/web_gen/template_render.py,sha256=aypo6UanouftV4RpxgNm6JdquelI52fV0IlihdA3yjE,1908
|
|
251
|
+
kash/web_gen/templates/base_styles.css.jinja,sha256=uClAehxp1tN_mxod_uHbcnkoaFjflHDhc9S42V-ndek,6534
|
|
252
|
+
kash/web_gen/templates/base_webpage.html.jinja,sha256=Nvdd8pLSG2OdbrDQRvYcexYIZoMdr1G_7MdUVHNDoA8,7945
|
|
253
|
+
kash/web_gen/templates/content_styles.css.jinja,sha256=3qcIwIt3DipCDJa9z6oIM_BMxmwoT7E_loTK0F3L9Vo,3629
|
|
255
254
|
kash/web_gen/templates/explain_view.html.jinja,sha256=DNw5Iw5SrhIUFRGB4qNvfcKXsBHVbEJVURGdhvyC75Q,949
|
|
256
|
-
kash/web_gen/templates/item_view.html.jinja,sha256
|
|
257
|
-
kash/web_gen/templates/
|
|
258
|
-
kash/
|
|
255
|
+
kash/web_gen/templates/item_view.html.jinja,sha256=-Rqf2qS9KNbcJp9q1OOtl1aBGgPuwG7jc2Bgw_6YfBg,6791
|
|
256
|
+
kash/web_gen/templates/simple_webpage.html.jinja,sha256=wUUOVhOjCRyHxjOhIl3dcRwppENOzgWaskiM0nX8TNU,721
|
|
257
|
+
kash/web_gen/templates/tabbed_webpage.html.jinja,sha256=u7gabDsCs3neQQlH1y1rIaqT8UumPKVPPZG4VKg5R_g,1823
|
|
258
|
+
kash/workspaces/__init__.py,sha256=prLkBWLn7QkyAjG-bV8Z5ORJ5o0qSiKmRoP63jf0heY,494
|
|
259
259
|
kash/workspaces/param_state.py,sha256=vT_eGWqg2SRviIM5jqEAauznX2B5Xt2nHHu2oRxTcIU,746
|
|
260
|
-
kash/workspaces/selections.py,sha256=
|
|
261
|
-
kash/workspaces/source_items.py,sha256=
|
|
260
|
+
kash/workspaces/selections.py,sha256=bles1G_XueDIP9-kjuTmb1BfI1KK9mBTuHZ2GxJLrEM,12003
|
|
261
|
+
kash/workspaces/source_items.py,sha256=Pwnw3OhjR2IJEMEeHf6hpKloj-ellM5vsY7LgkGevRY,2861
|
|
262
262
|
kash/workspaces/workspace_importing.py,sha256=9LTzPdEFZ8BaliWplPHc87YePL8tJpjtMsICjDQwwD8,1933
|
|
263
263
|
kash/workspaces/workspace_output.py,sha256=dEtXBCdGufupiG2hzB1xZQpS3E-vbVfqHlpRfPWTBRE,5692
|
|
264
264
|
kash/workspaces/workspace_registry.py,sha256=SQt2DZgBEu95Zj9fpy67XdJPgJyKFDCU2laSuiZswNo,2200
|
|
265
|
-
kash/workspaces/workspaces.py,sha256
|
|
266
|
-
kash/xonsh_custom/command_nl_utils.py,sha256=
|
|
267
|
-
kash/xonsh_custom/custom_shell.py,sha256=
|
|
268
|
-
kash/xonsh_custom/customize_prompt.py,sha256=
|
|
269
|
-
kash/xonsh_custom/load_into_xonsh.py,sha256=
|
|
270
|
-
kash/xonsh_custom/shell_load_commands.py,sha256=
|
|
265
|
+
kash/workspaces/workspaces.py,sha256=Z0V_2czs7C_8EFeqlKzxn00CZ-V03_EUKQBDCCI4q5s,8356
|
|
266
|
+
kash/xonsh_custom/command_nl_utils.py,sha256=6Xcx98HXL5HywziHi0XskwFx6kfvz7oCmMX-siJib1A,3392
|
|
267
|
+
kash/xonsh_custom/custom_shell.py,sha256=jydWwHR0-RslioaHHY1sHnM6H6fG3cwOw1XO__sG_b0,19026
|
|
268
|
+
kash/xonsh_custom/customize_prompt.py,sha256=u-jRY-ftXYflBkbJVetEg6GYelPUvqZEpjrPRUTfy8w,6896
|
|
269
|
+
kash/xonsh_custom/load_into_xonsh.py,sha256=D7x6mgcz5XPho39GvbGO2MK81KpeCSNJNGvsajyKx-E,3620
|
|
270
|
+
kash/xonsh_custom/shell_load_commands.py,sha256=bndmVEecIhuzQBI3OUDpH4ac7DXGkAMUVqXXcbrmEqI,4719
|
|
271
271
|
kash/xonsh_custom/shell_which.py,sha256=zRaLhFVg9HEDFXo4dqWKwX07YpfPh25kopeG_fgctOE,1926
|
|
272
|
-
kash/xonsh_custom/xonsh_completers.py,sha256=
|
|
272
|
+
kash/xonsh_custom/xonsh_completers.py,sha256=jxsc279DwZUHm0-iCnCtvbzqJBtq8zu0FUls5J1BA8o,17959
|
|
273
273
|
kash/xonsh_custom/xonsh_env.py,sha256=KEob1vxlT4gBndYrLPP3deQtANA5Sx6PPE9Q08r4ua8,871
|
|
274
|
-
kash/xonsh_custom/
|
|
274
|
+
kash/xonsh_custom/xonsh_keybindings.py,sha256=pSnYoZdJmyvC32U1JeqSADV-wReXEHC_LeYrw3g3NAc,9284
|
|
275
|
+
kash/xonsh_custom/xonsh_modern_tools.py,sha256=mj_b34LZXfE8MJe9EpDmp5JZ0tDM1biYNPAS8jdcURo,1467
|
|
275
276
|
kash/xonsh_custom/xonsh_ranking_completer.py,sha256=ZRGiAfoEgqgnlq2-ReUVEaX5oOgW1DQ9WxIv2OJLuTo,5620
|
|
276
277
|
kash/xontrib/fnm.py,sha256=V2tsOdmIDgbFbZSfMLpsvDIwwJJqiYnOkOySD1cXNXw,3700
|
|
277
|
-
kash/xontrib/kash_extension.py,sha256=
|
|
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.
|
|
278
|
+
kash/xontrib/kash_extension.py,sha256=JRRJC3cZSMOl4sSWEdKAQ_dVRMubWaOltKr8G0dWt6Y,1876
|
|
279
|
+
kash_shell-0.3.11.dist-info/METADATA,sha256=_XB0yGroIFhgrIlFYUHqYE9rZlO_dbMHXIF-4pSm3BM,31255
|
|
280
|
+
kash_shell-0.3.11.dist-info/WHEEL,sha256=qtCwoSJWgHk21S1Kb4ihdzI2rlJ1ZKaIurTj_ngOhyQ,87
|
|
281
|
+
kash_shell-0.3.11.dist-info/entry_points.txt,sha256=SQraWDAo8SqYpthLXThei0mf_hGGyhYBUO-Er_0HcwI,85
|
|
282
|
+
kash_shell-0.3.11.dist-info/licenses/LICENSE,sha256=rCh2PsfYeiU6FK_0wb58kHGm_Fj5c43fdcHEexiVzIo,34562
|
|
283
|
+
kash_shell-0.3.11.dist-info/RECORD,,
|
|
@@ -1,21 +0,0 @@
|
|
|
1
|
-
from kash.config.logger import get_logger
|
|
2
|
-
from kash.exec import kash_action
|
|
3
|
-
from kash.model import ActionInput, ActionResult
|
|
4
|
-
from kash.utils.errors import InvalidInput
|
|
5
|
-
from kash.web_gen import tabbed_webpage
|
|
6
|
-
|
|
7
|
-
log = get_logger(__name__)
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
@kash_action()
|
|
11
|
-
def webpage_config(input: ActionInput) -> ActionResult:
|
|
12
|
-
"""
|
|
13
|
-
Set up a web page config with optional tabs for each page of content. Uses first item as the page title.
|
|
14
|
-
"""
|
|
15
|
-
for item in input.items:
|
|
16
|
-
if not item.body:
|
|
17
|
-
raise InvalidInput(f"Item must have a body: {item}")
|
|
18
|
-
|
|
19
|
-
config_item = tabbed_webpage.webpage_config(input.items)
|
|
20
|
-
|
|
21
|
-
return ActionResult([config_item])
|
kash/concepts/concept_formats.py
DELETED
|
@@ -1,23 +0,0 @@
|
|
|
1
|
-
from kash.text_handling.markdown_util import extract_bullet_points
|
|
2
|
-
from kash.utils.lang_utils.capitalization import capitalize_cms
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
def canonicalize_concept(concept: str) -> str:
|
|
6
|
-
"""
|
|
7
|
-
Convert a concept string (general name, person, etc.) to a canonical form.
|
|
8
|
-
Drop any extraneous Markdown bullets.
|
|
9
|
-
"""
|
|
10
|
-
return capitalize_cms(concept.strip("-* "))
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
def normalize_concepts(concepts: list[str]) -> list[str]:
|
|
14
|
-
return sorted(set(canonicalize_concept(concept) for concept in concepts))
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
def concepts_from_bullet_points(markdown_text: str) -> list[str]:
|
|
18
|
-
"""
|
|
19
|
-
Parse, normalize, capitalize, sort, and then remove exact duplicates from a Markdown
|
|
20
|
-
list of concepts as bullet points.
|
|
21
|
-
"""
|
|
22
|
-
concepts = extract_bullet_points(markdown_text)
|
|
23
|
-
return normalize_concepts(concepts)
|
kash/shell/clideps/api_keys.py
DELETED
|
@@ -1,100 +0,0 @@
|
|
|
1
|
-
from __future__ import annotations
|
|
2
|
-
|
|
3
|
-
from enum import Enum
|
|
4
|
-
from logging import getLogger
|
|
5
|
-
|
|
6
|
-
from rich.text import Text
|
|
7
|
-
|
|
8
|
-
from kash.config.settings import get_system_config_dir
|
|
9
|
-
from kash.shell.clideps.dotenv_utils import env_var_is_set, load_dotenv_paths
|
|
10
|
-
from kash.shell.output.shell_formatting import format_success_or_failure
|
|
11
|
-
from kash.shell.output.shell_output import cprint
|
|
12
|
-
from kash.utils.common.atomic_var import AtomicVar
|
|
13
|
-
|
|
14
|
-
log = getLogger(__name__)
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
class ApiEnvKey(str, Enum):
|
|
18
|
-
"""
|
|
19
|
-
Convenience names for common API env vars. Any other env key is allowed too.
|
|
20
|
-
"""
|
|
21
|
-
|
|
22
|
-
OPENAI_API_KEY = "OPENAI_API_KEY"
|
|
23
|
-
ANTHROPIC_API_KEY = "ANTHROPIC_API_KEY"
|
|
24
|
-
GEMINI_API_KEY = "GEMINI_API_KEY"
|
|
25
|
-
AZURE_API_KEY = "AZURE_API_KEY"
|
|
26
|
-
XAI_API_KEY = "XAI_API_KEY"
|
|
27
|
-
DEEPSEEK_API_KEY = "DEEPSEEK_API_KEY"
|
|
28
|
-
MISTRAL_API_KEY = "MISTRAL_API_KEY"
|
|
29
|
-
PERPLEXITYAI_API_KEY = "PERPLEXITYAI_API_KEY"
|
|
30
|
-
DEEPGRAM_API_KEY = "DEEPGRAM_API_KEY"
|
|
31
|
-
GROQ_API_KEY = "GROQ_API_KEY"
|
|
32
|
-
FIRECRAWL_API_KEY = "FIRECRAWL_API_KEY"
|
|
33
|
-
EXA_API_KEY = "EXA_API_KEY"
|
|
34
|
-
|
|
35
|
-
@classmethod
|
|
36
|
-
def for_provider(cls, provider_name: str) -> ApiEnvKey | None:
|
|
37
|
-
"""
|
|
38
|
-
Get the ApiKey for a provider name, if known.
|
|
39
|
-
"""
|
|
40
|
-
return getattr(cls, provider_name.upper() + "_API_KEY", None)
|
|
41
|
-
|
|
42
|
-
@property
|
|
43
|
-
def provider_name(self) -> str:
|
|
44
|
-
"""
|
|
45
|
-
Get the lowercase provider name for an API ("openai", "azure", etc.).
|
|
46
|
-
This matches LiteLLM's provider names.
|
|
47
|
-
"""
|
|
48
|
-
return self.value.removesuffix("_API_KEY").lower()
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
_log_api_setup_done = AtomicVar(False)
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
def warn_if_missing_api_keys(env_keys: list[str]) -> list[str]:
|
|
55
|
-
missing_apis = [key for key in env_keys if not env_var_is_set(key)]
|
|
56
|
-
if missing_apis:
|
|
57
|
-
log.warning(
|
|
58
|
-
"Missing recommended API keys (%s):\nCheck .env file or run `self_configure` to set them.",
|
|
59
|
-
", ".join(missing_apis),
|
|
60
|
-
)
|
|
61
|
-
|
|
62
|
-
return missing_apis
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
def available_api_keys(all_keys: list[str] | None) -> list[tuple[ApiEnvKey, bool]]:
|
|
66
|
-
if not all_keys:
|
|
67
|
-
all_keys = [key.value for key in ApiEnvKey]
|
|
68
|
-
return [(ApiEnvKey(key), env_var_is_set(key)) for key in all_keys]
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
def print_api_key_setup(
|
|
72
|
-
recommended_keys: list[str], all_keys: list[str] | None = None, once: bool = False
|
|
73
|
-
) -> None:
|
|
74
|
-
if not all_keys:
|
|
75
|
-
all_keys = [key.value for key in ApiEnvKey]
|
|
76
|
-
if once and _log_api_setup_done:
|
|
77
|
-
return
|
|
78
|
-
|
|
79
|
-
dotenv_paths = load_dotenv_paths(True, True, get_system_config_dir())
|
|
80
|
-
|
|
81
|
-
cprint(
|
|
82
|
-
Text.assemble(
|
|
83
|
-
format_success_or_failure(
|
|
84
|
-
value=bool(dotenv_paths),
|
|
85
|
-
true_str=f"Found .env files: {', '.join(str(path) for path in dotenv_paths)}",
|
|
86
|
-
false_str="No .env files found. Set up your API keys in a .env file.",
|
|
87
|
-
),
|
|
88
|
-
)
|
|
89
|
-
)
|
|
90
|
-
|
|
91
|
-
texts = [
|
|
92
|
-
format_success_or_failure(is_found, key.provider_name)
|
|
93
|
-
for key, is_found in available_api_keys(all_keys)
|
|
94
|
-
]
|
|
95
|
-
|
|
96
|
-
cprint(Text.assemble("API keys found: ", Text(" ").join(texts)))
|
|
97
|
-
|
|
98
|
-
warn_if_missing_api_keys(recommended_keys)
|
|
99
|
-
|
|
100
|
-
_log_api_setup_done.set(True)
|