code-puppy 0.0.48__py3-none-any.whl → 0.0.50__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.
@@ -44,6 +44,23 @@ def handle_meta_command(command: str, console: Console) -> bool:
44
44
  console.print(f'[red]Not a directory:[/red] [bold]{dirname}[/bold]')
45
45
  return True
46
46
 
47
+ if command.strip().startswith("~show"):
48
+ from code_puppy.config import get_puppy_name, get_owner_name
49
+ from code_puppy.command_line.model_picker_completion import get_active_model
50
+ import os
51
+ puppy_name = get_puppy_name()
52
+ owner_name = get_owner_name()
53
+ model = get_active_model()
54
+ from code_puppy.config import get_yolo_mode
55
+ yolo_mode = get_yolo_mode()
56
+ console.print(f'''[bold magenta]🐶 Puppy Status[/bold magenta]
57
+ \n[bold]puppy_name:[/bold] [cyan]{puppy_name}[/cyan]
58
+ [bold]owner_name:[/bold] [cyan]{owner_name}[/cyan]
59
+ [bold]model:[/bold] [green]{model}[/green]
60
+ [bold]YOLO_MODE:[/bold] {'[red]ON[/red]' if yolo_mode else '[yellow]off[/yellow]'}
61
+ ''')
62
+ return True
63
+
47
64
  if command.startswith("~m"):
48
65
  # Try setting model and show confirmation
49
66
  new_input = update_model_in_input(command)
code_puppy/config.py CHANGED
@@ -7,7 +7,6 @@ CONFIG_FILE = os.path.join(CONFIG_DIR, "puppy.cfg")
7
7
  DEFAULT_SECTION = "puppy"
8
8
  REQUIRED_KEYS = ["puppy_name", "owner_name"]
9
9
 
10
-
11
10
  def ensure_config_exists():
