replicas-cli 0.2.557 → 0.2.559
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/README.md +2 -2
- package/dist/index.cjs +66 -45
- package/package.json +2 -2
package/README.md
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
# Replicas CLI
|
|
2
2
|
|
|
3
|
-
Official CLI for [Replicas](https://
|
|
3
|
+
Official CLI for [Replicas](https://replicas.dev) - manage cloud development workspaces with automatic SSH tunneling.
|
|
4
4
|
|
|
5
5
|
## Installation
|
|
6
6
|
|
|
@@ -88,7 +88,7 @@ startHook:
|
|
|
88
88
|
|
|
89
89
|
## Support
|
|
90
90
|
|
|
91
|
-
For issues or questions, visit [https://
|
|
91
|
+
For issues or questions, visit [https://replicas.dev](https://replicas.dev)
|
|
92
92
|
|
|
93
93
|
## License
|
|
94
94
|
|
package/dist/index.cjs
CHANGED
|
@@ -22776,7 +22776,7 @@ var EGRESS_WORKSPACE_SHELL_VARS = {
|
|
|
22776
22776
|
};
|
|
22777
22777
|
|
|
22778
22778
|
// ../shared/src/urls.ts
|
|
22779
|
-
var DEFAULT_WEB_APP_URL = "https://
|
|
22779
|
+
var DEFAULT_WEB_APP_URL = "https://replicas.dev";
|
|
22780
22780
|
var HOME_PATH = "/home";
|
|
22781
22781
|
var DASHBOARD_PATH = "/dashboard";
|
|
22782
22782
|
var WEB_APP_PATHS = {
|
|
@@ -22886,10 +22886,12 @@ replicas computer record stop
|
|
|
22886
22886
|
replicas media upload /tmp/demo.mp4 --name "Demo recording"
|
|
22887
22887
|
\`\`\`
|
|
22888
22888
|
|
|
22889
|
+
For any external destination, continue with the required delivery flow in \`MEDIA.md\`.
|
|
22890
|
+
|
|
22889
22891
|
## Command reference
|
|
22890
22892
|
|
|
22891
22893
|
### \`replicas computer info\`
|
|
22892
|
-
Prints the live desktop viewer URL (\`https://6080-<hash>.
|
|
22894
|
+
Prints the live desktop viewer URL (\`https://6080-<hash>.replicas.dev/\`). The engine auto-registers this authenticated preview on startup; \`info\` just looks it up. Use it when you want to share the live stream URL with the user out-of-band (e.g. in a Slack reply) - the dashboard \`Desktop\` tab already points at the same URL automatically.
|
|
22893
22895
|
|
|
22894
22896
|
If invoked very early in the workspace lifecycle, \`info\` will poll briefly while the engine finishes registering the preview, then error if it's still not available.
|
|
22895
22897
|
|
|
@@ -23020,7 +23022,7 @@ replicas computer record start /tmp/walkthrough.mp4
|
|
|
23020
23022
|
replicas computer record stop
|
|
23021
23023
|
replicas media upload /tmp/walkthrough.mp4 --name "Walkthrough recording"
|
|
23022
23024
|
\`\`\`
|
|
23023
|
-
Then embed the printed \`\` line in your chat reply
|
|
23025
|
+
Then embed the printed \`\` line in your chat reply and follow \`MEDIA.md\` for any external destination.
|
|
23024
23026
|
|
|
23025
23027
|
## Failure modes
|
|
23026
23028
|
|
|
@@ -23220,16 +23222,9 @@ gh pr review 123 --approve
|
|
|
23220
23222
|
gh pr review 123 --request-changes --body "Changes needed"
|
|
23221
23223
|
\`\`\`
|
|
23222
23224
|
|
|
23223
|
-
##
|
|
23225
|
+
## Media in GitHub workflows
|
|
23224
23226
|
|
|
23225
|
-
GitHub
|
|
23226
|
-
- Do NOT use placeholder image URLs
|
|
23227
|
-
- Do NOT commit screenshots as files to the repository
|
|
23228
|
-
- Run \`replicas media upload <image> --name "<display name>" --share\` and put the printed \`Forge embed\` Markdown in the PR body or comment
|
|
23229
|
-
- For a self-contained HTML report, run \`replicas media upload <page.html> --name "<display name>" --access organization\` and put the printed \`Forge link\` Markdown in the PR body or comment. Organization members who are already signed in open it directly; others sign in and return to the page
|
|
23230
|
-
- For video, embed a shared poster image linked to the recording's **View in Replicas** URL; GitHub does not reliably render externally hosted video inline
|
|
23231
|
-
- Treat the public URL as an opt-in bearer capability; revoke it with \`replicas media revoke <media-id>\` only when the user asks or the media should stop rendering \u2014 revoking breaks embeds already posted on the PR
|
|
23232
|
-
- If you were triggered from Slack, also upload the image to the Slack thread so the user can see it directly
|
|
23227
|
+
Media delivery is owned by \`references/MEDIA.md\`. Read its GitHub section before adding screenshots, recordings, diagrams, or HTML reports to a pull request, issue, review comment, or commit; it covers the Replicas upload, GitHub's inline fallback, and the required **View in Replicas** link.
|
|
23233
23228
|
`;
|
|
23234
23229
|
var GITHUB_ABILITY = {
|
|
23235
23230
|
label: "GitHub",
|
|
@@ -23291,7 +23286,7 @@ await replicas.gitlab.request('/projects/group%2Frepo/pipelines', {
|
|
|
23291
23286
|
|
|
23292
23287
|
## Descriptions and media
|
|
23293
23288
|
|
|
23294
|
-
API updates replace the entire merge request description, so always preserve the required Replicas footer and co-author trailers.
|
|
23289
|
+
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.
|
|
23295
23290
|
`;
|
|
23296
23291
|
var GITLAB_ABILITY = {
|
|
23297
23292
|
label: "GitLab",
|
|
@@ -23356,6 +23351,8 @@ await replicas.linear.graphql({
|
|
|
23356
23351
|
\`\`\`
|
|
23357
23352
|
|
|
23358
23353
|
Search with \`containsIgnoreCase: $query\` filters, for example on both \`title\` and \`description\`. Batch independent queries with \`Promise.all\` to save round trips.
|
|
23354
|
+
|
|
23355
|
+
For screenshots, recordings, diagrams, or other media, read \`references/MEDIA.md\` before adding it to an issue or comment. It is the single source of truth for uploading the Replicas copy and the raw file to Linear; a dashboard link alone is not an inline attachment.
|
|
23359
23356
|
`;
|
|
23360
23357
|
var LINEAR_ABILITY = {
|
|
23361
23358
|
label: "Linear",
|
|
@@ -23367,18 +23364,19 @@ var LINEAR_ABILITY = {
|
|
|
23367
23364
|
|
|
23368
23365
|
// ../shared/src/default-skills/replicas-agent/abilities/media.ts
|
|
23369
23366
|
var SECTION6 = `### Media
|
|
23370
|
-
|
|
23367
|
+
Deliver screenshots, screen recordings, generated diagrams, audio clips, and self-contained HTML pages to the Replicas dashboard and, when applicable, inline in the destination workflow.
|
|
23371
23368
|
|
|
23372
23369
|
**Reference:** \`references/MEDIA.md\`
|
|
23373
23370
|
|
|
23374
23371
|
Use this when:
|
|
23372
|
+
- You are about to run \`replicas media upload\`; this reference owns the complete Replicas-first, destination-second workflow
|
|
23375
23373
|
- You produce a screenshot, recording, generated image, or audio clip the user should see
|
|
23376
23374
|
- You produce a self-contained HTML report that should be linked from a pull request
|
|
23377
23375
|
- You record video output (browser automation, screen capture) \u2014 including the recommended aspect ratio and FPS
|
|
23378
|
-
- You need to embed media in a Slack/Linear/GitHub message AND keep a referenceable copy in the Replicas dashboard`;
|
|
23376
|
+
- You need to embed media in a Slack/Linear/GitHub/GitLab message AND keep a referenceable copy in the Replicas dashboard`;
|
|
23379
23377
|
var REFERENCE6 = `# Media (Screenshots, Recordings, Audio, HTML)
|
|
23380
23378
|
|
|
23381
|
-
This
|
|
23379
|
+
This is the single source of truth for delivering screenshots, screen recordings, generated diagrams, audio clips, and self-contained HTML pages through Replicas and external surfaces (Slack, Linear, GitHub, GitLab).
|
|
23382
23380
|
|
|
23383
23381
|
## Prerequisites
|
|
23384
23382
|
|
|
@@ -23388,12 +23386,32 @@ The \`replicas\` CLI is pre-installed and authenticated in your workspace. No ad
|
|
|
23388
23386
|
|
|
23389
23387
|
Upload to Replicas in these cases \u2014 and **only** these cases:
|
|
23390
23388
|
|
|
23391
|
-
1. **Media you produce.** Any screenshot, screen recording, generated diagram,
|
|
23389
|
+
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.
|
|
23392
23390
|
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.
|
|
23393
|
-
3. **Anything you plan to share externally (Slack, Linear, GitHub, etc.).** Upload to Replicas *in addition to* the platform's
|
|
23391
|
+
3. **Anything you plan to share externally (Slack, Linear, GitHub, GitLab, etc.).** Upload to Replicas *in addition to* the platform's destination upload. Never as a replacement.
|
|
23394
23392
|
|
|
23395
23393
|
If none of these apply, don't upload.
|
|
23396
23394
|
|
|
23395
|
+
## Required delivery contract
|
|
23396
|
+
|
|
23397
|
+
\`replicas media upload\` is always the first delivery action. When the current task has an external destination, every other delivery step follows only after that command succeeds. For every file:
|
|
23398
|
+
|
|
23399
|
+
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 the authenticated chat embed plus a per-file dashboard link.
|
|
23400
|
+
2. Include the printed embed line in the Replicas chat reply, followed by the matching **View in Replicas** link. HTML uses its printed page link instead of an image embed.
|
|
23401
|
+
3. Identify every destination in the task and attempt to upload the same original bytes there. Use the destination's inline representation from the table below; do not replace the file with a Replicas link.
|
|
23402
|
+
4. Put the **View in Replicas** dashboard link next to the destination embed as a secondary link.
|
|
23403
|
+
5. Check each destination response. If a native upload is unavailable or fails, say so explicitly and keep the dashboard link; never claim that a link is an inline upload.
|
|
23404
|
+
|
|
23405
|
+
| Destination | Required file delivery | Inline result |
|
|
23406
|
+
|---|---|---|
|
|
23407
|
+
| Replicas dashboard/chat | \`replicas media upload\` | Printed \`\` line in chat |
|
|
23408
|
+
| Slack | \`files.getUploadURLExternal\` \u2192 raw-byte POST \u2192 \`files.completeUploadExternal\` | Uploaded file in the channel or thread |
|
|
23409
|
+
| Linear | \`fileUpload\` mutation \u2192 presigned upload \u2192 issue/comment mutation | Returned \`assetUrl\` in Markdown |
|
|
23410
|
+
| GitLab | Project \`/uploads\` endpoint with the original bytes | Returned GitLab Markdown |
|
|
23411
|
+
| GitHub | No supported attachment API; use a Replicas public forge share for the inline image or video poster | Printed Forge embed, linked to the recording when needed |
|
|
23412
|
+
|
|
23413
|
+
The dashboard link is the subtitle and jump-back path. It is never a substitute for the destination upload.
|
|
23414
|
+
|
|
23397
23415
|
## Uploading to Replicas
|
|
23398
23416
|
|
|
23399
23417
|
\`\`\`bash
|
|
@@ -23421,7 +23439,7 @@ Names are normalized to hyphen-case (spaces become hyphens, e.g. \`Login page\`
|
|
|
23421
23439
|
For each media file, the CLI prints two lines:
|
|
23422
23440
|
|
|
23423
23441
|
1. \`\` \u2014 the chat embed (renders inline in Replicas chat **only** \u2014 see below).
|
|
23424
|
-
2. \`View in Replicas: <deep-link>\` \u2014 a per-file dashboard URL of the form \`https://
|
|
23442
|
+
2. \`View in Replicas: <deep-link>\` \u2014 a per-file dashboard URL of the form \`https://replicas.dev/workspaces/<workspace-id>?media=<media-id>\` that opens directly to that specific file.
|
|
23425
23443
|
|
|
23426
23444
|
Match each "View in Replicas" line to the embed line directly above it \u2014 that's the deep link for that file.
|
|
23427
23445
|
|
|
@@ -23447,19 +23465,20 @@ replicas media upload screenshot.png --name "Login page" --access public
|
|
|
23447
23465
|
|
|
23448
23466
|
| URL | What it is | Where it's allowed |
|
|
23449
23467
|
|---|---|---|
|
|
23450
|
-
| \`https://api.
|
|
23451
|
-
| \`https://
|
|
23452
|
-
| \`https://api.
|
|
23453
|
-
| \`https://
|
|
23468
|
+
| \`https://api.replicas.dev/v1/media/<id>\` (inside \`\`) | Authenticated API redirect to a presigned blob \u2014 requires the Replicas chat session | **Only** in the Replicas chat reply. Nowhere else. |
|
|
23469
|
+
| \`https://replicas.dev/organizations/<organization-id>/media/<media-id>\` | Organization-only page printed by \`--access organization\` | Pull requests and other places where every viewer belongs to the Replicas organization. |
|
|
23470
|
+
| \`https://api.replicas.dev/v1/media/public/<id>/<token>\` | Opt-in public bearer URL printed by \`--access public\` or \`--share\` | GitHub embeds for image, video, or audio media. |
|
|
23471
|
+
| \`https://replicas.dev/workspaces/<workspace-id>?media=<media-id>\` | Authenticated dashboard deep link that opens the media file in the workspace | Everywhere external: Slack, GitHub, GitLab, Linear, PR bodies, comments, emails. |
|
|
23454
23472
|
|
|
23455
23473
|
### NEVER link the API redirect URL outside the Replicas chat reply
|
|
23456
23474
|
|
|
23457
|
-
The \`api.
|
|
23475
|
+
The \`api.replicas.dev/v1/media/<id>\` URL is **not public**. It's an authenticated redirect that only resolves to a presigned download when the Replicas chat session token is present. Anywhere else (Slack, Linear, GitHub, a browser tab the user opens directly, a customer copy-pasting from chat) it returns \`{"error":"Missing authorization token"}\` and renders as a broken image.
|
|
23458
23476
|
|
|
23459
23477
|
This rule has no exceptions:
|
|
23460
23478
|
- \u274C Never paste it in a Slack message \u2014 upload the actual bytes via the 3-step \`files.getUploadURLExternal\` \u2192 POST bytes \u2192 \`files.completeUploadExternal\` flow instead (see below).
|
|
23461
23479
|
- \u274C Never paste it in a GitHub PR description, issue body, review comment, or commit message.
|
|
23462
23480
|
- \u274C Never paste it in a Linear issue body or comment \u2014 upload via Linear's \`fileUpload\` mutation instead (see below).
|
|
23481
|
+
- \u274C Never paste it in a GitLab merge request or issue; upload the original bytes through GitLab's project upload endpoint instead (see below).
|
|
23463
23482
|
- \u274C Never link to it from any external doc, email, or external chat.
|
|
23464
23483
|
- \u274C Never include it as a "backup link" in case the dashboard link breaks \u2014 it will always break externally.
|
|
23465
23484
|
|
|
@@ -23468,7 +23487,7 @@ This rule has no exceptions:
|
|
|
23468
23487
|
For an organization-only HTML page, use the \`Forge link\` printed by \`--access organization\`. For other authenticated media references, use the dashboard form:
|
|
23469
23488
|
|
|
23470
23489
|
\`\`\`
|
|
23471
|
-
https://
|
|
23490
|
+
https://replicas.dev/workspaces/<workspace-id>?media=<media-id>
|
|
23472
23491
|
\`\`\`
|
|
23473
23492
|
|
|
23474
23493
|
The \`media=<media-id>\` query param opens that specific file in the workspace.
|
|
@@ -23483,20 +23502,20 @@ Include each markdown embed line **verbatim** where you want that file to render
|
|
|
23483
23502
|
|
|
23484
23503
|
After (or alongside) the embeds, include a \`[View in Replicas](<deep-link>)\` hyperlink for each file using the per-file dashboard URL from the CLI. This lets the user open the specific item in the workspace.
|
|
23485
23504
|
|
|
23486
|
-
## On external platforms
|
|
23505
|
+
## On external platforms: embed the file AND link the dashboard
|
|
23487
23506
|
|
|
23488
|
-
|
|
23507
|
+
After \`replicas media upload\` succeeds, external delivery has two required follow-up steps for every file:
|
|
23489
23508
|
|
|
23490
|
-
1. **Upload the raw bytes
|
|
23509
|
+
1. **Upload the raw bytes through that platform's supported inline path** so the recipient sees the media embedded in the message itself.
|
|
23491
23510
|
2. **Link the Replicas dashboard deep link** (\`?media=<id>\` form) so the user can jump straight to the file in the workspace.
|
|
23492
23511
|
|
|
23493
|
-
A link alone is not enough.
|
|
23512
|
+
A link alone is not enough. An upload without the dashboard link is not enough. Do both.
|
|
23494
23513
|
|
|
23495
|
-
GitHub has no
|
|
23514
|
+
Slack, Linear, and GitLab receive the original bytes through their native upload APIs. GitHub has no supported attachment API, so use an explicit Replicas public share for screenshots and recording previews.
|
|
23496
23515
|
|
|
23497
23516
|
### Slack \u2014 embed natively via the 3-step external file upload flow
|
|
23498
23517
|
|
|
23499
|
-
A Slack message that just contains a \`
|
|
23518
|
+
A Slack message that just contains a \`replicas.dev\` link is not acceptable when the message is supposed to show an image. The recipient should see the image inline in the thread.
|
|
23500
23519
|
|
|
23501
23520
|
Slack deprecated the single-shot \`files.upload\` endpoint. The raw HTTP replacement is a 3-step flow: reserve an upload URL with \`files.getUploadURLExternal\`, POST the bytes to it, then share into the channel/thread with \`files.completeUploadExternal\`. (\`files.uploadV2\` is **only** an SDK convenience wrapper \u2014 it is NOT a real Web API HTTP endpoint and \`POST https://slack.com/api/files.uploadV2\` will return \`unknown_method\`.)
|
|
23502
23521
|
|
|
@@ -23528,7 +23547,7 @@ curl -s -X POST "https://slack.com/api/files.completeUploadExternal" \\
|
|
|
23528
23547
|
\\"files\\": [{\\"id\\": \\"$FILE_ID\\", \\"title\\": \\"Screenshot\\"}],
|
|
23529
23548
|
\\"channel_id\\": \\"CHANNEL_ID\\",
|
|
23530
23549
|
\\"thread_ts\\": \\"THREAD_TS\\",
|
|
23531
|
-
\\"initial_comment\\": \\"<https://
|
|
23550
|
+
\\"initial_comment\\": \\"<https://replicas.dev/workspaces/<workspace-id>?media=<media-id>|View in Replicas>\\"
|
|
23532
23551
|
}"
|
|
23533
23552
|
\`\`\`
|
|
23534
23553
|
|
|
@@ -23539,7 +23558,7 @@ Notes:
|
|
|
23539
23558
|
- For multiple files in the same message, run steps 1\u20132 per file and pass all \`{id, title}\` objects in the \`files\` array of a single \`files.completeUploadExternal\` call \u2014 they share into the thread together.
|
|
23540
23559
|
- If you also need to post a separate text reply in the thread, send it with \`chat.postMessage\` after the upload \u2014 but the upload itself must carry the image.
|
|
23541
23560
|
|
|
23542
|
-
Never paste the \`api.
|
|
23561
|
+
Never paste the \`api.replicas.dev/v1/media/<id>\` URL into a Slack message body or \`initial_comment\` \u2014 it will render as a broken image attempt.
|
|
23543
23562
|
|
|
23544
23563
|
### Linear \u2014 embed natively via the GraphQL \`fileUpload\` mutation
|
|
23545
23564
|
|
|
@@ -23588,7 +23607,7 @@ curl -s -X PUT "$UPLOAD_URL" \\
|
|
|
23588
23607
|
--data-binary @"$FILE"
|
|
23589
23608
|
|
|
23590
23609
|
# 3. Reference assetUrl inline in the comment body, alongside the dashboard link.
|
|
23591
|
-
BODY=$(printf '\\n\\n[View in Replicas](https://
|
|
23610
|
+
BODY=$(printf '\\n\\n[View in Replicas](https://replicas.dev/workspaces/%s?media=%s)' \\
|
|
23592
23611
|
"$ASSET_URL" "$REPLICAS_WORKSPACE_ID" "$MEDIA_ID")
|
|
23593
23612
|
|
|
23594
23613
|
jq -n \\
|
|
@@ -23602,7 +23621,7 @@ jq -n \\
|
|
|
23602
23621
|
|
|
23603
23622
|
The same flow works for issue bodies (use \`issueCreate\` / \`issueUpdate\` with the same markdown body).
|
|
23604
23623
|
|
|
23605
|
-
Never paste the \`api.
|
|
23624
|
+
Never paste the \`api.replicas.dev/v1/media/<id>\` URL into a Linear body or comment \u2014 it will render as a broken image to anyone outside your Replicas chat.
|
|
23606
23625
|
|
|
23607
23626
|
### GitHub: inline screenshots and recording previews
|
|
23608
23627
|
|
|
@@ -23623,7 +23642,7 @@ GitHub does not reliably render arbitrary external videos as inline players. For
|
|
|
23623
23642
|
[](<recording-dashboard-url>)
|
|
23624
23643
|
\`\`\`
|
|
23625
23644
|
|
|
23626
|
-
Public forge shares are bearer capabilities. For private repositories, create one only when the user asked for inline PR media. Revoke with \`replicas media revoke <media-id>\` **only** when the user asks or the media should intentionally stop rendering
|
|
23645
|
+
Public forge shares are unauthenticated bearer capabilities. For private repositories, create one only when the user explicitly asked for inline PR media. Without that consent, keep the media private in Replicas and report that GitHub has no supported attachment API; do not publish a bearer share or pretend the dashboard link is an embed. Revoke with \`replicas media revoke <media-id>\` **only** when the user asks or the media should intentionally stop rendering; never as routine post-task cleanup, since revoking breaks every embed already posted on the PR.
|
|
23627
23646
|
|
|
23628
23647
|
For a self-contained HTML report, upload it with \`--access organization\` and put the printed \`Forge link\` Markdown in the PR body or comment. GitHub cannot render the page inline, so use the normal link rather than image syntax. HTML pages cannot be shared publicly.
|
|
23629
23648
|
|
|
@@ -23631,7 +23650,7 @@ Do **not** commit screenshots to the repo, use placeholder URLs, expose the auth
|
|
|
23631
23650
|
|
|
23632
23651
|
### GitLab: native inline screenshots and videos
|
|
23633
23652
|
|
|
23634
|
-
GitLab supports native project Markdown uploads.
|
|
23653
|
+
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.
|
|
23635
23654
|
|
|
23636
23655
|
Do not use a Replicas public forge share for GitLab when the native project upload succeeds; native uploads preserve project access controls.
|
|
23637
23656
|
|
|
@@ -23680,7 +23699,7 @@ replicas media upload chart-a.svg chart-b.svg --name "Latency chart" --name "Err
|
|
|
23680
23699
|
`;
|
|
23681
23700
|
var MEDIA_ABILITY = {
|
|
23682
23701
|
label: "Media",
|
|
23683
|
-
description: "
|
|
23702
|
+
description: "Deliver media to Replicas and destination workflows with inline uploads.",
|
|
23684
23703
|
bullet: "- Producing or showing the user any media \u2014 screenshots, screen recordings, generated images or diagrams, audio clips, or HTML recap pages \u2014 including in your Replicas chat reply, PR descriptions/comments, and other external platforms",
|
|
23685
23704
|
section: SECTION6,
|
|
23686
23705
|
referenceFile: { name: "MEDIA.md", content: REFERENCE6 }
|
|
@@ -23962,7 +23981,7 @@ In agent mode the CLI hides commands that don't make sense for in-workspace agen
|
|
|
23962
23981
|
| \`replicas automation ...\` | Manage automations (cron + GitHub/GitLab event triggers) |
|
|
23963
23982
|
| \`replicas preview ...\` | Register / list preview URLs (covered in \`PREVIEWS.md\`) |
|
|
23964
23983
|
| \`replicas service ...\` | Run long-lived services detached so they survive workspace sleep/wake (see below) |
|
|
23965
|
-
| \`replicas media ...\` | Upload
|
|
23984
|
+
| \`replicas media ...\` | Upload media to the dashboard and follow \`MEDIA.md\` for destination embedding |
|
|
23966
23985
|
| \`replicas slack thread ...\` | Attach or switch Slack thread routing (covered in \`SLACK.md\`) |
|
|
23967
23986
|
|
|
23968
23987
|
\`replicas <command> --help\` is always the source of truth for flags.
|
|
@@ -24256,6 +24275,8 @@ await replicas.slack.call('chat.postMessage', {
|
|
|
24256
24275
|
|
|
24257
24276
|
Only the announcing message gets the button \u2014 follow-ups about a pull request already linked in the thread keep the link in the text and drop the \`blocks\`. Use "View MR" for GitLab. With several links, give each button a unique \`action_id\` and name its repository in the label ("View PR \xB7 web").
|
|
24258
24277
|
|
|
24278
|
+
For screenshots, recordings, diagrams, or other media, read \`references/MEDIA.md\` before posting. It is the single source of truth for uploading the Replicas copy and the raw file to Slack; a dashboard link in \`text\` is not an inline attachment.
|
|
24279
|
+
|
|
24259
24280
|
Attach every new top-level conversation so future replies route to this workspace. For a reply in another thread, attach its root \`thread_ts\`, not the reply timestamp. Do not attach the originating thread again.
|
|
24260
24281
|
|
|
24261
24282
|
## Search and batch
|
|
@@ -24409,7 +24430,7 @@ var headlessFilesystemAgentResultSchema = external_exports.object({
|
|
|
24409
24430
|
});
|
|
24410
24431
|
|
|
24411
24432
|
// ../shared/src/cli-version.ts
|
|
24412
|
-
var CLI_VERSION = "0.2.
|
|
24433
|
+
var CLI_VERSION = "0.2.559";
|
|
24413
24434
|
|
|
24414
24435
|
// ../shared/src/version.ts
|
|
24415
24436
|
function compareVersions(v1, v2) {
|
|
@@ -27313,7 +27334,7 @@ async function readSseStream(body, onEvent, shouldContinue = () => true) {
|
|
|
27313
27334
|
}
|
|
27314
27335
|
|
|
27315
27336
|
// src/lib/monolith-url.ts
|
|
27316
|
-
var MONOLITH_URL = process.env.REPLICAS_MONOLITH_URL || process.env.MONOLITH_URL || "https://api.
|
|
27337
|
+
var MONOLITH_URL = process.env.REPLICAS_MONOLITH_URL || process.env.MONOLITH_URL || "https://api.replicas.dev";
|
|
27317
27338
|
|
|
27318
27339
|
// src/lib/authenticated-api.ts
|
|
27319
27340
|
var ApiError = class extends Error {
|
|
@@ -27550,7 +27571,7 @@ async function openForApproval(host, authUrl) {
|
|
|
27550
27571
|
}
|
|
27551
27572
|
|
|
27552
27573
|
// src/commands/login.ts
|
|
27553
|
-
var WEB_APP_URL = process.env.REPLICAS_WEB_URL || "https://
|
|
27574
|
+
var WEB_APP_URL = process.env.REPLICAS_WEB_URL || "https://replicas.dev";
|
|
27554
27575
|
function generateState() {
|
|
27555
27576
|
return Math.random().toString(36).substring(2, 15) + Math.random().toString(36).substring(2, 15);
|
|
27556
27577
|
}
|
|
@@ -27965,7 +27986,7 @@ async function prepareWorkspaceConnection(workspaceName) {
|
|
|
27965
27986
|
const selectedWorkspace = await resolveWorkspaceRecord(workspaceName);
|
|
27966
27987
|
if (isWorkspaceSuspendedStatus(selectedWorkspace.status)) {
|
|
27967
27988
|
throw new Error(
|
|
27968
|
-
`Workspace is currently ${selectedWorkspace.status}. Wake it at https://
|
|
27989
|
+
`Workspace is currently ${selectedWorkspace.status}. Wake it at https://replicas.dev`
|
|
27969
27990
|
);
|
|
27970
27991
|
}
|
|
27971
27992
|
console.log(import_chalk5.default.blue("\nRequesting SSH access token..."));
|
|
@@ -28329,7 +28350,7 @@ var AUTHORIZATION_ENDPOINT = "https://auth.openai.com/oauth/authorize";
|
|
|
28329
28350
|
var TOKEN_ENDPOINT = "https://auth.openai.com/oauth/token";
|
|
28330
28351
|
var CALLBACK_PORT = 1455;
|
|
28331
28352
|
var CALLBACK_PATH = "/auth/callback";
|
|
28332
|
-
var WEB_APP_URL2 = process.env.REPLICAS_WEB_URL || "https://
|
|
28353
|
+
var WEB_APP_URL2 = process.env.REPLICAS_WEB_URL || "https://replicas.dev";
|
|
28333
28354
|
function buildAuthorizationUrl(codeChallenge, state) {
|
|
28334
28355
|
const redirectUri = `http://localhost:${CALLBACK_PORT}${CALLBACK_PATH}`;
|
|
28335
28356
|
const params = new URLSearchParams({
|
|
@@ -28710,7 +28731,7 @@ function getDefaultConfig() {
|
|
|
28710
28731
|
}
|
|
28711
28732
|
function getDefaultYamlContent() {
|
|
28712
28733
|
return `# Replicas workspace configuration
|
|
28713
|
-
# See: https://docs.
|
|
28734
|
+
# See: https://docs.replicas.dev/features/workspaces/repository-configuration
|
|
28714
28735
|
|
|
28715
28736
|
systemPrompt: |
|
|
28716
28737
|
Add custom instructions for coding agents here.
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "replicas-cli",
|
|
3
|
-
"version": "0.2.
|
|
3
|
+
"version": "0.2.559",
|
|
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": {
|
|
@@ -32,7 +32,7 @@
|
|
|
32
32
|
],
|
|
33
33
|
"author": "Replicas",
|
|
34
34
|
"license": "MIT",
|
|
35
|
-
"homepage": "https://
|
|
35
|
+
"homepage": "https://replicas.dev",
|
|
36
36
|
"repository": {
|
|
37
37
|
"type": "git",
|
|
38
38
|
"url": "https://github.com/connortbot/replicas.git",
|