Skip to content

Releases: jhd3197/AgentSite

v0.0.14

Choose a tag to compare

@github-actions github-actions released this 29 May 05:00
9c8fa97

Changes

Introduce an embeddable AgentSite API and conversation persistence so projects can be generated and resumed in-process.

  • Add README docs for the embeddable component and its async API (generate_website, regenerate_page, load_project).
  • Export new types and functions from agentsite and engine packages.
  • Add dataclasses: ConversationMessage, PageState, ProjectState and implement load_project/delete_project in engine.component.
  • Extend GenerationConfig with review/cancellation/context fields and record conversation messages during runs; persist messages to messages.json via ProjectManager.append_message/load_messages.
  • Pipeline enhancements: accept review/cancel/context parameters, emit events (review_feedback, site_plan_ready, style_spec_ready), and short-circuit on cancellation.
  • Add .pr to .gitignore and include a .claude skill for creating PR descriptions.

These changes enable iterative, host-driven workflows (resume, cancel, preview design/review feedback) when embedding AgentSite as a library.

Details

v0.0.13

Choose a tag to compare

@github-actions github-actions released this 28 Feb 19:19
c702c1b

Changes

AgentSite's engine was a captive organ — bolted to the FastAPI server with no way to use it standalone. This PR cuts it loose. You can now embed the full generation pipeline as an async function call, wire up per-project API keys so each project uses its own provider credentials, and set budget guardrails that gracefully degrade instead of silently burning through tokens.

Highlights

  • Generate websites programmatically with generate_website() and regenerate_page() — no server, database, or frontend required
  • Each project can store its own provider API keys (OpenAI, Claude, Google, etc.) that override global environment credentials
  • Budget enforcement with configurable policies: hard stop, warn-and-continue, or degrade to a cheaper model when costs exceed limits
  • Partial file recovery when budget is exceeded mid-generation — whatever was written before the cutoff is preserved
  • Structured extraction fallback: when an agent's JSON output is malformed, a lightweight LLM call re-extracts it instead of failing silently
Technical changes
  • New agentsite/engine/component.py exposes generate_website() and regenerate_page() as standalone async entry points with GenerationConfig / GenerationResult dataclasses. Handles budget errors, partial recovery, and StyleSpec parsing with LLM fallback
  • New agentsite/engine/driver_factory.py wraps Prompture's get_async_driver_for_model to build per-project drivers with injected API keys via resolve_driver_for_model() and build_provider_environment()
  • New agentsite/engine/model_resolver.py implements multi-layer model resolution (agent override > project default > global settings) using Prompture's ModelResolver with manual fallback
  • New agentsite/engine/extract.py provides extract_structured() — async LLM-based extraction with retry logic, supporting both async and sync Prompture backends
  • Project model gains provider_keys (per-project API credentials) and user_id fields
  • ProjectRepository methods (get, list_all, update, delete) accept optional user_id parameter for tenant-scoped queries
  • AgentRunRepository.create(), list_recent(), get_stats(), get_daily_stats() gain user_id scoping
  • Database migrations add user_id columns to both projects and agent_runs tables
  • GenerateRequest gains max_cost, budget_policy, and provider_keys fields for per-request budget and credential overrides
  • Generation route merges project-level and request-level provider keys, catches BudgetExceededError to save partial files and broadcast budget_exceeded WebSocket events
  • StyleSpec auto-save in the generation route falls back to extract_structured() when JSON parsing fails instead of silently dropping the result
  • GenerationPipeline.__init__ accepts provider_keys and cachibot_api_key; generate() accepts max_cost and budget_policy
  • _build_budget_kwargs() helper in pipeline.py constructs budget enforcement parameters from per-request overrides or global settings
  • All agent creation paths in orchestrator.py (create_dynamic_pipeline, create_specialist_pipeline) now call _apply_budget_to_agent() and _inject_driver_if_needed() for every agent
  • Pipeline streaming callbacks extended with on_message (text deltas) and on_output (structured output preview)
  • WSEvent.type description updated to include text_delta, agent_output, model_fallback, budget_exceeded, pipeline_plan
  • config.py adds budget_policy, budget_max_tokens, and budget_fallback_models settings
  • create_app() accepts custom_lifespan, extra_routers, and extra_middleware for custom deployments
  • CLI serve command gains --app flag to specify a custom app factory module path
  • deps.py gains reset() to clear all singletons for re-initialization
  • Package root __init__.py exports generate_website, regenerate_page, GenerationConfig, GenerationResult, create_app, and settings
  • VERSION file removed in favor of __version__ in __init__.py

Details

v0.0.12

Choose a tag to compare

@github-actions github-actions released this 26 Feb 05:58
037aaaf

Changes

Summary

This PR introduces a modular specialist agent architecture, a project-level guides/knowledge base system with per-agent tool and configuration overrides, and deep Prompture usage tracking integration across the full stack. Together, these changes make generation faster and more modular, give users fine-grained control over each agent, and surface detailed cost and usage analytics in the UI.

57 files changed | +3,652 / -543 lines


Features

Specialist Agents & Parallel Pipeline

  • New AgentRegistry for centralized agent discovery and descriptor metadata
  • 8 specialist agents: Markup, Style (CSS + SCSS), Script, Image, Copywriter, SEO, Accessibility, and Animation
  • Parallel specialist pipeline — PM decides between monolithic or specialist mode; specialists run concurrently for faster builds
  • SCSS compiler support for specialist-generated stylesheets
  • Updated PM persona logic to select build mode based on project complexity
  • Specialist personas and role definitions added to personas.py
  • Registry and specialist modules exposed via agents.__init__

Project Guides, Agent Tools & Overrides

  • Guides knowledge basewrite_guide, read_guide, list_guides tools let agents persist and retrieve project-level guides on disk
  • ToolRegistry with role-scoped tool sets (designer, developer, reviewer each get appropriate tools)
  • Per-project and per-request agent overrides — configure model, temperature, and system prompt per agent
  • Richer streaming callbacks: thinking, steps, iteration, and round events surfaced in the UI
  • Max generation cost enforcement — optional budget cap per generation run
  • Auto-save of designer StyleSpec and site-plan as guides for downstream agents
  • Persona.extend for strict JSON prompt composition
  • DB migration and repository changes to persist agent_overrides
  • Removed obsolete gemini_patch module

Prompture Usage Tracking & Analytics

  • /api/agents/stats enriched with cost_by_model and daily/monthly totals
  • New endpoints: /stats/models, /stats/providers, /stats/today, /stats/session/{id}
  • UsageSession integration in the generation pipeline with graceful fallback
  • AgentRun model gains session_id; DB migration adds the column
  • Cost backfill using Prompture's get_model_rates for accurate rate-based calculation
  • CLI shows per-model cost breakdown after generation
  • Frontend analytics hook merges tracker totals; Analytics page displays Today and This Month KPIs

Frontend & UI Improvements

  • ProgressPipeline redesigned to show specialist agent progress and parallel execution
  • ChatMessage updated with thinking/retry state indicators
  • AgentsPage expanded with registry-aware agent cards and metrics
  • ProjectSettingsPage — agent override configuration UI
  • ProjectBrandPage, ProjectNavigationPage, LibraryPage — enriched with guide support and new controls
  • Sidebar and header adjustments across layout components

Details

v0.0.11

Choose a tag to compare

@github-actions github-actions released this 08 Feb 07:55
84a0903

Changes

Switch the codebase to Prompture's async API: replace Agent with AsyncAgent, SequentialGroup/LoopGroup with AsyncSequentialGroup/AsyncLoopGroup, and Conversation.ask with AsyncConversation.ask. Make GenerationPipeline and CLI generation async (await group.run), remove thread-pool bridging and synchronous run_in_executor usage, and update WebSocket callback to async. Add _attach_streaming_callbacks to wire AgentCallbacks for tool start/end events, adapt event emission to awaitable calls (with background task handling for file events), and patch run/ask wrappers to async. Bump prompture dependency to >=1.0.8 and update tests/imports accordingly.

Details

v0.0.10

Choose a tag to compare

@github-actions github-actions released this 06 Feb 04:19
3f919fa

Changes

Add a capabilities module to detect model features (supports_tools, supports_structured_output, vision, reasoning, etc.), using Prompture when available and falling back to heuristics. Introduce create_*_agent_auto factories for PM, Designer, Developer and Reviewer that pick the appropriate structured/tools/plain agent variant up-front to avoid runtime fallbacks. Update orchestrator and pipeline to use the auto factories, simplifying error handling and mode selection. Extend tests to cover capability detection, auto factory selection, and plain-agent behavior.

Details

v0.0.9

Choose a tag to compare

@github-actions github-actions released this 02 Feb 03:13
5f7129f

Changes

Implements cost calculation and backfill for agent runs, updates API endpoints and repository methods to support cost aggregation, and displays model pricing and run costs in the frontend. Upgrades Prompture dependency to >=0.0.49 for improved reasoning and pricing support.

Details

v0.0.8

Choose a tag to compare

@github-actions github-actions released this 02 Feb 02:29
76fabb5

Changes

Set default host to 127.0.0.1 and port to 6391 in config.py, removing dynamic PORT env var usage. Dockerfile now exposes port 6391 explicitly and updates CMD for better process handling. Railway deployment config adds healthcheckTimeout and removes explicit startCommand.

Details

v0.0.7

Choose a tag to compare

@github-actions github-actions released this 02 Feb 02:20
58ea671

Changes

Introduces a new /api/health endpoint for simple health checks without external dependencies. Updates the deployment healthcheck path in railway.json to use this new endpoint.

Details

v0.0.6

Choose a tag to compare

@github-actions github-actions released this 02 Feb 02:15
c2fa372

Changes

Updated Dockerfile and config.py to allow setting the server port using the PORT environment variable, improving compatibility with deployment platforms like Railway and Render. The default port remains 6391 if PORT is not set.

Details

v0.0.5

Choose a tag to compare

@github-actions github-actions released this 02 Feb 02:06
7a57c74

Changes

Introduces WelcomePopup and SupportPopup components to enhance user onboarding and encourage starring the GitHub repo. Updates App.jsx to display these popups, AppSidebar to add a GitHub star link, and useGeneration.js to track generation count for triggering the support popup. Also updates Dockerfile for frontend build and adds railway.json for deployment configuration.

Details