12
11
  """
13
12
  Ensure that the .code_puppy dir and puppy.cfg exist, prompting if needed.
@@ -45,7 +44,6 @@ def get_value(key: str):
45
44
  val = config.get(DEFAULT_SECTION, key, fallback=None)
46
45
  return val
47
46
 
48
-
49
47
  def get_puppy_name():
50
48
  return get_value("puppy_name") or "Puppy"
51
49
 
@@ -66,3 +64,22 @@ def set_model_name(model: str):
66
64
  config[DEFAULT_SECTION]["model"] = model or ""
67
65
  with open(CONFIG_FILE, "w") as f:
68
66
  config.write(f)
67
+
68
+ def get_yolo_mode():
69
+ """Checks env var CODE_PUPPY_YOLO or puppy.cfg for 'yolo_mode'.
70
+ Returns True if either is explicitly truthy, else False by default.
71
+ Env var wins if both are set.
72
+ Allowed env/cfg values: 1, '1', 'true', 'yes', 'on' (case-insensitive).
73
+ """
74
+ env_val = os.getenv('YOLO_MODE')
75
+ true_vals = {'1', 'true', 'yes', 'on'}
76
+ if env_val is not None:
77
+ if str(env_val).strip().lower() in true_vals:
78
+ return True
79
+ return False
80
+ cfg_val = get_value('yolo_mode')
81
+ if cfg_val is not None:
82
+ if str(cfg_val).strip().lower() in true_vals:
83
+ return True
84
+ return False
85
+ return False
@@ -138,6 +138,8 @@ def get_custom_config(model_config):
138
138
  ca_certs_path = None
139
139
  if "ca_certs_path" in custom_config:
140
140
  ca_certs_path = custom_config.get("ca_certs_path")
141
+ if ca_certs_path.lower() == "false":
142
+ ca_certs_path = False
141
143
 
142
144
  api_key = None
143
145
  if "api_key" in custom_config:
@@ -19,7 +19,8 @@ def register_command_runner_tools(agent):
19
19
  if cwd:
20
20
  console.print(f"[dim]Working directory: {cwd}[/dim]")
21
21
  console.print("[dim]" + "-" * 60 + "[/dim]")
22
- yolo_mode = os.getenv("YOLO_MODE", "false").lower() == "true"
22
+ from code_puppy.config import get_yolo_mode
23
+ yolo_mode = get_yolo_mode()
23
24
  if not yolo_mode:
24
25
  user_input = input("Are you sure you want to run this command? (yes/no): ")
25
26
  if user_input.strip().lower() not in {"yes", "y"}:
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: code-puppy
3
- Version: 0.0.48
3
+ Version: 0.0.50
4
4
  Summary: Code generation agent
5
5
  Author: Michael Pfaffenberger
6
6
  License: MIT
@@ -1,28 +1,28 @@
1
1
  code_puppy/__init__.py,sha256=orgffM-uGp8g1XCqXGKWaFB4tCCz8TVgsLMPKCOGNx0,81
2
2
  code_puppy/agent.py,sha256=avoOEorAYUyQYnYVVCezLz1QKDm0Qgx3i_C-BqgDiQQ,3198
3
3
  code_puppy/agent_prompts.py,sha256=A6ADydqbHozIAtwOy_UY-fYZ2XDE9_5oV3oxOMtVCFA,6782
4
- code_puppy/config.py,sha256=VjPqWwIJSd-Up7pxTl-Ea874Vt-EgYJKEF7PNE_TjEE,2203
4
+ code_puppy/config.py,sha256=eVUWtcRHuD7cwHuBOgypTV7qINjT7Z5sBmXprKrOjEs,2869
5
5
  code_puppy/main.py,sha256=bc27bk6rFge95H2BumTTzRLtOx43z5FnsmjIjQx_RpU,10052
6
- code_puppy/model_factory.py,sha256=Pi46jRr7JaBtJfNpSFk-fK2DlBy0Dv6tG2RcXLf4ZVI,11560
6
+ code_puppy/model_factory.py,sha256=vDlEoEKkOoikExCqi5oxb_PuTF8STUMABXAbPHV_p34,11639
7
7
  code_puppy/models.json,sha256=7H-y97YK9BXhag5wJU19rtg24JtZWYx60RsBLBW3WiI,2162
8
8
  code_puppy/session_memory.py,sha256=vuLSw1Pfa-MXD4lD8hj2qt65OR_aL2WdoMuF6Jwnc1k,2597
9
9
  code_puppy/version_checker.py,sha256=cK-eU7Y_yYjn7feIONqzzZUdiedozL0iiKXlGKjfq68,395
10
10
  code_puppy/command_line/__init__.py,sha256=y7WeRemfYppk8KVbCGeAIiTuiOszIURCDjOMZv_YRmU,45
11
11
  code_puppy/command_line/file_path_completion.py,sha256=HAlOu9XVYgJ7FbjdrhKBL0rFmCVFxSGGewdcfKTUsPw,2865
12
- code_puppy/command_line/meta_command_handler.py,sha256=w9aZoMZVhPQj2Vix3nqW_K9Psou6nU_Jb2dFwr37yKs,3453
12
+ code_puppy/command_line/meta_command_handler.py,sha256=C14QL_MMNnKQh1rKQ7KdQkHCJRl5oRTKd9NYSe8OCqk,4220
13
13
  code_puppy/command_line/model_picker_completion.py,sha256=5VEa6OE9shsF0EafJXzBLpFXhFIkqevJi9RRD-eUvZA,3718
14
14
  code_puppy/command_line/prompt_toolkit_completion.py,sha256=QtXqqEzc6C8ODHTfvIDD1sY0fLaX40S7Sfbol43A9i8,5338
15
15
  code_puppy/command_line/utils.py,sha256=L1PnV9tNupEW1zeziyb5aGAq8DYP8sMiuQbFYLO5Nus,1236
16
16
  code_puppy/tools/__init__.py,sha256=48BVpMt0HAMtz8G_z9SQhX6LnRqR83_AVfMQMf7bY0g,557
17
17
  code_puppy/tools/code_map.py,sha256=BghDHaebhGDfDGvA34gwO_5r92Py4O0Q3J4RV-WtnWs,3155
18
- code_puppy/tools/command_runner.py,sha256=XDUdVo-9lIegYcYirdbI3qSuJgijBgLnujoYQq5MSe4,4755
18
+ code_puppy/tools/command_runner.py,sha256=eg7pOIMkuHtNYVqVE1pPsNYSR2D6XXnkwFaBKd-Ejc8,4773
19
19
  code_puppy/tools/common.py,sha256=dbmyZTrTBQh_0WWpaYN6jEync62W2mMrzNS8UFK0co4,146
20
20
  code_puppy/tools/file_modifications.py,sha256=nT87uAoY14RTAapnFCgkLTmW9g9P9bymxts2MpSpoo0,19297
21
21
  code_puppy/tools/file_operations.py,sha256=LJU_1b3WCXTAHa2B5VAbckrn1VVWb-HhcI3TF3BxYWs,11625
22
22
  code_puppy/tools/web_search.py,sha256=HhcwX0MMvMDPFO8gr8gzgesD5wPXOypjkxyLZeNwL5g,589
23
- code_puppy-0.0.48.data/data/code_puppy/models.json,sha256=7H-y97YK9BXhag5wJU19rtg24JtZWYx60RsBLBW3WiI,2162
24
- code_puppy-0.0.48.dist-info/METADATA,sha256=L6hJaWInggMR4gnXUHHyM8N7Ml7hMhld-AC8S4m8tkM,4716
25
- code_puppy-0.0.48.dist-info/WHEEL,sha256=qtCwoSJWgHk21S1Kb4ihdzI2rlJ1ZKaIurTj_ngOhyQ,87
26
- code_puppy-0.0.48.dist-info/entry_points.txt,sha256=d8YkBvIUxF-dHNJAj-x4fPEqizbY5d_TwvYpc01U5kw,58
27
- code_puppy-0.0.48.dist-info/licenses/LICENSE,sha256=31u8x0SPgdOq3izJX41kgFazWsM43zPEF9eskzqbJMY,1075
28
- code_puppy-0.0.48.dist-info/RECORD,,
23
+ code_puppy-0.0.50.data/data/code_puppy/models.json,sha256=7H-y97YK9BXhag5wJU19rtg24JtZWYx60RsBLBW3WiI,2162
24
+ code_puppy-0.0.50.dist-info/METADATA,sha256=LRlwtx444fmT-6hL6p99vIYRKb8zIL30CaHG5k3lSRw,4716
25
+ code_puppy-0.0.50.dist-info/WHEEL,sha256=qtCwoSJWgHk21S1Kb4ihdzI2rlJ1ZKaIurTj_ngOhyQ,87
26
+ code_puppy-0.0.50.dist-info/entry_points.txt,sha256=d8YkBvIUxF-dHNJAj-x4fPEqizbY5d_TwvYpc01U5kw,58
27
+ code_puppy-0.0.50.dist-info/licenses/LICENSE,sha256=31u8x0SPgdOq3izJX41kgFazWsM43zPEF9eskzqbJMY,1075
28
+ code_puppy-0.0.50.dist-info/RECORD,,