Normalize the topology so web/desktop/mobile clients communicate only with Convex. Convex admits durable commands, dispatches private Flue turns through FLUE_URL, and stores the product-facing result before clients observe it. - Normalized relational schema: organizations, projects, conversations/turns/ messages/attachments, signals/sources/constraints, works/events/attachments. - Conversation turns queued in Convex; the agent runAction dispatches to Flue and persists assistant response, signals, and proposed work back into Convex. - Browser chat moved off the Flue transport: use-chat-agent now reads reactive Convex rows and sends through conversationMessages.send. - Fixed signed-in blank screen: gate all product queries on useConvexAuth (isAuthenticated && !isRefreshing) plus personal-org bootstrap. - Pinned react/react-dom to 19.2.8 via catalog to fix SSR dual-React crash. - Removed ~16.6k net lines: daemon, AgentOS/Orb, project issues/runs/artifacts, todos, browser Flue transport, mobile execution views, smoke scripts. Verified end-to-end on cheaptricks: connect repo, send actionable message, Flue turn completes, Signal + proposed Work created with exact provenance, persists across refresh.
18 lines
561 B
TypeScript
18 lines
561 B
TypeScript
import type { AgentStatus } from "./types";
|
|
|
|
/**
|
|
* The global Zopu agent. The instance `id` is the current organization id
|
|
* (resolved at runtime by the chat hook), not the legacy `main` shared
|
|
* instance. Organization scoping is the hard tenancy boundary.
|
|
*/
|
|
export const MODEL_ID = "openrouter/openai/gpt-oss-20b:free";
|
|
export const MODEL_LABEL = "GPT-OSS 20B Free";
|
|
|
|
export const STATUS_COPY: Record<AgentStatus, string> = {
|
|
connecting: "Connecting",
|
|
error: "Connection issue",
|
|
idle: "Ready",
|
|
streaming: "Responding",
|
|
submitted: "Thinking",
|
|
};
|