@ours.network/cowork 0.2.0 → 0.3.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/dist/cli.js CHANGED
@@ -4316,7 +4316,9 @@ var NATIVE_MUTATION_METHODS = /* @__PURE__ */ new Set([
4316
4316
  "room.message",
4317
4317
  "room.close",
4318
4318
  "room.recover",
4319
- "room.recover.confirm"
4319
+ "room.recover.confirm",
4320
+ "room.participant.remove",
4321
+ "room.participant.replace"
4320
4322
  ]);
4321
4323
  function rpcTimeoutForMethod(method) {
4322
4324
  return NATIVE_MUTATION_METHODS.has(method) ? NATIVE_RPC_TIMEOUT_MS : RPC_TIMEOUT_MS;
@@ -4349,14 +4351,17 @@ Usage:
4349
4351
  ours-cowork [--json] docs [topic]
4350
4352
 
4351
4353
  Room commands:
4352
- create --goal <text> --briefing <text>
4353
- settings <room-id> [--goal <text>] [--briefing <text>] [--status <text>]
4354
- invite <room-id> --role <label> [--mode one_time|public] [--min-accepts <n>]
4354
+ create --goal <text> --briefing <text> [--anonymous] [--quiet-membership]
4355
+ settings <room-id> [--goal <text>] [--briefing <text>] [--status <text>] [--quiet-membership true|false]
4356
+ role-briefing <room-id> --role <label> (--text <text> | --delete)
4357
+ invite <room-id> [--role <label>] [--mode one_time|public] [--min-accepts <n>]
4355
4358
  revoke <room-id> <invite-id>
4359
+ remove <room-id> <participant> [--silent]
4360
+ replace <room-id> <participant> [--mode one_time|public] [--min-accepts <n>] [--silent]
4356
4361
  list
4357
4362
  show <room-id>
4358
4363
  participants <room-id>
4359
- history <room-id> [--after <seq>] [--limit <n>]
4364
+ history <room-id> [--after <seq>] [--limit <n>] [--view operator|participant]
4360
4365
  message <room-id> --text <text>
4361
4366
  close <room-id>
4362
4367
  delete <room-id> --yes
@@ -4436,23 +4441,44 @@ function roomRequest(command, args) {
4436
4441
  if (!command) usageError("room requires a command");
4437
4442
  switch (command) {
4438
4443
  case "create": {
4439
- const parsed = parseOptions(args, ["--goal", "--briefing"]);
4444
+ const parsed = parseOptions(args, ["--goal", "--briefing"], ["--anonymous", "--quiet-membership"]);
4440
4445
  exactPositionals(parsed, 0, "room create");
4441
4446
  return { method: "room.create", params: {
4442
4447
  goal: requiredFlag(parsed, "--goal", "room create"),
4443
- briefing: requiredFlag(parsed, "--briefing", "room create")
4448
+ briefing: requiredFlag(parsed, "--briefing", "room create"),
4449
+ ...parsed.booleans.has("--anonymous") ? { anonymous: true } : {},
4450
+ ...parsed.booleans.has("--quiet-membership") ? { quiet_membership: true } : {}
4444
4451
  } };
4445
4452
  }
4446
4453
  case "settings": {
4447
- const parsed = parseOptions(args, ["--goal", "--briefing", "--status"]);
4454
+ const parsed = parseOptions(args, ["--goal", "--briefing", "--status", "--quiet-membership"]);
4448
4455
  const [roomId] = exactPositionals(parsed, 1, "room settings");
4449
4456
  const params = { room_id: roomId };
4450
4457
  for (const [flag, key] of [["--goal", "goal"], ["--briefing", "briefing"], ["--status", "status"]]) {
4451
4458
  if (parsed.values[flag] !== void 0) params[key] = parsed.values[flag];
4452
4459
  }
4460
+ const quiet = parsed.values["--quiet-membership"];
4461
+ if (quiet !== void 0) {
4462
+ if (quiet !== "true" && quiet !== "false") usageError("--quiet-membership must be true or false");
4463
+ params.quiet_membership = quiet === "true";
4464
+ }
4453
4465
  if (Object.keys(params).length === 1) usageError("room settings requires at least one setting option");
4454
4466
  return { method: "room.settings", params };
4455
4467
  }
4468
+ case "role-briefing": {
4469
+ const parsed = parseOptions(args, ["--role", "--text"], ["--delete"]);
4470
+ const [roomId] = exactPositionals(parsed, 1, "room role-briefing");
4471
+ const role = requiredFlag(parsed, "--role", "room role-briefing");
4472
+ if (parsed.booleans.has("--delete")) {
4473
+ if (parsed.values["--text"] !== void 0) usageError("room role-briefing takes either --text or --delete");
4474
+ return { method: "room.briefing.role.delete", params: { room_id: roomId, role } };
4475
+ }
4476
+ return { method: "room.briefing.role.set", params: {
4477
+ room_id: roomId,
4478
+ role,
4479
+ text: requiredFlag(parsed, "--text", "room role-briefing")
4480
+ } };
4481
+ }
4456
4482
  case "invite": {
4457
4483
  const parsed = parseOptions(args, ["--mode", "--role", "--min-accepts"]);
4458
4484
  const [roomId] = exactPositionals(parsed, 1, "room invite");
@@ -4463,10 +4489,33 @@ function roomRequest(command, args) {
4463
4489
  return { method: "room.invite", params: {
4464
4490
  room_id: roomId,
4465
4491
  mode,
4466
- role: requiredFlag(parsed, "--role", "room invite"),
4492
+ // Omitted role = the built-in "Participant" role (daemon-side default).
4493
+ ...parsed.values["--role"] === void 0 ? {} : { role: parsed.values["--role"] },
4467
4494
  min_accepts: minimum
4468
4495
  } };
4469
4496
  }
4497
+ case "remove": {
4498
+ const parsed = parseOptions(args, [], ["--silent"]);
4499
+ const [roomId, participant] = exactPositionals(parsed, 2, "room remove");
4500
+ return { method: "room.participant.remove", params: {
4501
+ room_id: roomId,
4502
+ participant,
4503
+ ...parsed.booleans.has("--silent") ? { notify: false } : {}
4504
+ } };
4505
+ }
4506
+ case "replace": {
4507
+ const parsed = parseOptions(args, ["--mode", "--min-accepts"], ["--silent"]);
4508
+ const [roomId, participant] = exactPositionals(parsed, 2, "room replace");
4509
+ const mode = parsed.values["--mode"];
4510
+ if (mode !== void 0 && mode !== "one_time" && mode !== "public") usageError("--mode must be one_time or public");
4511
+ return { method: "room.participant.replace", params: {
4512
+ room_id: roomId,
4513
+ participant,
4514
+ ...mode === void 0 ? {} : { mode },
4515
+ ...parsed.values["--min-accepts"] === void 0 ? {} : { min_accepts: parseInteger(parsed.values["--min-accepts"], "--min-accepts", 1) },
4516
+ ...parsed.booleans.has("--silent") ? { notify: false } : {}
4517
+ } };
4518
+ }
4470
4519
  case "revoke": {
4471
4520
  const parsed = parseOptions(args);
4472
4521
  const [roomId, inviteId] = exactPositionals(parsed, 2, "room revoke");
@@ -4483,11 +4532,16 @@ function roomRequest(command, args) {
4483
4532
  return { method: `room.${command}`, params: { room_id: roomId } };
4484
4533
  }
4485
4534
  case "history": {
4486
- const parsed = parseOptions(args, ["--after", "--limit"]);
4535
+ const parsed = parseOptions(args, ["--after", "--limit", "--view"]);
4487
4536
  const [roomId] = exactPositionals(parsed, 1, "room history");
4488
4537
  const params = { room_id: roomId };
4489
4538
  if (parsed.values["--after"] !== void 0) params.after = parseInteger(parsed.values["--after"], "--after", 0);
4490
4539
  if (parsed.values["--limit"] !== void 0) params.limit = parseInteger(parsed.values["--limit"], "--limit", 1);
4540
+ const view = parsed.values["--view"];
4541
+ if (view !== void 0) {
4542
+ if (view !== "operator" && view !== "participant") usageError("--view must be operator or participant");
4543
+ params.view = view;
4544
+ }
4491
4545
  return { method: "room.history", params };
4492
4546
  }
4493
4547
  case "message": {