replicas-cli 0.3.273 → 0.3.275

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 +76 -53
  2. package/package.json +1 -1
package/dist/index.cjs CHANGED
@@ -16938,6 +16938,62 @@ var init_pr_footer = __esm({
16938
16938
  }
16939
16939
  });
16940
16940
 
16941
+ // ../shared/src/routes/linear.ts
16942
+ var linearSessionMetadataSchema, LINEAR_WORKFLOW_STATE_TYPES;
16943
+ var init_linear = __esm({
16944
+ "../shared/src/routes/linear.ts"() {
16945
+ "use strict";
16946
+ init_zod();
16947
+ init_agent();
16948
+ linearSessionMetadataSchema = external_exports.object({
16949
+ via_mothership: external_exports.boolean().optional(),
16950
+ attached: external_exports.boolean().optional(),
16951
+ issue_id: external_exports.string(),
16952
+ issue_identifier: external_exports.string(),
16953
+ issue_title: external_exports.string(),
16954
+ issue_description: external_exports.string(),
16955
+ issue_url: external_exports.string(),
16956
+ comment_id: external_exports.string(),
16957
+ comment_body: external_exports.string(),
16958
+ triggered_by_id: external_exports.string().optional(),
16959
+ triggered_by_name: external_exports.string().optional(),
16960
+ triggered_by_email: external_exports.string().optional(),
16961
+ linear_workspace_id: external_exports.string().optional(),
16962
+ creator_id: external_exports.string().optional(),
16963
+ creator_name: external_exports.string().optional(),
16964
+ creator_email: external_exports.string().optional(),
16965
+ assignee_id: external_exports.string().optional(),
16966
+ assignee_name: external_exports.string().optional(),
16967
+ assignee_email: external_exports.string().optional(),
16968
+ issue_state: external_exports.string().optional(),
16969
+ parent_issue: external_exports.object({
16970
+ id: external_exports.string(),
16971
+ identifier: external_exports.string(),
16972
+ title: external_exports.string(),
16973
+ description: external_exports.string().nullable()
16974
+ }).optional(),
16975
+ workspace: external_exports.object({
16976
+ id: external_exports.string(),
16977
+ coding_agent: external_exports.custom((value) => typeof value === "string" && isValidAgentProvider(value)),
16978
+ task_description: external_exports.string(),
16979
+ created_at: external_exports.string()
16980
+ }).optional()
16981
+ });
16982
+ LINEAR_WORKFLOW_STATE_TYPES = ["triage", "backlog", "unstarted", "started", "completed", "canceled", "duplicate"];
16983
+ }
16984
+ });
16985
+
16986
+ // ../shared/src/automations/linear/index.ts
16987
+ var LINEAR_ISSUE_STATE_CHANGED_EVENT, LINEAR_STATE_TYPES;
16988
+ var init_linear2 = __esm({
16989
+ "../shared/src/automations/linear/index.ts"() {
16990
+ "use strict";
16991
+ init_linear();
16992
+ LINEAR_ISSUE_STATE_CHANGED_EVENT = "issue.state_changed";
16993
+ LINEAR_STATE_TYPES = LINEAR_WORKFLOW_STATE_TYPES.filter((type) => type !== "duplicate");
16994
+ }
16995
+ });
16996
+
16941
16997
  // ../shared/src/uuid.ts
16942
16998
  var UUID_RE;
