Signed-off-by: ale <ale@manalejandro.com>
Este commit está contenido en:
ale
2026-01-19 00:03:30 +01:00
padre 2156c1d301
commit 8ccd72b675
Se han modificado 15 ficheros con 201 adiciones y 36 borrados

Ver fichero

@@ -8,13 +8,24 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
## [Unreleased] ## [Unreleased]
### Added ### Added
- Nothing yet - Build and test scripts for package verification (test-install.sh, quick-build.sh)
### Changed ### Changed
- Nothing yet - Updated Docker dependency from `docker.io` to official Docker Engine (`docker-ce`) from Docker's official Debian repository
- Updated all documentation to include official Docker repository setup instructions
- Updated installation guides with comprehensive Docker Engine installation steps for Debian and Ubuntu
- Updated image generators (ISO, QCOW2) to install Docker Engine from official repository
- Updated CLI help text to show official Docker installation instructions
### Fixed ### Fixed
- Nothing yet - Fixed debian/rules to properly use pybuild with pyproject.toml
- Fixed entry points in pyproject.toml (debai.cli.main:main instead of debai.cli:main)
- Fixed Debian package to correctly install debai and debai-gui executables
- Updated build dependencies in debian/control to include dh-python and pybuild-plugin-pyproject
- Fixed PYBUILD_DESTDIR to install files to correct package directory (debian/debai)
- Fixed debian/debai.manpages to point to correct man page location (docs/debai.1)
- Fixed GTK4 GUI CSS loading - replaced deprecated Gtk.Settings.get_default().get_display() with Gdk.Display.get_default()
- Added Gdk import to GUI application for proper display handling
## [1.0.0] - 2026-01-18 ## [1.0.0] - 2026-01-18

Ver fichero

@@ -52,7 +52,7 @@ By participating in this project, you agree to maintain a respectful and inclusi
- Python 3.10 or later - Python 3.10 or later
- GTK 4.0 and libadwaita 1.0 - GTK 4.0 and libadwaita 1.0
- Docker (for model testing) - Docker Engine from official Docker repository (for model testing)
### Setting Up ### Setting Up
@@ -61,6 +61,24 @@ By participating in this project, you agree to maintain a respectful and inclusi
git clone https://github.com/YOUR_USERNAME/debai.git git clone https://github.com/YOUR_USERNAME/debai.git
cd debai cd debai
# Install Docker Engine from official repository (if not already installed)
# Add Docker's official GPG key
sudo apt-get update
sudo apt-get install ca-certificates curl
sudo install -m 0755 -d /etc/apt/keyrings
sudo curl -fsSL https://download.docker.com/linux/debian/gpg -o /etc/apt/keyrings/docker.asc
sudo chmod a+r /etc/apt/keyrings/docker.asc
# Add the repository to Apt sources
echo \
"deb [arch=$(dpkg --print-architecture) signed-by=/etc/apt/keyrings/docker.asc] https://download.docker.com/linux/debian \
$(. /etc/os-release && echo \"$VERSION_CODENAME\") stable" | \
sudo tee /etc/apt/sources.list.d/docker.list > /dev/null
sudo apt-get update
# Install Docker Engine
sudo apt-get install docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin
# Create virtual environment # Create virtual environment
python3 -m venv venv python3 -m venv venv
source venv/bin/activate source venv/bin/activate

Ver fichero

