replicas-cli 0.2.652 → 0.2.654
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 +78 -77
- package/package.json +1 -1
package/dist/index.cjs
CHANGED
|
@@ -7367,6 +7367,54 @@ var import_node_child_process2 = require("child_process");
|
|
|
7367
7367
|
var import_commander = require("commander");
|
|
7368
7368
|
var import_chalk23 = __toESM(require("chalk"));
|
|
7369
7369
|
|
|
7370
|
+
// ../shared/src/urls.ts
|
|
7371
|
+
var DEFAULT_WEB_APP_URL = "https://app.replicas.dev";
|
|
7372
|
+
var DASHBOARD_PATH = "/dashboard";
|
|
7373
|
+
var WEB_APP_PATHS = {
|
|
7374
|
+
home: "/",
|
|
7375
|
+
onboarding: "/onboarding",
|
|
7376
|
+
workspaces: "/workspace",
|
|
7377
|
+
automations: "/automations",
|
|
7378
|
+
environment: "/environment",
|
|
7379
|
+
analytics: "/analytics",
|
|
7380
|
+
dashboard: DASHBOARD_PATH,
|
|
7381
|
+
agents: `${DASHBOARD_PATH}/agents`,
|
|
7382
|
+
integrations: `${DASHBOARD_PATH}/integrations`,
|
|
7383
|
+
integrationsGithub: `${DASHBOARD_PATH}/integrations/github`,
|
|
7384
|
+
integrationsGitlab: `${DASHBOARD_PATH}/integrations/gitlab`,
|
|
7385
|
+
settings: `${DASHBOARD_PATH}/settings`,
|
|
7386
|
+
billing: `${DASHBOARD_PATH}/billing`,
|
|
7387
|
+
members: `${DASHBOARD_PATH}/members`,
|
|
7388
|
+
"audit-logs": `${DASHBOARD_PATH}/audit-logs`,
|
|
7389
|
+
accountAgents: `${DASHBOARD_PATH}/account/agents`,
|
|
7390
|
+
accountProfile: `${DASHBOARD_PATH}/account/profile`,
|
|
7391
|
+
accountConnections: `${DASHBOARD_PATH}/account/connections`,
|
|
7392
|
+
accountIntegrations: `${DASHBOARD_PATH}/account/integrations`,
|
|
7393
|
+
accountApiKeys: `${DASHBOARD_PATH}/account/api-keys`,
|
|
7394
|
+
accountPreferences: `${DASHBOARD_PATH}/account/preferences`,
|
|
7395
|
+
fullscreenWorkspaces: "/workspaces"
|
|
7396
|
+
};
|
|
7397
|
+
var LEGACY_WEB_APP_PATHS = {
|
|
7398
|
+
app: "/app",
|
|
7399
|
+
home: "/home",
|
|
7400
|
+
dashboardWorkspaces: `${DASHBOARD_PATH}/workspaces`
|
|
7401
|
+
};
|
|
7402
|
+
function getWorkspaceDashboardUrl(workspaceId, options = {}) {
|
|
7403
|
+
const { encodeWorkspaceId = true, mode, mediaId } = options;
|
|
7404
|
+
const workspaceIdValue = encodeWorkspaceId ? encodeURIComponent(workspaceId) : workspaceId;
|
|
7405
|
+
const params = [];
|
|
7406
|
+
if (mode) params.push(`mode=${encodeURIComponent(mode)}`);
|
|
7407
|
+
if (mediaId) params.push(`media=${encodeURIComponent(mediaId)}`);
|
|
7408
|
+
const query = params.length > 0 ? `?${params.join("&")}` : "";
|
|
7409
|
+
return `${DEFAULT_WEB_APP_URL}${WEB_APP_PATHS.fullscreenWorkspaces}/${workspaceIdValue}${query}`;
|
|
7410
|
+
}
|
|
7411
|
+
function getOrganizationMediaPath(organizationId, mediaId) {
|
|
7412
|
+
return `/organizations/${encodeURIComponent(organizationId)}/media/${encodeURIComponent(mediaId)}`;
|
|
7413
|
+
}
|
|
7414
|
+
function getOrganizationMediaUrl(organizationId, mediaId, webAppUrl = DEFAULT_WEB_APP_URL) {
|
|
7415
|
+
return `${webAppUrl}${getOrganizationMediaPath(organizationId, mediaId)}`;
|
|
7416
|
+
}
|
|
7417
|
+
|
|
7370
7418
|
// src/commands/login.ts
|
|
7371
7419
|
var import_http = __toESM(require("http"));
|
|
7372
7420
|
var import_url3 = require("url");
|
|
@@ -22412,6 +22460,24 @@ var ASTER_MODEL_LABELS = {
|
|
|
22412
22460
|
"gpt-oss-120b": "GPT-OSS 120B"
|
|
22413
22461
|
};
|
|
22414
22462
|
|
|
22463
|
+
// ../shared/src/models-dev.ts
|
|
22464
|
+
var MODELS_DEV_CACHE_MS = 5 * 6e4;
|
|
22465
|
+
var modelsDevCatalogSchema = external_exports.record(external_exports.string(), external_exports.object({
|
|
22466
|
+
models: external_exports.record(external_exports.string(), external_exports.object({
|
|
22467
|
+
id: external_exports.string().optional(),
|
|
22468
|
+
name: external_exports.string(),
|
|
22469
|
+
description: external_exports.string().optional(),
|
|
22470
|
+
status: external_exports.enum(["alpha", "beta", "deprecated"]).optional(),
|
|
22471
|
+
provider: external_exports.object({ npm: external_exports.string().optional() }).optional(),
|
|
22472
|
+
cost: external_exports.object({
|
|
22473
|
+
input: external_exports.number().finite().nonnegative().optional(),
|
|
22474
|
+
output: external_exports.number().finite().nonnegative().optional(),
|
|
22475
|
+
cache_read: external_exports.number().finite().nonnegative().optional(),
|
|
22476
|
+
cache_write: external_exports.number().finite().nonnegative().optional()
|
|
22477
|
+
}).optional()
|
|
22478
|
+
}))
|
|
22479
|
+
}));
|
|
22480
|
+
|
|
22415
22481
|
// ../shared/src/engine/types.ts
|
|
22416
22482
|
var CLAUDE_OPUS_1M_MODEL = "opus[1m]";
|
|
22417
22483
|
var LEGACY_CLAUDE_OPUS_1M_MODEL = "opus-1m";
|
|
@@ -23076,54 +23142,6 @@ function skillNamesFromCommand(command) {
|
|
|
23076
23142
|
})));
|
|
23077
23143
|
}
|
|
23078
23144
|
|
|
23079
|
-
// ../shared/src/urls.ts
|
|
23080
|
-
var DEFAULT_WEB_APP_URL = "https://replicas.dev";
|
|
23081
|
-
var HOME_PATH = "/home";
|
|
23082
|
-
var DASHBOARD_PATH = "/dashboard";
|
|
23083
|
-
var WEB_APP_PATHS = {
|
|
23084
|
-
home: HOME_PATH,
|
|
23085
|
-
onboarding: `${HOME_PATH}/onboarding`,
|
|
23086
|
-
workspaces: `${HOME_PATH}/workspace`,
|
|
23087
|
-
automations: `${HOME_PATH}/automations`,
|
|
23088
|
-
environment: `${HOME_PATH}/environment`,
|
|
23089
|
-
analytics: `${HOME_PATH}/analytics`,
|
|
23090
|
-
dashboard: DASHBOARD_PATH,
|
|
23091
|
-
agents: `${DASHBOARD_PATH}/agents`,
|
|
23092
|
-
integrations: `${DASHBOARD_PATH}/integrations`,
|
|
23093
|
-
integrationsGithub: `${DASHBOARD_PATH}/integrations/github`,
|
|
23094
|
-
integrationsGitlab: `${DASHBOARD_PATH}/integrations/gitlab`,
|
|
23095
|
-
settings: `${DASHBOARD_PATH}/settings`,
|
|
23096
|
-
billing: `${DASHBOARD_PATH}/billing`,
|
|
23097
|
-
members: `${DASHBOARD_PATH}/members`,
|
|
23098
|
-
"audit-logs": `${DASHBOARD_PATH}/audit-logs`,
|
|
23099
|
-
accountAgents: `${DASHBOARD_PATH}/account/agents`,
|
|
23100
|
-
accountProfile: `${DASHBOARD_PATH}/account/profile`,
|
|
23101
|
-
accountConnections: `${DASHBOARD_PATH}/account/connections`,
|
|
23102
|
-
accountIntegrations: `${DASHBOARD_PATH}/account/integrations`,
|
|
23103
|
-
accountApiKeys: `${DASHBOARD_PATH}/account/api-keys`,
|
|
23104
|
-
accountPreferences: `${DASHBOARD_PATH}/account/preferences`,
|
|
23105
|
-
fullscreenWorkspaces: "/workspaces"
|
|
23106
|
-
};
|
|
23107
|
-
var LEGACY_WEB_APP_PATHS = {
|
|
23108
|
-
app: "/app",
|
|
23109
|
-
dashboardWorkspaces: `${DASHBOARD_PATH}/workspaces`
|
|
23110
|
-
};
|
|
23111
|
-
function getWorkspaceDashboardUrl(workspaceId, options = {}) {
|
|
23112
|
-
const { encodeWorkspaceId = true, mode, mediaId } = options;
|
|
23113
|
-
const workspaceIdValue = encodeWorkspaceId ? encodeURIComponent(workspaceId) : workspaceId;
|
|
23114
|
-
const params = [];
|
|
23115
|
-
if (mode) params.push(`mode=${encodeURIComponent(mode)}`);
|
|
23116
|
-
if (mediaId) params.push(`media=${encodeURIComponent(mediaId)}`);
|
|
23117
|
-
const query = params.length > 0 ? `?${params.join("&")}` : "";
|
|
23118
|
-
return `${DEFAULT_WEB_APP_URL}${WEB_APP_PATHS.fullscreenWorkspaces}/${workspaceIdValue}${query}`;
|
|
23119
|
-
}
|
|
23120
|
-
function getOrganizationMediaPath(organizationId, mediaId) {
|
|
23121
|
-
return `/organizations/${encodeURIComponent(organizationId)}/media/${encodeURIComponent(mediaId)}`;
|
|
23122
|
-
}
|
|
23123
|
-
function getOrganizationMediaUrl(organizationId, mediaId, webAppUrl = DEFAULT_WEB_APP_URL) {
|
|
23124
|
-
return `${webAppUrl}${getOrganizationMediaPath(organizationId, mediaId)}`;
|
|
23125
|
-
}
|
|
23126
|
-
|
|
23127
23145
|
// ../shared/src/default-skills/replicas-agent/abilities/computer.ts
|
|
23128
23146
|
var SECTION = `### Computer use (Linux desktop control)
|
|
23129
23147
|
Drive the workspace's Linux desktop - open a browser, click, type, scroll, screenshot, record - via the \`replicas computer\` CLI. Every Replicas workspace boots with a live H.264 and Opus stream published as an authenticated preview, so a \`Desktop\` tab is always available in the dashboard. Use \`replicas computer info\` to get the viewer URL when you want to share it (e.g. point a user on Slack at the live stream).
|
|
@@ -23780,7 +23798,7 @@ For each media file, the CLI prints an embed line and a dashboard link:
|
|
|
23780
23798
|
|
|
23781
23799
|
1. Default and organization access print \`Replicas chat embed: \`; this authenticated URL renders inline in Replicas chat **only** \u2014 see below.
|
|
23782
23800
|
2. Public access (\`--access public\` or \`--share\`) prints \`\` as the Forge embed instead. This is the public, stable bearer URL for GitHub fallback embeds when native \`--attach\` is unavailable and sharing is authorized.
|
|
23783
|
-
3. \`View in Replicas: <deep-link>\` is a per-file dashboard URL of the form \`https://replicas.dev/workspaces/<workspace-id>?media=<media-id>\` that opens directly to that specific file.
|
|
23801
|
+
3. \`View in Replicas: <deep-link>\` is a per-file dashboard URL of the form \`https://app.replicas.dev/workspaces/<workspace-id>?media=<media-id>\` that opens directly to that specific file.
|
|
23784
23802
|
|
|
23785
23803
|
Match each "View in Replicas" line to the embed line directly above it \u2014 that's the deep link for that file.
|
|
23786
23804
|
|
|
@@ -23809,7 +23827,7 @@ replicas media upload screenshot.png --name "Login page" --access public
|
|
|
23809
23827
|
| \`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. |
|
|
23810
23828
|
| \`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. |
|
|
23811
23829
|
| \`https://api.replicas.dev/v1/media/public/<id>/<token>\` | Opt-in public bearer URL printed by \`--access public\` or \`--share\` | The Replicas chat reply and GitHub fallback embeds, for image, video, or audio media. |
|
|
23812
|
-
| \`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. |
|
|
23830
|
+
| \`https://app.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. |
|
|
23813
23831
|
|
|
23814
23832
|
### NEVER link the API redirect URL outside the Replicas chat reply
|
|
23815
23833
|
|
|
@@ -23828,7 +23846,7 @@ This rule has no exceptions:
|
|
|
23828
23846
|
For an organization-only HTML page, use the \`Forge link\` printed by \`--access organization\`. For other authenticated media references, use the dashboard form:
|
|
23829
23847
|
|
|
23830
23848
|
\`\`\`
|
|
23831
|
-
https://replicas.dev/workspaces/<workspace-id>?media=<media-id>
|
|
23849
|
+
https://app.replicas.dev/workspaces/<workspace-id>?media=<media-id>
|
|
23832
23850
|
\`\`\`
|
|
23833
23851
|
|
|
23834
23852
|
The \`media=<media-id>\` query param opens that specific file in the workspace.
|
|
@@ -23877,7 +23895,7 @@ await replicas.slack.call('files.completeUploadExternal', {
|
|
|
23877
23895
|
files: [{ id: reservation.file_id, title: 'Screenshot' }],
|
|
23878
23896
|
channel_id: 'CHANNEL_ID',
|
|
23879
23897
|
thread_ts: 'THREAD_TS',
|
|
23880
|
-
initial_comment: '<https://replicas.dev/workspaces/<workspace-id>?media=<media-id>|View in Replicas>',
|
|
23898
|
+
initial_comment: '<https://app.replicas.dev/workspaces/<workspace-id>?media=<media-id>|View in Replicas>',
|
|
23881
23899
|
});
|
|
23882
23900
|
\`\`\`
|
|
23883
23901
|
|
|
@@ -23937,7 +23955,7 @@ curl -s -X PUT "$UPLOAD_URL" \\
|
|
|
23937
23955
|
--data-binary @"$FILE"
|
|
23938
23956
|
|
|
23939
23957
|
# 3. Reference assetUrl inline in the comment body, alongside the dashboard link.
|
|
23940
|
-
BODY=$(printf '\\n\\n[View in Replicas](https://replicas.dev/workspaces/%s?media=%s)' \\
|
|
23958
|
+
BODY=$(printf '\\n\\n[View in Replicas](https://app.replicas.dev/workspaces/%s?media=%s)' \\
|
|
23941
23959
|
"$ASSET_URL" "$REPLICAS_WORKSPACE_ID" "$MEDIA_ID")
|
|
23942
23960
|
|
|
23943
23961
|
jq -n \\
|
|
@@ -23967,7 +23985,7 @@ Check \`gh --version\` before choosing the delivery path. On a supported host wi
|
|
|
23967
23985
|
Before the change:
|
|
23968
23986
|
|
|
23969
23987
|

|
|
23970
|
-
[View in Replicas](https://replicas.dev/workspaces/<workspace-id>?media=<before-media-id>)
|
|
23988
|
+
[View in Replicas](https://app.replicas.dev/workspaces/<workspace-id>?media=<before-media-id>)
|
|
23971
23989
|
\`\`\`
|
|
23972
23990
|
|
|
23973
23991
|
\`\`\`bash
|
|
@@ -24766,6 +24784,7 @@ var DEFAULT_USER_PREFERENCES = {
|
|
|
24766
24784
|
codex_hidden_models: null,
|
|
24767
24785
|
cursor_hidden_models: null,
|
|
24768
24786
|
openrouter_models: null,
|
|
24787
|
+
opencode_go_models: null,
|
|
24769
24788
|
close_workspace_on_pr_close: true,
|
|
24770
24789
|
close_workspace_on_pr_merge: true,
|
|
24771
24790
|
default_environment_id: null,
|
|
@@ -27089,24 +27108,6 @@ function parsePort(port) {
|
|
|
27089
27108
|
return portNumber;
|
|
27090
27109
|
}
|
|
27091
27110
|
|
|
27092
|
-
// ../shared/src/models-dev.ts
|
|
27093
|
-
var MODELS_DEV_CACHE_MS = 5 * 6e4;
|
|
27094
|
-
var modelsDevCatalogSchema = external_exports.record(external_exports.string(), external_exports.object({
|
|
27095
|
-
models: external_exports.record(external_exports.string(), external_exports.object({
|
|
27096
|
-
id: external_exports.string().optional(),
|
|
27097
|
-
name: external_exports.string(),
|
|
27098
|
-
description: external_exports.string().optional(),
|
|
27099
|
-
status: external_exports.enum(["alpha", "beta", "deprecated"]).optional(),
|
|
27100
|
-
provider: external_exports.object({ npm: external_exports.string().optional() }).optional(),
|
|
27101
|
-
cost: external_exports.object({
|
|
27102
|
-
input: external_exports.number().finite().nonnegative().optional(),
|
|
27103
|
-
output: external_exports.number().finite().nonnegative().optional(),
|
|
27104
|
-
cache_read: external_exports.number().finite().nonnegative().optional(),
|
|
27105
|
-
cache_write: external_exports.number().finite().nonnegative().optional()
|
|
27106
|
-
}).optional()
|
|
27107
|
-
}))
|
|
27108
|
-
}));
|
|
27109
|
-
|
|
27110
27111
|
// ../shared/src/sandbox.ts
|
|
27111
27112
|
var SANDBOX_LIFECYCLE = {
|
|
27112
27113
|
AUTO_STOP_MINUTES: 60,
|
|
@@ -27253,7 +27254,7 @@ var headlessFilesystemAgentResultSchema = external_exports.object({
|
|
|
27253
27254
|
});
|
|
27254
27255
|
|
|
27255
27256
|
// ../shared/src/cli-version.ts
|
|
27256
|
-
var CLI_VERSION = "0.2.
|
|
27257
|
+
var CLI_VERSION = "0.2.654";
|
|
27257
27258
|
|
|
27258
27259
|
// ../shared/src/version.ts
|
|
27259
27260
|
function compareVersions(v1, v2) {
|
|
@@ -28124,7 +28125,7 @@ async function openForApproval(host, authUrl) {
|
|
|
28124
28125
|
}
|
|
28125
28126
|
|
|
28126
28127
|
// src/commands/login.ts
|
|
28127
|
-
var WEB_APP_URL = process.env.REPLICAS_WEB_URL ||
|
|
28128
|
+
var WEB_APP_URL = process.env.REPLICAS_WEB_URL || DEFAULT_WEB_APP_URL;
|
|
28128
28129
|
function generateState() {
|
|
28129
28130
|
return Math.random().toString(36).substring(2, 15) + Math.random().toString(36).substring(2, 15);
|
|
28130
28131
|
}
|
|
@@ -28568,7 +28569,7 @@ async function prepareWorkspaceConnection(workspaceName) {
|
|
|
28568
28569
|
const selectedWorkspace = await resolveWorkspaceRecord(workspaceName);
|
|
28569
28570
|
if (isWorkspaceSuspendedStatus(selectedWorkspace.status)) {
|
|
28570
28571
|
throw new Error(
|
|
28571
|
-
`Workspace is currently ${selectedWorkspace.status}. Wake it at
|
|
28572
|
+
`Workspace is currently ${selectedWorkspace.status}. Wake it at ${DEFAULT_WEB_APP_URL}`
|
|
28572
28573
|
);
|
|
28573
28574
|
}
|
|
28574
28575
|
console.log(import_chalk5.default.blue("\nRequesting SSH access token..."));
|
|
@@ -28951,7 +28952,7 @@ var AUTHORIZATION_ENDPOINT = "https://auth.openai.com/oauth/authorize";
|
|
|
28951
28952
|
var TOKEN_ENDPOINT = "https://auth.openai.com/oauth/token";
|
|
28952
28953
|
var CALLBACK_PORT = 1455;
|
|
28953
28954
|
var CALLBACK_PATH = "/auth/callback";
|
|
28954
|
-
var WEB_APP_URL2 = process.env.REPLICAS_WEB_URL ||
|
|
28955
|
+
var WEB_APP_URL2 = process.env.REPLICAS_WEB_URL || DEFAULT_WEB_APP_URL;
|
|
28955
28956
|
function buildAuthorizationUrl(codeChallenge, state) {
|
|
28956
28957
|
const redirectUri = `http://localhost:${CALLBACK_PORT}${CALLBACK_PATH}`;
|
|
28957
28958
|
const params = new URLSearchParams({
|
|
@@ -29162,7 +29163,7 @@ async function runCredentialAuthFlow(options, flow) {
|
|
|
29162
29163
|
}
|
|
29163
29164
|
const saved = reauthenticated || !target.organization ? await resolveAuthFlowTarget(identity) : target;
|
|
29164
29165
|
renderAuthFlowSuccess(providerLabel, response, saved);
|
|
29165
|
-
const completionUrl = new URL("/cli-login/success", process.env.REPLICAS_WEB_URL ||
|
|
29166
|
+
const completionUrl = new URL("/cli-login/success", process.env.REPLICAS_WEB_URL || DEFAULT_WEB_APP_URL);
|
|
29166
29167
|
completionUrl.searchParams.set("provider", flow.provider);
|
|
29167
29168
|
completionUrl.searchParams.set("email", saved.replicasAccount ?? "");
|
|
29168
29169
|
completionUrl.searchParams.set("scope", isUserScoped ? "user" : "org");
|