16943
16999
  var init_uuid = __esm({
@@ -16999,13 +17055,14 @@ function getReviewerLoginsError(event, logins) {
16999
17055
  if (isReviewRequested === !!logins?.some((login) => login.trim().replace(/^@+/, ""))) return null;
17000
17056
  return isReviewRequested ? "The PR review requested trigger needs at least one GitHub username" : "Requested reviewers only apply to the PR review requested trigger";
17001
17057
  }
17002
- var repositoryTriggerConfigSchema, cronTriggerSchema, githubTriggerSchema, gitlabTriggerSchema, automationTriggerSchema;
17058
+ var repositoryTriggerConfigSchema, cronTriggerSchema, githubTriggerSchema, gitlabTriggerSchema, linearTriggerConfigSchema, automationTriggerSchema;
17003
17059
  var init_trigger_schemas = __esm({
17004
17060
  "../shared/src/automations/trigger-schemas.ts"() {
17005
17061
  "use strict";
17006
17062
  init_zod();
17007
17063
  init_uuid();
17008
17064
  init_github();
17065
+ init_linear2();
17009
17066
  repositoryTriggerConfigSchema = external_exports.object({
17010
17067
  event: external_exports.string(),
17011
17068
  repository_ids: external_exports.array(external_exports.string().regex(UUID_RE, "must be a repository id")).optional(),
@@ -17022,12 +17079,14 @@ var init_trigger_schemas = __esm({
17022
17079
  })
17023
17080
  });
17024
17081
  gitlabTriggerSchema = external_exports.object({ type: external_exports.literal("gitlab"), config: repositoryTriggerConfigSchema });
17082
+ linearTriggerConfigSchema = external_exports.object({ event: external_exports.string(), team_ids: external_exports.array(external_exports.string()).optional(), state_types: external_exports.array(external_exports.enum(LINEAR_STATE_TYPES)).optional() });
17025
17083
  automationTriggerSchema = external_exports.discriminatedUnion("type", [
17026
17084
  cronTriggerSchema,
17027
17085
  githubTriggerSchema,
17028
17086
  gitlabTriggerSchema,
17029
17087
  external_exports.object({ type: external_exports.literal("slack"), config: external_exports.object({ event: external_exports.string(), channel_ids: external_exports.array(external_exports.string()).optional(), group_thread_replies: external_exports.boolean().optional() }) }),
17030
17088
  external_exports.object({ type: external_exports.literal("sentry"), config: external_exports.object({ event: external_exports.string(), project_slugs: external_exports.array(external_exports.string()).optional(), min_level: external_exports.string().optional() }) }),
17089
+ external_exports.object({ type: external_exports.literal("linear"), config: linearTriggerConfigSchema }),
17031
17090
  external_exports.object({ type: external_exports.literal("custom"), config: external_exports.object({}) })
17032
17091
  ]);
17033
17092
  }
@@ -17301,6 +17360,7 @@ var init_replicas_mcp = __esm({
17301
17360
  "use strict";
17302
17361
  init_zod();
17303
17362
  init_agent();
17363
+ init_linear2();
17304
17364
  init_trigger_schemas();
17305
17365
  init_types5();
17306
17366
  init_chat_fork();
@@ -17325,6 +17385,7 @@ var init_replicas_mcp = __esm({
17325
17385
  setSlackAgentDefaults: "set_slack_agent_defaults",
17326
17386
  claimSettingsOffer: "claim_settings_offer",
17327
17387
  setThreadMuted: "set_thread_muted",
17388
+ setSlackConnectMuted: "set_slack_connect_muted",
17328
17389
  spawnSubagent: "spawn_subagent",
17329
17390
  messageSubagent: "message_subagent",
17330
17391
  listSubagents: "list_subagents",
@@ -17357,7 +17418,7 @@ var init_replicas_mcp = __esm({
17357
17418
  prompt: external_exports.string().describe("Prompt each automation run starts with."),
17358
17419
  environment_id: external_exports.string().describe(`Environment id from \`${REPLICAS_MCP_TOOLS.listEnvironments}\`.`),
17359
17420
  triggers: external_exports.array(automationTriggerSchema).min(1).describe(
17360
- 'One or more triggers. Cron: `{ "type": "cron", "config": { "schedule": "0 9 * * 1", "timezone": "America/New_York" } }`. GitHub: `{ "type": "github", "config": { "event": "pull_request.opened", "repository_ids": ["<repository uuid>"] } }`.'
17421
+ `One or more triggers. Cron: \`{ "type": "cron", "config": { "schedule": "0 9 * * 1", "timezone": "America/New_York" } }\`. GitHub: \`{ "type": "github", "config": { "event": "pull_request.opened", "repository_ids": ["<repository uuid>"] } }\`. Linear: \`{ "type": "linear", "config": { "event": "${LINEAR_ISSUE_STATE_CHANGED_EVENT}", "state_types": ["completed"] } }\`.`
17361
17422
  ),
17362
17423
  description: external_exports.string().optional().describe("One-line summary shown in the dashboard."),
17363
17424
  plan_mode: external_exports.boolean().optional(),
@@ -18663,7 +18724,7 @@ replicas gpu delete
18663
18724
 
18664
18725
  // ../shared/src/default-skills/replicas-agent/abilities/linear.ts
18665
18726
  var SECTION7, REFERENCE7, LINEAR_ABILITY;
18666
- var init_linear = __esm({
18727
+ var init_linear3 = __esm({
18667
18728
  "../shared/src/default-skills/replicas-agent/abilities/linear.ts"() {
18668
18729
  "use strict";
18669
18730
  SECTION7 = `### Linear
@@ -20333,7 +20394,7 @@ var init_registry = __esm({
20333
20394
  init_github2();
20334
20395
  init_gitlab();
20335
20396
  init_gpu();
20336
- init_linear();
20397
+ init_linear3();
20337
20398
  init_media();
20338
20399
  init_previews();
20339
20400
  init_plugins();
@@ -31630,7 +31691,7 @@ var CLI_VERSION;
31630
31691
  var init_cli_version = __esm({
31631
31692
  "../shared/src/cli-version.ts"() {
31632
31693
  "use strict";
31633
- CLI_VERSION = "0.3.273";
31694
+ CLI_VERSION = "0.3.274";
31634
31695
  }
31635
31696
  });
31636
31697
 
@@ -31860,50 +31921,6 @@ var init_external_accounts = __esm({
31860
31921
  }
31861
31922
  });
31862
31923
 
31863
- // ../shared/src/routes/linear.ts
31864
- var linearSessionMetadataSchema;
31865
- var init_linear2 = __esm({
31866
- "../shared/src/routes/linear.ts"() {
31867
- "use strict";
31868
- init_zod();
31869
- init_agent();
31870
- linearSessionMetadataSchema = external_exports.object({
31871
- via_mothership: external_exports.boolean().optional(),
31872
- attached: external_exports.boolean().optional(),
31873
- issue_id: external_exports.string(),
31874
- issue_identifier: external_exports.string(),
31875
- issue_title: external_exports.string(),
31876
- issue_description: external_exports.string(),
31877
- issue_url: external_exports.string(),
31878
- comment_id: external_exports.string(),
31879
- comment_body: external_exports.string(),
31880
- triggered_by_id: external_exports.string().optional(),
31881
- triggered_by_name: external_exports.string().optional(),
31882
- triggered_by_email: external_exports.string().optional(),
31883
- linear_workspace_id: external_exports.string().optional(),
31884
- creator_id: external_exports.string().optional(),
31885
- creator_name: external_exports.string().optional(),
31886
- creator_email: external_exports.string().optional(),
31887
- assignee_id: external_exports.string().optional(),
31888
- assignee_name: external_exports.string().optional(),
31889
- assignee_email: external_exports.string().optional(),
31890
- issue_state: external_exports.string().optional(),
31891
- parent_issue: external_exports.object({
31892
- id: external_exports.string(),
31893
- identifier: external_exports.string(),
31894
- title: external_exports.string(),
31895
- description: external_exports.string().nullable()
31896
- }).optional(),
31897
- workspace: external_exports.object({
31898
- id: external_exports.string(),
31899
- coding_agent: external_exports.custom((value) => typeof value === "string" && isValidAgentProvider(value)),
31900
- task_description: external_exports.string(),
31901
- created_at: external_exports.string()
31902
- }).optional()
31903
- });
31904
- }
31905
- });
31906
-
31907
31924
  // ../shared/src/routes/slack.ts
31908
31925
  var init_slack2 = __esm({
31909
31926
  "../shared/src/routes/slack.ts"() {
@@ -31912,7 +31929,7 @@ var init_slack2 = __esm({
31912
31929
  });
31913
31930
 
31914
31931
  // ../shared/src/routes/scout.ts
31915
- var SCOUT_LINEAR_ACTIONS, scoutLinearSessionIntentRequestSchema, scoutLinearStartRequestSchema, slackChannelIdSchema, slackThreadTsSchema, scoutSlackSpawnRequestSchema, scoutSlackSpawnInNewThreadRequestSchema, scoutSlackRelayRequestSchema, scoutSlackSetThreadMutedRequestSchema, scoutListWorkspacesRequestSchema, scoutSlackConfirmationSchema, scoutAutomationToolInputSchema, scoutSaveChannelPresetToolInputSchema, scoutUpdateChannelSettingsToolInputSchema, scoutSetOrganizationProactivityToolInputSchema, scoutDeleteChannelPresetToolInputSchema, RESET_TO_DEFAULT, resettable, scoutSetSlackAgentDefaultsToolInputSchema, scoutClaimSettingsOfferToolInputSchema;
31932
+ var SCOUT_LINEAR_ACTIONS, scoutLinearSessionIntentRequestSchema, scoutLinearStartRequestSchema, slackChannelIdSchema, slackThreadTsSchema, scoutSlackSpawnRequestSchema, scoutSlackSpawnInNewThreadRequestSchema, scoutSlackRelayRequestSchema, scoutSlackSetThreadMutedRequestSchema, scoutListWorkspacesRequestSchema, scoutSlackConfirmationSchema, scoutAutomationToolInputSchema, scoutSaveChannelPresetToolInputSchema, scoutUpdateChannelSettingsToolInputSchema, scoutSetSlackConnectMutedToolInputSchema, scoutSetOrganizationProactivityToolInputSchema, scoutDeleteChannelPresetToolInputSchema, RESET_TO_DEFAULT, resettable, scoutSetSlackAgentDefaultsToolInputSchema, scoutClaimSettingsOfferToolInputSchema;
31916
31933
  var init_scout2 = __esm({
31917
31934
  "../shared/src/routes/scout.ts"() {
31918
31935
  "use strict";
@@ -31988,7 +32005,11 @@ var init_scout2 = __esm({
31988
32005
  monitored: external_exports.boolean().optional().describe("Linear: `true` starts monitoring the team (organization admins only), `false` stops. Slack: kept for older callers; prefer `proactivity`. `false` means `tagged`, and `true` lifts a `tagged` channel back to the organization's level. Omit to keep it."),
31989
32006
  preset_id: external_exports.string().nullable().optional().describe("Preset to assign; `null` removes the preset. Omit to keep it."),
31990
32007
  instructions: external_exports.string().nullable().optional().describe("Complete channel-specific instructions, applied after the preset; replaces the existing text. `null` clears them. Omit to keep them."),
31991
- proactivity: external_exports.enum([...SCOUT_PROACTIVITY_LEVELS, "organization"]).optional().describe("Slack only: this channel's or group DM's own level, overriding the organization's here alone. `organization` makes it follow the organization's level again. Omit to keep it. 1:1 DMs are always addressed to Replicas, so they take no level.")
32008
+ proactivity: external_exports.enum([...SCOUT_PROACTIVITY_LEVELS, "organization"]).optional().describe("Slack only: this channel's or group DM's own level, overriding the organization's here alone. `organization` makes it follow the organization's level again. Omit to keep it. 1:1 DMs are always addressed to Replicas, so they take no level."),
32009
+ muted: external_exports.enum(["on", "off", "default"]).optional().describe(`Slack only, organization admins only: \`on\` mutes Replicas in this channel, \`off\` unmutes it here, \`default\` follows the Slack Connect default from \`${REPLICAS_MCP_TOOLS.setSlackConnectMuted}\`. Omit to keep it.`)
32010
+ });
32011
+ scoutSetSlackConnectMutedToolInputSchema = scoutSlackConfirmationSchema.extend({
32012
+ muted: external_exports.boolean().describe("`true` mutes Replicas in every Slack Connect channel without its own setting; `false` lets them follow their levels again.")
31992
32013
  });
31993
32014
  scoutSetOrganizationProactivityToolInputSchema = scoutSlackConfirmationSchema.extend({
31994
32015
  proactivity: external_exports.enum(SCOUT_PROACTIVITY_LEVELS).describe("The level every Slack channel and group DM follows unless it has its own. Slack Connect channels without their own level stay `tagged`.")
@@ -41922,6 +41943,7 @@ var init_registry2 = __esm({
41922
41943
  init_gitlab3();
41923
41944
  init_slack3();
41924
41945
  init_sentry3();
41946
+ init_linear2();
41925
41947
  init_custom();
41926
41948
  }
41927
41949
  });
@@ -41941,6 +41963,7 @@ var init_automations = __esm({
41941
41963
  init_cron();
41942
41964
  init_slack3();
41943
41965
  init_sentry3();
41966
+ init_linear2();
41944
41967
  init_custom();
41945
41968
  init_trigger_schemas();
41946
41969
  }
@@ -42358,7 +42381,7 @@ var init_src = __esm({
42358
42381
  init_gitlab2();
42359
42382
  init_integrations();
42360
42383
  init_external_accounts();
42361
- init_linear2();
42384
+ init_linear();
42362
42385
  init_slack2();
42363
42386
  init_scout2();
42364
42387
  init_plugins2();
@@ -48749,7 +48772,7 @@ var init_src2 = __esm({
48749
48772
  credentials.command("remove <service>").description("Remove stored credentials for a service (also claude, codex, muse subscriptions)").option("-o, --org", "Organization credentials instead of personal").action(run(credentialsRemoveCommand));
48750
48773
  credentials.command("usage").description("Show how much of each connected Claude and ChatGPT subscription's 5-hour and weekly limits is used (personal and organization by default)").addOption(new import_commander.Option("-o, --org", "Only organization subscriptions").conflicts("user")).option("-u, --user", "Only your personal subscriptions").action(run(credentialsUsageCommand));
48751
48774
  automation = program.command("automation").alias("auto").description("Manage automations");
48752
- automation.command("list").description("List all automations").option("-p, --page <page>", "Page number").option("-l, --limit <limit>", "Number of items per page").option("--owner <owner>", "Ownership filter: org, user, all").option("--trigger-type <type>", "Only automations with a trigger of this type (cron, github, gitlab, slack, sentry, custom)").option("--enabled <enabled>", "Only enabled or disabled automations (true/false)").option("--search <search>", "Case-insensitive substring match on the name").option("--background <background>", "Only background (true) or main-list (false) automations").action(run(automationListCommand));
48775
+ automation.command("list").description("List all automations").option("-p, --page <page>", "Page number").option("-l, --limit <limit>", "Number of items per page").option("--owner <owner>", "Ownership filter: org, user, all").option("--trigger-type <type>", "Only automations with a trigger of this type (cron, github, gitlab, slack, sentry, linear, custom)").option("--enabled <enabled>", "Only enabled or disabled automations (true/false)").option("--search <search>", "Case-insensitive substring match on the name").option("--background <background>", "Only background (true) or main-list (false) automations").action(run(automationListCommand));
48753
48776
  automation.command("get <id>").description("Get automation details by ID").action(run(automationGetCommand));
48754
48777
  automation.command("create [name]").description("Create a new automation").option("-p, --prompt <prompt>", "Prompt for the automation").option("-d, --description <description>", "Description shown with the automation").option("-e, --environment <environment>", "Environment name or ID").option("--size <size>", "Size of workspaces runs create (not a reused existing one): small (default), large, ultra").option("--trigger-cron <schedule>", 'Cron schedule expression, e.g. "0 9 * * 1-5" (repeatable)', collect, []).option("--trigger-cron-timezone <timezone>", "Timezone for cron schedules (default: UTC)").option("--trigger-github <event>", 'GitHub event, e.g. "pull_request.opened" (repeatable)', collect, []).option("--trigger-github-repos <repos>", "Comma-separated repo names to filter GitHub trigger").option("--trigger-github-exclude-users <users>", "Comma-separated GitHub usernames to exclude from triggering (pass empty string to clear the list)").option("--trigger-github-reviewers <users>", "Comma-separated GitHub usernames to fire for (required with pull_request.review_requested)").option("--trigger-gitlab <event>", 'GitLab event, e.g. "merge_request.opened" (repeatable)', collect, []).option("--trigger-gitlab-repos <repos>", "Comma-separated repo names to filter GitLab trigger").option("--trigger-gitlab-exclude-users <users>", "Comma-separated GitLab usernames to exclude from triggering (pass empty string to clear the list)").option("--github-checks <names>", "Comma-separated GitHub check names to create on matching PRs (requires a PR opened/updated trigger)").option("--lifecycle <policy>", "Workspace lifecycle: delete_when_done (default for new automations), sleep_when_done, archive_when_done, default").option("--sleep-when-done", "Sleep automation workspaces as soon as the agent finishes").option("--auto-stop-minutes <minutes>", "Inactivity timeout in minutes (3-1440, requires --lifecycle default)").option("--pr-followups", "Allow follow-up actions on matching PRs").option("--agent-provider <provider>", 'Coding agent to use: claude, codex, cursor (or "none" to inherit org default)').option("--model <model>", 'Model identifier (must be valid for --agent-provider; pass "none" to clear)').option("--thinking-level <level>", 'Thinking/reasoning level: low, medium, high, xhigh, max (or "none" to clear)').option("--plan-mode", "Run automation messages in plan mode").option("--goal-mode", "Set automation messages as goals").option("--fast-mode", "Run automation messages in fast mode").option("--personal", "Create a personal automation owned by the authenticated user").option("--in <duration>", "Run once after this long, e.g. 30m, 2h, 3d, 1w (inside a workspace, defaults --workspace to current)").option("--at <datetime>", "Run once at this ISO-8601 time with timezone, e.g. 2026-10-08T09:00:00-07:00").option("--max-runs <n>", 'Delete the automation after this many runs ("none" for unlimited)').option("--workspace <target>", "Where runs go: new (default, new workspace each run), reuse (one workspace created on the first run), current (this workspace), or a workspace ID").option("--background", "Keep it out of the main automations list (for offhand follow-ups)").option("--disabled", "Create in disabled state").action(run((name, options) => automationCreateCommand(name, { ...options, enabled: !options.disabled })));
48755
48778
  automation.command("edit <id>").description("Edit an existing automation").option("-n, --name <name>", "New name").option("-p, --prompt <prompt>", "New prompt").option("-d, --description <description>", "New description (pass empty string to clear)").option("--size <size>", "Size of workspaces runs create (not a reused existing one): small, large, ultra").option("--enabled <enabled>", "Enable or disable (true/false)").option("--trigger-cron <schedule>", "Set cron schedule (repeatable; replaces existing triggers unless --keep-triggers)", collect, []).option("--trigger-cron-timezone <timezone>", "Timezone for cron schedules").option("--trigger-github <event>", "Set GitHub event (repeatable; replaces existing triggers unless --keep-triggers)", collect, []).option("--trigger-github-repos <repos>", "Comma-separated repo names to filter GitHub trigger").option("--trigger-github-exclude-users <users>", "Comma-separated GitHub usernames to exclude from triggering (pass empty string to clear the list)").option("--trigger-github-reviewers <users>", "Comma-separated GitHub usernames to fire for (required with pull_request.review_requested)").option("--trigger-gitlab <event>", "Set GitLab event (repeatable; replaces existing triggers unless --keep-triggers)", collect, []).option("--trigger-gitlab-repos <repos>", "Comma-separated repo names to filter GitLab trigger").option("--trigger-gitlab-exclude-users <users>", "Comma-separated GitLab usernames to exclude from triggering (pass empty string to clear the list)").option("--keep-triggers", "Add the --trigger-cron, --trigger-github, --trigger-gitlab, --in or --at triggers to the existing ones instead of replacing them").option("--github-checks <names>", "Comma-separated GitHub check names to create on matching PRs (replaces the current list; pass empty string to remove them)").option("--add-github-checks <names>", "Comma-separated GitHub check names to add, keeping the ones already configured").option("--environment <environment>", "Environment name or ID").option("--lifecycle <policy>", "Workspace lifecycle: delete_when_done (default for new automations), sleep_when_done, archive_when_done, default").option("--sleep-when-done", "Sleep automation workspaces as soon as the agent finishes").option("--auto-stop-minutes <minutes>", "Inactivity timeout in minutes (3-1440, requires --lifecycle default)").option("--pr-followups <enabled>", "Allow follow-up actions on matching PRs (true/false)", parseBooleanOption).option("--agent-provider <provider>", 'Coding agent to use: claude, codex, cursor (or "none" to inherit org default)').option("--model <model>", 'Model identifier (must be valid for --agent-provider; pass "none" to clear)').option("--thinking-level <level>", 'Thinking/reasoning level: low, medium, high, xhigh, max (or "none" to clear)').option("--plan-mode <enabled>", "Run automation messages in plan mode (true/false)", parseBooleanOption).option("--goal-mode <enabled>", "Set automation messages as goals (true/false)", parseBooleanOption).option("--fast-mode <enabled>", "Run automation messages in fast mode (true/false)", parseBooleanOption).option("--in <duration>", "Replace triggers with a one-time run after this long, e.g. 30m, 2h, 3d, 1w").option("--at <datetime>", "Replace triggers with a one-time run at this ISO-8601 time with timezone").option("--max-runs <n>", 'Delete the automation after this many runs in total ("none" for unlimited)').option("--workspace <target>", "Where runs go: new, reuse, current, or a workspace ID").option("--background <enabled>", "Keep it out of the main automations list (true/false)", parseBooleanOption).option("--move-to-org", "Move a personal automation to the organization so teammates can see and edit it (cannot be undone)").action(run(automationEditCommand));
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "replicas-cli",
3
- "version": "0.3.273",
3
+ "version": "0.3.275",
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": {