@opvs-ai/cli 0.14.0 → 0.15.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 +28 -0
- package/dist/.build-stamp.json +4 -4
- package/dist/commands/boards.d.ts +44 -0
- package/dist/commands/boards.js +389 -0
- package/dist/commands/boards.js.map +1 -1
- package/dist/commands/columns.d.ts +40 -0
- package/dist/commands/columns.js +230 -8
- package/dist/commands/columns.js.map +1 -1
- package/dist/commands/projects.js +59 -1
- package/dist/commands/projects.js.map +1 -1
- package/dist/commands/tasks.js +82 -13
- package/dist/commands/tasks.js.map +1 -1
- package/dist/lib/health.d.ts +54 -0
- package/dist/lib/health.js +126 -0
- package/dist/lib/health.js.map +1 -0
- package/dist/lib/routing.d.ts +41 -0
- package/dist/lib/routing.js +61 -0
- package/dist/lib/routing.js.map +1 -0
- package/package.json +1 -1
package/dist/commands/columns.js
CHANGED
|
@@ -1,8 +1,228 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* opvs columns — board column management
|
|
3
|
+
*
|
|
4
|
+
* ── Column wiring (ASP-25, plan §A) ─────────────────────────────────────────
|
|
5
|
+
* `claimable_by_roles`, `on_claim_move_to` and `on_done_move_to` are the three
|
|
6
|
+
* fields that turn a board into a factory. The API has accepted all of them
|
|
7
|
+
* since migration 040, and until this slice the only way to write them was raw
|
|
8
|
+
* REST — seeded once at board create, unreachable after. The same was true of
|
|
9
|
+
* `mapped_status`, `is_done_column`, `is_default`, `description` and the five
|
|
10
|
+
* `sla_*` fields.
|
|
11
|
+
*
|
|
12
|
+
* Every help string below states what the flag COSTS as well as what it does,
|
|
13
|
+
* because `--help` is the only place a terminal user reads that. Where a
|
|
14
|
+
* string makes a claim about server behaviour it names the code that makes it
|
|
15
|
+
* true, in a comment beside it — a help line is a claim, and a claim with no
|
|
16
|
+
* reader to check it goes stale silently (ASP-5 left one behind in tasks.ts).
|
|
3
17
|
*/
|
|
4
18
|
import { getEffectiveConfig, createClient } from "@opvs-ai/core";
|
|
5
19
|
import { buildUrl, printResponse, printJson } from "../lib/format.js";
|
|
20
|
+
import { csv, oneOf } from "../lib/options.js";
|
|
21
|
+
/** `TaskStatus` (agentboard `models/task.py`). A column binds at most one. */
|
|
22
|
+
export const TASK_STATUSES = [
|
|
23
|
+
"pending",
|
|
24
|
+
"assigned",
|
|
25
|
+
"in_progress",
|
|
26
|
+
"blocked",
|
|
27
|
+
"review",
|
|
28
|
+
"done",
|
|
29
|
+
"cancelled",
|
|
30
|
+
"failed",
|
|
31
|
+
];
|
|
32
|
+
/** `ColumnBase.sla_action` literal (agentboard `schemas/column.py`). */
|
|
33
|
+
const SLA_ACTIONS = ["comment", "move", "message", "all"];
|
|
34
|
+
/** `ColumnBase.sla_recipient` literal. */
|
|
35
|
+
const SLA_RECIPIENTS = ["column.managed_by", "task.assignee"];
|
|
36
|
+
/**
|
|
37
|
+
* The claim gate is a BOARD-WIDE switch that is set on a COLUMN — which is why
|
|
38
|
+
* it has to be in the help string and not only in the docs.
|
|
39
|
+
*
|
|
40
|
+
* Source of truth: `ClaimService._claim_source_columns`
|
|
41
|
+
* (agentboard `services/claim_service.py`, the "neither" branch, OSB-55):
|
|
42
|
+
* no role and no explicit columns → the board's DECLARED columns if any column
|
|
43
|
+
* declares a role, else every column.
|
|
44
|
+
*/
|
|
45
|
+
const CLAIMABLE_BY_ROLES_HELP = "Comma-separated worker ROLES that may claim pending cards FROM this column, e.g. builder,verifier. " +
|
|
46
|
+
"The list REPLACES the column's whole set — it does not append (same convention as tasks update --depends-on); " +
|
|
47
|
+
"pass '' or 'none' to clear it. " +
|
|
48
|
+
"SAFETY: setting a role on ANY column changes the whole board — a worker claiming without a role is then held " +
|
|
49
|
+
"to declared columns only. A board where NO column declares a role lets a role-less worker take from EVERY " +
|
|
50
|
+
"column, Backlog included.";
|
|
51
|
+
/** `ClaimService._resolve_target_column`: this slug first, else the board's in_progress column. */
|
|
52
|
+
const ON_CLAIM_MOVE_TO_HELP = "Slug of the column a card moves to when it is claimed FROM this column (this stage's in-progress). " +
|
|
53
|
+
"Unset → the claim falls back to the board's mapped_status=in_progress column.";
|
|
54
|
+
/**
|
|
55
|
+
* 🔴 Deliberately NOT "the hand-off is automatic".
|
|
56
|
+
*
|
|
57
|
+
* ASP-25 was asked to say that pointing this at a role-bearing column makes the
|
|
58
|
+
* hand-off automatic. Measured on main at 81e499490: nothing reads this column.
|
|
59
|
+
* `grep -rn on_done_move_to` finds the model, the schemas, the column service's
|
|
60
|
+
* write, the response builder, the presets and their tests — and no code that
|
|
61
|
+
* moves a card by it. `models/column.py` calls it "advisory forward-routing",
|
|
62
|
+
* and release/wake keys off task status. Saying the hand-off is automatic would
|
|
63
|
+
* be a help line describing behaviour that cannot happen — the exact defect
|
|
64
|
+
* this card was opened to remove from `tasks create --task-type`.
|
|
65
|
+
* If a reader lands, this string is the thing to change.
|
|
66
|
+
*/
|
|
67
|
+
const ON_DONE_MOVE_TO_HELP = "Slug of the NEXT stage's column, recorded as forward-routing. ADVISORY ONLY: no server code reads it today, " +
|
|
68
|
+
"so a card finishing here is NOT moved and NOT handed to the next stage's role automatically — move it yourself " +
|
|
69
|
+
"(opvs tasks move) so that role can claim it.";
|
|
70
|
+
const MAPPED_STATUS_HELP = `Task status this column binds to: ${TASK_STATUSES.join(" | ")}. A card moved here takes this status. ` +
|
|
71
|
+
"At most ONE column per board may bind each status (a second is a 409). 'done' also makes it the done column.";
|
|
72
|
+
const IS_DONE_HELP = "true | false. Marks the board's done column. One per board: setting it while another column holds it is a 409 " +
|
|
73
|
+
"naming that column — clear it there first.";
|
|
74
|
+
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
|
+
const DESCRIPTION_HELP = "Markdown instructions that apply to every card in this column (agents read it on the card).";
|
|
76
|
+
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
|
+
// `services/sla_scanner.py` module docstring: `message` is a comment prefixed
|
|
79
|
+
// with @recipient; real OPVS-protocol delivery is a TODO there.
|
|
80
|
+
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.";
|
|
82
|
+
const SLA_MOVE_TO_HELP = "Slug of the column a stale card is moved to (for --sla-action move | all).";
|
|
83
|
+
const SLA_RECIPIENT_HELP = "Who a 'message' names: column.managed_by | task.assignee. Unset → column.managed_by.";
|
|
84
|
+
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
|
+
/**
|
|
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.
|
|
101
|
+
*/
|
|
102
|
+
function parsePositiveInt(flag, raw) {
|
|
103
|
+
if (raw === undefined)
|
|
104
|
+
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}')`);
|
|
108
|
+
process.exit(1);
|
|
109
|
+
}
|
|
110
|
+
return Number(s);
|
|
111
|
+
}
|
|
112
|
+
/**
|
|
113
|
+
* Build the wiring half of a column body from flags.
|
|
114
|
+
*
|
|
115
|
+
* Only flags the caller actually gave become keys — the PATCH is
|
|
116
|
+
* `model_dump(exclude_unset=True)` (`ColumnService.update`), so an absent key
|
|
117
|
+
* leaves the field alone and an explicit `null` clears it. `clearable` is false
|
|
118
|
+
* on create, where there is nothing to clear: a clear verb there sends nothing.
|
|
119
|
+
*/
|
|
120
|
+
export function buildColumnWiring(opts, clearable) {
|
|
121
|
+
const body = {};
|
|
122
|
+
const scalar = (key, raw) => {
|
|
123
|
+
if (raw === undefined)
|
|
124
|
+
return;
|
|
125
|
+
if (raw === CLEAR || raw === "") {
|
|
126
|
+
if (clearable)
|
|
127
|
+
body[key] = null;
|
|
128
|
+
return;
|
|
129
|
+
}
|
|
130
|
+
body[key] = raw;
|
|
131
|
+
};
|
|
132
|
+
if (opts.claimableByRoles !== undefined) {
|
|
133
|
+
const raw = opts.claimableByRoles.trim();
|
|
134
|
+
if (raw === "" || raw === CLEAR) {
|
|
135
|
+
if (clearable)
|
|
136
|
+
body.claimable_by_roles = null;
|
|
137
|
+
}
|
|
138
|
+
else {
|
|
139
|
+
body.claimable_by_roles = csv(raw);
|
|
140
|
+
}
|
|
141
|
+
}
|
|
142
|
+
scalar("on_claim_move_to", opts.onClaimMoveTo);
|
|
143
|
+
scalar("on_done_move_to", opts.onDoneMoveTo);
|
|
144
|
+
if (opts.mappedStatus !== undefined) {
|
|
145
|
+
if (opts.mappedStatus === CLEAR || opts.mappedStatus === "") {
|
|
146
|
+
if (clearable)
|
|
147
|
+
body.mapped_status = null;
|
|
148
|
+
}
|
|
149
|
+
else {
|
|
150
|
+
body.mapped_status = oneOf("--mapped-status", opts.mappedStatus, TASK_STATUSES);
|
|
151
|
+
}
|
|
152
|
+
}
|
|
153
|
+
const isDone = parseBool("--is-done-column", opts.isDoneColumn);
|
|
154
|
+
if (isDone !== undefined)
|
|
155
|
+
body.is_done_column = isDone;
|
|
156
|
+
const isDefault = parseBool("--is-default", opts.isDefault);
|
|
157
|
+
if (isDefault !== undefined)
|
|
158
|
+
body.is_default = isDefault;
|
|
159
|
+
// `description` is free text, so only the empty string clears it — "none" is
|
|
160
|
+
// a legitimate thing to write in a column's instructions.
|
|
161
|
+
if (opts.description !== undefined) {
|
|
162
|
+
if (opts.description === "") {
|
|
163
|
+
if (clearable)
|
|
164
|
+
body.description = null;
|
|
165
|
+
}
|
|
166
|
+
else {
|
|
167
|
+
body.description = opts.description;
|
|
168
|
+
}
|
|
169
|
+
}
|
|
170
|
+
if (opts.slaMinutes !== undefined) {
|
|
171
|
+
if (opts.slaMinutes === CLEAR) {
|
|
172
|
+
if (clearable)
|
|
173
|
+
body.sla_minutes = null;
|
|
174
|
+
}
|
|
175
|
+
else {
|
|
176
|
+
body.sla_minutes = parsePositiveInt("--sla-minutes", opts.slaMinutes);
|
|
177
|
+
}
|
|
178
|
+
}
|
|
179
|
+
if (opts.slaAction !== undefined) {
|
|
180
|
+
if (opts.slaAction === CLEAR) {
|
|
181
|
+
if (clearable)
|
|
182
|
+
body.sla_action = null;
|
|
183
|
+
}
|
|
184
|
+
else {
|
|
185
|
+
body.sla_action = oneOf("--sla-action", opts.slaAction, SLA_ACTIONS);
|
|
186
|
+
}
|
|
187
|
+
}
|
|
188
|
+
scalar("sla_move_to_column_slug", opts.slaMoveTo);
|
|
189
|
+
if (opts.slaRecipient !== undefined) {
|
|
190
|
+
if (opts.slaRecipient === CLEAR) {
|
|
191
|
+
if (clearable)
|
|
192
|
+
body.sla_recipient = null;
|
|
193
|
+
}
|
|
194
|
+
else {
|
|
195
|
+
body.sla_recipient = oneOf("--sla-recipient", opts.slaRecipient, SLA_RECIPIENTS);
|
|
196
|
+
}
|
|
197
|
+
}
|
|
198
|
+
if (opts.slaTemplate !== undefined) {
|
|
199
|
+
if (opts.slaTemplate === "") {
|
|
200
|
+
if (clearable)
|
|
201
|
+
body.sla_message_template = null;
|
|
202
|
+
}
|
|
203
|
+
else {
|
|
204
|
+
body.sla_message_template = opts.slaTemplate;
|
|
205
|
+
}
|
|
206
|
+
}
|
|
207
|
+
return body;
|
|
208
|
+
}
|
|
209
|
+
/** Attach the wiring + SLA options shared by `create` and `update`. */
|
|
210
|
+
function withWiringOptions(cmd, clearable) {
|
|
211
|
+
const clear = (help, verb = "'none'") => (clearable ? `${help} Pass ${verb} to clear it.` : help);
|
|
212
|
+
return cmd
|
|
213
|
+
.option("--claimable-by-roles <roles>", CLAIMABLE_BY_ROLES_HELP)
|
|
214
|
+
.option("--on-claim-move-to <slug>", clear(ON_CLAIM_MOVE_TO_HELP))
|
|
215
|
+
.option("--on-done-move-to <slug>", clear(ON_DONE_MOVE_TO_HELP))
|
|
216
|
+
.option("--mapped-status <status>", clear(MAPPED_STATUS_HELP))
|
|
217
|
+
.option("--is-done-column <bool>", IS_DONE_HELP)
|
|
218
|
+
.option("--is-default <bool>", IS_DEFAULT_HELP)
|
|
219
|
+
.option("--description <markdown>", clear(DESCRIPTION_HELP, "''"))
|
|
220
|
+
.option("--sla-minutes <n>", clear(SLA_MINUTES_HELP))
|
|
221
|
+
.option("--sla-action <action>", clear(SLA_ACTION_HELP))
|
|
222
|
+
.option("--sla-move-to <slug>", clear(SLA_MOVE_TO_HELP))
|
|
223
|
+
.option("--sla-recipient <who>", clear(SLA_RECIPIENT_HELP))
|
|
224
|
+
.option("--sla-template <markdown>", clear(SLA_TEMPLATE_HELP, "''"));
|
|
225
|
+
}
|
|
6
226
|
export function registerColumnCommands(program) {
|
|
7
227
|
const columns = program.command("columns").description("Board column management");
|
|
8
228
|
columns
|
|
@@ -23,15 +243,14 @@ export function registerColumnCommands(program) {
|
|
|
23
243
|
process.exit(1);
|
|
24
244
|
}
|
|
25
245
|
});
|
|
26
|
-
columns
|
|
246
|
+
withWiringOptions(columns
|
|
27
247
|
.command("create <boardId>")
|
|
28
248
|
.description("Create a new column")
|
|
29
249
|
.requiredOption("--name <name>", "Column name")
|
|
30
250
|
.option("--slug <slug>", "URL-safe slug (auto-derived from --name if omitted)")
|
|
31
251
|
.option("--color <color>", "Column color (hex)")
|
|
32
252
|
.option("--wip-limit <n>", "Work-in-progress limit")
|
|
33
|
-
.option("--position <n>", "Position (0-based)")
|
|
34
|
-
.action(async (boardId, opts) => {
|
|
253
|
+
.option("--position <n>", "Position (0-based)"), false).action(async (boardId, opts) => {
|
|
35
254
|
const wsSlug = program.opts().workspace;
|
|
36
255
|
try {
|
|
37
256
|
const client = createClient(wsSlug);
|
|
@@ -48,6 +267,7 @@ export function registerColumnCommands(program) {
|
|
|
48
267
|
body.wip_limit = parseInt(opts.wipLimit, 10);
|
|
49
268
|
if (opts.position !== undefined)
|
|
50
269
|
body.position = parseInt(opts.position, 10);
|
|
270
|
+
Object.assign(body, buildColumnWiring(opts, false));
|
|
51
271
|
const res = await client.post(`/api/v1/board/boards/${boardId}/columns`, body);
|
|
52
272
|
const data = await res.json();
|
|
53
273
|
printJson(data);
|
|
@@ -58,13 +278,12 @@ export function registerColumnCommands(program) {
|
|
|
58
278
|
process.exit(1);
|
|
59
279
|
}
|
|
60
280
|
});
|
|
61
|
-
columns
|
|
281
|
+
withWiringOptions(columns
|
|
62
282
|
.command("update <columnId>")
|
|
63
|
-
.description("Update a column")
|
|
283
|
+
.description("Update a column — only the flags you pass are changed")
|
|
64
284
|
.option("--name <name>", "New name")
|
|
65
285
|
.option("--color <color>", "New color (hex)")
|
|
66
|
-
.option("--wip-limit <n>", "Work-in-progress limit")
|
|
67
|
-
.action(async (columnId, opts) => {
|
|
286
|
+
.option("--wip-limit <n>", "Work-in-progress limit"), true).action(async (columnId, opts) => {
|
|
68
287
|
const wsSlug = program.opts().workspace;
|
|
69
288
|
try {
|
|
70
289
|
const client = createClient(wsSlug);
|
|
@@ -75,8 +294,11 @@ export function registerColumnCommands(program) {
|
|
|
75
294
|
body.color = opts.color;
|
|
76
295
|
if (opts.wipLimit)
|
|
77
296
|
body.wip_limit = parseInt(opts.wipLimit, 10);
|
|
297
|
+
Object.assign(body, buildColumnWiring(opts, true));
|
|
78
298
|
if (Object.keys(body).length === 0) {
|
|
79
|
-
console.error("Nothing to update. Provide --name, --color,
|
|
299
|
+
console.error("Nothing to update. Provide --name, --color, --wip-limit, --claimable-by-roles, --on-claim-move-to, " +
|
|
300
|
+
"--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");
|
|
80
302
|
process.exit(1);
|
|
81
303
|
}
|
|
82
304
|
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":"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"}
|
|
1
|
+
{"version":3,"file":"columns.js","sourceRoot":"","sources":["../../src/commands/columns.ts"],"names":[],"mappings":"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"}
|
|
@@ -17,6 +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 { healthParams, renderHealthReport, withHealthOptions } from "../lib/health.js";
|
|
21
|
+
import { buildRoutingBody, withRoutingOptions } from "../lib/routing.js";
|
|
20
22
|
const BASE = "/api/v1/board/board-groups/projects";
|
|
21
23
|
/** commander repeatable-option accumulator (same shape as `create --board`). */
|
|
22
24
|
const collect = (val, acc) => {
|
|
@@ -120,6 +122,61 @@ export function registerProjectCommands(program) {
|
|
|
120
122
|
process.exit(1);
|
|
121
123
|
}
|
|
122
124
|
});
|
|
125
|
+
// ── set-routing (ASP-25, plan §C / migration 062) ───────────────────
|
|
126
|
+
// A dedicated verb rather than more flags on `update`: a routing default
|
|
127
|
+
// reaches every board in the project, the widest blast radius of the three
|
|
128
|
+
// rungs, and it deserves a command whose name says so.
|
|
129
|
+
withRoutingOptions(projects
|
|
130
|
+
.command("set-routing <id>")
|
|
131
|
+
.description("Set the project's routing defaults (model / provider / harness / claimable-by) for all its boards. Only the flags you pass change."), "project").action(async (id, opts) => {
|
|
132
|
+
const wsSlug = program.opts().workspace;
|
|
133
|
+
try {
|
|
134
|
+
const body = buildRoutingBody(opts);
|
|
135
|
+
if (Object.keys(body).length === 0) {
|
|
136
|
+
console.error("Nothing to set. Provide --model, --provider, --harness, or --claimable-by");
|
|
137
|
+
process.exit(1);
|
|
138
|
+
}
|
|
139
|
+
const client = createClient(wsSlug);
|
|
140
|
+
const res = await client.patch(`${BASE}/${id}`, body);
|
|
141
|
+
const data = (await res.json());
|
|
142
|
+
printJson({
|
|
143
|
+
id: data.id,
|
|
144
|
+
name: data.name,
|
|
145
|
+
default_model: data.default_model ?? null,
|
|
146
|
+
default_provider: data.default_provider ?? null,
|
|
147
|
+
default_harness: data.default_harness ?? null,
|
|
148
|
+
default_claimable_by: data.default_claimable_by ?? null,
|
|
149
|
+
});
|
|
150
|
+
}
|
|
151
|
+
catch (err) {
|
|
152
|
+
const e = err;
|
|
153
|
+
console.error(`Error: ${e.detail || "Failed to set project routing"}`);
|
|
154
|
+
process.exit(1);
|
|
155
|
+
}
|
|
156
|
+
});
|
|
157
|
+
// ── health (ASP-25, plan §J4 / §J5) ────────────────────────────────
|
|
158
|
+
withHealthOptions(projects
|
|
159
|
+
.command("health <id>")
|
|
160
|
+
.description("Project audit: bundle non-empty, member boards present, no board claimed by two projects, and every member " +
|
|
161
|
+
"board's verdict. Thresholds are forwarded to each board; an unsupplied one prints NOT CHECKED and the " +
|
|
162
|
+
"verdict reads INCOMPLETE — a project never reads healthier than its boards.")).action(async (id, opts) => {
|
|
163
|
+
const wsSlug = program.opts().workspace;
|
|
164
|
+
try {
|
|
165
|
+
const client = createClient(wsSlug);
|
|
166
|
+
const url = buildUrl(`${BASE}/${id}/health`, healthParams(opts));
|
|
167
|
+
const res = await client.get(url);
|
|
168
|
+
const report = (await res.json());
|
|
169
|
+
if (opts.json)
|
|
170
|
+
printJson(report);
|
|
171
|
+
else
|
|
172
|
+
console.log(renderHealthReport(report));
|
|
173
|
+
}
|
|
174
|
+
catch (err) {
|
|
175
|
+
const e = err;
|
|
176
|
+
console.error(`Error: ${e.detail || "Failed to get project health"}`);
|
|
177
|
+
process.exit(1);
|
|
178
|
+
}
|
|
179
|
+
});
|
|
123
180
|
// ── set-status (manual lifecycle transition) ───────────────────────
|
|
124
181
|
// status ∈ active | on_hold | completed. On `completed` an optional
|
|
125
182
|
// --handoff free-text is stored in settings.closing_handoff.
|
|
@@ -168,7 +225,8 @@ export function registerProjectCommands(program) {
|
|
|
168
225
|
// ── add-board (many-to-many membership) ────────────────────────────
|
|
169
226
|
projects
|
|
170
227
|
.command("add-board <id> <board_id>")
|
|
171
|
-
.description("Add a board to a project
|
|
228
|
+
.description("Add a board to a project. Membership is many-to-many, but a board claimed by TWO active projects is " +
|
|
229
|
+
"ambiguous and inherits NEITHER project's bundle or routing defaults — check with `opvs boards projects <board>`.")
|
|
172
230
|
.action(async (id, boardId) => {
|
|
173
231
|
const wsSlug = program.opts().workspace;
|
|
174
232
|
try {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"projects.js","sourceRoot":"","sources":["../../src/commands/projects.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"projects.js","sourceRoot":"","sources":["../../src/commands/projects.ts"],"names":[],"mappings":"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"}
|
package/dist/commands/tasks.js
CHANGED
|
@@ -5,8 +5,14 @@ import { readFileSync } from "node:fs";
|
|
|
5
5
|
import { getEffectiveConfig, createClient } from "@opvs-ai/core";
|
|
6
6
|
import { buildUrl, printResponse, printJson, printWriteSummary } from "../lib/format.js";
|
|
7
7
|
import { clampLimit } from "../lib/pagination.js";
|
|
8
|
-
import { oneOf } from "../lib/options.js";
|
|
8
|
+
import { csv, oneOf } from "../lib/options.js";
|
|
9
9
|
import { confirm } from "../lib/confirm.js";
|
|
10
|
+
import { isUuid } from "../lib/board-refs.js";
|
|
11
|
+
import { TASK_STATUSES } from "./columns.js";
|
|
12
|
+
/** `TaskStatus` values `tasks search --status` accepts (agentboard `models/task.py`). */
|
|
13
|
+
const SEARCH_STATUSES = TASK_STATUSES;
|
|
14
|
+
/** `TaskPriority` values (agentboard `models/task.py`). */
|
|
15
|
+
const SEARCH_PRIORITIES = ["critical", "high", "medium", "low"];
|
|
10
16
|
/** Formats `GET /boards/{id}/runnable` implements (OSB-196). */
|
|
11
17
|
const RUNNABLE_FORMATS = ["json", "yaml", "md"];
|
|
12
18
|
/** Collect a repeatable `--field key=value` option into an array. */
|
|
@@ -230,17 +236,27 @@ export function registerTaskCommands(program) {
|
|
|
230
236
|
.option("--parent <taskId>", "Parent task — short ref or UUID (makes this a subtask)")
|
|
231
237
|
.option("--mutex-group <lane>", "DAG lane. Two cards sharing a lane on one board never run concurrently — use it for cards that touch the same files.")
|
|
232
238
|
.option("--context <json>", "Agent context as a JSON object string")
|
|
233
|
-
.option("--claimable-by <class>",
|
|
239
|
+
.option("--claimable-by <class>",
|
|
240
|
+
// ASP-25: "Omit for anyone" stopped being true at migration 062 — an
|
|
241
|
+
// omitted gate now inherits the board's, then the project's,
|
|
242
|
+
// default_claimable_by (`ClaimService`, `_coalesce(t.claimable_by) or
|
|
243
|
+
// default_claimable_by`). It is "anyone" only when neither sets one.
|
|
244
|
+
"Actor gate: worker | agent | human. Restricts WHO may claim this card via the claim engine. Omit to inherit the board's, then the project's, default (opvs boards set-routing --claimable-by) — anyone, when neither sets one. Not the same as a column's claimable_by_roles, which holds a role.")
|
|
234
245
|
// ── Build routing pins (OSB-198 item 8) ────────────────────────────────
|
|
235
246
|
// `TaskCreate` has declared all six of these since migrations 052/056/060.
|
|
236
247
|
// The BULK path could set them (`tasks bulk --items` takes them inside the
|
|
237
248
|
// JSON blob); the single-card path could not — so they were reachable if
|
|
238
249
|
// you hand-wrote JSON for a batch and unreachable when you created one
|
|
239
|
-
// card, which is the normal case.
|
|
240
|
-
//
|
|
241
|
-
//
|
|
242
|
-
//
|
|
243
|
-
|
|
250
|
+
// card, which is the normal case.
|
|
251
|
+
//
|
|
252
|
+
// ASP-25: this help used to say the board WARNS
|
|
253
|
+
// (`$audit.warn:missing_task_type`) when a factory card has no task_type.
|
|
254
|
+
// Migration 062 (ASP-5/ASP-6) retired that ask on both surfaces, so the
|
|
255
|
+
// line described a warning that can no longer fire. The FLAG stays — plan
|
|
256
|
+
// §C retires the ask, not the field: task_type still routes the model where
|
|
257
|
+
// the worker router is on and still keys the run ledger.
|
|
258
|
+
.option("--task-type <type>", "Factory card type — routes the model where the worker router is enabled and keys the run ledger. " +
|
|
259
|
+
"Optional: a card that names none inherits the board's, then the project's, routing defaults (opvs boards set-routing).")
|
|
244
260
|
.option("--model <model>", MODEL_HELP)
|
|
245
261
|
.option("--provider <lane>", PROVIDER_HELP)
|
|
246
262
|
.option("--harness <executor>", HARNESS_HELP)
|
|
@@ -349,7 +365,7 @@ export function registerTaskCommands(program) {
|
|
|
349
365
|
// an existing capability read as missing, and callers built workarounds.
|
|
350
366
|
.option("--depends-on <refs>", "Comma-separated tasks this card waits on, REPLACING the current set — short refs (OSB-108), 8+ hex UUID prefixes, or full UUIDs. Pass '' to clear every edge.")
|
|
351
367
|
.option("--mutex-group <lane>", "DAG lane, or 'none' to clear it. Two cards sharing a lane on one board never run concurrently.")
|
|
352
|
-
.option("--claimable-by <class>", "Actor gate: worker | agent | human, or 'none' to CLEAR it
|
|
368
|
+
.option("--claimable-by <class>", "Actor gate: worker | agent | human, or 'none' to CLEAR the card's own gate — it then inherits the board's, then the project's, default, and is claimable by anyone only when neither sets one.")
|
|
353
369
|
// ── Build routing pins (OSB-198 item 8) ────────────────────────────────
|
|
354
370
|
// Each takes 'none' as its CLEAR verb, matching --mutex-group and
|
|
355
371
|
// --claimable-by above. Omitting a flag leaves that pin ALONE: the body is
|
|
@@ -631,22 +647,75 @@ export function registerTaskCommands(program) {
|
|
|
631
647
|
});
|
|
632
648
|
tasks
|
|
633
649
|
.command("search")
|
|
634
|
-
|
|
635
|
-
|
|
636
|
-
|
|
650
|
+
// ASP-25 / plan §G: the route now matches a card REF (OSB-78) and a PR
|
|
651
|
+
// number (1256 or #1256) as well as title and description, ranked by
|
|
652
|
+
// relevance then recency. Every filter below is a DECLARED query param on
|
|
653
|
+
// `GET /cards/search` (agentboard `relationships.py`) — the old `--board`
|
|
654
|
+
// sent `board_id` for months while FastAPI dropped it undeclared.
|
|
655
|
+
.description("Search cards across boards by ref (OSB-78), PR number (1256 or #1256), title, then description — best match first. Comments are not searched.")
|
|
656
|
+
.requiredOption("-q, --query <text>", "Search text: a card ref, a PR number, or words from the title/description")
|
|
657
|
+
.option("--board <boards>", "Scope to boards: a board UUID, or one or more board KEYS comma-separated (e.g. OSB,ASP — case-insensitive)")
|
|
658
|
+
.option("--board-type <type>", "Only boards of this type, e.g. factory")
|
|
659
|
+
.option("--status <statuses>", `Comma-separated task statuses: ${SEARCH_STATUSES.join(" | ")}`)
|
|
660
|
+
.option("--priority <priorities>", `Comma-separated priorities: ${SEARCH_PRIORITIES.join(" | ")}`)
|
|
661
|
+
.option("--assignee <ids>", "Comma-separated assignee ids — matches a user OR an agent assignment")
|
|
662
|
+
.option("--column <names>", "Comma-separated column NAMES, case-insensitive, matched across boards (e.g. Review,Done)")
|
|
637
663
|
.option("--limit <n>", "Max results (1-100, default 20)")
|
|
664
|
+
.option("--offset <n>", "Rows to skip, for paging (0-10000)")
|
|
638
665
|
.action(async (opts) => {
|
|
639
666
|
const wsSlug = program.opts().workspace;
|
|
640
667
|
const cfg = getEffectiveConfig(wsSlug);
|
|
641
668
|
try {
|
|
642
669
|
const client = createClient(wsSlug);
|
|
643
670
|
const params = { q: opts.query };
|
|
644
|
-
if (opts.board)
|
|
645
|
-
|
|
671
|
+
if (opts.board) {
|
|
672
|
+
// A UUID is one board by id; anything else is a key list. The route
|
|
673
|
+
// takes both, as different params — sending a key as board_id is a
|
|
674
|
+
// 422, and sending a UUID as board_key matches nothing.
|
|
675
|
+
const boards = csv(opts.board) ?? [];
|
|
676
|
+
if (boards.length === 1 && isUuid(boards[0]))
|
|
677
|
+
params.board_id = boards[0];
|
|
678
|
+
else if (boards.some(isUuid)) {
|
|
679
|
+
console.error("Error: --board takes ONE board UUID, or board KEYS (e.g. OSB,ASP) — not a mix.");
|
|
680
|
+
process.exit(1);
|
|
681
|
+
}
|
|
682
|
+
else if (boards.length)
|
|
683
|
+
params.board_key = boards.join(",");
|
|
684
|
+
}
|
|
685
|
+
if (opts.boardType)
|
|
686
|
+
params.board_type = opts.boardType;
|
|
687
|
+
const statuses = csv(opts.status);
|
|
688
|
+
if (statuses) {
|
|
689
|
+
// The route does not validate these — a typo is a silent zero-result
|
|
690
|
+
// search, indistinguishable from "no such card". Refuse it here.
|
|
691
|
+
for (const st of statuses)
|
|
692
|
+
oneOf("--status", st, SEARCH_STATUSES);
|
|
693
|
+
params.status = statuses.join(",");
|
|
694
|
+
}
|
|
695
|
+
const priorities = csv(opts.priority);
|
|
696
|
+
if (priorities) {
|
|
697
|
+
for (const pr of priorities)
|
|
698
|
+
oneOf("--priority", pr, SEARCH_PRIORITIES);
|
|
699
|
+
params.priority = priorities.join(",");
|
|
700
|
+
}
|
|
701
|
+
const assignees = csv(opts.assignee);
|
|
702
|
+
if (assignees)
|
|
703
|
+
params.assignee = assignees.join(",");
|
|
704
|
+
const columns = csv(opts.column);
|
|
705
|
+
if (columns)
|
|
706
|
+
params.column = columns.join(",");
|
|
646
707
|
// /cards/search reads `limit` directly (ge=1, le=100).
|
|
647
708
|
const limit = clampLimit(opts.limit, 100);
|
|
648
709
|
if (limit)
|
|
649
710
|
params.limit = limit;
|
|
711
|
+
if (opts.offset !== undefined) {
|
|
712
|
+
const off = String(opts.offset).trim();
|
|
713
|
+
if (!/^[0-9]+$/.test(off) || Number(off) > 10000) {
|
|
714
|
+
console.error(`Error: --offset must be an integer from 0 to 10000 (got '${opts.offset}')`);
|
|
715
|
+
process.exit(1);
|
|
716
|
+
}
|
|
717
|
+
params.offset = off;
|
|
718
|
+
}
|
|
650
719
|
const url = buildUrl("/api/v1/board/cards/search", params, cfg.format);
|
|
651
720
|
const res = await client.get(url);
|
|
652
721
|
await printResponse(res);
|