@opvs-ai/cli 0.15.0 → 0.16.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.
@@ -17,7 +17,8 @@
17
17
  */
18
18
  import { getEffectiveConfig, createClient } from "@opvs-ai/core";
19
19
  import { buildUrl, printResponse, printJson } from "../lib/format.js";
20
- import { csv, oneOf } from "../lib/options.js";
20
+ import { boolFlag, CLEAR, csv, intFlag, oneOf } from "../lib/options.js";
21
+ import { isUuid } from "../lib/board-refs.js";
21
22
  /** `TaskStatus` (agentboard `models/task.py`). A column binds at most one. */
22
23
  export const TASK_STATUSES = [
23
24
  "pending",
@@ -74,40 +75,53 @@ const IS_DONE_HELP = "true | false. Marks the board's done column. One per board
74
75
  const IS_DEFAULT_HELP = "true | false. The column a new card lands in when no column is given. One per board (a second is a 409).";
75
76
  const DESCRIPTION_HELP = "Markdown instructions that apply to every card in this column (agents read it on the card).";
76
77
  const SLA_MINUTES_HELP = "Flag a card that has sat in this column longer than N minutes, measured from entered_column_at. " +
77
- "Required by every --sla-action; alone it only shows up in audits.";
78
+ "The column needs it for any --sla-action; alone it only shows up in audits. " +
79
+ "On update, the column's saved value counts — you don't have to pass it again.";
78
80
  // `services/sla_scanner.py` module docstring: `message` is a comment prefixed
79
81
  // with @recipient; real OPVS-protocol delivery is a TODO there.
80
82
  const SLA_ACTION_HELP = "What fires when a card crosses --sla-minutes: comment | move | message | all. " +
81
- "move and all also need --sla-move-to. 'message' is a comment that @-mentions --sla-recipient, not a delivered message.";
83
+ "move and all also need --sla-move-to (saved or in the same command). " +
84
+ "'message' is a comment that @-mentions --sla-recipient, not a delivered message.";
82
85
  const SLA_MOVE_TO_HELP = "Slug of the column a stale card is moved to (for --sla-action move | all).";
83
86
  const SLA_RECIPIENT_HELP = "Who a 'message' names: column.managed_by | task.assignee. Unset → column.managed_by.";
84
87
  const SLA_TEMPLATE_HELP = "Markdown body for the SLA comment/message. Placeholders: {{task_title}} {{column_name}} {{minutes_stale}}.";
85
- /** The CLEAR verb for a scalar field (matches `tasks update --mutex-group none`). */
86
- const CLEAR = "none";
87
- function parseBool(flag, raw) {
88
- if (raw === undefined)
89
- return undefined;
90
- const v = raw.trim().toLowerCase();
91
- if (v === "true")
92
- return true;
93
- if (v === "false")
94
- return false;
95
- console.error(`Error: ${flag} must be true or false (got '${raw}')`);
96
- process.exit(1);
97
- }
98
88
  /**
99
- * Strict positive integer. `parseInt("12abc")` is 12, and an SLA of 12 minutes
100
- * that the operator meant as something else fires on every card in the column.
89
+ * `managed_by_*` (migration 033). Read by two things only:
90
+ * - `agent_api.list_managed_column_tasks` — a USER owner's cross-board inbox
91
+ * (`Column.managed_by_user_id == caller`); an agent owner appears in no inbox;
92
+ * - `sla_scanner` — the name an SLA `message` @-mentions when
93
+ * `sla_recipient` is `column.managed_by` (the default).
94
+ * No claim, move or permission check reads it.
95
+ */
96
+ const MANAGED_BY_HELP = "Column owner: user:<uuid> | agent:<uuid>. A USER owner gets this column's cards in their managed-columns inbox; " +
97
+ "an SLA 'message' @-mentions the owner. It grants no permission and assigns no card.";
98
+ const WIP_LIMIT_HELP = "Work-in-progress limit, a positive integer. Advisory: a move into a full column is not refused.";
99
+ /**
100
+ * Parse `--managed-by` into all THREE manager keys, always together.
101
+ *
102
+ * `ck_columns_manager_coherence` (migration 033) allows exactly: all null, or
103
+ * type=user + user_id + NO agent_id, or type=agent + agent_id + NO user_id. A
104
+ * PATCH is `exclude_unset`, so sending only the new id would leave the other
105
+ * one stored and the row would violate the check — the switch from a user to
106
+ * an agent owner has to null the user id in the same write.
101
107
  */
102
- function parsePositiveInt(flag, raw) {
108
+ export function parseManagedBy(raw, clearable) {
103
109
  if (raw === undefined)
104
110
  return undefined;
105
- const s = raw.trim();
106
- if (!/^[0-9]+$/.test(s) || Number(s) < 1) {
107
- console.error(`Error: ${flag} must be a positive integer (got '${raw}')`);
111
+ const v = raw.trim();
112
+ if (v === CLEAR || v === "") {
113
+ if (!clearable)
114
+ return undefined;
115
+ return { managed_by_type: null, managed_by_user_id: null, managed_by_agent_id: null };
116
+ }
117
+ const m = /^(user|agent):(.+)$/.exec(v);
118
+ if (!m || !isUuid(m[2])) {
119
+ console.error(`Error: --managed-by expects user:<uuid> or agent:<uuid>${clearable ? ", or 'none'" : ""} (got '${raw}')`);
108
120
  process.exit(1);
109
121
  }
110
- return Number(s);
122
+ return m[1] === "user"
123
+ ? { managed_by_type: "user", managed_by_user_id: m[2], managed_by_agent_id: null }
124
+ : { managed_by_type: "agent", managed_by_user_id: null, managed_by_agent_id: m[2] };
111
125
  }
112
126
  /**
113
127
  * Build the wiring half of a column body from flags.
@@ -136,7 +150,17 @@ export function buildColumnWiring(opts, clearable) {
136
150
  body.claimable_by_roles = null;
137
151
  }
138
152
  else {
139
- body.claimable_by_roles = csv(raw);
153
+ const roles = csv(raw);
154
+ // ASP-119 F13: `,` survives the `""` check and csv() returns undefined,
155
+ // which used to land as `claimable_by_roles: undefined` — a key that
156
+ // passed "Nothing to update" and was then dropped by JSON.stringify, so
157
+ // an empty PATCH returned 200 and the operator believed roles were set.
158
+ // Refused on create and update alike; '' / 'none' is the clear.
159
+ if (!roles) {
160
+ console.error(`Error: --claimable-by-roles '${opts.claimableByRoles}' names no role. Pass role names, or '' / 'none' to clear.`);
161
+ process.exit(1);
162
+ }
163
+ body.claimable_by_roles = roles;
140
164
  }
141
165
  }
142
166
  scalar("on_claim_move_to", opts.onClaimMoveTo);
@@ -150,10 +174,10 @@ export function buildColumnWiring(opts, clearable) {
150
174
  body.mapped_status = oneOf("--mapped-status", opts.mappedStatus, TASK_STATUSES);
151
175
  }
152
176
  }
153
- const isDone = parseBool("--is-done-column", opts.isDoneColumn);
177
+ const isDone = boolFlag("--is-done-column", opts.isDoneColumn);
154
178
  if (isDone !== undefined)
155
179
  body.is_done_column = isDone;
156
- const isDefault = parseBool("--is-default", opts.isDefault);
180
+ const isDefault = boolFlag("--is-default", opts.isDefault);
157
181
  if (isDefault !== undefined)
158
182
  body.is_default = isDefault;
159
183
  // `description` is free text, so only the empty string clears it — "none" is
@@ -173,7 +197,7 @@ export function buildColumnWiring(opts, clearable) {
173
197
  body.sla_minutes = null;
174
198
  }
175
199
  else {
176
- body.sla_minutes = parsePositiveInt("--sla-minutes", opts.slaMinutes);
200
+ body.sla_minutes = intFlag("--sla-minutes", opts.slaMinutes, 1);
177
201
  }
178
202
  }
179
203
  if (opts.slaAction !== undefined) {
@@ -204,6 +228,12 @@ export function buildColumnWiring(opts, clearable) {
204
228
  body.sla_message_template = opts.slaTemplate;
205
229
  }
206
230
  }
231
+ const manager = parseManagedBy(opts.managedBy, clearable);
232
+ if (manager) {
233
+ body.managed_by_type = manager.managed_by_type;
234
+ body.managed_by_user_id = manager.managed_by_user_id;
235
+ body.managed_by_agent_id = manager.managed_by_agent_id;
236
+ }
207
237
  return body;
208
238
  }
209
239
  /** Attach the wiring + SLA options shared by `create` and `update`. */
@@ -221,7 +251,8 @@ function withWiringOptions(cmd, clearable) {
221
251
  .option("--sla-action <action>", clear(SLA_ACTION_HELP))
222
252
  .option("--sla-move-to <slug>", clear(SLA_MOVE_TO_HELP))
223
253
  .option("--sla-recipient <who>", clear(SLA_RECIPIENT_HELP))
224
- .option("--sla-template <markdown>", clear(SLA_TEMPLATE_HELP, "''"));
254
+ .option("--sla-template <markdown>", clear(SLA_TEMPLATE_HELP, "''"))
255
+ .option("--managed-by <owner>", clear(MANAGED_BY_HELP));
225
256
  }
226
257
  export function registerColumnCommands(program) {
227
258
  const columns = program.command("columns").description("Board column management");
@@ -249,8 +280,8 @@ export function registerColumnCommands(program) {
249
280
  .requiredOption("--name <name>", "Column name")
250
281
  .option("--slug <slug>", "URL-safe slug (auto-derived from --name if omitted)")
251
282
  .option("--color <color>", "Column color (hex)")
252
- .option("--wip-limit <n>", "Work-in-progress limit")
253
- .option("--position <n>", "Position (0-based)"), false).action(async (boardId, opts) => {
283
+ .option("--wip-limit <n>", WIP_LIMIT_HELP)
284
+ .option("--position <n>", "Position, 0-based. Omit to append after the last column."), false).action(async (boardId, opts) => {
254
285
  const wsSlug = program.opts().workspace;
255
286
  try {
256
287
  const client = createClient(wsSlug);
@@ -263,10 +294,12 @@ export function registerColumnCommands(program) {
263
294
  const body = { name: opts.name, slug };
264
295
  if (opts.color)
265
296
  body.color = opts.color;
266
- if (opts.wipLimit)
267
- body.wip_limit = parseInt(opts.wipLimit, 10);
268
- if (opts.position !== undefined)
269
- body.position = parseInt(opts.position, 10);
297
+ const wipLimit = intFlag("--wip-limit", opts.wipLimit, 1);
298
+ if (wipLimit !== undefined)
299
+ body.wip_limit = wipLimit;
300
+ const position = intFlag("--position", opts.position, 0);
301
+ if (position !== undefined)
302
+ body.position = position;
270
303
  Object.assign(body, buildColumnWiring(opts, false));
271
304
  const res = await client.post(`/api/v1/board/boards/${boardId}/columns`, body);
272
305
  const data = await res.json();
@@ -283,7 +316,7 @@ export function registerColumnCommands(program) {
283
316
  .description("Update a column — only the flags you pass are changed")
284
317
  .option("--name <name>", "New name")
285
318
  .option("--color <color>", "New color (hex)")
286
- .option("--wip-limit <n>", "Work-in-progress limit"), true).action(async (columnId, opts) => {
319
+ .option("--wip-limit <n>", `${WIP_LIMIT_HELP} Pass 'none' to clear it.`), true).action(async (columnId, opts) => {
287
320
  const wsSlug = program.opts().workspace;
288
321
  try {
289
322
  const client = createClient(wsSlug);
@@ -292,13 +325,16 @@ export function registerColumnCommands(program) {
292
325
  body.name = opts.name;
293
326
  if (opts.color)
294
327
  body.color = opts.color;
295
- if (opts.wipLimit)
296
- body.wip_limit = parseInt(opts.wipLimit, 10);
328
+ if (opts.wipLimit !== undefined) {
329
+ body.wip_limit = opts.wipLimit.trim() === CLEAR ? null : intFlag("--wip-limit", opts.wipLimit, 1);
330
+ }
297
331
  Object.assign(body, buildColumnWiring(opts, true));
298
- if (Object.keys(body).length === 0) {
332
+ // Count keys that will SURVIVE JSON.stringify: an `undefined` value is
333
+ // dropped on the wire, so it must not satisfy this check (ASP-119 F13).
334
+ if (Object.values(body).every((v) => v === undefined)) {
299
335
  console.error("Nothing to update. Provide --name, --color, --wip-limit, --claimable-by-roles, --on-claim-move-to, " +
300
336
  "--on-done-move-to, --mapped-status, --is-done-column, --is-default, --description, --sla-minutes, " +
301
- "--sla-action, --sla-move-to, --sla-recipient, or --sla-template");
337
+ "--sla-action, --sla-move-to, --sla-recipient, --sla-template, or --managed-by");
302
338
  process.exit(1);
303
339
  }
304
340
  const res = await client.patch(`/api/v1/board/columns/${columnId}`, body);
@@ -1 +1 @@
1
- {"version":3,"file":"columns.js","sourceRoot":"","sources":["../../src/commands/columns.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;GAgBG;AAGH,OAAO,EAAE,kBAAkB,EAAE,YAAY,EAAE,MAAM,eAAe,CAAC;AACjE,OAAO,EAAE,QAAQ,EAAE,aAAa,EAAE,SAAS,EAAE,MAAM,kBAAkB,CAAC;AACtE,OAAO,EAAE,GAAG,EAAE,KAAK,EAAE,MAAM,mBAAmB,CAAC;AAE/C,8EAA8E;AAC9E,MAAM,CAAC,MAAM,aAAa,GAAG;IAC3B,SAAS;IACT,UAAU;IACV,aAAa;IACb,SAAS;IACT,QAAQ;IACR,MAAM;IACN,WAAW;IACX,QAAQ;CACA,CAAC;AAEX,wEAAwE;AACxE,MAAM,WAAW,GAAG,CAAC,SAAS,EAAE,MAAM,EAAE,SAAS,EAAE,KAAK,CAAU,CAAC;AAEnE,0CAA0C;AAC1C,MAAM,cAAc,GAAG,CAAC,mBAAmB,EAAE,eAAe,CAAU,CAAC;AAEvE;;;;;;;;GAQG;AACH,MAAM,uBAAuB,GAC3B,qGAAqG;IACrG,gHAAgH;IAChH,iCAAiC;IACjC,+GAA+G;IAC/G,4GAA4G;IAC5G,2BAA2B,CAAC;AAE9B,mGAAmG;AACnG,MAAM,qBAAqB,GACzB,qGAAqG;IACrG,+EAA+E,CAAC;AAElF;;;;;;;;;;;;GAYG;AACH,MAAM,oBAAoB,GACxB,8GAA8G;IAC9G,iHAAiH;IACjH,8CAA8C,CAAC;AAEjD,MAAM,kBAAkB,GACtB,qCAAqC,aAAa,CAAC,IAAI,CAAC,KAAK,CAAC,yCAAyC;IACvG,8GAA8G,CAAC;AAEjH,MAAM,YAAY,GAChB,gHAAgH;IAChH,4CAA4C,CAAC;AAE/C,MAAM,eAAe,GACnB,0GAA0G,CAAC;AAE7G,MAAM,gBAAgB,GACpB,6FAA6F,CAAC;AAEhG,MAAM,gBAAgB,GACpB,kGAAkG;IAClG,mEAAmE,CAAC;AAEtE,8EAA8E;AAC9E,gEAAgE;AAChE,MAAM,eAAe,GACnB,gFAAgF;IAChF,wHAAwH,CAAC;AAE3H,MAAM,gBAAgB,GAAG,4EAA4E,CAAC;AAEtG,MAAM,kBAAkB,GACtB,sFAAsF,CAAC;AAEzF,MAAM,iBAAiB,GACrB,4GAA4G,CAAC;AAE/G,qFAAqF;AACrF,MAAM,KAAK,GAAG,MAAM,CAAC;AAErB,SAAS,SAAS,CAAC,IAAY,EAAE,GAAuB;IACtD,IAAI,GAAG,KAAK,SAAS;QAAE,OAAO,SAAS,CAAC;IACxC,MAAM,CAAC,GAAG,GAAG,CAAC,IAAI,EAAE,CAAC,WAAW,EAAE,CAAC;IACnC,IAAI,CAAC,KAAK,MAAM;QAAE,OAAO,IAAI,CAAC;IAC9B,IAAI,CAAC,KAAK,OAAO;QAAE,OAAO,KAAK,CAAC;IAChC,OAAO,CAAC,KAAK,CAAC,UAAU,IAAI,gCAAgC,GAAG,IAAI,CAAC,CAAC;IACrE,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;AAClB,CAAC;AAED;;;GAGG;AACH,SAAS,gBAAgB,CAAC,IAAY,EAAE,GAAuB;IAC7D,IAAI,GAAG,KAAK,SAAS;QAAE,OAAO,SAAS,CAAC;IACxC,MAAM,CAAC,GAAG,GAAG,CAAC,IAAI,EAAE,CAAC;IACrB,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,MAAM,CAAC,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC;QACzC,OAAO,CAAC,KAAK,CAAC,UAAU,IAAI,qCAAqC,GAAG,IAAI,CAAC,CAAC;QAC1E,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAClB,CAAC;IACD,OAAO,MAAM,CAAC,CAAC,CAAC,CAAC;AACnB,CAAC;AAiBD;;;;;;;GAOG;AACH,MAAM,UAAU,iBAAiB,CAAC,IAAgB,EAAE,SAAkB;IACpE,MAAM,IAAI,GAA4B,EAAE,CAAC;IAEzC,MAAM,MAAM,GAAG,CAAC,GAAW,EAAE,GAAuB,EAAE,EAAE;QACtD,IAAI,GAAG,KAAK,SAAS;YAAE,OAAO;QAC9B,IAAI,GAAG,KAAK,KAAK,IAAI,GAAG,KAAK,EAAE,EAAE,CAAC;YAChC,IAAI,SAAS;gBAAE,IAAI,CAAC,GAAG,CAAC,GAAG,IAAI,CAAC;YAChC,OAAO;QACT,CAAC;QACD,IAAI,CAAC,GAAG,CAAC,GAAG,GAAG,CAAC;IAClB,CAAC,CAAC;IAEF,IAAI,IAAI,CAAC,gBAAgB,KAAK,SAAS,EAAE,CAAC;QACxC,MAAM,GAAG,GAAG,IAAI,CAAC,gBAAgB,CAAC,IAAI,EAAE,CAAC;QACzC,IAAI,GAAG,KAAK,EAAE,IAAI,GAAG,KAAK,KAAK,EAAE,CAAC;YAChC,IAAI,SAAS;gBAAE,IAAI,CAAC,kBAAkB,GAAG,IAAI,CAAC;QAChD,CAAC;aAAM,CAAC;YACN,IAAI,CAAC,kBAAkB,GAAG,GAAG,CAAC,GAAG,CAAC,CAAC;QACrC,CAAC;IACH,CAAC;IACD,MAAM,CAAC,kBAAkB,EAAE,IAAI,CAAC,aAAa,CAAC,CAAC;IAC/C,MAAM,CAAC,iBAAiB,EAAE,IAAI,CAAC,YAAY,CAAC,CAAC;IAE7C,IAAI,IAAI,CAAC,YAAY,KAAK,SAAS,EAAE,CAAC;QACpC,IAAI,IAAI,CAAC,YAAY,KAAK,KAAK,IAAI,IAAI,CAAC,YAAY,KAAK,EAAE,EAAE,CAAC;YAC5D,IAAI,SAAS;gBAAE,IAAI,CAAC,aAAa,GAAG,IAAI,CAAC;QAC3C,CAAC;aAAM,CAAC;YACN,IAAI,CAAC,aAAa,GAAG,KAAK,CAAC,iBAAiB,EAAE,IAAI,CAAC,YAAY,EAAE,aAAa,CAAC,CAAC;QAClF,CAAC;IACH,CAAC;IAED,MAAM,MAAM,GAAG,SAAS,CAAC,kBAAkB,EAAE,IAAI,CAAC,YAAY,CAAC,CAAC;IAChE,IAAI,MAAM,KAAK,SAAS;QAAE,IAAI,CAAC,cAAc,GAAG,MAAM,CAAC;IACvD,MAAM,SAAS,GAAG,SAAS,CAAC,cAAc,EAAE,IAAI,CAAC,SAAS,CAAC,CAAC;IAC5D,IAAI,SAAS,KAAK,SAAS;QAAE,IAAI,CAAC,UAAU,GAAG,SAAS,CAAC;IAEzD,6EAA6E;IAC7E,0DAA0D;IAC1D,IAAI,IAAI,CAAC,WAAW,KAAK,SAAS,EAAE,CAAC;QACnC,IAAI,IAAI,CAAC,WAAW,KAAK,EAAE,EAAE,CAAC;YAC5B,IAAI,SAAS;gBAAE,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC;QACzC,CAAC;aAAM,CAAC;YACN,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC,WAAW,CAAC;QACtC,CAAC;IACH,CAAC;IAED,IAAI,IAAI,CAAC,UAAU,KAAK,SAAS,EAAE,CAAC;QAClC,IAAI,IAAI,CAAC,UAAU,KAAK,KAAK,EAAE,CAAC;YAC9B,IAAI,SAAS;gBAAE,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC;QACzC,CAAC;aAAM,CAAC;YACN,IAAI,CAAC,WAAW,GAAG,gBAAgB,CAAC,eAAe,EAAE,IAAI,CAAC,UAAU,CAAC,CAAC;QACxE,CAAC;IACH,CAAC;IACD,IAAI,IAAI,CAAC,SAAS,KAAK,SAAS,EAAE,CAAC;QACjC,IAAI,IAAI,CAAC,SAAS,KAAK,KAAK,EAAE,CAAC;YAC7B,IAAI,SAAS;gBAAE,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC;QACxC,CAAC;aAAM,CAAC;YACN,IAAI,CAAC,UAAU,GAAG,KAAK,CAAC,cAAc,EAAE,IAAI,CAAC,SAAS,EAAE,WAAW,CAAC,CAAC;QACvE,CAAC;IACH,CAAC;IACD,MAAM,CAAC,yBAAyB,EAAE,IAAI,CAAC,SAAS,CAAC,CAAC;IAClD,IAAI,IAAI,CAAC,YAAY,KAAK,SAAS,EAAE,CAAC;QACpC,IAAI,IAAI,CAAC,YAAY,KAAK,KAAK,EAAE,CAAC;YAChC,IAAI,SAAS;gBAAE,IAAI,CAAC,aAAa,GAAG,IAAI,CAAC;QAC3C,CAAC;aAAM,CAAC;YACN,IAAI,CAAC,aAAa,GAAG,KAAK,CAAC,iBAAiB,EAAE,IAAI,CAAC,YAAY,EAAE,cAAc,CAAC,CAAC;QACnF,CAAC;IACH,CAAC;IACD,IAAI,IAAI,CAAC,WAAW,KAAK,SAAS,EAAE,CAAC;QACnC,IAAI,IAAI,CAAC,WAAW,KAAK,EAAE,EAAE,CAAC;YAC5B,IAAI,SAAS;gBAAE,IAAI,CAAC,oBAAoB,GAAG,IAAI,CAAC;QAClD,CAAC;aAAM,CAAC;YACN,IAAI,CAAC,oBAAoB,GAAG,IAAI,CAAC,WAAW,CAAC;QAC/C,CAAC;IACH,CAAC;IAED,OAAO,IAAI,CAAC;AACd,CAAC;AAED,uEAAuE;AACvE,SAAS,iBAAiB,CAAC,GAAY,EAAE,SAAkB;IACzD,MAAM,KAAK,GAAG,CAAC,IAAY,EAAE,IAAI,GAAG,QAAQ,EAAE,EAAE,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,GAAG,IAAI,SAAS,IAAI,eAAe,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC;IAC1G,OAAO,GAAG;SACP,MAAM,CAAC,8BAA8B,EAAE,uBAAuB,CAAC;SAC/D,MAAM,CAAC,2BAA2B,EAAE,KAAK,CAAC,qBAAqB,CAAC,CAAC;SACjE,MAAM,CAAC,0BAA0B,EAAE,KAAK,CAAC,oBAAoB,CAAC,CAAC;SAC/D,MAAM,CAAC,0BAA0B,EAAE,KAAK,CAAC,kBAAkB,CAAC,CAAC;SAC7D,MAAM,CAAC,yBAAyB,EAAE,YAAY,CAAC;SAC/C,MAAM,CAAC,qBAAqB,EAAE,eAAe,CAAC;SAC9C,MAAM,CAAC,0BAA0B,EAAE,KAAK,CAAC,gBAAgB,EAAE,IAAI,CAAC,CAAC;SACjE,MAAM,CAAC,mBAAmB,EAAE,KAAK,CAAC,gBAAgB,CAAC,CAAC;SACpD,MAAM,CAAC,uBAAuB,EAAE,KAAK,CAAC,eAAe,CAAC,CAAC;SACvD,MAAM,CAAC,sBAAsB,EAAE,KAAK,CAAC,gBAAgB,CAAC,CAAC;SACvD,MAAM,CAAC,uBAAuB,EAAE,KAAK,CAAC,kBAAkB,CAAC,CAAC;SAC1D,MAAM,CAAC,2BAA2B,EAAE,KAAK,CAAC,iBAAiB,EAAE,IAAI,CAAC,CAAC,CAAC;AACzE,CAAC;AAED,MAAM,UAAU,sBAAsB,CAAC,OAAgB;IACrD,MAAM,OAAO,GAAG,OAAO,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC,WAAW,CAAC,yBAAyB,CAAC,CAAC;IAElF,OAAO;SACJ,OAAO,CAAC,gBAAgB,CAAC;SACzB,WAAW,CAAC,0BAA0B,CAAC;SACvC,MAAM,CAAC,KAAK,EAAE,OAAe,EAAE,EAAE;QAChC,MAAM,MAAM,GAAG,OAAO,CAAC,IAAI,EAAE,CAAC,SAAS,CAAC;QACxC,MAAM,GAAG,GAAG,kBAAkB,CAAC,MAAM,CAAC,CAAC;QACvC,IAAI,CAAC;YACH,MAAM,MAAM,GAAG,YAAY,CAAC,MAAM,CAAC,CAAC;YACpC,MAAM,GAAG,GAAG,QAAQ,CAAC,wBAAwB,OAAO,UAAU,EAAE,SAAS,EAAE,GAAG,CAAC,MAAM,CAAC,CAAC;YACvF,MAAM,GAAG,GAAG,MAAM,MAAM,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;YAClC,MAAM,aAAa,CAAC,GAAG,CAAC,CAAC;QAC3B,CAAC;QAAC,OAAO,GAAY,EAAE,CAAC;YACtB,MAAM,CAAC,GAAG,GAA0B,CAAC;YACrC,OAAO,CAAC,KAAK,CAAC,UAAU,CAAC,CAAC,MAAM,IAAI,wBAAwB,EAAE,CAAC,CAAC;YAChE,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QAClB,CAAC;IACH,CAAC,CAAC,CAAC;IAEL,iBAAiB,CACf,OAAO;SACJ,OAAO,CAAC,kBAAkB,CAAC;SAC3B,WAAW,CAAC,qBAAqB,CAAC;SAClC,cAAc,CAAC,eAAe,EAAE,aAAa,CAAC;SAC9C,MAAM,CAAC,eAAe,EAAE,qDAAqD,CAAC;SAC9E,MAAM,CAAC,iBAAiB,EAAE,oBAAoB,CAAC;SAC/C,MAAM,CAAC,iBAAiB,EAAE,wBAAwB,CAAC;SACnD,MAAM,CAAC,gBAAgB,EAAE,oBAAoB,CAAC,EACjD,KAAK,CACN,CAAC,MAAM,CAAC,KAAK,EAAE,OAAe,EAAE,IAAI,EAAE,EAAE;QACvC,MAAM,MAAM,GAAG,OAAO,CAAC,IAAI,EAAE,CAAC,SAAS,CAAC;QACxC,IAAI,CAAC;YACH,MAAM,MAAM,GAAG,YAAY,CAAC,MAAM,CAAC,CAAC;YACpC,MAAM,IAAI,GACR,IAAI,CAAC,IAAI;gBACT,IAAI,CAAC,IAAI;qBACN,WAAW,EAAE;qBACb,IAAI,EAAE;qBACN,OAAO,CAAC,aAAa,EAAE,GAAG,CAAC;qBAC3B,OAAO,CAAC,UAAU,EAAE,EAAE,CAAC,CAAC;YAC7B,MAAM,IAAI,GAA4B,EAAE,IAAI,EAAE,IAAI,CAAC,IAAI,EAAE,IAAI,EAAE,CAAC;YAChE,IAAI,IAAI,CAAC,KAAK;gBAAE,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC;YACxC,IAAI,IAAI,CAAC,QAAQ;gBAAE,IAAI,CAAC,SAAS,GAAG,QAAQ,CAAC,IAAI,CAAC,QAAQ,EAAE,EAAE,CAAC,CAAC;YAChE,IAAI,IAAI,CAAC,QAAQ,KAAK,SAAS;gBAAE,IAAI,CAAC,QAAQ,GAAG,QAAQ,CAAC,IAAI,CAAC,QAAQ,EAAE,EAAE,CAAC,CAAC;YAC7E,MAAM,CAAC,MAAM,CAAC,IAAI,EAAE,iBAAiB,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC,CAAC;YACpD,MAAM,GAAG,GAAG,MAAM,MAAM,CAAC,IAAI,CAAC,wBAAwB,OAAO,UAAU,EAAE,IAAI,CAAC,CAAC;YAC/E,MAAM,IAAI,GAAG,MAAM,GAAG,CAAC,IAAI,EAAE,CAAC;YAC9B,SAAS,CAAC,IAAI,CAAC,CAAC;QAClB,CAAC;QAAC,OAAO,GAAY,EAAE,CAAC;YACtB,MAAM,CAAC,GAAG,GAA0B,CAAC;YACrC,OAAO,CAAC,KAAK,CAAC,UAAU,CAAC,CAAC,MAAM,IAAI,yBAAyB,EAAE,CAAC,CAAC;YACjE,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QAClB,CAAC;IACH,CAAC,CAAC,CAAC;IAEH,iBAAiB,CACf,OAAO;SACJ,OAAO,CAAC,mBAAmB,CAAC;SAC5B,WAAW,CAAC,uDAAuD,CAAC;SACpE,MAAM,CAAC,eAAe,EAAE,UAAU,CAAC;SACnC,MAAM,CAAC,iBAAiB,EAAE,iBAAiB,CAAC;SAC5C,MAAM,CAAC,iBAAiB,EAAE,wBAAwB,CAAC,EACtD,IAAI,CACL,CAAC,MAAM,CAAC,KAAK,EAAE,QAAgB,EAAE,IAAI,EAAE,EAAE;QACxC,MAAM,MAAM,GAAG,OAAO,CAAC,IAAI,EAAE,CAAC,SAAS,CAAC;QACxC,IAAI,CAAC;YACH,MAAM,MAAM,GAAG,YAAY,CAAC,MAAM,CAAC,CAAC;YACpC,MAAM,IAAI,GAA4B,EAAE,CAAC;YACzC,IAAI,IAAI,CAAC,IAAI;gBAAE,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC,IAAI,CAAC;YACrC,IAAI,IAAI,CAAC,KAAK;gBAAE,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC;YACxC,IAAI,IAAI,CAAC,QAAQ;gBAAE,IAAI,CAAC,SAAS,GAAG,QAAQ,CAAC,IAAI,CAAC,QAAQ,EAAE,EAAE,CAAC,CAAC;YAChE,MAAM,CAAC,MAAM,CAAC,IAAI,EAAE,iBAAiB,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC,CAAC;YACnD,IAAI,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;gBACnC,OAAO,CAAC,KAAK,CACX,qGAAqG;oBACnG,oGAAoG;oBACpG,iEAAiE,CACpE,CAAC;gBACF,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;YAClB,CAAC;YACD,MAAM,GAAG,GAAG,MAAM,MAAM,CAAC,KAAK,CAAC,yBAAyB,QAAQ,EAAE,EAAE,IAAI,CAAC,CAAC;YAC1E,MAAM,IAAI,GAAG,MAAM,GAAG,CAAC,IAAI,EAAE,CAAC;YAC9B,SAAS,CAAC,IAAI,CAAC,CAAC;QAClB,CAAC;QAAC,OAAO,GAAY,EAAE,CAAC;YACtB,MAAM,CAAC,GAAG,GAA0B,CAAC;YACrC,OAAO,CAAC,KAAK,CAAC,UAAU,CAAC,CAAC,MAAM,IAAI,yBAAyB,EAAE,CAAC,CAAC;YACjE,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QAClB,CAAC;IACH,CAAC,CAAC,CAAC;IAEH,OAAO;SACJ,OAAO,CAAC,mBAAmB,CAAC;SAC5B,WAAW,CAAC,iBAAiB,CAAC;SAC9B,cAAc,CAAC,eAAe,EAAE,yCAAyC,CAAC;SAC1E,MAAM,CAAC,KAAK,EAAE,OAAe,EAAE,IAAI,EAAE,EAAE;QACtC,MAAM,MAAM,GAAG,OAAO,CAAC,IAAI,EAAE,CAAC,SAAS,CAAC;QACxC,IAAI,CAAC;YACH,MAAM,MAAM,GAAG,YAAY,CAAC,MAAM,CAAC,CAAC;YACpC,MAAM,OAAO,GAAG,IAAI,CAAC,KAAK;iBACvB,KAAK,CAAC,GAAG,CAAC;iBACV,GAAG,CAAC,CAAC,EAAU,EAAE,QAAgB,EAAE,EAAE,CAAC,CAAC,EAAE,EAAE,EAAE,EAAE,CAAC,IAAI,EAAE,EAAE,QAAQ,EAAE,CAAC,CAAC,CAAC;YACxE,MAAM,GAAG,GAAG,MAAM,MAAM,CAAC,IAAI,CAAC,wBAAwB,OAAO,kBAAkB,EAAE,EAAE,OAAO,EAAE,CAAC,CAAC;YAC9F,MAAM,IAAI,GAAG,MAAM,GAAG,CAAC,IAAI,EAAE,CAAC;YAC9B,SAAS,CAAC,IAAI,CAAC,CAAC;QAClB,CAAC;QAAC,OAAO,GAAY,EAAE,CAAC;YACtB,MAAM,CAAC,GAAG,GAA0B,CAAC;YACrC,OAAO,CAAC,KAAK,CAAC,UAAU,CAAC,CAAC,MAAM,IAAI,2BAA2B,EAAE,CAAC,CAAC;YACnE,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QAClB,CAAC;IACH,CAAC,CAAC,CAAC;IAEL,OAAO;SACJ,OAAO,CAAC,mBAAmB,CAAC;SAC5B,WAAW,CAAC,iBAAiB,CAAC;SAC9B,MAAM,CAAC,KAAK,EAAE,QAAgB,EAAE,EAAE;QACjC,MAAM,MAAM,GAAG,OAAO,CAAC,IAAI,EAAE,CAAC,SAAS,CAAC;QACxC,IAAI,CAAC;YACH,MAAM,MAAM,GAAG,YAAY,CAAC,MAAM,CAAC,CAAC;YACpC,MAAM,MAAM,CAAC,MAAM,CAAC,yBAAyB,QAAQ,EAAE,CAAC,CAAC;YACzD,OAAO,CAAC,GAAG,CAAC,kBAAkB,QAAQ,EAAE,CAAC,CAAC;QAC5C,CAAC;QAAC,OAAO,GAAY,EAAE,CAAC;YACtB,MAAM,CAAC,GAAG,GAA0B,CAAC;YACrC,OAAO,CAAC,KAAK,CAAC,UAAU,CAAC,CAAC,MAAM,IAAI,yBAAyB,EAAE,CAAC,CAAC;YACjE,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QAClB,CAAC;IACH,CAAC,CAAC,CAAC;AACP,CAAC"}
1
+ {"version":3,"file":"columns.js","sourceRoot":"","sources":["../../src/commands/columns.ts"],"names":[],"mappings":"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"}
@@ -39,24 +39,25 @@ export function registerCommentCommands(program) {
39
39
  .command("add <taskId> [message]")
40
40
  .description("Add a comment to a task")
41
41
  .option("-f, --file <path>", "Read comment body from file")
42
+ // `is_internal` is a LABEL. Nothing filters on it: the list route, the
43
+ // yaml/md renderers (`renderers.py` adds `internal: true`) and the claim
44
+ // brief (`claim_service._claim_comments`) all return the comment to every
45
+ // reader. Calling it "hidden" would be a help line promising privacy the
46
+ // server does not provide.
47
+ .option("--internal", "Mark the comment internal. A LABEL ONLY: nothing hides it — every reader of the thread, a board guest and " +
48
+ "the worker's claim brief included, still gets the full text. Do not put a secret in it.")
49
+ .option("--reply-to <commentId>", "Thread this under an existing comment (its UUID). The server does not check that comment is on the same task.")
42
50
  .action(async (taskId, message, opts) => {
43
51
  const wsSlug = program.opts().workspace;
44
52
  try {
45
53
  const client = createClient(wsSlug);
46
- let body;
47
- if (opts.file) {
48
- body = readFileSync(opts.file, "utf-8");
49
- }
50
- else if (message) {
51
- body = message;
52
- }
53
- else {
54
- console.error("Provide a message or --file <path>");
55
- process.exit(1);
56
- }
57
- const res = await client.post(`/api/v1/board/tasks/${taskId}/comments`, {
58
- content: body,
59
- });
54
+ const content = readBody(opts.file, message);
55
+ const body = { content };
56
+ if (opts.internal)
57
+ body.is_internal = true;
58
+ if (opts.replyTo)
59
+ body.parent_comment_id = opts.replyTo;
60
+ const res = await client.post(`/api/v1/board/tasks/${taskId}/comments`, body);
60
61
  const data = await res.json();
61
62
  printJson(data);
62
63
  }
@@ -66,5 +67,38 @@ export function registerCommentCommands(program) {
66
67
  process.exit(1);
67
68
  }
68
69
  });
70
+ // `updateComment` (PATCH /comments/{id}). AgentBoard's route checks no
71
+ // authorship — any caller who may write the board may rewrite any comment on
72
+ // it — and the activity row it writes carries only the comment id, so the
73
+ // previous text is gone. Both are in the help because both are surprises.
74
+ comments
75
+ .command("edit <commentId> [message]")
76
+ .description("Replace a comment's text. Any writer on the board can edit ANY comment (authorship is not checked), and the " +
77
+ "old text is not kept — the activity feed records that it was edited, not what it said.")
78
+ .option("-f, --file <path>", "Read the new body from file")
79
+ .action(async (commentId, message, opts) => {
80
+ const wsSlug = program.opts().workspace;
81
+ try {
82
+ const client = createClient(wsSlug);
83
+ const content = readBody(opts.file, message);
84
+ const res = await client.patch(`/api/v1/board/comments/${commentId}`, { content });
85
+ const data = await res.json();
86
+ printJson(data);
87
+ }
88
+ catch (err) {
89
+ const e = err;
90
+ console.error(`Error: ${e.detail || "Failed to edit comment"}`);
91
+ process.exit(1);
92
+ }
93
+ });
94
+ }
95
+ /** The comment body from `--file` or the positional message; exits when neither is given. */
96
+ function readBody(file, message) {
97
+ if (file)
98
+ return readFileSync(file, "utf-8");
99
+ if (message)
100
+ return message;
101
+ console.error("Provide a message or --file <path>");
102
+ process.exit(1);
69
103
  }
70
104
  //# sourceMappingURL=comments.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"comments.js","sourceRoot":"","sources":["../../src/commands/comments.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"comments.js","sourceRoot":"","sources":["../../src/commands/comments.ts"],"names":[],"mappings":"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"}
@@ -84,6 +84,40 @@ export function registerFileCommands(program) {
84
84
  process.exit(1);
85
85
  }
86
86
  });
87
+ // `attachFileFromUrl` (POST /tasks/{id}/files/fetch-url) had an MCP method
88
+ // and no CLI command (ASP-85). Distinct from `attach-url`, which stores a
89
+ // LINK: this stores the BYTES. `FileService.fetch_url_to_attachment` defaults
90
+ // file_type to attachment (verbatim); `image` runs `process_cover_image`.
91
+ files
92
+ .command("fetch-url <taskId> <url>")
93
+ .description("Download the file at a public http(s) URL onto a card, server-side. Stores the BYTES in your brand's file " +
94
+ "storage (up to 50 MB), so it survives the source going away — unlike attach-url, which keeps only a link. " +
95
+ "Internal, loopback and cloud-metadata addresses are refused.")
96
+ .option("--filename <name>", "Stored filename (default: the URL's last path segment)")
97
+ .option("--description <desc>", "Attachment description")
98
+ .option("--type <type>", "attachment (default: the original bytes, verbatim) | result | input | document | data | other | image. " +
99
+ "'image' RESIZES and center-crops to a 1200x675 JPEG and does not keep the original.")
100
+ .action(async (taskId, url, opts) => {
101
+ const wsSlug = program.opts().workspace;
102
+ try {
103
+ const client = createClient(wsSlug);
104
+ const body = { url };
105
+ if (opts.filename)
106
+ body.filename = opts.filename;
107
+ if (opts.description)
108
+ body.description = opts.description;
109
+ if (opts.type)
110
+ body.file_type = opts.type;
111
+ const res = await client.post(`/api/v1/board/tasks/${taskId}/files/fetch-url`, body);
112
+ const data = await res.json();
113
+ printJson(data);
114
+ }
115
+ catch (err) {
116
+ const e = err;
117
+ console.error(`Error: ${e.detail || "Failed to fetch URL onto the task"}`);
118
+ process.exit(1);
119
+ }
120
+ });
87
121
  files
88
122
  .command("download <fileId>")
89
123
  .description("Download a file")
@@ -1 +1 @@
1
- {"version":3,"file":"files.js","sourceRoot":"","sources":["../../src/commands/files.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"files.js","sourceRoot":"","sources":["../../src/commands/files.ts"],"names":[],"mappings":"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"}
@@ -3,6 +3,23 @@
3
3
  */
4
4
  import { getEffectiveConfig, createClient } from "@opvs-ai/core";
5
5
  import { buildUrl, printResponse, printJson } from "../lib/format.js";
6
+ import { boolFlag, oneOf } from "../lib/options.js";
7
+ /** `MarkerCreate.marker_type` pattern (agentboard `schemas/marker.py`). */
8
+ const MARKER_TYPES = ["milestone", "epic", "story", "checkpoint"];
9
+ // `marker_type` is read by nothing on the server but the marker service's own
10
+ // write — it is how the dashboard groups markers, not a behaviour.
11
+ const TYPE_HELP = `Kind of marker: ${MARKER_TYPES.join(" | ")}. Display grouping only — nothing on the server acts on it.`;
12
+ const TARGET_DATE_HELP = "Target date (YYYY-MM-DD). Informational: a missed date raises no alert and moves nothing.";
13
+ const BOARD_LINK_HELP = "UUID of a board-to-board link (`opvs board-links list`) this marker annotates on the board graph.";
14
+ const DESCRIPTION_HELP = "Marker description (max 1000 chars).";
15
+ /** `YYYY-MM-DD`, checked locally so a typo is one line rather than a pydantic 422. */
16
+ function isoDate(flag, raw) {
17
+ if (!/^\d{4}-\d{2}-\d{2}$/.test(raw)) {
18
+ console.error(`Error: ${flag} must be a date as YYYY-MM-DD (got '${raw}')`);
19
+ process.exit(1);
20
+ }
21
+ return raw;
22
+ }
6
23
  export function registerMarkerCommands(program) {
7
24
  const markers = program
8
25
  .command("markers")
@@ -31,8 +48,13 @@ export function registerMarkerCommands(program) {
31
48
  .requiredOption("-n, --name <name>", "Marker name")
32
49
  .option("--color <hex>", "Color hex (e.g. '#ff0000')")
33
50
  .option("--icon <icon>", "Icon name")
51
+ .option("--description <text>", DESCRIPTION_HELP)
52
+ .option("--type <type>", `${TYPE_HELP} Default: milestone.`)
53
+ .option("--target-date <date>", TARGET_DATE_HELP)
54
+ .option("--board-link <uuid>", BOARD_LINK_HELP)
34
55
  .action(async (opts) => {
35
56
  const wsSlug = program.opts().workspace;
57
+ const markerType = oneOf("--type", opts.type, MARKER_TYPES);
36
58
  try {
37
59
  const client = createClient(wsSlug);
38
60
  const body = { name: opts.name };
@@ -40,6 +62,14 @@ export function registerMarkerCommands(program) {
40
62
  body.color = opts.color;
41
63
  if (opts.icon)
42
64
  body.icon = opts.icon;
65
+ if (opts.description)
66
+ body.description = opts.description;
67
+ if (markerType)
68
+ body.marker_type = markerType;
69
+ if (opts.targetDate)
70
+ body.target_date = isoDate("--target-date", opts.targetDate);
71
+ if (opts.boardLink)
72
+ body.board_link_id = opts.boardLink;
43
73
  const res = await client.post("/api/v1/board/markers", body);
44
74
  const data = await res.json();
45
75
  printJson(data);
@@ -74,8 +104,18 @@ export function registerMarkerCommands(program) {
74
104
  .option("-n, --name <name>", "New name")
75
105
  .option("--color <hex>", "New color hex")
76
106
  .option("--icon <icon>", "New icon")
107
+ .option("--description <text>", `${DESCRIPTION_HELP} Pass '' to clear it.`)
108
+ .option("--type <type>", TYPE_HELP)
109
+ .option("--target-date <date>", `${TARGET_DATE_HELP} Pass 'none' to clear it.`)
110
+ .option("--board-link <uuid>", `${BOARD_LINK_HELP} Pass 'none' to detach it.`)
111
+ // `is_completed` is NOT NULL, so there is no clear verb — only true | false.
112
+ // `MarkerService.update` stamps completed_at on the false→true edge and
113
+ // clears it on true→false, so re-completing restarts the timestamp.
114
+ .option("--completed <bool>", "true | false. Marks the milestone done (stamps completed_at) or reopens it (clears completed_at, so a later " +
115
+ "completion records a NEW date).")
77
116
  .action(async (markerId, opts) => {
78
117
  const wsSlug = program.opts().workspace;
118
+ const markerType = oneOf("--type", opts.type, MARKER_TYPES);
79
119
  try {
80
120
  const client = createClient(wsSlug);
81
121
  const body = {};
@@ -85,8 +125,20 @@ export function registerMarkerCommands(program) {
85
125
  body.color = opts.color;
86
126
  if (opts.icon)
87
127
  body.icon = opts.icon;
128
+ if (opts.description !== undefined)
129
+ body.description = opts.description === "" ? null : opts.description;
130
+ if (markerType)
131
+ body.marker_type = markerType;
132
+ if (opts.targetDate !== undefined) {
133
+ body.target_date = opts.targetDate === "none" ? null : isoDate("--target-date", opts.targetDate);
134
+ }
135
+ if (opts.boardLink !== undefined)
136
+ body.board_link_id = opts.boardLink === "none" ? null : opts.boardLink;
137
+ const completed = boolFlag("--completed", opts.completed);
138
+ if (completed !== undefined)
139
+ body.is_completed = completed;
88
140
  if (Object.keys(body).length === 0) {
89
- console.error("Nothing to update. Provide --name, --color, or --icon");
141
+ console.error("Nothing to update. Provide --name, --color, --icon, --description, --type, --target-date, --board-link, or --completed");
90
142
  process.exit(1);
91
143
  }
92
144
  const res = await client.patch(`/api/v1/board/markers/${markerId}`, body);
@@ -1 +1 @@
1
- {"version":3,"file":"markers.js","sourceRoot":"","sources":["../../src/commands/markers.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"markers.js","sourceRoot":"","sources":["../../src/commands/markers.ts"],"names":[],"mappings":"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"}
@@ -1,5 +1,38 @@
1
1
  /**
2
2
  * opvs members — board member management
3
+ *
4
+ * ── Why this file was rewritten (ASP-85) ─────────────────────────────────────
5
+ * `members add` sent `{user_id, role}` and `members remove` called
6
+ * `/members/{userId}`. The route has always taken `{member_type, member_id}`
7
+ * (AgentBoard `AddBoardMemberRequest`) and deletes at
8
+ * `/members/{member_type}/{member_id}`, so BOTH commands failed on every call —
9
+ * a 422 and a 404 — for as long as they had existed.
10
+ *
11
+ * ── What a role does, and does not do ───────────────────────────────────────
12
+ * `member_role` is read in exactly ONE place: the gateway's
13
+ * `_guest_role_allows` (apps/api `board.py`), and only for a membership with
14
+ * `is_external = true`. A member of the board's own brand is never checked
15
+ * against it. So `--role` caps a GUEST and is inert for everyone else — which
16
+ * is why the help says so rather than calling it a permission.
17
+ *
18
+ * `is_external` has no flag on purpose (surface_parity_exclusions/cli_fields.yaml).
19
+ * Whether a user is a guest is a fact about the user's brand, which the
20
+ * `by-email` route looks up and this command cannot — so `members invite`
21
+ * is the door for a guest, and it decides guest-ness itself.
3
22
  */
4
23
  import { Command } from "commander";
24
+ /** `AddBoardMemberRequest.member_role` pattern (agentboard `schemas/board.py`). */
25
+ export declare const MEMBER_ROLES: readonly ["viewer", "commenter", "editor"];
26
+ /**
27
+ * Resolve `--user` / `--agent` to the `(member_type, member_id)` pair the route
28
+ * takes. Exactly one is required: two would be two members in one request the
29
+ * route cannot express, and none is the 422 this command used to send.
30
+ */
31
+ export declare function memberTarget(opts: {
32
+ user?: string;
33
+ agent?: string;
34
+ }): {
35
+ member_type: string;
36
+ member_id: string;
37
+ };
5
38
  export declare function registerMemberCommands(program: Command): void;