augint-shell 0.92.2__tar.gz → 0.92.4__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 (38) hide show
  1. {augint_shell-0.92.2 → augint_shell-0.92.4}/PKG-INFO +1 -1
  2. {augint_shell-0.92.2 → augint_shell-0.92.4}/pyproject.toml +1 -1
  3. {augint_shell-0.92.2 → augint_shell-0.92.4}/src/ai_shell/__init__.py +1 -1
  4. {augint_shell-0.92.2 → augint_shell-0.92.4}/src/ai_shell/cli/commands/tools.py +32 -42
  5. {augint_shell-0.92.2 → augint_shell-0.92.4}/README.md +0 -0
  6. {augint_shell-0.92.2 → augint_shell-0.92.4}/src/ai_shell/assets/__init__.py +0 -0
  7. {augint_shell-0.92.2 → augint_shell-0.92.4}/src/ai_shell/assets/comfyui/__init__.py +0 -0
  8. {augint_shell-0.92.2 → augint_shell-0.92.4}/src/ai_shell/assets/comfyui/provision.sh +0 -0
  9. {augint_shell-0.92.2 → augint_shell-0.92.4}/src/ai_shell/cli/__init__.py +0 -0
  10. {augint_shell-0.92.2 → augint_shell-0.92.4}/src/ai_shell/cli/__main__.py +0 -0
  11. {augint_shell-0.92.2 → augint_shell-0.92.4}/src/ai_shell/cli/commands/__init__.py +0 -0
  12. {augint_shell-0.92.2 → augint_shell-0.92.4}/src/ai_shell/cli/commands/llm.py +0 -0
  13. {augint_shell-0.92.2 → augint_shell-0.92.4}/src/ai_shell/cli/commands/manage.py +0 -0
  14. {augint_shell-0.92.2 → augint_shell-0.92.4}/src/ai_shell/config.py +0 -0
  15. {augint_shell-0.92.2 → augint_shell-0.92.4}/src/ai_shell/container.py +0 -0
  16. {augint_shell-0.92.2 → augint_shell-0.92.4}/src/ai_shell/defaults.py +0 -0
  17. {augint_shell-0.92.2 → augint_shell-0.92.4}/src/ai_shell/exceptions.py +0 -0
  18. {augint_shell-0.92.2 → augint_shell-0.92.4}/src/ai_shell/gpu.py +0 -0
  19. {augint_shell-0.92.2 → augint_shell-0.92.4}/src/ai_shell/interactive.py +0 -0
  20. {augint_shell-0.92.2 → augint_shell-0.92.4}/src/ai_shell/local_chrome.py +0 -0
  21. {augint_shell-0.92.2 → augint_shell-0.92.4}/src/ai_shell/models.py +0 -0
  22. {augint_shell-0.92.2 → augint_shell-0.92.4}/src/ai_shell/scaffold.py +0 -0
  23. {augint_shell-0.92.2 → augint_shell-0.92.4}/src/ai_shell/selector.py +0 -0
  24. {augint_shell-0.92.2 → augint_shell-0.92.4}/src/ai_shell/templates/__init__.py +0 -0
  25. {augint_shell-0.92.2 → augint_shell-0.92.4}/src/ai_shell/templates/ai-shell.toml +0 -0
  26. {augint_shell-0.92.2 → augint_shell-0.92.4}/src/ai_shell/templates/ai-shell.yaml +0 -0
  27. {augint_shell-0.92.2 → augint_shell-0.92.4}/src/ai_shell/templates/aider/__init__.py +0 -0
  28. {augint_shell-0.92.2 → augint_shell-0.92.4}/src/ai_shell/templates/claude/__init__.py +0 -0
  29. {augint_shell-0.92.2 → augint_shell-0.92.4}/src/ai_shell/templates/claude/settings.json +0 -0
  30. {augint_shell-0.92.2 → augint_shell-0.92.4}/src/ai_shell/templates/codex/__init__.py +0 -0
  31. {augint_shell-0.92.2 → augint_shell-0.92.4}/src/ai_shell/templates/n8n/workflows/chat_with_ollama.json +0 -0
  32. {augint_shell-0.92.2 → augint_shell-0.92.4}/src/ai_shell/templates/n8n/workflows/text_to_speech.json +0 -0
  33. {augint_shell-0.92.2 → augint_shell-0.92.4}/src/ai_shell/templates/n8n/workflows/transcribe_audio.json +0 -0
  34. {augint_shell-0.92.2 → augint_shell-0.92.4}/src/ai_shell/templates/opencode/__init__.py +0 -0
  35. {augint_shell-0.92.2 → augint_shell-0.92.4}/src/ai_shell/templates/pi/__init__.py +0 -0
  36. {augint_shell-0.92.2 → augint_shell-0.92.4}/src/ai_shell/templates/pi/models.json +0 -0
  37. {augint_shell-0.92.2 → augint_shell-0.92.4}/src/ai_shell/tmux.py +0 -0
  38. {augint_shell-0.92.2 → augint_shell-0.92.4}/src/ai_shell/typeahead.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.3