@@ -174,6 +174,7 @@ Total: ~6,500 lines of code across 45+ files
- **CLI Framework**: Click + Rich - **CLI Framework**: Click + Rich
- **GUI Framework**: GTK4 + libadwaita - **GUI Framework**: GTK4 + libadwaita
- **AI Models**: Docker Model Runner - **AI Models**: Docker Model Runner
- **Container Runtime**: Docker Engine (docker-ce) from official Docker repository
- **Agent Framework**: cagent - **Agent Framework**: cagent
- **Configuration**: YAML - **Configuration**: YAML
- **Templating**: Jinja2 - **Templating**: Jinja2
@@ -279,14 +280,31 @@ debai generate compose
## Next Steps for Users ## Next Steps for Users
1. **Install Dependencies**: 1. **Install Docker Engine from Official Repository**:
```bash ```bash
sudo apt install docker.io qemu-utils genisoimage # Add Docker's official GPG key
sudo apt-get update
sudo apt-get install ca-certificates curl
sudo install -m 0755 -d /etc/apt/keyrings
sudo curl -fsSL https://download.docker.com/linux/debian/gpg -o /etc/apt/keyrings/docker.asc
sudo chmod a+r /etc/apt/keyrings/docker.asc
# Add repository
echo "deb [arch=$(dpkg --print-architecture) signed-by=/etc/apt/keyrings/docker.asc] https://download.docker.com/linux/debian $(. /etc/os-release && echo "$VERSION_CODENAME") stable" | sudo tee /etc/apt/sources.list.d/docker.list > /dev/null
# Install Docker Engine
sudo apt-get update
sudo apt-get install docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin
# Install other tools
sudo apt install qemu-utils genisoimage
``` ```
2. **Configure Docker**: 2. **Configure Docker**:
```bash ```bash
sudo usermod -aG docker $USER sudo usermod -aG docker $USER
sudo systemctl enable docker
sudo systemctl start docker
``` ```
3. **Pull Models**: 3. **Pull Models**:

Ver fichero

@@ -49,8 +49,26 @@ sudo apt-get install -f
git clone https://github.com/manalejandro/debai.git git clone https://github.com/manalejandro/debai.git
cd debai cd debai
# Install dependencies # Install Docker from official repository
sudo apt install python3-pip python3-gi gir1.2-gtk-4.0 gir1.2-adw-1 docker.io # Add Docker's official GPG key:
sudo apt-get update
sudo apt-get install ca-certificates curl
sudo install -m 0755 -d /etc/apt/keyrings
sudo curl -fsSL https://download.docker.com/linux/debian/gpg -o /etc/apt/keyrings/docker.asc
sudo chmod a+r /etc/apt/keyrings/docker.asc
# Add the repository to Apt sources:
echo \
"deb [arch=$(dpkg --print-architecture) signed-by=/etc/apt/keyrings/docker.asc] https://download.docker.com/linux/debian \
$(. /etc/os-release && echo "$VERSION_CODENAME") stable" | \
sudo tee /etc/apt/sources.list.d/docker.list > /dev/null
sudo apt-get update
# Install Docker Engine
sudo apt-get install docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin
# Install other dependencies
sudo apt install python3-pip python3-gi gir1.2-gtk-4.0 gir1.2-adw-1
# Install Debai # Install Debai
pip install -e . pip install -e .
@@ -261,7 +279,7 @@ User-specific configuration: `~/.config/debai/config.yaml`
- **Required**: python3, python3-pip, python3-gi - **Required**: python3, python3-pip, python3-gi
- **For GUI**: gir1.2-gtk-4.0, gir1.2-adw-1 - **For GUI**: gir1.2-gtk-4.0, gir1.2-adw-1
- **For Models**: docker.io - **For Models**: docker-ce (from official Docker repository)
- **For Images**: qemu-utils, genisoimage - **For Images**: qemu-utils, genisoimage
## Building from Source ## Building from Source
@@ -319,6 +337,7 @@ Debai is released under the [GNU General Public License v3.0](LICENSE).
## Acknowledgments ## Acknowledgments
- [Docker Engine](https://docs.docker.com/engine/) - Container runtime for AI models
- [Docker Model Runner](https://docs.docker.com/model-runner/) - Local AI model inference - [Docker Model Runner](https://docs.docker.com/model-runner/) - Local AI model inference
- [cagent](https://github.com/cagent/cagent) - Agent framework - [cagent](https://github.com/cagent/cagent) - Agent framework
- [GTK4](https://gtk.org) - GUI toolkit - [GTK4](https://gtk.org) - GUI toolkit

Ver fichero

@@ -14,8 +14,9 @@ command -v dpkg-buildpackage >/dev/null 2>&1 || {
# Clean previous builds # Clean previous builds
echo "Cleaning previous builds..." echo "Cleaning previous builds..."
rm -rf debian/debai debian/.debhelper debian/tmp sudo rm -rf debian/debai debian/debai-doc debian/.debhelper debian/tmp debian/python3-debai
rm -f debian/files debian/debai.substvars sudo rm -rf .pybuild build dist src/*.egg-info
rm -f debian/files debian/debai.substvars debian/debai-doc.substvars
rm -f ../debai_*.deb ../debai_*.buildinfo ../debai_*.changes rm -f ../debai_*.deb ../debai_*.buildinfo ../debai_*.changes
# Build the package # Build the package

6
debian/control vendido
Ver fichero

@@ -3,12 +3,14 @@ Section: utils
Priority: optional Priority: optional
Maintainer: Debai Team <debai@example.com> Maintainer: Debai Team <debai@example.com>
Build-Depends: debhelper-compat (= 13), Build-Depends: debhelper-compat (= 13),
dh-python,
dh-sequence-python3, dh-sequence-python3,
python3-all, python3-all,
python3-setuptools, python3-setuptools,
python3-wheel, python3-wheel,
python3-build, python3-build,
python3-pip python3-pip,
pybuild-plugin-pyproject
Standards-Version: 4.6.2 Standards-Version: 4.6.2
Homepage: https://github.com/manalejandro/debai Homepage: https://github.com/manalejandro/debai
Vcs-Git: https://github.com/manalejandro/debai.git Vcs-Git: https://github.com/manalejandro/debai.git
@@ -29,7 +31,7 @@ Depends: ${python3:Depends},
python3-gi, python3-gi,
gir1.2-gtk-4.0, gir1.2-gtk-4.0,
gir1.2-adw-1 gir1.2-adw-1
Recommends: docker.io, Recommends: docker-ce,
qemu-utils, qemu-utils,
genisoimage genisoimage
Suggests: qemu-system-x86 Suggests: qemu-system-x86

Ver fichero

@@ -1 +1 @@
debian/tmp/man/debai.1 usr/share/man/man1/ docs/debai.1

12
debian/rules vendido
Ver fichero

@@ -2,17 +2,14 @@
export DH_VERBOSE = 1 export DH_VERBOSE = 1
export PYBUILD_NAME = debai export PYBUILD_NAME = debai
export PYBUILD_SYSTEM = pyproject
export PYBUILD_DESTDIR = debian/debai
%: %:
dh $@ --with python3 dh $@ --with python3 --buildsystem=pybuild
override_dh_auto_build: override_dh_auto_build:
dh_auto_build dh_auto_build
# Build man pages
mkdir -p debian/tmp/man
help2man --no-info --name="AI Agent Management System" \
--output=debian/tmp/man/debai.1 \
./src/debai/cli/main.py || true
override_dh_auto_install: override_dh_auto_install:
dh_auto_install dh_auto_install
@@ -29,9 +26,6 @@ override_dh_auto_install:
install -D -m 644 data/config/debai.yaml \ install -D -m 644 data/config/debai.yaml \
debian/debai/etc/debai/config.yaml debian/debai/etc/debai/config.yaml
override_dh_installman:
dh_installman debian/tmp/man/*.1 || true
override_dh_installsystemd: override_dh_installsystemd:
dh_installsystemd --name=debai dh_installsystemd --name=debai

Ver fichero

@@ -29,9 +29,52 @@ sudo apt install -y \
#### Recommended #### Recommended
**Docker Engine from Official Repository:**
```bash
# Add Docker's official GPG key
sudo apt-get update
sudo apt-get install ca-certificates curl
sudo install -m 0755 -d /etc/apt/keyrings
sudo curl -fsSL https://download.docker.com/linux/debian/gpg -o /etc/apt/keyrings/docker.asc
sudo chmod a+r /etc/apt/keyrings/docker.asc
# Add the repository to Apt sources
echo \
"deb [arch=$(dpkg --print-architecture) signed-by=/etc/apt/keyrings/docker.asc] https://download.docker.com/linux/debian \
$(. /etc/os-release && echo "$VERSION_CODENAME") stable" | \
sudo tee /etc/apt/sources.list.d/docker.list > /dev/null
sudo apt-get update
# Install Docker Engine, containerd, and Docker Compose
sudo apt-get install docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin
```
**For Ubuntu:**
```bash
# Add Docker's official GPG key
sudo apt-get update
sudo apt-get install ca-certificates curl
sudo install -m 0755 -d /etc/apt/keyrings
sudo curl -fsSL https://download.docker.com/linux/ubuntu/gpg -o /etc/apt/keyrings/docker.asc
sudo chmod a+r /etc/apt/keyrings/docker.asc
# Add the repository to Apt sources
echo \
"deb [arch=$(dpkg --print-architecture) signed-by=/etc/apt/keyrings/docker.asc] https://download.docker.com/linux/ubuntu \
$(. /etc/os-release && echo "$VERSION_CODENAME") stable" | \
sudo tee /etc/apt/sources.list.d/docker.list > /dev/null
sudo apt-get update
# Install Docker Engine, containerd, and Docker Compose
sudo apt-get install docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin
```
**Other utilities:**
```bash ```bash
sudo apt install -y \ sudo apt install -y \
docker.io \
qemu-utils \ qemu-utils \
genisoimage genisoimage
``` ```
@@ -81,6 +124,8 @@ pip install -e .
pip install -e ".[gui,dev,docs]" pip install -e ".[gui,dev,docs]"
``` ```
**Note:** Docker Engine must be installed separately from the official Docker repository. See the "Recommended" dependencies section above for installation instructions.
### Method 4: Build Debian Package ### Method 4: Build Debian Package
```bash ```bash
@@ -118,14 +163,33 @@ debai init --full
### Configure Docker (Required for Models) ### Configure Docker (Required for Models)
After installing Docker Engine from the official repository:
```bash ```bash
# Verify Docker installation
docker --version
# Add your user to docker group # Add your user to docker group
sudo usermod -aG docker $USER sudo usermod -aG docker $USER
# Restart Docker service # Restart Docker service
sudo systemctl restart docker sudo systemctl restart docker
# Enable Docker to start on boot
sudo systemctl enable docker
# You may need to log out and back in for group changes to take effect # You may need to log out and back in for group changes to take effect
# Or use: newgrp docker
```
**Test Docker installation:**
```bash
# Run test container
docker run hello-world
# Check if Docker daemon is running
sudo systemctl status docker
``` ```
### Verify Installation ### Verify Installation

Ver fichero

@@ -10,7 +10,7 @@ debai \- AI Agent Management System for GNU/Linux
.B debai .B debai
is a comprehensive application for generating and managing AI agents that automate system tasks like package updates, application configuration, and resource management. is a comprehensive application for generating and managing AI agents that automate system tasks like package updates, application configuration, and resource management.
.PP .PP
Debai uses local AI models via Docker Model Runner and local agents via cagent. It provides both a command-line interface and a graphical user interface (GTK4/Adwaita). Debai uses local AI models via Docker Model Runner (requires Docker Engine from official Docker repository) and local agents via cagent. It provides both a command-line interface and a graphical user interface (GTK4/Adwaita).
.SH OPTIONS .SH OPTIONS
.TP .TP
.BR \-v ", " \-\-verbose .BR \-v ", " \-\-verbose
@@ -63,7 +63,7 @@ List available agent templates.
List available models. List available models.
.TP .TP
.B model pull MODEL_ID .B model pull MODEL_ID
Pull a model from Docker Model Runner. Pull a model from Docker Model Runner. Requires Docker Engine to be installed from the official Docker repository.
.TP .TP
.B model remove MODEL_ID [\-f] .B model remove MODEL_ID [\-f]
Remove a model. Use \-f to skip confirmation. Remove a model. Use \-f to skip confirmation.

Ver fichero

@@ -66,8 +66,8 @@ docs = [
] ]
[project.scripts] [project.scripts]
debai = "debai.cli:main" debai = "debai.cli.main:main"
debai-gui = "debai.gui:main" debai-gui = "debai.gui.main:main"
[project.urls] [project.urls]
Homepage = "https://github.com/manalejandro/debai" Homepage = "https://github.com/manalejandro/debai"

Ver fichero

@@ -871,8 +871,18 @@ def init(ctx: click.Context, full: bool) -> None:
missing = [d for d, available in deps.items() if not available] missing = [d for d, available in deps.items() if not available]
if missing: if missing:
console.print(f"[yellow]⚠ Missing dependencies: {', '.join(missing)}[/yellow]") console.print(f"[yellow]⚠ Missing dependencies: {', '.join(missing)}[/yellow]")
console.print("\nInstall with your package manager:") console.print("\nInstall Docker Engine from official repository:")
console.print(" [dim]sudo apt install docker.io qemu-utils genisoimage[/dim]") console.print(" [dim]# Add Docker's official GPG key[/dim]")
console.print(" [dim]sudo apt-get update[/dim]")
console.print(" [dim]sudo apt-get install ca-certificates curl[/dim]")
console.print(" [dim]sudo install -m 0755 -d /etc/apt/keyrings[/dim]")
console.print(" [dim]sudo curl -fsSL https://download.docker.com/linux/debian/gpg -o /etc/apt/keyrings/docker.asc[/dim]")
console.print(" [dim]sudo chmod a+r /etc/apt/keyrings/docker.asc[/dim]")
console.print("\n [dim]# Add Docker repository[/dim]")
console.print(" [dim]echo \"deb [arch=$(dpkg --print-architecture) signed-by=/etc/apt/keyrings/docker.asc] https://download.docker.com/linux/debian $(. /etc/os-release && echo \"$VERSION_CODENAME\") stable\" | sudo tee /etc/apt/sources.list.d/docker.list > /dev/null[/dim]")
console.print("\n [dim]# Install Docker Engine and tools[/dim]")
console.print(" [dim]sudo apt-get update[/dim]")
console.print(" [dim]sudo apt-get install docker-ce docker-ce-cli containerd.io qemu-utils genisoimage[/dim]")
else: else:
console.print(" [green]✓[/green] All dependencies available") console.print(" [green]✓[/green] All dependencies available")

Ver fichero

@@ -171,7 +171,17 @@ echo "Installing Debai - AI Agent System..."
# Install dependencies # Install dependencies
apt-get update apt-get update
apt-get install -y python3 python3-pip python3-venv docker.io qemu-utils apt-get install -y python3 python3-pip python3-venv qemu-utils ca-certificates curl
# Install Docker from official repository
install -m 0755 -d /etc/apt/keyrings
curl -fsSL https://download.docker.com/linux/debian/gpg -o /etc/apt/keyrings/docker.asc
chmod a+r /etc/apt/keyrings/docker.asc
echo "deb [arch=$(dpkg --print-architecture) signed-by=/etc/apt/keyrings/docker.asc] https://download.docker.com/linux/debian $(. /etc/os-release && echo "$VERSION_CODENAME") stable" | tee /etc/apt/sources.list.d/docker.list > /dev/null
apt-get update
apt-get install -y docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin
# Install Debai # Install Debai
pip3 install debai pip3 install debai
@@ -346,7 +356,7 @@ d-i partman/confirm_nooverwrite boolean true
# Packages # Packages
tasksel tasksel/first multiselect standard tasksel tasksel/first multiselect standard
d-i pkgsel/include string python3 python3-pip docker.io openssh-server d-i pkgsel/include string python3 python3-pip openssh-server ca-certificates curl
# GRUB # GRUB
d-i grub-installer/only_debian boolean true d-i grub-installer/only_debian boolean true
@@ -356,7 +366,13 @@ d-i grub-installer/bootdev string default
d-i finish-install/reboot_in_progress note d-i finish-install/reboot_in_progress note
# Post-installation # Post-installation
d-i preseed/late_command string \\ d-i preseed/late_command string \
in-target install -m 0755 -d /etc/apt/keyrings; \
in-target curl -fsSL https://download.docker.com/linux/debian/gpg -o /etc/apt/keyrings/docker.asc; \
in-target chmod a+r /etc/apt/keyrings/docker.asc; \
in-target sh -c 'echo "deb [arch=$(dpkg --print-architecture) signed-by=/etc/apt/keyrings/docker.asc] https://download.docker.com/linux/debian $(. /etc/os-release && echo $VERSION_CODENAME) stable" | tee /etc/apt/sources.list.d/docker.list > /dev/null'; \
in-target apt-get update; \
in-target apt-get install -y docker-ce docker-ce-cli containerd.io; \
in-target pip3 install debai; \\ in-target pip3 install debai; \\
in-target systemctl enable docker; \\ in-target systemctl enable docker; \\
in-target debai init in-target debai init

Ver fichero

@@ -135,12 +135,18 @@ class QCOW2Generator:
"python3", "python3",
"python3-pip", "python3-pip",
"python3-venv", "python3-venv",
"docker.io",
"qemu-guest-agent", "qemu-guest-agent",
"ca-certificates",
"curl", "curl",
"git", "git",
], ],
"runcmd": [ "runcmd": [
"install -m 0755 -d /etc/apt/keyrings",
"curl -fsSL https://download.docker.com/linux/debian/gpg -o /etc/apt/keyrings/docker.asc",
"chmod a+r /etc/apt/keyrings/docker.asc",
'echo "deb [arch=$(dpkg --print-architecture) signed-by=/etc/apt/keyrings/docker.asc] https://download.docker.com/linux/debian $(. /etc/os-release && echo $VERSION_CODENAME) stable" | tee /etc/apt/sources.list.d/docker.list > /dev/null',
"apt-get update",
"apt-get install -y docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin",
"systemctl enable docker", "systemctl enable docker",
"systemctl start docker", "systemctl start docker",
"pip3 install debai", "pip3 install debai",

Ver fichero

@@ -17,7 +17,7 @@ import gi
gi.require_version("Gtk", "4.0") gi.require_version("Gtk", "4.0")
gi.require_version("Adw", "1") gi.require_version("Adw", "1")
from gi.repository import Adw, Gio, GLib, Gtk from gi.repository import Adw, Gdk, Gio, GLib, Gtk
from debai import __version__ from debai import __version__
from debai.core.agent import AgentManager, AgentConfig, AgentType, get_agent_template, list_agent_templates from debai.core.agent import AgentManager, AgentConfig, AgentType, get_agent_template, list_agent_templates
@@ -147,8 +147,14 @@ class DebaiApplication(Adw.Application):
provider = Gtk.CssProvider() provider = Gtk.CssProvider()
provider.load_from_data(css.encode()) provider.load_from_data(css.encode())
# Get display from window or default display
if self.window:
display = self.window.get_display()
else:
display = Gdk.Display.get_default()
Gtk.StyleContext.add_provider_for_display( Gtk.StyleContext.add_provider_for_display(
self.window.get_display() if self.window else Gtk.Settings.get_default().get_display(), display,
provider, provider,
Gtk.STYLE_PROVIDER_PRIORITY_APPLICATION, Gtk.STYLE_PROVIDER_PRIORITY_APPLICATION,
) )