diff --git a/docs/architecture/task-agent-doc-manager.html b/docs/architecture/task-agent-doc-manager.html index e717f17..593ec01 100644 --- a/docs/architecture/task-agent-doc-manager.html +++ b/docs/architecture/task-agent-doc-manager.html @@ -345,7 +345,7 @@ Option A: Learning profiles with recency bias
  • Automatic: Each task completion generates execution record
  • Learning: If decision had trade-offs, extract as ADR candidate
  • Curation: ProjectManager/Architect reviews and approves
  • -
  • Archival: Stored in docs/architecture/adr/ (numbered, immutable)
  • +
  • Archival: Stored in docs/adrs/ (numbered, immutable)

  • ๐Ÿ“š Documentation Synchronization

    diff --git a/docs/architecture/task-agent-doc-manager.md b/docs/architecture/task-agent-doc-manager.md index 0824313..4fcd317 100644 --- a/docs/architecture/task-agent-doc-manager.md +++ b/docs/architecture/task-agent-doc-manager.md @@ -203,7 +203,7 @@ Option A: Learning profiles with recency bias 1. **Automatic**: Each task completion generates execution record 2. **Learning**: If decision had trade-offs, extract as ADR candidate 3. **Curation**: ProjectManager/Architect reviews and approves -4. **Archival**: Stored in docs/architecture/adr/ (numbered, immutable) +4. **Archival**: Stored in docs/adrs/ (numbered, immutable) --- diff --git a/docs/guides/rlm-usage-guide.md b/docs/guides/rlm-usage-guide.md index e48efd8..ad99fd1 100644 --- a/docs/guides/rlm-usage-guide.md +++ b/docs/guides/rlm-usage-guide.md @@ -527,7 +527,7 @@ cargo run --example production_setup ## Referencias -- **ADR**: `docs/architecture/decisions/008-recursive-language-models-integration.md` +- **ADR**: `docs/adrs/0029-rlm-recursive-language-models.md` - **Production Guide**: `crates/vapora-rlm/PRODUCTION.md` - **API Docs**: `cargo doc --open -p vapora-rlm` - **Tests**: `crates/vapora-rlm/tests/` diff --git a/justfiles/distro.just b/justfiles/distro.just index f8a13df..e69590a 100644 --- a/justfiles/distro.just +++ b/justfiles/distro.just @@ -3,7 +3,6 @@ # โ•‘ Targets, cross-compilation, and distribution โ•‘ # โ•šโ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ• -# Help for distro module distro-help: @echo "DISTRIBUTION & TARGET MODULE" @echo "" @@ -17,18 +16,20 @@ distro-help: @echo " just distro::build-all-targets Build for all installed targets" @echo "" @echo "Installation:" - @echo " just distro::install Install binaries to ~/.local/bin" + @echo " just distro::install Install server binaries to ~/.local/bin" @echo " just distro::install DIR=/path Install to custom directory" + @echo " just distro::install UI=true Also build frontend (trunk --release)" + @echo "" + @echo " Binaries installed: vapora-backend, vapora-agents, vapora-mcp-server," + @echo " vapora-a2a, vapora (CLI)" @echo "" @echo "Utilities:" @echo " just distro::clean-targets Clean target build artifacts" -# Workspace root directory - justfile_directory() returns vapora directory when called from module WORKSPACE_ROOT := justfile_directory() # === TARGETS === -# List all installed Rust targets [doc("List installed Rust targets")] list-targets: @echo "=== Installed Rust Targets ===" @@ -40,9 +41,9 @@ list-targets: @echo " aarch64-apple-darwin macOS ARM64 (Apple Silicon)" @echo " aarch64-unknown-linux-gnu Linux ARM64" @echo " x86_64-pc-windows-gnu Windows x86_64" + @echo " wasm32-unknown-unknown WebAssembly (frontend)" -# Install common cross-compilation targets -[doc("Install common cross-compile targets")] +[doc("Install common cross-compile targets including wasm32")] install-targets: #!/usr/bin/env bash set -e @@ -53,14 +54,18 @@ install-targets: "aarch64-apple-darwin" "aarch64-unknown-linux-gnu" "x86_64-pc-windows-gnu" + "wasm32-unknown-unknown" ) for target in "${TARGETS[@]}"; do - echo "Installing $target..." - rustup target add "$target" || echo " โŠ˜ $target (already installed)" + if rustup target list --installed | grep -q "$target"; then + echo " โœ“ $target (already installed)" + else + echo " Installing $target..." + rustup target add "$target" + fi done echo "โœ“ Targets installed" -# Install specific Rust target [doc("Install specific Rust target")] install-target TARGET: #!/usr/bin/env bash @@ -71,7 +76,6 @@ install-target TARGET: # === BUILD === -# Build for specific target [doc("Build for specific target")] build-target TARGET: #!/usr/bin/env bash @@ -81,14 +85,13 @@ build-target TARGET: cargo build --release --target "{{TARGET}}" --workspace echo "โœ“ Build complete for {{TARGET}}" -# Build for all installed targets -[doc("Build for all installed targets")] +[doc("Build for all installed targets (excludes wasm32 โ€” use frontend-build-release for that)")] build-all-targets: #!/usr/bin/env bash set -e - echo "=== Building for all targets ===" + echo "=== Building for all native targets ===" cd "{{ WORKSPACE_ROOT }}" - TARGETS=$(rustup target list | grep installed | awk '{print $1}') + TARGETS=$(rustup target list --installed | grep -v wasm32) for target in $TARGETS; do echo "" echo "Building for $target..." @@ -99,21 +102,27 @@ build-all-targets: echo "โœ“ $target complete" done echo "" - echo "โœ“ All target builds complete" + echo "โœ“ All native target builds complete" # === INSTALLATION === -# Build and install release binaries (default: ~/.local/bin) -[doc("Build and install binaries (default: ~/.local/bin or DIR=)")] -install DIR="": +# Build and install all release binaries. +# +# Usage: +# just distro::install โ†’ ~/.local/bin, native only +# just distro::install DIR=/usr/local/bin โ†’ custom dir, native only +# just distro::install UI=true โ†’ ~/.local/bin + trunk --release +# just distro::install DIR=/opt UI=true โ†’ custom dir + trunk --release +# +# Binaries: vapora-backend, vapora-agents, vapora-mcp-server, vapora-a2a, vapora (CLI) +[doc("Build and install server binaries (DIR=path, UI=true for frontend)")] +install DIR="" UI="false": #!/bin/bash set -e - # Normalize workspace path using shell WORKSPACE="{{ WORKSPACE_ROOT }}" WORKSPACE="$(cd "$WORKSPACE" && pwd)" || { echo "โœ— Failed to access workspace"; exit 1; } - # Resolve install directory if [ -z "{{ DIR }}" ]; then INSTALL_DIR="$HOME/.local/bin" else @@ -121,77 +130,99 @@ install DIR="": fi echo "=== Building and Installing VAPORA binaries ===" - echo "Build workspace: $WORKSPACE" + echo "Workspace: $WORKSPACE" echo "Install directory: $INSTALL_DIR" + echo "Frontend (UI): {{ UI }}" echo "" - # First, build release binaries - echo "๐Ÿ“ฆ Building release binaries..." - cd "$WORKSPACE" || exit 1 - cargo build --release -p vapora-backend -p vapora-agents --quiet - echo "โœ“ Build complete" + # Build all server binaries in one pass (Cargo deduplicates shared deps) + echo "Building release binaries..." + cd "$WORKSPACE" + cargo build --release \ + -p vapora-backend \ + -p vapora-agents \ + -p vapora-mcp-server \ + -p vapora-a2a \ + -p vapora-cli \ + --quiet + echo "โœ“ Native binaries built" echo "" - # Create installation directory - mkdir -p "$INSTALL_DIR" || { echo "โœ— Failed to create directory"; exit 1; } - echo "Installing binaries to $INSTALL_DIR..." + # Optionally build the Leptos frontend via trunk + if [ "{{ UI }}" = "true" ]; then + if ! command -v trunk &>/dev/null; then + echo "โœ— trunk not found. Install with: cargo install trunk" + exit 1 + fi + echo "Building frontend (trunk --release)..." + cd "$WORKSPACE/crates/vapora-frontend" + trunk build --release + echo "โœ“ Frontend built โ†’ $WORKSPACE/crates/vapora-frontend/dist" + cd "$WORKSPACE" + echo "" + fi - # Track installations - INSTALLED=0 + # Copy binaries to install dir + mkdir -p "$INSTALL_DIR" || { echo "โœ— Failed to create $INSTALL_DIR"; exit 1; } + echo "Installing to $INSTALL_DIR..." - # Define all binaries to install declare -a BINARIES=( "vapora-backend" "vapora-agents" "vapora-mcp-server" + "vapora-a2a" "vapora" ) - # Install each binary + INSTALLED=0 + MISSING=0 for BIN_NAME in "${BINARIES[@]}"; do BIN_PATH="$WORKSPACE/target/release/$BIN_NAME" - if [ -f "$BIN_PATH" ]; then cp "$BIN_PATH" "$INSTALL_DIR/" chmod +x "$INSTALL_DIR/$BIN_NAME" echo " โœ“ $BIN_NAME" INSTALLED=$((INSTALLED + 1)) + else + echo " โœ— $BIN_NAME (not found in target/release โ€” build may have failed)" + MISSING=$((MISSING + 1)) fi done - # Show warning if no binaries found - if [ $INSTALLED -eq 0 ]; then - echo " โŠ˜ No binaries found in $WORKSPACE/target/release" - fi - echo "" - if [ $INSTALLED -eq 0 ]; then + if [ "$INSTALLED" -eq 0 ]; then echo "โœ— No binaries were installed" exit 1 fi - echo "โœ“ Installation complete ($INSTALLED binaries installed)" - echo "" - echo "๐Ÿ“‹ Installation summary:" - echo " Install dir: $INSTALL_DIR" - echo " Binaries: $(ls -1 "$INSTALL_DIR"/vapora-* 2>/dev/null | xargs -I {} basename {})" + if [ "$MISSING" -gt 0 ]; then + echo "โš  $MISSING binaries missing โ€” check build output above" + fi + + echo "โœ“ Installation complete ($INSTALLED/$((INSTALLED + MISSING)) binaries)" echo "" + echo "Install dir: $INSTALL_DIR" if echo "$INSTALL_DIR" | grep -q "\.local/bin"; then - echo "โš ๏ธ Shell setup required:" - echo " export PATH=\"\$PATH:$INSTALL_DIR\"" - echo " Or add to ~/.bashrc/.zshrc for persistent setup" + echo "" + echo "Ensure PATH includes $INSTALL_DIR:" + echo " export PATH=\"\$PATH:$INSTALL_DIR\"" fi echo "" - echo "๐Ÿงช Verify installation:" - echo " $INSTALL_DIR/vapora-backend --help" - echo " $INSTALL_DIR/vapora-agents --help" + echo "Verify:" + echo " $INSTALL_DIR/vapora-backend --help" + echo " $INSTALL_DIR/vapora-agents --help" + echo " $INSTALL_DIR/vapora-a2a --help" + + if [ "{{ UI }}" = "true" ]; then + echo "" + echo "Frontend dist: $WORKSPACE/crates/vapora-frontend/dist" + fi echo "" # === UTILITIES === -# Clean target build artifacts [doc("Clean all target build artifacts")] clean-targets: @echo "=== Cleaning target artifacts ==="