diff --git a/HIDDEN.md b/HIDDEN.md index 8a7d7304..983b3036 100644 --- a/HIDDEN.md +++ b/HIDDEN.md @@ -45,7 +45,6 @@ Pages that render a TODO callout. These are live and indexed. | `/actors/docs/http-api` | rivet repo | | `/agentos/docs/software` (was `/agentos/docs/software`) | agentos repo | | `/dynamic-apps/docs`, `/docs/concepts`, `/docs/quickstart` | dynamic-apps repo — whole vertical unwritten | -| `/workflows/docs`, `/docs/concepts`, `/docs/quickstart` | workflows repo — whole vertical unwritten | | `/secure-exec/docs` | secure-exec repo — docs not ported from secureexec.dev yet. `vendor/secure-exec` is a one-page placeholder bundle, and the Overview's deep docs links still point at `https://secureexec.dev/docs/*` until they land | ## Content parked, not published diff --git a/src/content/overviews/actors.mdx b/src/content/overviews/actors.mdx index 6c808298..d18a14c8 100644 --- a/src/content/overviews/actors.mdx +++ b/src/content/overviews/actors.mdx @@ -63,7 +63,7 @@ The [Actor Inspector](/actors/docs/inspector-tabs) shows live state, connections ## The foundation the rest of Rivet builds on - [**agentOS**](/agentos/docs) adds files, processes, a shell, and networking when an agent needs a computer. Every agentOS VM is an Actor. -- [**Workflows**](/workflows/docs) adds recorded steps, retries, and replay for work that outlives a process. Every workflow is an Actor run handler. +- [**Workflows**](/workflows/docs) adds recorded steps, retries, and replay for work that outlives a process. Every workflow is an Actor. - [**Dynamic Apps**](/dynamic-apps/docs) deploys the apps your agents build. Every app runs as Actors that scale to zero and wake on demand. ## Develop locally, deploy your way diff --git a/src/content/overviews/workflows.mdx b/src/content/overviews/workflows.mdx index b6f8b7d6..01cfbcbb 100644 --- a/src/content/overviews/workflows.mdx +++ b/src/content/overviews/workflows.mdx @@ -4,7 +4,7 @@ description: "Durable TypeScript workflows built on Rivet Actors: recorded steps seoTitle: "Rivet Workflows: durable agent automation" --- -Automate agent work that outlives a process. Steps record their results, wait for people or systems, and resume after crashes and deploys. Every workflow is a Rivet Actor run handler, so each run gets the Actor's identity, state, queue, and scheduling for free. +Automate agent work that outlives a process. Steps record their results, wait for people or systems, and resume after crashes and deploys. Every workflow is a Rivet Actor, so each run gets the Actor's identity, state, queue, and scheduling for free. @@ -49,7 +49,7 @@ The run inspector in the Rivet dashboard traces every step's status, timing, att ## One foundation, composable with the rest of Rivet -- [**Actors**](/actors/docs): every workflow is an Actor run handler. Actors provide identity, state, queues, and scheduling. +- [**Actors**](/actors/docs): every workflow is an Actor. Actors provide identity, state, queues, and scheduling. - [**agentOS**](/agentos/docs): adds files, processes, a shell, and networking when a workflow drives an agent using real tools. - [**Dynamic Apps**](/dynamic-apps/docs): adds a generated backend when the workflow should ship an application to users. diff --git a/src/data/agentSetupPrompt.ts b/src/data/agentSetupPrompt.ts index aa0fd72d..194c8d26 100644 --- a/src/data/agentSetupPrompt.ts +++ b/src/data/agentSetupPrompt.ts @@ -45,7 +45,7 @@ export const AGENT_SETUP_PROMPTS = { packageName: '@rivet-dev/workflows', quickstartUrl: 'https://rivet.dev/workflows/docs/quickstart/', docsUrl: 'https://rivet.dev/workflows/docs/', - issuesUrl: 'https://github.com/rivet-dev/rivet/issues', + issuesUrl: 'https://github.com/rivet-dev/workflows/issues', }), 'dynamic-apps': buildAgentSetupPrompt({ product: 'Dynamic Apps', diff --git a/src/data/faqs/workflows.ts b/src/data/faqs/workflows.ts index 50d16a11..3d9b8ca9 100644 --- a/src/data/faqs/workflows.ts +++ b/src/data/faqs/workflows.ts @@ -7,7 +7,7 @@ export const workflowsFaqs: FaqItem[] = [ { question: "What is a Rivet Workflow?", answerHtml: - 'An Actor run handler wrapped in workflow(). Each ctx.step() records its result, so a run resumes after restarts and deployments.', + 'An Actor defined with workflow() from @rivet-dev/workflows. Each ctx.step() records its result, so a run resumes after restarts and deployments.', }, { question: "Does Workflows guarantee exactly-once execution?", @@ -32,6 +32,6 @@ export const workflowsFaqs: FaqItem[] = [ { question: "Is Rivet Workflows open source?", answerHtml: - 'Yes, Apache 2.0. Read the implementation on GitHub.', + 'Yes, Apache 2.0. Read the implementation on GitHub.', }, ]; diff --git a/src/data/use-cases.ts b/src/data/use-cases.ts deleted file mode 100644 index 3bc6e7c6..00000000 --- a/src/data/use-cases.ts +++ /dev/null @@ -1,104 +0,0 @@ -import { - faClock, - faDatabase, - faDiagramNext, - faFilePen, - faGamepad, - faGaugeHigh, - faGlobe, - faNetworkWired, - faRobot, - faRotate, - faUserRobot, -} from "@rivet-gg/icons"; - -export interface UseCase { - title: string; - href: string; - icon?: any; - description?: string; -} - -export const useCases: UseCase[] = [ - { - title: "AI Agent", - href: "/docs/use-cases/ai-agent", - icon: faRobot, - description: - "Build durable AI assistants with persistent memory and realtime streaming", - }, - { - title: "Realtime Docs", - href: "/docs/use-cases/crdt", - icon: faFilePen, - description: - "Collaborative documents with CRDTs and realtime synchronization", - }, - { - title: "Workflows", - href: "/docs/use-cases/workflows", - icon: faDiagramNext, - description: - "Durable multi-step workflows with automatic state management", - }, - { - title: "Local-First Sync", - href: "/docs/use-cases/sync", - icon: faRotate, - description: "Offline-first applications with server synchronization", - }, - { - title: "Bots", - href: "/docs/use-cases/bots", - icon: faUserRobot, - description: "Discord, Slack, or autonomous bots with persistent state", - }, - { - title: "Per-Tenant Databases", - href: "/docs/use-cases/database", - icon: faDatabase, - description: - "Isolated data stores for each user with zero-latency access", - }, - { - title: "Multiplayer Game", - href: "/docs/use-cases/game", - icon: faGamepad, - description: - "Authoritative game servers with realtime state synchronization", - }, - { - title: "Background Jobs", - href: "/docs/use-cases/background-jobs", - icon: faClock, - description: - "Scheduled and recurring jobs without external queue infrastructure", - }, - { - title: "Rate Limiting", - href: "/docs/use-cases/rate", - icon: faGaugeHigh, - description: "Distributed rate limiting with in-memory counters", - }, - { - title: "Geo-Distributed Database", - href: "/actors/docs/general/edge", - icon: faGlobe, - description: - "Store data close to users globally with automatic edge distribution", - }, - { - title: "Agent Orchestration & MCP", - href: "/docs/use-cases/ai-agent", - icon: faRobot, - description: - "Build AI agents with Model Context Protocol and persistent state", - }, - { - title: "Multiplayer Apps", - href: "/docs/use-cases/game", - icon: faNetworkWired, - description: - "Build realtime multiplayer applications with authoritative state", - }, -]; diff --git a/src/pages/agentos.astro b/src/pages/agentos.astro index 6aa3ceb1..19ec8ab0 100644 --- a/src/pages/agentos.astro +++ b/src/pages/agentos.astro @@ -116,17 +116,16 @@ await bob.prompt({ { key: 'workflows', fileName: 'workflow.ts', code: `// server.ts import { agentOS, setup } from "@rivet-dev/agentos"; import pi from "@agentos-software/pi"; -import { actor, queue } from "rivetkit"; -import { workflow } from "rivetkit/workflow"; +import { queue, workflow } from "@rivet-dev/workflows"; const vm = agentOS({ software: [pi] }); -const codeReview = actor({ +const codeReview = workflow({ state: { status: "pending" }, queues: { review: queue<{ approved: boolean; feedback?: string }>(), }, - run: workflow(async (ctx) => { + run: async (ctx) => { let feedback = ""; for (let revision = 1; revision <= 3; revision++) { @@ -164,7 +163,7 @@ const codeReview = actor({ } throw new Error("Review rejected after 3 revisions"); - }), + }, }); export const registry = setup({ use: { vm, codeReview } });