mirror of
https://github.com/RooVetGit/Roo-Code.git
synced 2026-08-28 05:27:24 +00:00
web: Cloud page and updates to Pricing to explain Cloud Agent Credits (#8605)
* Adds mention of Cloud agents to /pricing * Credit pricing FAQ * Skeleton of a /cloud page and more pricing page tweaks * Lint * Update apps/web-roo-code/src/app/cloud/page.tsx Co-authored-by: roomote[bot] <219738659+roomote[bot]@users.noreply.github.com> * Code review * Updates copy to new credit system * Moves Terms of Service to be backed by a markdown file, easier to read/edit/diff * Updated ToS * Twerm copy tweaks * Cloud screenshot and style adjustments * Style tweaks * Styles --------- Co-authored-by: roomote[bot] <219738659+roomote[bot]@users.noreply.github.com>
This commit is contained in:
parent
270dce5050
commit
9aee31f28a
8 changed files with 527 additions and 355 deletions
|
|
@ -31,7 +31,10 @@
|
|||
"react-cookie-consent": "^9.0.0",
|
||||
"react-dom": "^18.3.1",
|
||||
"react-icons": "^5.5.0",
|
||||
"react-markdown": "^9.0.3",
|
||||
"recharts": "^2.15.3",
|
||||
"rehype-raw": "^7.0.0",
|
||||
"remark-gfm": "^4.0.1",
|
||||
"tailwind-merge": "^3.3.0",
|
||||
"tailwindcss-animate": "^1.0.7",
|
||||
"tldts": "^6.1.86",
|
||||
|
|
|
|||
BIN
apps/web-roo-code/public/heroes/cloud-screen.png
Normal file
BIN
apps/web-roo-code/public/heroes/cloud-screen.png
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 1.1 MiB |
247
apps/web-roo-code/src/app/cloud/page.tsx
Normal file
247
apps/web-roo-code/src/app/cloud/page.tsx
Normal file
|
|
@ -0,0 +1,247 @@
|
|||
import {
|
||||
ArrowRight,
|
||||
ChartLine,
|
||||
Cloud,
|
||||
Lock,
|
||||
LucideIcon,
|
||||
Megaphone,
|
||||
MessageCircleQuestionMark,
|
||||
ReplaceAll,
|
||||
Router,
|
||||
Share2,
|
||||
Users,
|
||||
} from "lucide-react"
|
||||
import type { Metadata } from "next"
|
||||
|
||||
import { Button } from "@/components/ui"
|
||||
import { AnimatedBackground } from "@/components/homepage"
|
||||
import { SEO } from "@/lib/seo"
|
||||
import { EXTERNAL_LINKS } from "@/lib/constants"
|
||||
import Image from "next/image"
|
||||
|
||||
const TITLE = "Roo Code Cloud"
|
||||
const DESCRIPTION =
|
||||
"Roo Code Cloud gives you and your team the tools to take AI-coding to the next level with cloud agents, remote control, and more."
|
||||
const PATH = "/cloud"
|
||||
const OG_IMAGE = SEO.ogImage
|
||||
|
||||
export const metadata: Metadata = {
|
||||
title: TITLE,
|
||||
description: DESCRIPTION,
|
||||
alternates: {
|
||||
canonical: `${SEO.url}${PATH}`,
|
||||
},
|
||||
openGraph: {
|
||||
title: TITLE,
|
||||
description: DESCRIPTION,
|
||||
url: `${SEO.url}${PATH}`,
|
||||
siteName: SEO.name,
|
||||
images: [
|
||||
{
|
||||
url: OG_IMAGE.url,
|
||||
width: OG_IMAGE.width,
|
||||
height: OG_IMAGE.height,
|
||||
alt: OG_IMAGE.alt,
|
||||
},
|
||||
],
|
||||
locale: SEO.locale,
|
||||
type: "website",
|
||||
},
|
||||
twitter: {
|
||||
card: SEO.twitterCard,
|
||||
title: TITLE,
|
||||
description: DESCRIPTION,
|
||||
images: [OG_IMAGE.url],
|
||||
},
|
||||
keywords: [...SEO.keywords, "cloud", "subscription", "cloud agents", "AI cloud development"],
|
||||
}
|
||||
|
||||
interface Feature {
|
||||
icon: LucideIcon
|
||||
title: string
|
||||
description: string
|
||||
logos?: string[]
|
||||
}
|
||||
|
||||
const cloudFeatures: Feature[] = [
|
||||
{
|
||||
icon: Router,
|
||||
title: "Roomote Control",
|
||||
description: "Control your IDE from anywhere and keep coding away from your computer.",
|
||||
},
|
||||
{
|
||||
icon: Cloud,
|
||||
title: "Cloud Agents",
|
||||
description:
|
||||
"Specialized agents running in the Cloud to get stuff done while you sleep, with a credit-based system that doesn't lock you in or dumb your models down.",
|
||||
},
|
||||
{
|
||||
icon: ReplaceAll,
|
||||
title: "Still Model-agnostic",
|
||||
description: "Bring your own provider key — no markup, lock-in, no restrictions.",
|
||||
logos: ["Anthropic", "OpenAI", "Gemini", "Grok", "Qwen", "Kimi", "Mistral", "Ollama"],
|
||||
},
|
||||
{
|
||||
icon: ChartLine,
|
||||
title: "Usage Analytics",
|
||||
description: "Detailed token analytics to help you optimize your costs and usage.",
|
||||
},
|
||||
{
|
||||
icon: Megaphone,
|
||||
title: "Early Model Access",
|
||||
description: "Get early, free access to new, stealth coding models as they become available.",
|
||||
},
|
||||
{
|
||||
icon: Share2,
|
||||
title: "Task Sharing",
|
||||
description: "Share tasks with friends and co-workers and let them follow your work.",
|
||||
},
|
||||
{
|
||||
icon: Users,
|
||||
title: "Team Management",
|
||||
description:
|
||||
"Manage your team and their access to tasks and resources, with centralized billing, analytics and configuration.",
|
||||
},
|
||||
{
|
||||
icon: Lock,
|
||||
title: "Secure and Private",
|
||||
description:
|
||||
"Your data is never used for training, and we're SOC2 Type 2 and GDPR compliant, following state-of-the-art security practices, with deep respect for your IP.",
|
||||
},
|
||||
{
|
||||
icon: MessageCircleQuestionMark,
|
||||
title: "Priority support",
|
||||
description: "Get quick help from the people who know Roo best.",
|
||||
},
|
||||
]
|
||||
|
||||
// Workaround for next/image choking on these for some reason
|
||||
import screenshotDark from "/public/heroes/cloud-screen.png"
|
||||
|
||||
export default function CloudPage() {
|
||||
return (
|
||||
<>
|
||||
<section className="relative flex md:h-[calc(80vh-theme(spacing.12))] items-center overflow-hidden">
|
||||
<AnimatedBackground />
|
||||
<div className="container relative flex items-center h-full z-10 mx-auto px-4 sm:px-6 lg:px-8">
|
||||
<div className="grid h-full relative gap-8 md:gap-12 lg:grid-cols-2 lg:gap-16">
|
||||
<div className="flex flex-col px-4 justify-center space-y-6 sm:space-y-8">
|
||||
<div>
|
||||
<h1 className="text-4xl font-bold tracking-tight mt-8 text-center md:text-left md:text-4xl lg:text-5xl lg:mt-0">
|
||||
Go <em>way</em> beyond the IDE
|
||||
</h1>
|
||||
<p className="mt-4 max-w-md text-lg text-muted-foreground text-center md:text-left sm:mt-6">
|
||||
Roo Code Cloud gives you (and your team) the tools to take AI-coding to the next
|
||||
level
|
||||
</p>
|
||||
</div>
|
||||
<div className="flex flex-col space-y-3 sm:flex-row sm:space-x-4 sm:space-y-0">
|
||||
<Button
|
||||
variant="outline"
|
||||
size="lg"
|
||||
className="w-full sm:w-auto bg-white/20 dark:bg-white/10 backdrop-blur-sm border border-black/40 dark:border-white/30 hover:border-blue-400 hover:bg-white/30 dark:hover:bg-white/20 hover:shadow-[0_0_20px_rgba(59,130,246,0.5)] transition-all duration-300">
|
||||
<a
|
||||
href={EXTERNAL_LINKS.CLOUD_APP_SIGNUP}
|
||||
target="_blank"
|
||||
rel="noopener noreferrer"
|
||||
className="flex w-full items-center justify-center">
|
||||
Start Free Trial
|
||||
<ArrowRight className="ml-2" />
|
||||
</a>
|
||||
</Button>
|
||||
</div>
|
||||
</div>
|
||||
<div className="flex items-center justify-end mx-auto h-full mt-8 lg:mt-0">
|
||||
<div className="md:w-[900px] md:h-[530px] bg-black dark:bg-white relative rounded-md overflow-clip shadow-2xl">
|
||||
<div className="block">
|
||||
<Image
|
||||
src={screenshotDark}
|
||||
alt="Screenshot of Roo Code Cloud"
|
||||
className="max-w-full h-auto"
|
||||
width={2680}
|
||||
height={1784}
|
||||
/>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</section>
|
||||
|
||||
<section className="relative overflow-hidden border-t border-border py-32">
|
||||
<div className="container relative z-10 mx-auto px-4 sm:px-6 lg:px-8">
|
||||
<div className="mx-auto mb-12 md:mb-24 max-w-4xl text-center">
|
||||
<div>
|
||||
<h2 className="text-4xl font-bold tracking-tight sm:text-5xl">Power and Flexibility</h2>
|
||||
<p className="mt-6 text-lg text-muted-foreground">
|
||||
Code in the cloud, access free models, get usage analytics and more
|
||||
</p>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div className="relative mx-auto md:max-w-[1200px]">
|
||||
<ul className="grid grid-cols-1 place-items-center gap-6 md:grid-cols-2 lg:grid-cols-3 lg:gap-8">
|
||||
{cloudFeatures.map((feature, index) => {
|
||||
const Icon = feature.icon
|
||||
return (
|
||||
<li
|
||||
key={index}
|
||||
className="relative h-full border border-border rounded-2xl bg-background p-8 transition-all duration-300">
|
||||
<Icon className="size-6 text-foreground/80" />
|
||||
<h3 className="mb-3 mt-3 text-xl font-semibold text-foreground">
|
||||
{feature.title}
|
||||
</h3>
|
||||
<p className="leading-relaxed font-light text-muted-foreground">
|
||||
{feature.description}
|
||||
</p>
|
||||
{feature.logos && (
|
||||
<div className="mt-4 flex flex-wrap items-center gap-4">
|
||||
{feature.logos.map((logo) => (
|
||||
<Image
|
||||
key={logo}
|
||||
width={20}
|
||||
height={20}
|
||||
className="w-5 h-5 overflow-clip opacity-50 dark:invert"
|
||||
src={`/logos/${logo.toLowerCase()}.svg`}
|
||||
alt={`${logo} Logo`}
|
||||
/>
|
||||
))}
|
||||
</div>
|
||||
)}
|
||||
</li>
|
||||
)
|
||||
})}
|
||||
</ul>
|
||||
</div>
|
||||
</div>
|
||||
</section>
|
||||
|
||||
<div id="faq"></div>
|
||||
|
||||
{/* CTA Section */}
|
||||
<section className="py-20">
|
||||
<div className="container mx-auto px-4 sm:px-6 lg:px-8">
|
||||
<div className="mx-auto max-w-4xl rounded-3xl border border-border/50 bg-gradient-to-br from-blue-500/5 via-cyan-500/5 to-purple-500/5 p-8 text-center shadow-2xl backdrop-blur-xl dark:border-white/20 dark:bg-gradient-to-br dark:from-gray-800 dark:via-gray-900 dark:to-black sm:p-12">
|
||||
<h2 className="mb-4 text-3xl font-bold tracking-tight sm:text-4xl">Try Roo Code Cloud now</h2>
|
||||
<p className="mx-auto mb-8 max-w-2xl text-lg text-muted-foreground">Code from anywhere.</p>
|
||||
<div className="flex flex-col justify-center space-y-4 sm:flex-row sm:space-x-4 sm:space-y-0">
|
||||
<Button
|
||||
size="lg"
|
||||
className="bg-black text-white hover:bg-gray-800 hover:shadow-lg hover:shadow-black/20 dark:bg-white dark:text-black dark:hover:bg-gray-200 dark:hover:shadow-white/20 transition-all duration-300"
|
||||
asChild>
|
||||
<a
|
||||
href={EXTERNAL_LINKS.CLOUD_APP_SIGNUP}
|
||||
target="_blank"
|
||||
rel="noopener noreferrer"
|
||||
className="flex items-center justify-center">
|
||||
Create a free Cloud account
|
||||
<ArrowRight className="ml-2 h-4 w-4" />
|
||||
</a>
|
||||
</Button>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</section>
|
||||
</>
|
||||
)
|
||||
}
|
||||
|
|
@ -14,6 +14,8 @@ const DESCRIPTION =
|
|||
const PATH = "/pricing"
|
||||
const OG_IMAGE = SEO.ogImage
|
||||
|
||||
const PRICE_CREDITS = 5
|
||||
|
||||
export const metadata: Metadata = {
|
||||
title: TITLE,
|
||||
description: DESCRIPTION,
|
||||
|
|
@ -59,6 +61,7 @@ interface PricingTier {
|
|||
icon: LucideIcon
|
||||
price: string
|
||||
period?: string
|
||||
creditPrice?: string
|
||||
trial?: string
|
||||
cancellation?: string
|
||||
description: string
|
||||
|
|
@ -80,8 +83,9 @@ const pricingTiers: PricingTier[] = [
|
|||
description: "For folks just getting started",
|
||||
features: [
|
||||
"Token usage analytics",
|
||||
"Access your task history across devices",
|
||||
"Follow your tasks from anywhere",
|
||||
"Share tasks with friends and co-workers",
|
||||
"Early access to free AI Models",
|
||||
"Community support",
|
||||
],
|
||||
cta: {
|
||||
|
|
@ -95,13 +99,13 @@ const pricingTiers: PricingTier[] = [
|
|||
price: "$20",
|
||||
period: "/mo",
|
||||
trial: "Free 14-day trial · ",
|
||||
creditPrice: `$${PRICE_CREDITS}`,
|
||||
cancellation: "Cancel anytime",
|
||||
description: "For pro Roo coders",
|
||||
featuresIntro: "Everything in Free, plus:",
|
||||
featuresIntro: "Everything in Free +",
|
||||
features: [
|
||||
"Roomote Control",
|
||||
"Start, stop and control tasks from anywhere",
|
||||
"Course-correct Roo from afar",
|
||||
"Cloud Agents: PR Reviewer and more",
|
||||
"Roomote Control: Start, stop and control tasks from anywhere",
|
||||
"Paid support",
|
||||
],
|
||||
cta: {
|
||||
|
|
@ -114,33 +118,17 @@ const pricingTiers: PricingTier[] = [
|
|||
icon: Users,
|
||||
price: "$99",
|
||||
period: "/mo",
|
||||
creditPrice: `$${PRICE_CREDITS}`,
|
||||
trial: "Free 14-day trial · ",
|
||||
cancellation: "Cancel anytime",
|
||||
description: "For AI-forward teams",
|
||||
featuresIntro: "Everything in Pro, plus:",
|
||||
featuresIntro: "Everything in Pro +",
|
||||
features: ["Unlimited users (no per-seat cost)", "Shared configuration & policies", "Centralized billing"],
|
||||
cta: {
|
||||
text: "Get started",
|
||||
href: EXTERNAL_LINKS.CLOUD_APP_SIGNUP + "?redirect_url=/billing",
|
||||
},
|
||||
},
|
||||
{
|
||||
name: "Enterprise",
|
||||
icon: Building2,
|
||||
price: "Custom",
|
||||
description: "For complex orgs",
|
||||
featuresIntro: "Everything in Team, plus:",
|
||||
features: [
|
||||
"SAML SSO provisioning",
|
||||
"Custom integrations and terms",
|
||||
"Security questionnaires and all that fun stuff",
|
||||
"Dedicated support",
|
||||
],
|
||||
cta: {
|
||||
text: "Talk to Sales",
|
||||
isContactForm: true,
|
||||
},
|
||||
},
|
||||
]
|
||||
|
||||
export default function PricingPage() {
|
||||
|
|
@ -156,7 +144,7 @@ export default function PricingPage() {
|
|||
<p className="mx-auto mt-4 max-w-2xl text-lg text-muted-foreground">
|
||||
Simple, transparent pricing that scales with your needs.
|
||||
<br />
|
||||
Free 14-day trials to kick the tires.
|
||||
No inference markups. Free 14-day trials to kick the tires.
|
||||
</p>
|
||||
</div>
|
||||
</div>
|
||||
|
|
@ -175,7 +163,7 @@ export default function PricingPage() {
|
|||
{/* Pricing Tiers */}
|
||||
<section className="">
|
||||
<div className="container mx-auto px-4 sm:px-6 lg:px-8">
|
||||
<div className="mx-auto grid max-w-6xl gap-4 lg:grid-cols-4">
|
||||
<div className="mx-auto grid max-w-6xl gap-4 lg:grid-cols-3">
|
||||
{pricingTiers.map((tier) => {
|
||||
const Icon = tier.icon
|
||||
return (
|
||||
|
|
@ -194,7 +182,7 @@ export default function PricingPage() {
|
|||
<p className="text-sm text-muted-foreground font-light mb-2">
|
||||
{tier.featuresIntro}
|
||||
</p>
|
||||
<ul className="space-y-3 my-0">
|
||||
<ul className="space-y-3 my-0 h-[148px]">
|
||||
{tier.features.map((feature) => (
|
||||
<li key={feature} className="flex items-start gap-2">
|
||||
<Check className="mt-0.5 h-4 w-4 text-muted-foreground shrink-0" />
|
||||
|
|
@ -208,9 +196,16 @@ export default function PricingPage() {
|
|||
<strong>{tier.price}</strong>
|
||||
{tier.period}
|
||||
</p>
|
||||
|
||||
{tier.creditPrice && (
|
||||
<p className="text-sm text-muted-foreground mb-1">
|
||||
+ {tier.creditPrice}/hour for Cloud tasks
|
||||
</p>
|
||||
)}
|
||||
|
||||
<p className="text-xs text-muted-foreground mb-4">
|
||||
{tier.trial}
|
||||
{tier.cancellation}
|
||||
{tier.cancellation}
|
||||
</p>
|
||||
|
||||
{tier.cta.isContactForm ? (
|
||||
|
|
@ -231,6 +226,19 @@ export default function PricingPage() {
|
|||
})}
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div className="mx-auto grid max-w-6xl gap-4 mt-4 relative">
|
||||
<p className="bg-background border rounded-2xl p-6 text-center text-sm text-muted-foreground">
|
||||
<Building2 className="inline size-4 mr-2 mb-0.5" />
|
||||
Need SAML, advanced security, custom integrations or terms? Enterprise is for you.
|
||||
<Link
|
||||
href="/enterprise#contact"
|
||||
className="font-medium ml-1 text-blue-500 hover:text-blue-600 dark:text-blue-400 dark:hover:text-blue-300">
|
||||
Talk to Sales
|
||||
</Link>
|
||||
.
|
||||
</p>
|
||||
</div>
|
||||
</section>
|
||||
|
||||
{/* Additional Information */}
|
||||
|
|
@ -238,7 +246,6 @@ export default function PricingPage() {
|
|||
<div className="container mx-auto px-4 sm:px-6 lg:px-8">
|
||||
<div className="mx-auto max-w-3xl text-center">
|
||||
<h2 className="text-3xl font-bold tracking-tight sm:text-4xl">Frequently Asked Questions</h2>
|
||||
<p className="mt-4 text-lg text-muted-foreground">Got questions about our pricing?</p>
|
||||
</div>
|
||||
<div className="mx-auto mt-12 grid max-w-5xl gap-8 md:grid-cols-2">
|
||||
<div className="rounded-lg border border-border bg-card p-6">
|
||||
|
|
@ -252,15 +259,32 @@ export default function PricingPage() {
|
|||
<div className="rounded-lg border border-border bg-card p-6">
|
||||
<h3 className="font-semibold">Is there a free trial?</h3>
|
||||
<p className="mt-2 text-sm text-muted-foreground">
|
||||
Yes, all paid plans come with a 14-day free trial.
|
||||
Yes, all paid plans come with a 14-day free trial to try out functionality.
|
||||
</p>
|
||||
<p className="mt-2 text-sm text-muted-foreground">
|
||||
To use Cloud Agents, you can buy credits.
|
||||
</p>
|
||||
</div>
|
||||
<div className="rounded-lg border border-border bg-card p-6">
|
||||
<h3 className="font-semibold">How do Cloud Agent credits work?</h3>
|
||||
<p className="mt-2 text-sm text-muted-foreground">
|
||||
Cloud Agents are a version of Roo running in the cloud without depending on your IDE.
|
||||
You can run as many as you want, and bring your own inference provider key.
|
||||
</p>
|
||||
<p className="mt-2 text-sm text-muted-foreground">
|
||||
To cover our infrastructure costs, we charge ${PRICE_CREDITS}/hour while the agent is
|
||||
running (independent of inference costs).
|
||||
</p>
|
||||
<p className="mt-2 text-sm text-muted-foreground">
|
||||
There are no markups, no tiers, no dumbing-down of models to increase our profit.
|
||||
</p>
|
||||
</div>
|
||||
<div className="rounded-lg border border-border bg-card p-6">
|
||||
<h3 className="font-semibold">Do I need a credit card for the free trial?</h3>
|
||||
<p className="mt-2 text-sm text-muted-foreground">
|
||||
Yes, but you won't be charged until your trial ends. You can cancel anytime with
|
||||
one click .
|
||||
Yes, but you won't be charged until your trial ends, except for credit purchases.
|
||||
</p>
|
||||
<p className="mt-2 text-sm text-muted-foreground">You can cancel anytime with one click.</p>
|
||||
</div>
|
||||
<div className="rounded-lg border border-border bg-card p-6">
|
||||
<h3 className="font-semibold">What payment methods do you accept?</h3>
|
||||
|
|
|
|||
|
|
@ -1,5 +1,10 @@
|
|||
import type { Metadata } from "next"
|
||||
import { SEO } from "@/lib/seo"
|
||||
import fs from "fs"
|
||||
import path from "path"
|
||||
import ReactMarkdown from "react-markdown"
|
||||
import remarkGfm from "remark-gfm"
|
||||
import rehypeRaw from "rehype-raw"
|
||||
|
||||
const TITLE = "Terms of Service"
|
||||
const DESCRIPTION =
|
||||
|
|
@ -38,315 +43,56 @@ export const metadata: Metadata = {
|
|||
keywords: [...SEO.keywords, "terms of service", "legal", "agreement", "subscription"],
|
||||
}
|
||||
|
||||
function getTermsContent() {
|
||||
const filePath = path.join(process.cwd(), "src/app/terms/terms.md")
|
||||
return fs.readFileSync(filePath, "utf8")
|
||||
}
|
||||
|
||||
export default function Terms() {
|
||||
const content = getTermsContent()
|
||||
|
||||
return (
|
||||
<>
|
||||
<div className="container mx-auto px-4 py-12 sm:px-6 lg:px-8">
|
||||
<div className="prose prose-lg mx-auto max-w-4xl dark:prose-invert">
|
||||
<h1 className="text-3xl font-bold tracking-tight sm:text-4xl md:text-5xl">
|
||||
Roo Code Cloud Terms of Service
|
||||
</h1>
|
||||
<p className="text-muted-foreground">
|
||||
<em>(Version 1.0 – Effective June 19, 2025)</em>
|
||||
</p>
|
||||
|
||||
<p className="lead">
|
||||
These Terms of Service ("<strong>TOS</strong>") govern access to and use of the Roo
|
||||
Code Cloud service (the "<strong>Service</strong>"). They apply to:
|
||||
</p>
|
||||
<ul className="lead">
|
||||
<li>
|
||||
<strong>(a)</strong> every <strong>Sales Order Form</strong> or similar document mutually
|
||||
executed by Roo Code and the customer that references these TOS; <strong>and</strong>
|
||||
</li>
|
||||
<li>
|
||||
<strong>(b)</strong> any{" "}
|
||||
<strong>online plan-selection, self-service sign-up, or in-app purchase flow</strong>{" "}
|
||||
through which a customer clicks an "I Agree" (or equivalent) button to accept
|
||||
these TOS — such flow also being an <strong>"Order Form."</strong>
|
||||
</li>
|
||||
</ul>
|
||||
|
||||
<p>
|
||||
By <strong>creating an account, clicking to accept, or using the Service</strong>, the person or
|
||||
entity doing so ("<strong>Customer</strong>") agrees to be bound by these TOS, even if
|
||||
no separate Order Form is signed.
|
||||
</p>
|
||||
|
||||
<p>
|
||||
If Roo Code and Customer later execute a Master Subscription Agreement ("
|
||||
<strong>MSA</strong>"), the MSA governs; otherwise, these TOS and the applicable Order Form
|
||||
together form the entire agreement (the "<strong>Agreement</strong>").
|
||||
</p>
|
||||
|
||||
<h2 className="mt-12 text-2xl font-bold">1. Agreement Framework</h2>
|
||||
<ol>
|
||||
<li>
|
||||
<strong>Incorporation of Standard Terms.</strong>
|
||||
<br />
|
||||
The{" "}
|
||||
<div className="container mx-auto px-4 py-12 sm:px-6 lg:px-8">
|
||||
<div className="prose prose-lg mx-auto max-w-4xl dark:prose-invert">
|
||||
<ReactMarkdown
|
||||
remarkPlugins={[remarkGfm]}
|
||||
rehypePlugins={[rehypeRaw]}
|
||||
components={{
|
||||
h1: ({ ...props }) => (
|
||||
<h1 className="text-3xl font-bold tracking-tight sm:text-4xl md:text-5xl" {...props} />
|
||||
),
|
||||
h2: ({ ...props }) => <h2 className="mt-12 text-2xl font-bold" {...props} />,
|
||||
a: ({ ...props }) => (
|
||||
<a
|
||||
href="https://commonpaper.com/standards/cloud-service-agreement/2.0/"
|
||||
className="text-primary hover:underline"
|
||||
target="_blank"
|
||||
rel="noopener noreferrer"
|
||||
className="text-primary hover:underline">
|
||||
<em>Common Paper Cloud Service Standard Terms v 2.0</em>
|
||||
</a>{" "}
|
||||
(the "<strong>Standard Terms</strong>") are incorporated by reference. If these
|
||||
TOS conflict with the Standard Terms, these TOS control.
|
||||
</li>
|
||||
<li>
|
||||
<strong>Order of Precedence.</strong>
|
||||
<br />
|
||||
(a) Order Form (b) these TOS (c) Standard Terms.
|
||||
</li>
|
||||
</ol>
|
||||
|
||||
<h2 className="mt-12 text-2xl font-bold">2. Key Commercial Terms</h2>
|
||||
|
||||
<div className="overflow-x-auto">
|
||||
<table className="min-w-full border-collapse border border-border">
|
||||
<thead>
|
||||
<tr className="bg-muted/50">
|
||||
<th className="border border-border px-4 py-2 text-left font-semibold">Term</th>
|
||||
<th className="border border-border px-4 py-2 text-left font-semibold">Value</th>
|
||||
</tr>
|
||||
</thead>
|
||||
<tbody>
|
||||
<tr>
|
||||
<td className="border border-border px-4 py-2 font-medium">
|
||||
Governing Law / Forum
|
||||
</td>
|
||||
<td className="border border-border px-4 py-2">
|
||||
Delaware law; exclusive jurisdiction and venue in the state or federal courts
|
||||
located in Delaware
|
||||
</td>
|
||||
</tr>
|
||||
<tr className="bg-muted/25">
|
||||
<td className="border border-border px-4 py-2 font-medium">
|
||||
Plans & Subscription Periods
|
||||
</td>
|
||||
<td className="border border-border px-4 py-2">
|
||||
<em>Free Plan:</em> month-to-month.
|
||||
<br />
|
||||
<em>Paid Plans:</em> Monthly <strong>or</strong> Annual, as selected in an Order
|
||||
Form or the online flow.
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td className="border border-border px-4 py-2 font-medium">
|
||||
Auto-Renewal & Non-Renewal Notice
|
||||
</td>
|
||||
<td className="border border-border px-4 py-2">
|
||||
<em>Free Plan:</em> renews continuously until cancelled in the dashboard.
|
||||
<br />
|
||||
<em>Paid Plans:</em> renew for the same period unless either party gives 30
|
||||
days' written notice before the current period ends.
|
||||
</td>
|
||||
</tr>
|
||||
<tr className="bg-muted/25">
|
||||
<td className="border border-border px-4 py-2 font-medium">Fees & Usage</td>
|
||||
<td className="border border-border px-4 py-2">
|
||||
<em>Free Plan:</em> Subscription Fee = $0.
|
||||
<br />
|
||||
<em>Paid Plans:</em> Fees stated in the Order Form or online checkout{" "}
|
||||
<strong>plus</strong> usage-based fees, calculated and invoiced monthly.
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td className="border border-border px-4 py-2 font-medium">Payment Terms</td>
|
||||
<td className="border border-border px-4 py-2">
|
||||
<em>Monthly paid plans:</em> credit-card charge on the billing date.
|
||||
<br />
|
||||
<em>Annual paid plans:</em> invoiced Net 30 (credit card optional).
|
||||
</td>
|
||||
</tr>
|
||||
<tr className="bg-muted/25">
|
||||
<td className="border border-border px-4 py-2 font-medium">
|
||||
General Liability Cap
|
||||
</td>
|
||||
<td className="border border-border px-4 py-2">
|
||||
The greater of (i) USD 100 and (ii) 1 × Fees paid or payable in the 12 months
|
||||
before the event giving rise to liability.
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td className="border border-border px-4 py-2 font-medium">
|
||||
Increased Cap / Unlimited Claims
|
||||
</td>
|
||||
<td className="border border-border px-4 py-2">None</td>
|
||||
</tr>
|
||||
<tr className="bg-muted/25">
|
||||
<td className="border border-border px-4 py-2 font-medium">Trial / Pilot</td>
|
||||
<td className="border border-border px-4 py-2">Not offered</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td className="border border-border px-4 py-2 font-medium">Beta Features</td>
|
||||
<td className="border border-border px-4 py-2">
|
||||
None – only generally available features are provided
|
||||
</td>
|
||||
</tr>
|
||||
<tr className="bg-muted/25">
|
||||
<td className="border border-border px-4 py-2 font-medium">Security Standard</td>
|
||||
<td className="border border-border px-4 py-2">
|
||||
Roo Code maintains commercially reasonable administrative, physical, and
|
||||
technical safeguards
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td className="border border-border px-4 py-2 font-medium">Machine-Learning Use</td>
|
||||
<td className="border border-border px-4 py-2">
|
||||
Roo Code <strong>does not</strong> use Customer Content to train, fine-tune, or
|
||||
improve any ML or AI models
|
||||
</td>
|
||||
</tr>
|
||||
<tr className="bg-muted/25">
|
||||
<td className="border border-border px-4 py-2 font-medium">
|
||||
Data Processing Addendum (DPA)
|
||||
</td>
|
||||
<td className="border border-border px-4 py-2">
|
||||
GDPR/CCPA-ready DPA available upon written request
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td className="border border-border px-4 py-2 font-medium">
|
||||
Publicity / Logo Rights
|
||||
</td>
|
||||
<td className="border border-border px-4 py-2">
|
||||
Roo Code may identify Customer (name & logo) in marketing materials unless
|
||||
Customer opts out in writing
|
||||
</td>
|
||||
</tr>
|
||||
</tbody>
|
||||
</table>
|
||||
</div>
|
||||
|
||||
<h2 className="mt-12 text-2xl font-bold">3. Modifications to the Standard Terms</h2>
|
||||
<ol>
|
||||
<li>
|
||||
<strong>Section 1.6 (Machine Learning).</strong>
|
||||
<br />
|
||||
"Provider will not use Customer Content or Usage Data to train, fine-tune, or improve
|
||||
any machine-learning or AI model, except with Customer's prior written consent."
|
||||
</li>
|
||||
<li>
|
||||
<strong>Section 3 (Security).</strong>
|
||||
<br />
|
||||
Replace "reasonable" with "commercially reasonable."
|
||||
</li>
|
||||
<li>
|
||||
<strong>Section 4 (Fees & Payment).</strong>
|
||||
<br />
|
||||
Add usage-billing language above and delete any provision allowing unilateral fee increases.
|
||||
</li>
|
||||
<li>
|
||||
<strong>Section 5 (Term & Termination).</strong>
|
||||
<br />
|
||||
Insert auto-renewal and free-plan language above.
|
||||
</li>
|
||||
<li>
|
||||
<strong>Sections 7 (Trials / Betas) and any SLA references.</strong>
|
||||
<br />
|
||||
Deleted – Roo Code offers no trials, pilots, betas, or SLA credits under these TOS.
|
||||
</li>
|
||||
<li>
|
||||
<strong>Section 12.12 (Publicity).</strong>
|
||||
<br />
|
||||
As reflected in the "Publicity / Logo Rights" row above.
|
||||
</li>
|
||||
</ol>
|
||||
|
||||
<h2 className="mt-12 text-2xl font-bold">4. Use of the Service</h2>
|
||||
<p>
|
||||
Customer may access and use the Service solely for its internal business purposes and subject to
|
||||
the Acceptable Use Policy in the Standard Terms.
|
||||
</p>
|
||||
|
||||
<h2 className="mt-12 text-2xl font-bold">5. Account Management & Termination</h2>
|
||||
<ul>
|
||||
<li>
|
||||
<strong>Self-service cancellation or downgrade.</strong>
|
||||
<br />
|
||||
Customer may cancel a Free Plan immediately, or cancel/downgrade a Paid Plan effective at
|
||||
the end of the current billing cycle, via the web dashboard.
|
||||
</li>
|
||||
<li>
|
||||
Either party may otherwise terminate the Agreement as allowed under Section 5 of the
|
||||
Standard Terms.
|
||||
</li>
|
||||
</ul>
|
||||
|
||||
<h2 className="mt-12 text-2xl font-bold">6. Privacy & Data</h2>
|
||||
<p>
|
||||
Roo Code's Privacy Notice (
|
||||
<a
|
||||
href="https://roocode.com/privacy"
|
||||
rel="noopener noreferrer"
|
||||
className="text-primary hover:underline">
|
||||
https://roocode.com/privacy
|
||||
</a>
|
||||
) explains how Roo Code collects and handles personal information. If Customer requires a DPA,
|
||||
email{" "}
|
||||
<a href="mailto:support@roocode.com" className="text-primary hover:underline">
|
||||
support@roocode.com
|
||||
</a>
|
||||
.
|
||||
</p>
|
||||
|
||||
<h2 className="mt-12 text-2xl font-bold">7. Warranty Disclaimer</h2>
|
||||
<p>
|
||||
Except as expressly stated in the Agreement, the Service is provided{" "}
|
||||
<strong>"as is,"</strong> and all implied warranties are disclaimed to the maximum
|
||||
extent allowed by law.
|
||||
</p>
|
||||
|
||||
<h2 className="mt-12 text-2xl font-bold">8. Limitation of Liability</h2>
|
||||
<p>
|
||||
The caps in Section 2 apply to all claims under the Agreement, whether in contract, tort, or
|
||||
otherwise, except for Excluded Claims defined in the Standard Terms.
|
||||
</p>
|
||||
|
||||
<h2 className="mt-12 text-2xl font-bold">9. Miscellaneous</h2>
|
||||
<ol>
|
||||
<li>
|
||||
<strong>Assignment.</strong>
|
||||
<br />
|
||||
Customer may not assign the Agreement without Roo Code's prior written consent, except
|
||||
to a successor in a merger or sale of substantially all assets.
|
||||
</li>
|
||||
<li>
|
||||
<strong>Export Compliance.</strong>
|
||||
<br />
|
||||
Each party will comply with all applicable export-control laws and regulations and will not
|
||||
export or re-export any software or technical data without the required government licences.
|
||||
</li>
|
||||
<li>
|
||||
<strong>Entire Agreement.</strong>
|
||||
<br />
|
||||
The Agreement supersedes all prior or contemporaneous agreements for the Service.
|
||||
</li>
|
||||
<li>
|
||||
<strong>Amendments.</strong>
|
||||
<br />
|
||||
Roo Code may update these TOS by posting a revised version at the same URL and emailing or
|
||||
in-app notifying Customer at least 30 days before changes take effect. Continued use after
|
||||
the effective date constitutes acceptance.
|
||||
</li>
|
||||
</ol>
|
||||
|
||||
<h2 className="mt-12 text-2xl font-bold">10. Contact</h2>
|
||||
<p>
|
||||
<strong>Roo Code, Inc.</strong>
|
||||
<br />
|
||||
98 Graceland Dr, San Rafael, CA 94901 USA
|
||||
<br />
|
||||
Email:{" "}
|
||||
<a href="mailto:support@roocode.com" className="text-primary hover:underline">
|
||||
support@roocode.com
|
||||
</a>
|
||||
</p>
|
||||
</div>
|
||||
{...props}
|
||||
/>
|
||||
),
|
||||
table: ({ ...props }) => (
|
||||
<div className="overflow-x-auto">
|
||||
<table className="min-w-full border-collapse border border-border" {...props} />
|
||||
</div>
|
||||
),
|
||||
th: ({ ...props }) => (
|
||||
<th
|
||||
className="border border-border px-4 py-2 text-left font-bold bg-muted-foreground/5"
|
||||
{...props}
|
||||
/>
|
||||
),
|
||||
td: ({ node: _node, ...props }) => {
|
||||
// Check if this is the first column (Term column)
|
||||
const isTermColumn = _node?.position?.start.column === 1
|
||||
if (isTermColumn) {
|
||||
return <td className="border border-border px-4 py-2 font-medium" {...props} />
|
||||
}
|
||||
return <td className="border border-border px-4 py-2" {...props} />
|
||||
},
|
||||
}}>
|
||||
{content}
|
||||
</ReactMarkdown>
|
||||
</div>
|
||||
</>
|
||||
</div>
|
||||
)
|
||||
}
|
||||
|
|
|
|||
101
apps/web-roo-code/src/app/terms/terms.md
Normal file
101
apps/web-roo-code/src/app/terms/terms.md
Normal file
|
|
@ -0,0 +1,101 @@
|
|||
# Roo Code Cloud Terms of Service
|
||||
|
||||
_(Version 1.1 – Effective Oct 16, 2025)_
|
||||
|
||||
These Terms of Service ("**TOS**") govern access to and use of the Roo Code Cloud service (the "**Service**"). They apply to:
|
||||
|
||||
- **(a)** every **Sales Order Form** or similar document mutually executed by Roo Code and the customer that references these TOS; **and**
|
||||
- **(b)** any **online plan-selection, self-service sign-up, or in-app purchase flow** through which a customer clicks an "I Agree" (or equivalent) button to accept these TOS — such flow also being an **"Order Form."**
|
||||
|
||||
By **creating an account, clicking to accept, or using the Service**, the person or entity doing so ("**Customer**") agrees to be bound by these TOS, even if no separate Order Form is signed.
|
||||
|
||||
If Roo Code and Customer later execute a Master Subscription Agreement ("**MSA**"), the MSA governs; otherwise, these TOS and the applicable Order Form together form the entire agreement (the "**Agreement**").
|
||||
|
||||
## 1. Agreement Framework
|
||||
|
||||
1. **Incorporation of Standard Terms.**
|
||||
The [_Common Paper Cloud Service Standard Terms v 2.0_](https://commonpaper.com/standards/cloud-service-agreement/2.0/) (the "**Standard Terms**") are incorporated by reference. If these TOS conflict with the Standard Terms, these TOS control.
|
||||
|
||||
2. **Order of Precedence.**
|
||||
(a) Order Form (b) these TOS (c) Standard Terms.
|
||||
|
||||
## 2. Key Commercial Terms
|
||||
|
||||
| Term | Value |
|
||||
| --------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
|
||||
| Governing Law / Forum | Delaware law; exclusive jurisdiction and venue in the state or federal courts located in Delaware |
|
||||
| Plans & Subscription Periods | _Free Plan:_ month-to-month. <br> _Paid Plans:_ Monthly **or** Annual, as selected in an Order Form or the online flow. |
|
||||
| Auto-Renewal & Non-Renewal Notice | _Free Plan:_ renews continuously until cancelled in the dashboard. <br> _Paid Plans:_ renew for the same period unless either party gives 30 days' written notice before the current period ends. |
|
||||
| Fees & Usage | _Free Plan:_ Subscription Fee = $0.<br/>_Paid Plans:_ Fees stated in the Order Form or online checkout, invoiced monthly, **plus** Credits, credit-card charge upon online checkout. |
|
||||
| Payment Terms | _Monthly paid plans:_ credit-card charge on the billing date.<br/>_Annual paid plans:_ invoiced Net 30 (credit card optional).<br/>_Credits:_ credit-card charge upon online checkout. |
|
||||
| Credit Expiration. | Credits expire one calendar year after purchase |
|
||||
| General Liability Cap | The greater of (i) USD 100 and (ii) 1 × Fees paid or payable in the 12 months before the event giving rise to liability. |
|
||||
| Increased Cap / Unlimited Claims | None. |
|
||||
| Trial / Pilot | Self-service paid plans offer a 14-day free trial, with no subscription charge during the period. Credits are always charged, including during the free trial. |
|
||||
| Beta Features | None – only generally available features are provided. |
|
||||
| Security Standard | Roo Code is SOC2 Type 2 compliant and follows industry-standard security practices. |
|
||||
| Machine-Learning Use | Roo Code **does not** use Customer Content to train, fine-tune, or improve any ML or AI models. |
|
||||
| Data Processing Addendum (DPA) | GDPR/CCPA-ready DPA available upon written request. Subprocessors listed [here](/legal/subprocessors). |
|
||||
| Publicity / Logo Rights | Roo Code may identify Customer (name & logo) in marketing materials unless Customer opts out in writing. |
|
||||
|
||||
## 3. Modifications to the Standard Terms
|
||||
|
||||
1. **Section 1.6 (Machine Learning).**
|
||||
"Provider will not use Customer Content or Usage Data to train, fine-tune, or improve any machine-learning or AI model, except with Customer's prior written consent."
|
||||
|
||||
2. **Section 3 (Security).**
|
||||
Replace "reasonable" with "commercially reasonable."
|
||||
|
||||
3. **Section 4 (Fees & Payment).**
|
||||
Add usage-billing language above and delete any provision allowing unilateral fee increases.
|
||||
|
||||
4. **Section 5 (Term & Termination).**
|
||||
Insert auto-renewal and free-plan language above.
|
||||
|
||||
5. **Sections 7 (Trials / Betas) and any SLA references.**
|
||||
Deleted – Roo Code offers no pilots, betas, or SLA credits under these TOS.
|
||||
|
||||
6. **Section 12.12 (Publicity).**
|
||||
As reflected in the "Publicity / Logo Rights" row above.
|
||||
|
||||
## 4. Use of the Service
|
||||
|
||||
Customer may access and use the Service solely for its internal business purposes and subject to the Acceptable Use Policy in the Standard Terms.
|
||||
|
||||
## 5. Account Management & Termination
|
||||
|
||||
- **Self-service cancellation or downgrade.**
|
||||
Customer may cancel a Free Plan immediately, or cancel/downgrade a Paid Plan effective at the end of the current billing cycle, via the web dashboard.
|
||||
- Either party may otherwise terminate the Agreement as allowed under Section 5 of the Standard Terms.
|
||||
|
||||
## 6. Privacy & Data
|
||||
|
||||
Roo Code's Privacy Notice ([https://roocode.com/privacy](https://roocode.com/privacy)) explains how Roo Code collects and handles personal information. If Customer requires a DPA, email [support@roocode.com](mailto:support@roocode.com).
|
||||
|
||||
## 7. Warranty Disclaimer
|
||||
|
||||
Except as expressly stated in the Agreement, the Service is provided **"as is,"** and all implied warranties are disclaimed to the maximum extent allowed by law.
|
||||
|
||||
## 8. Limitation of Liability
|
||||
|
||||
The caps in Section 2 apply to all claims under the Agreement, whether in contract, tort, or otherwise, except for Excluded Claims defined in the Standard Terms.
|
||||
|
||||
## 9. Miscellaneous
|
||||
|
||||
1. **Assignment.**
|
||||
Customer may not assign the Agreement without Roo Code's prior written consent, except to a successor in a merger or sale of substantially all assets.
|
||||
|
||||
2. **Export Compliance.**
|
||||
Each party will comply with all applicable export-control laws and regulations and will not export or re-export any software or technical data without the required government licences.
|
||||
|
||||
3. **Entire Agreement.**
|
||||
The Agreement supersedes all prior or contemporaneous agreements for the Service.
|
||||
|
||||
4. **Amendments.**
|
||||
Roo Code may update these TOS by posting a revised version at the same URL and emailing or in-app notifying Customer at least 30 days before changes take effect. Continued use after the effective date constitutes acceptance.
|
||||
|
||||
## 10. Contact
|
||||
|
||||
**Roo Code, Inc.**
|
||||
98 Graceland Dr, San Rafael, CA 94901 USA
|
||||
Email: [support@roocode.com](mailto:support@roocode.com)
|
||||
|
|
@ -38,8 +38,13 @@ export function NavBar({ stars, downloads }: NavBarProps) {
|
|||
<ScrollButton
|
||||
targetId="product"
|
||||
className="text-muted-foreground px-4 py-6 transition-transform duration-200 hover:scale-105 hover:text-foreground max-lg:hidden">
|
||||
Product
|
||||
Extension
|
||||
</ScrollButton>
|
||||
<Link
|
||||
href="/cloud"
|
||||
className="text-muted-foreground px-4 py-6 transition-transform duration-200 hover:scale-105 hover:text-foreground">
|
||||
Cloud
|
||||
</Link>
|
||||
<a
|
||||
href={EXTERNAL_LINKS.DOCUMENTATION}
|
||||
target="_blank"
|
||||
|
|
@ -140,8 +145,14 @@ export function NavBar({ stars, downloads }: NavBarProps) {
|
|||
targetId="product"
|
||||
className="block w-full p-5 py-3 text-left text-foreground active:opacity-50"
|
||||
onClick={() => setIsMenuOpen(false)}>
|
||||
Product
|
||||
Extension
|
||||
</ScrollButton>
|
||||
<Link
|
||||
href="/cloud"
|
||||
className="block w-full p-5 text-left text-foreground active:opacity-50"
|
||||
onClick={() => setIsMenuOpen(false)}>
|
||||
Cloud
|
||||
</Link>
|
||||
<a
|
||||
href={EXTERNAL_LINKS.DOCUMENTATION}
|
||||
target="_blank"
|
||||
|
|
|
|||
76
pnpm-lock.yaml
generated
76
pnpm-lock.yaml
generated
|
|
@ -311,9 +311,18 @@ importers:
|
|||
react-icons:
|
||||
specifier: ^5.5.0
|
||||
version: 5.5.0(react@18.3.1)
|
||||
react-markdown:
|
||||
specifier: ^9.0.3
|
||||
version: 9.1.0(@types/react@18.3.23)(react@18.3.1)
|
||||
recharts:
|
||||
specifier: ^2.15.3
|
||||
version: 2.15.4(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
|
||||
rehype-raw:
|
||||
specifier: ^7.0.0
|
||||
version: 7.0.0
|
||||
remark-gfm:
|
||||
specifier: ^4.0.1
|
||||
version: 4.0.1
|
||||
tailwind-merge:
|
||||
specifier: ^3.3.0
|
||||
version: 3.3.0
|
||||
|
|
@ -4061,9 +4070,6 @@ packages:
|
|||
'@types/node@20.17.57':
|
||||
resolution: {integrity: sha512-f3T4y6VU4fVQDKVqJV4Uppy8c1p/sVvS3peyqxyWnzkqXFJLRU7Y1Bl7rMS1Qe9z0v4M6McY0Fp9yBsgHJUsWQ==}
|
||||
|
||||
'@types/node@20.19.19':
|
||||
resolution: {integrity: sha512-pb1Uqj5WJP7wrcbLU7Ru4QtA0+3kAXrkutGiD26wUKzSMgNNaPARTUDQmElUXp64kh3cWdou3Q0C7qwwxqSFmg==}
|
||||
|
||||
'@types/node@24.2.1':
|
||||
resolution: {integrity: sha512-DRh5K+ka5eJic8CjH7td8QpYEV6Zo10gfRkjHCO3weqZHWDtAaSTFtl4+VMqOJ4N5jcuhZ9/l+yy8rVgw7BQeQ==}
|
||||
|
||||
|
|
@ -6351,12 +6357,18 @@ packages:
|
|||
hast-util-parse-selector@4.0.0:
|
||||
resolution: {integrity: sha512-wkQCkSYoOGCRKERFWcxMVMOcYE2K1AaNLU8DXS9arxnLOUEWbOXKXiJUNzEpqZ3JOKpnha3jkFrumEjVliDe7A==}
|
||||
|
||||
hast-util-raw@9.1.0:
|
||||
resolution: {integrity: sha512-Y8/SBAHkZGoNkpzqqfCldijcuUKh7/su31kEBp67cFY09Wy0mTRgtsLYsiIxMJxlu0f6AA5SUTbDR8K0rxnbUw==}
|
||||
|
||||
hast-util-to-html@9.0.5:
|
||||
resolution: {integrity: sha512-OguPdidb+fbHQSU4Q4ZiLKnzWo8Wwsf5bZfbvu7//a9oTYoqD/fWpe96NuHkoS9h0ccGOTe0C4NGXdtS0iObOw==}
|
||||
|
||||
hast-util-to-jsx-runtime@2.3.6:
|
||||
resolution: {integrity: sha512-zl6s8LwNyo1P9uw+XJGvZtdFF1GdAkOg8ujOw+4Pyb76874fLps4ueHXDhXWdk6YHQ6OgUtinliG7RsYvCbbBg==}
|
||||
|
||||
hast-util-to-parse5@8.0.0:
|
||||
resolution: {integrity: sha512-3KKrV5ZVI8if87DVSi1vDeByYrkGzg4mEfeu4alwgmmIeARiBLKCZS2uw5Gb6nU9x9Yufyj3iudm6i7nl52PFw==}
|
||||
|
||||
hast-util-to-text@4.0.2:
|
||||
resolution: {integrity: sha512-KK6y/BN8lbaq654j7JgBydev7wuNMcID54lkRav1P0CaE1e47P72AWWPiGKXTJU271ooYzcvTAn/Zt0REnvc7A==}
|
||||
|
||||
|
|
@ -8287,6 +8299,9 @@ packages:
|
|||
property-information@5.6.0:
|
||||
resolution: {integrity: sha512-YUHSPk+A30YPv+0Qf8i9Mbfe/C0hdPXk1s1jPVToV8pk8BQtpw10ct89Eo7OWkutrwqvT0eicAxlOg3dOAu8JA==}
|
||||
|
||||
property-information@6.5.0:
|
||||
resolution: {integrity: sha512-PgTgs/BlvHxOu8QuEN7wi5A0OmXaBcHpmCSTehcs6Uuu9IkDIEo13Hy7n898RHfrQ49vKCoGeWZSaAK01nwVig==}
|
||||
|
||||
property-information@7.1.0:
|
||||
resolution: {integrity: sha512-TwEZ+X+yCJmYfL7TPUOcvBZ4QfoT5YenQiJuX//0th53DE6w0xxLEtfK3iyryQFddXuvkIk51EEgrJQ0WJkOmQ==}
|
||||
|
||||
|
|
@ -8580,6 +8595,9 @@ packages:
|
|||
rehype-katex@7.0.1:
|
||||
resolution: {integrity: sha512-OiM2wrZ/wuhKkigASodFoo8wimG3H12LWQaH8qSPVJn9apWKFSH3YOCtbKpBorTVw/eI7cuT21XBbvwEswbIOA==}
|
||||
|
||||
rehype-raw@7.0.0:
|
||||
resolution: {integrity: sha512-/aE8hCfKlQeA8LmyeyQvQF3eBiLRGNlfBJEvWH7ivp9sBqs7TNqBL5X3v157rM4IFETqDnIOO+z5M/biZbo9Ww==}
|
||||
|
||||
rehype-react@6.2.1:
|
||||
resolution: {integrity: sha512-f9KIrjktvLvmbGc7si25HepocOg4z0MuNOtweigKzBcDjiGSTGhyz6VSgaV5K421Cq1O+z4/oxRJ5G9owo0KVg==}
|
||||
|
||||
|
|
@ -9521,9 +9539,6 @@ packages:
|
|||
undici-types@6.19.8:
|
||||
resolution: {integrity: sha512-ve2KP6f/JnbPBFyobGHuerC9g1FYGn/F8n1LWTwNxCEzd6IfqTwUQcNXgEtmmQ6DlRrC1hrSrBnCZPokRrDHjw==}
|
||||
|
||||
undici-types@6.21.0:
|
||||
resolution: {integrity: sha512-iwDZqg0QAGrg9Rav5H4n0M64c3mkR59cJ6wQp+7C4nI0gsmExaedaYLNO44eT4AtBBwjbTiGPMlt2Md0T9H9JQ==}
|
||||
|
||||
undici-types@7.10.0:
|
||||
resolution: {integrity: sha512-t5Fy/nfn+14LuOc2KNYg75vZqClpAiqscVvMygNnlsHBFpSXdJaYtXMcdNLpl/Qvc3P2cB3s6lOV51nqsFq4ag==}
|
||||
|
||||
|
|
@ -13662,11 +13677,6 @@ snapshots:
|
|||
dependencies:
|
||||
undici-types: 6.19.8
|
||||
|
||||
'@types/node@20.19.19':
|
||||
dependencies:
|
||||
undici-types: 6.21.0
|
||||
optional: true
|
||||
|
||||
'@types/node@24.2.1':
|
||||
dependencies:
|
||||
undici-types: 7.10.0
|
||||
|
|
@ -13736,7 +13746,7 @@ snapshots:
|
|||
|
||||
'@types/ws@8.18.1':
|
||||
dependencies:
|
||||
'@types/node': 20.19.19
|
||||
'@types/node': 24.2.1
|
||||
optional: true
|
||||
|
||||
'@types/yargs-parser@21.0.3': {}
|
||||
|
|
@ -13909,7 +13919,7 @@ snapshots:
|
|||
sirv: 3.0.1
|
||||
tinyglobby: 0.2.14
|
||||
tinyrainbow: 2.0.0
|
||||
vitest: 3.2.4(@types/debug@4.1.12)(@types/node@24.2.1)(@vitest/ui@3.2.4)(jiti@2.4.2)(jsdom@26.1.0)(lightningcss@1.30.1)(tsx@4.19.4)(yaml@2.8.0)
|
||||
vitest: 3.2.4(@types/debug@4.1.12)(@types/node@20.17.57)(@vitest/ui@3.2.4)(jiti@2.4.2)(jsdom@26.1.0)(lightningcss@1.30.1)(tsx@4.19.4)(yaml@2.8.0)
|
||||
|
||||
'@vitest/utils@3.2.4':
|
||||
dependencies:
|
||||
|
|
@ -15021,7 +15031,6 @@ snapshots:
|
|||
debug@4.4.3:
|
||||
dependencies:
|
||||
ms: 2.1.3
|
||||
optional: true
|
||||
|
||||
decamelize@1.2.0: {}
|
||||
|
||||
|
|
@ -16291,6 +16300,22 @@ snapshots:
|
|||
dependencies:
|
||||
'@types/hast': 3.0.4
|
||||
|
||||
hast-util-raw@9.1.0:
|
||||
dependencies:
|
||||
'@types/hast': 3.0.4
|
||||
'@types/unist': 3.0.3
|
||||
'@ungap/structured-clone': 1.3.0
|
||||
hast-util-from-parse5: 8.0.3
|
||||
hast-util-to-parse5: 8.0.0
|
||||
html-void-elements: 3.0.0
|
||||
mdast-util-to-hast: 13.2.0
|
||||
parse5: 7.3.0
|
||||
unist-util-position: 5.0.0
|
||||
unist-util-visit: 5.0.0
|
||||
vfile: 6.0.3
|
||||
web-namespaces: 2.0.1
|
||||
zwitch: 2.0.4
|
||||
|
||||
hast-util-to-html@9.0.5:
|
||||
dependencies:
|
||||
'@types/hast': 3.0.4
|
||||
|
|
@ -16325,6 +16350,16 @@ snapshots:
|
|||
transitivePeerDependencies:
|
||||
- supports-color
|
||||
|
||||
hast-util-to-parse5@8.0.0:
|
||||
dependencies:
|
||||
'@types/hast': 3.0.4
|
||||
comma-separated-tokens: 2.0.3
|
||||
devlop: 1.1.0
|
||||
property-information: 6.5.0
|
||||
space-separated-tokens: 2.0.2
|
||||
web-namespaces: 2.0.1
|
||||
zwitch: 2.0.4
|
||||
|
||||
hast-util-to-text@4.0.2:
|
||||
dependencies:
|
||||
'@types/hast': 3.0.4
|
||||
|
|
@ -17722,7 +17757,7 @@ snapshots:
|
|||
micromark@4.0.2:
|
||||
dependencies:
|
||||
'@types/debug': 4.1.12
|
||||
debug: 4.4.1(supports-color@8.1.1)
|
||||
debug: 4.4.3
|
||||
decode-named-character-reference: 1.1.0
|
||||
devlop: 1.1.0
|
||||
micromark-core-commonmark: 2.0.3
|
||||
|
|
@ -18519,6 +18554,8 @@ snapshots:
|
|||
dependencies:
|
||||
xtend: 4.0.2
|
||||
|
||||
property-information@6.5.0: {}
|
||||
|
||||
property-information@7.1.0: {}
|
||||
|
||||
proxy-addr@2.0.7:
|
||||
|
|
@ -18919,6 +18956,12 @@ snapshots:
|
|||
unist-util-visit-parents: 6.0.1
|
||||
vfile: 6.0.3
|
||||
|
||||
rehype-raw@7.0.0:
|
||||
dependencies:
|
||||
'@types/hast': 3.0.4
|
||||
hast-util-raw: 9.1.0
|
||||
vfile: 6.0.3
|
||||
|
||||
rehype-react@6.2.1:
|
||||
dependencies:
|
||||
'@mapbox/hast-util-table-cell-style': 0.2.1
|
||||
|
|
@ -20011,9 +20054,6 @@ snapshots:
|
|||
|
||||
undici-types@6.19.8: {}
|
||||
|
||||
undici-types@6.21.0:
|
||||
optional: true
|
||||
|
||||
undici-types@7.10.0: {}
|
||||
|
||||
undici@6.21.3: {}
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue