| 1 | /** |
| 2 | * product.ts — the copy for /product, the "what is this and what do I get" |
| 3 | * page behind the primary nav's first link. |
| 4 | * |
| 5 | * TRUTH CONTRACT: availability is stated per surface as it is today and |
| 6 | * mirrors the homepage's availability chapter and docs/public-surface-facts.json. |
| 7 | * Nothing here claims cloud execution; the web app is described as account |
| 8 | * sign-in plus a development preview; desktop is a development build. |
| 9 | * Counts (providers, tools, sandbox backends) come from the facts layer at |
| 10 | * render time, never typed here. |
| 11 | */ |
| 12 | |
| 13 | import type { LocalizedText } from "./vocabulary"; |
| 14 | |
| 15 | export interface ProductRow { |
| 16 | title: LocalizedText; |
| 17 | body: LocalizedText; |
| 18 | } |
| 19 | |
| 20 | export interface ProductAvailabilityRow { |
| 21 | surface: LocalizedText; |
| 22 | status: LocalizedText; |
| 23 | detail: LocalizedText; |
| 24 | /** Locale-relative route with the full story, or null. */ |
| 25 | href: string | null; |
| 26 | linkLabel: LocalizedText | null; |
| 27 | } |
| 28 | |
| 29 | export const PRODUCT_COPY = { |
| 30 | metadata: { |
| 31 | title: { en: "Product · Codewhale", zh: "产品 · Codewhale" }, |
| 32 | description: { |
| 33 | en: "Build projects, research questions, and automate tasks with agents that use your files, tools, and choice of models.", |
| 34 | zh: "用你选择的模型,让智能体利用文件和工具,帮你构建项目、研究问题、自动化任务。", |
| 35 | }, |
| 36 | }, |
| 37 | title: { |
| 38 | en: "Build and automate with your choice of models.", |
| 39 | zh: "用你选择的模型,创造与自动化。", |
| 40 | }, |
| 41 | lede: { |
| 42 | en: "Codewhale is an open-source agent that can read a project, edit files, run commands, and use connected tools. Direct the work from your terminal or local browser, choose the model, and keep the conversation and tool results in a saved session.", |
| 43 | zh: "Codewhale 是一个开源智能体,能够读取项目、编辑文件、运行命令并使用连接的工具。在终端或本地浏览器中指挥任务,选择模型,并将对话和工具结果保存在会话中。", |
| 44 | }, |
| 45 | |
| 46 | gainHeading: { en: "Models, teamwork, and control", zh: "模型、协作与控制" }, |
| 47 | gain: [ |
| 48 | { |
| 49 | title: { en: "Choose your models", zh: "选择你的模型" }, |
| 50 | body: { |
| 51 | en: "Connect a provider with your own API key or a supported sign-in flow, use a gateway, or run a local model server. Choose the model for each session.", |
| 52 | zh: "使用自己的 API 密钥或受支持的登录方式连接提供商,也可以使用网关或本地模型服务。为每个会话选择模型。", |
| 53 | }, |
| 54 | }, |
| 55 | { |
| 56 | title: { en: "Share the work", zh: "分工协作" }, |
| 57 | body: { |
| 58 | en: "Give parts of a larger task to agents with different models and roles. Save the team as a Fleet to use again.", |
| 59 | zh: "让不同模型和角色的智能体分担大型任务,将团队保存为 Fleet,方便下次使用。", |
| 60 | }, |
| 61 | }, |
| 62 | { |
| 63 | title: { en: "Set the permissions", zh: "设定权限" }, |
| 64 | body: { |
| 65 | en: "Choose the session mode and approval settings. Inspect tool calls and results, review file changes, interrupt work, and continue from a saved session.", |
| 66 | zh: "选择会话模式与审批设置,查看工具调用和结果、检查文件变更、随时中断,并从保存的会话继续工作。", |
| 67 | }, |
| 68 | }, |
| 69 | ] satisfies ProductRow[], |
| 70 | |
| 71 | availabilityHeading: { en: "Where to use Codewhale", zh: "在哪里使用 Codewhale" }, |
| 72 | availabilityLede: { |
| 73 | en: "The terminal and local browser client are available now. Desktop and hosted web apps are being developed around the same session model; their availability is separate. The terminal and local browser work without a Codewhale account. Hosted web and desktop access use an account, while the model connection remains your choice.", |
| 74 | zh: "终端与本地浏览器客户端现已可用,无需 Codewhale 账户。桌面和托管网页应用正基于同一会话模型开发,开放状态分别说明;访问这些应用需要账户,模型连接仍由你选择。", |
| 75 | }, |
| 76 | availability: [ |
| 77 | { |
| 78 | surface: { en: "Terminal", zh: "终端" }, |
| 79 | status: { en: "Released", zh: "已发布" }, |
| 80 | detail: { |
| 81 | en: "Install GitHub release binaries for Linux, macOS, and Windows. npm and Cargo are alternatives. Android on Termux is a preview. The interactive TUI and codewhale exec for scripts ship together.", |
| 82 | zh: "优先使用 GitHub Releases 中适用于 Linux、macOS、Windows 的二进制;npm 和 Cargo 为其他安装方式。Android 上的 Termux 为预览。交互式 TUI 与用于脚本的 codewhale exec 一同发布。", |
| 83 | }, |
| 84 | href: "/install", |
| 85 | linkLabel: { en: "Install guide", zh: "安装指南" }, |
| 86 | }, |
| 87 | { |
| 88 | surface: { en: "Local browser", zh: "本地浏览器" }, |
| 89 | status: { en: "Included with the terminal", zh: "随终端提供" }, |
| 90 | detail: { |
| 91 | en: "Run codewhale web to open Codewhale in your browser. Read conversations and tool results, send a task, and respond to approvals on your machine.", |
| 92 | zh: "运行 codewhale web,在浏览器中使用本机上的 Codewhale,查看对话与工具结果、发送任务并处理本机上的审批。", |
| 93 | }, |
| 94 | href: "/docs/web", |
| 95 | linkLabel: { en: "Local browser guide", zh: "本地浏览器指南" }, |
| 96 | }, |
| 97 | { |
| 98 | surface: { en: "Hosted web app", zh: "托管网页应用" }, |
| 99 | status: { en: "Development preview", zh: "开发预览" }, |
| 100 | detail: { |
| 101 | en: "Sign in with a Codewhale account and pair a computer in the development preview. Hosted task execution is still being qualified.", |
| 102 | zh: "开发预览版支持使用 Codewhale 账户登录并配对计算机。托管任务执行仍在验证中。", |
| 103 | }, |
| 104 | href: "/signin", |
| 105 | linkLabel: { en: "Sign in", zh: "登录" }, |
| 106 | }, |
| 107 | { |
| 108 | surface: { en: "Desktop", zh: "桌面端" }, |
| 109 | status: { en: "Development build", zh: "开发版本" }, |
| 110 | detail: { |
| 111 | en: "The macOS app brings folders, conversations, and model connections into a desktop window. A public download is coming later.", |
| 112 | zh: "macOS 应用将文件夹、对话和模型连接整合在桌面窗口中,将来会提供公开下载。", |
| 113 | }, |
| 114 | href: null, |
| 115 | linkLabel: null, |
| 116 | }, |
| 117 | { |
| 118 | surface: { en: "Cloud computers", zh: "云端计算机" }, |
| 119 | status: { en: "In development", zh: "开发中" }, |
| 120 | detail: { |
| 121 | en: "Hosted computers for running your tasks.", |
| 122 | zh: "用于运行任务的托管计算机。", |
| 123 | }, |
| 124 | href: null, |
| 125 | linkLabel: null, |
| 126 | }, |
| 127 | ] satisfies ProductAvailabilityRow[], |
| 128 | |
| 129 | controlHeading: { en: "Choose how your agents work", zh: "选择智能体的工作方式" }, |
| 130 | controlLede: { |
| 131 | en: "Use Plan to explore, Work to make changes, and Operate to coordinate agents. Approval settings control when actions need review.", |
| 132 | zh: "用 Plan 探索方案、Work 执行修改、Operate 协调智能体。审批设置决定哪些操作需要审核。", |
| 133 | }, |
| 134 | modes: [ |
| 135 | { title: { en: "Plan", zh: "Plan" }, body: { en: "Blocks file mutation and shell execution. Permitted research may contact external services; session state can still be saved.", zh: "禁止文件修改与 shell 执行。获准的研究可访问外部服务;会话状态仍可保存。" } }, |
| 136 | { title: { en: "Work", zh: "Work" }, body: { en: "Edits files and runs commands within the permission you set.", zh: "在你设定的权限内修改文件、运行命令。" } }, |
| 137 | { title: { en: "Operate", zh: "Operate" }, body: { en: "Runs a fleet: several agents on one job, each in its role.", zh: "调度 fleet:多个智能体各司其职,处理同一件事。" } }, |
| 138 | ] satisfies ProductRow[], |
| 139 | permissions: [ |
| 140 | { title: { en: "Ask", zh: "Ask" }, body: { en: "Prompts according to the active approval rules; saved permissions and hard policy boundaries still apply.", zh: "按当前审批规则询问;已保存的权限与强制策略边界仍然生效。" } }, |
| 141 | { title: { en: "Auto-Review", zh: "Auto-Review" }, body: { en: "Automatically reviews eligible actions and reports any action it cannot approve.", zh: "自动审核符合条件的操作,并报告无法批准的操作。" } }, |
| 142 | { title: { en: "Full Access", zh: "Full Access" }, body: { en: "Reduces approval prompts. It does not bypass hard policy boundaries or grant access outside the allowed scope.", zh: "减少审批提示,但不会绕过强制策略边界,也不会授予允许范围之外的访问权限。" } }, |
| 143 | ] satisfies ProductRow[], |
| 144 | |
| 145 | surfacesHeading: { en: "Use the tools that fit your work", zh: "选择适合工作的工具" }, |
| 146 | surfacesLede: { |
| 147 | en: "Tools let the agent act on a task: edit files, run a command, or use a connected service. Codewhale runs the agent and its tools locally, keeping the conversation and tool results together. Plugins use the permissions you grant.", |
| 148 | zh: "工具让智能体能够执行任务:编辑文件、运行命令或使用连接的服务。Codewhale 在本地运行智能体及其工具,将对话与工具结果保存在一起。插件在你授予的权限内工作。", |
| 149 | }, |
| 150 | surfacesLink: { en: "Explore integrations", zh: "查看集成" }, |
| 151 | |
| 152 | actions: { |
| 153 | install: { en: "Get Codewhale", zh: "获取 Codewhale" }, |
| 154 | models: { en: "See every provider", zh: "查看所有提供商" }, |
| 155 | docs: { en: "Read the docs", zh: "阅读文档" }, |
| 156 | }, |
| 157 | } as const; |
| 158 |