replicas-cli 0.3.113 → 0.3.115

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.
Files changed (2) hide show
  1. package/dist/index.cjs +15 -25
  2. package/package.json +1 -1
package/dist/index.cjs CHANGED
@@ -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, usually two to four. 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. Good candidates for new ones: 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. Only propose what the repository evidence supports.
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, and the required **View in Replicas** link.
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 and the dashboard link remains secondary.
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 --gpu H100 --pull outputs -- python train.py
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 --gpu A100-80GB --timeout 3h # waits until running
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: ${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.
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,24 +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
- Record both with the same steps, window size, and crop. Say in one line what to watch for, then put the GIFs side by side in a table, or in labeled sections when they are wide:
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
- | ![Language menu before fix](<before-gif-url>) | ![Language menu after fix](<after-gif-url>) |
25201
- | [View in Replicas](<before-dashboard-url>) | [View in Replicas](<after-dashboard-url>) |
25202
- \`\`\`
25203
-
25204
- Make comparisons easy to see at a glance, whether it's before and after or options to pick from. 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. For screenshots, a small HTML page with the crops, screenshotted at 2x, works well. For GIFs, the table above works.
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.
25205
25194
 
25206
25195
  ## When to upload
25207
25196
 
25208
25197
  Upload to Replicas in these cases \u2014 and **only** these cases:
25209
25198
 
25210
- 1. **Media you produce.** Any screenshot, screen recording, generated diagram, audio clip, or HTML page you create that the user might want to see. Upload before doing anything else with the file (analyzing, deleting, sending elsewhere). This applies even when you're also sending the file to Slack, Linear, GitHub, or GitLab.
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.
25211
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.
25212
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.
25213
25202
 
@@ -25220,7 +25209,7 @@ If none of these apply, don't upload.
25220
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.
25221
25210
  2. Include the printed embed line in the Replicas chat reply. HTML uses its printed page link instead of an image embed.
25222
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.
25223
- 4. Put the **View in Replicas** dashboard link next to the destination embed as a secondary link.
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.
25224
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.
25225
25214
 
25226
25215
  | Destination | Required file delivery | Inline result |
@@ -25323,9 +25312,9 @@ Never reply with only dashboard links (for example a "Links:" list of \`?mode=me
25323
25312
  After \`replicas media upload\` succeeds, external delivery has two required follow-up steps for every file:
25324
25313
 
25325
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.
25326
- 2. **Link the Replicas dashboard deep link** (\`?mode=media&media=<id>\` form) so the user can jump straight to the file in the workspace.
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.
25327
25316
 
25328
- A dashboard link alone is not enough. An embed without the dashboard link is not enough. Do both.
25317
+ A dashboard link alone is never enough.
25329
25318
 
25330
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.
25331
25320
 
@@ -25440,7 +25429,7 @@ Replicas authenticates GitHub with GitHub App tokens, which GitHub's attachment
25440
25429
  replicas media upload /tmp/screenshot.png --name "PR screenshot"
25441
25430
  \`\`\`
25442
25431
 
25443
- 2. Copy the printed \`![filename](<public-url>)\` line verbatim into the body file, followed by the matching **View in Replicas** link. Never use a local file path, a \`/v1/media/<id>\` URL, a Linear \`assetUrl\`, or an expiring storage URL.
25432
+ 2. Copy the printed \`![filename](<public-url>)\` 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.
25444
25433
  3. Create or update the PR using the body file:
25445
25434
 
25446
25435
  \`\`\`bash
@@ -25463,7 +25452,7 @@ Do **not** commit screenshots to the repo, use placeholder URLs, expose the auth
25463
25452
 
25464
25453
  ### GitLab: native inline screenshots and videos
25465
25454
 
25466
- 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 and include the Replicas dashboard link. Image uploads render inline; MP4, MOV, and WebM uploads render as inline video players.
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.
25467
25456
 
25468
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.
25469
25458
 
@@ -26383,6 +26372,7 @@ var DEFAULT_USER_PREFERENCES = {
26383
26372
  open_prs_in_graphite: false,
26384
26373
  open_links_in_desktop_app: false,
26385
26374
  port_forwarding: false,
26375
+ follow_up_mode: "steer",
26386
26376
  memory_enabled: null,
26387
26377
  subagent_mcp_enabled: null,
26388
26378
  default_fast_mode: false,
@@ -28734,7 +28724,7 @@ var headlessAgentRequestSchema = external_exports.object({
28734
28724
  });
28735
28725
 
28736
28726
  // ../shared/src/cli-version.ts
28737
- var CLI_VERSION = "0.3.113";
28727
+ var CLI_VERSION = "0.3.115";
28738
28728
 
28739
28729
  // ../shared/src/version.ts
28740
28730
  function compareVersions(v1, v2) {
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "replicas-cli",
3
- "version": "0.3.113",
3
+ "version": "0.3.115",
4
4
  "description": "CLI for managing Replicas workspaces - SSH into cloud dev environments with automatic port forwarding",
5
5
  "main": "dist/index.cjs",
6
6
  "bin": {