@go-labs-sg/gosh 0.13.0 → 0.14.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 +40 -2
- package/command-manifest.json +19 -0
- package/command-reference.md +16 -0
- package/dist/index.js +11 -0
- package/package.json +1 -1
package/README.md
CHANGED
|
@@ -183,8 +183,9 @@ value in that template team's `order` field:
|
|
|
183
183
|
Events default to `OPEN` progression, which keeps the existing open-play flow.
|
|
184
184
|
Sequential progression starts each team or individual on an ordered station
|
|
185
185
|
route. Group routing is available only for `TEAM` play mode. Create teams and
|
|
186
|
-
assign them to routing groups before launching the event; setup
|
|
187
|
-
play starts.
|
|
186
|
+
assign them to routing groups before launching the event; sequential setup
|
|
187
|
+
freezes when play starts. Grouped OPEN events lock only a started team's group
|
|
188
|
+
assignment, a started group's route and the gameplay settings. A group shares its ordered station route, while each team keeps
|
|
188
189
|
independent progress through that route.
|
|
189
190
|
|
|
190
191
|
Configure gameplay, then manage the event's routing groups and their complete
|
|
@@ -225,6 +226,43 @@ the desired order. Use `groupId: null` with `assign-team` to unassign a team.
|
|
|
225
226
|
Group names are trimmed and limited to 80 characters. The delete command
|
|
226
227
|
requires the additional `--allow-delete` effect flag.
|
|
227
228
|
|
|
229
|
+
### Staggered group release
|
|
230
|
+
|
|
231
|
+
`routing-group release` changes flag-off without changing routes. It requires
|
|
232
|
+
launch permission and a draft, ready or live TEAM event with group routing. A
|
|
233
|
+
different group already playing does not block it. Once a team in the target
|
|
234
|
+
group has started, only HOLD (emergency hold) and RELEASE_SCHEDULED_HOLD (resume)
|
|
235
|
+
are accepted.
|
|
236
|
+
|
|
237
|
+
```bash
|
|
238
|
+
gosh routing-group release \
|
|
239
|
+
--input '{"eventId":"event-id","groupId":"group-d","action":"SCHEDULE","releaseAt":"2030-01-01T09:20:00+08:00"}' \
|
|
240
|
+
--target group-d \
|
|
241
|
+
--allow-state-change
|
|
242
|
+
gosh routing-group release \
|
|
243
|
+
--input '{"eventId":"event-id","groupId":"group-d","action":"HOLD"}' \
|
|
244
|
+
--target group-d \
|
|
245
|
+
--allow-state-change
|
|
246
|
+
```
|
|
247
|
+
|
|
248
|
+
Replace example IDs/time with your intended target and a future instant.
|
|
249
|
+
SCHEDULE requires an ISO timestamp with `Z` or a numeric timezone offset;
|
|
250
|
+
offsetless, invalid and past times are rejected. CLEAR sets the schedule to null
|
|
251
|
+
but preserves a hold. HOLD overrides the clock. RELEASE_SCHEDULED_HOLD removes
|
|
252
|
+
the hold and retains the schedule; an elapsed/no schedule releases immediately.
|
|
253
|
+
RELEASE_NOW clears both schedule and hold. Omit `releaseAt` for non-schedule
|
|
254
|
+
actions. Repeated no-op controls do not create duplicate audits. List routing
|
|
255
|
+
groups to read back release values and editability, and use
|
|
256
|
+
`gosh routing-group release-history --input '{"eventId":"event-id","groupId":"group-d"}'`
|
|
257
|
+
for the five most recent actor/before/after changes; the existing event activity
|
|
258
|
+
timeline provides the full audit history.
|
|
259
|
+
|
|
260
|
+
The server evaluates deadlines without cron. Release never starts a timer or
|
|
261
|
+
bypasses LIVE status, availability, check-in or captain permissions. Any team in
|
|
262
|
+
a group beginning play locks that group's schedule; emergency HOLD/resume stays
|
|
263
|
+
available and does not pause running station clocks. There is no
|
|
264
|
+
untimed practice-mission exemption. See [the design notes](../../../docs/design/gosh-staggered-routing-group-release.md).
|
|
265
|
+
|
|
228
266
|
For sequential player actions, complete any required location check-in with
|
|
229
267
|
`gosh player station-check-in` first. The server checks the signed-in player’s
|
|
230
268
|
current check-in record; a successful check-in also starts the station timer.
|
package/command-manifest.json
CHANGED
|
@@ -1173,6 +1173,25 @@
|
|
|
1173
1173
|
"requiresAuth": true,
|
|
1174
1174
|
"summary": "List an event's routing groups, ordered stations, and assigned teams."
|
|
1175
1175
|
},
|
|
1176
|
+
{
|
|
1177
|
+
"effects": [],
|
|
1178
|
+
"input": "json",
|
|
1179
|
+
"operation": "query",
|
|
1180
|
+
"path": ["routing-group", "release-history"],
|
|
1181
|
+
"procedure": "team.listRoutingGroupReleaseHistory",
|
|
1182
|
+
"requiresAuth": true,
|
|
1183
|
+
"summary": "Show a routing group's five most recent release changes with actor, action and before/after UTC values."
|
|
1184
|
+
},
|
|
1185
|
+
{
|
|
1186
|
+
"effects": ["state-change"],
|
|
1187
|
+
"input": "json",
|
|
1188
|
+
"operation": "mutation",
|
|
1189
|
+
"path": ["routing-group", "release"],
|
|
1190
|
+
"procedure": "team.updateRoutingGroupRelease",
|
|
1191
|
+
"requiresAuth": true,
|
|
1192
|
+
"summary": "Schedule (future releaseAt ISO timestamp with offset), CLEAR schedule, HOLD, RELEASE_SCHEDULED_HOLD (keep schedule), or RELEASE_NOW for a routing group. After a group starts, only HOLD and RELEASE_SCHEDULED_HOLD are accepted. Requires launchEvent permission.",
|
|
1193
|
+
"targetKeys": ["groupId", "eventId"]
|
|
1194
|
+
},
|
|
1176
1195
|
{
|
|
1177
1196
|
"effects": ["state-change"],
|
|
1178
1197
|
"input": "json",
|
package/command-reference.md
CHANGED
|
@@ -450,6 +450,22 @@ List an event's routing groups, ordered stations, and assigned teams.
|
|
|
450
450
|
- Input: `--input '<json>'` required
|
|
451
451
|
- Effects: read-only
|
|
452
452
|
|
|
453
|
+
## `gosh routing-group release-history`
|
|
454
|
+
|
|
455
|
+
Show a routing group's five most recent release changes with actor, action and before/after UTC values.
|
|
456
|
+
|
|
457
|
+
- Authentication: browser-authenticated CLI session required
|
|
458
|
+
- Input: `--input '<json>'` required
|
|
459
|
+
- Effects: read-only
|
|
460
|
+
|
|
461
|
+
## `gosh routing-group release`
|
|
462
|
+
|
|
463
|
+
Schedule (future releaseAt ISO timestamp with offset), CLEAR schedule, HOLD, RELEASE_SCHEDULED_HOLD (keep schedule), or RELEASE_NOW for a routing group. After a group starts, only HOLD and RELEASE_SCHEDULED_HOLD are accepted. Requires launchEvent permission.
|
|
464
|
+
|
|
465
|
+
- Authentication: browser-authenticated CLI session required
|
|
466
|
+
- Input: `--input '<json>'` required
|
|
467
|
+
- Effects: state-change
|
|
468
|
+
|
|
453
469
|
## `gosh routing-group create`
|
|
454
470
|
|
|
455
471
|
Create a routing group within an event before play starts.
|
package/dist/index.js
CHANGED
|
@@ -7453,6 +7453,14 @@ var typedOperations = {
|
|
|
7453
7453
|
kind: "query",
|
|
7454
7454
|
invoke: (client, input) => client.team.listRoutingGroups.query(input)
|
|
7455
7455
|
},
|
|
7456
|
+
"team.listRoutingGroupReleaseHistory": {
|
|
7457
|
+
kind: "query",
|
|
7458
|
+
invoke: (client, input) => client.team.listRoutingGroupReleaseHistory.query(input)
|
|
7459
|
+
},
|
|
7460
|
+
"team.updateRoutingGroupRelease": {
|
|
7461
|
+
kind: "mutation",
|
|
7462
|
+
invoke: (client, input) => client.team.updateRoutingGroupRelease.mutate(input)
|
|
7463
|
+
},
|
|
7456
7464
|
"team.createRoutingGroup": {
|
|
7457
7465
|
kind: "mutation",
|
|
7458
7466
|
invoke: (client, input) => client.team.createRoutingGroup.mutate(input)
|
|
@@ -7865,6 +7873,7 @@ var defaultMutationTargetKeys = [
|
|
|
7865
7873
|
"name"
|
|
7866
7874
|
];
|
|
7867
7875
|
var mutationTargetKeys = {
|
|
7876
|
+
"team.updateRoutingGroupRelease": ["groupId", "eventId"],
|
|
7868
7877
|
"team.setGameplaySettings": ["eventId"],
|
|
7869
7878
|
"team.createRoutingGroup": ["eventId"],
|
|
7870
7879
|
"team.renameRoutingGroup": ["groupId"],
|
|
@@ -7985,6 +7994,8 @@ var commands = [
|
|
|
7985
7994
|
mutation(["team", "set-station-routes"], "team.setStationRoutes", "Replace a team's linked station route and set its order.", ["state-change"]),
|
|
7986
7995
|
mutation(["event", "set-gameplay"], "team.setGameplaySettings", "Set open or sequential progression, group routing, and per-mission skipping before play starts.", ["state-change"]),
|
|
7987
7996
|
query(["routing-group", "list"], "team.listRoutingGroups", "List an event's routing groups, ordered stations, and assigned teams."),
|
|
7997
|
+
query(["routing-group", "release-history"], "team.listRoutingGroupReleaseHistory", "Show a routing group's five most recent release changes with actor, action and before/after UTC values."),
|
|
7998
|
+
mutation(["routing-group", "release"], "team.updateRoutingGroupRelease", "Schedule (future releaseAt ISO timestamp with offset), CLEAR schedule, HOLD, RELEASE_SCHEDULED_HOLD (keep schedule), or RELEASE_NOW for a routing group. After a group starts, only HOLD and RELEASE_SCHEDULED_HOLD are accepted. Requires launchEvent permission.", ["state-change"]),
|
|
7988
7999
|
mutation(["routing-group", "create"], "team.createRoutingGroup", "Create a routing group within an event before play starts.", ["state-change"]),
|
|
7989
8000
|
mutation(["routing-group", "rename"], "team.renameRoutingGroup", "Rename an event's routing group before play starts.", ["state-change"]),
|
|
7990
8001
|
mutation(["routing-group", "delete"], "team.deleteRoutingGroup", "Delete an unassigned routing group before play starts.", ["state-change", "delete"]),
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@go-labs-sg/gosh",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.14.0",
|
|
4
4
|
"description": "GOSH CLI for organizers and AI agents — manage organizations, events, teams, stations, missions, templates, and live operations through the GOSH API.",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"main": "./dist/index.js",
|