| 1 | import type { DocsComputersDict } from "../types"; |
| 2 | |
| 3 | /** |
| 4 | * English reference dictionary for `app/[locale]/docs/computers/page.tsx`. |
| 5 | * Every statement is taken from docs/DAYTONA_CLOUD_DISPATCH.md and |
| 6 | * docs/CODEWHALE_AGENT.md; the commands, env names, and job states are |
| 7 | * code-owned literals typeset by the page. |
| 8 | */ |
| 9 | export const docsComputers: DocsComputersDict = { |
| 10 | metaTitle: "Cloud computers · Codewhale Docs", |
| 11 | metaDescription: |
| 12 | "How a local Codewhale session proposes, confirms, and tracks a cloud agent on a Daytona computer — explicit forges, fail-closed credentials, and what is not built yet.", |
| 13 | bodyClassName: "text-ink-soft leading-relaxed", |
| 14 | overviewTitle: "Cloud computers", |
| 15 | overviewLead: |
| 16 | "A local session can offload a coding task to a cloud computer the way an editor sends a cloud agent: the remote job raises a branch and is meant to open a pull request against an explicit forge. Local stays responsive. Spend and push never happen silently — a proposal is written first, and nothing creates a sandbox or pushes a branch until you confirm it.", |
| 17 | proposeTitle: "Propose, then confirm", |
| 18 | proposeLead: |
| 19 | "The first command writes a proposal and exits. The second confirms it by id. The TUI has the same two steps as slash commands, and the {cloudAgent} spelling is an alias of {dispatch}.", |
| 20 | jobsLead: |
| 21 | "Cloud jobs are first-class on the existing jobs surface as {kind}. List, show, and cancel them from the TUI or the CLI:", |
| 22 | remotesTitle: "Explicit forges", |
| 23 | remotesLead: |
| 24 | "A remote is never assumed to be GitHub. A remote named after a forge is that forge; any other remote is classified by its URL host. If more than one forge is present, pass {remoteFlag}.", |
| 25 | remotes: [ |
| 26 | ["github · cnb · gitee (by remote name)", "that forge, whatever the URL"], |
| 27 | ["origin or other → github.com", "github"], |
| 28 | ["origin or other → cnb.cool", "cnb"], |
| 29 | ["origin or other → gitee.com", "gitee"], |
| 30 | ], |
| 31 | enableTitle: "Enable a Daytona computer", |
| 32 | enableLead: |
| 33 | "Credentials live in the process environment or in the Codewhale secret store — never in config.toml or models.toml, and never committed.", |
| 34 | enableSteps: [ |
| 35 | ["Create an API key", "In the Daytona dashboard under API keys."], |
| 36 | [ |
| 37 | "Export it for the session", |
| 38 | "{apiKey}, optionally {apiUrl} for a non-default endpoint.", |
| 39 | ], |
| 40 | [ |
| 41 | "Or store it once", |
| 42 | "In the Codewhale secret slot {slot} (OS keyring or the $CODEWHALE_HOME secrets file). The {alias} alias is also accepted.", |
| 43 | ], |
| 44 | ], |
| 45 | cliNote: |
| 46 | "An installed daytona CLI is not a credential. {status} and a bare {bare} report CLI presence separately from credential presence.", |
| 47 | rulesTitle: "Fail-closed rules", |
| 48 | rules: [ |
| 49 | ["No confirm", "A {proposed} job is written; the command exits success; Daytona is not called; nothing is pushed."], |
| 50 | ["Confirm, no credentials", "A {refused} job is written; the command exits failure; no sandbox exists."], |
| 51 | [ |
| 52 | "Confirm with credentials", |
| 53 | "A Daytona sandbox is created, labelled with the job id and forge. This slice does not claim a GitHub, CNB, or Gitee PR URL, and a missing forge token fails closed the same way.", |
| 54 | ], |
| 55 | ], |
| 56 | membershipTitle: "Who can dispatch", |
| 57 | membershipLead: |
| 58 | "Managed Agent surfaces authenticate to the same Codewhale membership — the {login} account session. Membership gates cloud agents, not local dispatch: `codewhale dispatch` with Daytona and forge credentials needs no account. Provider brands stay internal, and installing or running the local runtime needs no account at all.", |
| 59 | leftoverTitle: "Not built yet", |
| 60 | leftover: [ |
| 61 | ["Live watch", "A log tail of a running sandbox."], |
| 62 | ["Cancel that tears down", "Cancelling a paid Daytona sandbox from the job surface."], |
| 63 | ["Auto-decide", "Codewhale may propose a dispatch; it must not confirm its own proposal."], |
| 64 | ["The remote runner", "The agent that actually raises the branch and opens the pull request."], |
| 65 | ], |
| 66 | sourceNote: |
| 67 | "Source documents: docs/DAYTONA_CLOUD_DISPATCH.md, docs/CODEWHALE_AGENT.md · Update docs-map.ts when changing.", |
| 68 | }; |
| 69 |