Skip to content

Sync docs changes#1226

Merged
parteeksingh24 merged 23 commits intomainfrom
sync-docs-changes
Mar 24, 2026
Merged

Sync docs changes#1226
parteeksingh24 merged 23 commits intomainfrom
sync-docs-changes

Conversation

@parteeksingh24
Copy link
Copy Markdown
Contributor

@parteeksingh24 parteeksingh24 commented Mar 18, 2026

Bring together docs changes made across stale or existing branches.

Summary by CodeRabbit

  • Documentation

    • Added comprehensive docs: Email, Tasks, Webhooks, Schedules, WebRTC, Explicit Routing, GitHub App, CLI OAuth & Monitoring, Sandbox events, Queues, Object Storage setup, and cookbook integrations (Mastra, LangChain, OpenAI Agents SDK, Next.js, TanStack Start).
  • Updates

    • Expanded navigation and route listings for new docs; SDK reference now documents additional platform services; many in-doc links and quickstart callouts updated to "Web App"; API OAuth responses now include a new required client field.
  • Style

    • Removed loading ellipsis animation; adjusted code-block overscroll behavior.
  • UX

    • TOC includes deeper headings; tabs child detection and scroll/hash navigation behavior improved.

- Add cookbook pages to sync with examples repo
- Add brand SVGs and organize images by section
- Add CLI reference for `oauth` and `monitoring`
- Add explicit routing docs for `createApp`
- Fix task aliases, sandbox events, broken links
@agentuity-agent
Copy link
Copy Markdown

agentuity-agent Bot commented Mar 18, 2026

The latest Agentuity deployment details. Learn more about Agentuity.

Project Deployment Preview Updated (UTC)
docs 🟡 Building - Mar 20, 2026 11:25 PM

@coderabbitai
Copy link
Copy Markdown
Contributor

coderabbitai Bot commented Mar 18, 2026

Note

Reviews paused

It looks like this branch is under active development. To avoid overwhelming you with review comments due to an influx of new commits, CodeRabbit has automatically paused this review. You can configure this behavior by changing the reviews.auto_review.auto_pause_after_reviewed_commits setting.

Use the following commands to manage reviews:

  • @coderabbitai resume to resume automatic reviews.
  • @coderabbitai review to trigger a single review.

Use the checkboxes below for quick actions:

  • ▶️ Resume reviews
  • 🔍 Trigger review
📝 Walkthrough

Walkthrough

Adds many new documentation pages and corresponding route modules and generated route-tree entries; expands navigation data; updates docs layout behavior (hash-aware scrolling), TOC/Tabs logic, and code-block overscroll styles; removes the CSS ellipsis loading animation; and introduces broad content updates across services, cookbook, routes, and CLI references.

Changes

Cohort / File(s) Summary
Styles & Loading Animation
apps/docs/src/web/app.css, apps/docs/src/web/index.css
Removed the ellipsis loading animation and related loading rules; removed vertical overscroll containment and added horizontal overscroll containment for code/pre blocks.
Docs Layout & UI Components
apps/docs/src/web/components/docs/docs-layout.tsx, apps/docs/src/web/components/docs/mdx-components.tsx, apps/docs/src/web/components/docs/tabs.tsx, apps/docs/src/web/components/docs/toc.tsx
Made docs-layout scrolling hash-aware and adjusted navigation/hash handling; adjusted Pre container and inner pre overscroll classes; Tabs now detects Tab children by direct component reference; TOC now observes and renders all heading depths with updated effect/deps.
Navigation Data
apps/docs/src/web/components/docs/nav-data.ts
Expanded nav entries heavily: new pages for Explicit Routing, WebRTC, Tasks, Email, Webhooks, Schedules, Cookbook Integrations (Mastra, LangChain, OpenAI Agents SDK, Next.js, TanStack Start), and added CLI OAuth/Monitoring entries.
New & Updated Services Docs
apps/docs/src/web/content/services/*.mdx, apps/docs/src/web/content/services/index.mdx, apps/docs/src/web/content/services/queues.mdx, apps/docs/src/web/content/services/storage/object.mdx, apps/docs/src/web/content/services/sandbox/*.mdx
Added full docs for Email, Tasks, Webhooks, Schedules; expanded Queues with DLQ, realtime, CLI, and HTTP ingestion details; replaced auto-injected object-storage credential guidance with explicit setup; added sandbox events and auto-resume docs; updated services index with messaging/integrations.
Cookbook Integrations & Pages
apps/docs/src/web/content/cookbook/index.mdx, apps/docs/src/web/content/cookbook/integrations/*, apps/docs/src/web/content/cookbook/integrations/meta.json
Added Integrations section and pages for Mastra, LangChain, OpenAI Agents SDK, Next.js, TanStack Start and meta.json linking them.
Routes & Protocol Guides
apps/docs/src/web/content/routes/explicit-routing.mdx, apps/docs/src/web/content/routes/webrtc.mdx, apps/docs/src/web/content/routes/index.mdx, apps/docs/src/web/content/routes/http.mdx
Added explicit-routing guide (Hono router) and comprehensive WebRTC guide; surfaced links in route index and HTTP docs.
CLI & Reference Docs
apps/docs/src/web/content/reference/cli/*.mdx, apps/docs/src/web/content/reference/api/sandboxes.mdx, apps/docs/src/web/content/reference/github-app.mdx, apps/docs/src/web/content/reference/meta.json
Added CLI OAuth and Monitoring docs and GitHub App reference; updated deployment/preview workflow guidance, sandbox API docs (events, auto-resume, outputTruncated, symlink info), and reference meta adjustments.
Get-Started, Agents & Misc Content
apps/docs/src/web/content/get-started/*.mdx, apps/docs/src/web/content/agents/*.mdx, apps/docs/src/web/content/community/index.mdx, apps/docs/src/web/content/reference/migration-guide.mdx, apps/docs/src/web/content/reference/sdk-reference.mdx
Replaced legacy App links with Web App URLs, added deployment/build resource and env-file guidance, reformatted lists, added explicit-routing migration docs, updated community image paths, and expanded SDK reference to include new platform services (queue, task, email, schedule, sandbox).
Generated Route Tree
apps/docs/src/web/routeTree.gen.ts
Regenerated route tree and public route/type declarations to include all new docs routes and exported Route constants (many additive route/type entries).
Docs Route Modules (new)
apps/docs/src/web/routes/_docs/services/*.tsx, apps/docs/src/web/routes/_docs/routes/*.tsx, apps/docs/src/web/routes/_docs/cookbook/*, apps/docs/src/web/routes/_docs/reference/*
Added ~15+ createFileRoute modules mapping new MDX pages to routes; each exports a Route rendering MDXPage with static crumb data.
Many MDX Content Edits
apps/docs/src/web/content/cookbook/*, apps/docs/src/web/content/get-started/*, apps/docs/src/web/content/reference/*, apps/docs/src/web/content/*
Numerous content additions and edits: new pages, link text/URL updates, image path fixes, formatting adjustments, some duplicated insertions, and broad documentation expansions across cookbook, get-started, reference, and community files.
🚥 Pre-merge checks | ✅ 1
✅ Passed checks (1 passed)
Check name Status Explanation
Description Check ✅ Passed Check skipped - CodeRabbit’s high-level summary is enabled.

✏️ Tip: You can configure your own custom pre-merge checks in the settings.


Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

❤️ Share

Comment @coderabbitai help to get the list of available commands and usage tips.

@github-actions
Copy link
Copy Markdown

github-actions Bot commented Mar 18, 2026

📦 Canary Packages Published

version: 1.0.56-88332dc

Packages
Package Version URL
@agentuity/email 1.0.56-88332dc https://agentuity-sdk-objects.t3.storageapi.dev/npm/1.0.56-88332dc/agentuity-email-1.0.56-88332dc.tgz
@agentuity/opencode 1.0.56-88332dc https://agentuity-sdk-objects.t3.storageapi.dev/npm/1.0.56-88332dc/agentuity-opencode-1.0.56-88332dc.tgz
@agentuity/claude-code 1.0.56-88332dc https://agentuity-sdk-objects.t3.storageapi.dev/npm/1.0.56-88332dc/agentuity-claude-code-1.0.56-88332dc.tgz
@agentuity/runtime 1.0.56-88332dc https://agentuity-sdk-objects.t3.storageapi.dev/npm/1.0.56-88332dc/agentuity-runtime-1.0.56-88332dc.tgz
@agentuity/webhook 1.0.56-88332dc https://agentuity-sdk-objects.t3.storageapi.dev/npm/1.0.56-88332dc/agentuity-webhook-1.0.56-88332dc.tgz
@agentuity/keyvalue 1.0.56-88332dc https://agentuity-sdk-objects.t3.storageapi.dev/npm/1.0.56-88332dc/agentuity-keyvalue-1.0.56-88332dc.tgz
@agentuity/vector 1.0.56-88332dc https://agentuity-sdk-objects.t3.storageapi.dev/npm/1.0.56-88332dc/agentuity-vector-1.0.56-88332dc.tgz
@agentuity/cli 1.0.56-88332dc https://agentuity-sdk-objects.t3.storageapi.dev/npm/1.0.56-88332dc/agentuity-cli-1.0.56-88332dc.tgz
@agentuity/evals 1.0.56-88332dc https://agentuity-sdk-objects.t3.storageapi.dev/npm/1.0.56-88332dc/agentuity-evals-1.0.56-88332dc.tgz
@agentuity/react 1.0.56-88332dc https://agentuity-sdk-objects.t3.storageapi.dev/npm/1.0.56-88332dc/agentuity-react-1.0.56-88332dc.tgz
@agentuity/workbench 1.0.56-88332dc https://agentuity-sdk-objects.t3.storageapi.dev/npm/1.0.56-88332dc/agentuity-workbench-1.0.56-88332dc.tgz
@agentuity/task 1.0.56-88332dc https://agentuity-sdk-objects.t3.storageapi.dev/npm/1.0.56-88332dc/agentuity-task-1.0.56-88332dc.tgz
@agentuity/sandbox 1.0.56-88332dc https://agentuity-sdk-objects.t3.storageapi.dev/npm/1.0.56-88332dc/agentuity-sandbox-1.0.56-88332dc.tgz
@agentuity/drizzle 1.0.56-88332dc https://agentuity-sdk-objects.t3.storageapi.dev/npm/1.0.56-88332dc/agentuity-drizzle-1.0.56-88332dc.tgz
@agentuity/db 1.0.56-88332dc https://agentuity-sdk-objects.t3.storageapi.dev/npm/1.0.56-88332dc/agentuity-db-1.0.56-88332dc.tgz
@agentuity/postgres 1.0.56-88332dc https://agentuity-sdk-objects.t3.storageapi.dev/npm/1.0.56-88332dc/agentuity-postgres-1.0.56-88332dc.tgz
@agentuity/schema 1.0.56-88332dc https://agentuity-sdk-objects.t3.storageapi.dev/npm/1.0.56-88332dc/agentuity-schema-1.0.56-88332dc.tgz
@agentuity/auth 1.0.56-88332dc https://agentuity-sdk-objects.t3.storageapi.dev/npm/1.0.56-88332dc/agentuity-auth-1.0.56-88332dc.tgz
@agentuity/frontend 1.0.56-88332dc https://agentuity-sdk-objects.t3.storageapi.dev/npm/1.0.56-88332dc/agentuity-frontend-1.0.56-88332dc.tgz
@agentuity/queue 1.0.56-88332dc https://agentuity-sdk-objects.t3.storageapi.dev/npm/1.0.56-88332dc/agentuity-queue-1.0.56-88332dc.tgz
@agentuity/core 1.0.56-88332dc https://agentuity-sdk-objects.t3.storageapi.dev/npm/1.0.56-88332dc/agentuity-core-1.0.56-88332dc.tgz
@agentuity/server 1.0.56-88332dc https://agentuity-sdk-objects.t3.storageapi.dev/npm/1.0.56-88332dc/agentuity-server-1.0.56-88332dc.tgz
@agentuity/coder 1.0.56-88332dc https://agentuity-sdk-objects.t3.storageapi.dev/npm/1.0.56-88332dc/agentuity-coder-1.0.56-88332dc.tgz
@agentuity/schedule 1.0.56-88332dc https://agentuity-sdk-objects.t3.storageapi.dev/npm/1.0.56-88332dc/agentuity-schedule-1.0.56-88332dc.tgz
Install

Add to your package.json:

{
  "dependencies": {
    "@agentuity/email": "https://agentuity-sdk-objects.t3.storageapi.dev/npm/1.0.56-88332dc/agentuity-email-1.0.56-88332dc.tgz",
    "@agentuity/opencode": "https://agentuity-sdk-objects.t3.storageapi.dev/npm/1.0.56-88332dc/agentuity-opencode-1.0.56-88332dc.tgz",
    "@agentuity/claude-code": "https://agentuity-sdk-objects.t3.storageapi.dev/npm/1.0.56-88332dc/agentuity-claude-code-1.0.56-88332dc.tgz",
    "@agentuity/runtime": "https://agentuity-sdk-objects.t3.storageapi.dev/npm/1.0.56-88332dc/agentuity-runtime-1.0.56-88332dc.tgz",
    "@agentuity/webhook": "https://agentuity-sdk-objects.t3.storageapi.dev/npm/1.0.56-88332dc/agentuity-webhook-1.0.56-88332dc.tgz",
    "@agentuity/keyvalue": "https://agentuity-sdk-objects.t3.storageapi.dev/npm/1.0.56-88332dc/agentuity-keyvalue-1.0.56-88332dc.tgz",
    "@agentuity/vector": "https://agentuity-sdk-objects.t3.storageapi.dev/npm/1.0.56-88332dc/agentuity-vector-1.0.56-88332dc.tgz",
    "@agentuity/cli": "https://agentuity-sdk-objects.t3.storageapi.dev/npm/1.0.56-88332dc/agentuity-cli-1.0.56-88332dc.tgz",
    "@agentuity/evals": "https://agentuity-sdk-objects.t3.storageapi.dev/npm/1.0.56-88332dc/agentuity-evals-1.0.56-88332dc.tgz",
    "@agentuity/react": "https://agentuity-sdk-objects.t3.storageapi.dev/npm/1.0.56-88332dc/agentuity-react-1.0.56-88332dc.tgz",
    "@agentuity/workbench": "https://agentuity-sdk-objects.t3.storageapi.dev/npm/1.0.56-88332dc/agentuity-workbench-1.0.56-88332dc.tgz",
    "@agentuity/task": "https://agentuity-sdk-objects.t3.storageapi.dev/npm/1.0.56-88332dc/agentuity-task-1.0.56-88332dc.tgz",
    "@agentuity/sandbox": "https://agentuity-sdk-objects.t3.storageapi.dev/npm/1.0.56-88332dc/agentuity-sandbox-1.0.56-88332dc.tgz",
    "@agentuity/drizzle": "https://agentuity-sdk-objects.t3.storageapi.dev/npm/1.0.56-88332dc/agentuity-drizzle-1.0.56-88332dc.tgz",
    "@agentuity/db": "https://agentuity-sdk-objects.t3.storageapi.dev/npm/1.0.56-88332dc/agentuity-db-1.0.56-88332dc.tgz",
    "@agentuity/postgres": "https://agentuity-sdk-objects.t3.storageapi.dev/npm/1.0.56-88332dc/agentuity-postgres-1.0.56-88332dc.tgz",
    "@agentuity/schema": "https://agentuity-sdk-objects.t3.storageapi.dev/npm/1.0.56-88332dc/agentuity-schema-1.0.56-88332dc.tgz",
    "@agentuity/auth": "https://agentuity-sdk-objects.t3.storageapi.dev/npm/1.0.56-88332dc/agentuity-auth-1.0.56-88332dc.tgz",
    "@agentuity/frontend": "https://agentuity-sdk-objects.t3.storageapi.dev/npm/1.0.56-88332dc/agentuity-frontend-1.0.56-88332dc.tgz",
    "@agentuity/queue": "https://agentuity-sdk-objects.t3.storageapi.dev/npm/1.0.56-88332dc/agentuity-queue-1.0.56-88332dc.tgz",
    "@agentuity/core": "https://agentuity-sdk-objects.t3.storageapi.dev/npm/1.0.56-88332dc/agentuity-core-1.0.56-88332dc.tgz",
    "@agentuity/server": "https://agentuity-sdk-objects.t3.storageapi.dev/npm/1.0.56-88332dc/agentuity-server-1.0.56-88332dc.tgz",
    "@agentuity/coder": "https://agentuity-sdk-objects.t3.storageapi.dev/npm/1.0.56-88332dc/agentuity-coder-1.0.56-88332dc.tgz",
    "@agentuity/schedule": "https://agentuity-sdk-objects.t3.storageapi.dev/npm/1.0.56-88332dc/agentuity-schedule-1.0.56-88332dc.tgz"
  }
}

Or install directly:

bun add https://agentuity-sdk-objects.t3.storageapi.dev/npm/1.0.56-88332dc/agentuity-email-1.0.56-88332dc.tgz
bun add https://agentuity-sdk-objects.t3.storageapi.dev/npm/1.0.56-88332dc/agentuity-opencode-1.0.56-88332dc.tgz
bun add https://agentuity-sdk-objects.t3.storageapi.dev/npm/1.0.56-88332dc/agentuity-claude-code-1.0.56-88332dc.tgz
bun add https://agentuity-sdk-objects.t3.storageapi.dev/npm/1.0.56-88332dc/agentuity-runtime-1.0.56-88332dc.tgz
bun add https://agentuity-sdk-objects.t3.storageapi.dev/npm/1.0.56-88332dc/agentuity-webhook-1.0.56-88332dc.tgz
bun add https://agentuity-sdk-objects.t3.storageapi.dev/npm/1.0.56-88332dc/agentuity-keyvalue-1.0.56-88332dc.tgz
bun add https://agentuity-sdk-objects.t3.storageapi.dev/npm/1.0.56-88332dc/agentuity-vector-1.0.56-88332dc.tgz
bun add https://agentuity-sdk-objects.t3.storageapi.dev/npm/1.0.56-88332dc/agentuity-cli-1.0.56-88332dc.tgz
bun add https://agentuity-sdk-objects.t3.storageapi.dev/npm/1.0.56-88332dc/agentuity-evals-1.0.56-88332dc.tgz
bun add https://agentuity-sdk-objects.t3.storageapi.dev/npm/1.0.56-88332dc/agentuity-react-1.0.56-88332dc.tgz
bun add https://agentuity-sdk-objects.t3.storageapi.dev/npm/1.0.56-88332dc/agentuity-workbench-1.0.56-88332dc.tgz
bun add https://agentuity-sdk-objects.t3.storageapi.dev/npm/1.0.56-88332dc/agentuity-task-1.0.56-88332dc.tgz
bun add https://agentuity-sdk-objects.t3.storageapi.dev/npm/1.0.56-88332dc/agentuity-sandbox-1.0.56-88332dc.tgz
bun add https://agentuity-sdk-objects.t3.storageapi.dev/npm/1.0.56-88332dc/agentuity-drizzle-1.0.56-88332dc.tgz
bun add https://agentuity-sdk-objects.t3.storageapi.dev/npm/1.0.56-88332dc/agentuity-db-1.0.56-88332dc.tgz
bun add https://agentuity-sdk-objects.t3.storageapi.dev/npm/1.0.56-88332dc/agentuity-postgres-1.0.56-88332dc.tgz
bun add https://agentuity-sdk-objects.t3.storageapi.dev/npm/1.0.56-88332dc/agentuity-schema-1.0.56-88332dc.tgz
bun add https://agentuity-sdk-objects.t3.storageapi.dev/npm/1.0.56-88332dc/agentuity-auth-1.0.56-88332dc.tgz
bun add https://agentuity-sdk-objects.t3.storageapi.dev/npm/1.0.56-88332dc/agentuity-frontend-1.0.56-88332dc.tgz
bun add https://agentuity-sdk-objects.t3.storageapi.dev/npm/1.0.56-88332dc/agentuity-queue-1.0.56-88332dc.tgz
bun add https://agentuity-sdk-objects.t3.storageapi.dev/npm/1.0.56-88332dc/agentuity-core-1.0.56-88332dc.tgz
bun add https://agentuity-sdk-objects.t3.storageapi.dev/npm/1.0.56-88332dc/agentuity-server-1.0.56-88332dc.tgz
bun add https://agentuity-sdk-objects.t3.storageapi.dev/npm/1.0.56-88332dc/agentuity-coder-1.0.56-88332dc.tgz
bun add https://agentuity-sdk-objects.t3.storageapi.dev/npm/1.0.56-88332dc/agentuity-schedule-1.0.56-88332dc.tgz

Copy link
Copy Markdown
Contributor

@coderabbitai coderabbitai Bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Actionable comments posted: 11

Caution

Some comments are outside the diff and can’t be posted inline due to platform limitations.

⚠️ Outside diff range comments (8)
apps/docs/src/web/content/reference/api/sandboxes.mdx (1)

1160-1214: ⚠️ Potential issue | 🟡 Minor

Missing autoResumed field in Response Fields.

The prose at lines 1160 and 1164 describes the autoResumed behavior, but this field is not documented in the Response Fields table. According to the schema in packages/core/src/services/sandbox/execute.ts (lines 47-57), autoResumed is a top-level boolean field on successful responses.

Suggested addition to Response Fields
   {
     "name": "outputTruncated",
     "type": "boolean",
     "description": "Whether the captured output was truncated due to size limits",
     "required": false
+  },
+  {
+    "name": "autoResumed",
+    "type": "boolean",
+    "description": "True if the sandbox was automatically resumed from a suspended state before execution",
+    "required": false
   }
 ]} />
🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed.

In `@apps/docs/src/web/content/reference/api/sandboxes.mdx` around lines 1160 -
1214, The documentation omits the top-level boolean field autoResumed described
in the prose and produced by the sandbox execution logic; update the
ResponseFields declaration in the sandboxes.mdx API doc to include an entry for
"autoResumed" (type: boolean, description: "True if the sandbox was
automatically resumed before execution", required: false) so it matches the
schema in packages/core/src/services/sandbox/execute.ts and the surrounding
prose; locate the ResponseFields component block in sandboxes.mdx and add the
autoResumed field alongside executionId, status, exitCode, etc.
apps/docs/src/web/content/agents/standalone-execution.mdx (4)

126-136: 🛠️ Refactor suggestion | 🟠 Major

Add imports to make this example copy-pasteable.

This standalone code example is missing import statements. As per coding guidelines, standalone examples should include imports to ensure they are runnable.

📦 Add missing imports
+import { createAgentContext } from '@agentuity/runtime';
+import analyzeAgent from '@agent/analyze';
+import respondAgent from '@agent/respond';
+
 const ctx = createAgentContext();
 
 const result = await ctx.invoke(async () => {
🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed.

In `@apps/docs/src/web/content/agents/standalone-execution.mdx` around lines 126 -
136, The example is missing required imports so it isn't copy-pasteable; add
import statements for the symbols used (e.g., createAgentContext, analyzeAgent,
respondAgent, and any types like userInput) at the top of the snippet so the
block can run as-is—specifically import/create the createAgentContext function,
the analyzeAgent and respondAgent modules (or instances) and any utility/types
referenced, then keep the existing usage of ctx.invoke, analyzeAgent.run, and
respondAgent.run unchanged.

89-97: 🛠️ Refactor suggestion | 🟠 Major

Add imports to make this example copy-pasteable.

This standalone code example is missing import statements. As per coding guidelines, standalone examples should include imports to ensure they are runnable.

📦 Add missing imports
+import { createAgentContext } from '@agentuity/runtime';
+import messageAgent from '@agent/message';
+
 const ctx = createAgentContext({ trigger: 'websocket' });
 
 // Each run gets its own session and tracing span
🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed.

In `@apps/docs/src/web/content/agents/standalone-execution.mdx` around lines 89 -
97, The example is missing required imports, so make the snippet copy-pasteable
by adding import statements for createAgentContext, messageAgent, and any
websocket type/constructor used; specifically import createAgentContext and
messageAgent from their library/module and add an import or declaration for
websocket (e.g., WebSocket or a server-side websocket instance) so the symbols
used in the snippet (createAgentContext, messageAgent, ctx.run, websocket) are
defined and the example compiles/runs.

109-120: 🛠️ Refactor suggestion | 🟠 Major

Add import to make this example copy-pasteable.

This standalone code example is missing the import statement. As per coding guidelines, standalone examples should include imports at the top.

📦 Add missing import
+import { createAgentContext } from '@agentuity/runtime';
+
 const ctx = createAgentContext({ trigger: 'cron' });
 
 await ctx.invoke(async () => {
🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed.

In `@apps/docs/src/web/content/agents/standalone-execution.mdx` around lines 109 -
120, The example is missing the import needed to make it copy-pasteable; add the
appropriate import for createAgentContext at the top of the snippet so the
sample can run as-is (e.g., import { createAgentContext } from '...'), ensuring
the import aligns with how createAgentContext is exported in the codebase; keep
the rest of the example using ctx.invoke, ctx.kv.get, ctx.stream.create and
ctx.logger.info unchanged.

70-81: 🛠️ Refactor suggestion | 🟠 Major

Add imports to make this example copy-pasteable.

This standalone code example is missing import statements. As per coding guidelines, standalone examples should include imports at the top to ensure they are copy-pasteable and runnable.

📦 Add missing imports
+import { createAgentContext } from '@agentuity/runtime';
+import analyzeAgent from '@agent/analyze';
+import respondAgent from '@agent/respond';
+
 const ctx = createAgentContext();
 
 // First agent analyzes the input
🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed.

In `@apps/docs/src/web/content/agents/standalone-execution.mdx` around lines 70 -
81, The example is missing import statements; add top-of-file imports so the
snippet is copy-pasteable — specifically import createAgentContext and any
AgentContext types, and import the agent symbols analyzeAgent and respondAgent
(and any helper like userInput or its source) used in the snippet; ensure the
imports reference the modules where those symbols are defined so the calls to
createAgentContext(), ctx.run(analyzeAgent, …) and ctx.run(respondAgent, …)
resolve.
apps/docs/src/web/content/agents/evaluations.mdx (2)

257-257: ⚠️ Potential issue | 🟡 Minor

Update "App" to "Web App" for branding consistency.

Line 257 still references "App" while line 26 was updated to "Web App". For consistency with the PR's branding updates, this should also say "Web App".

📝 Proposed fix for consistency
-When you need scores visible in your UI (not just the App), run LLM-as-judge inline in your handler and include the results in your output schema:
+When you need scores visible in your UI (not just the Web App), run LLM-as-judge inline in your handler and include the results in your output schema:
🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed.

In `@apps/docs/src/web/content/agents/evaluations.mdx` at line 257, Update the
phrasing on the sentence that starts "When you need scores visible in your UI
(not just the App), run LLM-as-judge inline in your handler and include the
results in your output schema:" to replace "App" with "Web App" so it matches
the earlier change; locate the exact sentence containing "not just the App" and
change it to "not just the Web App".

54-54: ⚠️ Potential issue | 🔴 Critical

Update OpenAI model names to current versions.

The code examples use gpt-5-nano and gpt-5-mini, but the current valid OpenAI models as of March 2026 are gpt-5.4-nano and gpt-5.4-mini. Update all occurrences throughout the file (lines 54, 119, 169, 214, 282, 288, 327, 437) to use the correct model identifiers with the .4 version specifier. Users copying these examples will receive API errors with the current model names.

🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed.

In `@apps/docs/src/web/content/agents/evaluations.mdx` at line 54, Replace all
deprecated OpenAI model identifiers 'gpt-5-nano' and 'gpt-5-mini' with the
current names 'gpt-5.4-nano' and 'gpt-5.4-mini' respectively; specifically
update occurrences that look like model: openai('gpt-5-nano') and model:
openai('gpt-5-mini') so examples use openai('gpt-5.4-nano') and
openai('gpt-5.4-mini') to avoid API errors.
apps/docs/src/web/content/get-started/quickstart.mdx (1)

201-205: ⚠️ Potential issue | 🟡 Minor

Keep the rename consistent in this section.

Line 201 switches to “Web App,” but the adjacent callout still says “App.” Updating both at once avoids mixed terminology in the same onboarding step.

🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed.

In `@apps/docs/src/web/content/get-started/quickstart.mdx` around lines 201 - 205,
The section mixes the terms "Web App" and "App"; update the Callout component
and any text inside it (the Callout title "What You'll See in the App" and the
bullet "App populates with" if present) to use "Web App" consistently so both
the sentence "View deployments, logs, and more in the [Web App]" and the Callout
(Callout title and content) use the same term; search for the strings "What
You'll See in the App" and "App populates with" and replace "App" with "Web App"
(or otherwise make the wording consistent) in the Callout block.
🧹 Nitpick comments (15)
apps/docs/src/web/content/reference/cli/development.mdx (1)

248-248: Consider making the link text more context-specific.

The link text "details" is generic. Consider describing what the reader will find, e.g., "loading order" or "env file precedence," to help readers decide whether to follow the link.

📝 Suggested improvement
-| **Environment** | `.env`, `.env.development` ([details](/get-started/app-configuration#environment-specific-files)) | Cloud variables (via `cloud env`) |
+| **Environment** | `.env`, `.env.development` ([loading order](/get-started/app-configuration#environment-specific-files)) | Cloud variables (via `cloud env`) |

As per coding guidelines: "Make cross-links context-specific: include why the reader would follow the link."

🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed.

In `@apps/docs/src/web/content/reference/cli/development.mdx` at line 248, Replace
the generic link text "details" in the table row that shows Environment (.env,
.env.development) with a context-specific phrase that describes what the link
covers (for example "env file precedence" or "loading order"), so update the
markdown cell containing | **Environment** | `.env`, `.env.development`
([details](/get-started/app-configuration#environment-specific-files)) | to use
the chosen descriptive text (e.g., ([env file
precedence](/get-started/app-configuration#environment-specific-files))) to make
the cross-link self-explanatory.
apps/docs/src/web/components/docs/toc.tsx (1)

67-79: Deeper heading levels lose visual hierarchy in the TOC

Now that all heading depths are rendered, only indenting depth === 3 (Line 78) makes h4+ appear flat relative to higher levels. Add progressive depth-based indentation so deeper sections remain scannable.

💡 Proposed tweak
 							className={cn(
 								'block transition-colors hover:text-cyan-500',
-								depth === 3 && 'pl-3',
+								depth === 3 && 'pl-3',
+								depth === 4 && 'pl-6',
+								depth >= 5 && 'pl-9',
 								activeId === id
 									? 'text-cyan-600 dark:text-cyan-400 font-medium'
 									: 'text-zinc-600 dark:text-zinc-400'
 							)}
🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed.

In `@apps/docs/src/web/components/docs/toc.tsx` around lines 67 - 79, The TOC
currently only indents depth === 3, causing h4+ to lose hierarchy; update the
mapping in the flatHeadings render (where you build the <a> with className via
cn, inside the map that uses flatHeadings, id, value, depth and calls
scrollToHeading) to compute a depth-based padding class instead of a single
depth === 3 check — e.g., derive an indentation class from the heading depth
(map depths to progressive 'pl-...' classes or compute one from (depth) and
include that string in the cn call) so deeper headings (depth >= 3) receive
increasing left padding while preserving existing activeId styling and behavior.
apps/docs/src/web/content/services/storage/object.mdx (2)

44-55: Add an explicit “do not commit .env” warning next to credential keys.

Since this section lists raw credential variable names, adding a one-line secret-handling warning would reduce accidental leakage risk.

🔐 Suggested addition
 The credentials written to `.env`:
 
 - `S3_ACCESS_KEY_ID`
 - `S3_SECRET_ACCESS_KEY`
 - `S3_BUCKET`
 - `S3_ENDPOINT`
+
+<Callout type="warning" title="Treat Credentials as Secrets">
+Never commit `.env` to version control or expose these values in client-side code.
+</Callout>

As per coding guidelines, "Use 'warning' for gotchas and required setup".

🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed.

In `@apps/docs/src/web/content/services/storage/object.mdx` around lines 44 - 55,
Add an explicit one-line “do not commit .env” warning next to the listed
credential keys (S3_ACCESS_KEY_ID, S3_SECRET_ACCESS_KEY, S3_BUCKET, S3_ENDPOINT)
inside the existing Callout (Callout type="warning" title="Dev Mode
Credentials") so readers are clearly instructed not to check `.env` into version
control; update the Callout content to include a concise secret-handling
sentence (e.g., "Do not commit your `.env` file or share these credentials.")
and keep the rest of the instructions about running `agentuity project add
storage` and `agentuity cloud env pull` unchanged.

30-42: Clarify bucket creation vs project-linking behavior to avoid ambiguity.

The current wording can be read as “create” being sufficient; a tiny wording tweak can make “linking” explicitly required.

✏️ Suggested wording tweak
-`agentuity project add storage` links the bucket and writes credentials to `.env`. `agentuity cloud storage create` also writes credentials if run from a project directory.
+`agentuity project add storage` links the bucket to the current project and writes credentials to `.env`.
+`agentuity cloud storage create` can also write credentials when run from a project directory, but run `agentuity project add storage` to guarantee the bucket is linked to this project.
🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed.

In `@apps/docs/src/web/content/services/storage/object.mdx` around lines 30 - 42,
Reword the steps to clearly state that creating a bucket and linking it to the
project are separate required steps: explicitly say that running `agentuity
cloud storage create` creates the bucket (and will write credentials only if run
from inside a project directory), while `agentuity project add storage` is
required to link the existing bucket to your project and will write credentials
to `.env`; update the copy around the two commands to remove ambiguity and make
"linking" explicitly required.
apps/docs/src/web/content/services/sandbox/index.mdx (1)

205-213: Code example missing client initialization.

The example imports sandboxEventList but client is used without showing how to create or obtain an APIClient instance. The callout mentions it's required, but readers cannot copy-paste and run this example.

Consider adding a brief note or showing client creation:

import { sandboxEventList, createAPIClient } from '@agentuity/server';

const client = createAPIClient({ apiKey: process.env.AGENTUITY_API_KEY });

As per coding guidelines: "Include imports at the top of standalone code examples to ensure they are copy-pasteable and runnable".

🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed.

In `@apps/docs/src/web/content/services/sandbox/index.mdx` around lines 205 - 213,
The example calls sandboxEventList(client, ...) but never shows how to obtain
the API client; update the snippet to import and instantiate the client (e.g.,
import createAPIClient or APIClient from '@agentuity/server' and create a client
instance using createAPIClient({ apiKey: process.env.AGENTUITY_API_KEY }) or
equivalent) so that sandboxEventList has a valid client variable; ensure the
import list includes sandboxEventList and the client factory and that the
example shows creating the client before calling sandboxEventList.
apps/docs/src/web/components/docs/docs-layout.tsx (1)

86-92: Remove stale biome-ignore on the effect dependencies.

At Line 87, the suppression is no longer needed since dependencies are explicitly listed (location.pathname, location.hash). Keeping it can mask future real dependency drift.

Diff suggestion
-	// biome-ignore lint/correctness/useExhaustiveDependencies: location.pathname is used as a trigger to scroll to top on route change
 	React.useLayoutEffect(() => {
 		if (!location.hash) {
 			mainRef.current?.scrollTo(0, 0);
 		}
 	}, [location.pathname, location.hash]);
🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed.

In `@apps/docs/src/web/components/docs/docs-layout.tsx` around lines 86 - 92, The
comment points out an unnecessary suppression: remove the stale "biome-ignore
lint/correctness/useExhaustiveDependencies" comment above the
React.useLayoutEffect since you already list the correct dependencies
(location.pathname, location.hash); update the docs-layout.tsx by deleting that
biome-ignore line so the effect reads simply as React.useLayoutEffect(() => { if
(!location.hash) mainRef.current?.scrollTo(0, 0); }, [location.pathname,
location.hash]) and leave the useLayoutEffect, mainRef, and dependency array
intact.
apps/docs/src/web/content/agents/standalone-execution.mdx (1)

36-42: Explicitly mark which options are optional.

The options table doesn't clearly indicate which parameters are required versus optional. As per coding guidelines, readers should not need to parse type signatures to determine optionality.

📝 Clarify parameter optionality

Consider adding "(optional)" to the description column for each optional parameter, or add an "Required" column to the table. For example:

 | Option | Type | Description |
 |--------|------|-------------|
-| `sessionId` | `string` | Custom session ID. Auto-generated from trace context if not provided |
+| `sessionId` | `string` | (optional) Custom session ID. Auto-generated from trace context if not provided |
🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed.

In `@apps/docs/src/web/content/agents/standalone-execution.mdx` around lines 36 -
42, Update the options table so each parameter clearly shows whether it's
required or optional: mark sessionId, trigger, thread, session, and
parentContext as "(optional)" in their Description cells (or add a "Required"
column and set them to "No"), and ensure the descriptions for sessionId explain
auto-generation from trace context and for trigger list allowed values. Target
the table rows for the symbols `sessionId`, `trigger`, `thread`, `session`, and
`parentContext` in standalone-execution.mdx.
apps/docs/src/web/content/reference/github-app.mdx (1)

110-119: Make the predeploy sample generic, or label it monorepo-only.

Line 113’s cd ../.. && bun run build:packages is repo-specific and reads like required setup in a general reference page. A smaller sample keeps the focus on the actual contract: defining predeploy replaces the automatic install step.
As per coding guidelines, "Strip boilerplate from code examples; show only the feature being demonstrated."

🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed.

In `@apps/docs/src/web/content/reference/github-app.mdx` around lines 110 - 119,
The example in package.json uses a repo-specific predeploy command (the
`predeploy` script runs `cd ../.. && bun install && bun run build:packages`)
which confuses a general reference; change the `predeploy` sample to a generic
placeholder or explicitly mark it as monorepo-only. Update the `predeploy` entry
in the shown package.json to either a generic command like `"predeploy":
"your-predeploy-command-here"` or add a short comment/label next to `predeploy`
indicating “(monorepo-only)” so readers understand it’s not required for all
projects, keeping the `deploy` script example (`"deploy": "agentuity deploy"`)
unchanged.
apps/docs/src/web/content/routes/explicit-routing.mdx (1)

198-198: Optional style refinement.

Consider "provide access to" instead of "give you access" for slightly more formal documentation tone.

-Both `createRouter()` and `new Hono<Env>()` give you access to Agentuity context variables in your route handlers:
+Both `createRouter()` and `new Hono<Env>()` provide access to Agentuity context variables in your route handlers:
🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed.

In `@apps/docs/src/web/content/routes/explicit-routing.mdx` at line 198, The
phrasing "give you access to" in the sentence containing createRouter() and new
Hono<Env>() is informal; update it to "provide access to" for a more formal tone
by replacing "give you access to Agentuity context variables in your route
handlers" with "provide access to Agentuity context variables in your route
handlers" where the sentence references createRouter() and new Hono<Env>().
apps/docs/src/web/components/docs/nav-data.ts (1)

483-487: Align this nav title with the page/crumb name for consistency.

On Line 484, Hono RPC appears shortened versus the page/route labeling used elsewhere (Hono RPC + TanStack Query). Keeping one canonical title improves nav/search consistency.

♻️ Suggested tweak
-						title: 'Hono RPC',
+						title: 'Hono RPC + TanStack Query',
🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed.

In `@apps/docs/src/web/components/docs/nav-data.ts` around lines 483 - 487, Update
the nav entry object whose title is currently 'Hono RPC' (the entry with url
'/cookbook/patterns/hono-rpc-tanstack-query' in nav-data.ts) to use the
canonical page/crumb title 'Hono RPC + TanStack Query' so the navigation label
matches the page and breadcrumb naming for consistency.
apps/docs/src/web/content/services/schedules.mdx (1)

205-215: Use inline API references (or full runnable snippets) for the two short examples.

On Line 205 and Line 212, the fenced snippets depend on ctx/input but aren’t runnable examples. Prefer inline code for these method-shape callouts, or expand them to full examples with imports and handler context.

As per coding guidelines, "Use inline code references to show API shape, config values, or method signatures without imports; use standalone examples for concepts that require copy-pasteable code" and "Include imports at the top of standalone code examples to ensure they are copy-pasteable and runnable".

🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed.

In `@apps/docs/src/web/content/services/schedules.mdx` around lines 205 - 215, The
snippets use ctx/input but aren’t runnable; replace the two fenced examples with
either inline code references (e.g., use inline backtick references like
`ctx.schedule.getDestination(scheduleId, destinationId)` and
`ctx.schedule.getDelivery(scheduleId, deliveryId, params?)`) or expand them into
full standalone examples that include imports and a handler/context setup and
show passing `params` through to `getDelivery` (which calls `listDeliveries`) so
callers can control pagination; update the example referencing `getDelivery` to
demonstrate passing `params` (e.g., `{ page: X, pageSize: Y }`) and mention
`listDeliveries` behavior, and ensure the runnable snippet includes the
necessary imports and `ctx`/`input` construction.
apps/docs/src/web/content/reference/cli/oauth.mdx (2)

8-10: Use a warning callout for the required cloud prefix.

This is mandatory command syntax rather than background context, so warning will make the gotcha stand out before readers copy the commands.

As per coding guidelines, "Use 'info' callout type for context and clarifications, 'warning' for gotchas and required setup, 'tip' for optimizations and advanced patterns."

🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed.

In `@apps/docs/src/web/content/reference/cli/oauth.mdx` around lines 8 - 10,
Change the Callout type from "info" to "warning" for the Cloud Prefix note so
the required `cloud` prefix is shown as a mandatory/gotcha message; locate the
Callout block (Callout type="info" title="Cloud Prefix Required") in oauth.mdx
and update the type attribute to "warning" while keeping the title and content
text unchanged.

24-42: Spell out which oidc create flags are optional.

The table reads as a flat list right now, so readers have to infer the non-interactive required set from the example. Mark the optional flags explicitly and call out the required set in prose.

As per coding guidelines, "Explicitly mark optional parameters as 'optional' in prose; readers should not need to parse type signatures."

🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed.

In `@apps/docs/src/web/content/reference/cli/oauth.mdx` around lines 24 - 42, The
options table for the "agentuity cloud oidc create" command doesn't indicate
which flags are optional; update the docs to explicitly mark optional flags and
state the required set in prose: add a short paragraph above or below the table
that lists the required non-interactive flags (e.g., the minimum flags needed
for non-interactive creation) and prefix optional flags in the table with
"(optional)" or similar wording for `--description`, `--homepage-url`,
`--redirect-uris`, `--scopes`, and `--json`, while keeping `--name` and `--type`
identified as required if that is the case for `oidc create` usage. Ensure you
reference the command name "agentuity cloud oidc create" and the flag names
(`--name`, `--description`, `--homepage-url`, `--type`, `--redirect-uris`,
`--scopes`, `--json`) so readers can easily see which are optional.
apps/docs/src/web/content/services/webhooks.mdx (1)

34-41: Repeat the APIClient setup in the standalone SDK snippets.

client is only created in Setup, but the later fences are presented as isolated examples. Inline the setup into each fence or label those snippets as continuations so each section is runnable when copied.

As per coding guidelines, "Include imports at the top of standalone code examples to ensure they are copy-pasteable and runnable."

Also applies to: 76-88, 92-103, 109-120, 140-160, 167-179, 187-199, 215-225

🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed.

In `@apps/docs/src/web/content/services/webhooks.mdx` around lines 34 - 41, The
code examples reuse the APIClient instantiation only in the initial "Setup"
fence so later standalone fences are not copy-paste runnable; update each
isolated code fence that uses client/APIClient (including the blocks referenced
at 76-88, 92-103, 109-120, 140-160, 167-179, 187-199, 215-225) to include the
minimal setup lines: the imports for APIClient and createLogger, creation of
logger via createLogger(), and instantiation of client = new
APIClient(process.env.AGENTUITY_API_URL!, logger), or alternatively mark those
fences as "continued from Setup" if you intend them to be non-standalone; search
for usages of APIClient, client, and createLogger in the file to locate each
fence to modify.
apps/docs/src/web/content/cookbook/integrations/mastra.mdx (1)

68-115: Merge the split index.ts examples or add the missing symbols.

The second src/agent/weather/index.ts and src/agent/day-planner/index.ts fences reference weatherAgent and plannerAgent without declaring them, so they are not copy-pasteable as shown.

As per coding guidelines, "Include imports at the top of standalone code examples to ensure they are copy-pasteable and runnable."

Also applies to: 127-178

🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed.

In `@apps/docs/src/web/content/cookbook/integrations/mastra.mdx` around lines 68 -
115, The two code fences split the Agent creation and the Agentuity handler,
leaving referenced symbols (weatherAgent, plannerAgent) undefined; either merge
the examples into a single file per agent or add the missing imports/exports so
the handler can reference the agent instance. Specifically, ensure the file that
contains the handler imports the agent instance (e.g., import { weatherAgent }
from './agent' or export the Agent instance when creating it with
createTool/Agent), and do the same for plannerAgent; update the handler examples
(createAgent usage) to import the matching agent instance and any types used
(createAgent, s) so each fenced example is self-contained and copy-paste
runnable.
🤖 Prompt for all review comments with AI agents
Verify each finding against the current code and only fix it if needed.

Inline comments:
In `@apps/docs/src/web/content/cookbook/integrations/langchain.mdx`:
- Around line 102-130: The snippet is not runnable because it references
undeclared symbols (search, calculate, getTime, message, langchainAgent,
messages) and omits required setup for
createLangChainAgent/ChatOpenAI/HumanMessage; to fix, make the example
self-contained by either (A) inlining minimal stub implementations and imports
for the tools (variables search, calculate, getTime), defining a sample message
variable and messages array, and showing agent creation with
createLangChainAgent/ChatOpenAI/HumanMessage so the stream example can run, or
(B) explicitly mark the code block as a continuation/partial and add a brief
comment header referencing where the omitted setup lives; apply the same change
to the second block (lines 138-158) so both examples are copy-pasteable.
- Around line 49-54: The code examples set ChatOpenAI model to 'gpt-4.1' (e.g.
in the createLangChainAgent call where ChatOpenAI is instantiated); update every
ChatOpenAI instantiation to use 'gpt-5.4' instead of 'gpt-4.1' (there are three
occurrences), ensuring instances like new ChatOpenAI({ model: 'gpt-4.1', ... })
become new ChatOpenAI({ model: 'gpt-5.4', ... }) so all examples consistently
use the current flagship model.

In `@apps/docs/src/web/content/cookbook/integrations/mastra.mdx`:
- Around line 74-86: The snippet for weatherTool has execute always calling
hardcoded coordinates while echoing the caller's location, causing mislabeled
results; update weatherTool (inputSchema and execute) to either accept latitude
and longitude (e.g., add lat and lon to inputSchema and use them in the fetch
URL) or perform a geocoding lookup inside execute using the provided location
string to resolve coordinates before calling the open-meteo API, and ensure the
returned string uses the actual coordinates/data (from
data.current.temperature_2m) and the input location consistently.

In `@apps/docs/src/web/content/cookbook/integrations/openai-agents.mdx`:
- Around line 80-125: This snippet is missing tool definitions and uses
console.log; define or import minimal tool stubs for lookupInvoice and
processRefund (e.g., simple objects/functions named lookupInvoice and
processRefund used in billingAgent and refundAgent), and replace the console.log
in the handoff onHandoff handler with the Agentuity logger (use the ctx
parameter and call ctx.logger.info or ctx.logger.debug) so the
EscalationData-driven handoff is runnable; update the handoff call
(handoff(refundAgent, { onHandoff: (ctx, input) => ctx.logger.info(`Refund
escalation: ${input?.reason}`), inputType: EscalationData, toolNameOverride:
'escalate_to_refund' })) and ensure these edits are made alongside the
triageAgent/Agent.create usage so the file is copy-paste runnable.

In `@apps/docs/src/web/content/get-started/app-configuration.mdx`:
- Around line 224-259: The docs currently show a "File loading order" for
`agentuity dev` but omit where `.env.local` fits; update the "File loading
order" section to explicitly include `.env.local` and its precedence (e.g., list
the full order such that later files override earlier ones, e.g., `.env` →
`.env.development` → `.env.local` or whatever the actual precedence is) and add
a short clarifying sentence after the table stating whether `.env.local`
overrides `.env.development` during `agentuity dev`; ensure the terms
`.env.local`, `.env.development`, `agentuity dev`, and the "File loading order"
header are updated so readers can unambiguously determine precedence.

In `@apps/docs/src/web/content/reference/cli/deployment.mdx`:
- Line 254: Replace the repeated external link in the sentence "Or toggle it in
the [Web App](https://app.agentuity.com) under your project's **Settings >
GitHub > Preview Environments**." with plain text by removing the Markdown link
and leaving "Web App" unlinked (e.g., "Or toggle it in the Web App under your
project's **Settings > GitHub > Preview Environments**."), ensuring the first
instance of https://app.agentuity.com on the page remains the only external
link.
- Around line 263-265: Change the Callout node for the GitHub prerequisite from
type="info" to type="warning" so the required setup is correctly emphasized;
keep the title "GitHub Connection Required" and preserve the inner content and
links ([Agentuity GitHub App], [Setting Up Git Integration]) but update the
Callout attribute from info to warning in the Callout declaration.

In `@apps/docs/src/web/content/routes/webrtc.mdx`:
- Line 21: The documentation registers the signaling route with
router.get('/signal', webrtc()) but client examples connect to
'/api/call/signal', causing a mismatch and 404s; either make the route path in
the server code match the client examples (e.g., change router.get('/signal',
...) to router.get('/call/signal', webrtc())) or update all client examples to
use the documented '/signal' endpoint (search for occurrences of
'/api/call/signal' in the file and make them consistent), and if a nested router
or prefix is intended, add a brief note explaining the '/call' prefix and where
it is applied so readers understand the routing context.
- Around line 169-224: The examples call the useWebRTCCall hook and related
functions (sendString, sendStringTo, sendJSON, sendBinary, closeDataChannel,
startScreenShare, stopScreenShare) at module scope and reference undeclared
variables (roomId, peerId, remotePeerId, signalUrl), which violates React Rules
of Hooks and makes snippets non-runnable; fix by wrapping each snippet inside a
React function component or custom hook (e.g., show a parent component that
declares/receives roomId, peerId, signalUrl as props or state) or add a clear
note that the examples must be used inside a component with those variables
provided, and update the examples to reference those declared names so
useWebRTCCall is only called inside a component/custom hook.

In `@apps/docs/src/web/content/services/queues.mdx`:
- Around line 44-79: The docs example and types are out of sync with the actual
queue API: replace the current call signature
ctx.queue.createQueue('notifications', { queueType: ... }) and the camelCase
QueueCreateResult with the canonical single-request object shape used by the
service (use ctx.queue.createQueue({ name: 'notifications', queue_type:
'worker', description: 'Order notifications', settings: { default_ttl_seconds,
default_visibility_timeout_seconds, default_max_retries,
max_in_flight_per_client, retention_seconds }}) and update the returned result
shape to match the service (snake_case fields), ensure the "Queue Settings"
section uses the same snake_case keys, and remove or revise the "Idempotent
Creation" claim unless you can reference the service implementation
(ctx.queue.createQueue) to confirm idempotency; if it is idempotent, add a short
source-backed note referencing the function/method that enforces it.

In `@apps/docs/src/web/content/services/tasks.mdx`:
- Around line 256-273: The code calls ctx.task.confirmAttachment(attachment.id)
unconditionally after uploading to presigned_url; change the flow so you only
call ctx.task.confirmAttachment when the PUT succeeds: after await
fetch(presigned_url, { method: 'PUT', ... }) inspect the response (e.g. if
(!response.ok) { log the status/error and return or throw } ), and only then
call ctx.task.confirmAttachment(attachment.id). Also surface the fetch error
details in the log/exception so callers can retry or mark the attachment failed
instead of leaving a broken record.

---

Outside diff comments:
In `@apps/docs/src/web/content/agents/evaluations.mdx`:
- Line 257: Update the phrasing on the sentence that starts "When you need
scores visible in your UI (not just the App), run LLM-as-judge inline in your
handler and include the results in your output schema:" to replace "App" with
"Web App" so it matches the earlier change; locate the exact sentence containing
"not just the App" and change it to "not just the Web App".
- Line 54: Replace all deprecated OpenAI model identifiers 'gpt-5-nano' and
'gpt-5-mini' with the current names 'gpt-5.4-nano' and 'gpt-5.4-mini'
respectively; specifically update occurrences that look like model:
openai('gpt-5-nano') and model: openai('gpt-5-mini') so examples use
openai('gpt-5.4-nano') and openai('gpt-5.4-mini') to avoid API errors.

In `@apps/docs/src/web/content/agents/standalone-execution.mdx`:
- Around line 126-136: The example is missing required imports so it isn't
copy-pasteable; add import statements for the symbols used (e.g.,
createAgentContext, analyzeAgent, respondAgent, and any types like userInput) at
the top of the snippet so the block can run as-is—specifically import/create the
createAgentContext function, the analyzeAgent and respondAgent modules (or
instances) and any utility/types referenced, then keep the existing usage of
ctx.invoke, analyzeAgent.run, and respondAgent.run unchanged.
- Around line 89-97: The example is missing required imports, so make the
snippet copy-pasteable by adding import statements for createAgentContext,
messageAgent, and any websocket type/constructor used; specifically import
createAgentContext and messageAgent from their library/module and add an import
or declaration for websocket (e.g., WebSocket or a server-side websocket
instance) so the symbols used in the snippet (createAgentContext, messageAgent,
ctx.run, websocket) are defined and the example compiles/runs.
- Around line 109-120: The example is missing the import needed to make it
copy-pasteable; add the appropriate import for createAgentContext at the top of
the snippet so the sample can run as-is (e.g., import { createAgentContext }
from '...'), ensuring the import aligns with how createAgentContext is exported
in the codebase; keep the rest of the example using ctx.invoke, ctx.kv.get,
ctx.stream.create and ctx.logger.info unchanged.
- Around line 70-81: The example is missing import statements; add top-of-file
imports so the snippet is copy-pasteable — specifically import
createAgentContext and any AgentContext types, and import the agent symbols
analyzeAgent and respondAgent (and any helper like userInput or its source) used
in the snippet; ensure the imports reference the modules where those symbols are
defined so the calls to createAgentContext(), ctx.run(analyzeAgent, …) and
ctx.run(respondAgent, …) resolve.

In `@apps/docs/src/web/content/get-started/quickstart.mdx`:
- Around line 201-205: The section mixes the terms "Web App" and "App"; update
the Callout component and any text inside it (the Callout title "What You'll See
in the App" and the bullet "App populates with" if present) to use "Web App"
consistently so both the sentence "View deployments, logs, and more in the [Web
App]" and the Callout (Callout title and content) use the same term; search for
the strings "What You'll See in the App" and "App populates with" and replace
"App" with "Web App" (or otherwise make the wording consistent) in the Callout
block.

In `@apps/docs/src/web/content/reference/api/sandboxes.mdx`:
- Around line 1160-1214: The documentation omits the top-level boolean field
autoResumed described in the prose and produced by the sandbox execution logic;
update the ResponseFields declaration in the sandboxes.mdx API doc to include an
entry for "autoResumed" (type: boolean, description: "True if the sandbox was
automatically resumed before execution", required: false) so it matches the
schema in packages/core/src/services/sandbox/execute.ts and the surrounding
prose; locate the ResponseFields component block in sandboxes.mdx and add the
autoResumed field alongside executionId, status, exitCode, etc.

---

Nitpick comments:
In `@apps/docs/src/web/components/docs/docs-layout.tsx`:
- Around line 86-92: The comment points out an unnecessary suppression: remove
the stale "biome-ignore lint/correctness/useExhaustiveDependencies" comment
above the React.useLayoutEffect since you already list the correct dependencies
(location.pathname, location.hash); update the docs-layout.tsx by deleting that
biome-ignore line so the effect reads simply as React.useLayoutEffect(() => { if
(!location.hash) mainRef.current?.scrollTo(0, 0); }, [location.pathname,
location.hash]) and leave the useLayoutEffect, mainRef, and dependency array
intact.

In `@apps/docs/src/web/components/docs/nav-data.ts`:
- Around line 483-487: Update the nav entry object whose title is currently
'Hono RPC' (the entry with url '/cookbook/patterns/hono-rpc-tanstack-query' in
nav-data.ts) to use the canonical page/crumb title 'Hono RPC + TanStack Query'
so the navigation label matches the page and breadcrumb naming for consistency.

In `@apps/docs/src/web/components/docs/toc.tsx`:
- Around line 67-79: The TOC currently only indents depth === 3, causing h4+ to
lose hierarchy; update the mapping in the flatHeadings render (where you build
the <a> with className via cn, inside the map that uses flatHeadings, id, value,
depth and calls scrollToHeading) to compute a depth-based padding class instead
of a single depth === 3 check — e.g., derive an indentation class from the
heading depth (map depths to progressive 'pl-...' classes or compute one from
(depth) and include that string in the cn call) so deeper headings (depth >= 3)
receive increasing left padding while preserving existing activeId styling and
behavior.

In `@apps/docs/src/web/content/agents/standalone-execution.mdx`:
- Around line 36-42: Update the options table so each parameter clearly shows
whether it's required or optional: mark sessionId, trigger, thread, session, and
parentContext as "(optional)" in their Description cells (or add a "Required"
column and set them to "No"), and ensure the descriptions for sessionId explain
auto-generation from trace context and for trigger list allowed values. Target
the table rows for the symbols `sessionId`, `trigger`, `thread`, `session`, and
`parentContext` in standalone-execution.mdx.

In `@apps/docs/src/web/content/cookbook/integrations/mastra.mdx`:
- Around line 68-115: The two code fences split the Agent creation and the
Agentuity handler, leaving referenced symbols (weatherAgent, plannerAgent)
undefined; either merge the examples into a single file per agent or add the
missing imports/exports so the handler can reference the agent instance.
Specifically, ensure the file that contains the handler imports the agent
instance (e.g., import { weatherAgent } from './agent' or export the Agent
instance when creating it with createTool/Agent), and do the same for
plannerAgent; update the handler examples (createAgent usage) to import the
matching agent instance and any types used (createAgent, s) so each fenced
example is self-contained and copy-paste runnable.

In `@apps/docs/src/web/content/reference/cli/development.mdx`:
- Line 248: Replace the generic link text "details" in the table row that shows
Environment (.env, .env.development) with a context-specific phrase that
describes what the link covers (for example "env file precedence" or "loading
order"), so update the markdown cell containing | **Environment** | `.env`,
`.env.development`
([details](/get-started/app-configuration#environment-specific-files)) | to use
the chosen descriptive text (e.g., ([env file
precedence](/get-started/app-configuration#environment-specific-files))) to make
the cross-link self-explanatory.

In `@apps/docs/src/web/content/reference/cli/oauth.mdx`:
- Around line 8-10: Change the Callout type from "info" to "warning" for the
Cloud Prefix note so the required `cloud` prefix is shown as a mandatory/gotcha
message; locate the Callout block (Callout type="info" title="Cloud Prefix
Required") in oauth.mdx and update the type attribute to "warning" while keeping
the title and content text unchanged.
- Around line 24-42: The options table for the "agentuity cloud oidc create"
command doesn't indicate which flags are optional; update the docs to explicitly
mark optional flags and state the required set in prose: add a short paragraph
above or below the table that lists the required non-interactive flags (e.g.,
the minimum flags needed for non-interactive creation) and prefix optional flags
in the table with "(optional)" or similar wording for `--description`,
`--homepage-url`, `--redirect-uris`, `--scopes`, and `--json`, while keeping
`--name` and `--type` identified as required if that is the case for `oidc
create` usage. Ensure you reference the command name "agentuity cloud oidc
create" and the flag names (`--name`, `--description`, `--homepage-url`,
`--type`, `--redirect-uris`, `--scopes`, `--json`) so readers can easily see
which are optional.

In `@apps/docs/src/web/content/reference/github-app.mdx`:
- Around line 110-119: The example in package.json uses a repo-specific
predeploy command (the `predeploy` script runs `cd ../.. && bun install && bun
run build:packages`) which confuses a general reference; change the `predeploy`
sample to a generic placeholder or explicitly mark it as monorepo-only. Update
the `predeploy` entry in the shown package.json to either a generic command like
`"predeploy": "your-predeploy-command-here"` or add a short comment/label next
to `predeploy` indicating “(monorepo-only)” so readers understand it’s not
required for all projects, keeping the `deploy` script example (`"deploy":
"agentuity deploy"`) unchanged.

In `@apps/docs/src/web/content/routes/explicit-routing.mdx`:
- Line 198: The phrasing "give you access to" in the sentence containing
createRouter() and new Hono<Env>() is informal; update it to "provide access to"
for a more formal tone by replacing "give you access to Agentuity context
variables in your route handlers" with "provide access to Agentuity context
variables in your route handlers" where the sentence references createRouter()
and new Hono<Env>().

In `@apps/docs/src/web/content/services/sandbox/index.mdx`:
- Around line 205-213: The example calls sandboxEventList(client, ...) but never
shows how to obtain the API client; update the snippet to import and instantiate
the client (e.g., import createAPIClient or APIClient from '@agentuity/server'
and create a client instance using createAPIClient({ apiKey:
process.env.AGENTUITY_API_KEY }) or equivalent) so that sandboxEventList has a
valid client variable; ensure the import list includes sandboxEventList and the
client factory and that the example shows creating the client before calling
sandboxEventList.

In `@apps/docs/src/web/content/services/schedules.mdx`:
- Around line 205-215: The snippets use ctx/input but aren’t runnable; replace
the two fenced examples with either inline code references (e.g., use inline
backtick references like `ctx.schedule.getDestination(scheduleId,
destinationId)` and `ctx.schedule.getDelivery(scheduleId, deliveryId, params?)`)
or expand them into full standalone examples that include imports and a
handler/context setup and show passing `params` through to `getDelivery` (which
calls `listDeliveries`) so callers can control pagination; update the example
referencing `getDelivery` to demonstrate passing `params` (e.g., `{ page: X,
pageSize: Y }`) and mention `listDeliveries` behavior, and ensure the runnable
snippet includes the necessary imports and `ctx`/`input` construction.

In `@apps/docs/src/web/content/services/storage/object.mdx`:
- Around line 44-55: Add an explicit one-line “do not commit .env” warning next
to the listed credential keys (S3_ACCESS_KEY_ID, S3_SECRET_ACCESS_KEY,
S3_BUCKET, S3_ENDPOINT) inside the existing Callout (Callout type="warning"
title="Dev Mode Credentials") so readers are clearly instructed not to check
`.env` into version control; update the Callout content to include a concise
secret-handling sentence (e.g., "Do not commit your `.env` file or share these
credentials.") and keep the rest of the instructions about running `agentuity
project add storage` and `agentuity cloud env pull` unchanged.
- Around line 30-42: Reword the steps to clearly state that creating a bucket
and linking it to the project are separate required steps: explicitly say that
running `agentuity cloud storage create` creates the bucket (and will write
credentials only if run from inside a project directory), while `agentuity
project add storage` is required to link the existing bucket to your project and
will write credentials to `.env`; update the copy around the two commands to
remove ambiguity and make "linking" explicitly required.

In `@apps/docs/src/web/content/services/webhooks.mdx`:
- Around line 34-41: The code examples reuse the APIClient instantiation only in
the initial "Setup" fence so later standalone fences are not copy-paste
runnable; update each isolated code fence that uses client/APIClient (including
the blocks referenced at 76-88, 92-103, 109-120, 140-160, 167-179, 187-199,
215-225) to include the minimal setup lines: the imports for APIClient and
createLogger, creation of logger via createLogger(), and instantiation of client
= new APIClient(process.env.AGENTUITY_API_URL!, logger), or alternatively mark
those fences as "continued from Setup" if you intend them to be non-standalone;
search for usages of APIClient, client, and createLogger in the file to locate
each fence to modify.
🪄 Autofix (Beta)

Fix all unresolved CodeRabbit comments on this PR:

  • Push a commit to this branch (recommended)
  • Create a new PR with the fixes

ℹ️ Review info
⚙️ Run configuration

Configuration used: Organization UI

Review profile: CHILL

Plan: Pro

Run ID: ecd1ad5c-a2db-45ce-af9f-1eda8b8632dc

📥 Commits

Reviewing files that changed from the base of the PR and between 433cd55 and 86bd035.

⛔ Files ignored due to path filters (8)
  • apps/docs/src/generated/env.d.ts is excluded by !**/generated/**
  • apps/docs/src/web/public/images/community/inbound-logo.svg is excluded by !**/*.svg
  • apps/docs/src/web/public/images/community/snow-leopard-favicon.png is excluded by !**/*.png
  • apps/docs/src/web/public/images/integrations/langchain.svg is excluded by !**/*.svg
  • apps/docs/src/web/public/images/integrations/mastra.svg is excluded by !**/*.svg
  • apps/docs/src/web/public/images/integrations/nextjs.svg is excluded by !**/*.svg
  • apps/docs/src/web/public/images/integrations/openai.svg is excluded by !**/*.svg
  • apps/docs/src/web/public/images/integrations/tanstack.svg is excluded by !**/*.svg
