replicas-cli 0.3.111 → 0.3.114
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/index.cjs +23 -30
- package/package.json +1 -1
package/dist/index.cjs
CHANGED
|
@@ -24490,7 +24490,7 @@ Use this workflow to make a repository fully usable by Replicas background agent
|
|
|
24490
24490
|
|
|
24491
24491
|
## Mental model
|
|
24492
24492
|
|
|
24493
|
-
Every Replicas workspace is a remote Linux VM. Repositories are cloned under \`~/workspaces/<repo-name>\`. An **environment** is the org-scoped template a workspace is built from. It
|
|
24493
|
+
Every Replicas workspace is a remote Linux VM. Repositories are cloned under \`~/workspaces/<repo-name>\`. An **environment** is the org-scoped template a workspace is built from. It lists the repositories to clone, in checkout order (one, several for multi-repo stacks, or none), and carries:
|
|
24494
24494
|
|
|
24495
24495
|
| Piece | When it runs | Put here |
|
|
24496
24496
|
| --- | --- | --- |
|
|
@@ -24597,7 +24597,7 @@ Design from what you verified, not from what the README promises.
|
|
|
24597
24597
|
|
|
24598
24598
|
**Variables** \u2014 every key the application or hooks need, with a one-line description and whether it is required to run locally. Keys only, never values.
|
|
24599
24599
|
|
|
24600
|
-
**Automations** \u2014 the set that should exist for this repository after saving,
|
|
24600
|
+
**Automations** \u2014 the set that should exist for this repository after saving. Propose only what the repository shows the team would use, like a chore people repeat or a check reviewers keep asking for. Each run uses a workspace, so zero new ones is a fine answer. Each entry has a \`key\` and an \`action\`. \`create\` (the default) adds a new automation and needs a name, one-sentence description, a complete prompt an agent can execute unattended, and triggers. For an automation that already exists, pass its \`automation_id\` and a one-sentence \`note\` the reviewer sees next to it, then choose: \`update\` rewrites it with the full new content (also how you replace it with something better, under a new name if needed), \`keep\` leaves it untouched, \`disable\` turns it off. Every automation already attached to the environment must appear with one of those three; ones you leave out are not shown to the reviewer. Ideas, if the evidence supports them: pull request review focused on this codebase's conventions (\`pull_request.opened\` + \`pull_request.synchronize\`), nightly or weekly health checks (cron), documentation sync when code changes, dependency or security review, flaky-test triage.
|
|
24601
24601
|
|
|
24602
24602
|
Trigger shapes:
|
|
24603
24603
|
|
|
@@ -24849,7 +24849,7 @@ gh pr review 123 --request-changes --body "Changes needed"
|
|
|
24849
24849
|
|
|
24850
24850
|
## Media in GitHub workflows
|
|
24851
24851
|
|
|
24852
|
-
Media delivery is owned by \`references/MEDIA.md\`. Read it before adding screenshots, GIFs, recordings, diagrams, or HTML reports to a pull request, issue, review comment, or commit; it covers when to use a GIF instead of screenshots, the public links every image upload prints, recording previews, organization-only HTML links
|
|
24852
|
+
Media delivery is owned by \`references/MEDIA.md\`. Read it before adding screenshots, GIFs, recordings, diagrams, or HTML reports to a pull request, issue, review comment, or commit; it covers when to use a GIF instead of screenshots, the public links every image upload prints, recording previews, and organization-only HTML links.
|
|
24853
24853
|
`;
|
|
24854
24854
|
var GITHUB_ABILITY = {
|
|
24855
24855
|
label: "GitHub",
|
|
@@ -24911,7 +24911,7 @@ await replicas.gitlab.request('/projects/group%2Frepo/pipelines', {
|
|
|
24911
24911
|
|
|
24912
24912
|
## Descriptions and media
|
|
24913
24913
|
|
|
24914
|
-
API updates replace the entire merge request description, so always preserve the required Replicas footer and co-author trailers. Media delivery is owned by \`references/MEDIA.md\`; read its GitLab section before adding media so the original bytes are uploaded to Replicas and GitLab
|
|
24914
|
+
API updates replace the entire merge request description, so always preserve the required Replicas footer and co-author trailers. Media delivery is owned by \`references/MEDIA.md\`; read its GitLab section before adding media so the original bytes are uploaded to Replicas and GitLab.
|
|
24915
24915
|
`;
|
|
24916
24916
|
var GITLAB_ABILITY = {
|
|
24917
24917
|
label: "GitLab",
|
|
@@ -24971,7 +24971,7 @@ var REFERENCE6 = `# GPU sandboxes
|
|
|
24971
24971
|
## One-shot runs
|
|
24972
24972
|
|
|
24973
24973
|
\`\`\`bash
|
|
24974
|
-
replicas gpu run --
|
|
24974
|
+
replicas gpu run --pull outputs -- python train.py
|
|
24975
24975
|
\`\`\`
|
|
24976
24976
|
|
|
24977
24977
|
This starts a sandbox, copies the current directory to \`${COMPUTE_SANDBOX_WORKDIR}\` (git repositories honor \`.gitignore\`), streams the command's output, copies \`${COMPUTE_SANDBOX_WORKDIR}/outputs\` back to \`./outputs\`, stops the sandbox, and exits with the command's exit code. Add \`--keep\` to leave it running.
|
|
@@ -24979,7 +24979,7 @@ This starts a sandbox, copies the current directory to \`${COMPUTE_SANDBOX_WORKD
|
|
|
24979
24979
|
## Interactive sessions
|
|
24980
24980
|
|
|
24981
24981
|
\`\`\`bash
|
|
24982
|
-
replicas gpu create
|
|
24982
|
+
replicas gpu create # waits until running
|
|
24983
24983
|
replicas gpu push # . -> ${COMPUTE_SANDBOX_WORKDIR}
|
|
24984
24984
|
replicas gpu exec -- nvidia-smi
|
|
24985
24985
|
replicas gpu exec -- pip install -r requirements.txt
|
|
@@ -24997,7 +24997,7 @@ replicas gpu delete
|
|
|
24997
24997
|
|
|
24998
24998
|
## Choosing hardware and images
|
|
24999
24999
|
|
|
25000
|
-
- GPUs
|
|
25000
|
+
- GPUs, picked with \`--gpu\`: ${GPU_TYPES.join(", ")} (default ${DEFAULT_GPU_TYPE}). Add a count for multi-GPU, e.g. \`H100:4\` (max ${COMPUTE_SANDBOX_LIMITS.maxGpuCount}). Pick the smallest GPU that fits: T4/L4 for small models and smoke tests, A100/H100 for real training.
|
|
25001
25001
|
- Default image: \`${DEFAULT_GPU_IMAGE}\`. Pass any public registry image with \`--image\`; the first start of a new image takes a few minutes to pull.
|
|
25002
25002
|
- The sandbox has internet access. Download datasets and weights inside it rather than pushing them; pushes and pulls are capped at ${COMPUTE_SANDBOX_LIMITS.maxTransferBytes / 1024 ** 3} GiB.
|
|
25003
25003
|
|
|
@@ -25190,22 +25190,13 @@ ffmpeg is baked into the workspace image. If it's missing, install it with \`sud
|
|
|
25190
25190
|
|
|
25191
25191
|
### Before and after
|
|
25192
25192
|
|
|
25193
|
-
|
|
25194
|
-
|
|
25195
|
-
\`\`\`markdown
|
|
25196
|
-
The menu should open on its trigger. Before, it jumps about 95px up in half the openings.
|
|
25197
|
-
|
|
25198
|
-
| Before | After |
|
|
25199
|
-
| --- | --- |
|
|
25200
|
-
|  |  |
|
|
25201
|
-
| [View in Replicas](<before-dashboard-url>) | [View in Replicas](<after-dashboard-url>) |
|
|
25202
|
-
\`\`\`
|
|
25193
|
+
Make comparisons easy to see at a glance, whether it's before and after or options to pick from. Capture each version the same way, so only the change differs, and say in one line what to look for. Crop to the part that changed, keep every version big enough to read, and make it clear which is which. Avoid tall full-page screenshots; at PR width the change is too small to see. A new feature usually only needs the after. For screenshots, a small HTML page with the crops, screenshotted at 2x, works well. For GIFs, a two-column Markdown table works well.
|
|
25203
25194
|
|
|
25204
25195
|
## When to upload
|
|
25205
25196
|
|
|
25206
25197
|
Upload to Replicas in these cases \u2014 and **only** these cases:
|
|
25207
25198
|
|
|
25208
|
-
1. **Media you
|
|
25199
|
+
1. **Media you show the user.** A screenshot, screen recording, generated diagram, audio clip, or HTML page, once you decide to show it to the user or share it. Screenshots you take only to check your own work stay local. Upload before you delete the file or send it anywhere else. This applies even when you're also sending the file to Slack, Linear, GitHub, or GitLab.
|
|
25209
25200
|
2. **Files the user explicitly asks you to upload.** If the user sends or points at a file (image, video, audio, HTML) and asks you to upload it, run \`replicas media upload\`. Otherwise leave it alone \u2014 files in the workspace the user did not ask about should not be auto-uploaded as media.
|
|
25210
25201
|
3. **Anything you plan to share externally (Slack, Linear, GitHub, GitLab, etc.).** Upload to Replicas first, then follow the destination's delivery path below.
|
|
25211
25202
|
|
|
@@ -25218,7 +25209,7 @@ If none of these apply, don't upload.
|
|
|
25218
25209
|
1. First, run \`replicas media upload\` with the original file. Do not begin any destination upload until the command succeeds. This creates the canonical dashboard copy and prints an embed plus a per-file dashboard link. Every image gets a public link, so its printed embed works in chat and on GitHub.
|
|
25219
25210
|
2. Include the printed embed line in the Replicas chat reply. HTML uses its printed page link instead of an image embed.
|
|
25220
25211
|
3. Identify every destination in the task and use its inline representation from the table below. Slack, Linear, and GitLab require an upload of the same original bytes; GitHub uses the image's printed public embed.
|
|
25221
|
-
4.
|
|
25212
|
+
4. On Slack and Linear, put the **View in Replicas** dashboard link next to the destination embed as a secondary link. GitHub and GitLab need only the embed.
|
|
25222
25213
|
5. Check each destination response. If its upload or public link fails, say so explicitly and keep the dashboard link; never claim that a dashboard link is an inline embed.
|
|
25223
25214
|
|
|
25224
25215
|
| Destination | Required file delivery | Inline result |
|
|
@@ -25321,9 +25312,9 @@ Never reply with only dashboard links (for example a "Links:" list of \`?mode=me
|
|
|
25321
25312
|
After \`replicas media upload\` succeeds, external delivery has two required follow-up steps for every file:
|
|
25322
25313
|
|
|
25323
25314
|
1. **Use the destination's inline representation:** upload the raw bytes to Slack, Linear, or GitLab; embed the image's printed public link on GitHub.
|
|
25324
|
-
2. **
|
|
25315
|
+
2. **On Slack and Linear, link the Replicas dashboard deep link** (\`?mode=media&media=<id>\` form) so the user can jump straight to the file in the workspace. On GitHub and GitLab, the embed is enough.
|
|
25325
25316
|
|
|
25326
|
-
A dashboard link alone is
|
|
25317
|
+
A dashboard link alone is never enough.
|
|
25327
25318
|
|
|
25328
25319
|
Slack, Linear, and GitLab receive the original bytes through their native upload APIs. GitHub uses the printed public link for screenshots and recording previews.
|
|
25329
25320
|
|
|
@@ -25438,7 +25429,7 @@ Replicas authenticates GitHub with GitHub App tokens, which GitHub's attachment
|
|
|
25438
25429
|
replicas media upload /tmp/screenshot.png --name "PR screenshot"
|
|
25439
25430
|
\`\`\`
|
|
25440
25431
|
|
|
25441
|
-
2. Copy the printed \`\` line verbatim into the body file
|
|
25432
|
+
2. Copy the printed \`\` line verbatim into the body file. Never use a local file path, a \`/v1/media/<id>\` URL, a Linear \`assetUrl\`, or an expiring storage URL.
|
|
25442
25433
|
3. Create or update the PR using the body file:
|
|
25443
25434
|
|
|
25444
25435
|
\`\`\`bash
|
|
@@ -25461,7 +25452,7 @@ Do **not** commit screenshots to the repo, use placeholder URLs, expose the auth
|
|
|
25461
25452
|
|
|
25462
25453
|
### GitLab: native inline screenshots and videos
|
|
25463
25454
|
|
|
25464
|
-
GitLab supports native project Markdown uploads. For a GitLab destination, always upload the media to Replicas first, then POST the same original file to the repository's \`/projects/:id/uploads\` API using the workspace GitLab credential. Insert the returned \`markdown\` value into the merge request body or comment
|
|
25455
|
+
GitLab supports native project Markdown uploads. For a GitLab destination, always upload the media to Replicas first, then POST the same original file to the repository's \`/projects/:id/uploads\` API using the workspace GitLab credential. Insert the returned \`markdown\` value into the merge request body or comment. Image uploads render inline; MP4, MOV, and WebM uploads render as inline video players.
|
|
25465
25456
|
|
|
25466
25457
|
Do not use a Replicas public link for GitLab when the native project upload succeeds; native uploads preserve project access controls. \`replicas.gitlab.request\` only sends JSON and cannot POST multipart file bytes, so without another supported upload path use the GitHub flow above instead: the image's printed public embed, and a poster linked to the recording's **View in Replicas** URL.
|
|
25467
25458
|
|
|
@@ -25644,7 +25635,7 @@ Use this when:
|
|
|
25644
25635
|
- The user asks to analyze text with Pangram`;
|
|
25645
25636
|
var REFERENCE10 = `# Plugins
|
|
25646
25637
|
|
|
25647
|
-
Plugins are TypeScript libraries, not MCP servers. Import \`@replicas/sdk\`; Replicas authenticates the workspace and
|
|
25638
|
+
Plugins are TypeScript libraries, not MCP servers. Import \`@replicas/sdk\`; Replicas authenticates the workspace and uses the connection from the most specific environment in the workspace's fork chain. Provider credentials, sessions, and project keys are never exposed.
|
|
25648
25639
|
|
|
25649
25640
|
Plugin tools may read or write provider data according to the connected account's permissions. Only execute write or destructive tools when they match the user's request.
|
|
25650
25641
|
|
|
@@ -25657,7 +25648,7 @@ const plugins = await replicas.plugins.list();
|
|
|
25657
25648
|
const installed = plugins.filter((plugin) => plugin.connected);
|
|
25658
25649
|
\`\`\`
|
|
25659
25650
|
|
|
25660
|
-
If listing returns a 5xx or \`Internal server error\`, skip it and use the known plugin's search, describe, or direct SDK API. Listing failure does not mean the plugin is disconnected. Only ask the user to connect it when the direct gateway reports missing credentials or an unrecoverable authentication failure. A connection on
|
|
25651
|
+
If listing returns a 5xx or \`Internal server error\`, skip it and use the known plugin's search, describe, or direct SDK API. Listing failure does not mean the plugin is disconnected. Only ask the user to connect it when the direct gateway reports missing credentials or an unrecoverable authentication failure. A connection on an environment reaches its forks unless a fork connects its own.
|
|
25661
25652
|
|
|
25662
25653
|
## Search, inspect, execute
|
|
25663
25654
|
|
|
@@ -25933,7 +25924,7 @@ In agent mode the CLI hides commands that don't make sense for in-workspace agen
|
|
|
25933
25924
|
|
|
25934
25925
|
## Environments
|
|
25935
25926
|
|
|
25936
|
-
Environments are the org-scoped *primitives* workspaces are built from. Each environment
|
|
25927
|
+
Environments are the org-scoped *primitives* workspaces are built from. Each environment lists the repositories to clone (none is fine) and carries environment variables, project files, enabled skills, and MCP servers. A fork inherits everything from its parent environment and stores only its own overrides. The org's default environment is used for Scout. Slack or Linear requests that don't name one use the requester's own default environment, falling back to the org default.
|
|
25937
25928
|
|
|
25938
25929
|
### List / get / create / edit / delete
|
|
25939
25930
|
|
|
@@ -25942,17 +25933,18 @@ replicas environment list
|
|
|
25942
25933
|
replicas environment get <id-or-name>
|
|
25943
25934
|
replicas environment create [name] \\
|
|
25944
25935
|
--description "..." \\
|
|
25945
|
-
--repository <repo-
|
|
25936
|
+
--repository <repo-names-or-ids> \\
|
|
25946
25937
|
--system-prompt "..."
|
|
25947
25938
|
replicas environment edit <id-or-name> \\
|
|
25948
25939
|
--name "..." --description "..." \\
|
|
25949
|
-
--repository <repo-
|
|
25940
|
+
--repository <repo-names-or-ids>
|
|
25950
25941
|
replicas environment delete <id-or-name> [--force]
|
|
25951
25942
|
\`\`\`
|
|
25952
25943
|
|
|
25953
25944
|
Notes:
|
|
25954
25945
|
- Environments resolve by **name or UUID**. A fork inherits its parent's setup and can override or hide any of it.
|
|
25955
|
-
-
|
|
25946
|
+
- \`--repository\` takes a comma-separated list; pass an empty string to \`edit\` to remove all repositories.
|
|
25947
|
+
- Without \`--repository\`, \`create\` prompts in a terminal and otherwise creates an environment with no repositories, which backs repo-less workspaces.
|
|
25956
25948
|
|
|
25957
25949
|
### Environment variables
|
|
25958
25950
|
|
|
@@ -26379,6 +26371,7 @@ var DEFAULT_USER_PREFERENCES = {
|
|
|
26379
26371
|
auto_draft_prs: false,
|
|
26380
26372
|
open_prs_in_graphite: false,
|
|
26381
26373
|
open_links_in_desktop_app: false,
|
|
26374
|
+
port_forwarding: false,
|
|
26382
26375
|
memory_enabled: null,
|
|
26383
26376
|
subagent_mcp_enabled: null,
|
|
26384
26377
|
default_fast_mode: false,
|
|
@@ -28730,7 +28723,7 @@ var headlessAgentRequestSchema = external_exports.object({
|
|
|
28730
28723
|
});
|
|
28731
28724
|
|
|
28732
28725
|
// ../shared/src/cli-version.ts
|
|
28733
|
-
var CLI_VERSION = "0.3.
|
|
28726
|
+
var CLI_VERSION = "0.3.114";
|
|
28734
28727
|
|
|
28735
28728
|
// ../shared/src/version.ts
|
|
28736
28729
|
function compareVersions(v1, v2) {
|