| 1 | import type { DocsComputersDict } from "../types"; |
| 2 | |
| 3 | /** |
| 4 | * English reference dictionary for `app/[locale]/docs/computers/page.tsx` |
| 5 | * ("Send a task to the cloud"). Checked against docs/DAYTONA_CLOUD_DISPATCH.md |
| 6 | * and `DispatchArgs` / `run_with` in crates/cli/src/dispatch.rs. The sandbox |
| 7 | * vendor is Codewhale-operated infrastructure and is deliberately not named |
| 8 | * in user copy (DAYTONA_CLOUD_DISPATCH.md: no provider brand on any surface). |
| 9 | * The live network path is not yet smoke-tested, so the page says preview. |
| 10 | */ |
| 11 | export const docsComputers: DocsComputersDict = { |
| 12 | metaTitle: "Send a task to the cloud · Codewhale Docs", |
| 13 | metaDescription: |
| 14 | "Hand a coding task to a Codewhale cloud agent that works on a branch and opens a pull request — proposed first, started only when you confirm.", |
| 15 | bodyClassName: "text-ink-soft leading-relaxed", |
| 16 | title: "Send a task to the cloud", |
| 17 | lede: |
| 18 | "A cloud agent takes a task off your machine: it works in a fresh cloud sandbox, pushes a branch, and opens a pull request while you keep working locally. Nothing starts, costs money, or pushes until you confirm it.", |
| 19 | sections: [ |
| 20 | { |
| 21 | id: "status", |
| 22 | title: "Know what is ready", |
| 23 | blocks: [ |
| 24 | { |
| 25 | note: "Cloud agents are a preview. The full lifecycle is covered by offline tests, but the live path — a real sandbox and a real pull request on each forge — has not been verified end to end yet. Private repositories are not supported yet.", |
| 26 | }, |
| 27 | ], |
| 28 | }, |
| 29 | { |
| 30 | id: "before", |
| 31 | title: "Before you start", |
| 32 | blocks: [ |
| 33 | { |
| 34 | list: [ |
| 35 | "Sign in to your Codewhale account with `codewhale login`. Without it, a task can be proposed but not confirmed.", |
| 36 | "Make an account API key available as `CODEWHALE_API_KEY`, so the agent in the sandbox runs as your account. Without it, confirming is refused before anything is spent.", |
| 37 | "For GitHub, be signed in to the `gh` command-line tool; Codewhale uses that login to open the pull request.", |
| 38 | ], |
| 39 | }, |
| 40 | { code: "codewhale dispatch --status", lang: "Terminal" }, |
| 41 | { |
| 42 | p: "`--status` shows the forges found in your git remotes and whether the required credentials are present. It never prints a secret.", |
| 43 | }, |
| 44 | ], |
| 45 | }, |
| 46 | { |
| 47 | id: "send", |
| 48 | title: "Propose, then confirm", |
| 49 | blocks: [ |
| 50 | { |
| 51 | code: `codewhale dispatch "fix the flaky login test and open a PR" --remote github |
| 52 | codewhale dispatch --confirm cloud_<id>`, |
| 53 | lang: "Terminal", |
| 54 | }, |
| 55 | { |
| 56 | p: "The first command only writes a proposal and prints its id. The second starts it. Codewhale may propose a cloud task on its own, but it never confirms one. In a session, use `/dispatch <task>` and `/dispatch confirm <id>`.", |
| 57 | }, |
| 58 | { |
| 59 | p: "Once confirmed, the agent clones the repository into a new sandbox, does the work, pushes a new branch (never a force-push), and opens the pull request. The sandbox is deleted when the job finishes, fails, or is cancelled.", |
| 60 | }, |
| 61 | ], |
| 62 | }, |
| 63 | { |
| 64 | id: "track", |
| 65 | title: "Track or cancel a job", |
| 66 | blocks: [ |
| 67 | { |
| 68 | code: `codewhale dispatch --list |
| 69 | codewhale dispatch --show cloud_<id> |
| 70 | codewhale dispatch --cancel cloud_<id>`, |
| 71 | lang: "Terminal", |
| 72 | }, |
| 73 | { |
| 74 | p: "Cloud jobs also appear in `/jobs`. A job shows its progress, the branch, the pull request link once one exists, and how many minutes it ran — a runtime figure, not a bill. Cancelling tears the sandbox down right away.", |
| 75 | }, |
| 76 | ], |
| 77 | }, |
| 78 | { |
| 79 | id: "forge", |
| 80 | title: "Choose where the pull request goes", |
| 81 | blocks: [ |
| 82 | { |
| 83 | p: "Codewhale supports GitHub, CNB, and Gitee, and never assumes `origin` is GitHub. A remote named `github`, `cnb`, or `gitee` is that forge; any other remote is identified by its host. If your repository has more than one forge, pass `--remote`.", |
| 84 | }, |
| 85 | { |
| 86 | p: "If a pull request cannot be opened — for example, a forge token is missing — the job is marked failed after the push and says that no pull request was opened. It never reports a link it does not have.", |
| 87 | }, |
| 88 | ], |
| 89 | }, |
| 90 | ], |
| 91 | next: [ |
| 92 | { |
| 93 | href: "/docs/auth", |
| 94 | label: "Connect a provider", |
| 95 | note: "Sign in to your Codewhale account and manage keys.", |
| 96 | }, |
| 97 | { |
| 98 | href: "/docs/review", |
| 99 | label: "Review what changed", |
| 100 | note: "Review the agent's pull request before you merge it.", |
| 101 | }, |
| 102 | { |
| 103 | href: "/docs/fleet", |
| 104 | label: "Run a workflow", |
| 105 | note: "Run longer, multi-step work on your own machine instead.", |
| 106 | }, |
| 107 | ], |
| 108 | sourceNote: |
| 109 | "Source documents: docs/DAYTONA_CLOUD_DISPATCH.md, docs/CODEWHALE_AGENT.md · Update docs-map.ts when changing.", |
| 110 | }; |
| 111 |