argus-cli 0.1.0__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.
Files changed (138) hide show
  1. argus_cli-0.1.0/.gitignore +191 -0
  2. argus_cli-0.1.0/PKG-INFO +99 -0
  3. argus_cli-0.1.0/README.md +56 -0
  4. argus_cli-0.1.0/argus_cli/__init__.py +10 -0
  5. argus_cli-0.1.0/argus_cli/__main__.py +6 -0
  6. argus_cli-0.1.0/argus_cli/_console.py +47 -0
  7. argus_cli-0.1.0/argus_cli/client.py +446 -0
  8. argus_cli-0.1.0/argus_cli/commands/__init__.py +1 -0
  9. argus_cli-0.1.0/argus_cli/commands/audit.py +119 -0
  10. argus_cli-0.1.0/argus_cli/commands/auth.py +112 -0
  11. argus_cli-0.1.0/argus_cli/commands/backends.py +395 -0
  12. argus_cli-0.1.0/argus_cli/commands/batch.py +121 -0
  13. argus_cli-0.1.0/argus_cli/commands/config_cmd.py +171 -0
  14. argus_cli-0.1.0/argus_cli/commands/config_server.py +305 -0
  15. argus_cli-0.1.0/argus_cli/commands/containers.py +392 -0
  16. argus_cli-0.1.0/argus_cli/commands/events.py +93 -0
  17. argus_cli-0.1.0/argus_cli/commands/health.py +150 -0
  18. argus_cli-0.1.0/argus_cli/commands/operations.py +198 -0
  19. argus_cli-0.1.0/argus_cli/commands/pods.py +299 -0
  20. argus_cli-0.1.0/argus_cli/commands/prompts.py +128 -0
  21. argus_cli-0.1.0/argus_cli/commands/registry.py +255 -0
  22. argus_cli-0.1.0/argus_cli/commands/resources.py +78 -0
  23. argus_cli-0.1.0/argus_cli/commands/secrets.py +194 -0
  24. argus_cli-0.1.0/argus_cli/commands/server.py +269 -0
  25. argus_cli-0.1.0/argus_cli/commands/skills.py +204 -0
  26. argus_cli-0.1.0/argus_cli/commands/tools.py +208 -0
  27. argus_cli-0.1.0/argus_cli/commands/workflows.py +147 -0
  28. argus_cli-0.1.0/argus_cli/config.py +242 -0
  29. argus_cli-0.1.0/argus_cli/daemon_client.py +394 -0
  30. argus_cli-0.1.0/argus_cli/design.py +77 -0
  31. argus_cli-0.1.0/argus_cli/main.py +253 -0
  32. argus_cli-0.1.0/argus_cli/output.py +290 -0
  33. argus_cli-0.1.0/argus_cli/repl/__init__.py +29 -0
  34. argus_cli-0.1.0/argus_cli/repl/completions.py +166 -0
  35. argus_cli-0.1.0/argus_cli/repl/dispatch.py +105 -0
  36. argus_cli-0.1.0/argus_cli/repl/handlers.py +292 -0
  37. argus_cli-0.1.0/argus_cli/repl/loop.py +170 -0
  38. argus_cli-0.1.0/argus_cli/repl/state.py +109 -0
  39. argus_cli-0.1.0/argus_cli/repl/toolbar.py +79 -0
  40. argus_cli-0.1.0/argus_cli/theme.py +256 -0
  41. argus_cli-0.1.0/argus_cli/themes/catppuccin-frappe.yaml +18 -0
  42. argus_cli-0.1.0/argus_cli/themes/catppuccin-latte.yaml +18 -0
  43. argus_cli-0.1.0/argus_cli/themes/catppuccin-macchiato.yaml +18 -0
  44. argus_cli-0.1.0/argus_cli/themes/catppuccin-mocha.yaml +18 -0
  45. argus_cli-0.1.0/argus_cli/themes/dracula.yaml +18 -0
  46. argus_cli-0.1.0/argus_cli/themes/everforest.yaml +18 -0
  47. argus_cli-0.1.0/argus_cli/themes/gruvbox.yaml +18 -0
  48. argus_cli-0.1.0/argus_cli/themes/kanagawa.yaml +18 -0
  49. argus_cli-0.1.0/argus_cli/themes/monokai.yaml +18 -0
  50. argus_cli-0.1.0/argus_cli/themes/nord.yaml +18 -0
  51. argus_cli-0.1.0/argus_cli/themes/one-dark.yaml +18 -0
  52. argus_cli-0.1.0/argus_cli/themes/rose-pine-moon.yaml +18 -0
  53. argus_cli-0.1.0/argus_cli/themes/rose-pine.yaml +18 -0
  54. argus_cli-0.1.0/argus_cli/themes/solarized-dark.yaml +18 -0
  55. argus_cli-0.1.0/argus_cli/themes/solarized-light.yaml +18 -0
  56. argus_cli-0.1.0/argus_cli/themes/tokyo-night.yaml +18 -0
  57. argus_cli-0.1.0/argus_cli/tui/__init__.py +19 -0
  58. argus_cli-0.1.0/argus_cli/tui/_config_ops.py +119 -0
  59. argus_cli-0.1.0/argus_cli/tui/_constants.py +23 -0
  60. argus_cli-0.1.0/argus_cli/tui/_dev_launch.py +81 -0
  61. argus_cli-0.1.0/argus_cli/tui/_error_utils.py +81 -0
  62. argus_cli-0.1.0/argus_cli/tui/api_client.py +17 -0
  63. argus_cli-0.1.0/argus_cli/tui/app.py +1258 -0
  64. argus_cli-0.1.0/argus_cli/tui/argus.tcss +589 -0
  65. argus_cli-0.1.0/argus_cli/tui/commands.py +125 -0
  66. argus_cli-0.1.0/argus_cli/tui/events.py +74 -0
  67. argus_cli-0.1.0/argus_cli/tui/screens/__init__.py +25 -0
  68. argus_cli-0.1.0/argus_cli/tui/screens/_base_log.py +143 -0
  69. argus_cli-0.1.0/argus_cli/tui/screens/audit_log.py +226 -0
  70. argus_cli-0.1.0/argus_cli/tui/screens/backend_config.py +461 -0
  71. argus_cli-0.1.0/argus_cli/tui/screens/backend_detail.py +205 -0
  72. argus_cli-0.1.0/argus_cli/tui/screens/base.py +59 -0
  73. argus_cli-0.1.0/argus_cli/tui/screens/catalog_browser.py +227 -0
  74. argus_cli-0.1.0/argus_cli/tui/screens/client_config.py +244 -0
  75. argus_cli-0.1.0/argus_cli/tui/screens/containers.py +248 -0
  76. argus_cli-0.1.0/argus_cli/tui/screens/dashboard.py +67 -0
  77. argus_cli-0.1.0/argus_cli/tui/screens/elicitation.py +83 -0
  78. argus_cli-0.1.0/argus_cli/tui/screens/exit_modal.py +104 -0
  79. argus_cli-0.1.0/argus_cli/tui/screens/export_import.py +376 -0
  80. argus_cli-0.1.0/argus_cli/tui/screens/health.py +440 -0
  81. argus_cli-0.1.0/argus_cli/tui/screens/kubernetes.py +260 -0
  82. argus_cli-0.1.0/argus_cli/tui/screens/operations.py +144 -0
  83. argus_cli-0.1.0/argus_cli/tui/screens/registry.py +262 -0
  84. argus_cli-0.1.0/argus_cli/tui/screens/security.py +240 -0
  85. argus_cli-0.1.0/argus_cli/tui/screens/server_detail.py +170 -0
  86. argus_cli-0.1.0/argus_cli/tui/screens/server_logs.py +232 -0
  87. argus_cli-0.1.0/argus_cli/tui/screens/settings.py +494 -0
  88. argus_cli-0.1.0/argus_cli/tui/screens/setup_wizard.py +714 -0
  89. argus_cli-0.1.0/argus_cli/tui/screens/skills.py +472 -0
  90. argus_cli-0.1.0/argus_cli/tui/screens/theme_picker.py +116 -0
  91. argus_cli-0.1.0/argus_cli/tui/screens/tool_editor.py +327 -0
  92. argus_cli-0.1.0/argus_cli/tui/screens/tools.py +268 -0
  93. argus_cli-0.1.0/argus_cli/tui/server_manager.py +312 -0
  94. argus_cli-0.1.0/argus_cli/tui/settings.py +92 -0
  95. argus_cli-0.1.0/argus_cli/tui/widgets/__init__.py +15 -0
  96. argus_cli-0.1.0/argus_cli/tui/widgets/backend_status.py +223 -0
  97. argus_cli-0.1.0/argus_cli/tui/widgets/capability_tables.py +204 -0
  98. argus_cli-0.1.0/argus_cli/tui/widgets/container_logs.py +112 -0
  99. argus_cli-0.1.0/argus_cli/tui/widgets/container_stats.py +125 -0
  100. argus_cli-0.1.0/argus_cli/tui/widgets/container_table.py +104 -0
  101. argus_cli-0.1.0/argus_cli/tui/widgets/elicitation_form.py +133 -0
  102. argus_cli-0.1.0/argus_cli/tui/widgets/event_log.py +124 -0
  103. argus_cli-0.1.0/argus_cli/tui/widgets/filter_bar.py +176 -0
  104. argus_cli-0.1.0/argus_cli/tui/widgets/filter_toggle.py +64 -0
  105. argus_cli-0.1.0/argus_cli/tui/widgets/health_panel.py +263 -0
  106. argus_cli-0.1.0/argus_cli/tui/widgets/install_panel.py +125 -0
  107. argus_cli-0.1.0/argus_cli/tui/widgets/jump_overlay.py +180 -0
  108. argus_cli-0.1.0/argus_cli/tui/widgets/middleware_panel.py +124 -0
  109. argus_cli-0.1.0/argus_cli/tui/widgets/module_container.py +57 -0
  110. argus_cli-0.1.0/argus_cli/tui/widgets/network_panel.py +135 -0
  111. argus_cli-0.1.0/argus_cli/tui/widgets/optimizer_panel.py +213 -0
  112. argus_cli-0.1.0/argus_cli/tui/widgets/otel_panel.py +169 -0
  113. argus_cli-0.1.0/argus_cli/tui/widgets/param_editor.py +156 -0
  114. argus_cli-0.1.0/argus_cli/tui/widgets/percentage_bar.py +110 -0
  115. argus_cli-0.1.0/argus_cli/tui/widgets/pod_table.py +50 -0
  116. argus_cli-0.1.0/argus_cli/tui/widgets/quick_actions.py +94 -0
  117. argus_cli-0.1.0/argus_cli/tui/widgets/registry_browser.py +299 -0
  118. argus_cli-0.1.0/argus_cli/tui/widgets/registry_panel.py +137 -0
  119. argus_cli-0.1.0/argus_cli/tui/widgets/secrets_panel.py +276 -0
  120. argus_cli-0.1.0/argus_cli/tui/widgets/server_connections_panel.py +125 -0
  121. argus_cli-0.1.0/argus_cli/tui/widgets/server_groups.py +108 -0
  122. argus_cli-0.1.0/argus_cli/tui/widgets/server_info.py +127 -0
  123. argus_cli-0.1.0/argus_cli/tui/widgets/server_selector.py +98 -0
  124. argus_cli-0.1.0/argus_cli/tui/widgets/sessions_panel.py +201 -0
  125. argus_cli-0.1.0/argus_cli/tui/widgets/sync_status.py +164 -0
  126. argus_cli-0.1.0/argus_cli/tui/widgets/tool_ops_panel.py +167 -0
  127. argus_cli-0.1.0/argus_cli/tui/widgets/tool_preview.py +65 -0
  128. argus_cli-0.1.0/argus_cli/tui/widgets/toolbar.py +101 -0
  129. argus_cli-0.1.0/argus_cli/tui/widgets/tplot.py +288 -0
  130. argus_cli-0.1.0/argus_cli/tui/widgets/version_badge.py +47 -0
  131. argus_cli-0.1.0/argus_cli/tui/widgets/version_drift.py +216 -0
  132. argus_cli-0.1.0/argus_cli/tui/widgets/workflows_panel.py +590 -0
  133. argus_cli-0.1.0/argus_cli/widgets/__init__.py +23 -0
  134. argus_cli-0.1.0/argus_cli/widgets/banner.py +35 -0
  135. argus_cli-0.1.0/argus_cli/widgets/panels.py +80 -0
  136. argus_cli-0.1.0/argus_cli/widgets/spinners.py +83 -0
  137. argus_cli-0.1.0/argus_cli/widgets/tables.py +84 -0
  138. argus_cli-0.1.0/pyproject.toml +137 -0
