praetorian-cli 2.2.9__tar.gz → 2.2.11__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.
- {praetorian_cli-2.2.9/praetorian_cli.egg-info → praetorian_cli-2.2.11}/PKG-INFO +1 -1
- {praetorian_cli-2.2.9 → praetorian_cli-2.2.11}/praetorian_cli/sdk/entities/aegis.py +1 -1
- {praetorian_cli-2.2.9 → praetorian_cli-2.2.11}/praetorian_cli/ui/aegis/commands/set.py +3 -2
- {praetorian_cli-2.2.9 → praetorian_cli-2.2.11}/praetorian_cli/ui/aegis/menu.py +5 -2
- {praetorian_cli-2.2.9 → praetorian_cli-2.2.11}/praetorian_cli/ui/aegis/utils.py +12 -11
- {praetorian_cli-2.2.9 → praetorian_cli-2.2.11/praetorian_cli.egg-info}/PKG-INFO +1 -1
- {praetorian_cli-2.2.9 → praetorian_cli-2.2.11}/setup.cfg +1 -1
- {praetorian_cli-2.2.9 → praetorian_cli-2.2.11}/LICENSE +0 -0
- {praetorian_cli-2.2.9 → praetorian_cli-2.2.11}/MANIFEST.in +0 -0
- {praetorian_cli-2.2.9 → praetorian_cli-2.2.11}/README.md +0 -0
- {praetorian_cli-2.2.9 → praetorian_cli-2.2.11}/praetorian_cli/__init__.py +0 -0
- {praetorian_cli-2.2.9 → praetorian_cli-2.2.11}/praetorian_cli/handlers/__init__.py +0 -0
- {praetorian_cli-2.2.9 → praetorian_cli-2.2.11}/praetorian_cli/handlers/add.py +0 -0
- {praetorian_cli-2.2.9 → praetorian_cli-2.2.11}/praetorian_cli/handlers/aegis.py +0 -0
- {praetorian_cli-2.2.9 → praetorian_cli-2.2.11}/praetorian_cli/handlers/agent.py +0 -0
- {praetorian_cli-2.2.9 → praetorian_cli-2.2.11}/praetorian_cli/handlers/chariot.py +0 -0
- {praetorian_cli-2.2.9 → praetorian_cli-2.2.11}/praetorian_cli/handlers/cli_decorators.py +0 -0
- {praetorian_cli-2.2.9 → praetorian_cli-2.2.11}/praetorian_cli/handlers/configure.py +0 -0
- {praetorian_cli-2.2.9 → praetorian_cli-2.2.11}/praetorian_cli/handlers/delete.py +0 -0
- {praetorian_cli-2.2.9 → praetorian_cli-2.2.11}/praetorian_cli/handlers/enrich.py +0 -0
- {praetorian_cli-2.2.9 → praetorian_cli-2.2.11}/praetorian_cli/handlers/get.py +0 -0
- {praetorian_cli-2.2.9 → praetorian_cli-2.2.11}/praetorian_cli/handlers/imports.py +0 -0
- {praetorian_cli-2.2.9 → praetorian_cli-2.2.11}/praetorian_cli/handlers/link.py +0 -0
- {praetorian_cli-2.2.9 → praetorian_cli-2.2.11}/praetorian_cli/handlers/list.py +0 -0
- {praetorian_cli-2.2.9 → praetorian_cli-2.2.11}/praetorian_cli/handlers/script.py +0 -0
- {praetorian_cli-2.2.9 → praetorian_cli-2.2.11}/praetorian_cli/handlers/search.py +0 -0
- {praetorian_cli-2.2.9 → praetorian_cli-2.2.11}/praetorian_cli/handlers/ssh_utils.py +0 -0
- {praetorian_cli-2.2.9 → praetorian_cli-2.2.11}/praetorian_cli/handlers/test.py +0 -0
- {praetorian_cli-2.2.9 → praetorian_cli-2.2.11}/praetorian_cli/handlers/unlink.py +0 -0
- {praetorian_cli-2.2.9 → praetorian_cli-2.2.11}/praetorian_cli/handlers/update.py +0 -0
- {praetorian_cli-2.2.9 → praetorian_cli-2.2.11}/praetorian_cli/handlers/utils.py +0 -0
- {praetorian_cli-2.2.9 → praetorian_cli-2.2.11}/praetorian_cli/main.py +0 -0
- {praetorian_cli-2.2.9 → praetorian_cli-2.2.11}/praetorian_cli/scripts/__init__.py +0 -0
- {praetorian_cli-2.2.9 → praetorian_cli-2.2.11}/praetorian_cli/scripts/commands/__init__.py +0 -0
- {praetorian_cli-2.2.9 → praetorian_cli-2.2.11}/praetorian_cli/scripts/commands/nmap-example.py +0 -0
- {praetorian_cli-2.2.9 → praetorian_cli-2.2.11}/praetorian_cli/scripts/utils.py +0 -0
- {praetorian_cli-2.2.9 → praetorian_cli-2.2.11}/praetorian_cli/sdk/__init__.py +0 -0
- {praetorian_cli-2.2.9 → praetorian_cli-2.2.11}/praetorian_cli/sdk/chariot.py +0 -0
- {praetorian_cli-2.2.9 → praetorian_cli-2.2.11}/praetorian_cli/sdk/entities/__init__.py +0 -0
- {praetorian_cli-2.2.9 → praetorian_cli-2.2.11}/praetorian_cli/sdk/entities/accounts.py +0 -0
- {praetorian_cli-2.2.9 → praetorian_cli-2.2.11}/praetorian_cli/sdk/entities/agents.py +0 -0
- {praetorian_cli-2.2.9 → praetorian_cli-2.2.11}/praetorian_cli/sdk/entities/assets.py +0 -0
- {praetorian_cli-2.2.9 → praetorian_cli-2.2.11}/praetorian_cli/sdk/entities/attributes.py +0 -0
- {praetorian_cli-2.2.9 → praetorian_cli-2.2.11}/praetorian_cli/sdk/entities/capabilities.py +0 -0
- {praetorian_cli-2.2.9 → praetorian_cli-2.2.11}/praetorian_cli/sdk/entities/configurations.py +0 -0
- {praetorian_cli-2.2.9 → praetorian_cli-2.2.11}/praetorian_cli/sdk/entities/credentials.py +0 -0
- {praetorian_cli-2.2.9 → praetorian_cli-2.2.11}/praetorian_cli/sdk/entities/definitions.py +0 -0
- {praetorian_cli-2.2.9 → praetorian_cli-2.2.11}/praetorian_cli/sdk/entities/files.py +0 -0
- {praetorian_cli-2.2.9 → praetorian_cli-2.2.11}/praetorian_cli/sdk/entities/integrations.py +0 -0
- {praetorian_cli-2.2.9 → praetorian_cli-2.2.11}/praetorian_cli/sdk/entities/jobs.py +0 -0
- {praetorian_cli-2.2.9 → praetorian_cli-2.2.11}/praetorian_cli/sdk/entities/keys.py +0 -0
- {praetorian_cli-2.2.9 → praetorian_cli-2.2.11}/praetorian_cli/sdk/entities/preseeds.py +0 -0
- {praetorian_cli-2.2.9 → praetorian_cli-2.2.11}/praetorian_cli/sdk/entities/risks.py +0 -0
- {praetorian_cli-2.2.9 → praetorian_cli-2.2.11}/praetorian_cli/sdk/entities/scanners.py +0 -0
- {praetorian_cli-2.2.9 → praetorian_cli-2.2.11}/praetorian_cli/sdk/entities/schema.py +0 -0
- {praetorian_cli-2.2.9 → praetorian_cli-2.2.11}/praetorian_cli/sdk/entities/search.py +0 -0
- {praetorian_cli-2.2.9 → praetorian_cli-2.2.11}/praetorian_cli/sdk/entities/seeds.py +0 -0
- {praetorian_cli-2.2.9 → praetorian_cli-2.2.11}/praetorian_cli/sdk/entities/settings.py +0 -0
- {praetorian_cli-2.2.9 → praetorian_cli-2.2.11}/praetorian_cli/sdk/entities/statistics.py +0 -0
- {praetorian_cli-2.2.9 → praetorian_cli-2.2.11}/praetorian_cli/sdk/entities/webhook.py +0 -0
- {praetorian_cli-2.2.9 → praetorian_cli-2.2.11}/praetorian_cli/sdk/entities/webpage.py +0 -0
- {praetorian_cli-2.2.9 → praetorian_cli-2.2.11}/praetorian_cli/sdk/keychain.py +0 -0
- {praetorian_cli-2.2.9 → praetorian_cli-2.2.11}/praetorian_cli/sdk/mcp_server.py +0 -0
- {praetorian_cli-2.2.9 → praetorian_cli-2.2.11}/praetorian_cli/sdk/model/__init__.py +0 -0
- {praetorian_cli-2.2.9 → praetorian_cli-2.2.11}/praetorian_cli/sdk/model/aegis.py +0 -0
- {praetorian_cli-2.2.9 → praetorian_cli-2.2.11}/praetorian_cli/sdk/model/globals.py +0 -0
- {praetorian_cli-2.2.9 → praetorian_cli-2.2.11}/praetorian_cli/sdk/model/query.py +0 -0
- {praetorian_cli-2.2.9 → praetorian_cli-2.2.11}/praetorian_cli/sdk/model/utils.py +0 -0
- {praetorian_cli-2.2.9 → praetorian_cli-2.2.11}/praetorian_cli/sdk/test/__init__.py +0 -0
- {praetorian_cli-2.2.9 → praetorian_cli-2.2.11}/praetorian_cli/sdk/test/pytest.ini +0 -0
- {praetorian_cli-2.2.9 → praetorian_cli-2.2.11}/praetorian_cli/sdk/test/test_account.py +0 -0
- {praetorian_cli-2.2.9 → praetorian_cli-2.2.11}/praetorian_cli/sdk/test/test_agent.py +0 -0
- {praetorian_cli-2.2.9 → praetorian_cli-2.2.11}/praetorian_cli/sdk/test/test_asset.py +0 -0
- {praetorian_cli-2.2.9 → praetorian_cli-2.2.11}/praetorian_cli/sdk/test/test_attribute.py +0 -0
- {praetorian_cli-2.2.9 → praetorian_cli-2.2.11}/praetorian_cli/sdk/test/test_capabilities.py +0 -0
- {praetorian_cli-2.2.9 → praetorian_cli-2.2.11}/praetorian_cli/sdk/test/test_configuration.py +0 -0
- {praetorian_cli-2.2.9 → praetorian_cli-2.2.11}/praetorian_cli/sdk/test/test_conversation.py +0 -0
- {praetorian_cli-2.2.9 → praetorian_cli-2.2.11}/praetorian_cli/sdk/test/test_definition.py +0 -0
- {praetorian_cli-2.2.9 → praetorian_cli-2.2.11}/praetorian_cli/sdk/test/test_extend.py +0 -0
- {praetorian_cli-2.2.9 → praetorian_cli-2.2.11}/praetorian_cli/sdk/test/test_file.py +0 -0
- {praetorian_cli-2.2.9 → praetorian_cli-2.2.11}/praetorian_cli/sdk/test/test_job.py +0 -0
- {praetorian_cli-2.2.9 → praetorian_cli-2.2.11}/praetorian_cli/sdk/test/test_key.py +0 -0
- {praetorian_cli-2.2.9 → praetorian_cli-2.2.11}/praetorian_cli/sdk/test/test_mcp.py +0 -0
- {praetorian_cli-2.2.9 → praetorian_cli-2.2.11}/praetorian_cli/sdk/test/test_preseed.py +0 -0
- {praetorian_cli-2.2.9 → praetorian_cli-2.2.11}/praetorian_cli/sdk/test/test_risk.py +0 -0
- {praetorian_cli-2.2.9 → praetorian_cli-2.2.11}/praetorian_cli/sdk/test/test_search.py +0 -0
- {praetorian_cli-2.2.9 → praetorian_cli-2.2.11}/praetorian_cli/sdk/test/test_seed.py +0 -0
- {praetorian_cli-2.2.9 → praetorian_cli-2.2.11}/praetorian_cli/sdk/test/test_setting.py +0 -0
- {praetorian_cli-2.2.9 → praetorian_cli-2.2.11}/praetorian_cli/sdk/test/test_webhook.py +0 -0
- {praetorian_cli-2.2.9 → praetorian_cli-2.2.11}/praetorian_cli/sdk/test/test_webpage.py +0 -0
- {praetorian_cli-2.2.9 → praetorian_cli-2.2.11}/praetorian_cli/sdk/test/test_z_cli.py +0 -0
- {praetorian_cli-2.2.9 → praetorian_cli-2.2.11}/praetorian_cli/sdk/test/ui_mocks.py +0 -0
- {praetorian_cli-2.2.9 → praetorian_cli-2.2.11}/praetorian_cli/sdk/test/utils.py +0 -0
- {praetorian_cli-2.2.9 → praetorian_cli-2.2.11}/praetorian_cli/ui/__init__.py +0 -0
- {praetorian_cli-2.2.9 → praetorian_cli-2.2.11}/praetorian_cli/ui/aegis/__init__.py +0 -0
- {praetorian_cli-2.2.9 → praetorian_cli-2.2.11}/praetorian_cli/ui/aegis/commands/__init__.py +0 -0
- {praetorian_cli-2.2.9 → praetorian_cli-2.2.11}/praetorian_cli/ui/aegis/commands/help.py +0 -0
- {praetorian_cli-2.2.9 → praetorian_cli-2.2.11}/praetorian_cli/ui/aegis/commands/info.py +0 -0
- {praetorian_cli-2.2.9 → praetorian_cli-2.2.11}/praetorian_cli/ui/aegis/commands/job.py +0 -0
- {praetorian_cli-2.2.9 → praetorian_cli-2.2.11}/praetorian_cli/ui/aegis/commands/list.py +0 -0
- {praetorian_cli-2.2.9 → praetorian_cli-2.2.11}/praetorian_cli/ui/aegis/commands/ssh.py +0 -0
- {praetorian_cli-2.2.9 → praetorian_cli-2.2.11}/praetorian_cli/ui/aegis/constants.py +0 -0
- {praetorian_cli-2.2.9 → praetorian_cli-2.2.11}/praetorian_cli/ui/conversation/__init__.py +0 -0
- {praetorian_cli-2.2.9 → praetorian_cli-2.2.11}/praetorian_cli/ui/conversation/textual_chat.py +0 -0
- {praetorian_cli-2.2.9 → praetorian_cli-2.2.11}/praetorian_cli.egg-info/SOURCES.txt +0 -0
- {praetorian_cli-2.2.9 → praetorian_cli-2.2.11}/praetorian_cli.egg-info/dependency_links.txt +0 -0
- {praetorian_cli-2.2.9 → praetorian_cli-2.2.11}/praetorian_cli.egg-info/entry_points.txt +0 -0
- {praetorian_cli-2.2.9 → praetorian_cli-2.2.11}/praetorian_cli.egg-info/requires.txt +0 -0
- {praetorian_cli-2.2.9 → praetorian_cli-2.2.11}/praetorian_cli.egg-info/top_level.txt +0 -0
- {praetorian_cli-2.2.9 → praetorian_cli-2.2.11}/pyproject.toml +0 -0
|
@@ -9,15 +9,16 @@ def handle_set(menu, args):
|
|
|
9
9
|
return
|
|
10
10
|
|
|
11
11
|
selection = args[0]
|
|
12
|
-
selected_agent = parse_agent_identifier(selection, menu.agents)
|
|
12
|
+
selected_agent = parse_agent_identifier(selection, menu.displayed_agents, menu.agents)
|
|
13
13
|
|
|
14
14
|
if selected_agent:
|
|
15
15
|
menu.selected_agent = selected_agent
|
|
16
16
|
hostname = selected_agent.hostname
|
|
17
17
|
menu.console.print(f"\n Selected: {hostname}\n")
|
|
18
18
|
else:
|
|
19
|
+
displayed_count = len(menu.displayed_agents)
|
|
19
20
|
menu.console.print(f"\n[red] Agent not found:[/red] {selection}")
|
|
20
|
-
menu.console.print(f"[dim] Use agent number (1-{
|
|
21
|
+
menu.console.print(f"[dim] Use agent number (1-{displayed_count}), client ID, or hostname[/dim]\n")
|
|
21
22
|
menu.pause()
|
|
22
23
|
|
|
23
24
|
|
|
@@ -54,7 +54,8 @@ class AegisMenu:
|
|
|
54
54
|
self.selected_agent: Optional[Agent] = None
|
|
55
55
|
self._first_render = True
|
|
56
56
|
self.agent_computed_data = {}
|
|
57
|
-
self.current_prompt = "> "
|
|
57
|
+
self.current_prompt = "> "
|
|
58
|
+
self.displayed_agents: List[Agent] = [] # Track currently displayed agents
|
|
58
59
|
|
|
59
60
|
self.user_email, self.username = self.sdk.get_current_user()
|
|
60
61
|
|
|
@@ -173,6 +174,8 @@ class AegisMenu:
|
|
|
173
174
|
if show_offline:
|
|
174
175
|
display_agents = display_agents + offline_agents
|
|
175
176
|
|
|
177
|
+
self.displayed_agents = [agent for _, agent in display_agents]
|
|
178
|
+
|
|
176
179
|
self.console.print()
|
|
177
180
|
|
|
178
181
|
if not display_agents:
|
|
@@ -392,4 +395,4 @@ class AegisMenu:
|
|
|
392
395
|
def run_aegis_menu(sdk: Chariot) -> None:
|
|
393
396
|
"""Run the Aegis menu interface"""
|
|
394
397
|
menu = AegisMenu(sdk)
|
|
395
|
-
menu.run()
|
|
398
|
+
menu.run()
|
|
@@ -132,31 +132,32 @@ def get_agent_display_style(group: str, colors: dict) -> dict:
|
|
|
132
132
|
}
|
|
133
133
|
|
|
134
134
|
|
|
135
|
-
def parse_agent_identifier(identifier: str,
|
|
136
|
-
"""Parse agent identifier and return matching agent
|
|
137
|
-
|
|
135
|
+
def parse_agent_identifier(identifier: str, displayed_agents: List[Agent], all_agents: Optional[List[Agent]] = None) -> Optional[Agent]:
|
|
136
|
+
"""Parse agent identifier and return matching agent
|
|
137
|
+
"""
|
|
138
|
+
if not displayed_agents:
|
|
138
139
|
return None
|
|
139
140
|
|
|
140
|
-
#
|
|
141
|
+
# Use all_agents for fallback searches, or displayed_agents if not provided
|
|
142
|
+
search_agents = all_agents if all_agents is not None else displayed_agents
|
|
143
|
+
|
|
141
144
|
if identifier.isdigit():
|
|
142
145
|
agent_num = int(identifier)
|
|
143
|
-
if 1 <= agent_num <= len(
|
|
144
|
-
return
|
|
146
|
+
if 1 <= agent_num <= len(displayed_agents):
|
|
147
|
+
return displayed_agents[agent_num - 1]
|
|
145
148
|
|
|
146
|
-
|
|
147
|
-
for agent in agents:
|
|
149
|
+
for agent in search_agents:
|
|
148
150
|
try:
|
|
149
151
|
if agent.client_id and agent.client_id.lower() == identifier.lower():
|
|
150
152
|
return agent
|
|
151
153
|
except AttributeError:
|
|
152
154
|
continue
|
|
153
155
|
|
|
154
|
-
|
|
155
|
-
for agent in agents:
|
|
156
|
+
for agent in search_agents:
|
|
156
157
|
try:
|
|
157
158
|
if agent.hostname and agent.hostname.lower() == identifier.lower():
|
|
158
159
|
return agent
|
|
159
160
|
except AttributeError:
|
|
160
161
|
continue
|
|
161
162
|
|
|
162
|
-
return None
|
|
163
|
+
return None
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{praetorian_cli-2.2.9 → praetorian_cli-2.2.11}/praetorian_cli/scripts/commands/nmap-example.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{praetorian_cli-2.2.9 → praetorian_cli-2.2.11}/praetorian_cli/sdk/entities/configurations.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{praetorian_cli-2.2.9 → praetorian_cli-2.2.11}/praetorian_cli/sdk/test/test_configuration.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{praetorian_cli-2.2.9 → praetorian_cli-2.2.11}/praetorian_cli/ui/conversation/textual_chat.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|