📒 Files selected for processing (62)
  • apps/docs/src/web/app.css
  • apps/docs/src/web/components/docs/docs-layout.tsx
  • apps/docs/src/web/components/docs/mdx-components.tsx
  • apps/docs/src/web/components/docs/nav-data.ts
  • apps/docs/src/web/components/docs/tabs.tsx
  • apps/docs/src/web/components/docs/toc.tsx
  • apps/docs/src/web/content/agents/evaluations.mdx
  • apps/docs/src/web/content/agents/standalone-execution.mdx
  • apps/docs/src/web/content/community/index.mdx
  • apps/docs/src/web/content/cookbook/index.mdx
  • apps/docs/src/web/content/cookbook/integrations/langchain.mdx
  • apps/docs/src/web/content/cookbook/integrations/mastra.mdx
  • apps/docs/src/web/content/cookbook/integrations/meta.json
  • apps/docs/src/web/content/cookbook/integrations/nextjs.mdx
  • apps/docs/src/web/content/cookbook/integrations/openai-agents.mdx
  • apps/docs/src/web/content/cookbook/integrations/tanstack-start.mdx
  • apps/docs/src/web/content/get-started/app-configuration.mdx
  • apps/docs/src/web/content/get-started/quickstart.mdx
  • apps/docs/src/web/content/get-started/what-is-agentuity.mdx
  • apps/docs/src/web/content/reference/api/sandboxes.mdx
  • apps/docs/src/web/content/reference/cli/deployment.mdx
  • apps/docs/src/web/content/reference/cli/development.mdx
  • apps/docs/src/web/content/reference/cli/getting-started.mdx
  • apps/docs/src/web/content/reference/cli/git-integration.mdx
  • apps/docs/src/web/content/reference/cli/meta.json
  • apps/docs/src/web/content/reference/cli/monitoring.mdx
  • apps/docs/src/web/content/reference/cli/oauth.mdx
  • apps/docs/src/web/content/reference/cli/sandbox.mdx
  • apps/docs/src/web/content/reference/github-app.mdx
  • apps/docs/src/web/content/reference/meta.json
  • apps/docs/src/web/content/reference/migration-guide.mdx
  • apps/docs/src/web/content/reference/sdk-reference.mdx
  • apps/docs/src/web/content/routes/explicit-routing.mdx
  • apps/docs/src/web/content/routes/http.mdx
  • apps/docs/src/web/content/routes/index.mdx
  • apps/docs/src/web/content/routes/webrtc.mdx
  • apps/docs/src/web/content/services/email.mdx
  • apps/docs/src/web/content/services/index.mdx
  • apps/docs/src/web/content/services/queues.mdx
  • apps/docs/src/web/content/services/sandbox/index.mdx
  • apps/docs/src/web/content/services/sandbox/snapshots.mdx
  • apps/docs/src/web/content/services/schedules.mdx
  • apps/docs/src/web/content/services/storage/object.mdx
  • apps/docs/src/web/content/services/tasks.mdx
  • apps/docs/src/web/content/services/webhooks.mdx
  • apps/docs/src/web/index.css
  • apps/docs/src/web/routeTree.gen.ts
  • apps/docs/src/web/routes/_docs/cookbook/integrations/langchain.tsx
  • apps/docs/src/web/routes/_docs/cookbook/integrations/mastra.tsx
  • apps/docs/src/web/routes/_docs/cookbook/integrations/nextjs.tsx
  • apps/docs/src/web/routes/_docs/cookbook/integrations/openai-agents.tsx
  • apps/docs/src/web/routes/_docs/cookbook/integrations/tanstack-start.tsx
  • apps/docs/src/web/routes/_docs/cookbook/patterns/hono-rpc-tanstack-query.tsx
  • apps/docs/src/web/routes/_docs/reference/cli/monitoring.tsx
  • apps/docs/src/web/routes/_docs/reference/cli/oauth.tsx
  • apps/docs/src/web/routes/_docs/reference/github-app.tsx
  • apps/docs/src/web/routes/_docs/routes/explicit-routing.tsx
  • apps/docs/src/web/routes/_docs/routes/webrtc.tsx
  • apps/docs/src/web/routes/_docs/services/email.tsx
  • apps/docs/src/web/routes/_docs/services/schedules.tsx
  • apps/docs/src/web/routes/_docs/services/tasks.tsx
  • apps/docs/src/web/routes/_docs/services/webhooks.tsx
