axe-cli 1.7.3__py3-none-any.whl → 1.7.4__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.
axe_cli/llm.py CHANGED
@@ -22,6 +22,7 @@ type ProviderType = Literal[
22
22
  "google_genai", # for backward-compatibility, equals to `gemini`
23
23
  "gemini",
24
24
  "vertexai",
25
+ "bodega", # Local MLX inference engine
25
26
  "_echo",
26
27
  "_scripted_echo",
27
28
  "_chaos",
@@ -85,6 +86,14 @@ def augment_provider_with_env_vars(provider: LLMProvider, model: LLMModel) -> di
85
86
  provider.base_url = base_url
86
87
  if api_key := os.getenv("OPENAI_API_KEY"):
87
88
  provider.api_key = SecretStr(api_key)
89
+ case "bodega":
90
+ # Bodega environment variable overrides
91
+ if base_url := os.getenv("BODEGA_BASE_URL"):
92
+ provider.base_url = base_url
93
+ applied["BODEGA_BASE_URL"] = base_url
94
+ if model_name := os.getenv("BODEGA_MODEL"):
95
+ model.model = model_name
96
+ applied["BODEGA_MODEL"] = model_name
88
97
  case _:
89
98
  pass
90
99
 
@@ -105,10 +114,14 @@ def create_llm(
105
114
  thinking: bool | None = None,
106
115
  session_id: str | None = None,
107
116
  ) -> LLM | None:
108
- if provider.type not in {"_echo", "_scripted_echo"} and (
117
+ # Bodega has defaults for base_url and accepts "current" as model
118
+ if provider.type not in {"_echo", "_scripted_echo", "bodega"} and (
109
119
  not provider.base_url or not model.model
110
120
  ):
111
121
  return None
122
+ # For Bodega, only model is required (base_url has a default)
123
+ if provider.type == "bodega" and not model.model:
124
+ return None
112
125
 
113
126
  resolved_api_key = provider.api_key.get_secret_value() if provider.api_key else ""
114
127
 
@@ -184,6 +197,27 @@ def create_llm(
184
197
  api_key=resolved_api_key,
185
198
  vertexai=True,
186
199
  )
200
+ case "bodega":
201
+ from kosong.contrib.chat_provider.bodega import Bodega
202
+
203
+ # Default to localhost:44468 if no base_url provided
204
+ base_url = provider.base_url or "http://localhost:44468"
205
+
206
+ chat_provider = Bodega(
207
+ model=model.model,
208
+ base_url=base_url,
209
+ api_key=resolved_api_key if resolved_api_key else None,
210
+ )
211
+
212
+ # Apply generation kwargs from environment
213
+ gen_kwargs: Bodega.GenerationKwargs = {}
214
+ if temperature := os.getenv("BODEGA_TEMPERATURE"):
215
+ gen_kwargs["temperature"] = float(temperature)
216
+ if max_tokens := os.getenv("BODEGA_MAX_TOKENS"):
217
+ gen_kwargs["max_tokens"] = int(max_tokens)
218
+
219
+ if gen_kwargs:
220
+ chat_provider = chat_provider.with_generation_kwargs(**gen_kwargs)
187
221
  case "_echo":
188
222
  from kosong.chat_provider.echo import EchoChatProvider
189
223
 
@@ -1,11 +1,11 @@
1
1
  ---
2
2
  name: axe-cli-help
3
- description: Answer Axe Code CLI usage, configuration, and troubleshooting questions. Use when user asks about Axe Code CLI installation, setup, configuration, slash commands, keyboard shortcuts, MCP integration, providers, environment variables, how something works internally, or any questions about Axe Code CLI itself.
3
+ description: answer axe cli usage, configuration, and troubleshooting questions. Use when user asks about axe cli installation, setup, configuration, slash commands, keyboard shortcuts, MCP integration, providers, environment variables, how something works internally, or any questions about axe cli itself.
4
4
  ---
5
5
 
6
- # Axe Code CLI Help
6
+ # axe cli help
7
7
 
8
- Help users with Axe Code CLI questions by consulting documentation and source code.
8
+ Help users with axe cli questions by consulting documentation and source code.
9
9
 
10
10
  ## Strategy
11
11
 
@@ -142,47 +142,54 @@ def prompt_user_for_init(work_dir: Path) -> tuple[bool, str]:
142
142
  """
143
143
  console.print()
144
144
  console.print(Panel.fit(
145
- "[bold cyan]🔍 Axe-Dig Codebase Intelligence[/bold cyan]\n\n"
146
- f"[dim]Working directory:[/dim] {work_dir}\n\n"
147
- "Axe-dig provides semantic code search and analysis.\n"
148
- "This requires a one-time indexing of your codebase.",
145
+ "[bold cyan]okay so, lets pre-warm your codebase![/bold cyan]\n\n"
146
+ "this builds the analysis stack once.\n"
147
+ "after completion, queries are instant and the daemon handles everything.\n\n"
148
+ "[dim]parsing structure. building call graphs. computing dependencies. encoding semantics.[/dim]\n\n"
149
+ "axe-dig gives llms [bold]lethal precision.[/bold]\n"
150
+ "natural language queries. [bold]exact context.[/bold] 95% fewer tokens.\n\n"
151
+ "takes two minutes for typical projects.",
149
152
  border_style="cyan"
150
153
  ))
151
154
  console.print()
155
+ console.print(f"[dim]this is the directory we gonna work with: {work_dir}[/dim]")
156
+ console.print()
152
157
 
153
158
  # Check if user wants to initialize
154
159
  if not Confirm.ask(
155
- "[bold]Would you like to initialize axe-dig for this project?[/bold]",
160
+ "[bold]would you like to initialize axe-dig for this project?[/bold]",
156
161
  default=True
157
162
  ):
158
- console.print("[dim]Skipping axe-dig initialization. You can restart axe-cli later to initialize.[/dim]")
163
+ console.print("[dim]ok hmm, skipping axe-dig initialization. you can restart axe-cli later to initialize.[/dim]")
159
164
  return False, ""
160
165
 
161
166
  console.print()
162
- console.print("[bold]Choose an embedding model:[/bold]\n")
163
- console.print(" [cyan]1)[/cyan] [bold]MiniLM[/bold] (Recommended)")
164
- console.print(" • Size: ~90MB download")
165
- console.print(" • RAM: ~2GB during indexing")
166
- console.print(" • Speed: Fast (~1 min for medium projects)")
167
- console.print(" • Quality: Good for most use cases")
167
+ console.print("[bold]choose digging depth:[/bold]\n")
168
+ console.print(" [cyan]1)[/cyan] [bold]light-digging[/bold] (recommended)")
169
+ console.print(" • 90mb download")
170
+ console.print(" • 2gb ram during indexing")
171
+ console.print(" • fast. ~1 min for medium projects")
172
+ console.print(" • good precision for most codebases")
173
+ console.print(" • finds: 'jwt validation' → verify_token()")
168
174
  console.print()
169
- console.print(" [cyan]2)[/cyan] [bold]BGE-Large[/bold] (Best Quality)")
170
- console.print(" • Size: ~1.3GB download")
171
- console.print(" • RAM: ~10GB+ during indexing")
172
- console.print(" • Speed: Slow (5-15 min for medium projects)")
173
- console.print(" • Quality: Best semantic matching")
175
+ console.print(" [cyan]2)[/cyan] [bold]heavy-digging[/bold] (maximum precision)")
176
+ console.print(" • 1.3gb download")
177
+ console.print(" • 10gb+ ram during indexing")
178
+ console.print(" • slower. 5-15 min for medium projects")
179
+ console.print(" • lethal semantic matching")
180
+ console.print(" • finds: 'connection pooling' → subtle patterns across files")
174
181
  console.print()
175
182
 
176
183
  choice = Prompt.ask(
177
- "[bold]Select model[/bold]",
184
+ "[bold]select depth[/bold]",
178
185
  choices=["1", "2"],
179
186
  default="1"
180
187
  )
181
188
 
182
189
  model = "minilm" if choice == "1" else "bge-large"
183
- model_display = "MiniLM (sentence-transformers/all-MiniLM-L6-v2)" if model == "minilm" else "BGE-Large (BAAI/bge-large-en-v1.5)"
190
+ model_display = "light-digging (sentence-transformers/all-MiniLM-L6-v2)" if model == "minilm" else "heavy-digging (BAAI/bge-large-en-v1.5)"
184
191
 
185
- console.print(f"\n[dim]Selected: {model_display}[/dim]")
192
+ console.print(f"\n[dim]selected: {model_display}[/dim]")
186
193
  return True, model
187
194
 
188
195
 
@@ -229,7 +236,7 @@ async def auto_initialize_codebase(work_dir: Path, model: str | None = None, int
229
236
 
230
237
  console.print()
231
238
  console.print(Panel.fit(
232
- "[bold cyan]🔥 Initializing Axe-Dig[/bold cyan]\n"
239
+ "[bold cyan]okay lets do this!, grab a coffee—- axe is now understanding your codebase![/bold cyan]\n"
233
240
  f"[dim]Model: {model_name}[/dim]",
234
241
  border_style="cyan"
235
242
  ))
@@ -248,57 +255,57 @@ async def auto_initialize_codebase(work_dir: Path, model: str | None = None, int
248
255
  ) as progress:
249
256
 
250
257
  # Step 1: Structural indexing
251
- task1 = progress.add_task("[cyan]Building structural index...", total=100)
258
+ task1 = progress.add_task("[cyan]Building structural index and understanding the structure to see what's up...", total=100)
252
259
  progress.update(task1, advance=10)
253
260
 
254
261
  success, output = await run_chop_command(f"chop warm {work_dir}", work_dir)
255
262
 
256
263
  if success:
257
- progress.update(task1, advance=90, description="[green]✓ Structural index built")
264
+ progress.update(task1, advance=90, description="[green]✓ structure indexed")
258
265
  for line in output.split("\n"):
259
266
  if "Indexed" in line and "files" in line:
260
267
  console.print(f" [dim]{line}[/dim]")
261
268
  else:
262
- progress.update(task1, description="[red]✗ Structural indexing failed")
263
- console.print(f" [red]Error: {output[:200]}[/red]")
269
+ progress.update(task1, description="[red]✗structural indexing failed")
270
+ console.print(f" [red]{output[:200]}[/red]")
264
271
  return
265
272
 
266
273
  # Step 2: Semantic indexing
267
- task2 = progress.add_task("[cyan]Building semantic embeddings...", total=100)
274
+ task2 = progress.add_task("[cyan]building semantics...", total=100)
268
275
  progress.update(task2, advance=10)
269
276
 
270
277
  cmd = f"chop semantic index {work_dir} --model {model_name}"
271
- success, output = await run_chop_command(cmd, work_dir, timeout=1800) # 30 min timeout for large codebases
278
+ success, output = await run_chop_command(cmd, work_dir, timeout=1800)
272
279
 
273
280
  if success:
274
- progress.update(task2, advance=90, description="[green]✓ Semantic index built")
281
+ progress.update(task2, advance=90, description="[green]✓ ok, semantic index built")
275
282
  for line in output.split("\n"):
276
283
  if "Indexed" in line and "code units" in line:
277
284
  console.print(f" [dim]{line}[/dim]")
278
285
  else:
279
- progress.update(task2, description="[yellow]⚠ Semantic indexing failed (optional)")
280
- console.print(f" [yellow]Warning: {output[:200]}[/yellow]")
286
+ progress.update(task2, description="[yellow]⚠ semantic indexing failed due to some reason, maybe try again?")
287
+ console.print(f" [yellow]{output[:200]}[/yellow]")
281
288
 
282
289
  # Step 3: Start daemon
283
- task3 = progress.add_task("[cyan]Starting daemon...", total=100)
290
+ task3 = progress.add_task("[cyan]starting daemon...", total=100)
284
291
  progress.update(task3, advance=10)
285
292
 
286
293
  success, output = await run_chop_command(f"chop daemon start --project {work_dir}", work_dir, timeout=30)
287
294
 
288
295
  if success or "already running" in output.lower():
289
- progress.update(task3, advance=90, description="[green] Daemon started")
296
+ progress.update(task3, advance=90, description="[green]daemon active")
290
297
  else:
291
- progress.update(task3, description="[yellow]⚠ Daemon start skipped")
292
- console.print(f" [dim]Note: Run 'chop daemon start --project {work_dir}' manually if needed[/dim]")
298
+ progress.update(task3, description="[yellow]⚠ umm, daemon skipped")
299
+ console.print(f" [dim]you can run 'chop daemon start --project {work_dir}' manually if needed[/dim]")
293
300
 
294
301
  console.print()
295
302
  console.print(Panel.fit(
296
- "[bold green] Axe-Dig Ready![/bold green]\n\n"
297
- "[dim]Available tools:[/dim]\n"
298
- " • [cyan]CodeSearch[/cyan] - Semantic code search\n"
299
- " • [cyan]CodeContext[/cyan] - Token-optimized function context\n"
300
- " • [cyan]CodeImpact[/cyan] - Find all callers of a function\n"
301
- " • [cyan]CodeStructure[/cyan] - List functions/classes",
303
+ "[bold green]axe ready[/bold green]\n\n"
304
+ "[dim]tools available:[/dim]\n"
305
+ " • [cyan]codesearch[/cyan] - semantic search by behavior\n"
306
+ " • [cyan]codecontext[/cyan] - precise function context\n"
307
+ " • [cyan]codeimpact[/cyan] - reverse call graph\n"
308
+ " • [cyan]codestructure[/cyan] - function and class maps",
302
309
  border_style="green"
303
310
  ))
304
311
  console.print()
@@ -312,9 +312,47 @@ class Shell:
312
312
  _AXE_PINK = "magenta"
313
313
  _LOGO = f"""\
314
314
  [{_AXE_PINK}]\
315
- ◠◡◠
316
- ◠◡◡◡◠
317
- ◠◡◡◡◡◠\
315
+
316
+ .--::. .::--.
317
+ =#%%%%##*+-: :=+*##%%%%#-
318
+ .*%##****###%%#+: -+#%%%##*****#%+
319
+ .*###+-----===+*#%* .#%%#*+===----=+#%*
320
+ *###=-----------=+: =- .+==-----------+#%+
321
+ -%##=---------------=%%+:---------------=#%:
322
+ ###=---------------+#+=*#=---------------+%*
323
+ +*+---------------*#=---+#---------------=*+
324
+ .:--------------*#=-----++:=-------------. .
325
+ .:=+*###* *#++++==--------=#=-------*:-=-------===++** ###**+=:.
326
+ :=*#%%%#**++::+#+++++***+=--=:++--------=-.=--==+****+++*+.-++**#%%%#*=:
327
+ =*#%%#*+=-------=#=------=+*+=-.-=--------=: -+***+==-----*:-=----==+*#%%#*-
328
+ =%###+=-----------+#---------=+: -=------==. -*=---------+-.=---------=+*##%-
329
+ :###+-------------:=+----------- .::=----=--. -----------=: --------------+##.
330
+ *##*--------------.-+---------=.:= :=--=::+. =--------==. -=-------------+%+
331
+ :###=--------------..==-------=- := .==:.+- :=-==----=- -=-------------=##.
332
+ -%#*--------------=: .:------==. =- :- == .==----=--: .----------------*%:
333
+ -##+--------=++**+*=. .==--:-- =. :=. ----=++: :+**+++==---------*#:
334
+ :*#=:---+***++==--==-: .:-===-: .- -. :==+==-:.:-=====++***+=-----**.
335
+ . -++*++=----------=--::::::-: :=-:::---==----------=+**+== .
336
+ =*#*=------------===-:. .. .. .:--=--------------=*#+:
337
+ .**---=+**++==----===-:...:--:. . . .:-::...:-==------==+**+=-.+#=
338
+ -##=------=++++++==-:. .::::..: -: -: .....:::. ::-=========-----+#%*.
339
+ -%#=--------------=: .:::::--=: -- . =: -=-:::::. :--------------=###.
340
+ :##=--------------=..-=========: := .=- .=. -=======-==:-=-------------+###
341
+ *#*---------------.:==--------= .= .=-=- .= :=--------=+----------------*##+
342
+ -##+-------------=.=+----------- :..=---=- ...=---------=*=--------------+###.
343
+ +%#*=-----------=:=+----------=: -=-----==: -=---------=#=-------------*##%-
344
+ .+#%#*+=----------*--------=++-. -=--------=: .-===-------**----------=+#%##=.
345
+ .-+#%%#*+==----*+-====++++=--=.=---------+=:=::-=++==---=#=----==+*#%%#+:
346
+ :=+*####* .#*****++=---=-=.-+--------*---=----=++****%* :#####*+-.
347
+ ..:: .:==------------:*=------**------------==-.. ::..
348
+ .++-------------=-=*-----+#---------------=+=
349
+ .##=---------------+#=-=*#=---------------#%*
350
+ =%*----------------+#*#*----------------*##:
351
+ .##+--------------=..*=.---------------+##+
352
+ :##*=---------=+*%* .##+=---------=*##*
353
+ :#%#+===++**#%#*-. :=####*+====+##%*.
354
+ .*%%%%%%%#*+-. :=+*#%%%%%%#=
355
+ :==--:. .:--===: \
318
356
  [/{_AXE_PINK}]\
319
357
  """
320
358
 
@@ -332,7 +370,7 @@ class WelcomeInfoItem:
332
370
 
333
371
 
334
372
  def _print_welcome_info(name: str, info_items: list[WelcomeInfoItem]) -> None:
335
- head = Text.from_markup("Welcome to Axe Code CLI!")
373
+ head = Text.from_markup("welcome to axe.")
336
374
  help_text = Text.from_markup("[grey50]Send /help for help information.[/grey50]")
337
375
 
338
376
  # Use Table for precise width control
axe_cli/ui/shell/slash.py CHANGED
@@ -80,9 +80,9 @@ def help(app: Shell, args: str):
80
80
  renderables.append(
81
81
  BulletColumns(
82
82
  Group(
83
- Text.from_markup("[grey50]Help! I need somebody. Help! Not just anybody.[/grey50]"),
84
- Text.from_markup("[grey50]Help! You know I need someone. Help![/grey50]"),
85
- Text.from_markup("[grey50]\u2015 The Beatles, [italic]Help![/italic][/grey50]"),
83
+ Text.from_markup("[grey50]it's not who you are underneath, but what you do that defines you..[/grey50]"),
84
+ Text.from_markup("[grey50]so start doing. the help you need is right here.[/grey50]"),
85
+ Text.from_markup("[grey50]\u2015 Batman, [italic]The Dark Knight[/italic][/grey50]"),
86
86
  ),
87
87
  bullet_style="grey50",
88
88
  )
@@ -90,8 +90,8 @@ def help(app: Shell, args: str):
90
90
  renderables.append(
91
91
  BulletColumns(
92
92
  Text(
93
- "Sure, Axe is ready to help! "
94
- "Just send me messages and I will help you get things done!"
93
+ "sure, axe is ready to help! "
94
+ "just send me messages and i will help you get things done!"
95
95
  ),
96
96
  )
97
97
  )
@@ -259,7 +259,7 @@ async def model(app: Shell, args: str):
259
259
  @registry.command
260
260
  @shell_mode_registry.command
261
261
  def feedback(app: Shell, args: str):
262
- """Submit feedback to make Axe Code CLI better"""
262
+ """Submit feedback to make axe cli better"""
263
263
  import webbrowser
264
264
 
265
265
  ISSUE_URL = "https://github.com/SRSWTI/axe-code/issues"
@@ -16,6 +16,20 @@ from rich.padding import Padding
16
16
  from rich.panel import Panel
17
17
  from rich.spinner import Spinner
18
18
  from rich.text import Text
19
+ import random
20
+
21
+ PROCESSING_MESSAGES = [
22
+ "Processing your request...",
23
+ "Warming up the gears...",
24
+ "Thinking deep thoughts...",
25
+ "Consulting the oracle...",
26
+ "Connecting to the neural net...",
27
+ "Loading context...",
28
+ "Crunching the numbers...",
29
+ "Igniting the synapses...",
30
+ "Traversing the latent space...",
31
+ "Waiting for the first spark...",
32
+ ]
19
33
 
20
34
  from axe_cli.tools import extract_key_argument
21
35
  from axe_cli.ui.shell.console import console
@@ -564,7 +578,8 @@ class _LiveView:
564
578
 
565
579
  if isinstance(msg, StepBegin):
566
580
  self.cleanup(is_interrupt=False)
567
- self._mooning_spinner = Spinner("moon", "")
581
+ message = random.choice(PROCESSING_MESSAGES)
582
+ self._mooning_spinner = Spinner("moon", f" {message}")
568
583
  self.refresh_soon()
569
584
  return
570
585
 
@@ -1,7 +1,7 @@
1
1
  Metadata-Version: 2.3
2
2
  Name: axe-cli
3
- Version: 1.7.3
4
- Summary: axe, yerrrrrr
3
+ Version: 1.7.4
4
+ Summary: axe, yerrrr
5
5
  Requires-Dist: agent-client-protocol==0.7.0
6
6
  Requires-Dist: axe-dig
7
7
  Requires-Dist: aiofiles>=24.0,<26.0
@@ -25,7 +25,7 @@ axe_cli/cli/toad.py,sha256=6Kncs4axEpM85xbFqZgB2udqf4yLMI108rsWGjPrePQ,2221
25
25
  axe_cli/config.py,sha256=RTGu0Artcz61tnQCxRrCzUgujGlU7-EZjOHZ0CUoB1s,9170
26
26
  axe_cli/constant.py,sha256=seqfvVWoZFQF_K4MUyhp5xS9AfCG4fgqk1PNsQ7IFqU,166
27
27
  axe_cli/exception.py,sha256=Y_edY-Kh-g-9-vblfcXOsiM13x3dy7DU7sh05xet4GU,602
28
- axe_cli/llm.py,sha256=Px4Dm7moi4A87kMoGGsf56JEeA0dsuQV91PJORsr1ko,9865
28
+ axe_cli/llm.py,sha256=nq3DTLVgF7jhNOQCLPtvSI7BAYjg8f-SXqQzvVVgW1U,11394
29
29
  axe_cli/metadata.py,sha256=83ZjJJjJ3uaPYAMBAhzCOXIkh9gH6fpwRNvf0XW7W-Q,3159
30
30
  axe_cli/prompts/__init__.py,sha256=V9_bX3xUHgS4fy1wjuevRilXNeENbxizUxOn4wSDOFw,210
31
31
  axe_cli/prompts/compact.md,sha256=JHU6GaPA36vFVFoQNmalWcx92MqpY3Ff3Gyn3Xh6Dgo,1858
@@ -37,7 +37,7 @@ axe_cli/skill/__init__.py,sha256=ig3v_43ElRkPxWHYvJm8vURn2sVV5lklQl9pVc2N8zI,909
37
37
  axe_cli/skill/flow/__init__.py,sha256=w6kcpH-Uvsvehdfx41DxhZskJAIJoud65oKyXPyPwiA,2622
38
38
  axe_cli/skill/flow/d2.py,sha256=vMnhQHzmtEmPpLcEpuKDeEunjuctw5hwHq1O-Ov0gsY,14315
39
39
  axe_cli/skill/flow/mermaid.py,sha256=nmyOPfhA0uw6KPsEViMzzTB-XgA8jCsSB9Ay-XYaByA,8195
40
- axe_cli/skills/axe-cli-help/SKILL.md,sha256=CM4Q-p5Hn4QbX28pYGk2PilBRsTkNXe5Pt6UNgTjxEQ,1771
40
+ axe_cli/skills/axe-cli-help/SKILL.md,sha256=A9NvPAwczhMk0TGC1aeUrB3isMKAbo8sA3ezXWE6BZU,1746
41
41
  axe_cli/skills/skill-creator/SKILL.md,sha256=3-I6klhUIwm2W_YQApCjippKx34hd4pgpZzLjzX1Zvo,18091
42
42
  axe_cli/soul/__init__.py,sha256=qKiTLxsz6S-AvUYfnYkocFUaFO1Wcaplk7vj-ok1vIg,6964
43
43
  axe_cli/soul/agent.py,sha256=NqpuduXKyC48GIctm-E5NuGlld76EvBgO4WxIV_JAIk,9455
@@ -53,7 +53,7 @@ axe_cli/token_counter.py,sha256=j_XDHMSScLoMFmVFQeSeyLRew2hFEFW8BAtw2Z3IT4E,9994
53
53
  axe_cli/tools/AGENTS.md,sha256=6sssYW5lxqrUL00FsiuV44MmLalPbbzg1vuwdfwJivw,211
54
54
  axe_cli/tools/__init__.py,sha256=ptBMSp7toE5HFABENBV33E3Tgo5KjmXrsbeMaVaBmsA,3805
55
55
  axe_cli/tools/axe/__init__.py,sha256=VWsIvoZ-wXcx3vfVr9XERp8_IfgkGVPMsNM2X0d6uWc,2977
56
- axe_cli/tools/axe/auto_init.py,sha256=YbXUX9InSztfX9OI7By091h4K0s38oTTAzqMPSBgjho,11691
56
+ axe_cli/tools/axe/auto_init.py,sha256=jwBfsF-0bWyDFki-pHZkQHW__bsZSMwRnF10agqGr_s,12254
57
57
  axe_cli/tools/axe/context.py,sha256=wOG4suLx_L-zB-oaTEJs1RqGe5CaIIdJFxMrQq8f9Og,4956
58
58
  axe_cli/tools/axe/impact.py,sha256=EbFy81NzLsoT_ErU9_oh26qZu79sMUzZbEepNHGRuCU,4860
59
59
  axe_cli/tools/axe/index.py,sha256=_CHTB1OCoaaBFmpr4xBLn9X4sjhhaRINmZJR5Eacvfg,4759
@@ -101,7 +101,7 @@ axe_cli/ui/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
101
101
  axe_cli/ui/acp/__init__.py,sha256=HzssqvXjFmvh4Ne9FD_VB0-X7OeCfLBk7-NOFBJGFNY,2681
102
102
  axe_cli/ui/print/__init__.py,sha256=VHstYvqDMqQxbev8lMB6vhDVAXoTsji5p9kW15W0Dg4,4732
103
103
  axe_cli/ui/print/visualize.py,sha256=9EPI4RwSCaIrZ6tfGgr4QZaXbtbgZXtC6PQG9xkbaGM,5664
104
- axe_cli/ui/shell/__init__.py,sha256=zp-fKLBdXJsuOtyx_ripikhIqhwngwAnIvSTuPzct8A,14881
104
+ axe_cli/ui/shell/__init__.py,sha256=ARy_MF6ZBqSAJ82FIBKf0_2wrdqVSoPv8Nhbmm0rr2M,18778
105
105
  axe_cli/ui/shell/console.py,sha256=GIKqLBHDHc-DRklGLB92Dem1AhP6CaqCNaon4_fj29g,878
106
106
  axe_cli/ui/shell/debug.py,sha256=RLLLBujvbfw5WcX4m5maSPDfSjDND81U8ccQhXUnWGA,5629
107
107
  axe_cli/ui/shell/keyboard.py,sha256=UPNEHdrTsKTPMpakcvgghYvyUopSXIXAEdy7LQgwHSU,7549
@@ -109,10 +109,10 @@ axe_cli/ui/shell/oauth.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
109
109
  axe_cli/ui/shell/prompt.py,sha256=LGqKknSje-hoyt53PAwFD3OprQ3n4dKRpmUk-mNHoqQ,32938
110
110
  axe_cli/ui/shell/replay.py,sha256=2NUmQpRtMxseW5wqp3uozBn6OfUc8nHh1OrHQMaaekQ,5625
111
111
  axe_cli/ui/shell/setup.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
112
- axe_cli/ui/shell/slash.py,sha256=1xl1f_-Na_7kVssB7zjyRY95SOVoTTNYYyYd3y9r6dM,12677
112
+ axe_cli/ui/shell/slash.py,sha256=7nQA6xvCjajv_5eEYHzvrYpkN9YdYA4gSJv4tVt8gLQ,12710
113
113
  axe_cli/ui/shell/update.py,sha256=zHIUJvbtRa9m9waiO6tQpGpdLVVmFxDtRgKFfpWm2Po,7369
114
114
  axe_cli/ui/shell/usage.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
115
- axe_cli/ui/shell/visualize.py,sha256=sjw3J-qgfDDMYubj_EB5WcnbyPf1qPftT4D--9twAuQ,29973
115
+ axe_cli/ui/shell/visualize.py,sha256=nJcZZsoR3l2J7E1Uu8_lKwCzW3dfq9mkOXb5IxzPadY,30417
116
116
  axe_cli/utils/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
117
117
  axe_cli/utils/aiohttp.py,sha256=YleWcTPqa_n7lJzl2ISW49rBRMhbMV8IXqDG1_q0lGU,281
118
118
  axe_cli/utils/aioqueue.py,sha256=RAqMxf73vxgTYvC_SHgTwG9Wp6uK43xB5auonpL90y4,2152
@@ -147,7 +147,7 @@ axe_cli/wire/protocol.py,sha256=hzlvXrvex6kL1eqltGDedvF1CrGY_8dINMMVluF_J1c,77
147
147
  axe_cli/wire/serde.py,sha256=v7MsE35R6Uy7ypynRaPG3iOdj4gkxzNprgaVmVVymBQ,742
148
148
  axe_cli/wire/server.py,sha256=oNjJUdALTL91ygEYsP4c4lWJ57T3Z7RIbd78nWH7O94,21218
149
149
  axe_cli/wire/types.py,sha256=O_uvsRoc5Xa7ODVcTYB9Po47cuLUErbEOhbA2qpUxOI,10597
150
- axe_cli-1.7.3.dist-info/WHEEL,sha256=fAguSjoiATBe7TNBkJwOjyL1Tt4wwiaQGtNtjRPNMQA,80
151
- axe_cli-1.7.3.dist-info/entry_points.txt,sha256=IOP2TaPtunLm5FigWdAF1KAzg7n6zN4L_JRNWbSm8Wg,41
152
- axe_cli-1.7.3.dist-info/METADATA,sha256=URbwYDc0WxqLmeZxh77ria5fhRbvPwzcoFnFiBK8Pdg,1058
153
- axe_cli-1.7.3.dist-info/RECORD,,
150
+ axe_cli-1.7.4.dist-info/WHEEL,sha256=fAguSjoiATBe7TNBkJwOjyL1Tt4wwiaQGtNtjRPNMQA,80
151
+ axe_cli-1.7.4.dist-info/entry_points.txt,sha256=IOP2TaPtunLm5FigWdAF1KAzg7n6zN4L_JRNWbSm8Wg,41
152
+ axe_cli-1.7.4.dist-info/METADATA,sha256=wkIqO0torreDSUspB13Zqtdmwxhm6j7ZtxPAZq8Lf7Q,1056
153
+ axe_cli-1.7.4.dist-info/RECORD,,