kapsel-cli 0.5.4__tar.gz → 0.6.3__tar.gz
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.
- {kapsel_cli-0.5.4 → kapsel_cli-0.6.3}/PKG-INFO +1 -1
- {kapsel_cli-0.5.4 → kapsel_cli-0.6.3}/kapsel/__init__.py +1 -1
- {kapsel_cli-0.5.4 → kapsel_cli-0.6.3}/kapsel/cli.py +11 -0
- {kapsel_cli-0.5.4 → kapsel_cli-0.6.3}/kapsel/completion/completer.py +1 -0
- {kapsel_cli-0.5.4 → kapsel_cli-0.6.3}/kapsel/completion/kps/builtins/__init__.py +10 -0
- kapsel_cli-0.6.3/kapsel/completion/kps/builtins/add.py +662 -0
- kapsel_cli-0.6.3/kapsel/completion/kps/builtins/restart.py +74 -0
- {kapsel_cli-0.5.4 → kapsel_cli-0.6.3}/kapsel/completion/kps/builtins/status.py +7 -1
- {kapsel_cli-0.5.4 → kapsel_cli-0.6.3}/kapsel/completion/kps/builtins/upgrade.py +102 -32
- {kapsel_cli-0.5.4 → kapsel_cli-0.6.3}/kapsel/completion/spec_manager.py +0 -1
- {kapsel_cli-0.5.4 → kapsel_cli-0.6.3}/kapsel/core/detector.py +32 -0
- kapsel_cli-0.6.3/kapsel/core/tools/__init__.py +36 -0
- kapsel_cli-0.6.3/kapsel/core/tools/installer.py +374 -0
- kapsel_cli-0.6.3/kapsel/core/tools/registry.py +219 -0
- kapsel_cli-0.6.3/kapsel/core/update_check.py +140 -0
- {kapsel_cli-0.5.4 → kapsel_cli-0.6.3}/kapsel/storage/config.py +6 -2
- {kapsel_cli-0.5.4 → kapsel_cli-0.6.3}/kapsel/storage/history.py +15 -9
- {kapsel_cli-0.5.4 → kapsel_cli-0.6.3}/kapsel/ui/banner.py +10 -1
- {kapsel_cli-0.5.4 → kapsel_cli-0.6.3}/kapsel/ui/card.py +4 -0
- {kapsel_cli-0.5.4 → kapsel_cli-0.6.3}/kapsel/ui/theme.py +1 -0
- {kapsel_cli-0.5.4 → kapsel_cli-0.6.3}/kapsel/ui/viewport.py +4 -0
- {kapsel_cli-0.5.4 → kapsel_cli-0.6.3}/kapsel_cli.egg-info/PKG-INFO +1 -1
- {kapsel_cli-0.5.4 → kapsel_cli-0.6.3}/kapsel_cli.egg-info/SOURCES.txt +10 -0
- {kapsel_cli-0.5.4 → kapsel_cli-0.6.3}/pyproject.toml +1 -1
- kapsel_cli-0.6.3/tests/test_add_concurrent.py +82 -0
- {kapsel_cli-0.5.4 → kapsel_cli-0.6.3}/tests/test_history.py +22 -4
- {kapsel_cli-0.5.4 → kapsel_cli-0.6.3}/tests/test_plugin_ai.py +192 -35
- {kapsel_cli-0.5.4 → kapsel_cli-0.6.3}/tests/test_plugin_backup.py +1 -1
- {kapsel_cli-0.5.4 → kapsel_cli-0.6.3}/tests/test_plugin_fetcher.py +2 -1
- kapsel_cli-0.6.3/tests/test_plugin_help.py +204 -0
- {kapsel_cli-0.5.4 → kapsel_cli-0.6.3}/tests/test_plugin_install.py +90 -0
- kapsel_cli-0.6.3/tests/test_plugin_mend.py +154 -0
- {kapsel_cli-0.5.4 → kapsel_cli-0.6.3}/tests/test_plugin_preview.py +2 -2
- kapsel_cli-0.6.3/tests/test_restart_and_pypi.py +85 -0
- kapsel_cli-0.6.3/tests/test_tools_registry.py +87 -0
- kapsel_cli-0.5.4/kapsel/completion/kps/builtins/add.py +0 -218
- {kapsel_cli-0.5.4 → kapsel_cli-0.6.3}/README.md +0 -0
- {kapsel_cli-0.5.4 → kapsel_cli-0.6.3}/kapsel/__main__.py +0 -0
- {kapsel_cli-0.5.4 → kapsel_cli-0.6.3}/kapsel/completion/__init__.py +0 -0
- {kapsel_cli-0.5.4 → kapsel_cli-0.6.3}/kapsel/completion/carapace_engine.py +0 -0
- {kapsel_cli-0.5.4 → kapsel_cli-0.6.3}/kapsel/completion/carapace_installer.py +0 -0
- {kapsel_cli-0.5.4 → kapsel_cli-0.6.3}/kapsel/completion/kps/__init__.py +0 -0
- {kapsel_cli-0.5.4 → kapsel_cli-0.6.3}/kapsel/completion/kps/builtins/completion.py +0 -0
- {kapsel_cli-0.5.4 → kapsel_cli-0.6.3}/kapsel/completion/kps/builtins/config.py +0 -0
- {kapsel_cli-0.5.4 → kapsel_cli-0.6.3}/kapsel/completion/kps/builtins/datadir.py +0 -0
- {kapsel_cli-0.5.4 → kapsel_cli-0.6.3}/kapsel/completion/kps/builtins/dir_nav.py +0 -0
- {kapsel_cli-0.5.4 → kapsel_cli-0.6.3}/kapsel/completion/kps/builtins/help.py +0 -0
- {kapsel_cli-0.5.4 → kapsel_cli-0.6.3}/kapsel/completion/kps/builtins/language.py +0 -0
- {kapsel_cli-0.5.4 → kapsel_cli-0.6.3}/kapsel/completion/kps/builtins/plugin_switch.py +0 -0
- {kapsel_cli-0.5.4 → kapsel_cli-0.6.3}/kapsel/completion/kps/builtins/search.py +0 -0
- {kapsel_cli-0.5.4 → kapsel_cli-0.6.3}/kapsel/completion/kps/builtins/toggle.py +0 -0
- {kapsel_cli-0.5.4 → kapsel_cli-0.6.3}/kapsel/completion/kps/dispatcher.py +0 -0
- {kapsel_cli-0.5.4 → kapsel_cli-0.6.3}/kapsel/completion/kps/registry.py +0 -0
- {kapsel_cli-0.5.4 → kapsel_cli-0.6.3}/kapsel/core/__init__.py +0 -0
- {kapsel_cli-0.5.4 → kapsel_cli-0.6.3}/kapsel/core/block/__init__.py +0 -0
- {kapsel_cli-0.5.4 → kapsel_cli-0.6.3}/kapsel/core/block/model.py +0 -0
- {kapsel_cli-0.5.4 → kapsel_cli-0.6.3}/kapsel/core/block/registry.py +0 -0
- {kapsel_cli-0.5.4 → kapsel_cli-0.6.3}/kapsel/core/block/runner.py +0 -0
- {kapsel_cli-0.5.4 → kapsel_cli-0.6.3}/kapsel/core/engine.py +0 -0
- {kapsel_cli-0.5.4 → kapsel_cli-0.6.3}/kapsel/core/executor.py +0 -0
- {kapsel_cli-0.5.4 → kapsel_cli-0.6.3}/kapsel/core/i18n.py +0 -0
- {kapsel_cli-0.5.4 → kapsel_cli-0.6.3}/kapsel/core/plugin/__init__.py +0 -0
- {kapsel_cli-0.5.4 → kapsel_cli-0.6.3}/kapsel/core/plugin/base.py +0 -0
- {kapsel_cli-0.5.4 → kapsel_cli-0.6.3}/kapsel/core/plugin/catalog.py +0 -0
- {kapsel_cli-0.5.4 → kapsel_cli-0.6.3}/kapsel/core/plugin/context.py +0 -0
- {kapsel_cli-0.5.4 → kapsel_cli-0.6.3}/kapsel/core/plugin/fetcher.py +0 -0
- {kapsel_cli-0.5.4 → kapsel_cli-0.6.3}/kapsel/core/plugin/hooks.py +0 -0
- {kapsel_cli-0.5.4 → kapsel_cli-0.6.3}/kapsel/core/plugin/manager.py +0 -0
- {kapsel_cli-0.5.4 → kapsel_cli-0.6.3}/kapsel/i18n.py +0 -0
- {kapsel_cli-0.5.4 → kapsel_cli-0.6.3}/kapsel/locales/de/LC_MESSAGES/kapsel.mo +0 -0
- {kapsel_cli-0.5.4 → kapsel_cli-0.6.3}/kapsel/locales/de/LC_MESSAGES/kapsel.po +0 -0
- {kapsel_cli-0.5.4 → kapsel_cli-0.6.3}/kapsel/locales/de/help.yaml +0 -0
- {kapsel_cli-0.5.4 → kapsel_cli-0.6.3}/kapsel/locales/de/tips.yaml +0 -0
- {kapsel_cli-0.5.4 → kapsel_cli-0.6.3}/kapsel/locales/en/help.yaml +0 -0
- {kapsel_cli-0.5.4 → kapsel_cli-0.6.3}/kapsel/locales/en/tips.yaml +0 -0
- {kapsel_cli-0.5.4 → kapsel_cli-0.6.3}/kapsel/locales/es/LC_MESSAGES/kapsel.mo +0 -0
- {kapsel_cli-0.5.4 → kapsel_cli-0.6.3}/kapsel/locales/es/LC_MESSAGES/kapsel.po +0 -0
- {kapsel_cli-0.5.4 → kapsel_cli-0.6.3}/kapsel/locales/es/help.yaml +0 -0
- {kapsel_cli-0.5.4 → kapsel_cli-0.6.3}/kapsel/locales/es/tips.yaml +0 -0
- {kapsel_cli-0.5.4 → kapsel_cli-0.6.3}/kapsel/locales/fr/LC_MESSAGES/kapsel.mo +0 -0
- {kapsel_cli-0.5.4 → kapsel_cli-0.6.3}/kapsel/locales/fr/LC_MESSAGES/kapsel.po +0 -0
- {kapsel_cli-0.5.4 → kapsel_cli-0.6.3}/kapsel/locales/fr/help.yaml +0 -0
- {kapsel_cli-0.5.4 → kapsel_cli-0.6.3}/kapsel/locales/fr/tips.yaml +0 -0
- {kapsel_cli-0.5.4 → kapsel_cli-0.6.3}/kapsel/locales/ja/LC_MESSAGES/kapsel.mo +0 -0
- {kapsel_cli-0.5.4 → kapsel_cli-0.6.3}/kapsel/locales/ja/LC_MESSAGES/kapsel.po +0 -0
- {kapsel_cli-0.5.4 → kapsel_cli-0.6.3}/kapsel/locales/ja/help.yaml +0 -0
- {kapsel_cli-0.5.4 → kapsel_cli-0.6.3}/kapsel/locales/ja/tips.yaml +0 -0
- {kapsel_cli-0.5.4 → kapsel_cli-0.6.3}/kapsel/locales/kapsel.pot +0 -0
- {kapsel_cli-0.5.4 → kapsel_cli-0.6.3}/kapsel/locales/ru/LC_MESSAGES/kapsel.mo +0 -0
- {kapsel_cli-0.5.4 → kapsel_cli-0.6.3}/kapsel/locales/ru/LC_MESSAGES/kapsel.po +0 -0
- {kapsel_cli-0.5.4 → kapsel_cli-0.6.3}/kapsel/locales/ru/help.yaml +0 -0
- {kapsel_cli-0.5.4 → kapsel_cli-0.6.3}/kapsel/locales/ru/tips.yaml +0 -0
- {kapsel_cli-0.5.4 → kapsel_cli-0.6.3}/kapsel/locales/zh_CN/LC_MESSAGES/kapsel.mo +0 -0
- {kapsel_cli-0.5.4 → kapsel_cli-0.6.3}/kapsel/locales/zh_CN/LC_MESSAGES/kapsel.po +0 -0
- {kapsel_cli-0.5.4 → kapsel_cli-0.6.3}/kapsel/locales/zh_CN/help.yaml +0 -0
- {kapsel_cli-0.5.4 → kapsel_cli-0.6.3}/kapsel/locales/zh_CN/tips.yaml +0 -0
- {kapsel_cli-0.5.4 → kapsel_cli-0.6.3}/kapsel/storage/__init__.py +0 -0
- {kapsel_cli-0.5.4 → kapsel_cli-0.6.3}/kapsel/storage/logger.py +0 -0
- {kapsel_cli-0.5.4 → kapsel_cli-0.6.3}/kapsel/storage/migrate.py +0 -0
- {kapsel_cli-0.5.4 → kapsel_cli-0.6.3}/kapsel/ui/__init__.py +0 -0
- {kapsel_cli-0.5.4 → kapsel_cli-0.6.3}/kapsel/ui/prompt.py +0 -0
- {kapsel_cli-0.5.4 → kapsel_cli-0.6.3}/kapsel/ui/tips.py +0 -0
- {kapsel_cli-0.5.4 → kapsel_cli-0.6.3}/kapsel_cli.egg-info/dependency_links.txt +0 -0
- {kapsel_cli-0.5.4 → kapsel_cli-0.6.3}/kapsel_cli.egg-info/entry_points.txt +0 -0
- {kapsel_cli-0.5.4 → kapsel_cli-0.6.3}/kapsel_cli.egg-info/requires.txt +0 -0
- {kapsel_cli-0.5.4 → kapsel_cli-0.6.3}/kapsel_cli.egg-info/top_level.txt +0 -0
- {kapsel_cli-0.5.4 → kapsel_cli-0.6.3}/setup.cfg +0 -0
- {kapsel_cli-0.5.4 → kapsel_cli-0.6.3}/tests/test_block_system.py +0 -0
- {kapsel_cli-0.5.4 → kapsel_cli-0.6.3}/tests/test_carapace_installer.py +0 -0
- {kapsel_cli-0.5.4 → kapsel_cli-0.6.3}/tests/test_config.py +0 -0
- {kapsel_cli-0.5.4 → kapsel_cli-0.6.3}/tests/test_dir_nav.py +0 -0
- {kapsel_cli-0.5.4 → kapsel_cli-0.6.3}/tests/test_i18n.py +0 -0
- {kapsel_cli-0.5.4 → kapsel_cli-0.6.3}/tests/test_plugin_alias.py +0 -0
- {kapsel_cli-0.5.4 → kapsel_cli-0.6.3}/tests/test_plugin_autopilot.py +0 -0
- {kapsel_cli-0.5.4 → kapsel_cli-0.6.3}/tests/test_plugin_commit.py +0 -0
- {kapsel_cli-0.5.4 → kapsel_cli-0.6.3}/tests/test_plugin_init.py +0 -0
- {kapsel_cli-0.5.4 → kapsel_cli-0.6.3}/tests/test_plugin_lang.py +0 -0
- {kapsel_cli-0.5.4 → kapsel_cli-0.6.3}/tests/test_plugin_portal.py +0 -0
- {kapsel_cli-0.5.4 → kapsel_cli-0.6.3}/tests/test_plugin_queue.py +0 -0
- {kapsel_cli-0.5.4 → kapsel_cli-0.6.3}/tests/test_plugin_template.py +0 -0
- {kapsel_cli-0.5.4 → kapsel_cli-0.6.3}/tests/test_plugin_trans.py +0 -0
- {kapsel_cli-0.5.4 → kapsel_cli-0.6.3}/tests/test_search_and_completions.py +0 -0
- {kapsel_cli-0.5.4 → kapsel_cli-0.6.3}/tests/test_spec_manager.py +0 -0
- {kapsel_cli-0.5.4 → kapsel_cli-0.6.3}/tests/test_toggle.py +0 -0
- {kapsel_cli-0.5.4 → kapsel_cli-0.6.3}/tests/test_upgrade.py +0 -0
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: kapsel-cli
|
|
3
|
-
Version: 0.
|
|
3
|
+
Version: 0.6.3
|
|
4
4
|
Summary: Next-generation cross-platform terminal capsule & ergonomic shell multiplexer with context-aware command translation and 1,000+ CLI completions.
|
|
5
5
|
Author-email: MrEiu <k648888@vip.qq.com>
|
|
6
6
|
License: MIT
|
|
@@ -48,6 +48,11 @@ def main(args: Optional[List[str]] = None) -> int:
|
|
|
48
48
|
)
|
|
49
49
|
return result.execution.exit_code
|
|
50
50
|
|
|
51
|
+
# Handle 'kapsel restart'
|
|
52
|
+
if clean_args and clean_args[0] == "restart":
|
|
53
|
+
from kapsel.completion.kps.builtins.restart import handle_restart
|
|
54
|
+
return handle_restart()
|
|
55
|
+
|
|
51
56
|
# If positional subcommands passed (e.g. kapsel toggle, kapsel status, kapsel help, kapsel add, kapsel config, kapsel datadir)
|
|
52
57
|
if clean_args:
|
|
53
58
|
engine = DualStateEngine()
|
|
@@ -99,10 +104,16 @@ def main(args: Optional[List[str]] = None) -> int:
|
|
|
99
104
|
|
|
100
105
|
normalized = " ".join(stripped.lower().split())
|
|
101
106
|
if normalized in ("exit", "quit", "bye"):
|
|
107
|
+
engine.history_mgr.record_command(command=user_input, mode="builtin")
|
|
102
108
|
os.environ.pop("KAPSEL_ACTIVE", None)
|
|
103
109
|
console.print("[dim]Exited Kapsel.[/]")
|
|
104
110
|
break
|
|
105
111
|
|
|
112
|
+
if normalized in ("restart", "kapsel restart", "reload"):
|
|
113
|
+
engine.history_mgr.record_command(command=user_input, mode="builtin")
|
|
114
|
+
from kapsel.completion.kps.builtins.restart import handle_restart
|
|
115
|
+
return handle_restart(console=console)
|
|
116
|
+
|
|
106
117
|
try:
|
|
107
118
|
result = engine.dispatch(user_input)
|
|
108
119
|
if engine.config.enable_card_border and not result.execution.is_builtin:
|
|
@@ -312,6 +312,7 @@ class DualStateCompleter(Completer):
|
|
|
312
312
|
("cd", _("Change directory")),
|
|
313
313
|
("clear", _("Clear terminal screen")),
|
|
314
314
|
("exit", _("Exit session")),
|
|
315
|
+
("restart", _("Cleanly restart Kapsel interactive shell session")),
|
|
315
316
|
("git", _("Git version control")),
|
|
316
317
|
("docker", _("Docker container platform")),
|
|
317
318
|
("scoop", _("Windows command-line installer")),
|
|
@@ -215,3 +215,13 @@ def register_builtins(registry: "KpsCommandRegistry") -> None:
|
|
|
215
215
|
scope="system",
|
|
216
216
|
)
|
|
217
217
|
|
|
218
|
+
# 12. restart (Re-launch Kapsel interactive shell)
|
|
219
|
+
from kapsel.completion.kps.builtins.restart import handle_restart_command
|
|
220
|
+
registry.register(
|
|
221
|
+
name="restart",
|
|
222
|
+
handler=handle_restart_command,
|
|
223
|
+
help_text="Cleanly restart Kapsel interactive shell session",
|
|
224
|
+
usage="kapsel restart",
|
|
225
|
+
scope="system",
|
|
226
|
+
)
|
|
227
|
+
|