💤 Files with no reviewable changes (1)
  • apps/docs/src/web/app.css

Comment thread apps/docs/src/web/content/cookbook/integrations/langchain.mdx
Comment thread apps/docs/src/web/content/cookbook/integrations/langchain.mdx Outdated
Comment thread apps/docs/src/web/content/cookbook/integrations/mastra.mdx
Comment on lines +80 to +125
```typescript title="src/agent/handoffs/index.ts"
import { Agent, run, handoff, setTracingDisabled } from '@openai/agents';
import { z } from 'zod';

setTracingDisabled(true);

// Specialist agents with focused instructions
const billingAgent = new Agent({
name: 'Billing Agent',
instructions: 'Help with invoice lookups and payment status.',
model: 'gpt-4.1',
tools: [lookupInvoice],
});

const refundAgent = new Agent({
name: 'Refund Agent',
instructions: 'Process refund requests immediately.',
model: 'gpt-4.1',
tools: [processRefund],
});

// Typed escalation data for the refund handoff
const EscalationData = z.object({
reason: z.string().describe('Why this is being escalated'),
});

// Triage agent routes to specialists via handoffs
const triageAgent = Agent.create({ // [!code highlight]
name: 'Triage Agent',
instructions: `Route requests to the right specialist:
- Billing questions → Billing Agent
- Refund requests → Refund Agent (use escalate_to_refund)`,
model: 'gpt-4.1',
handoffs: [
billingAgent, // basic handoff
handoff(refundAgent, { // [!code highlight]
onHandoff: (_ctx, input) => {
// _ctx is the OpenAI SDK's run context, not the Agentuity handler context
console.log('Refund escalation:', input?.reason);
},
inputType: EscalationData,
toolNameOverride: 'escalate_to_refund',
}),
],
});
```
Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