@@ -0,0 +1,191 @@
1
+ # Byte-compiled / optimized / DLL files
2
+ __pycache__/
3
+ *.py[cod]
4
+ *$py.class
5
+
6
+ # C extensions
7
+ *.so
8
+
9
+ # Distribution / packaging
10
+ .venv*
11
+ .Python
12
+ build/
13
+ develop-eggs/
14
+ dist/
15
+ downloads/
16
+ eggs/
17
+ .eggs/
18
+ lib/
19
+ lib64/
20
+ parts/
21
+ sdist/
22
+ var/
23
+ wheels/
24
+ share/python-wheels/
25
+ *.egg-info/
26
+ .installed.cfg
27
+ *.egg
28
+ MANIFEST
29
+
30
+ # PyInstaller
31
+ # Usually these files are written by a python script from a template
32
+ # before PyInstaller builds the exe, so as to inject date/other infos into it.
33
+ *.manifest
34
+ *.spec
35
+
36
+ # Installer logs
37
+ pip-log.txt
38
+ pip-delete-this-directory.txt
39
+
40
+ # Unit test / coverage reports
41
+ htmlcov/
42
+ .tox/
43
+ .nox/
44
+ .coverage
45
+ .coverage.*
46
+ .cache
47
+ nosetests.xml
48
+ coverage.xml
49
+ *.cover
50
+ *.py,cover
51
+ .hypothesis/
52
+ .pytest_cache/
53
+ cover/
54
+
55
+ # Translations
56
+ *.mo
57
+ *.pot
58
+
59
+ # Django stuff:
60
+ *.log
61
+ local_settings.py
62
+ db.sqlite3
63
+ db.sqlite3-journal
64
+
65
+ # Flask stuff:
66
+ instance/
67
+ .webassets-cache
68
+
69
+ # Scrapy stuff:
70
+ .scrapy
71
+
72
+ # Sphinx documentation
73
+ docs/_build/
74
+
75
+ # PyBuilder
76
+ .pybuilder/
77
+ target/
78
+
79
+ # Jupyter Notebook
80
+ .ipynb_checkpoints
81
+
82
+ # IPython
83
+ profile_default/
84
+ ipython_config.py
85
+
86
+ # pyenv
87
+ # For a library or package, you might want to ignore these files since the code is
88
+ # intended to run in multiple environments; otherwise, check them in:
89
+ # .python-version
90
+
91
+ # pipenv
92
+ # According to pypa/pipenv#598, it is recommended to include Pipfile.lock in version control.
93
+ # However, in case of collaboration, if having platform-specific dependencies or dependencies
94
+ # having no cross-platform support, pipenv may install dependencies that don't work, or not
95
+ # install all needed dependencies.
96
+ #Pipfile.lock
97
+
98
+ # UV
99
+ # Similar to Pipfile.lock, it is generally recommended to include uv.lock in version control.
100
+ # This is especially recommended for binary packages to ensure reproducibility, and is more
101
+ # commonly ignored for libraries.
102
+ #uv.lock
103
+
104
+ # poetry
105
+ # Similar to Pipfile.lock, it is generally recommended to include poetry.lock in version control.
106
+ # This is especially recommended for binary packages to ensure reproducibility, and is more
107
+ # commonly ignored for libraries.
108
+ # https://python-poetry.org/docs/basic-usage/#commit-your-poetrylock-file-to-version-control
109
+ #poetry.lock
110
+
111
+ # pdm
112
+ # Similar to Pipfile.lock, it is generally recommended to include pdm.lock in version control.
113
+ #pdm.lock
114
+ # pdm stores project-wide configurations in .pdm.toml, but it is recommended to not include it
115
+ # in version control.
116
+ # https://pdm.fming.dev/latest/usage/project/#working-with-version-control
117
+ .pdm.toml
118
+ .pdm-python
119
+ .pdm-build/
120
+
121
+ # PEP 582; used by e.g. github.com/David-OConnor/pyflow and github.com/pdm-project/pdm
122
+ __pypackages__/
123
+
124
+ # Celery stuff
125
+ celerybeat-schedule
126
+ celerybeat.pid
127
+
128
+ # PID files
129
+ *.pid
130
+
131
+ # SageMath parsed files
132
+ *.sage.py
133
+
134
+ # Environments
135
+ .env
136
+ .venv
137
+ env/
138
+ venv/
139
+ ENV/
140
+ env.bak/
141
+ venv.bak/
142
+
143
+ # Spyder project settings
144
+ .spyderproject
145
+ .spyproject
146
+
147
+ # Rope project settings
148
+ .ropeproject
149
+
150
+ # mkdocs documentation
151
+ /site
152
+
153
+ # mypy
154
+ .mypy_cache/
155
+ .dmypy.json
156
+ dmypy.json
157
+ mypy.json
158
+ reports/
159
+
160
+ # Pyre type checker
161
+ .pyre/
162
+
163
+ # pytype static type analyzer
164
+ .pytype/
165
+
166
+ # Cython debug symbols
167
+ cython_debug/
168
+
169
+ # PyCharm
170
+ # JetBrains specific template is maintained in a separate JetBrains.gitignore that can
171
+ # be found at https://github.com/github/gitignore/blob/main/Global/JetBrains.gitignore
172
+ # and can be added to the global gitignore or merged into this file. For a more nuclear
173
+ # option (not recommended) you can uncomment the following to ignore the entire idea folder.
174
+ #.idea/
175
+
176
+ # Ruff stuff:
177
+ .ruff_cache/
178
+
179
+ # PyPI configuration file
180
+ .pypirc
181
+ *config.yaml
182
+ .vscode
183
+ logs/*
184
+
185
+ # Session metadata
186
+ .argus/
187
+
188
+ # Snyk Security Extension
189
+ .github/instructions/snyk_rules.instructions.md
190
+ .snyk
191
+ .typos.toml
@@ -0,0 +1,99 @@
1
+ Metadata-Version: 2.4
2
+ Name: argus-cli
3
+ Version: 0.1.0
4
+ Summary: Interactive CLI for Argus MCP — dual-mode REPL + one-shot commands
5
+ Project-URL: Repository, https://github.com/diaz3618/argus-mcp
6
+ Author: Daniel Diaz Santiago
7
+ License-Expression: MIT
8
+ Keywords: argus,cli,mcp,repl
9
+ Classifier: Development Status :: 3 - Alpha
10
+ Classifier: Environment :: Console
11
+ Classifier: Intended Audience :: Developers
12
+ Classifier: License :: OSI Approved :: MIT License
13
+ Classifier: Programming Language :: Python :: 3
14
+ Classifier: Programming Language :: Python :: 3.10
15
+ Classifier: Programming Language :: Python :: 3.11
16
+ Classifier: Programming Language :: Python :: 3.12
17
+ Classifier: Programming Language :: Python :: 3.13
18
+ Classifier: Topic :: Software Development :: Libraries
19
+ Classifier: Typing :: Typed
20
+ Requires-Python: >=3.10
21
+ Requires-Dist: argus-mcp
22
+ Requires-Dist: httpx-sse>=0.4.0
23
+ Requires-Dist: httpx>=0.28.0
24
+ Requires-Dist: prompt-toolkit>=3.0.50
25
+ Requires-Dist: pydantic>=2.10.0
26
+ Requires-Dist: python-dotenv>=1.1.0
27
+ Requires-Dist: pyyaml>=6.0.2
28
+ Requires-Dist: rich>=14.0.0
29
+ Requires-Dist: shellingham>=1.5.4
30
+ Requires-Dist: tabulate>=0.9
31
+ Requires-Dist: typer>=0.15.0
32
+ Requires-Dist: typing-extensions>=4.12.0; python_version < '3.11'
33
+ Provides-Extra: dev
34
+ Requires-Dist: mypy>=1.15; extra == 'dev'
35
+ Requires-Dist: pytest-asyncio>=0.25.0; extra == 'dev'
36
+ Requires-Dist: pytest-cov>=6.0; extra == 'dev'
37
+ Requires-Dist: pytest>=8.3; extra == 'dev'
38
+ Requires-Dist: ruff>=0.11.0; extra == 'dev'
39
+ Provides-Extra: tui
40
+ Requires-Dist: textual-plotext>=1.0.0; extra == 'tui'
41
+ Requires-Dist: textual>=1.0.0; extra == 'tui'
42
+ Description-Content-Type: text/markdown
43
+
44
+ # Argus CLI
45
+
46
+ Interactive CLI for [Argus MCP](https://github.com/diaz3618/argus-mcp) — dual-mode REPL + one-shot commands.
47
+
48
+ ## Installation
49
+
50
+ ```bash
51
+ pip install argus-cli # REPL + one-shot CLI
52
+ pip install argus-cli[tui] # adds TUI frontend
53
+ ```
54
+
55
+ ## Usage
56
+
57
+ ```bash
58
+ argus # launch interactive REPL
59
+ argus status # one-shot command
60
+ argus tui # launch TUI (requires tui extra)
61
+ ```
62
+
63
+ ## Entry Points
64
+
65
+ | Command | Description |
66
+ |---------|-------------|
67
+ | `argus` | Main CLI / interactive REPL |
68
+ | `argus-cli` | Alias for `argus` |
69
+ | `argus-tui` | Launch the TUI frontend (requires `tui` extra) |
70
+
71
+ ## Command Groups
72
+
73
+ | Group | Description |
74
+ |-------|-------------|
75
+ | `status` | Server status overview |
76
+ | `health` | Health and readiness probes |
77
+ | `backends` | List and inspect backend connections |
78
+ | `tools` | Browse and call aggregated MCP tools |
79
+ | `resources` | Browse and read aggregated MCP resources |
80
+ | `prompts` | Browse aggregated MCP prompts |
81
+ | `events` | View recent server events |
82
+ | `sessions` | List active MCP client sessions |
83
+ | `config` | View server configuration |
84
+ | `config-server` | Retrieve running server config |
85
+ | `operations` | Reload, reconnect, and shutdown |
86
+ | `batch` | Fetch combined status/backends/capabilities/events |
87
+ | `auth` | Authentication status and re-auth |
88
+ | `audit` | View audit log entries |
89
+ | `registry` | Search external MCP server registries |
90
+ | `skills` | List, enable, and disable skills |
91
+ | `workflows` | List and manage workflows |
92
+ | `secrets` | Manage encrypted secrets |
93
+ | `containers` | Docker container management (via argusd) |
94
+ | `pods` | Kubernetes pod management (via argusd) |
95
+ | `server` | Start/stop argus-mcp server |
96
+
97
+ ## Documentation
98
+
99
+ See the full [CLI Reference](../../docs/cli/) and [REPL Guide](../../docs/cli/repl.md).
@@ -0,0 +1,56 @@
1
+ # Argus CLI
2
+
3
+ Interactive CLI for [Argus MCP](https://github.com/diaz3618/argus-mcp) — dual-mode REPL + one-shot commands.
4
+
5
+ ## Installation
6
+
7
+ ```bash
8
+ pip install argus-cli # REPL + one-shot CLI
9
+ pip install argus-cli[tui] # adds TUI frontend
10
+ ```
11
+
12
+ ## Usage
13
+
14
+ ```bash
15
+ argus # launch interactive REPL
16
+ argus status # one-shot command
17
+ argus tui # launch TUI (requires tui extra)
18
+ ```
19
+
20
+ ## Entry Points
21
+
22
+ | Command | Description |
23
+ |---------|-------------|
24
+ | `argus` | Main CLI / interactive REPL |
25
+ | `argus-cli` | Alias for `argus` |
26
+ | `argus-tui` | Launch the TUI frontend (requires `tui` extra) |
27
+
28
+ ## Command Groups
29
+
30
+ | Group | Description |
31
+ |-------|-------------|
32
+ | `status` | Server status overview |
33
+ | `health` | Health and readiness probes |
34
+ | `backends` | List and inspect backend connections |
35
+ | `tools` | Browse and call aggregated MCP tools |
36
+ | `resources` | Browse and read aggregated MCP resources |
37
+ | `prompts` | Browse aggregated MCP prompts |
38
+ | `events` | View recent server events |
39
+ | `sessions` | List active MCP client sessions |
40
+ | `config` | View server configuration |
41
+ | `config-server` | Retrieve running server config |
42
+ | `operations` | Reload, reconnect, and shutdown |
43
+ | `batch` | Fetch combined status/backends/capabilities/events |
44
+ | `auth` | Authentication status and re-auth |
45
+ | `audit` | View audit log entries |
46
+ | `registry` | Search external MCP server registries |
47
+ | `skills` | List, enable, and disable skills |
48
+ | `workflows` | List and manage workflows |
49
+ | `secrets` | Manage encrypted secrets |
50
+ | `containers` | Docker container management (via argusd) |
51
+ | `pods` | Kubernetes pod management (via argusd) |
52
+ | `server` | Start/stop argus-mcp server |
53
+
54
+ ## Documentation
55
+
56
+ See the full [CLI Reference](../../docs/cli/) and [REPL Guide](../../docs/cli/repl.md).
@@ -0,0 +1,10 @@
1
+ """Argus CLI — Interactive command-line interface for Argus MCP."""
2
+
3
+ __all__ = ["__version__"]
4
+
5
+ from importlib.metadata import PackageNotFoundError, version
6
+
7
+ try:
8
+ __version__ = version("argus-cli")
9
+ except PackageNotFoundError:
10
+ __version__ = "0.0.0-dev"
@@ -0,0 +1,6 @@
1
+ """Allow ``python -m argus_cli`` invocation."""
2
+
3
+ from argus_cli.main import app
4
+
5
+ if __name__ == "__main__":
6
+ app()
@@ -0,0 +1,47 @@
1
+ """Console singleton — shared by theme.py and output.py to avoid circular imports.
2
+
3
+ The module-global singleton pattern is intentional: Rich Console configuration
4
+ (theme, no_color) must be consistent across all output paths. ``reset_console()``
5
+ exists to support tests that need to reconfigure the console between runs.
6
+ """
7
+
8
+ from __future__ import annotations
9
+
10
+ __all__ = ["get_console", "reset_console"]
11
+
12
+ from rich.console import Console
13
+
14
+ _console: Console | None = None
15
+
16
+
17
+ def get_console(no_color: bool | None = None) -> Console:
18
+ """Get or create the Rich console singleton.
19
+
20
+ Args:
21
+ no_color: Override color setting. When ``None``, reads from
22
+ the active CLI config.
23
+ """
24
+ global _console
25
+ if _console is None:
26
+ from argus_cli.theme import ARGUS_THEME, _ensure_loaded
27
+
28
+ _ensure_loaded()
29
+ if no_color is None:
30
+ from argus_cli.config import get_config
31
+
32
+ try:
33
+ no_color = get_config().no_color
34
+ except RuntimeError:
35
+ no_color = False
36
+ _console = Console(
37
+ theme=ARGUS_THEME,
38
+ no_color=no_color,
39
+ stderr=False,
40
+ )
41
+ return _console
42
+
43
+
44
+ def reset_console() -> None:
45
+ """Reset console singleton so the next call picks up a new theme."""
46
+ global _console
47
+ _console = None