@opvs-ai/cli 0.11.2 → 0.13.1
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/commands/activity.d.ts +11 -1
- package/dist/commands/activity.js +143 -19
- package/dist/commands/activity.js.map +1 -1
- package/dist/commands/master.d.ts +21 -0
- package/dist/commands/master.js +162 -0
- package/dist/commands/master.js.map +1 -0
- package/dist/commands/projects.d.ts +5 -0
- package/dist/commands/projects.js +88 -4
- package/dist/commands/projects.js.map +1 -1
- package/dist/commands/tasks.js +60 -2
- package/dist/commands/tasks.js.map +1 -1
- package/dist/index.js +2 -0
- package/dist/index.js.map +1 -1
- package/dist/lib/board-refs.d.ts +46 -0
- package/dist/lib/board-refs.js +79 -0
- package/dist/lib/board-refs.js.map +1 -0
- package/dist/lib/options.d.ts +31 -0
- package/dist/lib/options.js +48 -0
- package/dist/lib/options.js.map +1 -0
- package/package.json +6 -2
|
@@ -1,5 +1,15 @@
|
|
|
1
1
|
/**
|
|
2
|
-
* opvs activity — board and
|
|
2
|
+
* opvs activity — board, task, and cross-board activity feeds
|
|
3
|
+
*
|
|
4
|
+
* Three routes, and they do NOT share a pagination dialect:
|
|
5
|
+
*
|
|
6
|
+
* activity board <id> → GET /activity/boards/{id} page / per_page (le=100)
|
|
7
|
+
* activity task <id> → GET /activity/tasks/{id} page / per_page (le=100)
|
|
8
|
+
* activity feed → GET /activity limit / cursor (le=200)
|
|
9
|
+
*
|
|
10
|
+
* The per-board routes cap `per_page` at 100 — NOT the 200 the board task list
|
|
11
|
+
* allows. Clamping to the wrong bound sends a value the upstream 422s on, so
|
|
12
|
+
* each command below clamps to its own route's declared `le=`.
|
|
3
13
|
*/
|
|
4
14
|
import { Command } from "commander";
|
|
5
15
|
export declare function registerActivityCommands(program: Command): void;
|
|
@@ -1,23 +1,98 @@
|
|
|
1
1
|
/**
|
|
2
|
-
* opvs activity — board and
|
|
2
|
+
* opvs activity — board, task, and cross-board activity feeds
|
|
3
|
+
*
|
|
4
|
+
* Three routes, and they do NOT share a pagination dialect:
|
|
5
|
+
*
|
|
6
|
+
* activity board <id> → GET /activity/boards/{id} page / per_page (le=100)
|
|
7
|
+
* activity task <id> → GET /activity/tasks/{id} page / per_page (le=100)
|
|
8
|
+
* activity feed → GET /activity limit / cursor (le=200)
|
|
9
|
+
*
|
|
10
|
+
* The per-board routes cap `per_page` at 100 — NOT the 200 the board task list
|
|
11
|
+
* allows. Clamping to the wrong bound sends a value the upstream 422s on, so
|
|
12
|
+
* each command below clamps to its own route's declared `le=`.
|
|
3
13
|
*/
|
|
4
14
|
import { getEffectiveConfig, createClient } from "@opvs-ai/core";
|
|
5
15
|
import { buildUrl, printResponse } from "../lib/format.js";
|
|
16
|
+
import { clampLimit } from "../lib/pagination.js";
|
|
17
|
+
import { oneOf, csv } from "../lib/options.js";
|
|
18
|
+
/**
|
|
19
|
+
* What `--format` accepts on the activity commands.
|
|
20
|
+
*
|
|
21
|
+
* The routes declare `pattern="^(yaml|md)$"` — `json` is NOT a legal value
|
|
22
|
+
* there, because JSON is what you get by sending no `format` at all. The CLI
|
|
23
|
+
* still accepts `--format json` and expresses it as the absence of the param,
|
|
24
|
+
* so that one flag means the same thing across `opvs activity` and
|
|
25
|
+
* `opvs master` (whose route does declare json). Without this, `--format json`
|
|
26
|
+
* would 422 on one command and work on the other.
|
|
27
|
+
*/
|
|
28
|
+
const ACTIVITY_FORMATS = ["json", "yaml", "md"];
|
|
29
|
+
/**
|
|
30
|
+
* Resolve `--format` into the param to send and the fallback for buildUrl.
|
|
31
|
+
*
|
|
32
|
+
* Returns the value to put in `params.format` (undefined = send nothing) and
|
|
33
|
+
* the format buildUrl should fall back to. `"json"` passed to buildUrl means
|
|
34
|
+
* "append nothing", which is how an explicit `--format json` suppresses the
|
|
35
|
+
* configured format as well.
|
|
36
|
+
*/
|
|
37
|
+
function resolveFormat(raw, configured) {
|
|
38
|
+
const chosen = oneOf("--format", raw, ACTIVITY_FORMATS);
|
|
39
|
+
if (chosen === undefined)
|
|
40
|
+
return { fallback: configured };
|
|
41
|
+
if (chosen === "json")
|
|
42
|
+
return { fallback: "json" };
|
|
43
|
+
return { param: chosen, fallback: "json" };
|
|
44
|
+
}
|
|
45
|
+
/**
|
|
46
|
+
* Collect the four filters the two per-board routes share.
|
|
47
|
+
*
|
|
48
|
+
* `since`/`until` are passed through verbatim: the upstream parses them as
|
|
49
|
+
* `datetime`, so it — not the CLI — decides what an acceptable ISO timestamp
|
|
50
|
+
* is, and it answers 422 with the reason. Re-implementing that check here
|
|
51
|
+
* could only ever reject something the server would have accepted.
|
|
52
|
+
*/
|
|
53
|
+
function boardFeedParams(opts) {
|
|
54
|
+
const params = {};
|
|
55
|
+
// per_page is le=100 on the activity routes (the board task list's 200 is a
|
|
56
|
+
// different route's bound).
|
|
57
|
+
const perPage = clampLimit(opts.limit, 100);
|
|
58
|
+
if (perPage)
|
|
59
|
+
params.per_page = perPage;
|
|
60
|
+
const page = clampLimit(opts.page, Number.MAX_SAFE_INTEGER);
|
|
61
|
+
if (page)
|
|
62
|
+
params.page = page;
|
|
63
|
+
if (opts.since)
|
|
64
|
+
params.since = opts.since;
|
|
65
|
+
if (opts.until)
|
|
66
|
+
params.until = opts.until;
|
|
67
|
+
if (opts.action)
|
|
68
|
+
params.action = opts.action;
|
|
69
|
+
return params;
|
|
70
|
+
}
|
|
71
|
+
/** Register the shared filter flags on a per-board activity subcommand. */
|
|
72
|
+
function withFeedFilters(cmd) {
|
|
73
|
+
return cmd
|
|
74
|
+
.option("--limit <n>", "Items per page (1-100, server default 50)", "25")
|
|
75
|
+
.option("--page <n>", "Page number (1-based, default 1)")
|
|
76
|
+
.option("--since <iso>", "Only events at or after this ISO timestamp (e.g. 2026-09-01T00:00:00Z)")
|
|
77
|
+
.option("--until <iso>", "Only events at or before this ISO timestamp")
|
|
78
|
+
.option("--action <action>", "Filter to one action type (e.g. status_changed, assigned, auto_synced)")
|
|
79
|
+
.option("--format <fmt>", "Response format: json, yaml or md (default: your configured format). json is sent as the ABSENCE of the param, which is what these routes mean by JSON.");
|
|
80
|
+
}
|
|
6
81
|
export function registerActivityCommands(program) {
|
|
7
82
|
const activity = program.command("activity").description("Activity feeds");
|
|
8
|
-
activity
|
|
9
|
-
.command("board <boardId>")
|
|
10
|
-
.description("Recent activity on a board")
|
|
11
|
-
.option("--limit <n>", "Max results", "25")
|
|
12
|
-
.action(async (boardId, opts) => {
|
|
83
|
+
withFeedFilters(activity.command("board <boardId>").description("Recent activity on a board")).action(async (boardId, opts) => {
|
|
13
84
|
const wsSlug = program.opts().workspace;
|
|
14
85
|
const cfg = getEffectiveConfig(wsSlug);
|
|
15
86
|
try {
|
|
16
87
|
const client = createClient(wsSlug);
|
|
17
|
-
const params =
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
88
|
+
const params = boardFeedParams(opts);
|
|
89
|
+
// An explicit --format wins over the configured one, and is sent exactly
|
|
90
|
+
// once: whichever side supplies it, the other is told "json" so buildUrl
|
|
91
|
+
// appends nothing.
|
|
92
|
+
const fmt = resolveFormat(opts.format, cfg.format);
|
|
93
|
+
if (fmt.param)
|
|
94
|
+
params.format = fmt.param;
|
|
95
|
+
const url = buildUrl(`/api/v1/board/activity/boards/${boardId}`, params, fmt.fallback);
|
|
21
96
|
const res = await client.get(url);
|
|
22
97
|
await printResponse(res);
|
|
23
98
|
}
|
|
@@ -27,19 +102,16 @@ export function registerActivityCommands(program) {
|
|
|
27
102
|
process.exit(1);
|
|
28
103
|
}
|
|
29
104
|
});
|
|
30
|
-
activity
|
|
31
|
-
.command("task <taskId>")
|
|
32
|
-
.description("Activity history for a task")
|
|
33
|
-
.option("--limit <n>", "Max results", "25")
|
|
34
|
-
.action(async (taskId, opts) => {
|
|
105
|
+
withFeedFilters(activity.command("task <taskId>").description("Activity history for a task")).action(async (taskId, opts) => {
|
|
35
106
|
const wsSlug = program.opts().workspace;
|
|
36
107
|
const cfg = getEffectiveConfig(wsSlug);
|
|
37
108
|
try {
|
|
38
109
|
const client = createClient(wsSlug);
|
|
39
|
-
const params =
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
110
|
+
const params = boardFeedParams(opts);
|
|
111
|
+
const fmt = resolveFormat(opts.format, cfg.format);
|
|
112
|
+
if (fmt.param)
|
|
113
|
+
params.format = fmt.param;
|
|
114
|
+
const url = buildUrl(`/api/v1/board/activity/tasks/${taskId}`, params, fmt.fallback);
|
|
43
115
|
const res = await client.get(url);
|
|
44
116
|
await printResponse(res);
|
|
45
117
|
}
|
|
@@ -49,5 +121,57 @@ export function registerActivityCommands(program) {
|
|
|
49
121
|
process.exit(1);
|
|
50
122
|
}
|
|
51
123
|
});
|
|
124
|
+
activity
|
|
125
|
+
.command("feed")
|
|
126
|
+
.description("Cross-board activity feed, keyset-paginated — one call instead of one per board. Carry next_cursor between passes to read only what changed.")
|
|
127
|
+
.requiredOption("--board-ids <ids>", "Comma-separated board refs or UUIDs. Required — there is no tenant-wide default.")
|
|
128
|
+
// This route reads `limit` + an opaque `cursor`, NOT page/per_page. Its
|
|
129
|
+
// `limit` is really applied, unlike the one the per-board routes never
|
|
130
|
+
// declared (CLI-1 / OSI-37).
|
|
131
|
+
.option("--limit <n>", "Page size (1-200, server default 50)")
|
|
132
|
+
.option("--cursor <cursor>", "The next_cursor from a previous response. Omit for the newest page; a null next_cursor means the feed is caught up.")
|
|
133
|
+
.option("--since <iso>", "Only events at or after this ISO timestamp")
|
|
134
|
+
.option("--until <iso>", "Only events at or before this ISO timestamp")
|
|
135
|
+
.option("--action <action>", "Filter to one action type (e.g. status_changed, auto_synced)")
|
|
136
|
+
.option("--format <fmt>", "Response format: json, yaml or md (default: your configured format). json is sent as the ABSENCE of the param, which is what these routes mean by JSON.")
|
|
137
|
+
.action(async (opts) => {
|
|
138
|
+
const wsSlug = program.opts().workspace;
|
|
139
|
+
const cfg = getEffectiveConfig(wsSlug);
|
|
140
|
+
try {
|
|
141
|
+
const client = createClient(wsSlug);
|
|
142
|
+
const boardIds = csv(opts.boardIds);
|
|
143
|
+
if (!boardIds) {
|
|
144
|
+
console.error("Error: --board-ids must name at least one board ref or UUID");
|
|
145
|
+
process.exit(1);
|
|
146
|
+
}
|
|
147
|
+
const params = { board_ids: boardIds.join(",") };
|
|
148
|
+
// No client-side ref resolution needed here: unlike /master/tasks, the
|
|
149
|
+
// main-API proxy for this route canonicalizes and brand-checks each
|
|
150
|
+
// board_ids entry itself, and 404s on a board you cannot read rather
|
|
151
|
+
// than silently dropping it.
|
|
152
|
+
const limit = clampLimit(opts.limit, 200);
|
|
153
|
+
if (limit)
|
|
154
|
+
params.limit = limit;
|
|
155
|
+
if (opts.cursor)
|
|
156
|
+
params.cursor = opts.cursor;
|
|
157
|
+
if (opts.since)
|
|
158
|
+
params.since = opts.since;
|
|
159
|
+
if (opts.until)
|
|
160
|
+
params.until = opts.until;
|
|
161
|
+
if (opts.action)
|
|
162
|
+
params.action = opts.action;
|
|
163
|
+
const fmt = resolveFormat(opts.format, cfg.format);
|
|
164
|
+
if (fmt.param)
|
|
165
|
+
params.format = fmt.param;
|
|
166
|
+
const url = buildUrl("/api/v1/board/activity", params, fmt.fallback);
|
|
167
|
+
const res = await client.get(url);
|
|
168
|
+
await printResponse(res);
|
|
169
|
+
}
|
|
170
|
+
catch (err) {
|
|
171
|
+
const e = err;
|
|
172
|
+
console.error(`Error: ${e.detail || "Failed to get cross-board activity"}`);
|
|
173
|
+
process.exit(1);
|
|
174
|
+
}
|
|
175
|
+
});
|
|
52
176
|
}
|
|
53
177
|
//# sourceMappingURL=activity.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"activity.js","sourceRoot":"","sources":["../../src/commands/activity.ts"],"names":[],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"activity.js","sourceRoot":"","sources":["../../src/commands/activity.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* opvs master — cross-board task aggregation
|
|
3
|
+
*
|
|
4
|
+
* The orchestrator's "what is in flight everywhere" read. One call over many
|
|
5
|
+
* boards, filtered on the five axes the route indexes:
|
|
6
|
+
* board_ids x column_names x status x has_pr x since.
|
|
7
|
+
*
|
|
8
|
+
* ⚠️ A THIRD pagination dialect. `lib/pagination.ts` documents two families;
|
|
9
|
+
* `/master/tasks` belongs to neither — it reads `limit` + `offset` (le=500),
|
|
10
|
+
* where the board task list reads page/per_page (le=200) and the cross-board
|
|
11
|
+
* activity feed reads limit + an opaque cursor (le=200). Write the name the
|
|
12
|
+
* specific upstream declares; a `page` sent here is an unknown param and is
|
|
13
|
+
* dropped in silence.
|
|
14
|
+
*
|
|
15
|
+
* ⚠️ Board refs are resolved CLIENT-side here. Unlike the activity feed, this
|
|
16
|
+
* proxy does not canonicalize `board_ids`, and an unparseable entry makes the
|
|
17
|
+
* upstream raise — `board_ids=AOR` answers HTTP 500, measured against
|
|
18
|
+
* production. See `lib/board-refs.ts` for the exact upstream call frame.
|
|
19
|
+
*/
|
|
20
|
+
import { Command } from "commander";
|
|
21
|
+
export declare function registerMasterCommands(program: Command): void;
|
|
@@ -0,0 +1,162 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* opvs master — cross-board task aggregation
|
|
3
|
+
*
|
|
4
|
+
* The orchestrator's "what is in flight everywhere" read. One call over many
|
|
5
|
+
* boards, filtered on the five axes the route indexes:
|
|
6
|
+
* board_ids x column_names x status x has_pr x since.
|
|
7
|
+
*
|
|
8
|
+
* ⚠️ A THIRD pagination dialect. `lib/pagination.ts` documents two families;
|
|
9
|
+
* `/master/tasks` belongs to neither — it reads `limit` + `offset` (le=500),
|
|
10
|
+
* where the board task list reads page/per_page (le=200) and the cross-board
|
|
11
|
+
* activity feed reads limit + an opaque cursor (le=200). Write the name the
|
|
12
|
+
* specific upstream declares; a `page` sent here is an unknown param and is
|
|
13
|
+
* dropped in silence.
|
|
14
|
+
*
|
|
15
|
+
* ⚠️ Board refs are resolved CLIENT-side here. Unlike the activity feed, this
|
|
16
|
+
* proxy does not canonicalize `board_ids`, and an unparseable entry makes the
|
|
17
|
+
* upstream raise — `board_ids=AOR` answers HTTP 500, measured against
|
|
18
|
+
* production. See `lib/board-refs.ts` for the exact upstream call frame.
|
|
19
|
+
*/
|
|
20
|
+
import { getEffectiveConfig, createClient } from "@opvs-ai/core";
|
|
21
|
+
import { buildUrl, printResponse } from "../lib/format.js";
|
|
22
|
+
import { clampLimit } from "../lib/pagination.js";
|
|
23
|
+
import { oneOf, csv } from "../lib/options.js";
|
|
24
|
+
import { resolveBoardRefs } from "../lib/board-refs.js";
|
|
25
|
+
/** `pattern=` on the route's `board_type` Query. */
|
|
26
|
+
const BOARD_TYPES = [
|
|
27
|
+
"tasks",
|
|
28
|
+
"emails",
|
|
29
|
+
"contacts",
|
|
30
|
+
"companies",
|
|
31
|
+
"deals",
|
|
32
|
+
"content_calendar",
|
|
33
|
+
"factory",
|
|
34
|
+
"crm",
|
|
35
|
+
];
|
|
36
|
+
/** `/master/tasks` and `/master/session` accept json here, unlike activity. */
|
|
37
|
+
const MASTER_FORMATS = ["json", "yaml", "md"];
|
|
38
|
+
export function registerMasterCommands(program) {
|
|
39
|
+
const master = program
|
|
40
|
+
.command("master")
|
|
41
|
+
.description("Cross-board aggregation — tasks and session alerts across many boards");
|
|
42
|
+
master
|
|
43
|
+
.command("tasks")
|
|
44
|
+
.description("Aggregate tasks across boards. Give --board-ids or --board-type (or both).")
|
|
45
|
+
.option("--board-ids <ids>", "Comma-separated board refs or UUIDs to aggregate")
|
|
46
|
+
.option("--board-type <type>", `Board type to aggregate: ${BOARD_TYPES.join(", ")}. Optional when --board-ids is given, required otherwise.`)
|
|
47
|
+
.option("--column-names <names>", "Comma-separated column NAME filter, case-insensitive and matched across boards (e.g. 'Deploy,Ready'). Names rather than ids, because column ids are per-board and the question is not.")
|
|
48
|
+
// Two independent flags rather than commander's `--no-x` negation: that
|
|
49
|
+
// convention would give `pr` a DEFAULT of true, so omitting both flags
|
|
50
|
+
// would send has_pr=true and silently hide every card without a PR.
|
|
51
|
+
// Omitting the param entirely is what asks for both, and that has to be
|
|
52
|
+
// the no-flag behaviour.
|
|
53
|
+
.option("--has-pr", "Only cards carrying a pr_number")
|
|
54
|
+
.option("--without-pr", "Only cards WITHOUT a pr_number")
|
|
55
|
+
.option("--status <statuses>", "Comma-separated status filter (pending, in_progress, review, done, ...)")
|
|
56
|
+
.option("--priority <priorities>", "Comma-separated priority filter (low, medium, high, critical)")
|
|
57
|
+
.option("--assignee-ids <ids>", "Comma-separated assignee ID filter")
|
|
58
|
+
.option("--search <text>", "Search task titles")
|
|
59
|
+
.option("--group-by <dimension>", "Group by dimension (e.g. status, board, assignee, priority)")
|
|
60
|
+
.option("--sort <order>", "Sort order (e.g. priority_desc, updated_at_desc)")
|
|
61
|
+
.option("--include-done", "Include done/cancelled/failed tasks")
|
|
62
|
+
// limit/offset, le=500 — this route's own dialect.
|
|
63
|
+
.option("--limit <n>", "Max tasks (1-500, server default 100)")
|
|
64
|
+
.option("--offset <n>", "Pagination offset (default 0)")
|
|
65
|
+
.option("--format <fmt>", "Response format: json, yaml or md (default: your configured format)")
|
|
66
|
+
.action(async (opts) => {
|
|
67
|
+
const wsSlug = program.opts().workspace;
|
|
68
|
+
const cfg = getEffectiveConfig(wsSlug);
|
|
69
|
+
try {
|
|
70
|
+
const client = createClient(wsSlug);
|
|
71
|
+
const params = {};
|
|
72
|
+
const refs = csv(opts.boardIds);
|
|
73
|
+
if (refs) {
|
|
74
|
+
params.board_ids = (await resolveBoardRefs(client, refs)).join(",");
|
|
75
|
+
}
|
|
76
|
+
const boardType = oneOf("--board-type", opts.boardType, BOARD_TYPES);
|
|
77
|
+
if (boardType)
|
|
78
|
+
params.board_type = boardType;
|
|
79
|
+
if (!refs && !boardType) {
|
|
80
|
+
console.error("Error: give --board-ids or --board-type. The route requires board_type unless board_ids narrows it.");
|
|
81
|
+
process.exit(1);
|
|
82
|
+
}
|
|
83
|
+
const columns = csv(opts.columnNames);
|
|
84
|
+
if (columns)
|
|
85
|
+
params.column_names = columns.join(",");
|
|
86
|
+
if (opts.hasPr && opts.withoutPr) {
|
|
87
|
+
console.error("Error: --has-pr and --without-pr are mutually exclusive. Omit both to get every card.");
|
|
88
|
+
process.exit(1);
|
|
89
|
+
}
|
|
90
|
+
if (opts.hasPr)
|
|
91
|
+
params.has_pr = "true";
|
|
92
|
+
if (opts.withoutPr)
|
|
93
|
+
params.has_pr = "false";
|
|
94
|
+
const statuses = csv(opts.status);
|
|
95
|
+
if (statuses)
|
|
96
|
+
params.status = statuses.join(",");
|
|
97
|
+
const priorities = csv(opts.priority);
|
|
98
|
+
if (priorities)
|
|
99
|
+
params.priority = priorities.join(",");
|
|
100
|
+
const assignees = csv(opts.assigneeIds);
|
|
101
|
+
if (assignees)
|
|
102
|
+
params.assignee_ids = assignees.join(",");
|
|
103
|
+
if (opts.search)
|
|
104
|
+
params.search = opts.search;
|
|
105
|
+
if (opts.groupBy)
|
|
106
|
+
params.group_by = opts.groupBy;
|
|
107
|
+
if (opts.sort)
|
|
108
|
+
params.sort = opts.sort;
|
|
109
|
+
if (opts.includeDone)
|
|
110
|
+
params.include_done = "true";
|
|
111
|
+
const limit = clampLimit(opts.limit, 500);
|
|
112
|
+
if (limit)
|
|
113
|
+
params.limit = limit;
|
|
114
|
+
const offset = clampLimit(opts.offset, Number.MAX_SAFE_INTEGER, 0);
|
|
115
|
+
if (offset)
|
|
116
|
+
params.offset = offset;
|
|
117
|
+
const format = oneOf("--format", opts.format, MASTER_FORMATS);
|
|
118
|
+
if (format)
|
|
119
|
+
params.format = format;
|
|
120
|
+
const url = buildUrl("/api/v1/board/master/tasks", params, format ? "json" : cfg.format);
|
|
121
|
+
const res = await client.get(url);
|
|
122
|
+
await printResponse(res);
|
|
123
|
+
}
|
|
124
|
+
catch (err) {
|
|
125
|
+
const e = err;
|
|
126
|
+
console.error(`Error: ${e.detail || "Failed to aggregate tasks"}`);
|
|
127
|
+
process.exit(1);
|
|
128
|
+
}
|
|
129
|
+
});
|
|
130
|
+
master
|
|
131
|
+
.command("session")
|
|
132
|
+
.description("Executive master session — aggregated tasks plus stuck/blocked alerts")
|
|
133
|
+
.requiredOption("--board-type <type>", `Board type to aggregate: ${BOARD_TYPES.join(", ")}`)
|
|
134
|
+
.option("--stuck-hours <n>", "Hours before a task counts as stuck (1-168, server default 24)")
|
|
135
|
+
.option("--format <fmt>", "Response format: json, yaml or md (server default: yaml)")
|
|
136
|
+
.action(async (opts) => {
|
|
137
|
+
const wsSlug = program.opts().workspace;
|
|
138
|
+
const cfg = getEffectiveConfig(wsSlug);
|
|
139
|
+
try {
|
|
140
|
+
const client = createClient(wsSlug);
|
|
141
|
+
const params = {};
|
|
142
|
+
const boardType = oneOf("--board-type", opts.boardType, BOARD_TYPES);
|
|
143
|
+
if (boardType)
|
|
144
|
+
params.board_type = boardType;
|
|
145
|
+
const stuck = clampLimit(opts.stuckHours, 168);
|
|
146
|
+
if (stuck)
|
|
147
|
+
params.stuck_threshold_hours = stuck;
|
|
148
|
+
const format = oneOf("--format", opts.format, MASTER_FORMATS);
|
|
149
|
+
if (format)
|
|
150
|
+
params.format = format;
|
|
151
|
+
const url = buildUrl("/api/v1/board/master/session", params, format ? "json" : cfg.format);
|
|
152
|
+
const res = await client.get(url);
|
|
153
|
+
await printResponse(res);
|
|
154
|
+
}
|
|
155
|
+
catch (err) {
|
|
156
|
+
const e = err;
|
|
157
|
+
console.error(`Error: ${e.detail || "Failed to get master session"}`);
|
|
158
|
+
process.exit(1);
|
|
159
|
+
}
|
|
160
|
+
});
|
|
161
|
+
}
|
|
162
|
+
//# sourceMappingURL=master.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"master.js","sourceRoot":"","sources":["../../src/commands/master.ts"],"names":[],"mappings":"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"}
|
|
@@ -6,6 +6,11 @@
|
|
|
6
6
|
* archive flag, and a free-text closing handoff captured on completion. See
|
|
7
7
|
* the agentboard skill `references/projects.md` for the full mental model.
|
|
8
8
|
*
|
|
9
|
+
* A project also carries a BUNDLE — the commands, skills, and rules every card
|
|
10
|
+
* on its boards inherits at claim time (Track B+, B.6). It lives behind its own
|
|
11
|
+
* `bundle` sub-resource rather than inside `update`, because that endpoint's
|
|
12
|
+
* `settings` is a whole-object replace.
|
|
13
|
+
*
|
|
9
14
|
* Every command goes through the gateway proxy at
|
|
10
15
|
* `/api/v1/board/board-groups/projects*` (Topic 2, S2.2). Brand is pinned
|
|
11
16
|
* server-side from the PAT — never passed here.
|
|
@@ -6,6 +6,11 @@
|
|
|
6
6
|
* archive flag, and a free-text closing handoff captured on completion. See
|
|
7
7
|
* the agentboard skill `references/projects.md` for the full mental model.
|
|
8
8
|
*
|
|
9
|
+
* A project also carries a BUNDLE — the commands, skills, and rules every card
|
|
10
|
+
* on its boards inherits at claim time (Track B+, B.6). It lives behind its own
|
|
11
|
+
* `bundle` sub-resource rather than inside `update`, because that endpoint's
|
|
12
|
+
* `settings` is a whole-object replace.
|
|
13
|
+
*
|
|
9
14
|
* Every command goes through the gateway proxy at
|
|
10
15
|
* `/api/v1/board/board-groups/projects*` (Topic 2, S2.2). Brand is pinned
|
|
11
16
|
* server-side from the PAT — never passed here.
|
|
@@ -13,6 +18,11 @@
|
|
|
13
18
|
import { getEffectiveConfig, createClient } from "@opvs-ai/core";
|
|
14
19
|
import { buildUrl, printResponse, printJson } from "../lib/format.js";
|
|
15
20
|
const BASE = "/api/v1/board/board-groups/projects";
|
|
21
|
+
/** commander repeatable-option accumulator (same shape as `create --board`). */
|
|
22
|
+
const collect = (val, acc) => {
|
|
23
|
+
acc.push(val);
|
|
24
|
+
return acc;
|
|
25
|
+
};
|
|
16
26
|
export function registerProjectCommands(program) {
|
|
17
27
|
const projects = program
|
|
18
28
|
.command("projects")
|
|
@@ -66,10 +76,7 @@ export function registerProjectCommands(program) {
|
|
|
66
76
|
.command("create")
|
|
67
77
|
.description("Create an empty project container")
|
|
68
78
|
.requiredOption("-n, --name <name>", "Project name")
|
|
69
|
-
.option("-b, --board <id>", "Initial member board id, repeatable (full UUID only — board_ids is not on the gateway's ref allowlist)",
|
|
70
|
-
acc.push(val);
|
|
71
|
-
return acc;
|
|
72
|
-
}, [])
|
|
79
|
+
.option("-b, --board <id>", "Initial member board id, repeatable (full UUID only — board_ids is not on the gateway's ref allowlist)", collect, [])
|
|
73
80
|
.action(async (opts) => {
|
|
74
81
|
const wsSlug = program.opts().workspace;
|
|
75
82
|
try {
|
|
@@ -218,5 +225,82 @@ export function registerProjectCommands(program) {
|
|
|
218
225
|
process.exit(1);
|
|
219
226
|
}
|
|
220
227
|
});
|
|
228
|
+
// ── bundle (per-project commands / skills / rules, Track B+) ───────
|
|
229
|
+
// A sub-resource, NOT a key inside `projects update`: that endpoint's
|
|
230
|
+
// `settings` is a whole-object replace, so a bundle written there is one
|
|
231
|
+
// careless sibling patch from erasure (B.1a, AgentBoard F5/PD2).
|
|
232
|
+
const bundle = projects
|
|
233
|
+
.command("bundle")
|
|
234
|
+
.description("Per-project command / skill / rule bundle inherited by its cards");
|
|
235
|
+
bundle
|
|
236
|
+
.command("get <id>")
|
|
237
|
+
.description("Read a project's bundle (empty lists = nothing configured)")
|
|
238
|
+
.action(async (id) => {
|
|
239
|
+
const wsSlug = program.opts().workspace;
|
|
240
|
+
const cfg = getEffectiveConfig(wsSlug);
|
|
241
|
+
try {
|
|
242
|
+
const client = createClient(wsSlug);
|
|
243
|
+
const url = buildUrl(`${BASE}/${id}/bundle`, undefined, cfg.format);
|
|
244
|
+
const res = await client.get(url);
|
|
245
|
+
await printResponse(res);
|
|
246
|
+
}
|
|
247
|
+
catch (err) {
|
|
248
|
+
const e = err;
|
|
249
|
+
console.error(`Error: ${e.detail || "Failed to get project bundle"}`);
|
|
250
|
+
process.exit(1);
|
|
251
|
+
}
|
|
252
|
+
});
|
|
253
|
+
// PATCH semantics, faithfully: each field is independently optional, and a
|
|
254
|
+
// field that IS sent REPLACES that whole list. There is no append — which is
|
|
255
|
+
// why "remove the last rule" needs `--clear-rules` rather than an empty
|
|
256
|
+
// repeat of `--rule`, and why the two spellings for one field conflict.
|
|
257
|
+
bundle
|
|
258
|
+
.command("set <id>")
|
|
259
|
+
.description("Set a project's bundle. A passed list REPLACES that field; omitted fields are left alone")
|
|
260
|
+
.option("-c, --command <name>", "Slash-command name, repeatable (max 50, 200 chars each)", collect, [])
|
|
261
|
+
.option("-s, --skill <name>", "Skill name, repeatable (max 50, 200 chars each)", collect, [])
|
|
262
|
+
.option("-r, --rule <text>", "Standing constraint inlined verbatim into every brief, repeatable (max 20, 500 chars each)", collect, [])
|
|
263
|
+
.option("--clear-commands", "Replace commands with an empty list")
|
|
264
|
+
.option("--clear-skills", "Replace skills with an empty list")
|
|
265
|
+
.option("--clear-rules", "Replace rules with an empty list")
|
|
266
|
+
.action(async (id, opts) => {
|
|
267
|
+
const wsSlug = program.opts().workspace;
|
|
268
|
+
const body = {};
|
|
269
|
+
// Field name ↔ (repeatable values, clear flag). Setting and clearing the
|
|
270
|
+
// same field are two different intents for one wire field; picking one
|
|
271
|
+
// silently would send a bundle the operator did not ask for.
|
|
272
|
+
const fields = [
|
|
273
|
+
["commands", opts.command ?? [], !!opts.clearCommands],
|
|
274
|
+
["skills", opts.skill ?? [], !!opts.clearSkills],
|
|
275
|
+
["rules", opts.rule ?? [], !!opts.clearRules],
|
|
276
|
+
];
|
|
277
|
+
for (const [name, values, clear] of fields) {
|
|
278
|
+
if (clear && values.length > 0) {
|
|
279
|
+
console.error(`Cannot both set and clear ${name}. Drop --clear-${name} or the repeated flag.`);
|
|
280
|
+
process.exit(1);
|
|
281
|
+
return;
|
|
282
|
+
}
|
|
283
|
+
if (clear)
|
|
284
|
+
body[name] = [];
|
|
285
|
+
else if (values.length > 0)
|
|
286
|
+
body[name] = values;
|
|
287
|
+
}
|
|
288
|
+
if (Object.keys(body).length === 0) {
|
|
289
|
+
console.error("Nothing to update. Provide --command / --skill / --rule, or --clear-commands / --clear-skills / --clear-rules");
|
|
290
|
+
process.exit(1);
|
|
291
|
+
return;
|
|
292
|
+
}
|
|
293
|
+
try {
|
|
294
|
+
const client = createClient(wsSlug);
|
|
295
|
+
const res = await client.patch(`${BASE}/${id}/bundle`, body);
|
|
296
|
+
const data = await res.json();
|
|
297
|
+
printJson(data);
|
|
298
|
+
}
|
|
299
|
+
catch (err) {
|
|
300
|
+
const e = err;
|
|
301
|
+
console.error(`Error: ${e.detail || "Failed to set project bundle"}`);
|
|
302
|
+
process.exit(1);
|
|
303
|
+
}
|
|
304
|
+
});
|
|
221
305
|
}
|
|
222
306
|
//# sourceMappingURL=projects.js.map
|
|
@@ -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,6 +5,7 @@ import { readFileSync } from "node:fs";
|
|
|
5
5
|
import { getEffectiveConfig, createClient } from "@opvs-ai/core";
|
|
6
6
|
import { buildUrl, printResponse, printJson } from "../lib/format.js";
|
|
7
7
|
import { clampLimit } from "../lib/pagination.js";
|
|
8
|
+
import { oneOf } from "../lib/options.js";
|
|
8
9
|
/** Collect a repeatable `--field key=value` option into an array. */
|
|
9
10
|
function collectField(val, prev) {
|
|
10
11
|
return prev.concat([val]);
|
|
@@ -111,12 +112,22 @@ export function registerTaskCommands(program) {
|
|
|
111
112
|
tasks
|
|
112
113
|
.command("get <id>")
|
|
113
114
|
.description("Get task details. <id> accepts a task ref (OPS-142), a UUID prefix (8+ hex chars), or a full UUID")
|
|
114
|
-
.
|
|
115
|
+
// Read depth. Omitting the flag sends NO `detail` param, so the response is
|
|
116
|
+
// byte-identical to before this flag existed — the upstream default is
|
|
117
|
+
// `full` and the CLI does not restate it (a commander default the wire
|
|
118
|
+
// never carries is a lie in --help, and one the wire DOES carry would
|
|
119
|
+
// silently pin a default the server is free to change).
|
|
120
|
+
.option("--detail <level>", "Read depth: summary (routing facts + delivery header, blobs as has_* flags) | standard (summary + description) | full (default). Nothing is dropped, only deferred — every level carries the task ref.")
|
|
121
|
+
.action(async (id, opts) => {
|
|
115
122
|
const wsSlug = program.opts().workspace;
|
|
116
123
|
const cfg = getEffectiveConfig(wsSlug);
|
|
117
124
|
try {
|
|
118
125
|
const client = createClient(wsSlug);
|
|
119
|
-
const
|
|
126
|
+
const params = {};
|
|
127
|
+
const detail = oneOf("--detail", opts.detail, ["summary", "standard", "full"]);
|
|
128
|
+
if (detail)
|
|
129
|
+
params.detail = detail;
|
|
130
|
+
const url = buildUrl(`/api/v1/board/tasks/${id}`, params, cfg.format);
|
|
120
131
|
const res = await client.get(url);
|
|
121
132
|
await printResponse(res);
|
|
122
133
|
}
|
|
@@ -138,6 +149,7 @@ export function registerTaskCommands(program) {
|
|
|
138
149
|
.option("--labels <tags>", "Comma-separated labels (e.g. 'bug,urgent')")
|
|
139
150
|
.option("--due <date>", "Due date (YYYY-MM-DD)")
|
|
140
151
|
.option("--instructions <text>", "Detailed instructions for the assigned agent")
|
|
152
|
+
.option("--claimable-by <class>", "Actor gate: worker | agent | human. Restricts WHO may claim this card via the claim engine. Omit for anyone (the default, and what every card was before this existed). Not the same as a column's claimable_by_roles, which holds a role.")
|
|
141
153
|
.option("--field <key=value>", "Type-specific custom field (repeatable), e.g. --field platform=bluesky. Values are strings; use --custom-fields for typed values.", collectField, [])
|
|
142
154
|
.option("--custom-fields <json>", 'Custom fields as a JSON object (typed base for booleans/numbers), e.g. \'{"yt_notify_subscribers":true}\'. --field pairs override matching keys.')
|
|
143
155
|
.action(async (opts) => {
|
|
@@ -160,6 +172,8 @@ export function registerTaskCommands(program) {
|
|
|
160
172
|
body.due_date = opts.due;
|
|
161
173
|
if (opts.instructions)
|
|
162
174
|
body.agent_instructions = opts.instructions;
|
|
175
|
+
if (opts.claimableBy)
|
|
176
|
+
body.claimable_by = opts.claimableBy;
|
|
163
177
|
const customFields = buildCustomFields(opts);
|
|
164
178
|
if (customFields)
|
|
165
179
|
body.custom_fields = customFields;
|
|
@@ -190,6 +204,7 @@ export function registerTaskCommands(program) {
|
|
|
190
204
|
.option("--context <json>", "Agent context as a JSON object string")
|
|
191
205
|
.option("--parent <taskId>", "Re-parent under a different task UUID")
|
|
192
206
|
.option("--depends-on <ids>", "Comma-separated task UUIDs this task depends on (replaces the set)")
|
|
207
|
+
.option("--claimable-by <class>", "Actor gate: worker | agent | human, or 'none' to CLEAR it and make the card claimable by anyone again.")
|
|
193
208
|
.option("--field <key=value>", "Type-specific custom field (repeatable), e.g. --field publish_status=scheduled. Values are strings; use --custom-fields for typed values.", collectField, [])
|
|
194
209
|
.option("--custom-fields <json>", 'Custom fields as a JSON object (typed base for booleans/numbers). --field pairs override matching keys.')
|
|
195
210
|
.option("--merge", "Deep-merge custom fields into the card (RFC 7386) instead of replacing the whole blob. Only pass the keys you are changing; another agent's keys stay intact. Send null in --custom-fields to delete a key.")
|
|
@@ -221,6 +236,14 @@ export function registerTaskCommands(program) {
|
|
|
221
236
|
body.agent_instructions = opts.instructions;
|
|
222
237
|
if (opts.instructionsFile)
|
|
223
238
|
body.agent_instructions = readFileSync(opts.instructionsFile, "utf-8");
|
|
239
|
+
// "none" is the CLEAR verb. A shell cannot express JSON null in an
|
|
240
|
+
// option value, and omitting the flag has to keep meaning "leave it
|
|
241
|
+
// alone" — so an explicit word maps to the explicit null the API needs
|
|
242
|
+
// to reopen a gated card. Without this there would be no way to ungate
|
|
243
|
+
// a card from the terminal.
|
|
244
|
+
if (opts.claimableBy) {
|
|
245
|
+
body.claimable_by = opts.claimableBy === "none" ? null : opts.claimableBy;
|
|
246
|
+
}
|
|
224
247
|
if (opts.context) {
|
|
225
248
|
try {
|
|
226
249
|
body.agent_context = JSON.parse(opts.context);
|
|
@@ -331,6 +354,41 @@ export function registerTaskCommands(program) {
|
|
|
331
354
|
process.exit(1);
|
|
332
355
|
}
|
|
333
356
|
});
|
|
357
|
+
tasks
|
|
358
|
+
// The state-machine transition endpoint, and the ONLY single-task write
|
|
359
|
+
// whose main-API proxy is a bare pass-through (board.py's
|
|
360
|
+
// `transition_task_status`). `--receipt` is offered here and nowhere else
|
|
361
|
+
// for that reason — see the note above the flag.
|
|
362
|
+
.command("status <id> <status>")
|
|
363
|
+
.description("Transition a task's status through the state machine. <id> accepts a ref (OPS-142), a UUID prefix, or a full UUID")
|
|
364
|
+
// ⚠️ `--receipt` is deliberately NOT offered on `tasks move` or
|
|
365
|
+
// `tasks update`, though the routes accept `?return=receipt`. Both of those
|
|
366
|
+
// main-API proxies parse the WRITE RESPONSE to drive side effects —
|
|
367
|
+
// board_doc_sync (AgentDocs page move / revision) and the IDAP flag write —
|
|
368
|
+
// and the receipt body carries neither `board_id` nor `custom_fields`, so
|
|
369
|
+
// both silently no-op. Not destructive, but silent: a one-keystroke flag
|
|
370
|
+
// that turns off a brand's doc sync is not something to hand out. Tracked
|
|
371
|
+
// on AOR-11; when the proxy is fixed the flag can be added there too.
|
|
372
|
+
.option("--receipt", "Print the compact write receipt {ok, task_id, ref, status, column_id, from_column, to_column, warnings} instead of the whole task object. Warnings are carried at BOTH depths.")
|
|
373
|
+
.action(async (id, status, opts) => {
|
|
374
|
+
const wsSlug = program.opts().workspace;
|
|
375
|
+
try {
|
|
376
|
+
const client = createClient(wsSlug);
|
|
377
|
+
// `return` is the name the upstream declares (an alias on the
|
|
378
|
+
// `return_` parameter, because `return` is a Python keyword).
|
|
379
|
+
const url = opts.receipt
|
|
380
|
+
? `/api/v1/board/tasks/${id}/status?return=receipt`
|
|
381
|
+
: `/api/v1/board/tasks/${id}/status`;
|
|
382
|
+
const res = await client.post(url, { status });
|
|
383
|
+
const data = await res.json();
|
|
384
|
+
printJson(data);
|
|
385
|
+
}
|
|
386
|
+
catch (err) {
|
|
387
|
+
const e = err;
|
|
388
|
+
console.error(`Error: ${e.detail || "Failed to transition task status"}`);
|
|
389
|
+
process.exit(1);
|
|
390
|
+
}
|
|
391
|
+
});
|
|
334
392
|
tasks
|
|
335
393
|
.command("subtasks <id>")
|
|
336
394
|
.description("List subtasks of a task")
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"tasks.js","sourceRoot":"","sources":["../../src/commands/tasks.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EAAE,YAAY,EAAE,MAAM,SAAS,CAAC;AAEvC,OAAO,EAAE,kBAAkB,EAAE,YAAY,EAAE,MAAM,eAAe,CAAC;AACjE,OAAO,EAAE,QAAQ,EAAE,aAAa,EAAE,SAAS,EAAE,MAAM,kBAAkB,CAAC;AACtE,OAAO,EAAE,UAAU,EAAE,MAAM,sBAAsB,CAAC;AAElD,qEAAqE;AACrE,SAAS,YAAY,CAAC,GAAW,EAAE,IAAc;IAC/C,OAAO,IAAI,CAAC,MAAM,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC;AAC5B,CAAC;AAED;;;;;GAKG;AACH,SAAS,iBAAiB,CAAC,IAG1B;IACC,MAAM,OAAO,GAAG,OAAO,IAAI,CAAC,YAAY,KAAK,QAAQ,CAAC;IACtD,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,IAAI,EAAE,CAAC;IAC/B,IAAI,CAAC,OAAO,IAAI,KAAK,CAAC,MAAM,KAAK,CAAC;QAAE,OAAO,SAAS,CAAC;IAErD,IAAI,GAAG,GAA4B,EAAE,CAAC;IACtC,IAAI,OAAO,EAAE,CAAC;QACZ,IAAI,MAAe,CAAC;QACpB,IAAI,CAAC;YACH,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,YAAsB,CAAC,CAAC;QACnD,CAAC;QAAC,MAAM,CAAC;YACP,OAAO,CAAC,KAAK,CAAC,2DAA2D,CAAC,CAAC;YAC3E,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QAClB,CAAC;QACD,IAAI,MAAM,KAAK,IAAI,IAAI,OAAO,MAAM,KAAK,QAAQ,IAAI,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,EAAE,CAAC;YAC3E,OAAO,CAAC,KAAK,CAAC,kFAAkF,CAAC,CAAC;YAClG,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QAClB,CAAC;QACD,GAAG,GAAG,EAAE,GAAI,MAAkC,EAAE,CAAC;IACnD,CAAC;IACD,KAAK,MAAM,EAAE,IAAI,KAAK,EAAE,CAAC;QACvB,MAAM,EAAE,GAAG,EAAE,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;QAC3B,IAAI,EAAE,IAAI,CAAC,EAAE,CAAC;YACZ,OAAO,CAAC,KAAK,CAAC,0CAA0C,EAAE,GAAG,CAAC,CAAC;YAC/D,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QAClB,CAAC;QACD,GAAG,CAAC,EAAE,CAAC,KAAK,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,GAAG,EAAE,CAAC,KAAK,CAAC,EAAE,GAAG,CAAC,CAAC,CAAC;IAC1C,CAAC;IACD,OAAO,GAAG,CAAC;AACb,CAAC;AAED,MAAM,UAAU,oBAAoB,CAAC,OAAgB;IACnD,MAAM,KAAK,GAAG,OAAO,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC,WAAW,CAAC,iBAAiB,CAAC,CAAC;IAEtE,KAAK;SACF,OAAO,CAAC,MAAM,CAAC;SACf,WAAW,CAAC,YAAY,CAAC;SACzB,MAAM,CAAC,cAAc,EAAE,8BAA8B,CAAC;SACtD,MAAM,CAAC,QAAQ,EAAE,2BAA2B,CAAC;SAC7C,MAAM,CAAC,mBAAmB,EAAE,uDAAuD,CAAC;SACpF,MAAM,CAAC,uBAAuB,EAAE,kDAAkD,CAAC;QACpF,2EAA2E;QAC3E,4EAA4E;QAC5E,2EAA2E;QAC3E,qEAAqE;SACpE,MAAM,CAAC,aAAa,EAAE,6EAA6E,CAAC;SACpG,MAAM,CAAC,YAAY,EAAE,uDAAuD,CAAC;SAC7E,MAAM,CAAC,KAAK,EAAE,IAAI,EAAE,EAAE;QACrB,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,IAAI,IAAI,CAAC,IAAI,EAAE,CAAC;gBACd,MAAM,MAAM,GAA2B,EAAE,CAAC;gBAC1C,IAAI,IAAI,CAAC,MAAM;oBAAE,MAAM,CAAC,MAAM,GAAG,IAAI,CAAC,MAAM,CAAC;gBAC7C,sEAAsE;gBACtE,MAAM,KAAK,GAAG,UAAU,CAAC,IAAI,CAAC,KAAK,EAAE,GAAG,CAAC,CAAC;gBAC1C,IAAI,KAAK;oBAAE,MAAM,CAAC,KAAK,GAAG,KAAK,CAAC;gBAChC,MAAM,GAAG,GAAG,QAAQ,CAAC,kCAAkC,EAAE,MAAM,EAAE,GAAG,CAAC,MAAM,CAAC,CAAC;gBAC7E,MAAM,GAAG,GAAG,MAAM,MAAM,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;gBAClC,MAAM,aAAa,CAAC,GAAG,CAAC,CAAC;YAC3B,CAAC;iBAAM,IAAI,IAAI,CAAC,KAAK,EAAE,CAAC;gBACtB,MAAM,MAAM,GAA2B,EAAE,CAAC;gBAC1C,IAAI,IAAI,CAAC,MAAM;oBAAE,MAAM,CAAC,MAAM,GAAG,IAAI,CAAC,MAAM,CAAC;gBAC7C,IAAI,IAAI,CAAC,QAAQ;oBAAE,MAAM,CAAC,QAAQ,GAAG,IAAI,CAAC,QAAQ,CAAC;gBACnD,mEAAmE;gBACnE,kEAAkE;gBAClE,gDAAgD;gBAChD,MAAM,OAAO,GAAG,UAAU,CAAC,IAAI,CAAC,KAAK,EAAE,GAAG,CAAC,CAAC;gBAC5C,IAAI,OAAO;oBAAE,MAAM,CAAC,QAAQ,GAAG,OAAO,CAAC;gBACvC,MAAM,IAAI,GAAG,UAAU,CAAC,IAAI,CAAC,IAAI,EAAE,MAAM,CAAC,gBAAgB,CAAC,CAAC;gBAC5D,IAAI,IAAI;oBAAE,MAAM,CAAC,IAAI,GAAG,IAAI,CAAC;gBAC7B,MAAM,GAAG,GAAG,QAAQ,CAAC,wBAAwB,IAAI,CAAC,KAAK,QAAQ,EAAE,MAAM,EAAE,GAAG,CAAC,MAAM,CAAC,CAAC;gBACrF,MAAM,GAAG,GAAG,MAAM,MAAM,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;gBAClC,MAAM,aAAa,CAAC,GAAG,CAAC,CAAC;YAC3B,CAAC;iBAAM,CAAC;gBACN,OAAO,CAAC,KAAK,CAAC,gCAAgC,CAAC,CAAC;gBAChD,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;YAClB,CAAC;QACH,CAAC;QAAC,OAAO,GAAY,EAAE,CAAC;YACtB,MAAM,CAAC,GAAG,GAA0B,CAAC;YACrC,OAAO,CAAC,KAAK,CAAC,UAAU,CAAC,CAAC,MAAM,IAAI,sBAAsB,EAAE,CAAC,CAAC;YAC9D,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QAClB,CAAC;IACH,CAAC,CAAC,CAAC;IAEL,KAAK;SACF,OAAO,CAAC,UAAU,CAAC;SACnB,WAAW,CAAC,mGAAmG,CAAC;SAChH,MAAM,CAAC,KAAK,EAAE,EAAU,EAAE,EAAE;QAC3B,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,uBAAuB,EAAE,EAAE,EAAE,SAAS,EAAE,GAAG,CAAC,MAAM,CAAC,CAAC;YACzE,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,oBAAoB,EAAE,CAAC,CAAC;YAC5D,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QAClB,CAAC;IACH,CAAC,CAAC,CAAC;IAEL,KAAK;SACF,OAAO,CAAC,QAAQ,CAAC;SACjB,WAAW,CAAC,mBAAmB,CAAC;SAChC,cAAc,CAAC,cAAc,EAAE,UAAU,CAAC;SAC1C,cAAc,CAAC,qBAAqB,EAAE,YAAY,CAAC;SACnD,MAAM,CAAC,0BAA0B,EAAE,kBAAkB,CAAC;SACtD,MAAM,CAAC,uBAAuB,EAAE,wCAAwC,EAAE,QAAQ,CAAC;SACnF,MAAM,CAAC,oBAAoB,EAAE,uDAAuD,CAAC;SACrF,MAAM,CAAC,eAAe,EAAE,0CAA0C,CAAC;SACnE,MAAM,CAAC,iBAAiB,EAAE,4CAA4C,CAAC;SACvE,MAAM,CAAC,cAAc,EAAE,uBAAuB,CAAC;SAC/C,MAAM,CAAC,uBAAuB,EAAE,8CAA8C,CAAC;SAC/E,MAAM,CACL,qBAAqB,EACrB,mIAAmI,EACnI,YAAY,EACZ,EAAE,CACH;SACA,MAAM,CACL,wBAAwB,EACxB,kJAAkJ,CACnJ;SACA,MAAM,CAAC,KAAK,EAAE,IAAI,EAAE,EAAE;QACrB,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;gBACpC,KAAK,EAAE,IAAI,CAAC,KAAK;gBACjB,QAAQ,EAAE,IAAI,CAAC,QAAQ;aACxB,CAAC;YACF,IAAI,IAAI,CAAC,WAAW;gBAAE,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC,WAAW,CAAC;YAC1D,IAAI,IAAI,CAAC,MAAM;gBAAE,IAAI,CAAC,oBAAoB,GAAG,IAAI,CAAC,MAAM,CAAC;YACzD,IAAI,IAAI,CAAC,MAAM;gBAAE,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC,MAAM,CAAC;YAC9C,IAAI,IAAI,CAAC,MAAM;gBAAE,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,CAAS,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC;YACnF,IAAI,IAAI,CAAC,GAAG;gBAAE,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC,GAAG,CAAC;YACvC,IAAI,IAAI,CAAC,YAAY;gBAAE,IAAI,CAAC,kBAAkB,GAAG,IAAI,CAAC,YAAY,CAAC;YACnE,MAAM,YAAY,GAAG,iBAAiB,CAAC,IAAI,CAAC,CAAC;YAC7C,IAAI,YAAY;gBAAE,IAAI,CAAC,aAAa,GAAG,YAAY,CAAC;YACpD,MAAM,GAAG,GAAG,MAAM,MAAM,CAAC,IAAI,CAAC,wBAAwB,IAAI,CAAC,KAAK,QAAQ,EAAE,IAAI,CAAC,CAAC;YAChF,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,uBAAuB,EAAE,CAAC,CAAC;YAC/D,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QAClB,CAAC;IACH,CAAC,CAAC,CAAC;IAEL,KAAK;SACF,OAAO,CAAC,aAAa,CAAC;SACtB,WAAW,CAAC,0CAA0C,CAAC;SACvD,MAAM,CAAC,mBAAmB,EAAE,0IAA0I,CAAC;SACvK,MAAM,CAAC,uBAAuB,EAAE,uCAAuC,CAAC;SACxE,MAAM,CAAC,iBAAiB,EAAE,WAAW,CAAC;SACtC,MAAM,CAAC,0BAA0B,EAAE,4BAA4B,CAAC;SAChE,MAAM,CAAC,iBAAiB,EAAE,sBAAsB,CAAC;SACjD,MAAM,CAAC,sBAAsB,EAAE,uBAAuB,CAAC;SACvD,MAAM,CAAC,oBAAoB,EAAE,uDAAuD,CAAC;SACrF,MAAM,CAAC,iBAAiB,EAAE,yCAAyC,CAAC;SACpE,MAAM,CAAC,cAAc,EAAE,uBAAuB,CAAC;SAC/C,MAAM,CAAC,uBAAuB,EAAE,6CAA6C,CAAC;SAC9E,MAAM,CAAC,4BAA4B,EAAE,mEAAmE,CAAC;SACzG,MAAM,CAAC,kBAAkB,EAAE,uCAAuC,CAAC;SACnE,MAAM,CAAC,mBAAmB,EAAE,uCAAuC,CAAC;SACpE,MAAM,CAAC,oBAAoB,EAAE,oEAAoE,CAAC;SAClG,MAAM,CACL,qBAAqB,EACrB,2IAA2I,EAC3I,YAAY,EACZ,EAAE,CACH;SACA,MAAM,CACL,wBAAwB,EACxB,yGAAyG,CAC1G;SACA,MAAM,CACL,SAAS,EACT,6MAA6M,CAC9M;SACA,MAAM,CAAC,KAAK,EAAE,EAAU,EAAE,IAAI,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,IAAI,GAA4B,EAAE,CAAC;YACzC,IAAI,IAAI,CAAC,MAAM;gBAAE,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC,MAAM,CAAC;YAC3C,IAAI,IAAI,CAAC,QAAQ;gBAAE,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC,QAAQ,CAAC;YACjD,IAAI,IAAI,CAAC,KAAK;gBAAE,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC;YACxC,IAAI,IAAI,CAAC,WAAW;gBAAE,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC,WAAW,CAAC;YAC1D,IAAI,IAAI,CAAC,MAAM;gBAAE,IAAI,CAAC,oBAAoB,GAAG,IAAI,CAAC,MAAM,CAAC;YACzD,IAAI,IAAI,CAAC,UAAU,EAAE,CAAC;gBACpB,IAAI,CAAC,oBAAoB,GAAG,YAAY,CAAC,IAAI,CAAC,UAAU,EAAE,OAAO,CAAC,CAAC;YACrE,CAAC;YACD,IAAI,IAAI,CAAC,MAAM;gBAAE,IAAI,CAAC,oBAAoB,GAAG,IAAI,CAAC,MAAM,CAAC;YACzD,IAAI,IAAI,CAAC,MAAM;gBAAE,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,CAAS,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC;YACnF,IAAI,IAAI,CAAC,GAAG;gBAAE,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC,GAAG,CAAC;YACvC,IAAI,IAAI,CAAC,YAAY;gBAAE,IAAI,CAAC,kBAAkB,GAAG,IAAI,CAAC,YAAY,CAAC;YACnE,IAAI,IAAI,CAAC,gBAAgB;gBAAE,IAAI,CAAC,kBAAkB,GAAG,YAAY,CAAC,IAAI,CAAC,gBAAgB,EAAE,OAAO,CAAC,CAAC;YAClG,IAAI,IAAI,CAAC,OAAO,EAAE,CAAC;gBACjB,IAAI,CAAC;oBACH,IAAI,CAAC,aAAa,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;gBAChD,CAAC;gBAAC,MAAM,CAAC;oBACP,OAAO,CAAC,KAAK,CAAC,qDAAqD,CAAC,CAAC;oBACrE,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;gBAClB,CAAC;YACH,CAAC;YACD,IAAI,IAAI,CAAC,MAAM;gBAAE,IAAI,CAAC,cAAc,GAAG,IAAI,CAAC,MAAM,CAAC;YACnD,IAAI,IAAI,CAAC,SAAS;gBAAE,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,CAAS,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC;YAC7F,MAAM,YAAY,GAAG,iBAAiB,CAAC,IAAI,CAAC,CAAC;YAC7C,IAAI,YAAY;gBAAE,IAAI,CAAC,aAAa,GAAG,YAAY,CAAC;YACpD,IAAI,IAAI,CAAC,KAAK,EAAE,CAAC;gBACf,IAAI,CAAC,YAAY,EAAE,CAAC;oBAClB,OAAO,CAAC,KAAK,CAAC,gGAAgG,CAAC,CAAC;oBAChH,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;gBAClB,CAAC;gBACD,IAAI,CAAC,mBAAmB,GAAG,IAAI,CAAC;YAClC,CAAC;YACD,IAAI,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;gBACnC,OAAO,CAAC,KAAK,CAAC,kOAAkO,CAAC,CAAC;gBAClP,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;YAClB,CAAC;YACD,MAAM,GAAG,GAAG,MAAM,MAAM,CAAC,KAAK,CAAC,uBAAuB,EAAE,EAAE,EAAE,IAAI,CAAC,CAAC;YAClE,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,uBAAuB,EAAE,CAAC,CAAC;YAC/D,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QAClB,CAAC;IACH,CAAC,CAAC,CAAC;IAEL,KAAK;SACF,OAAO,CAAC,gBAAgB,CAAC;SACzB,WAAW,CAAC,gEAAgE,CAAC;SAC7E,MAAM,CAAC,iBAAiB,EAAE,wDAAwD,CAAC;SACnF,MAAM,CAAC,aAAa,EAAE,yCAAyC,CAAC;SAChE,MAAM,CAAC,YAAY,EAAE,iEAAiE,CAAC;SACvF,MAAM,CAAC,SAAS,EAAE,+BAA+B,CAAC;SAClD,MAAM,CAAC,KAAK,EAAE,EAAU,EAAE,IAAI,EAAE,EAAE;QACjC,MAAM,MAAM,GAAG,OAAO,CAAC,IAAI,EAAE,CAAC,SAAS,CAAC;QACxC,IAAI,CAAC;YACH,MAAM,OAAO,GAAG,CAAC,IAAI,CAAC,KAAK,EAAE,IAAI,CAAC,IAAI,EAAE,IAAI,CAAC,GAAG,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,MAAM,CAAC;YACzE,IAAI,OAAO,KAAK,CAAC,EAAE,CAAC;gBAClB,OAAO,CAAC,KAAK,CAAC,mDAAmD,CAAC,CAAC;gBACnE,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;YAClB,CAAC;YACD,MAAM,MAAM,GAAG,YAAY,CAAC,MAAM,CAAC,CAAC;YACpC,MAAM,IAAI,GAA4B,EAAE,CAAC;YACzC,IAAI,IAAI,CAAC,KAAK;gBAAE,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC;YAClC,IAAI,IAAI,CAAC,IAAI;gBAAE,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC,IAAI,CAAC;YACxC,IAAI,IAAI,CAAC,GAAG,EAAE,CAAC;gBACb,IAAI,CAAC,GAAG,GAAG,IAAI,CAAC,GAAG,CAAC;gBACpB,6DAA6D;gBAC7D,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC,KAAK,KAAK,KAAK,CAAC;YACpC,CAAC;YACD,MAAM,GAAG,GAAG,MAAM,MAAM,CAAC,IAAI,CAAC,uBAAuB,EAAE,QAAQ,EAAE,IAAI,CAAC,CAAC;YACvE,SAAS,CAAC,MAAM,GAAG,CAAC,IAAI,EAAE,CAAC,CAAC;QAC9B,CAAC;QAAC,OAAO,GAAY,EAAE,CAAC;YACtB,MAAM,CAAC,GAAG,GAA0B,CAAC;YACrC,OAAO,CAAC,KAAK,CAAC,UAAU,CAAC,CAAC,MAAM,IAAI,qBAAqB,EAAE,CAAC,CAAC;YAC7D,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QAClB,CAAC;IACH,CAAC,CAAC,CAAC;IAEL,KAAK;SACF,OAAO,CAAC,aAAa,CAAC;SACtB,WAAW,CAAC,eAAe,CAAC;SAC5B,MAAM,CAAC,KAAK,EAAE,EAAU,EAAE,EAAE;QAC3B,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,uBAAuB,EAAE,EAAE,CAAC,CAAC;YACjD,OAAO,CAAC,GAAG,CAAC,gBAAgB,EAAE,EAAE,CAAC,CAAC;QACpC,CAAC;QAAC,OAAO,GAAY,EAAE,CAAC;YACtB,MAAM,CAAC,GAAG,GAA0B,CAAC;YACrC,OAAO,CAAC,KAAK,CAAC,UAAU,CAAC,CAAC,MAAM,IAAI,uBAAuB,EAAE,CAAC,CAAC;YAC/D,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QAClB,CAAC;IACH,CAAC,CAAC,CAAC;IAEL,KAAK;SACF,OAAO,CAAC,WAAW,CAAC;SACpB,WAAW,CAAC,qGAAqG,CAAC;SAClH,cAAc,CAAC,eAAe,EAAE,kDAAkD,CAAC;SACnF,MAAM,CAAC,gBAAgB,EAAE,kCAAkC,CAAC;SAC5D,MAAM,CAAC,KAAK,EAAE,EAAU,EAAE,IAAI,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,IAAI,GAA4B,EAAE,SAAS,EAAE,IAAI,CAAC,MAAM,EAAE,CAAC;YACjE,IAAI,IAAI,CAAC,QAAQ,KAAK,SAAS;gBAAE,IAAI,CAAC,QAAQ,GAAG,QAAQ,CAAC,IAAI,CAAC,QAAQ,EAAE,EAAE,CAAC,CAAC;YAC7E,MAAM,GAAG,GAAG,MAAM,MAAM,CAAC,IAAI,CAAC,uBAAuB,EAAE,OAAO,EAAE,IAAI,CAAC,CAAC;YACtE,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,qBAAqB,EAAE,CAAC,CAAC;YAC7D,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QAClB,CAAC;IACH,CAAC,CAAC,CAAC;IAEL,KAAK;SACF,OAAO,CAAC,eAAe,CAAC;SACxB,WAAW,CAAC,yBAAyB,CAAC;SACtC,MAAM,CAAC,KAAK,EAAE,EAAU,EAAE,EAAE;QAC3B,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,uBAAuB,EAAE,WAAW,EAAE,SAAS,EAAE,GAAG,CAAC,MAAM,CAAC,CAAC;YAClF,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,yBAAyB,EAAE,CAAC,CAAC;YACjE,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QAClB,CAAC;IACH,CAAC,CAAC,CAAC;IAEL,KAAK;SACF,OAAO,CAAC,QAAQ,CAAC;SACjB,WAAW,CAAC,qCAAqC,CAAC;SAClD,cAAc,CAAC,oBAAoB,EAAE,cAAc,CAAC;SACpD,MAAM,CAAC,cAAc,EAAE,qFAAqF,CAAC;SAC7G,MAAM,CAAC,aAAa,EAAE,iCAAiC,CAAC;SACxD,MAAM,CAAC,KAAK,EAAE,IAAI,EAAE,EAAE;QACrB,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,MAAM,GAA2B,EAAE,CAAC,EAAE,IAAI,CAAC,KAAK,EAAE,CAAC;YACzD,IAAI,IAAI,CAAC,KAAK;gBAAE,MAAM,CAAC,QAAQ,GAAG,IAAI,CAAC,KAAK,CAAC;YAC7C,uDAAuD;YACvD,MAAM,KAAK,GAAG,UAAU,CAAC,IAAI,CAAC,KAAK,EAAE,GAAG,CAAC,CAAC;YAC1C,IAAI,KAAK;gBAAE,MAAM,CAAC,KAAK,GAAG,KAAK,CAAC;YAChC,MAAM,GAAG,GAAG,QAAQ,CAAC,4BAA4B,EAAE,MAAM,EAAE,GAAG,CAAC,MAAM,CAAC,CAAC;YACvE,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,KAAK;SACF,OAAO,CAAC,WAAW,CAAC;SACpB,WAAW,CAAC,kDAAkD,CAAC;SAC/D,MAAM,CACL,mBAAmB,EACnB,0EAA0E,EAC1E,UAAU,CACX;SACA,MAAM,CAAC,aAAa,EAAE,wBAAwB,EAAE,GAAG,CAAC;SACpD,MAAM,CAAC,mBAAmB,EAAE,uCAAuC,CAAC;SACpE,MAAM,CAAC,KAAK,EAAE,EAAU,EAAE,IAAI,EAAE,EAAE;QACjC,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,MAAM,GAA2B;gBACrC,SAAS,EAAE,IAAI,CAAC,SAAS;gBACzB,KAAK,EAAE,IAAI,CAAC,KAAK;aAClB,CAAC;YACF,IAAI,IAAI,CAAC,cAAc;gBAAE,MAAM,CAAC,eAAe,GAAG,MAAM,CAAC;YACzD,MAAM,GAAG,GAAG,QAAQ,CAClB,uBAAuB,EAAE,kBAAkB,EAC3C,MAAM,EACN,GAAG,CAAC,MAAM,CACX,CAAC;YACF,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,gCAAgC,EAAE,CAAC,CAAC;YACxE,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QAClB,CAAC;IACH,CAAC,CAAC,CAAC;IAEL,KAAK;SACF,OAAO,CAAC,WAAW,CAAC;SACpB,WAAW,CAAC,gDAAgD,CAAC;SAC7D,cAAc,CAAC,cAAc,EAAE,4BAA4B,CAAC;SAC5D,MAAM,CAAC,KAAK,EAAE,IAAI,EAAE,EAAE;QACrB,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,MAAM,GAA2B,EAAE,GAAG,EAAE,IAAI,CAAC,GAAG,EAAE,CAAC;YACzD,MAAM,GAAG,GAAG,QAAQ,CAAC,2BAA2B,EAAE,MAAM,EAAE,GAAG,CAAC,MAAM,CAAC,CAAC;YACtE,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,2BAA2B,EAAE,CAAC,CAAC;YACnE,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QAClB,CAAC;IACH,CAAC,CAAC,CAAC;IAEL,kEAAkE;IAClE,KAAK;SACF,OAAO,CAAC,aAAa,CAAC;SACtB,WAAW,CACV,6EAA6E,CAC9E;SACA,cAAc,CAAC,cAAc,EAAE,8BAA8B,CAAC;SAC9D,cAAc,CACb,iBAAiB,EACjB,+FAA+F,CAChG;SACA,cAAc,CACb,gBAAgB,EAChB,8DAA8D,CAC/D;SACA,MAAM,CAAC,WAAW,EAAE,gEAAgE,CAAC;SACrF,MAAM,CAAC,YAAY,EAAE,6BAA6B,EAAE,GAAG,CAAC;SACxD,MAAM,CAAC,gBAAgB,EAAE,kCAAkC,EAAE,KAAK,CAAC;SACnE,MAAM,CAAC,KAAK,EAAE,IAAI,EAAE,EAAE;QACrB,MAAM,MAAM,GAAG,OAAO,CAAC,IAAI,EAAE,CAAC,SAAS,CAAC;QACxC,IAAI,SAAkB,CAAC;QACvB,IAAI,QAAiB,CAAC;QACtB,IAAI,CAAC;YACH,SAAS,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;QACtC,CAAC;QAAC,OAAO,CAAU,EAAE,CAAC;YACpB,OAAO,CAAC,KAAK,CAAC,sCAAuC,CAAW,CAAC,OAAO,EAAE,CAAC,CAAC;YAC5E,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QAClB,CAAC;QACD,IAAI,CAAC;YACH,QAAQ,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QACpC,CAAC;QAAC,OAAO,CAAU,EAAE,CAAC;YACpB,OAAO,CAAC,KAAK,CAAC,qCAAsC,CAAW,CAAC,OAAO,EAAE,CAAC,CAAC;YAC3E,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QAClB,CAAC;QACD,IAAI,CAAC;YACH,MAAM,MAAM,GAAG,YAAY,CAAC,MAAM,CAAC,CAAC;YACpC,MAAM,IAAI,GAAG;gBACX,MAAM,EAAE,SAAS;gBACjB,KAAK,EAAE,QAAQ;gBACf,OAAO,EAAE,OAAO,CAAC,IAAI,CAAC,MAAM,CAAC;aAC9B,CAAC;YACF,MAAM,MAAM,GAA2B;gBACrC,IAAI,EAAE,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC;gBACvB,QAAQ,EAAE,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC;aAC/B,CAAC;YACF,MAAM,GAAG,GAAG,QAAQ,CAClB,wBAAwB,IAAI,CAAC,KAAK,oBAAoB,EACtD,MAAM,CACP,CAAC;YACF,MAAM,GAAG,GAAG,MAAM,MAAM,CAAC,IAAI,CAAC,GAAG,EAAE,IAAI,CAAC,CAAC;YACzC,SAAS,CAAC,GAAG,CAAC,CAAC;QACjB,CAAC;QAAC,OAAO,GAAY,EAAE,CAAC;YACtB,MAAM,CAAC,GAAG,GAA0B,CAAC;YACrC,OAAO,CAAC,KAAK,CAAC,UAAU,CAAC,CAAC,MAAM,IAAI,6BAA6B,EAAE,CAAC,CAAC;YACrE,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QAClB,CAAC;IACH,CAAC,CAAC,CAAC;IAEL,kEAAkE;IAClE,KAAK;SACF,OAAO,CAAC,aAAa,CAAC;SACtB,WAAW,CACV,kIAAkI,CACnI;SACA,cAAc,CAAC,cAAc,EAAE,8BAA8B,CAAC;SAC9D,MAAM,CACL,gBAAgB,EAChB,2UAA2U,CAC5U;SACA,MAAM,CACL,qBAAqB,EACrB,oEAAoE,CACrE;SACA,MAAM,CAAC,KAAK,EAAE,IAAI,EAAE,EAAE;QACrB,MAAM,MAAM,GAAG,OAAO,CAAC,IAAI,EAAE,CAAC,SAAS,CAAC;QACxC,MAAM,GAAG,GAAG,IAAI,CAAC,SAAS;YACxB,CAAC,CAAC,YAAY,CAAC,IAAI,CAAC,SAAS,EAAE,OAAO,CAAC;YACvC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC;QACf,IAAI,CAAC,GAAG,EAAE,CAAC;YACT,OAAO,CAAC,KAAK,CAAC,sDAAsD,CAAC,CAAC;YACtE,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QAClB,CAAC;QACD,IAAI,KAAc,CAAC;QACnB,IAAI,CAAC;YACH,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;QAC1B,CAAC;QAAC,OAAO,CAAU,EAAE,CAAC;YACpB,OAAO,CAAC,KAAK,CAAC,qCAAsC,CAAW,CAAC,OAAO,EAAE,CAAC,CAAC;YAC3E,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QAClB,CAAC;QACD,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,IAAI,KAAK,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YAChD,OAAO,CAAC,KAAK,CAAC,6DAA6D,CAAC,CAAC;YAC7E,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QAClB,CAAC;QACD,IAAI,CAAC;YACH,MAAM,MAAM,GAAG,YAAY,CAAC,MAAM,CAAC,CAAC;YACpC,MAAM,GAAG,GAAG,MAAM,MAAM,CAAC,IAAI,CAC3B,wBAAwB,IAAI,CAAC,KAAK,aAAa,EAC/C,EAAE,KAAK,EAAE,KAAK,EAAE,CACjB,CAAC;YACF,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,6BAA6B,EAAE,CAAC,CAAC;YACrE,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QAClB,CAAC;IACH,CAAC,CAAC,CAAC;AACP,CAAC"}
|
|
1
|
+
{"version":3,"file":"tasks.js","sourceRoot":"","sources":["../../src/commands/tasks.ts"],"names":[],"mappings":"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"}
|
package/dist/index.js
CHANGED
|
@@ -27,6 +27,7 @@ import { registerConfigCommands } from "./commands/config.js";
|
|
|
27
27
|
import { registerWorkspaceCommands } from "./commands/workspace.js";
|
|
28
28
|
import { registerViewCommands } from "./commands/views.js";
|
|
29
29
|
import { registerActivityCommands } from "./commands/activity.js";
|
|
30
|
+
import { registerMasterCommands } from "./commands/master.js";
|
|
30
31
|
import { registerMetricsCommands } from "./commands/metrics.js";
|
|
31
32
|
import { registerColumnCommands } from "./commands/columns.js";
|
|
32
33
|
import { registerFileCommands } from "./commands/files.js";
|
|
@@ -61,6 +62,7 @@ registerCommentCommands(program);
|
|
|
61
62
|
registerDocsCommands(program);
|
|
62
63
|
registerViewCommands(program);
|
|
63
64
|
registerActivityCommands(program);
|
|
65
|
+
registerMasterCommands(program);
|
|
64
66
|
registerMetricsCommands(program);
|
|
65
67
|
registerColumnCommands(program);
|
|
66
68
|
registerFileCommands(program);
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,46 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Client-side board-ref → UUID resolution for QUERY parameters.
|
|
3
|
+
*
|
|
4
|
+
* 🔴 Why this exists, and why it is not optional.
|
|
5
|
+
*
|
|
6
|
+
* The main-API proxy canonicalizes refs in the PATH it builds — that is what
|
|
7
|
+
* makes `opvs tasks list --board PC` work. It has never inspected the query
|
|
8
|
+
* string, and only one route compensates: `GET /api/v1/board/activity`
|
|
9
|
+
* resolves and brand-checks each `board_ids` entry itself.
|
|
10
|
+
*
|
|
11
|
+
* `GET /api/v1/board/master/tasks` does NOT, and a ref there is not merely
|
|
12
|
+
* ignored — it is a 500. MEASURED against production 2026-09-02:
|
|
13
|
+
*
|
|
14
|
+
* board_ids=<uuid> -> HTTP 200
|
|
15
|
+
* board_ids=AOR -> HTTP 500
|
|
16
|
+
* board_type=factory&board_ids=AOR -> HTTP 500
|
|
17
|
+
*
|
|
18
|
+
* The cause is upstream, in `MasterViewService.get_tasks`: it coerces
|
|
19
|
+
* `board_ids` to UUIDs for `_base_query`, then passes the RAW list to
|
|
20
|
+
* `_apply_filters`, where `uuid.UUID("AOR")` raises `ValueError` uncaught
|
|
21
|
+
* (`master_service.py:537` vs `:548`, raising at `:193`). One unparseable
|
|
22
|
+
* entry fails the whole request, mixed lists included.
|
|
23
|
+
*
|
|
24
|
+
* That also makes `_coerce_board_ids`'s documented tolerance ("invalid ids are
|
|
25
|
+
* dropped rather than raising") unreachable on this path — `_apply_filters`
|
|
26
|
+
* raises first on the same input. Reported on AOR-11; not fixed here, because
|
|
27
|
+
* this row owns `packages/cli/**` only.
|
|
28
|
+
*
|
|
29
|
+
* Resolving here costs one GET per distinct ref, only for values that are not
|
|
30
|
+
* already UUIDs, and only on the routes that need it.
|
|
31
|
+
*/
|
|
32
|
+
/** True when the value is already a canonical board id needing no lookup. */
|
|
33
|
+
export declare function isUuid(value: string): boolean;
|
|
34
|
+
interface BoardLookupClient {
|
|
35
|
+
get(url: string): Promise<Response>;
|
|
36
|
+
}
|
|
37
|
+
/**
|
|
38
|
+
* Resolve a list of board refs/UUIDs to UUIDs, preserving order.
|
|
39
|
+
*
|
|
40
|
+
* A ref that cannot be resolved is a hard error here, with a message naming
|
|
41
|
+
* the board. The alternative is forwarding a value that makes the upstream
|
|
42
|
+
* answer a bare `Internal Server Error` — the same outcome, with nothing in it
|
|
43
|
+
* to act on.
|
|
44
|
+
*/
|
|
45
|
+
export declare function resolveBoardRefs(client: BoardLookupClient, refs: string[]): Promise<string[]>;
|
|
46
|
+
export {};
|
|
@@ -0,0 +1,79 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Client-side board-ref → UUID resolution for QUERY parameters.
|
|
3
|
+
*
|
|
4
|
+
* 🔴 Why this exists, and why it is not optional.
|
|
5
|
+
*
|
|
6
|
+
* The main-API proxy canonicalizes refs in the PATH it builds — that is what
|
|
7
|
+
* makes `opvs tasks list --board PC` work. It has never inspected the query
|
|
8
|
+
* string, and only one route compensates: `GET /api/v1/board/activity`
|
|
9
|
+
* resolves and brand-checks each `board_ids` entry itself.
|
|
10
|
+
*
|
|
11
|
+
* `GET /api/v1/board/master/tasks` does NOT, and a ref there is not merely
|
|
12
|
+
* ignored — it is a 500. MEASURED against production 2026-09-02:
|
|
13
|
+
*
|
|
14
|
+
* board_ids=<uuid> -> HTTP 200
|
|
15
|
+
* board_ids=AOR -> HTTP 500
|
|
16
|
+
* board_type=factory&board_ids=AOR -> HTTP 500
|
|
17
|
+
*
|
|
18
|
+
* The cause is upstream, in `MasterViewService.get_tasks`: it coerces
|
|
19
|
+
* `board_ids` to UUIDs for `_base_query`, then passes the RAW list to
|
|
20
|
+
* `_apply_filters`, where `uuid.UUID("AOR")` raises `ValueError` uncaught
|
|
21
|
+
* (`master_service.py:537` vs `:548`, raising at `:193`). One unparseable
|
|
22
|
+
* entry fails the whole request, mixed lists included.
|
|
23
|
+
*
|
|
24
|
+
* That also makes `_coerce_board_ids`'s documented tolerance ("invalid ids are
|
|
25
|
+
* dropped rather than raising") unreachable on this path — `_apply_filters`
|
|
26
|
+
* raises first on the same input. Reported on AOR-11; not fixed here, because
|
|
27
|
+
* this row owns `packages/cli/**` only.
|
|
28
|
+
*
|
|
29
|
+
* Resolving here costs one GET per distinct ref, only for values that are not
|
|
30
|
+
* already UUIDs, and only on the routes that need it.
|
|
31
|
+
*/
|
|
32
|
+
const UUID_RE = /^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12}$/;
|
|
33
|
+
/** True when the value is already a canonical board id needing no lookup. */
|
|
34
|
+
export function isUuid(value) {
|
|
35
|
+
return UUID_RE.test(value);
|
|
36
|
+
}
|
|
37
|
+
/**
|
|
38
|
+
* Resolve a list of board refs/UUIDs to UUIDs, preserving order.
|
|
39
|
+
*
|
|
40
|
+
* A ref that cannot be resolved is a hard error here, with a message naming
|
|
41
|
+
* the board. The alternative is forwarding a value that makes the upstream
|
|
42
|
+
* answer a bare `Internal Server Error` — the same outcome, with nothing in it
|
|
43
|
+
* to act on.
|
|
44
|
+
*/
|
|
45
|
+
export async function resolveBoardRefs(client, refs) {
|
|
46
|
+
const seen = new Map();
|
|
47
|
+
const out = [];
|
|
48
|
+
for (const ref of refs) {
|
|
49
|
+
if (isUuid(ref)) {
|
|
50
|
+
out.push(ref.toLowerCase());
|
|
51
|
+
continue;
|
|
52
|
+
}
|
|
53
|
+
const cached = seen.get(ref);
|
|
54
|
+
if (cached) {
|
|
55
|
+
out.push(cached);
|
|
56
|
+
continue;
|
|
57
|
+
}
|
|
58
|
+
let id;
|
|
59
|
+
try {
|
|
60
|
+
// Ask for JSON explicitly: the caller's configured format may be yaml/md,
|
|
61
|
+
// and this is a lookup whose single field we have to read, not print.
|
|
62
|
+
const res = await client.get(`/api/v1/board/boards/${encodeURIComponent(ref)}`);
|
|
63
|
+
const data = (await res.json());
|
|
64
|
+
id = data?.id;
|
|
65
|
+
}
|
|
66
|
+
catch {
|
|
67
|
+
id = undefined;
|
|
68
|
+
}
|
|
69
|
+
if (!id) {
|
|
70
|
+
console.error(`Error: could not resolve board '${ref}'. Pass a board key (e.g. PC) or a UUID.\n` +
|
|
71
|
+
` Sending an unresolvable ref would REMOVE the board filter rather than narrow it.`);
|
|
72
|
+
process.exit(1);
|
|
73
|
+
}
|
|
74
|
+
seen.set(ref, id);
|
|
75
|
+
out.push(id);
|
|
76
|
+
}
|
|
77
|
+
return out;
|
|
78
|
+
}
|
|
79
|
+
//# sourceMappingURL=board-refs.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"board-refs.js","sourceRoot":"","sources":["../../src/lib/board-refs.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA8BG;AAEH,MAAM,OAAO,GAAG,+EAA+E,CAAC;AAEhG,6EAA6E;AAC7E,MAAM,UAAU,MAAM,CAAC,KAAa;IAClC,OAAO,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;AAC7B,CAAC;AAMD;;;;;;;GAOG;AACH,MAAM,CAAC,KAAK,UAAU,gBAAgB,CACpC,MAAyB,EACzB,IAAc;IAEd,MAAM,IAAI,GAAG,IAAI,GAAG,EAAkB,CAAC;IACvC,MAAM,GAAG,GAAa,EAAE,CAAC;IAEzB,KAAK,MAAM,GAAG,IAAI,IAAI,EAAE,CAAC;QACvB,IAAI,MAAM,CAAC,GAAG,CAAC,EAAE,CAAC;YAChB,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,WAAW,EAAE,CAAC,CAAC;YAC5B,SAAS;QACX,CAAC;QACD,MAAM,MAAM,GAAG,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;QAC7B,IAAI,MAAM,EAAE,CAAC;YACX,GAAG,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;YACjB,SAAS;QACX,CAAC;QACD,IAAI,EAAsB,CAAC;QAC3B,IAAI,CAAC;YACH,0EAA0E;YAC1E,sEAAsE;YACtE,MAAM,GAAG,GAAG,MAAM,MAAM,CAAC,GAAG,CAAC,wBAAwB,kBAAkB,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;YAChF,MAAM,IAAI,GAAG,CAAC,MAAM,GAAG,CAAC,IAAI,EAAE,CAAoB,CAAC;YACnD,EAAE,GAAG,IAAI,EAAE,EAAE,CAAC;QAChB,CAAC;QAAC,MAAM,CAAC;YACP,EAAE,GAAG,SAAS,CAAC;QACjB,CAAC;QACD,IAAI,CAAC,EAAE,EAAE,CAAC;YACR,OAAO,CAAC,KAAK,CACX,mCAAmC,GAAG,4CAA4C;gBAChF,yFAAyF,CAC5F,CAAC;YACF,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QAClB,CAAC;QACD,IAAI,CAAC,GAAG,CAAC,GAAG,EAAE,EAAE,CAAC,CAAC;QAClB,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;IACf,CAAC;IAED,OAAO,GAAG,CAAC;AACb,CAAC"}
|
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Shared option validation for enum-shaped flags.
|
|
3
|
+
*
|
|
4
|
+
* Every value validated here is pinned by a `pattern=` on the upstream FastAPI
|
|
5
|
+
* `Query(...)`, so the server is the authority and answers 422 on a bad value.
|
|
6
|
+
* Checking locally first is purely to turn a round-trip and a raw 422 into a
|
|
7
|
+
* one-line message that names the accepted set — it must never accept
|
|
8
|
+
* something the server would reject, and must never reject something the
|
|
9
|
+
* server would accept. When an upstream pattern gains a value, this list is
|
|
10
|
+
* the thing that has to move with it.
|
|
11
|
+
*/
|
|
12
|
+
/**
|
|
13
|
+
* Validate a flag value against the upstream's declared set.
|
|
14
|
+
*
|
|
15
|
+
* @param flag the user-facing flag name, for the error message
|
|
16
|
+
* @param raw the commander option value (undefined when the flag was omitted)
|
|
17
|
+
* @param allowed the values the upstream `pattern=` declares
|
|
18
|
+
* @returns the value, or `undefined` when the flag was omitted — callers must
|
|
19
|
+
* then send NO parameter at all so the upstream applies its own
|
|
20
|
+
* default. Exits the process on an unrecognised value.
|
|
21
|
+
*/
|
|
22
|
+
export declare function oneOf<T extends string>(flag: string, raw: string | undefined, allowed: readonly T[]): T | undefined;
|
|
23
|
+
/**
|
|
24
|
+
* Split a comma-separated flag value into trimmed, non-empty items.
|
|
25
|
+
*
|
|
26
|
+
* Returns `undefined` when nothing survives, so the caller sends no param
|
|
27
|
+
* rather than an empty one. That distinction is load-bearing on
|
|
28
|
+
* `/master/tasks`, where an unusable `board_ids` is dropped server-side and
|
|
29
|
+
* the filter silently disappears — see `resolveBoardRefs`.
|
|
30
|
+
*/
|
|
31
|
+
export declare function csv(raw: string | undefined): string[] | undefined;
|
|
@@ -0,0 +1,48 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Shared option validation for enum-shaped flags.
|
|
3
|
+
*
|
|
4
|
+
* Every value validated here is pinned by a `pattern=` on the upstream FastAPI
|
|
5
|
+
* `Query(...)`, so the server is the authority and answers 422 on a bad value.
|
|
6
|
+
* Checking locally first is purely to turn a round-trip and a raw 422 into a
|
|
7
|
+
* one-line message that names the accepted set — it must never accept
|
|
8
|
+
* something the server would reject, and must never reject something the
|
|
9
|
+
* server would accept. When an upstream pattern gains a value, this list is
|
|
10
|
+
* the thing that has to move with it.
|
|
11
|
+
*/
|
|
12
|
+
/**
|
|
13
|
+
* Validate a flag value against the upstream's declared set.
|
|
14
|
+
*
|
|
15
|
+
* @param flag the user-facing flag name, for the error message
|
|
16
|
+
* @param raw the commander option value (undefined when the flag was omitted)
|
|
17
|
+
* @param allowed the values the upstream `pattern=` declares
|
|
18
|
+
* @returns the value, or `undefined` when the flag was omitted — callers must
|
|
19
|
+
* then send NO parameter at all so the upstream applies its own
|
|
20
|
+
* default. Exits the process on an unrecognised value.
|
|
21
|
+
*/
|
|
22
|
+
export function oneOf(flag, raw, allowed) {
|
|
23
|
+
if (raw === undefined || raw === "")
|
|
24
|
+
return undefined;
|
|
25
|
+
if (!allowed.includes(raw)) {
|
|
26
|
+
console.error(`Error: ${flag} must be one of: ${allowed.join(", ")} (got '${raw}')`);
|
|
27
|
+
process.exit(1);
|
|
28
|
+
}
|
|
29
|
+
return raw;
|
|
30
|
+
}
|
|
31
|
+
/**
|
|
32
|
+
* Split a comma-separated flag value into trimmed, non-empty items.
|
|
33
|
+
*
|
|
34
|
+
* Returns `undefined` when nothing survives, so the caller sends no param
|
|
35
|
+
* rather than an empty one. That distinction is load-bearing on
|
|
36
|
+
* `/master/tasks`, where an unusable `board_ids` is dropped server-side and
|
|
37
|
+
* the filter silently disappears — see `resolveBoardRefs`.
|
|
38
|
+
*/
|
|
39
|
+
export function csv(raw) {
|
|
40
|
+
if (!raw)
|
|
41
|
+
return undefined;
|
|
42
|
+
const out = raw
|
|
43
|
+
.split(",")
|
|
44
|
+
.map((s) => s.trim())
|
|
45
|
+
.filter((s) => s.length > 0);
|
|
46
|
+
return out.length ? out : undefined;
|
|
47
|
+
}
|
|
48
|
+
//# sourceMappingURL=options.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"options.js","sourceRoot":"","sources":["../../src/lib/options.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AAEH;;;;;;;;;GASG;AACH,MAAM,UAAU,KAAK,CACnB,IAAY,EACZ,GAAuB,EACvB,OAAqB;IAErB,IAAI,GAAG,KAAK,SAAS,IAAI,GAAG,KAAK,EAAE;QAAE,OAAO,SAAS,CAAC;IACtD,IAAI,CAAE,OAA6B,CAAC,QAAQ,CAAC,GAAG,CAAC,EAAE,CAAC;QAClD,OAAO,CAAC,KAAK,CAAC,UAAU,IAAI,oBAAoB,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC,CAAC;QACrF,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAClB,CAAC;IACD,OAAO,GAAQ,CAAC;AAClB,CAAC;AAED;;;;;;;GAOG;AACH,MAAM,UAAU,GAAG,CAAC,GAAuB;IACzC,IAAI,CAAC,GAAG;QAAE,OAAO,SAAS,CAAC;IAC3B,MAAM,GAAG,GAAG,GAAG;SACZ,KAAK,CAAC,GAAG,CAAC;SACV,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC;SACpB,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;IAC/B,OAAO,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,SAAS,CAAC;AACtC,CAAC"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@opvs-ai/cli",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.13.1",
|
|
4
4
|
"description": "OPVS CLI \u2014 Terminal access to AgentBoard + AgentDocs for AI coding agents",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"bin": {
|
|
@@ -38,5 +38,9 @@
|
|
|
38
38
|
"agentdocs",
|
|
39
39
|
"ai-agent"
|
|
40
40
|
],
|
|
41
|
-
"license": "UNLICENSED"
|
|
41
|
+
"license": "UNLICENSED",
|
|
42
|
+
"publishConfig": {
|
|
43
|
+
"registry": "https://registry.npmjs.org/",
|
|
44
|
+
"access": "public"
|
|
45
|
+
}
|
|
42
46
|
}
|