2
2
  Name: augint-shell
3
- Version: 0.92.2
3
+ Version: 0.92.4
4
4
  Summary: Launch AI coding tools and local LLMs in Docker containers
5
5
  Author: svange
6
6
  Requires-Dist: docker>=7.0.0
@@ -1,6 +1,6 @@
1
1
  [project]
2
2
  name = "augint-shell"
3
- version = "0.92.2"
3
+ version = "0.92.4"
4
4
  description = "Launch AI coding tools and local LLMs in Docker containers"
5
5
  authors = [{name = "svange"}]
6
6
  readme = "README.md"
@@ -1,6 +1,6 @@
1
1
  """augint-shell (ai-shell) - Launch AI coding tools and local LLMs in Docker containers."""
2
2
 
3
- __version__ = "0.92.2"
3
+ __version__ = "0.92.4"
4
4
 
5
5
  __all__ = [
6
6
  "__version__",
@@ -6,7 +6,6 @@ import json
6
6
  import logging
7
7
  import subprocess
8
8
  import sys
9
- import tempfile
10
9
  import uuid
11
10
  from pathlib import Path
12
11
  from typing import Any
@@ -1157,7 +1156,7 @@ def codex(
1157
1156
  with capture_typeahead() as typeahead:
1158
1157
  project = ctx.obj.get("project") if ctx.obj else None
1159
1158
  config = load_config(project_override=project, project_dir=Path.cwd())
1160
- use_bedrock = use_aws
1159
+ use_bedrock = use_aws or bool(cli_profile) or bool(config.bedrock_profile)
1161
1160
 
1162
1161
  manager, name, exec_env, config = _get_manager(
1163
1162
  ctx,
@@ -1225,7 +1224,7 @@ def opencode(
1225
1224
  with capture_typeahead() as typeahead:
1226
1225
  project = ctx.obj.get("project") if ctx.obj else None
1227
1226
  config = load_config(project_override=project, project_dir=Path.cwd())
1228
- use_bedrock = use_aws
1227
+ use_bedrock = use_aws or bool(cli_profile) or bool(config.bedrock_profile)
1229
1228
 
1230
1229
  manager, name, exec_env, config = _get_manager(
1231
1230
  ctx,
@@ -1289,48 +1288,38 @@ def _check_ollama_running(container_name: str) -> None:
1289
1288
  )
1290
1289
 
1291
1290
 
1292
- def _ensure_pi_ollama_provider(container_name: str, config: AiShellConfig) -> None:
1293
- """Register Ollama as a Pi provider if not already configured.
1291
+ def _ensure_pi_ollama_provider(config: AiShellConfig) -> None:
1292
+ """Ensure ``~/.pi/agent/models.json`` has an Ollama provider entry.
1294
1293
 
1295
1294
  Ollama is not a built-in Pi provider — it must be declared in the global
1296
- ``~/.pi/agent/models.json``. This writes the file only when absent so
1297
- user customizations are preserved.
1295
+ models.json. This always updates the Ollama provider block (keeping the
1296
+ model list in sync with config) while preserving any other providers the
1297
+ user has added manually.
1298
1298
  """
1299
- check = subprocess.run(
1300
- ["docker", "exec", container_name, "test", "-f", "/root/.pi/agent/models.json"],
1301
- capture_output=True,
1302
- )
1303
- if check.returncode == 0:
1304
- return
1305
-
1306
- models_cfg = {
1307
- "providers": {
1308
- "ollama": {
1309
- "baseUrl": "http://host.docker.internal:11434/v1",
1310
- "api": "openai-completions",
1311
- "apiKey": "ollama",
1312
- "compat": {
1313
- "supportsDeveloperRole": False,
1314
- "supportsReasoningEffort": False,
1315
- },
1316
- "models": [{"id": tag} for tag in config.models_to_pull],
1317
- }
1318
- }
1299
+ models_json = Path.home() / ".pi" / "agent" / "models.json"
1300
+ models_json.parent.mkdir(parents=True, exist_ok=True)
1301
+
1302
+ existing: dict = {}
1303
+ if models_json.is_file():
1304
+ try:
1305
+ existing = json.loads(models_json.read_text())
1306
+ except (json.JSONDecodeError, OSError):
1307
+ pass
1308
+
1309
+ providers = existing.get("providers", {})
1310
+ providers["ollama"] = {
1311
+ "baseUrl": "http://host.docker.internal:11434/v1",
1312
+ "api": "openai-completions",
1313
+ "apiKey": "ollama",
1314
+ "compat": {
1315
+ "supportsDeveloperRole": False,
1316
+ "supportsReasoningEffort": False,
1317
+ },
1318
+ "models": [{"id": tag} for tag in config.models_to_pull],
1319
1319
  }
1320
- with tempfile.NamedTemporaryFile(mode="w", suffix=".json", delete=False) as tmp:
1321
- json.dump(models_cfg, tmp, indent=2)
1322
- tmp_path = tmp.name
1323
- try:
1324
- subprocess.run(
1325
- ["docker", "exec", container_name, "mkdir", "-p", "/root/.pi/agent"],
1326
- capture_output=True,
1327
- )
1328
- subprocess.run(
1329
- ["docker", "cp", tmp_path, f"{container_name}:/root/.pi/agent/models.json"],
1330
- capture_output=True,
1331
- )
1332
- finally:
1333
- Path(tmp_path).unlink(missing_ok=True)
1320
+ existing["providers"] = providers
1321
+ models_json.write_text(json.dumps(existing, indent=2) + "\n")
1322
+ console.print(f"[dim]Wrote Ollama provider config to {models_json}[/dim]")
1334
1323
 
1335
1324
 
1336
1325
  @click.command(context_settings=CONTEXT_SETTINGS)
@@ -1393,11 +1382,12 @@ def pi(ctx, use_aws, cli_profile, openai_profile, do_login):
1393
1382
 
1394
1383
  manager.ensure_tool_fresh(name, "pi")
1395
1384
 
1385
+ _ensure_pi_ollama_provider(config)
1386
+
1396
1387
  cmd = ["pi"]
1397
1388
  if use_bedrock:
1398
1389
  cmd.extend(["--provider", "amazon-bedrock", "--model", bedrock_model])
1399
1390
  elif not resolved_openai_profile:
1400
- _ensure_pi_ollama_provider(name, config)
1401
1391
  pi_config = Path(config.project_dir) / ".pi" / "settings.json"
1402
1392
  if not pi_config.is_file():
1403
1393
  console.print(
File without changes