deploy ProspectOS workspace v5 final

This commit is contained in:
Marco0300
2026-09-07 10:23:38 +02:00
parent e27a003703
commit 181b83fc5e
8 changed files with 649 additions and 17 deletions
+30 -7
View File
@@ -39,6 +39,14 @@ a production site and should be checked and edited before sending.
The design prompt receives a small category-matched library of Unsplash stock
images; generated pages may use only those supplied image URLs, and the
fallback template uses the same curated set.
Each saved concept also has an **Edit template** action. It opens the shareable
site beside a chat-style editor where you can ask for copy, emphasis, palette,
imagery, or layout changes. The request is sent to the configured AI with the
prospect's public evidence and rendered through the same deterministic,
sanitised template renderer. Every successful edit creates a new version and
share token; earlier versions remain in the prospect drawer and are never
overwritten. If AI is unavailable, safe visual hints such as “make it darker”
still select one of the built-in palettes.
The **Logs** view separates API calls, user actions, AI requests, searches,
Browser Use/tool steps, and errors. AI request payloads and responses are
truncated and credentials such as API keys, authorization headers, tokens, and
@@ -111,6 +119,7 @@ error rather than remaining stuck forever.
| `AI_BASE_URL` | empty | Optional OpenAI-compatible `/chat/completions` endpoint |
| `AI_API_KEY` | empty | Optional provider key; keep server-side |
| `AI_MODEL` | empty | Model name used for evidence-grounded drafts |
| `AI_MOCKUP_TIMEOUT_SECONDS` | `45` | Maximum AI wait for mockup copy before the deterministic premium renderer is used (20–300 seconds) |
### Nous Research Portal
@@ -171,10 +180,11 @@ The API equivalents are `POST /api/prospects/{id}/website-candidates`,
Open **Settings → Browser and discovery timing** to change Browser Use's
enabled state, total investigation timeout, maximum agent steps, and per-call
AI timeout. The same panel controls the Maps worker wait timeout/poll interval,
search depth, and website health/email scan timeout. Values are stored in the
local SQLite database, survive container restarts, and override `.env` defaults
for new runs. The safe UI ranges prevent a malformed value from creating an
unbounded worker.
search depth, website health/email scan timeout, and the maximum wait for
AI-written mockup copy. Values are stored in the local SQLite database, survive
container restarts, and override `.env` defaults for new runs. The safe UI
ranges prevent a malformed value from creating an unbounded worker; a slow
mockup provider automatically falls back to the complete local renderer.
The app stores its catalogue in the `prospect_data` Docker volume. The worker
stores its own job data in `gmaps_data`; keep both volumes if you want to retain
@@ -228,9 +238,22 @@ with `GET/POST /api/promotions`, `PATCH /api/promotions/{id}`, and
is sent as `promotion_id` and retained on that prospect's draft.
Mockups are created with `POST /api/prospects/{id}/mockup`, listed with
`GET /api/prospects/{id}/mockups`, and opened by their public
`/mockups/{token}` share URL. Set `PUBLIC_BASE_URL` when the reverse proxy does
not forward the public host; otherwise the link is built from the request's
forwarded host or `Host` header.
`/mockups/{token}` share URL. Choose `mode=onepage` for a single scrollable
landing page or `mode=multipage` for real Home, Services, About, and Contact
routes. Both modes use the same deterministic premium renderer: responsive
sticky navigation, layered hero imagery, editorial service cards, accessible
contact calls-to-action, a dark structured footer, hover states, and CSS-only
entrance/ambient animations with reduced-motion support. AI is asked only for
bounded copy and curated image choices; malformed, truncated, unavailable, or
slow AI responses fall back to the same complete renderer instead of failing
the request. Set `PUBLIC_BASE_URL` when the reverse proxy does not forward the
public host; otherwise the link is built from the request's forwarded host or
`Host` header.
Use `GET /api/mockups/{id}` to load editor metadata and
`POST /api/mockups/{id}/edit` with `{"instruction":"...","page":"all"}` to
create the next version. The edit endpoint requires reviewer access, limits
instructions to 3,000 characters, and accepts `all`, `home`, `services`,
`about`, or `contact` as the page scope.
## Tests