⚠️ Potential issue | 🟠 Major

Make this handoff snippet runnable, and avoid console.log.

Lines 91 and 98 reference lookupInvoice / processRefund, but the snippet never defines or imports them, so readers can’t paste this file as shown. The same block also uses console.log on Line 118, which doesn’t match the docs convention for server/agent examples. Inline minimal tool stubs or imports, and move the logging back to an Agentuity ctx.logger path.
As per coding guidelines, "Use 'ctx.logger' in server/agent code examples, not 'console.log'" and "Include imports at the top of standalone code examples to ensure they are copy-pasteable and runnable."

🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed.

In `@apps/docs/src/web/content/cookbook/integrations/openai-agents.mdx` around
lines 80 - 125, This snippet is missing tool definitions and uses console.log;
define or import minimal tool stubs for lookupInvoice and processRefund (e.g.,
simple objects/functions named lookupInvoice and processRefund used in
billingAgent and refundAgent), and replace the console.log in the handoff
onHandoff handler with the Agentuity logger (use the ctx parameter and call
ctx.logger.info or ctx.logger.debug) so the EscalationData-driven handoff is
runnable; update the handoff call (handoff(refundAgent, { onHandoff: (ctx,
input) => ctx.logger.info(`Refund escalation: ${input?.reason}`), inputType:
EscalationData, toolNameOverride: 'escalate_to_refund' })) and ensure these
edits are made alongside the triageAgent/Agent.create usage so the file is
copy-paste runnable.

Comment thread apps/docs/src/web/content/get-started/app-configuration.mdx
Comment thread apps/docs/src/web/content/reference/cli/deployment.mdx Outdated
Comment thread apps/docs/src/web/content/routes/webrtc.mdx
Comment thread apps/docs/src/web/content/routes/webrtc.mdx
Comment on lines +44 to +79
Create a queue from an agent or route using `ctx.queue.createQueue()`:

```typescript
// Inside an agent handler or route
const result = await ctx.queue.createQueue('notifications', { // [!code highlight]
queueType: 'worker',
description: 'Order notifications',
settings: {
defaultTtlSeconds: 86400, // messages expire after 24 hours
defaultMaxRetries: 3,
},
}); // [!code highlight]
```

```typescript
interface QueueCreateResult {
name: string; // Queue name
queueType: string; // 'worker' or 'pubsub'
}
```

All parameters are optional. Omitting `queueType` defaults to `worker`.

| Option | Type | Description |
|--------|------|-------------|
| `queueType` | `'worker' \| 'pubsub'` | Worker for point-to-point, pubsub for broadcast (optional, defaults to `worker`) |
| `description` | `string` | Human-readable description (optional) |
| `settings.defaultTtlSeconds` | `number` | Message expiration window in seconds (optional) |
| `settings.defaultVisibilityTimeoutSeconds` | `number` | Visibility timeout after a message is received, before it returns to the queue (optional) |
| `settings.defaultMaxRetries` | `number` | Delivery retry limit before moving to DLQ (optional) |
| `settings.maxInFlightPerClient` | `number` | Concurrent message limit per consumer (optional) |
| `settings.retentionSeconds` | `number` | Retention period for acknowledged messages (optional) |

<Callout type="info" title="Idempotent Creation">
`createQueue` is safe to call multiple times. If the queue already exists, it returns successfully without error. The SDK caches creation within the current request context, so duplicate calls in the same handler return immediately without additional API requests.
</Callout>
Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

⚠️ Potential issue | 🟠 Major

Bring this createQueue() section back in sync with the queue API.

This section currently conflicts with the queue types shown elsewhere in the repo: it uses ctx.queue.createQueue('notifications', { queueType: ... }), introduces a QueueCreateResult that is not reflected in packages/core/src/services/queue/queues.ts:68-72, and says queueType is optional even though packages/core/src/services/queue/types.ts:310-350 documents a single request object with name, queue_type, and snake_case settings. The page itself later switches back to snake_case in Queue Settings, so readers see two incompatible shapes on the same page. The idempotent-creation guarantee on Lines 77-79 also needs source-backed confirmation before it becomes part of the docs contract.

🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed.

In `@apps/docs/src/web/content/services/queues.mdx` around lines 44 - 79, The docs
example and types are out of sync with the actual queue API: replace the current
call signature ctx.queue.createQueue('notifications', { queueType: ... }) and
the camelCase QueueCreateResult with the canonical single-request object shape
used by the service (use ctx.queue.createQueue({ name: 'notifications',
queue_type: 'worker', description: 'Order notifications', settings: {
default_ttl_seconds, default_visibility_timeout_seconds, default_max_retries,
max_in_flight_per_client, retention_seconds }}) and update the returned result
shape to match the service (snake_case fields), ensure the "Queue Settings"
section uses the same snake_case keys, and remove or revise the "Idempotent
Creation" claim unless you can reference the service implementation
(ctx.queue.createQueue) to confirm idempotency; if it is idempotent, add a short
source-backed note referencing the function/method that enforces it.

Comment thread apps/docs/src/web/content/services/tasks.mdx
Copy link
Copy Markdown
Contributor

@coderabbitai coderabbitai Bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Actionable comments posted: 4

♻️ Duplicate comments (3)
apps/docs/src/web/content/get-started/app-configuration.mdx (1)

228-233: ⚠️ Potential issue | 🟡 Minor

Complete the file-order table to include .env.local.

The table at Line 228 currently shows agentuity dev loading .env → .env.development, but Line 257 says .env.local has highest precedence. Put .env.local directly in the table so precedence is unambiguous in one place.

Suggested doc patch
 **File loading order:**
 
 | Mode | Files loaded (later overrides earlier) |
 |------|----------------------------------------|
-| `agentuity dev` | `.env` → `.env.development` |
+| `agentuity dev` | `.env` → `.env.development` → `.env.local` |
 
 When the same variable appears in multiple files, the last file loaded wins.

Also applies to: 257-259

🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed.

In `@apps/docs/src/web/content/get-started/app-configuration.mdx` around lines 228
- 233, Update the "**File loading order:**" table row for "agentuity dev" to
include ".env.local" as the last entry so the sequence reads ".env →
.env.development → .env.local" (later overrides earlier), and make the same
change for the duplicate table referenced around the later section (the passage
that currently states ".env.local has highest precedence") so both places match
and show .env.local as highest precedence.
apps/docs/src/web/content/cookbook/integrations/langchain.mdx (1)

102-131: ⚠️ Potential issue | 🟠 Major

Inline the missing setup here or mark both blocks as explicit continuations.

Lines 103-158 still depend on undeclared search, calculate, getTime, message, langchainAgent, and messages, so a reader who copies either block hits errors before reaching the actual streaming or structured-output behavior. If the goal is brevity, make the partial nature explicit in the caption or prose instead of presenting them as standalone TypeScript snippets.

As per coding guidelines, "Include imports at the top of standalone code examples to ensure they are copy-pasteable and runnable."

Also applies to: 139-160

🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed.

In `@apps/docs/src/web/content/cookbook/integrations/langchain.mdx` around lines
102 - 131, The snippet shows streaming usage but references undeclared symbols
(search, calculate, getTime, message, langchainAgent, messages); make the
example copy-pastable by either inlining a brief setup or marking it as a
continuation: add minimal declarations/import hints for search/calculate/getTime
tool variables, define message/messages (e.g., a sample HumanMessage), and show
the createAgent call (langchainAgent) or explicitly label the block as a
continuation in the caption/prose so readers know they must include the prior
setup; update the snippet around langchainAgent, stream, and the for-await loop
to reference those provided names consistently.
apps/docs/src/web/content/cookbook/integrations/openai-agents.mdx (1)

80-127: ⚠️ Potential issue | 🟠 Major

Make the handoff example runnable and stop teaching console.log.

Lines 84-123 still rely on placeholder tool definitions for lookupInvoice and processRefund, so the src/agent/handoffs/index.ts example cannot be copied into a project as shown. The note on Lines 118-120 also teaches console.log as the fallback logging pattern in a server-side example, which conflicts with the rest of the docs.

As per coding guidelines, "Use 'ctx.logger' in server/agent code examples, not 'console.log'" and "Include imports at the top of standalone code examples to ensure they are copy-pasteable and runnable."

🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed.

In `@apps/docs/src/web/content/cookbook/integrations/openai-agents.mdx` around
lines 80 - 127, Provide runnable, copy-pasteable example code by adding concrete
imports and simple stub tool implementations for lookupInvoice and processRefund
(or import them if they exist) and replace the server-side console.log in the
handoff onHandoff callback with ctx.logger (e.g., ctx.logger.info or
ctx.logger.error) so logging follows project guidelines; specifically update the
top of the snippet to import required symbols (Agent, run, handoff,
setTracingDisabled, z) and define lookupInvoice and processRefund tool
functions/objects referenced by billingAgent and refundAgent, and change the
onHandoff signature to use the agent context (ctx) and call
ctx.logger.info('Refund escalation:', input?.reason) instead of console.log so
triageAgent's handoffs are runnable and consistent with server code examples.
🧹 Nitpick comments (3)
apps/docs/src/web/content/services/tasks.mdx (2)

440-473: Consider adding logging to route examples.

The route examples demonstrate c.var.task access well, but unlike the agent examples, they don't include any logging. Adding a log statement (e.g., using Hono's logger middleware or a similar pattern) would make the examples more consistent with the logging shown in agent examples.

🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed.

In `@apps/docs/src/web/content/services/tasks.mdx` around lines 440 - 473, The
examples lack logging; update the router.post('/tasks', ...) and
router.get('/tasks/:id', ...) handlers (created via createRouter) to emit log
entries when a task is created, when a fetch is attempted, and when a task is
not found — either hook Hono's logger middleware or call the contextual logger
(e.g., c.log.info / c.log.error) inside those handlers before returning so the
flows around c.var.task.create and c.var.task.get include descriptive log
messages including ids and status.

2-3: Consider an action-oriented title.

The title "Tasks" is noun-based. Per coding guidelines, documentation pages should use action-oriented titles (e.g., "Managing Tasks" or "Tracking Work Items with Tasks").

📝 Suggested title
 ---
-title: Tasks
+title: Managing Tasks
 description: Track work items, issues, and agent activity with built-in lifecycle management
 ---

As per coding guidelines: "Use action-oriented titles (e.g., 'Calling Other Agents' not 'Agent Communication') for documentation pages."

🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed.

In `@apps/docs/src/web/content/services/tasks.mdx` around lines 2 - 3, Update the
front-matter "title" value from the noun "Tasks" to an action-oriented phrase
(for example, "Managing Tasks" or "Tracking Work Items with Tasks") so the page
follows the docs guideline; modify the title field in the front-matter at the
top of the file (the "title" key) to the chosen action-oriented string and keep
the existing description unchanged.
apps/docs/src/web/content/routes/webrtc.mdx (1)

376-376: Consider varying sentence structure.

Three consecutive sentences start with "Use", which reads repetitively. A minor rephrase improves flow.

✏️ Suggested rewrite
-Use WebRTC when you need **peer-to-peer** connections or **media streaming**. Use [WebSockets](/routes/websockets) when you need **server-mediated** bidirectional communication. Use [SSE](/routes/sse) for **server-to-client** streaming.
+WebRTC is ideal for **peer-to-peer** connections and **media streaming**. For **server-mediated** bidirectional communication, see [WebSockets](/routes/websockets). For **server-to-client** streaming, see [SSE](/routes/sse).
🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed.

