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.
Files changed (2) hide show
  1. package/dist/index.cjs +78 -77
  2. 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: ![filename](<api-url>)\`; this authenticated URL renders inline in Replicas chat **only** \u2014 see below.
23782
23800
  2. Public access (\`--access public\` or \`--share\`) prints \`![filename](<public-url>)\` 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 \`![\u2026](\u2026)\`) | 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 '![screenshot](%s)\\n\\n[View in Replicas](https://replicas.dev/workspaces/%s?media=%s)' \\
23958
+ BODY=$(printf '![screenshot](%s)\\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
  ![Before state](/tmp/before.png)
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.652";
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 || "https://replicas.dev";
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 https://replicas.dev`
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 || "https://replicas.dev";
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 || "https://replicas.dev");
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");
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "replicas-cli",
3
- "version": "0.2.652",
3
+ "version": "0.2.654",
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": {