@opvs-ai/cli 0.15.0 → 0.15.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/README.md +32 -0
- package/dist/.build-stamp.json +4 -4
- package/dist/commands/boards.d.ts +13 -0
- package/dist/commands/boards.js +171 -18
- package/dist/commands/boards.js.map +1 -1
- package/dist/commands/columns.d.ts +11 -0
- package/dist/commands/columns.js +75 -39
- package/dist/commands/columns.js.map +1 -1
- package/dist/commands/comments.js +48 -14
- package/dist/commands/comments.js.map +1 -1
- package/dist/commands/files.js +34 -0
- package/dist/commands/files.js.map +1 -1
- package/dist/commands/markers.js +53 -1
- package/dist/commands/markers.js.map +1 -1
- package/dist/commands/members.d.ts +33 -0
- package/dist/commands/members.js +96 -11
- package/dist/commands/members.js.map +1 -1
- package/dist/commands/projects.d.ts +8 -0
- package/dist/commands/projects.js +80 -6
- package/dist/commands/projects.js.map +1 -1
- package/dist/commands/stages.js +14 -3
- package/dist/commands/stages.js.map +1 -1
- package/dist/commands/tasks.js +207 -6
- package/dist/commands/tasks.js.map +1 -1
- package/dist/lib/factory-gate.d.ts +38 -0
- package/dist/lib/factory-gate.js +65 -0
- package/dist/lib/factory-gate.js.map +1 -0
- package/dist/lib/options.d.ts +17 -0
- package/dist/lib/options.js +37 -0
- package/dist/lib/options.js.map +1 -1
- package/dist/lib/routing.js +1 -2
- package/dist/lib/routing.js.map +1 -1
- package/package.json +2 -2
package/dist/lib/options.js
CHANGED
|
@@ -45,4 +45,41 @@ export function csv(raw) {
|
|
|
45
45
|
.filter((s) => s.length > 0);
|
|
46
46
|
return out.length ? out : undefined;
|
|
47
47
|
}
|
|
48
|
+
/**
|
|
49
|
+
* The CLEAR verb for a nullable scalar flag — a shell cannot write JSON null,
|
|
50
|
+
* and an omitted flag has to keep meaning "leave it alone". One definition:
|
|
51
|
+
* `columns`, `routing` and `tasks` used to each spell it (ASP-119 F15).
|
|
52
|
+
*/
|
|
53
|
+
export const CLEAR = "none";
|
|
54
|
+
/**
|
|
55
|
+
* Strict integer flag. `parseInt("12abc")` is 12 and `parseInt("ten")` is NaN,
|
|
56
|
+
* which `JSON.stringify` sends as `null` — on a PATCH that CLEARS the field with
|
|
57
|
+
* a 200 (ASP-119: `columns update --wip-limit ten` wiped the WIP limit). So a
|
|
58
|
+
* value that is not all digits, or is below `min`, exits before anything is sent.
|
|
59
|
+
*
|
|
60
|
+
* @returns the number, or `undefined` when the flag was not given.
|
|
61
|
+
*/
|
|
62
|
+
export function intFlag(flag, raw, min) {
|
|
63
|
+
if (raw === undefined)
|
|
64
|
+
return undefined;
|
|
65
|
+
const s = String(raw).trim();
|
|
66
|
+
if (!/^[0-9]+$/.test(s) || Number(s) < min || !Number.isSafeInteger(Number(s))) {
|
|
67
|
+
const shape = min === 0 ? "a non-negative integer" : min === 1 ? "a positive integer" : `an integer >= ${min}`;
|
|
68
|
+
console.error(`Error: ${flag} must be ${shape} (got '${raw}')`);
|
|
69
|
+
process.exit(1);
|
|
70
|
+
}
|
|
71
|
+
return Number(s);
|
|
72
|
+
}
|
|
73
|
+
/** Strict `true` / `false` flag. `undefined` when not given; exits on anything else. */
|
|
74
|
+
export function boolFlag(flag, raw) {
|
|
75
|
+
if (raw === undefined)
|
|
76
|
+
return undefined;
|
|
77
|
+
const v = String(raw).trim().toLowerCase();
|
|
78
|
+
if (v === "true")
|
|
79
|
+
return true;
|
|
80
|
+
if (v === "false")
|
|
81
|
+
return false;
|
|
82
|
+
console.error(`Error: ${flag} must be true or false (got '${raw}')`);
|
|
83
|
+
process.exit(1);
|
|
84
|
+
}
|
|
48
85
|
//# sourceMappingURL=options.js.map
|
package/dist/lib/options.js.map
CHANGED
|
@@ -1 +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"}
|
|
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;AAED;;;;GAIG;AACH,MAAM,CAAC,MAAM,KAAK,GAAG,MAAM,CAAC;AAE5B;;;;;;;GAOG;AACH,MAAM,UAAU,OAAO,CAAC,IAAY,EAAE,GAAuB,EAAE,GAAW;IACxE,IAAI,GAAG,KAAK,SAAS;QAAE,OAAO,SAAS,CAAC;IACxC,MAAM,CAAC,GAAG,MAAM,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,CAAC;IAC7B,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,MAAM,CAAC,CAAC,CAAC,GAAG,GAAG,IAAI,CAAC,MAAM,CAAC,aAAa,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;QAC/E,MAAM,KAAK,GAAG,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC,wBAAwB,CAAC,CAAC,CAAC,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC,oBAAoB,CAAC,CAAC,CAAC,iBAAiB,GAAG,EAAE,CAAC;QAC/G,OAAO,CAAC,KAAK,CAAC,UAAU,IAAI,YAAY,KAAK,UAAU,GAAG,IAAI,CAAC,CAAC;QAChE,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAClB,CAAC;IACD,OAAO,MAAM,CAAC,CAAC,CAAC,CAAC;AACnB,CAAC;AAED,wFAAwF;AACxF,MAAM,UAAU,QAAQ,CAAC,IAAY,EAAE,GAAuB;IAC5D,IAAI,GAAG,KAAK,SAAS;QAAE,OAAO,SAAS,CAAC;IACxC,MAAM,CAAC,GAAG,MAAM,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,CAAC,WAAW,EAAE,CAAC;IAC3C,IAAI,CAAC,KAAK,MAAM;QAAE,OAAO,IAAI,CAAC;IAC9B,IAAI,CAAC,KAAK,OAAO;QAAE,OAAO,KAAK,CAAC;IAChC,OAAO,CAAC,KAAK,CAAC,UAAU,IAAI,gCAAgC,GAAG,IAAI,CAAC,CAAC;IACrE,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;AAClB,CAAC"}
|
package/dist/lib/routing.js
CHANGED
|
@@ -15,8 +15,7 @@
|
|
|
15
15
|
* a copy is where the fourth one gets forgotten (the server says the same about
|
|
16
16
|
* its own validator).
|
|
17
17
|
*/
|
|
18
|
-
|
|
19
|
-
const CLEAR = "none";
|
|
18
|
+
import { CLEAR } from "./options.js";
|
|
20
19
|
/**
|
|
21
20
|
* Build the PATCH body. Only flags given become keys — both routes are
|
|
22
21
|
* `exclude_unset`, so an omitted flag leaves that default alone, and `none`
|
package/dist/lib/routing.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"routing.js","sourceRoot":"","sources":["../../src/lib/routing.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;GAgBG;AAEH,
|
|
1
|
+
{"version":3,"file":"routing.js","sourceRoot":"","sources":["../../src/lib/routing.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;GAgBG;AAEH,OAAO,EAAE,KAAK,EAAE,MAAM,cAAc,CAAC;AAWrC;;;;GAIG;AACH,MAAM,UAAU,gBAAgB,CAAC,IAAiB;IAChD,MAAM,IAAI,GAA2B,EAAE,CAAC;IACxC,MAAM,GAAG,GAAG,CAAC,GAAW,EAAE,GAAuB,EAAE,EAAE;QACnD,IAAI,GAAG,KAAK,SAAS;YAAE,OAAO;QAC9B,IAAI,CAAC,GAAG,CAAC,GAAG,GAAG,KAAK,KAAK,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC;IACvC,CAAC,CAAC;IACF,GAAG,CAAC,eAAe,EAAE,IAAI,CAAC,KAAK,CAAC,CAAC;IACjC,GAAG,CAAC,kBAAkB,EAAE,IAAI,CAAC,QAAQ,CAAC,CAAC;IACvC,GAAG,CAAC,iBAAiB,EAAE,IAAI,CAAC,OAAO,CAAC,CAAC;IACrC,GAAG,CAAC,sBAAsB,EAAE,IAAI,CAAC,WAAW,CAAC,CAAC;IAC9C,OAAO,IAAI,CAAC;AACd,CAAC;AAED;;;;;;;;GAQG;AACH,MAAM,UAAU,kBAAkB,CAChC,GAAM,EACN,KAA0B;IAE1B,MAAM,KAAK,GACT,KAAK,KAAK,OAAO;QACf,CAAC,CAAC,wFAAwF;QAC1F,CAAC,CAAC,wFAAwF;YACxF,qFAAqF,CAAC;IAC5F,OAAO,GAAG;SACP,MAAM,CACL,iBAAiB,EACjB,8CAA8C,KAAK,yBAAyB,CAC7E;SACA,MAAM,CACL,mBAAmB,EACnB,+GAA+G;QAC7G,WAAW,KAAK,yBAAyB,CAC5C;SACA,MAAM,CACL,sBAAsB,EACtB,4EAA4E,KAAK,yBAAyB,CAC3G;SACA,MAAM,CACL,wBAAwB,EACxB,uDAAuD,KAAK,oDAAoD;QAC9G,8GAA8G;QAC9G,mCAAmC,CACtC,CAAC;AACN,CAAC"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@opvs-ai/cli",
|
|
3
|
-
"version": "0.15.
|
|
3
|
+
"version": "0.15.1",
|
|
4
4
|
"description": "OPVS CLI \u2014 Terminal access to AgentBoard + AgentDocs for AI coding agents",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"bin": {
|
|
@@ -14,7 +14,7 @@
|
|
|
14
14
|
"test:watch": "vitest"
|
|
15
15
|
},
|
|
16
16
|
"dependencies": {
|
|
17
|
-
"@opvs-ai/core": "^0.4.
|
|
17
|
+
"@opvs-ai/core": "^0.4.8",
|
|
18
18
|
"commander": "^12.1.0"
|
|
19
19
|
},
|
|
20
20
|
"devDependencies": {
|