replicas-cli 0.3.148 → 0.3.149

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 +32 -5
  2. package/package.json +1 -1
package/dist/index.cjs CHANGED
@@ -29043,7 +29043,7 @@ var headlessAgentRequestSchema = external_exports.object({
29043
29043
  });
29044
29044
 
29045
29045
  // ../shared/src/cli-version.ts
29046
- var CLI_VERSION = "0.3.148";
29046
+ var CLI_VERSION = "0.3.149";
29047
29047
 
29048
29048
  // ../shared/src/version.ts
29049
29049
  function compareVersions(v1, v2) {
@@ -29513,10 +29513,37 @@ var HOSTED_COMPOSIO_PLUGINS = HOSTED_COMPOSIO_PLUGIN_DEFINITIONS.map(
29513
29513
  description: `Use ${name} tools from workspace agents.`
29514
29514
  })
29515
29515
  );
29516
+ var READ_ONLY_SCOPES = {
29517
+ gmail: ["https://www.googleapis.com/auth/userinfo.email", "https://www.googleapis.com/auth/userinfo.profile", "https://www.googleapis.com/auth/contacts.readonly", "https://www.googleapis.com/auth/contacts.other.readonly", "https://www.googleapis.com/auth/gmail.readonly"],
29518
+ googledocs: ["https://www.googleapis.com/auth/userinfo.email", "https://www.googleapis.com/auth/drive.readonly", "https://www.googleapis.com/auth/documents.readonly"],
29519
+ googledrive: ["https://www.googleapis.com/auth/userinfo.email", "https://www.googleapis.com/auth/drive.readonly"],
29520
+ googlesheets: ["https://www.googleapis.com/auth/userinfo.email", "https://www.googleapis.com/auth/drive.readonly", "https://www.googleapis.com/auth/spreadsheets.readonly"],
29521
+ googleslides: ["https://www.googleapis.com/auth/userinfo.email", "https://www.googleapis.com/auth/drive.readonly", "https://www.googleapis.com/auth/presentations.readonly"],
29522
+ googlecalendar: ["https://www.googleapis.com/auth/calendar.readonly"],
29523
+ googletasks: ["https://www.googleapis.com/auth/tasks.readonly"],
29524
+ googlesearch: ["https://www.googleapis.com/auth/userinfo.email", "https://www.googleapis.com/auth/userinfo.profile", "https://www.googleapis.com/auth/webmasters.readonly"],
29525
+ googleanalytics: ["https://www.googleapis.com/auth/userinfo.profile", "https://www.googleapis.com/auth/analytics.readonly"],
29526
+ youtube: ["https://www.googleapis.com/auth/youtube.readonly"],
29527
+ outlook: ["User.Read", "Mail.Read", "MailboxSettings.Read", "Calendars.Read", "Contacts.Read", "offline_access"],
29528
+ onedrive: ["Files.Read.All", "Sites.Read.All", "offline_access"],
29529
+ microsoftteams: ["User.Read", "Team.ReadBasic.All", "Channel.ReadBasic.All", "ChannelMessage.Read.All", "Chat.Read", "Chat.ReadBasic", "ChatMessage.Read", "People.Read.All", "TeamsActivity.Read", "offline_access"],
29530
+ jira: ["read:jira-work", "read:jira-user", "read:servicedesk-request", "read:servicemanagement-insight-objects", "read:sprint:jira-software", "read:board-scope:jira-software", "read:project:jira", "read:issue-type-scheme:jira", "offline_access"],
29531
+ confluence: ["read:space-details:confluence", "read:audit-log:confluence", "read:page:confluence", "read:blogpost:confluence", "read:whiteboard:confluence", "read:comment:confluence", "read:content.restriction:confluence", "read:content.metadata:confluence", "read:inlinetask:confluence", "read:task:confluence", "offline_access"],
29532
+ pagerduty: ["read"],
29533
+ zendesk: ["read"],
29534
+ gong: ["api:calls:read:basic", "api:calls:read:extensive", "api:calls:read:transcript", "api:calls:read:media-url", "api:users:read", "api:stats:interaction", "api:stats:scorecards", "api:stats:user-actions", "api:stats:user-actions:detailed", "api:settings:scorecards:read", "api:settings:trackers:read", "api:library:read", "api:tasks:read", "api:flows:read", "api:workspaces:read", "api:crm:get-objects", "api:crm:schema", "api:crm:integrations:read", "api:call-outcomes:read", "api:permission-profile:read", "api:logs:read"],
29535
+ figma: ["current_user:read", "file_content:read", "file_comments:read", "file_metadata:read", "file_versions:read", "projects:read", "library_assets:read", "library_content:read", "team_library_content:read", "webhooks:read"],
29536
+ airtable: ["data.records:read", "data.recordComments:read", "schema.bases:read", "user.email:read"],
29537
+ todoist: ["data:read"],
29538
+ dropbox: ["openid", "email", "profile", "account_info.read", "files.metadata.read", "files.content.read", "file_requests.read", "sharing.read", "contacts.read"],
29539
+ canva: ["profile:read", "asset:read", "brandtemplate:content:read", "brandtemplate:meta:read", "comment:read", "design:content:read", "design:meta:read", "folder:read"],
29540
+ facebook: ["public_profile", "email", "pages_show_list", "pages_read_engagement", "pages_read_user_content", "read_insights"],
29541
+ instagram: ["instagram_business_basic", "instagram_business_manage_insights"]
29542
+ };
29516
29543
  var PLUGIN_CATALOG = [
29517
29544
  ...EXPLICIT_PLUGIN_CATALOG,
29518
29545
  ...HOSTED_COMPOSIO_PLUGINS
29519
- ];
29546
+ ].map((plugin) => ({ ...plugin, readOnlyScopes: READ_ONLY_SCOPES[plugin.id] }));
29520
29547
 
