replicas-cli 0.2.558 → 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 +20 -20
- 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 = {
|
|
@@ -22891,7 +22891,7 @@ For any external destination, continue with the required delivery flow in \`MEDI
|
|
|
22891
22891
|
## Command reference
|
|
22892
22892
|
|
|
22893
22893
|
### \`replicas computer info\`
|
|
22894
|
-
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.
|
|
22895
22895
|
|
|
22896
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.
|
|
22897
22897
|
|
|
@@ -23439,7 +23439,7 @@ Names are normalized to hyphen-case (spaces become hyphens, e.g. \`Login page\`
|
|
|
23439
23439
|
For each media file, the CLI prints two lines:
|
|
23440
23440
|
|
|
23441
23441
|
1. \`\` \u2014 the chat embed (renders inline in Replicas chat **only** \u2014 see below).
|
|
23442
|
-
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.
|
|
23443
23443
|
|
|
23444
23444
|
Match each "View in Replicas" line to the embed line directly above it \u2014 that's the deep link for that file.
|
|
23445
23445
|
|
|
@@ -23465,14 +23465,14 @@ replicas media upload screenshot.png --name "Login page" --access public
|
|
|
23465
23465
|
|
|
23466
23466
|
| URL | What it is | Where it's allowed |
|
|
23467
23467
|
|---|---|---|
|
|
23468
|
-
| \`https://api.
|
|
23469
|
-
| \`https://
|
|
23470
|
-
| \`https://api.
|
|
23471
|
-
| \`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. |
|
|
23472
23472
|
|
|
23473
23473
|
### NEVER link the API redirect URL outside the Replicas chat reply
|
|
23474
23474
|
|
|
23475
|
-
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.
|
|
23476
23476
|
|
|
23477
23477
|
This rule has no exceptions:
|
|
23478
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).
|
|
@@ -23487,7 +23487,7 @@ This rule has no exceptions:
|
|
|
23487
23487
|
For an organization-only HTML page, use the \`Forge link\` printed by \`--access organization\`. For other authenticated media references, use the dashboard form:
|
|
23488
23488
|
|
|
23489
23489
|
\`\`\`
|
|
23490
|
-
https://
|
|
23490
|
+
https://replicas.dev/workspaces/<workspace-id>?media=<media-id>
|
|
23491
23491
|
\`\`\`
|
|
23492
23492
|
|
|
23493
23493
|
The \`media=<media-id>\` query param opens that specific file in the workspace.
|
|
@@ -23515,7 +23515,7 @@ Slack, Linear, and GitLab receive the original bytes through their native upload
|
|
|
23515
23515
|
|
|
23516
23516
|
### Slack \u2014 embed natively via the 3-step external file upload flow
|
|
23517
23517
|
|
|
23518
|
-
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.
|
|
23519
23519
|
|
|
23520
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\`.)
|
|
23521
23521
|
|
|
@@ -23547,7 +23547,7 @@ curl -s -X POST "https://slack.com/api/files.completeUploadExternal" \\
|
|
|
23547
23547
|
\\"files\\": [{\\"id\\": \\"$FILE_ID\\", \\"title\\": \\"Screenshot\\"}],
|
|
23548
23548
|
\\"channel_id\\": \\"CHANNEL_ID\\",
|
|
23549
23549
|
\\"thread_ts\\": \\"THREAD_TS\\",
|
|
23550
|
-
\\"initial_comment\\": \\"<https://
|
|
23550
|
+
\\"initial_comment\\": \\"<https://replicas.dev/workspaces/<workspace-id>?media=<media-id>|View in Replicas>\\"
|
|
23551
23551
|
}"
|
|
23552
23552
|
\`\`\`
|
|
23553
23553
|
|
|
@@ -23558,7 +23558,7 @@ Notes:
|
|
|
23558
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.
|
|
23559
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.
|
|
23560
23560
|
|
|
23561
|
-
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.
|
|
23562
23562
|
|
|
23563
23563
|
### Linear \u2014 embed natively via the GraphQL \`fileUpload\` mutation
|
|
23564
23564
|
|
|
@@ -23607,7 +23607,7 @@ curl -s -X PUT "$UPLOAD_URL" \\
|
|
|
23607
23607
|
--data-binary @"$FILE"
|
|
23608
23608
|
|
|
23609
23609
|
# 3. Reference assetUrl inline in the comment body, alongside the dashboard link.
|
|
23610
|
-
BODY=$(printf '\\n\\n[View in Replicas](https://
|
|
23610
|
+
BODY=$(printf '\\n\\n[View in Replicas](https://replicas.dev/workspaces/%s?media=%s)' \\
|
|
23611
23611
|
"$ASSET_URL" "$REPLICAS_WORKSPACE_ID" "$MEDIA_ID")
|
|
23612
23612
|
|
|
23613
23613
|
jq -n \\
|
|
@@ -23621,7 +23621,7 @@ jq -n \\
|
|
|
23621
23621
|
|
|
23622
23622
|
The same flow works for issue bodies (use \`issueCreate\` / \`issueUpdate\` with the same markdown body).
|
|
23623
23623
|
|
|
23624
|
-
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.
|
|
23625
23625
|
|
|
23626
23626
|
### GitHub: inline screenshots and recording previews
|
|
23627
23627
|
|
|
@@ -24430,7 +24430,7 @@ var headlessFilesystemAgentResultSchema = external_exports.object({
|
|
|
24430
24430
|
});
|
|
24431
24431
|
|
|
24432
24432
|
// ../shared/src/cli-version.ts
|
|
24433
|
-
var CLI_VERSION = "0.2.
|
|
24433
|
+
var CLI_VERSION = "0.2.559";
|
|
24434
24434
|
|
|
24435
24435
|
// ../shared/src/version.ts
|
|
24436
24436
|
function compareVersions(v1, v2) {
|
|
@@ -27334,7 +27334,7 @@ async function readSseStream(body, onEvent, shouldContinue = () => true) {
|
|
|
27334
27334
|
}
|
|
27335
27335
|
|
|
27336
27336
|
// src/lib/monolith-url.ts
|
|
27337
|
-
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";
|
|
27338
27338
|
|
|
27339
27339
|
// src/lib/authenticated-api.ts
|
|
27340
27340
|
var ApiError = class extends Error {
|
|
@@ -27571,7 +27571,7 @@ async function openForApproval(host, authUrl) {
|
|
|
27571
27571
|
}
|
|
27572
27572
|
|
|
27573
27573
|
// src/commands/login.ts
|
|
27574
|
-
var WEB_APP_URL = process.env.REPLICAS_WEB_URL || "https://
|
|
27574
|
+
var WEB_APP_URL = process.env.REPLICAS_WEB_URL || "https://replicas.dev";
|
|
27575
27575
|
function generateState() {
|
|
27576
27576
|
return Math.random().toString(36).substring(2, 15) + Math.random().toString(36).substring(2, 15);
|
|
27577
27577
|
}
|
|
@@ -27986,7 +27986,7 @@ async function prepareWorkspaceConnection(workspaceName) {
|
|
|
27986
27986
|
const selectedWorkspace = await resolveWorkspaceRecord(workspaceName);
|
|
27987
27987
|
if (isWorkspaceSuspendedStatus(selectedWorkspace.status)) {
|
|
27988
27988
|
throw new Error(
|
|
27989
|
-
`Workspace is currently ${selectedWorkspace.status}. Wake it at https://
|
|
27989
|
+
`Workspace is currently ${selectedWorkspace.status}. Wake it at https://replicas.dev`
|
|
27990
27990
|
);
|
|
27991
27991
|
}
|
|
27992
27992
|
console.log(import_chalk5.default.blue("\nRequesting SSH access token..."));
|
|
@@ -28350,7 +28350,7 @@ var AUTHORIZATION_ENDPOINT = "https://auth.openai.com/oauth/authorize";
|
|
|
28350
28350
|
var TOKEN_ENDPOINT = "https://auth.openai.com/oauth/token";
|
|
28351
28351
|
var CALLBACK_PORT = 1455;
|
|
28352
28352
|
var CALLBACK_PATH = "/auth/callback";
|
|
28353
|
-
var WEB_APP_URL2 = process.env.REPLICAS_WEB_URL || "https://
|
|
28353
|
+
var WEB_APP_URL2 = process.env.REPLICAS_WEB_URL || "https://replicas.dev";
|
|
28354
28354
|
function buildAuthorizationUrl(codeChallenge, state) {
|
|
28355
28355
|
const redirectUri = `http://localhost:${CALLBACK_PORT}${CALLBACK_PATH}`;
|
|
28356
28356
|
const params = new URLSearchParams({
|
|
@@ -28731,7 +28731,7 @@ function getDefaultConfig() {
|
|
|
28731
28731
|
}
|
|
28732
28732
|
function getDefaultYamlContent() {
|
|
28733
28733
|
return `# Replicas workspace configuration
|
|
28734
|
-
# See: https://docs.
|
|
28734
|
+
# See: https://docs.replicas.dev/features/workspaces/repository-configuration
|
|
28735
28735
|
|
|
28736
28736
|
systemPrompt: |
|
|
28737
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",
|