@beryl-so/cli 0.40.0 → 0.41.0

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 CHANGED
@@ -194,13 +194,13 @@ Manage a project's environments: the URLs and auth Beryl runs tests against.
194
194
 
195
195
  ### schedule
196
196
 
197
- Manage the schedules on which Beryl runs a project's tests automatically. A project can hold many independent schedules; each has its own cadence (daily or weekly), local run time, timezone, and target groups (none = every active test).
197
+ Manage the schedules on which Beryl runs a project's tests automatically. A project can hold many independent schedules; each has its own environment, cadence (daily or weekly), local run time, timezone, and target groups (none = every active test).
198
198
 
199
199
  | Command | Summary | MCP tool |
200
200
  | --- | --- | --- |
201
201
  | `beryl schedule list` | List the project's schedules | `schedule_list` |
202
202
  | `beryl schedule add` | Add a schedule (daily, or weekly on a given day) | `schedule_add` |
203
- | `beryl schedule update <schedule-id>` | Change a schedule's cadence, time, timezone, or groups | `schedule_update` |
203
+ | `beryl schedule update <schedule-id>` | Change a schedule's cadence, time, timezone, groups, or environment | `schedule_update` |
204
204
  | `beryl schedule remove <schedule-id>` | Remove a schedule (its tests and groups stay) | `schedule_remove` |
205
205
 
206
206
  ### tests
@@ -107,7 +107,7 @@ export const environmentCommands = [
107
107
  name: "schedule list",
108
108
  summary: "List the project's schedules",
109
109
  scope: "project",
110
- groupSummary: "Manage the schedules on which Beryl runs a project's tests automatically. A project can hold many independent schedules; each has its own cadence (daily or weekly), local run time, timezone, and target groups (none = every active test).",
110
+ groupSummary: "Manage the schedules on which Beryl runs a project's tests automatically. A project can hold many independent schedules; each has its own environment, cadence (daily or weekly), local run time, timezone, and target groups (none = every active test).",
111
111
  async run(ctx, input) {
112
112
  const { workspaceId, projectId } = await ctx.requireProject(input);
113
113
  return { data: await ctx.client.get(`${projectPath(workspaceId, projectId)}/schedules`) };
@@ -120,15 +120,22 @@ export const environmentCommands = [
120
120
  flags: [
121
121
  ...SCHEDULE_CADENCE_FLAGS,
122
122
  { name: "groups", type: "string", description: SCHEDULE_GROUPS_FLAG },
123
+ {
124
+ name: "env",
125
+ type: "string",
126
+ description: "Environment id to run against (default: the project's default environment)",
127
+ },
123
128
  ],
124
129
  examples: [
125
130
  "beryl schedule add --frequency daily --hour 6 --tz UTC",
131
+ "beryl schedule add --env <env-id> --frequency daily --hour 6 --tz UTC",
126
132
  'beryl schedule add --groups "Smoke,Checkout" --frequency weekly --day 0 --hour 9 --minute 15 --tz UTC',
127
133
  ],
128
134
  async run(ctx, input) {
129
135
  const { workspaceId, projectId } = await ctx.requireProject(input);
130
136
  return {
131
137
  data: await ctx.client.post(`${projectPath(workspaceId, projectId)}/schedules`, {
138
+ environment_id: flagStr(input, "env") ?? null,
132
139
  frequency: flagStr(input, "frequency") ?? "daily",
133
140
  day_of_week: flagNum(input, "day") ?? null,
134
141
  run_hour: flagNum(input, "hour"),
@@ -141,12 +148,13 @@ export const environmentCommands = [
141
148
  },
142
149
  {
143
150
  name: "schedule update",
144
- summary: "Change a schedule's cadence, time, timezone, or groups",
151
+ summary: "Change a schedule's cadence, time, timezone, groups, or environment",
145
152
  scope: "project",
146
153
  args: [{ name: "schedule-id", description: "Schedule id (see schedule list)", required: true }],
147
154
  flags: [
148
155
  ...SCHEDULE_CADENCE_FLAGS,
149
156
  { name: "groups", type: "string", description: SCHEDULE_GROUPS_FLAG },
157
+ { name: "env", type: "string", description: "Move the schedule to this environment id" },
150
158
  {
151
159
  name: "all-tests",
152
160
  type: "boolean",
@@ -169,6 +177,7 @@ export const environmentCommands = [
169
177
  : existing.group_ids;
170
178
  return {
171
179
  data: await ctx.client.put(`${projectPath(workspaceId, projectId)}/schedules/${scheduleId}`, {
180
+ ...(flagStr(input, "env") ? { environment_id: flagStr(input, "env") } : {}),
172
181
  frequency: flagStr(input, "frequency") ?? existing.frequency,
173
182
  day_of_week: flagNum(input, "day") ?? existing.day_of_week,
174
183
  run_hour: flagNum(input, "hour") ?? existing.run_hour,
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@beryl-so/cli",
3
- "version": "0.40.0",
3
+ "version": "0.41.0",
4
4
  "description": "Beryl on the command line — projects, runs, the exploring agent, and an MCP server over the same commands.",
5
5
  "license": "MIT",
6
6
  "type": "module",