29521
29548
  // ../shared/src/routes/user.ts
29522
29549
  var PROFILE_AVATAR_MAX_SIZE_BYTES = 5 * 1024 * 1024;
@@ -33200,7 +33227,7 @@ async function pluginsListCommand(options) {
33200
33227
  for (const plugin of plugins2) {
33201
33228
  const connections = environment2.filter((connection) => connection.pluginId === plugin.id);
33202
33229
  if (!options.all && connections.length === 0) continue;
33203
- const status = connections.map((connection) => `${connection.status}${connection.accountLabel ? ` (${connection.accountLabel})` : ""}`).join(", ");
33230
+ const status = connections.map((connection) => `${connection.status}${connection.readOnly ? " read-only" : ""}${connection.accountLabel ? ` (${connection.accountLabel})` : ""}`).join(", ");
33204
33231
  console.log(`${plugin.id} ${plugin.authType} ${status || "-"} ${plugin.name}`);
33205
33232
  }
33206
33233
  });
@@ -33208,7 +33235,7 @@ async function pluginsListCommand(options) {
33208
33235
  async function pluginsOAuthCommand(pluginId, options) {
33209
33236
  const response = await orgAuthenticatedFetch(
33210
33237
  await pluginsPath(options, `/${pluginId}/oauth/start`),
33211
- { method: "POST" }
33238
+ { method: "POST", body: { readOnly: options.readOnly === true } }
33212
33239
  );
33213
33240
  output(response, ({ authorizationUrl }) => console.log(authorizationUrl));
33214
33241
  }
@@ -35587,7 +35614,7 @@ repos.command("branches <name-or-id>").description("List branches of a repositor
35587
35614
  repos.action(run(repositoriesListCommand));
35588
35615
  var plugins = program.command("plugins").description("Connect plugins (organization-wide, or to one environment with --env)");
35589
35616
  plugins.command("list").description("List connected plugins").option("-e, --env <env>", "Environment name or ID").option("-a, --all", "Include plugins that are not connected").action(run(pluginsListCommand));
35590
- plugins.command("oauth <pluginId>").description("Start an OAuth connection and print the URL to open").option("-e, --env <env>", "Environment name or ID").action(run(pluginsOAuthCommand));
35617
+ plugins.command("oauth <pluginId>").description("Start an OAuth connection and print the URL to open").option("-e, --env <env>", "Environment name or ID").option("--read-only", "Request read-only access, for plugins that support it").action(run(pluginsOAuthCommand));
35591
35618
  plugins.command("connect <pluginId>").description("Connect a plugin with credentials: replicas plugins connect posthog -s apiKey=... -s region=us").option("-e, --env <env>", "Environment name or ID").option("-s, --set <key=value>", "Credential field (repeatable)", collect, []).action(run(pluginsConnectCommand));
35592
35619
  plugins.command("disconnect <pluginId>").description("Disconnect a plugin").option("-e, --env <env>", "Environment name or ID").option("-c, --connection <connectionId>", "Disconnect only this connection").action(run(pluginsDisconnectCommand));
35593
35620
  var skills = program.command("skills").description("Organization skills learned from users");
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "replicas-cli",
3
- "version": "0.3.148",
3
+ "version": "0.3.149",
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": {