In `@apps/docs/src/web/content/routes/webrtc.mdx` at line 376, Change the three
consecutive sentences that all begin with "Use" (the sentence starting "Use
WebRTC when you need peer-to-peer...", the one starting "Use
[WebSockets](/routes/websockets) when you need...", and the one starting "Use
[SSE](/routes/sse) for...") to vary sentence structure for better flow — e.g.,
keep the first as-is, rephrase the second to "Choose WebSockets when you need
server-mediated bidirectional communication" and the third to "For
server-to-client streaming, consider SSE" (or similar wording) so each sentence
starts differently while preserving the original meaning and links.
🤖 Prompt for all review comments with AI agents
Verify each finding against the current code and only fix it if needed.

Inline comments:
In `@apps/docs/src/web/content/get-started/app-configuration.mdx`:
- Around line 251-253: Replace the Callout component that currently uses
type="tip" (the Callout with title "Separate Files, Not Comments") with
type="info" so the message is rendered as contextual clarification; keep the
title and content unchanged and only modify the Callout's type attribute to
"info".

In `@apps/docs/src/web/content/routes/webrtc.mdx`:
- Around line 207-229: Add the missing import for the custom hook so the example
is copy-paste runnable: at the top of the snippet import useWebRTCCall from the
library used by the component (the hook referenced as useWebRTCCall) — this
ensures VideoCallWithErrorHandling can call useWebRTCCall (signalUrl/callbacks)
without throwing a missing-symbol error.
- Around line 148-165: The Hook Options table is missing the callbacks option
defined on the UseWebRTCCallOptions interface and referenced in useWebRTCCall
examples; add a new row to the Markdown table describing `callbacks` (type
`Partial<UseWebRTCCallCallbacks>` or the documented callback type used in the
code), its default (e.g., `undefined`), and a short description of what
callbacks are for (events like onConnect, onDisconnect, onTrack, onData, etc.)
so the documentation matches the actual UseWebRTCCallOptions interface and the
examples that use it.

In `@apps/docs/src/web/content/services/tasks.mdx`:
- Around line 92-99: Update the callout text to clarify that status alias
normalization happens in the SDK on the client side by calling
normalizeTaskStatus() during the SDK's create() flow (not on the server);
mention normalizeTaskStatus() and create() explicitly and change phrasing like
"normalize to canonical statuses before saving" to "SDK normalizes aliases via
normalizeTaskStatus() in the create() request before sending to the server."

---

Duplicate comments:
In `@apps/docs/src/web/content/cookbook/integrations/langchain.mdx`:
- Around line 102-131: The snippet shows streaming usage but references
undeclared symbols (search, calculate, getTime, message, langchainAgent,
messages); make the example copy-pastable by either inlining a brief setup or
marking it as a continuation: add minimal declarations/import hints for
search/calculate/getTime tool variables, define message/messages (e.g., a sample
HumanMessage), and show the createAgent call (langchainAgent) or explicitly
label the block as a continuation in the caption/prose so readers know they must
include the prior setup; update the snippet around langchainAgent, stream, and
the for-await loop to reference those provided names consistently.

In `@apps/docs/src/web/content/cookbook/integrations/openai-agents.mdx`:
- Around line 80-127: Provide runnable, copy-pasteable example code by adding
concrete imports and simple stub tool implementations for lookupInvoice and
processRefund (or import them if they exist) and replace the server-side
console.log in the handoff onHandoff callback with ctx.logger (e.g.,
ctx.logger.info or ctx.logger.error) so logging follows project guidelines;
specifically update the top of the snippet to import required symbols (Agent,
run, handoff, setTracingDisabled, z) and define lookupInvoice and processRefund
tool functions/objects referenced by billingAgent and refundAgent, and change
the onHandoff signature to use the agent context (ctx) and call
ctx.logger.info('Refund escalation:', input?.reason) instead of console.log so
triageAgent's handoffs are runnable and consistent with server code examples.

In `@apps/docs/src/web/content/get-started/app-configuration.mdx`:
- Around line 228-233: Update the "**File loading order:**" table row for
"agentuity dev" to include ".env.local" as the last entry so the sequence reads
".env → .env.development → .env.local" (later overrides earlier), and make the
same change for the duplicate table referenced around the later section (the
passage that currently states ".env.local has highest precedence") so both
places match and show .env.local as highest precedence.

---

Nitpick comments:
In `@apps/docs/src/web/content/routes/webrtc.mdx`:
- Line 376: Change the three consecutive sentences that all begin with "Use"
(the sentence starting "Use WebRTC when you need peer-to-peer...", the one
starting "Use [WebSockets](/routes/websockets) when you need...", and the one
starting "Use [SSE](/routes/sse) for...") to vary sentence structure for better
flow — e.g., keep the first as-is, rephrase the second to "Choose WebSockets
when you need server-mediated bidirectional communication" and the third to "For
server-to-client streaming, consider SSE" (or similar wording) so each sentence
starts differently while preserving the original meaning and links.

In `@apps/docs/src/web/content/services/tasks.mdx`:
- Around line 440-473: The examples lack logging; update the
router.post('/tasks', ...) and router.get('/tasks/:id', ...) handlers (created
via createRouter) to emit log entries when a task is created, when a fetch is
attempted, and when a task is not found — either hook Hono's logger middleware
or call the contextual logger (e.g., c.log.info / c.log.error) inside those
handlers before returning so the flows around c.var.task.create and
c.var.task.get include descriptive log messages including ids and status.
- Around line 2-3: Update the front-matter "title" value from the noun "Tasks"
to an action-oriented phrase (for example, "Managing Tasks" or "Tracking Work
Items with Tasks") so the page follows the docs guideline; modify the title
field in the front-matter at the top of the file (the "title" key) to the chosen
action-oriented string and keep the existing description unchanged.
🪄 Autofix (Beta)

Fix all unresolved CodeRabbit comments on this PR:

  • Push a commit to this branch (recommended)
  • Create a new PR with the fixes

ℹ️ Review info
⚙️ Run configuration

Configuration used: Organization UI

Review profile: CHILL

Plan: Pro

Run ID: 28f350c8-5201-4fe4-a31b-2bb8dc94e385

📥 Commits

Reviewing files that changed from the base of the PR and between 86bd035 and 0531c48.

📒 Files selected for processing (7)
  • apps/docs/src/web/content/cookbook/integrations/langchain.mdx
  • apps/docs/src/web/content/cookbook/integrations/mastra.mdx
  • apps/docs/src/web/content/cookbook/integrations/openai-agents.mdx
  • apps/docs/src/web/content/get-started/app-configuration.mdx
  • apps/docs/src/web/content/reference/cli/deployment.mdx
  • apps/docs/src/web/content/routes/webrtc.mdx
  • apps/docs/src/web/content/services/tasks.mdx
🚧 Files skipped from review as they are similar to previous changes (1)
  • apps/docs/src/web/content/cookbook/integrations/mastra.mdx
📜 Review details
⏰ Context from checks skipped due to timeout of 90000ms. You can increase the timeout in your CodeRabbit configuration to a maximum of 15 minutes (900000ms). (15)
  • GitHub Check: Agentuity Deployment
  • GitHub Check: Framework Integration Tests (TanStack & Next.js)
  • GitHub Check: Playwright E2E Smoke Test
  • GitHub Check: Queue CLI Tests
  • GitHub Check: Queue SDK Tests
  • GitHub Check: Package Installation & Usage Test
  • GitHub Check: Sandbox CLI Tests
  • GitHub Check: Storage CLI Tests
  • GitHub Check: Standalone Agent Test
  • GitHub Check: SDK Integration Test Suite
  • GitHub Check: Template Integration Tests
  • GitHub Check: Cloud Deployment Tests
  • GitHub Check: Postgres SSL Integration Test
  • GitHub Check: Build
  • GitHub Check: Pack & Upload
🧰 Additional context used
📓 Path-based instructions (1)
apps/docs/src/web/content/**/*.mdx

📄 CodeRabbit inference engine (apps/docs/src/web/content/AGENTS.md)

apps/docs/src/web/content/**/*.mdx: Write 1-2 sentences of motivation before showing code (context-then-code principle)
Use 'ctx.logger' in server/agent code examples, not 'console.log'
Include imports at the top of standalone code examples to ensure they are copy-pasteable and runnable
Use inline comments to explain intent ('why'), not syntax ('what')
Do not use suppression comments like '// @ts-ignore', '// eslint-disable', or other code suppressions in documentation examples
Use action-oriented titles (e.g., 'Calling Other Agents' not 'Agent Communication') for documentation pages
Keep feature documentation provider-agnostic where possible; use current model names in code examples and verify they are up to date before publishing
Use 'info' callout type for context and clarifications, 'warning' for gotchas and required setup, 'tip' for optimizations and advanced patterns
Make cross-links context-specific: include why the reader would follow the link (e.g., 'See Streaming Responses for chunked output patterns')
Link to external tools on first mention only; do not re-link on the same page
Replace hollow adjectives (e.g., 'powerful', 'seamless', 'enterprise-grade') with specific benefits; use precise language like 'consistent API', 'type-safe', 'observable', 'faster'
Explicitly mark optional parameters as 'optional' in prose; readers should not need to parse type signatures
Use inline code references to show API shape, config values, or method signatures without imports; use standalone examples for concepts that require copy-pasteable code
Prefer 'Prefer s from @agentuity/schema for schemas; show schema-agnostic SDK examples using other StandardSchema libraries (Zod, ArkType, Valibot) across documentation
Use a balance of raw SDK providers and AI SDK providers (openai(), anthropic()) in code examples throughout documentation
Strip boilerplate from code examples; show only the feature being demonstrated

Files:

  • apps/docs/src/web/content/reference/cli/deployment.mdx
  • apps/docs/src/web/content/services/tasks.mdx
  • apps/docs/src/web/content/cookbook/integrations/langchain.mdx
  • apps/docs/src/web/content/get-started/app-configuration.mdx
  • apps/docs/src/web/content/routes/webrtc.mdx
  • apps/docs/src/web/content/cookbook/integrations/openai-agents.mdx
🪛 LanguageTool
apps/docs/src/web/content/routes/webrtc.mdx

[style] ~376-~376: Three successive sentences begin with the same word. Consider rewording the sentence or use a thesaurus to find a synonym.
Context: ...mediated** bidirectional communication. Use SSE for **server-to-clie...

(ENGLISH_WORD_REPEAT_BEGINNING_RULE)

apps/docs/src/web/content/cookbook/integrations/openai-agents.mdx

[grammar] ~8-~8: Use a hyphen to join words.
Context: ...y manages everything around it. ## Tool Calling Agent Define tools with the Ope...

(QB_NEW_EN_HYPHEN)

🔇 Additional comments (17)
apps/docs/src/web/content/services/tasks.mdx (3)

265-278: LGTM!

The attachment upload flow correctly checks uploadResponse.ok before calling confirmAttachment(), preventing broken attachment records when uploads fail. This addresses the error handling concern appropriately.


36-62: LGTM!

The code example includes the required import, uses ctx.logger for logging, and includes an inline comment explaining intent ("distinguish from human users"). The example is copy-pasteable and demonstrates the feature effectively.


475-487: LGTM!

The Best Practices and Next Steps sections provide actionable guidance. Cross-links include context explaining why readers would follow them (e.g., "Async message passing for background processing between agents"), which aligns with coding guidelines.

apps/docs/src/web/content/get-started/app-configuration.mdx (1)

128-189: Nice addition: clear resource/build split and practical deploy script guidance.

This section is easy to follow, and the examples are scoped well for copy/paste reference.

apps/docs/src/web/content/reference/cli/deployment.mdx (7)

248-254: LGTM!

The re-linking issue from the previous review has been addressed—"Web App" is now plain text here since it was already linked earlier in the document.


263-265: LGTM!

The callout type change from info to warning correctly emphasizes this as a required prerequisite. Cross-links are context-specific and explain why the reader would follow them.


30-52: LGTM!

The .env file reference is now consistent throughout the document, and the Web App link is appropriately placed at first mention.


392-400: LGTM!

Resource configuration example is clear and the documented defaults match the example values.


404-443: LGTM!

This new section clearly distinguishes between runtime (deployment.resources) and build-time (build) resource configuration. The tip callout appropriately guides readers on when to override build resources, and optional fields are explicitly marked.


447-454: LGTM!

The .env file reference is consistent with the deploy command description earlier in the document.


526-551: LGTM!

This section clearly documents lifecycle script conventions. The warning callout appropriately highlights the behavioral difference between bun run deploy (lifecycle hooks run) and agentuity deploy (they don't), which is a key gotcha. The cross-links to GitHub App build process provide context for readers who deploy via that integration.

apps/docs/src/web/content/routes/webrtc.mdx (6)

170-185: Hook called at module scope violates React's Rules of Hooks.

This code block shows useWebRTCCall destructuring outside a component function, which is invalid React syntax. Wrap in a component or add a note that this must run inside a component.


191-201: Hook called at module scope.

Same issue as the Data Channel Methods section—wrap in a component or note the context requirement.


249-263: Hook called at module scope; missing import.

Same issue flagged previously—wrap in a component and add the import statement.


287-314: Hook called at module scope; missing import.

Same issue flagged previously—wrap in a component and add the import statement.


344-363: Hook called at module scope.

Same issue flagged previously—wrap these examples in component context.


16-25: LGTM!

The inline comment on line 21 now clearly explains that the full endpoint path is /api/call/signal due to the file path (src/api/call/) plus the registered route (/signal). This resolves the previous concern about endpoint inconsistency.

Comment thread apps/docs/src/web/content/get-started/app-configuration.mdx Outdated
Comment thread apps/docs/src/web/content/routes/webrtc.mdx
Comment thread apps/docs/src/web/content/routes/webrtc.mdx
Comment on lines +92 to +99
<Callout type="info" title="Status aliases">
The SDK accepts shorthand values that normalize to canonical statuses before saving:

- `completed` and `closed` both normalize to `done`
- `started` normalizes to `in_progress`

The four canonical statuses are `open`, `in_progress`, `done`, and `cancelled`. Use these in queries and comparisons.
</Callout>
Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

⚠️ Potential issue | 🟡 Minor

Clarify that normalization happens SDK-side, not server-side.

The callout states aliases "normalize to canonical statuses before saving," which implies server-side processing. However, based on the SDK implementation, normalizeTaskStatus() is called client-side in the SDK's create() method before the request is sent to the server. Consider updating the wording to clarify this.

📝 Suggested clarification
 <Callout type="info" title="Status aliases">
-The SDK accepts shorthand values that normalize to canonical statuses before saving:
+The SDK normalizes shorthand values to canonical statuses before sending them to the server:
 
 - `completed` and `closed` both normalize to `done`
 - `started` normalizes to `in_progress`
 
-The four canonical statuses are `open`, `in_progress`, `done`, and `cancelled`. Use these in queries and comparisons.
+The four canonical statuses are `open`, `in_progress`, `done`, and `cancelled`. Since normalization happens client-side, use canonical statuses in queries and comparisons.
 </Callout>
🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed.

In `@apps/docs/src/web/content/services/tasks.mdx` around lines 92 - 99, Update
the callout text to clarify that status alias normalization happens in the SDK
on the client side by calling normalizeTaskStatus() during the SDK's create()
flow (not on the server); mention normalizeTaskStatus() and create() explicitly
and change phrasing like "normalize to canonical statuses before saving" to "SDK
normalizes aliases via normalizeTaskStatus() in the create() request before
sending to the server."

- Update model names to `gpt-5.4`
- Fix weather tool to use location input
- Fix WebRTC signal paths and hook scope
- Add upload error check in tasks attachment
- Clarify `.env.local` precedence
Copy link
Copy Markdown
Contributor

@coderabbitai coderabbitai Bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Actionable comments posted: 2

♻️ Duplicate comments (1)
apps/docs/src/web/content/get-started/app-configuration.mdx (1)

228-259: ⚠️ Potential issue | 🟡 Minor

Unify .env.local precedence directly in the load-order table.

Line 232 documents agentuity dev load order without .env.local, while Line 257 later states .env.local has highest precedence. Bringing .env.local into the same table would make precedence unambiguous in one place.

Suggested docs patch
 | Mode | Files loaded (later overrides earlier) |
 |------|----------------------------------------|
-| `agentuity dev` | `.env` → `.env.development` |
+| `agentuity dev` | `.env` → `.env.development` → `.env.local` |
🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed.

In `@apps/docs/src/web/content/get-started/app-configuration.mdx` around lines 228
- 259, Update the "File loading order" table under the "File loading order:"
heading to include `.env.local` as the last/highest-precedence file for the
`agentuity dev` row (e.g., `.env` → `.env.development` → `.env.local`), and
remove the duplicated precedence note later by consolidating the `.env.local`
explanation into the "Additional files" bullet so the precedence is unambiguous
in one place; ensure the `.env.local` note still states it is usually gitignored
and has highest precedence (Bun-specific behavior) and keep the example and
callout text unchanged.
🧹 Nitpick comments (1)
apps/docs/src/web/content/get-started/app-configuration.mdx (1)

178-184: Make the deploy script example project-agnostic.

The predeploy example currently includes monorepo-specific setup (cd ../.. and build:packages), which adds noise for most readers and weakens reusability.

Suggested docs patch
 {
   "scripts": {
-    "predeploy": "cd ../.. && bun install && bun run build:packages",
+    "predeploy": "bun install && bun run build",
     "deploy": "agentuity deploy",
     "postdeploy": "echo 'Deploy complete'"
   }
 }

As per coding guidelines, "Strip boilerplate from code examples; show only the feature being demonstrated".

🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed.

In `@apps/docs/src/web/content/get-started/app-configuration.mdx` around lines 178
- 184, The package.json example's "predeploy" script contains monorepo-specific
commands ("cd ../.." and "bun run build:packages") that should be removed to
keep the example project-agnostic; update the "scripts" object so "predeploy"
only runs the generic setup needed for deployment (e.g., "bun install" or the
project's standard build command like "bun run build" or "npm install && npm run
build"), leaving "deploy" as "agentuity deploy" and "postdeploy" unchanged;
locate the package.json snippet and replace the value of the "predeploy" key in
the "scripts" block accordingly.
🤖 Prompt for all review comments with AI agents
Verify each finding against the current code and only fix it if needed.

Inline comments:
In `@apps/docs/src/web/content/routes/webrtc.mdx`:
- Around line 157-165: Update the WebRTC options table descriptions to
explicitly mark optional parameters in prose: for the rows with symbols
dataChannels, autoConnect, autoReconnect, maxReconnectAttempts, polite,
iceServers, and callbacks (and any other fields that rely on defaults like
connectionTimeout and iceGatheringTimeout), append "(optional)" to their
description text so readers don't need to inspect types to know they're
optional; keep the existing default values and brief descriptions but ensure the
prose contains the word "optional" for each optional parameter.
- Line 165: The docs table entry for the `callbacks` prop lists callback names
as `onConnected`/`onDisconnected` but the actual interface is
`WebRTCClientCallbacks` which exposes `onConnect` and `onDisconnect`; update the
documentation row (the `callbacks` prop description) to use `onConnect` and
`onDisconnect` to match the `WebRTCClientCallbacks` interface and ensure the
wording mentions other callbacks like `onError` consistently.

---

Duplicate comments:
In `@apps/docs/src/web/content/get-started/app-configuration.mdx`:
- Around line 228-259: Update the "File loading order" table under the "File
loading order:" heading to include `.env.local` as the last/highest-precedence
file for the `agentuity dev` row (e.g., `.env` → `.env.development` →
`.env.local`), and remove the duplicated precedence note later by consolidating
the `.env.local` explanation into the "Additional files" bullet so the
precedence is unambiguous in one place; ensure the `.env.local` note still
states it is usually gitignored and has highest precedence (Bun-specific
behavior) and keep the example and callout text unchanged.

---

Nitpick comments:
In `@apps/docs/src/web/content/get-started/app-configuration.mdx`:
- Around line 178-184: The package.json example's "predeploy" script contains
monorepo-specific commands ("cd ../.." and "bun run build:packages") that should
be removed to keep the example project-agnostic; update the "scripts" object so
"predeploy" only runs the generic setup needed for deployment (e.g., "bun
install" or the project's standard build command like "bun run build" or "npm
install && npm run build"), leaving "deploy" as "agentuity deploy" and
"postdeploy" unchanged; locate the package.json snippet and replace the value of
the "predeploy" key in the "scripts" block accordingly.
🪄 Autofix (Beta)

Fix all unresolved CodeRabbit comments on this PR:

  • Push a commit to this branch (recommended)
  • Create a new PR with the fixes

ℹ️ Review info
⚙️ Run configuration

Configuration used: Organization UI

Review profile: CHILL

Plan: Pro

Run ID: c6cb59e4-03df-4333-8ae7-1bc55eaaf7fb

📥 Commits

Reviewing files that changed from the base of the PR and between 0531c48 and 4041d09.

📒 Files selected for processing (3)
  • apps/docs/src/web/content/get-started/app-configuration.mdx
  • apps/docs/src/web/content/routes/webrtc.mdx
  • apps/docs/src/web/content/services/tasks.mdx
🚧 Files skipped from review as they are similar to previous changes (1)
  • apps/docs/src/web/content/services/tasks.mdx
📜 Review details
⏰ Context from checks skipped due to timeout of 90000ms. You can increase the timeout in your CodeRabbit configuration to a maximum of 15 minutes (900000ms). (15)
  • GitHub Check: Agentuity Deployment
  • GitHub Check: Build
  • GitHub Check: Queue CLI Tests
  • GitHub Check: Template Integration Tests
  • GitHub Check: Standalone Agent Test
  • GitHub Check: Sandbox CLI Tests
  • GitHub Check: Package Installation & Usage Test
  • GitHub Check: Playwright E2E Smoke Test
  • GitHub Check: Framework Integration Tests (TanStack & Next.js)
  • GitHub Check: Queue SDK Tests
  • GitHub Check: SDK Integration Test Suite
  • GitHub Check: Postgres SSL Integration Test
  • GitHub Check: Storage CLI Tests
  • GitHub Check: Cloud Deployment Tests
  • GitHub Check: Pack & Upload
🧰 Additional context used
📓 Path-based instructions (1)
apps/docs/src/web/content/**/*.mdx

📄 CodeRabbit inference engine (apps/docs/src/web/content/AGENTS.md)

apps/docs/src/web/content/**/*.mdx: Write 1-2 sentences of motivation before showing code (context-then-code principle)
Use 'ctx.logger' in server/agent code examples, not 'console.log'
Include imports at the top of standalone code examples to ensure they are copy-pasteable and runnable
Use inline comments to explain intent ('why'), not syntax ('what')
Do not use suppression comments like '// @ts-ignore', '// eslint-disable', or other code suppressions in documentation examples
Use action-oriented titles (e.g., 'Calling Other Agents' not 'Agent Communication') for documentation pages
Keep feature documentation provider-agnostic where possible; use current model names in code examples and verify they are up to date before publishing
Use 'info' callout type for context and clarifications, 'warning' for gotchas and required setup, 'tip' for optimizations and advanced patterns
Make cross-links context-specific: include why the reader would follow the link (e.g., 'See Streaming Responses for chunked output patterns')
Link to external tools on first mention only; do not re-link on the same page
Replace hollow adjectives (e.g., 'powerful', 'seamless', 'enterprise-grade') with specific benefits; use precise language like 'consistent API', 'type-safe', 'observable', 'faster'
Explicitly mark optional parameters as 'optional' in prose; readers should not need to parse type signatures
Use inline code references to show API shape, config values, or method signatures without imports; use standalone examples for concepts that require copy-pasteable code
Prefer 'Prefer s from @agentuity/schema for schemas; show schema-agnostic SDK examples using other StandardSchema libraries (Zod, ArkType, Valibot) across documentation
Use a balance of raw SDK providers and AI SDK providers (openai(), anthropic()) in code examples throughout documentation
Strip boilerplate from code examples; show only the feature being demonstrated

Files:

  • apps/docs/src/web/content/get-started/app-configuration.mdx
  • apps/docs/src/web/content/routes/webrtc.mdx
🪛 LanguageTool
apps/docs/src/web/content/routes/webrtc.mdx

[style] ~379-~379: Three successive sentences begin with the same word. Consider rewording the sentence or use a thesaurus to find a synonym.
Context: ...mediated** bidirectional communication. Use SSE for **server-to-clie...

(ENGLISH_WORD_REPEAT_BEGINNING_RULE)

🔇 Additional comments (2)
apps/docs/src/web/content/get-started/app-configuration.mdx (1)

130-173: Strong addition: deployment/build resource docs align with actual config shape.

This section is clear and matches the CLI config model (deployment.resources, deployment.domains, build.timeout, build.resources) and usage.

apps/docs/src/web/content/routes/webrtc.mdx (1)

21-23: Nice route-path clarification and client/server alignment.

The note at Line 21 removes ambiguity and now matches the client signalUrl examples.

Comment on lines +157 to +165
| `dataChannels` | `DataChannelConfig[]` | `undefined` | Data channels to create |
| `autoConnect` | `boolean` | `true` | Connect on mount |
| `autoReconnect` | `boolean` | `true` | Reconnect on failure |
| `maxReconnectAttempts` | `number` | `5` | Max reconnection attempts |
| `polite` | `boolean` | `undefined` | Perfect negotiation role |
| `connectionTimeout` | `number` | `30000` | Milliseconds before connection attempt times out (optional) |
| `iceGatheringTimeout` | `number` | `10000` | Milliseconds before ICE gathering times out (optional) |
| `iceServers` | `RTCIceServer[]` | STUN defaults | ICE/TURN server configuration |
| `callbacks` | `Partial<WebRTCClientCallbacks>` | `undefined` | Connection lifecycle callbacks (`onConnected`, `onDisconnected`, `onError`, etc.) |
Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

⚠️ Potential issue | 🟡 Minor

Mark optional hook options explicitly in prose for consistency.

Several optional options are implied by defaults but not labeled as optional (for example dataChannels, autoConnect, autoReconnect, maxReconnectAttempts, polite, iceServers, callbacks).

✏️ Suggested table wording update
-| `dataChannels` | `DataChannelConfig[]` | `undefined` | Data channels to create |
-| `autoConnect` | `boolean` | `true` | Connect on mount |
-| `autoReconnect` | `boolean` | `true` | Reconnect on failure |
-| `maxReconnectAttempts` | `number` | `5` | Max reconnection attempts |
-| `polite` | `boolean` | `undefined` | Perfect negotiation role |
-| `iceServers` | `RTCIceServer[]` | STUN defaults | ICE/TURN server configuration |
-| `callbacks` | `Partial<WebRTCClientCallbacks>` | `undefined` | Connection lifecycle callbacks (`onConnected`, `onDisconnected`, `onError`, etc.) |
+| `dataChannels` | `DataChannelConfig[]` | `undefined` | Data channels to create (optional) |
+| `autoConnect` | `boolean` | `true` | Connect on mount (optional) |
+| `autoReconnect` | `boolean` | `true` | Reconnect on failure (optional) |
+| `maxReconnectAttempts` | `number` | `5` | Max reconnection attempts (optional) |
+| `polite` | `boolean` | `undefined` | Perfect negotiation role (optional) |
+| `iceServers` | `RTCIceServer[]` | STUN defaults | ICE/TURN server configuration (optional) |
+| `callbacks` | `Partial<WebRTCClientCallbacks>` | `undefined` | Connection lifecycle callbacks (`onConnect`, `onDisconnect`, `onError`, etc.) (optional) |
As per coding guidelines, "Explicitly mark optional parameters as 'optional' in prose; readers should not need to parse type signatures."
🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed.

In `@apps/docs/src/web/content/routes/webrtc.mdx` around lines 157 - 165, Update
the WebRTC options table descriptions to explicitly mark optional parameters in
prose: for the rows with symbols dataChannels, autoConnect, autoReconnect,
maxReconnectAttempts, polite, iceServers, and callbacks (and any other fields
that rely on defaults like connectionTimeout and iceGatheringTimeout), append
"(optional)" to their description text so readers don't need to inspect types to
know they're optional; keep the existing default values and brief descriptions
but ensure the prose contains the word "optional" for each optional parameter.

| `connectionTimeout` | `number` | `30000` | Milliseconds before connection attempt times out (optional) |
| `iceGatheringTimeout` | `number` | `10000` | Milliseconds before ICE gathering times out (optional) |
| `iceServers` | `RTCIceServer[]` | STUN defaults | ICE/TURN server configuration |
| `callbacks` | `Partial<WebRTCClientCallbacks>` | `undefined` | Connection lifecycle callbacks (`onConnected`, `onDisconnected`, `onError`, etc.) |
Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

⚠️ Potential issue | 🟡 Minor

🧩 Analysis chain

🏁 Script executed:

#!/bin/bash
set -euo pipefail

echo "== Locate relevant files =="
fd "webrtc.tsx" --type f
fd "webrtc-manager.ts" --type f

echo "== Verify UseWebRTCCallResult members =="
rg -n -C2 'export interface UseWebRTCCallResult|sendJSON|closeDataChannel|getQualitySummary|getAllQualitySummaries|startRecording|stopAllRecordings|createDataChannel|sendString|sendBinary' packages/react/src/webrtc.tsx

echo "== Verify callback names =="
rg -n -C2 'export interface WebRTCClientCallbacks|onConnect|onDisconnect|onConnected|onDisconnected|onError|onReconnecting|onReconnectFailed' packages/frontend/src/webrtc-manager.ts

Repository: agentuity/sdk

Length of output: 8450


🏁 Script executed:

cd apps/docs && cat -n src/web/routes/_docs/routes/webrtc.mdx | sed -n '160,180p'

Repository: agentuity/sdk

Length of output: 127


🏁 Script executed:

cd apps/docs && cat -n src/web/routes/_docs/routes/webrtc.mdx | sed -n '248,260p'

Repository: agentuity/sdk

Length of output: 127


🏁 Script executed:

cd apps/docs && cat -n src/web/routes/_docs/routes/webrtc.mdx | sed -n '288,300p'

Repository: agentuity/sdk

Length of output: 127


🏁 Script executed:

fd "webrtc.mdx" apps/docs --type f

Repository: agentuity/sdk

Length of output: 100


🏁 Script executed:

cat -n apps/docs/src/web/content/routes/webrtc.mdx | sed -n '160,180p'

Repository: agentuity/sdk

Length of output: 1139


🏁 Script executed:

cat -n apps/docs/src/web/content/routes/webrtc.mdx | sed -n '168,190p'

Repository: agentuity/sdk

Length of output: 737


🏁 Script executed:

cat -n apps/docs/src/web/content/routes/webrtc.mdx | sed -n '248,320p'

Repository: agentuity/sdk

Length of output: 3274


Fix callback name typos in WebRTCClientCallbacks documentation.

Line 165 documents callback names as onConnected and onDisconnected, but the actual interface uses onConnect and onDisconnect.

Correction
-| `callbacks` | `Partial<WebRTCClientCallbacks>` | `undefined` | Connection lifecycle callbacks (`onConnected`, `onDisconnected`, `onError`, etc.) |
+| `callbacks` | `Partial<WebRTCClientCallbacks>` | `undefined` | Connection lifecycle callbacks (`onConnect`, `onDisconnect`, `onError`, etc.) |
📝 Committable suggestion

‼️ IMPORTANT
Carefully review the code before committing. Ensure that it accurately replaces the highlighted code, contains no missing lines, and has no issues with indentation. Thoroughly test & benchmark the code to ensure it meets the requirements.

Suggested change
| `callbacks` | `Partial<WebRTCClientCallbacks>` | `undefined` | Connection lifecycle callbacks (`onConnected`, `onDisconnected`, `onError`, etc.) |
| `callbacks` | `Partial<WebRTCClientCallbacks>` | `undefined` | Connection lifecycle callbacks (`onConnect`, `onDisconnect`, `onError`, etc.) |
🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed.

In `@apps/docs/src/web/content/routes/webrtc.mdx` at line 165, The docs table
entry for the `callbacks` prop lists callback names as
`onConnected`/`onDisconnected` but the actual interface is
`WebRTCClientCallbacks` which exposes `onConnect` and `onDisconnect`; update the
documentation row (the `callbacks` prop description) to use `onConnect` and
`onDisconnect` to match the `WebRTCClientCallbacks` interface and ensure the
wording mentions other callbacks like `onError` consistently.

Copy link
Copy Markdown
Contributor

@coderabbitai coderabbitai Bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

♻️ Duplicate comments (2)
apps/docs/src/web/content/routes/webrtc.mdx (2)

157-165: ⚠️ Potential issue | 🟡 Minor

Mark optional hook options explicitly in prose.

Several optional fields are still described without the word “optional” (for example dataChannels, autoConnect, autoReconnect, maxReconnectAttempts, polite, connectionTimeout, iceGatheringTimeout, iceServers, callbacks), which makes the table harder to scan.

✏️ Proposed doc tweak
-| `dataChannels` | `DataChannelConfig[]` | `undefined` | Data channels to create |
-| `autoConnect` | `boolean` | `true` | Connect on mount |
-| `autoReconnect` | `boolean` | `true` | Reconnect on failure |
-| `maxReconnectAttempts` | `number` | `5` | Max reconnection attempts |
-| `polite` | `boolean` | `undefined` | Perfect negotiation role |
-| `connectionTimeout` | `number` | `30000` | Milliseconds before connection attempt times out |
-| `iceGatheringTimeout` | `number` | `10000` | Milliseconds before ICE gathering times out |
-| `iceServers` | `RTCIceServer[]` | STUN defaults | ICE/TURN server configuration |
-| `callbacks` | `Partial<WebRTCClientCallbacks>` | `undefined` | Lifecycle callbacks (`onStateChange`, `onError`, `onReconnecting`, `onReconnectFailed`) |
+| `dataChannels` | `DataChannelConfig[]` | `undefined` | Data channels to create (optional) |
+| `autoConnect` | `boolean` | `true` | Connect on mount (optional) |
+| `autoReconnect` | `boolean` | `true` | Reconnect on failure (optional) |
+| `maxReconnectAttempts` | `number` | `5` | Max reconnection attempts (optional) |
+| `polite` | `boolean` | `undefined` | Perfect negotiation role (optional) |
+| `connectionTimeout` | `number` | `30000` | Milliseconds before connection attempt times out (optional) |
+| `iceGatheringTimeout` | `number` | `10000` | Milliseconds before ICE gathering times out (optional) |
+| `iceServers` | `RTCIceServer[]` | STUN defaults | ICE/TURN server configuration (optional) |
+| `callbacks` | `Partial<WebRTCClientCallbacks>` | `undefined` | Lifecycle callbacks (`onStateChange`, `onError`, `onReconnecting`, `onReconnectFailed`) (optional) |

As per coding guidelines, "Explicitly mark optional parameters as 'optional' in prose; readers should not need to parse type signatures."

🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed.

In `@apps/docs/src/web/content/routes/webrtc.mdx` around lines 157 - 165, Update
the table rows for the WebRTC client hook options so optional fields explicitly
state "optional" in the prose; for each of dataChannels (DataChannelConfig[]),
autoConnect, autoReconnect, maxReconnectAttempts, polite, connectionTimeout,
iceGatheringTimeout, iceServers (RTCIceServer[]), and callbacks
(Partial<WebRTCClientCallbacks>) append or include "(optional)" in the
description column (e.g., "Data channels to create (optional)", "Connect on
mount (optional)") so readers don't need to parse the type signatures to know
these are optional.

171-203: ⚠️ Potential issue | 🟠 Major

Move useWebRTCCall() examples into components/custom hooks and make snippets runnable.

These snippets invoke useWebRTCCall() at module scope and rely on undeclared values (peerId, remotePeerId, roomId), so they violate React hook rules and are not copy-paste runnable as written.

🧩 Suggested pattern (apply to each snippet)
+import { useWebRTCCall } from '@agentuity/react';
+
-const { sendString, sendStringTo } = useWebRTCCall({ /* ...options */ });
-sendString('chat', 'Hello everyone');
+function DataChannelExamples({ roomId, peerId }: { roomId: string; peerId: string }) {
+  const { sendString, sendStringTo } = useWebRTCCall({
+    roomId,
+    signalUrl: '/api/call/signal',
+    media: false,
+  });
+
+  sendString('chat', 'Hello everyone');
+  sendStringTo(peerId, 'chat', 'Private message');
+  return null;
+}

As per coding guidelines, "Include imports at the top of standalone code examples to ensure they are copy-pasteable and runnable."

Also applies to: 209-219, 269-283, 307-337, 366-373, 381-385

🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed.

In `@apps/docs/src/web/content/routes/webrtc.mdx` around lines 171 - 203, The
examples call useWebRTCCall at module scope and reference undeclared variables
(peerId/remotePeerId/roomId), violating React hook rules and making snippets
unrunnable; move each usage of useWebRTCCall (and functions like sendString,
sendStringTo, sendJSON, sendJSONTo, sendBinary, sendBinaryTo, createDataChannel,
getDataChannelLabels, getDataChannelState, closeDataChannel) inside a React
component or a custom hook, add the necessary imports at the top, and declare or
derive peerId/remotePeerId/roomId from props, state, or context so the snippets
are copy-paste runnable while preserving the same function names and call
patterns.
🧹 Nitpick comments (1)
apps/docs/src/web/content/routes/webrtc.mdx (1)

399-399: Consider varying sentence openings for readability.

Three consecutive sentences start with “Use”; rephrasing one improves flow without changing meaning.

🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed.

In `@apps/docs/src/web/content/routes/webrtc.mdx` at line 399, The three
consecutive sentences beginning "Use WebRTC when you need **peer-to-peer**
connections or **media streaming**.", "Use [WebSockets](/routes/websockets) when
you need **server-mediated** bidirectional communication.", and "Use
[SSE](/routes/sse) for **server-to-client** streaming." should vary their
openings for better flow; rewrite one sentence (for example, start the second
with "Opt for [WebSockets]..." or the third with "Choose [SSE]..." or
combine/reorder phrases) so the meaning remains identical but the sentence
starters are not all "Use".
🤖 Prompt for all review comments with AI agents
Verify each finding against the current code and only fix it if needed.

Duplicate comments:
In `@apps/docs/src/web/content/routes/webrtc.mdx`:
- Around line 157-165: Update the table rows for the WebRTC client hook options
so optional fields explicitly state "optional" in the prose; for each of
dataChannels (DataChannelConfig[]), autoConnect, autoReconnect,
maxReconnectAttempts, polite, connectionTimeout, iceGatheringTimeout, iceServers
(RTCIceServer[]), and callbacks (Partial<WebRTCClientCallbacks>) append or
include "(optional)" in the description column (e.g., "Data channels to create
(optional)", "Connect on mount (optional)") so readers don't need to parse the
type signatures to know these are optional.
- Around line 171-203: The examples call useWebRTCCall at module scope and
reference undeclared variables (peerId/remotePeerId/roomId), violating React
hook rules and making snippets unrunnable; move each usage of useWebRTCCall (and
functions like sendString, sendStringTo, sendJSON, sendJSONTo, sendBinary,
sendBinaryTo, createDataChannel, getDataChannelLabels, getDataChannelState,
closeDataChannel) inside a React component or a custom hook, add the necessary
imports at the top, and declare or derive peerId/remotePeerId/roomId from props,
state, or context so the snippets are copy-paste runnable while preserving the
same function names and call patterns.

---

Nitpick comments:
In `@apps/docs/src/web/content/routes/webrtc.mdx`:
- Line 399: The three consecutive sentences beginning "Use WebRTC when you need
**peer-to-peer** connections or **media streaming**.", "Use
[WebSockets](/routes/websockets) when you need **server-mediated** bidirectional
communication.", and "Use [SSE](/routes/sse) for **server-to-client**
streaming." should vary their openings for better flow; rewrite one sentence
(for example, start the second with "Opt for [WebSockets]..." or the third with
"Choose [SSE]..." or combine/reorder phrases) so the meaning remains identical
but the sentence starters are not all "Use".

ℹ️ Review info
⚙️ Run configuration

Configuration used: Organization UI

Review profile: CHILL

Plan: Pro

Run ID: 8335b1c1-a13e-4cb8-8130-350fc985c3c8

📥 Commits

Reviewing files that changed from the base of the PR and between 4041d09 and 5bb37d3.

📒 Files selected for processing (1)
  • apps/docs/src/web/content/routes/webrtc.mdx
📜 Review details
⏰ Context from checks skipped due to timeout of 90000ms. You can increase the timeout in your CodeRabbit configuration to a maximum of 15 minutes (900000ms). (15)
  • GitHub Check: Agentuity Deployment
  • GitHub Check: Template Integration Tests
  • GitHub Check: Cloud Deployment Tests
  • GitHub Check: Queue CLI Tests
  • GitHub Check: Build
  • GitHub Check: Pack & Upload
  • GitHub Check: Playwright E2E Smoke Test
  • GitHub Check: Sandbox CLI Tests
  • GitHub Check: Framework Integration Tests (TanStack & Next.js)
  • GitHub Check: Postgres SSL Integration Test
  • GitHub Check: Standalone Agent Test
  • GitHub Check: Storage CLI Tests
  • GitHub Check: SDK Integration Test Suite
  • GitHub Check: Package Installation & Usage Test
  • GitHub Check: Queue SDK Tests
🧰 Additional context used
📓 Path-based instructions (1)
apps/docs/src/web/content/**/*.mdx

📄 CodeRabbit inference engine (apps/docs/src/web/content/AGENTS.md)

apps/docs/src/web/content/**/*.mdx: Write 1-2 sentences of motivation before showing code (context-then-code principle)
Use 'ctx.logger' in server/agent code examples, not 'console.log'
Include imports at the top of standalone code examples to ensure they are copy-pasteable and runnable
Use inline comments to explain intent ('why'), not syntax ('what')
Do not use suppression comments like '// @ts-ignore', '// eslint-disable', or other code suppressions in documentation examples
Use action-oriented titles (e.g., 'Calling Other Agents' not 'Agent Communication') for documentation pages
Keep feature documentation provider-agnostic where possible; use current model names in code examples and verify they are up to date before publishing
Use 'info' callout type for context and clarifications, 'warning' for gotchas and required setup, 'tip' for optimizations and advanced patterns
Make cross-links context-specific: include why the reader would follow the link (e.g., 'See Streaming Responses for chunked output patterns')
Link to external tools on first mention only; do not re-link on the same page
Replace hollow adjectives (e.g., 'powerful', 'seamless', 'enterprise-grade') with specific benefits; use precise language like 'consistent API', 'type-safe', 'observable', 'faster'
Explicitly mark optional parameters as 'optional' in prose; readers should not need to parse type signatures
Use inline code references to show API shape, config values, or method signatures without imports; use standalone examples for concepts that require copy-pasteable code
Prefer 'Prefer s from @agentuity/schema for schemas; show schema-agnostic SDK examples using other StandardSchema libraries (Zod, ArkType, Valibot) across documentation
Use a balance of raw SDK providers and AI SDK providers (openai(), anthropic()) in code examples throughout documentation
Strip boilerplate from code examples; show only the feature being demonstrated

Files:

  • apps/docs/src/web/content/routes/webrtc.mdx
🪛 LanguageTool
apps/docs/src/web/content/routes/webrtc.mdx

[style] ~399-~399: Three successive sentences begin with the same word. Consider rewording the sentence or use a thesaurus to find a synonym.
Context: ...mediated** bidirectional communication. Use SSE for **server-to-clie...

(ENGLISH_WORD_REPEAT_BEGINNING_RULE)

Copy link
Copy Markdown
Contributor

@coderabbitai coderabbitai Bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Actionable comments posted: 1

🤖 Prompt for all review comments with AI agents
Verify each finding against the current code and only fix it if needed.

Inline comments:
In `@apps/docs/src/web/content/reference/api/oauth.mdx`:
- Around line 146-151: Update the OAuthClientSchema's internal field so it
includes a description: locate the `internal` entry in `OAuthClientSchema`
(currently defined as `z.boolean().optional().default(false)`) and add a
`.describe('Whether this client is an internal/system application')` call so the
schema reads with a description and surfaces in the generated API docs.
🪄 Autofix (Beta)

Fix all unresolved CodeRabbit comments on this PR:

  • Push a commit to this branch (recommended)
  • Create a new PR with the fixes

ℹ️ Review info
⚙️ Run configuration

Configuration used: Organization UI

Review profile: CHILL

Plan: Pro

Run ID: 0f10b727-cde0-48a4-8825-d563209c414c

📥 Commits

Reviewing files that changed from the base of the PR and between 5bb37d3 and 0d4a0db.

📒 Files selected for processing (4)
  • apps/docs/src/web/content/reference/api/oauth.mdx
  • apps/docs/src/web/content/reference/api/sandboxes.mdx
  • apps/docs/src/web/content/reference/cli/sandbox.mdx
  • apps/docs/src/web/content/services/sandbox/index.mdx
✅ Files skipped from review due to trivial changes (1)
  • apps/docs/src/web/content/reference/cli/sandbox.mdx
🚧 Files skipped from review as they are similar to previous changes (2)
  • apps/docs/src/web/content/services/sandbox/index.mdx
  • apps/docs/src/web/content/reference/api/sandboxes.mdx
📜 Review details
⏰ Context from checks skipped due to timeout of 90000ms. You can increase the timeout in your CodeRabbit configuration to a maximum of 15 minutes (900000ms). (15)
  • GitHub Check: Agentuity Deployment
  • GitHub Check: Pack & Upload
  • GitHub Check: Postgres SSL Integration Test
  • GitHub Check: Build
  • GitHub Check: Cloud Deployment Tests
  • GitHub Check: Framework Integration Tests (TanStack & Next.js)
  • GitHub Check: Queue SDK Tests
  • GitHub Check: Playwright E2E Smoke Test
  • GitHub Check: Queue CLI Tests
  • GitHub Check: Storage CLI Tests
  • GitHub Check: Package Installation & Usage Test
  • GitHub Check: Template Integration Tests
  • GitHub Check: Sandbox CLI Tests
  • GitHub Check: SDK Integration Test Suite
  • GitHub Check: Standalone Agent Test
🧰 Additional context used
📓 Path-based instructions (1)
apps/docs/src/web/content/**/*.mdx

📄 CodeRabbit inference engine (apps/docs/src/web/content/AGENTS.md)

apps/docs/src/web/content/**/*.mdx: Write 1-2 sentences of motivation before showing code (context-then-code principle)
Use 'ctx.logger' in server/agent code examples, not 'console.log'
Include imports at the top of standalone code examples to ensure they are copy-pasteable and runnable
Use inline comments to explain intent ('why'), not syntax ('what')
Do not use suppression comments like '// @ts-ignore', '// eslint-disable', or other code suppressions in documentation examples
Use action-oriented titles (e.g., 'Calling Other Agents' not 'Agent Communication') for documentation pages
Keep feature documentation provider-agnostic where possible; use current model names in code examples and verify they are up to date before publishing
Use 'info' callout type for context and clarifications, 'warning' for gotchas and required setup, 'tip' for optimizations and advanced patterns
Make cross-links context-specific: include why the reader would follow the link (e.g., 'See Streaming Responses for chunked output patterns')
Link to external tools on first mention only; do not re-link on the same page
Replace hollow adjectives (e.g., 'powerful', 'seamless', 'enterprise-grade') with specific benefits; use precise language like 'consistent API', 'type-safe', 'observable', 'faster'
Explicitly mark optional parameters as 'optional' in prose; readers should not need to parse type signatures
Use inline code references to show API shape, config values, or method signatures without imports; use standalone examples for concepts that require copy-pasteable code
Prefer 'Prefer s from @agentuity/schema for schemas; show schema-agnostic SDK examples using other StandardSchema libraries (Zod, ArkType, Valibot) across documentation
Use a balance of raw SDK providers and AI SDK providers (openai(), anthropic()) in code examples throughout documentation
Strip boilerplate from code examples; show only the feature being demonstrated

Files:

  • apps/docs/src/web/content/reference/api/oauth.mdx
🔇 Additional comments (3)
apps/docs/src/web/content/reference/api/oauth.mdx (3)

416-421: Same issue as noted above (lines 146-151).

Empty description for client.internal field. The consolidated fix in the generation script would address this occurrence as well.


593-598: Same issue as noted above (lines 146-151).

Empty description for internal field. The consolidated fix in the generation script would address this occurrence as well.


859-864: Same issue as noted above (lines 146-151).

Empty description for client.internal field. The consolidated fix in the generation script would address this occurrence as well.

Comment on lines +146 to +151
{
"name": "internal",
"type": "boolean",
"description": "",
"required": true
},
Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

⚠️ Potential issue | 🟡 Minor

🧩 Analysis chain

🏁 Script executed:

#!/bin/bash
# Verify how the generation script handles optional fields with defaults
fd -t f 'generate-api-reference' --exec cat {}

Repository: agentuity/sdk

Length of output: 14542


🏁 Script executed:

cat packages/core/src/services/oauth/api-reference.ts

Repository: agentuity/sdk

Length of output: 14369


🏁 Script executed:

head -100 packages/core/src/services/api-reference.ts

Repository: agentuity/sdk

Length of output: 2345


🏁 Script executed:

rg "internal.*boolean" packages/core/src/services/oauth/ -A 2 -B 2

Repository: agentuity/sdk

Length of output: 457


🏁 Script executed:

sed -n '80,200p' packages/core/src/services/api-reference.ts

Repository: agentuity/sdk

Length of output: 3478


🏁 Script executed:

cat packages/core/src/services/oauth/types.ts | grep -A 30 "OAuthClientListItemSchema"

Repository: agentuity/sdk

Length of output: 3776


🏁 Script executed:

cat packages/core/src/services/oauth/types.ts | grep -B 50 "internal: z.boolean" | head -80

Repository: agentuity/sdk

Length of output: 862


🏁 Script executed:

rg "\.describe\(" packages/core/src/services/oauth/types.ts -A 1 -B 1 | head -30

Repository: agentuity/sdk

Length of output: 966


Add description to the internal field in the schema source.

The internal field in OAuthClientSchema (packages/core/src/services/oauth/types.ts) lacks a .describe() call. Without it, the generated API documentation shows an empty description. The required: true is correct—Zod's .optional().default(false) ensures the field is always present in API responses, making it required.

Add a description like:

internal: z.boolean().optional().default(false).describe('Whether this client is an internal/system application'),

This will populate the description in all four response endpoints (lines 146-151, 416-421, 593-598, 859-864 in oauth.mdx).

🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed.

In `@apps/docs/src/web/content/reference/api/oauth.mdx` around lines 146 - 151,
Update the OAuthClientSchema's internal field so it includes a description:
locate the `internal` entry in `OAuthClientSchema` (currently defined as
`z.boolean().optional().default(false)`) and add a `.describe('Whether this
client is an internal/system application')` call so the schema reads with a
description and surfaces in the generated API docs.

@parteeksingh24 parteeksingh24 requested a review from jhaynie March 19, 2026 17:30
- Claude Agent SDK and Chat SDK integrations
- Web exploration and autonomous research patterns
- Link code-runner and scheduled-digest examples
- Consistent `:` separators for example links
# Conflicts:
#	apps/docs/src/web/content/reference/cli/sandbox.mdx
# Conflicts:
#	apps/docs/src/web/components/docs/nav-data.ts
#	apps/docs/src/web/content/reference/meta.json
- Add standalone packages page with service access table
- Expand SDK reference into 11 sub-pages with fixed heading hierarchy
- Add missing sidebar entries for email, webhooks, schedules, tasks
- Add streaming responses section to agents reference
- Fix vector upsert field name, em-dashes, model names
- Regenerate nav-data and routeTree
@parteeksingh24 parteeksingh24 requested a review from jhaynie March 20, 2026 23:25
- Rewrite Reference and CLI index pages with card-based layouts
- Create 5 SDK Reference service pages and auth services hub page
- Expand thin SDK Reference pages and add cross-links
- Reword standalone callouts, unify icons across sections
- Add SDK Reference subpage convention to AGENTS.md
- Document sandbox job control and OAuth token management
- Add missing route files for new pages
- Fix Next Steps format and icon consistency
parteeksingh24 and others added 4 commits March 24, 2026 16:08
- Move "When to Use" sections to top of page
- Replace sparse checkmark tables with two-column format
- Consistent cross-links between WebSocket, SSE, WebRTC
- Update stale model name in SSE example
@parteeksingh24 parteeksingh24 merged commit b21fc83 into main Mar 24, 2026
17 checks passed
@parteeksingh24 parteeksingh24 deleted the sync-docs-changes branch March 24, 2026 23:40
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants