Releases: jhd3197/AgentSite
Release list
v0.0.14
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
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()andregenerate_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.pyexposesgenerate_website()andregenerate_page()as standalone async entry points withGenerationConfig/GenerationResultdataclasses. Handles budget errors, partial recovery, and StyleSpec parsing with LLM fallback - New
agentsite/engine/driver_factory.pywraps Prompture'sget_async_driver_for_modelto build per-project drivers with injected API keys viaresolve_driver_for_model()andbuild_provider_environment() - New
agentsite/engine/model_resolver.pyimplements multi-layer model resolution (agent override > project default > global settings) using Prompture'sModelResolverwith manual fallback - New
agentsite/engine/extract.pyprovidesextract_structured()— async LLM-based extraction with retry logic, supporting both async and sync Prompture backends Projectmodel gainsprovider_keys(per-project API credentials) anduser_idfieldsProjectRepositorymethods (get,list_all,update,delete) accept optionaluser_idparameter for tenant-scoped queriesAgentRunRepository.create(),list_recent(),get_stats(),get_daily_stats()gainuser_idscoping- Database migrations add
user_idcolumns to bothprojectsandagent_runstables GenerateRequestgainsmax_cost,budget_policy, andprovider_keysfields for per-request budget and credential overrides- Generation route merges project-level and request-level provider keys, catches
BudgetExceededErrorto save partial files and broadcastbudget_exceededWebSocket 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__acceptsprovider_keysandcachibot_api_key;generate()acceptsmax_costandbudget_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) andon_output(structured output preview) WSEvent.typedescription updated to includetext_delta,agent_output,model_fallback,budget_exceeded,pipeline_planconfig.pyaddsbudget_policy,budget_max_tokens, andbudget_fallback_modelssettingscreate_app()acceptscustom_lifespan,extra_routers, andextra_middlewarefor custom deployments- CLI
servecommand gains--appflag to specify a custom app factory module path deps.pygainsreset()to clear all singletons for re-initialization- Package root
__init__.pyexportsgenerate_website,regenerate_page,GenerationConfig,GenerationResult,create_app, andsettings VERSIONfile removed in favor of__version__in__init__.py
Details
v0.0.12
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 base —
write_guide,read_guide,list_guidestools 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.extendfor strict JSON prompt composition- DB migration and repository changes to persist
agent_overrides - Removed obsolete
gemini_patchmodule
Prompture Usage Tracking & Analytics
/api/agents/statsenriched withcost_by_modeland daily/monthly totals- New endpoints:
/stats/models,/stats/providers,/stats/today,/stats/session/{id} - UsageSession integration in the generation pipeline with graceful fallback
AgentRunmodel gainssession_id; DB migration adds the column- Cost backfill using Prompture's
get_model_ratesfor 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
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
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
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
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
v0.0.6
v0.0.5
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.