@vigilbase/cli 0.1.0 → 0.1.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 +30 -79
- package/dist/bin.js +0 -0
- package/dist/cli.d.ts +2 -2
- package/dist/cli.d.ts.map +1 -1
- package/dist/cli.js +36 -376
- package/dist/cli.js.map +1 -1
- package/dist/commands/account.d.ts +3 -0
- package/dist/commands/account.d.ts.map +1 -0
- package/dist/commands/account.js +171 -0
- package/dist/commands/account.js.map +1 -0
- package/dist/commands/auth.d.ts +5 -0
- package/dist/commands/auth.d.ts.map +1 -0
- package/dist/commands/auth.js +185 -0
- package/dist/commands/auth.js.map +1 -0
- package/dist/commands/billing.d.ts +3 -0
- package/dist/commands/billing.d.ts.map +1 -0
- package/dist/commands/billing.js +47 -0
- package/dist/commands/billing.js.map +1 -0
- package/dist/commands/cloudflare.d.ts +3 -0
- package/dist/commands/cloudflare.d.ts.map +1 -0
- package/dist/commands/cloudflare.js +53 -0
- package/dist/commands/cloudflare.js.map +1 -0
- package/dist/commands/helpers.d.ts +49 -0
- package/dist/commands/helpers.d.ts.map +1 -0
- package/dist/commands/helpers.js +36 -0
- package/dist/commands/helpers.js.map +1 -0
- package/dist/commands/index.d.ts +9 -0
- package/dist/commands/index.d.ts.map +1 -0
- package/dist/commands/index.js +37 -0
- package/dist/commands/index.js.map +1 -0
- package/dist/commands/public-tools.d.ts +9 -0
- package/dist/commands/public-tools.d.ts.map +1 -0
- package/dist/commands/public-tools.js +171 -0
- package/dist/commands/public-tools.js.map +1 -0
- package/dist/commands/runs.d.ts +3 -0
- package/dist/commands/runs.d.ts.map +1 -0
- package/dist/commands/runs.js +69 -0
- package/dist/commands/runs.js.map +1 -0
- package/dist/commands/watchdog.d.ts +3 -0
- package/dist/commands/watchdog.d.ts.map +1 -0
- package/dist/commands/watchdog.js +59 -0
- package/dist/commands/watchdog.js.map +1 -0
- package/dist/index.d.ts +1 -1
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +1 -1
- package/dist/index.js.map +1 -1
- package/dist/lib/config.d.ts.map +1 -1
- package/dist/lib/config.js +2 -1
- package/dist/lib/config.js.map +1 -1
- package/dist/lib/format.d.ts +3 -0
- package/dist/lib/format.d.ts.map +1 -1
- package/dist/lib/format.js +4 -3
- package/dist/lib/format.js.map +1 -1
- package/dist/lib/help.d.ts +1 -1
- package/dist/lib/help.d.ts.map +1 -1
- package/dist/lib/help.js +34 -9
- package/dist/lib/help.js.map +1 -1
- package/dist/lib/one-client.d.ts +42 -3
- package/dist/lib/one-client.d.ts.map +1 -1
- package/dist/lib/one-client.js +121 -28
- package/dist/lib/one-client.js.map +1 -1
- package/dist/version.d.ts +2 -0
- package/dist/version.d.ts.map +1 -0
- package/dist/version.js +6 -0
- package/dist/version.js.map +1 -0
- package/package.json +1 -2
|
@@ -0,0 +1,49 @@
|
|
|
1
|
+
import type { CliConfigLegacy } from '../lib/config.js';
|
|
2
|
+
import type { Writer } from '../lib/format.js';
|
|
3
|
+
import type { CliOutputMode, ExitCode } from '../types.js';
|
|
4
|
+
import type { VigilbaseClient } from '../lib/client.js';
|
|
5
|
+
import type { VigilbaseOneClient } from '../lib/one-client.js';
|
|
6
|
+
import { EXIT } from '../types.js';
|
|
7
|
+
export type ParsedCliValues = {
|
|
8
|
+
isJson?: boolean;
|
|
9
|
+
isHelp?: boolean;
|
|
10
|
+
isVersion?: boolean;
|
|
11
|
+
'base-url'?: string;
|
|
12
|
+
'one-url'?: string;
|
|
13
|
+
'client-id'?: string;
|
|
14
|
+
timeout?: string;
|
|
15
|
+
style?: string;
|
|
16
|
+
isNoSkill?: boolean;
|
|
17
|
+
via?: string;
|
|
18
|
+
isPublic?: boolean;
|
|
19
|
+
token?: string;
|
|
20
|
+
isNoOpen?: boolean;
|
|
21
|
+
email?: string;
|
|
22
|
+
role?: string;
|
|
23
|
+
isConfirm?: boolean;
|
|
24
|
+
'account-id'?: string;
|
|
25
|
+
tool?: string;
|
|
26
|
+
limit?: string;
|
|
27
|
+
'target-id'?: string;
|
|
28
|
+
};
|
|
29
|
+
export type CommandContext = {
|
|
30
|
+
command: string;
|
|
31
|
+
rest: string[];
|
|
32
|
+
values: ParsedCliValues;
|
|
33
|
+
mode: CliOutputMode;
|
|
34
|
+
config: CliConfigLegacy;
|
|
35
|
+
writer: Writer;
|
|
36
|
+
publicClient: VigilbaseClient;
|
|
37
|
+
env: NodeJS.ProcessEnv;
|
|
38
|
+
loginHandler?: (config: CliConfigLegacy) => Promise<ExitCode>;
|
|
39
|
+
};
|
|
40
|
+
export type CommandHandler = (ctx: CommandContext) => Promise<ExitCode>;
|
|
41
|
+
export declare function outputJson(ctx: CommandContext, value: unknown): void;
|
|
42
|
+
export declare function outputLines(ctx: CommandContext, lines: string[]): void;
|
|
43
|
+
export declare function asRecord(value: unknown): Record<string, unknown> | null;
|
|
44
|
+
export declare function asArray(value: unknown): unknown[];
|
|
45
|
+
export declare function requireOneClient(ctx: CommandContext): Promise<VigilbaseOneClient>;
|
|
46
|
+
export declare function withSpinner<T>(ctx: CommandContext, label: string, work: () => Promise<T>): Promise<T>;
|
|
47
|
+
export declare function ok(): ExitCode;
|
|
48
|
+
export { EXIT };
|
|
49
|
+
//# sourceMappingURL=helpers.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"helpers.d.ts","sourceRoot":"","sources":["../../src/commands/helpers.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,kBAAkB,CAAA;AACvD,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,kBAAkB,CAAA;AAC9C,OAAO,KAAK,EAAE,aAAa,EAAE,QAAQ,EAAE,MAAM,aAAa,CAAA;AAC1D,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,kBAAkB,CAAA;AACvD,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,sBAAsB,CAAA;AAG9D,OAAO,EAAE,IAAI,EAAE,MAAM,aAAa,CAAA;AAIlC,MAAM,MAAM,eAAe,GAAG;IAC5B,MAAM,CAAC,EAAE,OAAO,CAAA;IAChB,MAAM,CAAC,EAAE,OAAO,CAAA;IAChB,SAAS,CAAC,EAAE,OAAO,CAAA;IACnB,UAAU,CAAC,EAAE,MAAM,CAAA;IACnB,SAAS,CAAC,EAAE,MAAM,CAAA;IAClB,WAAW,CAAC,EAAE,MAAM,CAAA;IACpB,OAAO,CAAC,EAAE,MAAM,CAAA;IAChB,KAAK,CAAC,EAAE,MAAM,CAAA;IACd,SAAS,CAAC,EAAE,OAAO,CAAA;IACnB,GAAG,CAAC,EAAE,MAAM,CAAA;IACZ,QAAQ,CAAC,EAAE,OAAO,CAAA;IAClB,KAAK,CAAC,EAAE,MAAM,CAAA;IACd,QAAQ,CAAC,EAAE,OAAO,CAAA;IAClB,KAAK,CAAC,EAAE,MAAM,CAAA;IACd,IAAI,CAAC,EAAE,MAAM,CAAA;IACb,SAAS,CAAC,EAAE,OAAO,CAAA;IACnB,YAAY,CAAC,EAAE,MAAM,CAAA;IACrB,IAAI,CAAC,EAAE,MAAM,CAAA;IACb,KAAK,CAAC,EAAE,MAAM,CAAA;IACd,WAAW,CAAC,EAAE,MAAM,CAAA;CACrB,CAAA;AAED,MAAM,MAAM,cAAc,GAAG;IAC3B,OAAO,EAAE,MAAM,CAAA;IACf,IAAI,EAAE,MAAM,EAAE,CAAA;IACd,MAAM,EAAE,eAAe,CAAA;IACvB,IAAI,EAAE,aAAa,CAAA;IACnB,MAAM,EAAE,eAAe,CAAA;IACvB,MAAM,EAAE,MAAM,CAAA;IACd,YAAY,EAAE,eAAe,CAAA;IAC7B,GAAG,EAAE,MAAM,CAAC,UAAU,CAAA;IACtB,YAAY,CAAC,EAAE,CAAC,MAAM,EAAE,eAAe,KAAK,OAAO,CAAC,QAAQ,CAAC,CAAA;CAC9D,CAAA;AAED,MAAM,MAAM,cAAc,GAAG,CAAC,GAAG,EAAE,cAAc,KAAK,OAAO,CAAC,QAAQ,CAAC,CAAA;AAEvE,wBAAgB,UAAU,CAAC,GAAG,EAAE,cAAc,EAAE,KAAK,EAAE,OAAO,GAAG,IAAI,CAEpE;AAED,wBAAgB,WAAW,CAAC,GAAG,EAAE,cAAc,EAAE,KAAK,EAAE,MAAM,EAAE,GAAG,IAAI,CAItE;AAED,wBAAgB,QAAQ,CAAC,KAAK,EAAE,OAAO,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,IAAI,CAGvE;AAED,wBAAgB,OAAO,CAAC,KAAK,EAAE,OAAO,GAAG,OAAO,EAAE,CAEjD;AAED,wBAAsB,gBAAgB,CACpC,GAAG,EAAE,cAAc,GAClB,OAAO,CAAC,kBAAkB,CAAC,CAQ7B;AAED,wBAAsB,WAAW,CAAC,CAAC,EACjC,GAAG,EAAE,cAAc,EACnB,KAAK,EAAE,MAAM,EACb,IAAI,EAAE,MAAM,OAAO,CAAC,CAAC,CAAC,GACrB,OAAO,CAAC,CAAC,CAAC,CAEZ;AAED,wBAAgB,EAAE,IAAI,QAAQ,CAE7B;AAED,OAAO,EAAE,IAAI,EAAE,CAAA"}
|
|
@@ -0,0 +1,36 @@
|
|
|
1
|
+
import { printJson as writeJson } from '../lib/format.js';
|
|
2
|
+
import { withProgress } from '../lib/progress.js';
|
|
3
|
+
import { EXIT } from '../types.js';
|
|
4
|
+
import { getOneAccessToken } from '../auth/index.js';
|
|
5
|
+
import { VigilbaseOneClient as OneClient } from '../lib/one-client.js';
|
|
6
|
+
export function outputJson(ctx, value) {
|
|
7
|
+
writeJson(ctx.writer, value);
|
|
8
|
+
}
|
|
9
|
+
export function outputLines(ctx, lines) {
|
|
10
|
+
for (const line of lines) {
|
|
11
|
+
ctx.writer.stdout(line);
|
|
12
|
+
}
|
|
13
|
+
}
|
|
14
|
+
export function asRecord(value) {
|
|
15
|
+
if (!value || typeof value !== 'object' || Array.isArray(value))
|
|
16
|
+
return null;
|
|
17
|
+
return value;
|
|
18
|
+
}
|
|
19
|
+
export function asArray(value) {
|
|
20
|
+
return Array.isArray(value) ? value : [];
|
|
21
|
+
}
|
|
22
|
+
export async function requireOneClient(ctx) {
|
|
23
|
+
const accessToken = await getOneAccessToken(ctx.config);
|
|
24
|
+
if (!accessToken) {
|
|
25
|
+
throw new Error('This command requires Vigilbase One auth. Run `vigilbase login` first.');
|
|
26
|
+
}
|
|
27
|
+
return new OneClient(ctx.config, accessToken);
|
|
28
|
+
}
|
|
29
|
+
export async function withSpinner(ctx, label, work) {
|
|
30
|
+
return withProgress(label, ctx.mode, work);
|
|
31
|
+
}
|
|
32
|
+
export function ok() {
|
|
33
|
+
return EXIT.OK;
|
|
34
|
+
}
|
|
35
|
+
export { EXIT };
|
|
36
|
+
//# sourceMappingURL=helpers.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"helpers.js","sourceRoot":"","sources":["../../src/commands/helpers.ts"],"names":[],"mappings":"AAKA,OAAO,EAAE,SAAS,IAAI,SAAS,EAAE,MAAM,kBAAkB,CAAA;AACzD,OAAO,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAA;AACjD,OAAO,EAAE,IAAI,EAAE,MAAM,aAAa,CAAA;AAClC,OAAO,EAAE,iBAAiB,EAAE,MAAM,kBAAkB,CAAA;AACpD,OAAO,EAAE,kBAAkB,IAAI,SAAS,EAAE,MAAM,sBAAsB,CAAA;AAuCtE,MAAM,UAAU,UAAU,CAAC,GAAmB,EAAE,KAAc;IAC5D,SAAS,CAAC,GAAG,CAAC,MAAM,EAAE,KAAK,CAAC,CAAA;AAC9B,CAAC;AAED,MAAM,UAAU,WAAW,CAAC,GAAmB,EAAE,KAAe;IAC9D,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE,CAAC;QACzB,GAAG,CAAC,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,CAAA;IACzB,CAAC;AACH,CAAC;AAED,MAAM,UAAU,QAAQ,CAAC,KAAc;IACrC,IAAI,CAAC,KAAK,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC;QAAE,OAAO,IAAI,CAAA;IAC5E,OAAO,KAAgC,CAAA;AACzC,CAAC;AAED,MAAM,UAAU,OAAO,CAAC,KAAc;IACpC,OAAO,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,CAAA;AAC1C,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,gBAAgB,CACpC,GAAmB;IAEnB,MAAM,WAAW,GAAG,MAAM,iBAAiB,CAAC,GAAG,CAAC,MAAM,CAAC,CAAA;IACvD,IAAI,CAAC,WAAW,EAAE,CAAC;QACjB,MAAM,IAAI,KAAK,CACb,wEAAwE,CACzE,CAAA;IACH,CAAC;IACD,OAAO,IAAI,SAAS,CAAC,GAAG,CAAC,MAAM,EAAE,WAAW,CAAC,CAAA;AAC/C,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,WAAW,CAC/B,GAAmB,EACnB,KAAa,EACb,IAAsB;IAEtB,OAAO,YAAY,CAAC,KAAK,EAAE,GAAG,CAAC,IAAI,EAAE,IAAI,CAAC,CAAA;AAC5C,CAAC;AAED,MAAM,UAAU,EAAE;IAChB,OAAO,IAAI,CAAC,EAAE,CAAA;AAChB,CAAC;AAED,OAAO,EAAE,IAAI,EAAE,CAAA"}
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
import type { CommandHandler } from './helpers.js';
|
|
2
|
+
/**
|
|
3
|
+
* Modular command registry.
|
|
4
|
+
* Public tool commands never require auth. Auth-gated commands live under
|
|
5
|
+
* account / runs / cf / watchdog / billing / login.
|
|
6
|
+
*/
|
|
7
|
+
export declare const COMMAND_HANDLERS: Record<string, CommandHandler>;
|
|
8
|
+
export declare function getCommandHandler(command: string): CommandHandler | null;
|
|
9
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/commands/index.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,cAAc,CAAA;AAgBlD;;;;GAIG;AACH,eAAO,MAAM,gBAAgB,EAAE,MAAM,CAAC,MAAM,EAAE,cAAc,CAoB3D,CAAA;AAED,wBAAgB,iBAAiB,CAAC,OAAO,EAAE,MAAM,GAAG,cAAc,GAAG,IAAI,CAExE"}
|
|
@@ -0,0 +1,37 @@
|
|
|
1
|
+
import { handleLogin, handleLogout, handleWhoami } from './auth.js';
|
|
2
|
+
import { handleAccount } from './account.js';
|
|
3
|
+
import { handleBilling } from './billing.js';
|
|
4
|
+
import { handleCloudflare } from './cloudflare.js';
|
|
5
|
+
import { handleBadge, handleDescribe, handleDoctor, handleList, handleRun, handleSkill, } from './public-tools.js';
|
|
6
|
+
import { handleRuns } from './runs.js';
|
|
7
|
+
import { handleWatchdog } from './watchdog.js';
|
|
8
|
+
/**
|
|
9
|
+
* Modular command registry.
|
|
10
|
+
* Public tool commands never require auth. Auth-gated commands live under
|
|
11
|
+
* account / runs / cf / watchdog / billing / login.
|
|
12
|
+
*/
|
|
13
|
+
export const COMMAND_HANDLERS = {
|
|
14
|
+
list: handleList,
|
|
15
|
+
tools: handleList,
|
|
16
|
+
run: handleRun,
|
|
17
|
+
headers: handleRun,
|
|
18
|
+
email: handleRun,
|
|
19
|
+
describe: handleDescribe,
|
|
20
|
+
skill: handleSkill,
|
|
21
|
+
badge: handleBadge,
|
|
22
|
+
doctor: handleDoctor,
|
|
23
|
+
login: handleLogin,
|
|
24
|
+
logout: handleLogout,
|
|
25
|
+
whoami: handleWhoami,
|
|
26
|
+
account: handleAccount,
|
|
27
|
+
runs: handleRuns,
|
|
28
|
+
runhistory: handleRuns,
|
|
29
|
+
cf: handleCloudflare,
|
|
30
|
+
cloudflare: handleCloudflare,
|
|
31
|
+
watchdog: handleWatchdog,
|
|
32
|
+
billing: handleBilling,
|
|
33
|
+
};
|
|
34
|
+
export function getCommandHandler(command) {
|
|
35
|
+
return COMMAND_HANDLERS[command] ?? null;
|
|
36
|
+
}
|
|
37
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/commands/index.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,WAAW,EAAE,YAAY,EAAE,YAAY,EAAE,MAAM,WAAW,CAAA;AACnE,OAAO,EAAE,aAAa,EAAE,MAAM,cAAc,CAAA;AAC5C,OAAO,EAAE,aAAa,EAAE,MAAM,cAAc,CAAA;AAC5C,OAAO,EAAE,gBAAgB,EAAE,MAAM,iBAAiB,CAAA;AAClD,OAAO,EACL,WAAW,EACX,cAAc,EACd,YAAY,EACZ,UAAU,EACV,SAAS,EACT,WAAW,GACZ,MAAM,mBAAmB,CAAA;AAC1B,OAAO,EAAE,UAAU,EAAE,MAAM,WAAW,CAAA;AACtC,OAAO,EAAE,cAAc,EAAE,MAAM,eAAe,CAAA;AAE9C;;;;GAIG;AACH,MAAM,CAAC,MAAM,gBAAgB,GAAmC;IAC9D,IAAI,EAAE,UAAU;IAChB,KAAK,EAAE,UAAU;IACjB,GAAG,EAAE,SAAS;IACd,OAAO,EAAE,SAAS;IAClB,KAAK,EAAE,SAAS;IAChB,QAAQ,EAAE,cAAc;IACxB,KAAK,EAAE,WAAW;IAClB,KAAK,EAAE,WAAW;IAClB,MAAM,EAAE,YAAY;IACpB,KAAK,EAAE,WAAW;IAClB,MAAM,EAAE,YAAY;IACpB,MAAM,EAAE,YAAY;IACpB,OAAO,EAAE,aAAa;IACtB,IAAI,EAAE,UAAU;IAChB,UAAU,EAAE,UAAU;IACtB,EAAE,EAAE,gBAAgB;IACpB,UAAU,EAAE,gBAAgB;IAC5B,QAAQ,EAAE,cAAc;IACxB,OAAO,EAAE,aAAa;CACvB,CAAA;AAED,MAAM,UAAU,iBAAiB,CAAC,OAAe;IAC/C,OAAO,gBAAgB,CAAC,OAAO,CAAC,IAAI,IAAI,CAAA;AAC1C,CAAC"}
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
import { type CommandHandler } from './helpers.js';
|
|
2
|
+
/** Public tools work without login. Auth-required tools need Vigilbase One. */
|
|
3
|
+
export declare const handleList: CommandHandler;
|
|
4
|
+
export declare const handleRun: CommandHandler;
|
|
5
|
+
export declare const handleDescribe: CommandHandler;
|
|
6
|
+
export declare const handleSkill: CommandHandler;
|
|
7
|
+
export declare const handleBadge: CommandHandler;
|
|
8
|
+
export declare const handleDoctor: CommandHandler;
|
|
9
|
+
//# sourceMappingURL=public-tools.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"public-tools.d.ts","sourceRoot":"","sources":["../../src/commands/public-tools.ts"],"names":[],"mappings":"AAaA,OAAO,EACL,KAAK,cAAc,EAKpB,MAAM,cAAc,CAAA;AAErB,+EAA+E;AAC/E,eAAO,MAAM,UAAU,EAAE,cA4BxB,CAAA;AAED,eAAO,MAAM,SAAS,EAAE,cA4EvB,CAAA;AAED,eAAO,MAAM,cAAc,EAAE,cA4B5B,CAAA;AAED,eAAO,MAAM,WAAW,EAAE,cA6BzB,CAAA;AAED,eAAO,MAAM,WAAW,EAAE,cAczB,CAAA;AAED,eAAO,MAAM,YAAY,EAAE,cA4B1B,CAAA"}
|
|
@@ -0,0 +1,171 @@
|
|
|
1
|
+
import { getOneAccessToken } from '../auth/index.js';
|
|
2
|
+
import { formatExecuteResult, formatToolDescription, formatToolsList, } from '../lib/format.js';
|
|
3
|
+
import { isOneAuthRequiredTool, isOneExecutableTool, ONE_AUTH_REQUIRED_TOOLS, resolveToolDefinition, VigilbaseOneClient, } from '../lib/one-client.js';
|
|
4
|
+
import { EXIT, ok, outputJson, withSpinner, } from './helpers.js';
|
|
5
|
+
/** Public tools work without login. Auth-required tools need Vigilbase One. */
|
|
6
|
+
export const handleList = async (ctx) => {
|
|
7
|
+
const catalog = await withSpinner(ctx, 'Loading tool catalog', () => ctx.publicClient.listTools());
|
|
8
|
+
const accessToken = await getOneAccessToken(ctx.config);
|
|
9
|
+
const authenticated = Boolean(accessToken);
|
|
10
|
+
if (ctx.mode === 'json') {
|
|
11
|
+
outputJson(ctx, {
|
|
12
|
+
...catalog,
|
|
13
|
+
authenticated,
|
|
14
|
+
authRequiredTools: [...ONE_AUTH_REQUIRED_TOOLS],
|
|
15
|
+
oneExecutableTools: authenticated
|
|
16
|
+
? [
|
|
17
|
+
...new Set([
|
|
18
|
+
...catalog.tools.map((tool) => tool.toolName),
|
|
19
|
+
...ONE_AUTH_REQUIRED_TOOLS,
|
|
20
|
+
]),
|
|
21
|
+
]
|
|
22
|
+
: catalog.tools.map((tool) => tool.toolName),
|
|
23
|
+
});
|
|
24
|
+
}
|
|
25
|
+
else {
|
|
26
|
+
formatToolsList(catalog, ctx.mode, ctx.writer, {
|
|
27
|
+
authRequiredTools: ONE_AUTH_REQUIRED_TOOLS,
|
|
28
|
+
isAuthenticated: authenticated,
|
|
29
|
+
});
|
|
30
|
+
}
|
|
31
|
+
return ok();
|
|
32
|
+
};
|
|
33
|
+
export const handleRun = async (ctx) => {
|
|
34
|
+
let toolName;
|
|
35
|
+
let target;
|
|
36
|
+
if (ctx.command === 'headers') {
|
|
37
|
+
toolName = 'security-headers';
|
|
38
|
+
target = ctx.rest[0] ?? '';
|
|
39
|
+
}
|
|
40
|
+
else if (ctx.command === 'email') {
|
|
41
|
+
toolName = 'email-security';
|
|
42
|
+
target = ctx.rest[0] ?? '';
|
|
43
|
+
}
|
|
44
|
+
else {
|
|
45
|
+
toolName = ctx.rest[0] ?? '';
|
|
46
|
+
target = ctx.rest[1] ?? '';
|
|
47
|
+
}
|
|
48
|
+
if (!toolName || !target) {
|
|
49
|
+
throw new Error(ctx.command === 'run'
|
|
50
|
+
? 'Usage: vigilbase run <tool> <target>'
|
|
51
|
+
: `Usage: vigilbase ${ctx.command} <target>`);
|
|
52
|
+
}
|
|
53
|
+
const via = ctx.values.via;
|
|
54
|
+
if (via && via !== 'one' && via !== 'public') {
|
|
55
|
+
throw new Error('--via must be one of: public, one');
|
|
56
|
+
}
|
|
57
|
+
const accessToken = await getOneAccessToken(ctx.config);
|
|
58
|
+
const forcePublic = Boolean(ctx.values.isPublic) || via === 'public';
|
|
59
|
+
const forceOne = via === 'one';
|
|
60
|
+
// Public tools stay free unless forced onto One. Auth-required tools need login.
|
|
61
|
+
const useOne = !forcePublic && (forceOne || isOneAuthRequiredTool(toolName));
|
|
62
|
+
if (useOne) {
|
|
63
|
+
if (!accessToken) {
|
|
64
|
+
throw new Error(`Tool "${toolName}" requires Vigilbase One auth. Run \`vigilbase login\` first.`);
|
|
65
|
+
}
|
|
66
|
+
if (!isOneExecutableTool(toolName)) {
|
|
67
|
+
throw new Error(`Tool "${toolName}" is not executable via Vigilbase One CLI yet.`);
|
|
68
|
+
}
|
|
69
|
+
const oneClient = new VigilbaseOneClient(ctx.config, accessToken);
|
|
70
|
+
const oneResult = await withSpinner(ctx, `Running ${toolName} against ${target}`, () => oneClient.executeTool(toolName, target));
|
|
71
|
+
formatExecuteResult({
|
|
72
|
+
success: Boolean(oneResult.success),
|
|
73
|
+
toolName,
|
|
74
|
+
target,
|
|
75
|
+
grade: oneResult.data?.grade ?? null,
|
|
76
|
+
gradeScore: oneResult.data?.gradeScore ?? null,
|
|
77
|
+
result: oneResult.data?.result ?? null,
|
|
78
|
+
error: oneResult.error ?? null,
|
|
79
|
+
uiUrl: `${ctx.config.oneBaseUrl}/dashboard/tools/${toolName}`,
|
|
80
|
+
}, ctx.mode, ctx.writer);
|
|
81
|
+
return oneResult.success ? ok() : EXIT.ERROR;
|
|
82
|
+
}
|
|
83
|
+
const result = await withSpinner(ctx, `Running ${toolName} against ${target}`, () => ctx.publicClient.executeTool(toolName, target));
|
|
84
|
+
formatExecuteResult(result, ctx.mode, ctx.writer);
|
|
85
|
+
return result.success ? ok() : EXIT.ERROR;
|
|
86
|
+
};
|
|
87
|
+
export const handleDescribe = async (ctx) => {
|
|
88
|
+
const toolName = ctx.rest[0];
|
|
89
|
+
if (!toolName)
|
|
90
|
+
throw new Error('Usage: vigilbase describe <tool>');
|
|
91
|
+
const catalog = await withSpinner(ctx, 'Loading tool catalog', () => ctx.publicClient.listTools());
|
|
92
|
+
const tool = resolveToolDefinition(toolName, catalog.tools, ctx.config.oneBaseUrl);
|
|
93
|
+
if (!tool) {
|
|
94
|
+
throw new Error(`Unknown tool "${toolName}". Run \`vigilbase list\` for the allowlist.`);
|
|
95
|
+
}
|
|
96
|
+
let skillMarkdown;
|
|
97
|
+
if (!ctx.values.isNoSkill) {
|
|
98
|
+
try {
|
|
99
|
+
skillMarkdown = await withSpinner(ctx, 'Fetching skill docs', () => ctx.publicClient.fetchSkillMarkdown(tool.skillUrl));
|
|
100
|
+
}
|
|
101
|
+
catch {
|
|
102
|
+
// Auth-required tools may not publish public skill docs yet.
|
|
103
|
+
}
|
|
104
|
+
}
|
|
105
|
+
formatToolDescription(tool, ctx.mode, ctx.writer, skillMarkdown);
|
|
106
|
+
return ok();
|
|
107
|
+
};
|
|
108
|
+
export const handleSkill = async (ctx) => {
|
|
109
|
+
const toolName = ctx.rest[0];
|
|
110
|
+
if (!toolName)
|
|
111
|
+
throw new Error('Usage: vigilbase skill <tool>');
|
|
112
|
+
const catalog = await withSpinner(ctx, 'Loading tool catalog', () => ctx.publicClient.listTools());
|
|
113
|
+
const definition = resolveToolDefinition(toolName, catalog.tools, ctx.config.oneBaseUrl);
|
|
114
|
+
if (!definition) {
|
|
115
|
+
throw new Error(`Unknown tool "${toolName}". Run \`vigilbase list\` for the allowlist.`);
|
|
116
|
+
}
|
|
117
|
+
const skillMarkdown = await withSpinner(ctx, 'Fetching skill docs', () => ctx.publicClient.fetchSkillMarkdown(definition.skillUrl));
|
|
118
|
+
if (ctx.mode === 'json') {
|
|
119
|
+
outputJson(ctx, {
|
|
120
|
+
toolName: definition.toolName,
|
|
121
|
+
skillUrl: definition.skillUrl,
|
|
122
|
+
content: skillMarkdown,
|
|
123
|
+
});
|
|
124
|
+
}
|
|
125
|
+
else {
|
|
126
|
+
ctx.writer.stdout(skillMarkdown.trimEnd());
|
|
127
|
+
}
|
|
128
|
+
return ok();
|
|
129
|
+
};
|
|
130
|
+
export const handleBadge = async (ctx) => {
|
|
131
|
+
const domain = ctx.rest[0];
|
|
132
|
+
if (!domain)
|
|
133
|
+
throw new Error('Usage: vigilbase badge <domain>');
|
|
134
|
+
const styleRaw = ctx.values.style ?? 'default';
|
|
135
|
+
if (styleRaw !== 'default' && styleRaw !== 'compact' && styleRaw !== 'mini') {
|
|
136
|
+
throw new Error('--style must be one of: default, compact, mini');
|
|
137
|
+
}
|
|
138
|
+
const url = ctx.publicClient.badgeUrl(domain, styleRaw);
|
|
139
|
+
if (ctx.mode === 'json') {
|
|
140
|
+
outputJson(ctx, { domain, style: styleRaw, url });
|
|
141
|
+
}
|
|
142
|
+
else {
|
|
143
|
+
ctx.writer.stdout(url);
|
|
144
|
+
}
|
|
145
|
+
return ok();
|
|
146
|
+
};
|
|
147
|
+
export const handleDoctor = async (ctx) => {
|
|
148
|
+
const catalog = await withSpinner(ctx, 'Checking public API', () => ctx.publicClient.listTools());
|
|
149
|
+
const accessToken = await getOneAccessToken(ctx.config);
|
|
150
|
+
const payload = {
|
|
151
|
+
ok: true,
|
|
152
|
+
publicBaseUrl: ctx.config.publicBaseUrl,
|
|
153
|
+
oneBaseUrl: ctx.config.oneBaseUrl,
|
|
154
|
+
clientId: ctx.config.clientId,
|
|
155
|
+
authenticated: Boolean(accessToken),
|
|
156
|
+
toolCount: catalog.tools.length,
|
|
157
|
+
tools: catalog.tools.map((tool) => tool.toolName),
|
|
158
|
+
authRequiredTools: [...ONE_AUTH_REQUIRED_TOOLS],
|
|
159
|
+
openapi: catalog.openapi ?? null,
|
|
160
|
+
skillsIndex: catalog.skillsIndex ?? null,
|
|
161
|
+
rateLimit: catalog.rateLimit ?? null,
|
|
162
|
+
};
|
|
163
|
+
if (ctx.mode === 'json') {
|
|
164
|
+
outputJson(ctx, payload);
|
|
165
|
+
}
|
|
166
|
+
else {
|
|
167
|
+
ctx.writer.stdout(`ok public=${ctx.config.publicBaseUrl} one=${ctx.config.oneBaseUrl} auth=${payload.authenticated ? 'in' : 'out'} tools=${payload.tools.join(',')}`);
|
|
168
|
+
}
|
|
169
|
+
return ok();
|
|
170
|
+
};
|
|
171
|
+
//# sourceMappingURL=public-tools.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"public-tools.js","sourceRoot":"","sources":["../../src/commands/public-tools.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"runs.d.ts","sourceRoot":"","sources":["../../src/commands/runs.ts"],"names":[],"mappings":"AAAA,OAAO,EAGL,KAAK,cAAc,EAKpB,MAAM,cAAc,CAAA;AAWrB,eAAO,MAAM,UAAU,EAAE,cAoExB,CAAA"}
|
|
@@ -0,0 +1,69 @@
|
|
|
1
|
+
import { asArray, asRecord, ok, outputJson, requireOneClient, withSpinner, } from './helpers.js';
|
|
2
|
+
function parseLimit(raw, fallback = 50) {
|
|
3
|
+
if (!raw)
|
|
4
|
+
return fallback;
|
|
5
|
+
const value = Number.parseInt(raw, 10);
|
|
6
|
+
if (!Number.isFinite(value) || value <= 0) {
|
|
7
|
+
throw new Error(`Invalid --limit value: ${raw}`);
|
|
8
|
+
}
|
|
9
|
+
return value;
|
|
10
|
+
}
|
|
11
|
+
export const handleRuns = async (ctx) => {
|
|
12
|
+
const one = await requireOneClient(ctx);
|
|
13
|
+
const subcommand = (ctx.rest[0] ?? 'list').toLowerCase();
|
|
14
|
+
if (subcommand === 'list' || subcommand === 'ls') {
|
|
15
|
+
const payload = await withSpinner(ctx, 'Loading tool runs', () => one.listToolRuns({
|
|
16
|
+
toolName: ctx.values.tool,
|
|
17
|
+
limit: parseLimit(ctx.values.limit, 50),
|
|
18
|
+
}));
|
|
19
|
+
if (ctx.mode === 'json') {
|
|
20
|
+
outputJson(ctx, payload);
|
|
21
|
+
return ok();
|
|
22
|
+
}
|
|
23
|
+
const runs = asArray(payload.data);
|
|
24
|
+
if (!runs.length) {
|
|
25
|
+
ctx.writer.stdout('No tool runs.');
|
|
26
|
+
return ok();
|
|
27
|
+
}
|
|
28
|
+
for (const raw of runs) {
|
|
29
|
+
const run = asRecord(raw);
|
|
30
|
+
if (!run)
|
|
31
|
+
continue;
|
|
32
|
+
ctx.writer.stdout(`${String(run.id).slice(0, 8)} ${String(run.tool_name).padEnd(18)} ${String(run.status).padEnd(10)} ${String(run.grade ?? '-')} ${String(run.target)}`);
|
|
33
|
+
}
|
|
34
|
+
return ok();
|
|
35
|
+
}
|
|
36
|
+
if (subcommand === 'get' || subcommand === 'show') {
|
|
37
|
+
const id = ctx.rest[1];
|
|
38
|
+
if (!id)
|
|
39
|
+
throw new Error('Usage: vigilbase runs get <id>');
|
|
40
|
+
const payload = await withSpinner(ctx, `Loading run ${id}`, () => one.getToolRun(id));
|
|
41
|
+
if (ctx.mode === 'json') {
|
|
42
|
+
outputJson(ctx, payload);
|
|
43
|
+
return ok();
|
|
44
|
+
}
|
|
45
|
+
const run = asRecord(payload.data) || payload;
|
|
46
|
+
ctx.writer.stdout(`id ${String(run.id)}`);
|
|
47
|
+
ctx.writer.stdout(`tool ${String(run.tool_name)}`);
|
|
48
|
+
ctx.writer.stdout(`target ${String(run.target)}`);
|
|
49
|
+
ctx.writer.stdout(`status ${String(run.status)}`);
|
|
50
|
+
if (run.grade)
|
|
51
|
+
ctx.writer.stdout(`grade ${String(run.grade)}`);
|
|
52
|
+
return ok();
|
|
53
|
+
}
|
|
54
|
+
// Allow `vigilbase runs <uuid>` as shortcut for get
|
|
55
|
+
if (/^[0-9a-f-]{36}$/i.test(subcommand)) {
|
|
56
|
+
const payload = await withSpinner(ctx, `Loading run ${subcommand}`, () => one.getToolRun(subcommand));
|
|
57
|
+
if (ctx.mode === 'json') {
|
|
58
|
+
outputJson(ctx, payload);
|
|
59
|
+
return ok();
|
|
60
|
+
}
|
|
61
|
+
const run = asRecord(payload.data) || payload;
|
|
62
|
+
ctx.writer.stdout(`id ${String(run.id)}`);
|
|
63
|
+
ctx.writer.stdout(`tool ${String(run.tool_name)}`);
|
|
64
|
+
ctx.writer.stdout(`status ${String(run.status)}`);
|
|
65
|
+
return ok();
|
|
66
|
+
}
|
|
67
|
+
throw new Error('Usage: vigilbase runs [list|get <id>] [--tool …] [--limit …] [--json]');
|
|
68
|
+
};
|
|
69
|
+
//# sourceMappingURL=runs.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"runs.js","sourceRoot":"","sources":["../../src/commands/runs.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,OAAO,EACP,QAAQ,EAER,EAAE,EACF,UAAU,EACV,gBAAgB,EAChB,WAAW,GACZ,MAAM,cAAc,CAAA;AAErB,SAAS,UAAU,CAAC,GAAuB,EAAE,QAAQ,GAAG,EAAE;IACxD,IAAI,CAAC,GAAG;QAAE,OAAO,QAAQ,CAAA;IACzB,MAAM,KAAK,GAAG,MAAM,CAAC,QAAQ,CAAC,GAAG,EAAE,EAAE,CAAC,CAAA;IACtC,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,KAAK,CAAC,IAAI,KAAK,IAAI,CAAC,EAAE,CAAC;QAC1C,MAAM,IAAI,KAAK,CAAC,0BAA0B,GAAG,EAAE,CAAC,CAAA;IAClD,CAAC;IACD,OAAO,KAAK,CAAA;AACd,CAAC;AAED,MAAM,CAAC,MAAM,UAAU,GAAmB,KAAK,EAAE,GAAG,EAAE,EAAE;IACtD,MAAM,GAAG,GAAG,MAAM,gBAAgB,CAAC,GAAG,CAAC,CAAA;IACvC,MAAM,UAAU,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,MAAM,CAAC,CAAC,WAAW,EAAE,CAAA;IAExD,IAAI,UAAU,KAAK,MAAM,IAAI,UAAU,KAAK,IAAI,EAAE,CAAC;QACjD,MAAM,OAAO,GAAG,MAAM,WAAW,CAAC,GAAG,EAAE,mBAAmB,EAAE,GAAG,EAAE,CAC/D,GAAG,CAAC,YAAY,CAAC;YACf,QAAQ,EAAE,GAAG,CAAC,MAAM,CAAC,IAAI;YACzB,KAAK,EAAE,UAAU,CAAC,GAAG,CAAC,MAAM,CAAC,KAAK,EAAE,EAAE,CAAC;SACxC,CAAC,CACH,CAAA;QACD,IAAI,GAAG,CAAC,IAAI,KAAK,MAAM,EAAE,CAAC;YACxB,UAAU,CAAC,GAAG,EAAE,OAAO,CAAC,CAAA;YACxB,OAAO,EAAE,EAAE,CAAA;QACb,CAAC;QACD,MAAM,IAAI,GAAG,OAAO,CAAC,OAAO,CAAC,IAAI,CAAC,CAAA;QAClC,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE,CAAC;YACjB,GAAG,CAAC,MAAM,CAAC,MAAM,CAAC,eAAe,CAAC,CAAA;YAClC,OAAO,EAAE,EAAE,CAAA;QACb,CAAC;QACD,KAAK,MAAM,GAAG,IAAI,IAAI,EAAE,CAAC;YACvB,MAAM,GAAG,GAAG,QAAQ,CAAC,GAAG,CAAC,CAAA;YACzB,IAAI,CAAC,GAAG;gBAAE,SAAQ;YAClB,GAAG,CAAC,MAAM,CAAC,MAAM,CACf,GAAG,MAAM,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,KAAK,MAAM,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC,MAAM,CAAC,EAAE,CAAC,IAAI,MAAM,CAC1E,GAAG,CAAC,MAAM,CACX,CAAC,MAAM,CAAC,EAAE,CAAC,IAAI,MAAM,CAAC,GAAG,CAAC,KAAK,IAAI,GAAG,CAAC,KAAK,MAAM,CAAC,GAAG,CAAC,MAAM,CAAC,EAAE,CAClE,CAAA;QACH,CAAC;QACD,OAAO,EAAE,EAAE,CAAA;IACb,CAAC;IAED,IAAI,UAAU,KAAK,KAAK,IAAI,UAAU,KAAK,MAAM,EAAE,CAAC;QAClD,MAAM,EAAE,GAAG,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,CAAA;QACtB,IAAI,CAAC,EAAE;YAAE,MAAM,IAAI,KAAK,CAAC,gCAAgC,CAAC,CAAA;QAC1D,MAAM,OAAO,GAAG,MAAM,WAAW,CAAC,GAAG,EAAE,eAAe,EAAE,EAAE,EAAE,GAAG,EAAE,CAC/D,GAAG,CAAC,UAAU,CAAC,EAAE,CAAC,CACnB,CAAA;QACD,IAAI,GAAG,CAAC,IAAI,KAAK,MAAM,EAAE,CAAC;YACxB,UAAU,CAAC,GAAG,EAAE,OAAO,CAAC,CAAA;YACxB,OAAO,EAAE,EAAE,CAAA;QACb,CAAC;QACD,MAAM,GAAG,GAAG,QAAQ,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,OAAO,CAAA;QAC7C,GAAG,CAAC,MAAM,CAAC,MAAM,CAAC,aAAa,MAAM,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,CAAC,CAAA;QAChD,GAAG,CAAC,MAAM,CAAC,MAAM,CAAC,aAAa,MAAM,CAAC,GAAG,CAAC,SAAS,CAAC,EAAE,CAAC,CAAA;QACvD,GAAG,CAAC,MAAM,CAAC,MAAM,CAAC,aAAa,MAAM,CAAC,GAAG,CAAC,MAAM,CAAC,EAAE,CAAC,CAAA;QACpD,GAAG,CAAC,MAAM,CAAC,MAAM,CAAC,aAAa,MAAM,CAAC,GAAG,CAAC,MAAM,CAAC,EAAE,CAAC,CAAA;QACpD,IAAI,GAAG,CAAC,KAAK;YAAE,GAAG,CAAC,MAAM,CAAC,MAAM,CAAC,aAAa,MAAM,CAAC,GAAG,CAAC,KAAK,CAAC,EAAE,CAAC,CAAA;QAClE,OAAO,EAAE,EAAE,CAAA;IACb,CAAC;IAED,oDAAoD;IACpD,IAAI,kBAAkB,CAAC,IAAI,CAAC,UAAU,CAAC,EAAE,CAAC;QACxC,MAAM,OAAO,GAAG,MAAM,WAAW,CAAC,GAAG,EAAE,eAAe,UAAU,EAAE,EAAE,GAAG,EAAE,CACvE,GAAG,CAAC,UAAU,CAAC,UAAU,CAAC,CAC3B,CAAA;QACD,IAAI,GAAG,CAAC,IAAI,KAAK,MAAM,EAAE,CAAC;YACxB,UAAU,CAAC,GAAG,EAAE,OAAO,CAAC,CAAA;YACxB,OAAO,EAAE,EAAE,CAAA;QACb,CAAC;QACD,MAAM,GAAG,GAAG,QAAQ,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,OAAO,CAAA;QAC7C,GAAG,CAAC,MAAM,CAAC,MAAM,CAAC,aAAa,MAAM,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,CAAC,CAAA;QAChD,GAAG,CAAC,MAAM,CAAC,MAAM,CAAC,aAAa,MAAM,CAAC,GAAG,CAAC,SAAS,CAAC,EAAE,CAAC,CAAA;QACvD,GAAG,CAAC,MAAM,CAAC,MAAM,CAAC,aAAa,MAAM,CAAC,GAAG,CAAC,MAAM,CAAC,EAAE,CAAC,CAAA;QACpD,OAAO,EAAE,EAAE,CAAA;IACb,CAAC;IAED,MAAM,IAAI,KAAK,CAAC,uEAAuE,CAAC,CAAA;AAC1F,CAAC,CAAA"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"watchdog.d.ts","sourceRoot":"","sources":["../../src/commands/watchdog.ts"],"names":[],"mappings":"AAAA,OAAO,EAGL,KAAK,cAAc,EAKpB,MAAM,cAAc,CAAA;AAWrB,eAAO,MAAM,cAAc,EAAE,cA8D5B,CAAA"}
|
|
@@ -0,0 +1,59 @@
|
|
|
1
|
+
import { asArray, asRecord, ok, outputJson, requireOneClient, withSpinner, } from './helpers.js';
|
|
2
|
+
function parseLimit(raw, fallback = 20) {
|
|
3
|
+
if (!raw)
|
|
4
|
+
return fallback;
|
|
5
|
+
const value = Number.parseInt(raw, 10);
|
|
6
|
+
if (!Number.isFinite(value) || value <= 0) {
|
|
7
|
+
throw new Error(`Invalid --limit value: ${raw}`);
|
|
8
|
+
}
|
|
9
|
+
return value;
|
|
10
|
+
}
|
|
11
|
+
export const handleWatchdog = async (ctx) => {
|
|
12
|
+
const one = await requireOneClient(ctx);
|
|
13
|
+
const subcommand = (ctx.rest[0] ?? 'list').toLowerCase();
|
|
14
|
+
if (subcommand === 'list' || subcommand === 'targets' || subcommand === 'status') {
|
|
15
|
+
const payload = await withSpinner(ctx, 'Loading watchdog targets', () => one.getWatchdogTargets());
|
|
16
|
+
if (ctx.mode === 'json') {
|
|
17
|
+
outputJson(ctx, payload);
|
|
18
|
+
return ok();
|
|
19
|
+
}
|
|
20
|
+
const targets = asArray(payload.targets);
|
|
21
|
+
if (!targets.length) {
|
|
22
|
+
ctx.writer.stdout('No watchdog targets.');
|
|
23
|
+
return ok();
|
|
24
|
+
}
|
|
25
|
+
for (const raw of targets) {
|
|
26
|
+
const target = asRecord(raw);
|
|
27
|
+
if (!target)
|
|
28
|
+
continue;
|
|
29
|
+
ctx.writer.stdout(`${String(target.domain).padEnd(28)} ${String(target.uptimeStatus || '-')}${typeof target.uptime24h === 'number'
|
|
30
|
+
? ` 24h=${Math.round(target.uptime24h * 100) / 100}`
|
|
31
|
+
: ''}`);
|
|
32
|
+
}
|
|
33
|
+
return ok();
|
|
34
|
+
}
|
|
35
|
+
if (subcommand === 'scans' || subcommand === 'scan') {
|
|
36
|
+
const payload = await withSpinner(ctx, 'Loading watchdog scans', () => one.getWatchdogScans({
|
|
37
|
+
targetId: ctx.values['target-id'],
|
|
38
|
+
limit: parseLimit(ctx.values.limit, 20),
|
|
39
|
+
}));
|
|
40
|
+
if (ctx.mode === 'json') {
|
|
41
|
+
outputJson(ctx, payload);
|
|
42
|
+
return ok();
|
|
43
|
+
}
|
|
44
|
+
const scans = asArray(payload.scans);
|
|
45
|
+
if (!scans.length) {
|
|
46
|
+
ctx.writer.stdout('No watchdog scans.');
|
|
47
|
+
return ok();
|
|
48
|
+
}
|
|
49
|
+
for (const raw of scans) {
|
|
50
|
+
const scan = asRecord(raw);
|
|
51
|
+
if (!scan)
|
|
52
|
+
continue;
|
|
53
|
+
ctx.writer.stdout(`${String(scan.id).slice(0, 8)} ${String(scan.status || '-').padEnd(10)} ${String(scan.scanType || '-')} ${String(scan.createdAt || '')}`);
|
|
54
|
+
}
|
|
55
|
+
return ok();
|
|
56
|
+
}
|
|
57
|
+
throw new Error('Usage: vigilbase watchdog [list|scans] [--target-id …] [--limit …] [--json]');
|
|
58
|
+
};
|
|
59
|
+
//# sourceMappingURL=watchdog.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"watchdog.js","sourceRoot":"","sources":["../../src/commands/watchdog.ts"],"names":[],"mappings":"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"}
|
package/dist/index.d.ts
CHANGED
|
@@ -2,7 +2,7 @@ export { runCli, CLI_VERSION } from './cli.js';
|
|
|
2
2
|
export { VigilbaseClient, VigilbaseApiError } from './lib/client.js';
|
|
3
3
|
export { createConfig, resolveBaseUrl, resolvePublicBaseUrl, resolveOneBaseUrl, } from './lib/config.js';
|
|
4
4
|
export { clearOneCredentials, credentialsPath, DeviceAuthError, getOneAccessToken, readCredentials, requestDeviceCode, waitForDeviceAuthorization, writeOneCredentials, } from './auth/index.js';
|
|
5
|
-
export { isOneAuthRequiredTool, isOneExecutableTool, ONE_AUTH_REQUIRED_TOOLS, ONE_EXECUTABLE_TOOLS, VigilbaseOneClient, } from './lib/one-client.js';
|
|
5
|
+
export { isOneAuthRequiredTool, isOneExecutableTool, ONE_AUTH_REQUIRED_TOOLS, ONE_AUTH_REQUIRED_TOOL_DEFINITIONS, ONE_EXECUTABLE_TOOLS, VigilbaseOneClient, } from './lib/one-client.js';
|
|
6
6
|
export { EXIT } from './types.js';
|
|
7
7
|
export type { AgentToolDefinition, AgentToolExecuteResponse, AgentToolsCatalogResponse, CliOutputMode, ExitCode, } from './types.js';
|
|
8
8
|
export type { CredentialsFile, OneCredentials } from './auth/types.js';
|
package/dist/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM,UAAU,CAAA;AAC9C,OAAO,EAAE,eAAe,EAAE,iBAAiB,EAAE,MAAM,iBAAiB,CAAA;AACpE,OAAO,EACL,YAAY,EACZ,cAAc,EACd,oBAAoB,EACpB,iBAAiB,GAClB,MAAM,iBAAiB,CAAA;AACxB,OAAO,EACL,mBAAmB,EACnB,eAAe,EACf,eAAe,EACf,iBAAiB,EACjB,eAAe,EACf,iBAAiB,EACjB,0BAA0B,EAC1B,mBAAmB,GACpB,MAAM,iBAAiB,CAAA;AACxB,OAAO,EACL,qBAAqB,EACrB,mBAAmB,EACnB,uBAAuB,EACvB,oBAAoB,EACpB,kBAAkB,GACnB,MAAM,qBAAqB,CAAA;AAC5B,OAAO,EAAE,IAAI,EAAE,MAAM,YAAY,CAAA;AACjC,YAAY,EACV,mBAAmB,EACnB,wBAAwB,EACxB,yBAAyB,EACzB,aAAa,EACb,QAAQ,GACT,MAAM,YAAY,CAAA;AACnB,YAAY,EAAE,eAAe,EAAE,cAAc,EAAE,MAAM,iBAAiB,CAAA"}
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM,UAAU,CAAA;AAC9C,OAAO,EAAE,eAAe,EAAE,iBAAiB,EAAE,MAAM,iBAAiB,CAAA;AACpE,OAAO,EACL,YAAY,EACZ,cAAc,EACd,oBAAoB,EACpB,iBAAiB,GAClB,MAAM,iBAAiB,CAAA;AACxB,OAAO,EACL,mBAAmB,EACnB,eAAe,EACf,eAAe,EACf,iBAAiB,EACjB,eAAe,EACf,iBAAiB,EACjB,0BAA0B,EAC1B,mBAAmB,GACpB,MAAM,iBAAiB,CAAA;AACxB,OAAO,EACL,qBAAqB,EACrB,mBAAmB,EACnB,uBAAuB,EACvB,kCAAkC,EAClC,oBAAoB,EACpB,kBAAkB,GACnB,MAAM,qBAAqB,CAAA;AAC5B,OAAO,EAAE,IAAI,EAAE,MAAM,YAAY,CAAA;AACjC,YAAY,EACV,mBAAmB,EACnB,wBAAwB,EACxB,yBAAyB,EACzB,aAAa,EACb,QAAQ,GACT,MAAM,YAAY,CAAA;AACnB,YAAY,EAAE,eAAe,EAAE,cAAc,EAAE,MAAM,iBAAiB,CAAA"}
|
package/dist/index.js
CHANGED
|
@@ -2,6 +2,6 @@ export { runCli, CLI_VERSION } from './cli.js';
|
|
|
2
2
|
export { VigilbaseClient, VigilbaseApiError } from './lib/client.js';
|
|
3
3
|
export { createConfig, resolveBaseUrl, resolvePublicBaseUrl, resolveOneBaseUrl, } from './lib/config.js';
|
|
4
4
|
export { clearOneCredentials, credentialsPath, DeviceAuthError, getOneAccessToken, readCredentials, requestDeviceCode, waitForDeviceAuthorization, writeOneCredentials, } from './auth/index.js';
|
|
5
|
-
export { isOneAuthRequiredTool, isOneExecutableTool, ONE_AUTH_REQUIRED_TOOLS, ONE_EXECUTABLE_TOOLS, VigilbaseOneClient, } from './lib/one-client.js';
|
|
5
|
+
export { isOneAuthRequiredTool, isOneExecutableTool, ONE_AUTH_REQUIRED_TOOLS, ONE_AUTH_REQUIRED_TOOL_DEFINITIONS, ONE_EXECUTABLE_TOOLS, VigilbaseOneClient, } from './lib/one-client.js';
|
|
6
6
|
export { EXIT } from './types.js';
|
|
7
7
|
//# sourceMappingURL=index.js.map
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM,UAAU,CAAA;AAC9C,OAAO,EAAE,eAAe,EAAE,iBAAiB,EAAE,MAAM,iBAAiB,CAAA;AACpE,OAAO,EACL,YAAY,EACZ,cAAc,EACd,oBAAoB,EACpB,iBAAiB,GAClB,MAAM,iBAAiB,CAAA;AACxB,OAAO,EACL,mBAAmB,EACnB,eAAe,EACf,eAAe,EACf,iBAAiB,EACjB,eAAe,EACf,iBAAiB,EACjB,0BAA0B,EAC1B,mBAAmB,GACpB,MAAM,iBAAiB,CAAA;AACxB,OAAO,EACL,qBAAqB,EACrB,mBAAmB,EACnB,uBAAuB,EACvB,oBAAoB,EACpB,kBAAkB,GACnB,MAAM,qBAAqB,CAAA;AAC5B,OAAO,EAAE,IAAI,EAAE,MAAM,YAAY,CAAA"}
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM,UAAU,CAAA;AAC9C,OAAO,EAAE,eAAe,EAAE,iBAAiB,EAAE,MAAM,iBAAiB,CAAA;AACpE,OAAO,EACL,YAAY,EACZ,cAAc,EACd,oBAAoB,EACpB,iBAAiB,GAClB,MAAM,iBAAiB,CAAA;AACxB,OAAO,EACL,mBAAmB,EACnB,eAAe,EACf,eAAe,EACf,iBAAiB,EACjB,eAAe,EACf,iBAAiB,EACjB,0BAA0B,EAC1B,mBAAmB,GACpB,MAAM,iBAAiB,CAAA;AACxB,OAAO,EACL,qBAAqB,EACrB,mBAAmB,EACnB,uBAAuB,EACvB,kCAAkC,EAClC,oBAAoB,EACpB,kBAAkB,GACnB,MAAM,qBAAqB,CAAA;AAC5B,OAAO,EAAE,IAAI,EAAE,MAAM,YAAY,CAAA"}
|
package/dist/lib/config.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../../src/lib/config.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../../src/lib/config.ts"],"names":[],"mappings":"AASA,MAAM,MAAM,SAAS,GAAG;IACtB,0DAA0D;IAC1D,aAAa,EAAE,MAAM,CAAA;IACrB,yEAAyE;IACzE,UAAU,EAAE,MAAM,CAAA;IAClB,4DAA4D;IAC5D,QAAQ,EAAE,MAAM,CAAA;IAChB,wEAAwE;IACxE,SAAS,EAAE,MAAM,CAAA;IACjB,SAAS,EAAE,MAAM,CAAA;IACjB,SAAS,EAAE,MAAM,CAAA;CAClB,CAAA;AAED,oEAAoE;AACpE,MAAM,MAAM,eAAe,GAAG,SAAS,GAAG;IAAE,OAAO,EAAE,MAAM,CAAA;CAAE,CAAA;AAM7D,wBAAgB,oBAAoB,CAAC,QAAQ,CAAC,EAAE,MAAM,GAAG,IAAI,GAAG,MAAM,CAQrE;AAED,wBAAgB,iBAAiB,CAAC,QAAQ,CAAC,EAAE,MAAM,GAAG,IAAI,GAAG,MAAM,CAMlE;AAED,wBAAgB,eAAe,CAAC,QAAQ,CAAC,EAAE,MAAM,GAAG,IAAI,GAAG,MAAM,CAMhE;AAED,wBAAgB,gBAAgB,CAAC,QAAQ,CAAC,EAAE,MAAM,GAAG,IAAI,GAAG,MAAM,CAQjE;AAED,wBAAgB,YAAY,CAAC,OAAO,CAAC,EAAE;IACrC,OAAO,CAAC,EAAE,MAAM,GAAG,IAAI,CAAA;IACvB,aAAa,CAAC,EAAE,MAAM,GAAG,IAAI,CAAA;IAC7B,UAAU,CAAC,EAAE,MAAM,GAAG,IAAI,CAAA;IAC1B,QAAQ,CAAC,EAAE,MAAM,GAAG,IAAI,CAAA;IACxB,SAAS,CAAC,EAAE,MAAM,GAAG,IAAI,CAAA;IACzB,SAAS,CAAC,EAAE,MAAM,CAAA;CACnB,GAAG,eAAe,CAclB;AAED,2DAA2D;AAC3D,wBAAgB,cAAc,CAAC,QAAQ,CAAC,EAAE,MAAM,GAAG,IAAI,GAAG,MAAM,CAE/D"}
|
package/dist/lib/config.js
CHANGED
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
import { homedir } from 'node:os';
|
|
2
2
|
import { join } from 'node:path';
|
|
3
|
+
import { CLI_VERSION } from '../version.js';
|
|
3
4
|
const DEFAULT_PUBLIC_BASE_URL = 'https://vigilbase.com';
|
|
4
5
|
const DEFAULT_ONE_BASE_URL = 'https://one.vigilbase.com';
|
|
5
6
|
/** Placeholder client id until Vigilbase One registers the CLI OAuth client. */
|
|
@@ -46,7 +47,7 @@ export function createConfig(options) {
|
|
|
46
47
|
oneBaseUrl: resolveOneBaseUrl(options?.oneBaseUrl),
|
|
47
48
|
clientId: resolveClientId(options?.clientId),
|
|
48
49
|
configDir: resolveConfigDir(options?.configDir),
|
|
49
|
-
userAgent: `@vigilbase/cli
|
|
50
|
+
userAgent: `@vigilbase/cli/${CLI_VERSION} (+https://vigilbase.com; node/${process.version})`,
|
|
50
51
|
timeoutMs: options?.timeoutMs ?? 60_000,
|
|
51
52
|
};
|
|
52
53
|
}
|
package/dist/lib/config.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"config.js","sourceRoot":"","sources":["../../src/lib/config.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,SAAS,CAAA;AACjC,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAA;
|
|
1
|
+
{"version":3,"file":"config.js","sourceRoot":"","sources":["../../src/lib/config.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,SAAS,CAAA;AACjC,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAA;AAChC,OAAO,EAAE,WAAW,EAAE,MAAM,eAAe,CAAA;AAE3C,MAAM,uBAAuB,GAAG,uBAAuB,CAAA;AACvD,MAAM,oBAAoB,GAAG,2BAA2B,CAAA;AACxD,gFAAgF;AAChF,MAAM,iBAAiB,GAAG,eAAe,CAAA;AAkBzC,SAAS,kBAAkB,CAAC,GAAW;IACrC,OAAO,GAAG,CAAC,OAAO,CAAC,MAAM,EAAE,EAAE,CAAC,CAAA;AAChC,CAAC;AAED,MAAM,UAAU,oBAAoB,CAAC,QAAwB;IAC3D,MAAM,GAAG,GACP,QAAQ,EAAE,IAAI,EAAE;QAChB,OAAO,CAAC,GAAG,CAAC,kBAAkB,EAAE,IAAI,EAAE;QACtC,OAAO,CAAC,GAAG,CAAC,iBAAiB,EAAE,IAAI,EAAE;QACrC,OAAO,CAAC,GAAG,CAAC,oBAAoB,EAAE,IAAI,EAAE;QACxC,uBAAuB,CAAA;IACzB,OAAO,kBAAkB,CAAC,GAAG,CAAC,CAAA;AAChC,CAAC;AAED,MAAM,UAAU,iBAAiB,CAAC,QAAwB;IACxD,MAAM,GAAG,GACP,QAAQ,EAAE,IAAI,EAAE;QAChB,OAAO,CAAC,GAAG,CAAC,iBAAiB,EAAE,IAAI,EAAE;QACrC,oBAAoB,CAAA;IACtB,OAAO,kBAAkB,CAAC,GAAG,CAAC,CAAA;AAChC,CAAC;AAED,MAAM,UAAU,eAAe,CAAC,QAAwB;IACtD,OAAO,CACL,QAAQ,EAAE,IAAI,EAAE;QAChB,OAAO,CAAC,GAAG,CAAC,mBAAmB,EAAE,IAAI,EAAE;QACvC,iBAAiB,CAClB,CAAA;AACH,CAAC;AAED,MAAM,UAAU,gBAAgB,CAAC,QAAwB;IACvD,IAAI,QAAQ,EAAE,IAAI,EAAE;QAAE,OAAO,QAAQ,CAAC,IAAI,EAAE,CAAA;IAC5C,IAAI,OAAO,CAAC,GAAG,CAAC,oBAAoB,EAAE,IAAI,EAAE,EAAE,CAAC;QAC7C,OAAO,OAAO,CAAC,GAAG,CAAC,oBAAoB,CAAC,IAAI,EAAE,CAAA;IAChD,CAAC;IACD,MAAM,GAAG,GAAG,OAAO,CAAC,GAAG,CAAC,eAAe,EAAE,IAAI,EAAE,CAAA;IAC/C,IAAI,GAAG;QAAE,OAAO,IAAI,CAAC,GAAG,EAAE,WAAW,CAAC,CAAA;IACtC,OAAO,IAAI,CAAC,OAAO,EAAE,EAAE,SAAS,EAAE,WAAW,CAAC,CAAA;AAChD,CAAC;AAED,MAAM,UAAU,YAAY,CAAC,OAO5B;IACC,MAAM,aAAa,GAAG,oBAAoB,CACxC,OAAO,EAAE,aAAa,IAAI,OAAO,EAAE,OAAO,CAC3C,CAAA;IACD,OAAO;QACL,aAAa;QACb,qDAAqD;QACrD,OAAO,EAAE,aAAa;QACtB,UAAU,EAAE,iBAAiB,CAAC,OAAO,EAAE,UAAU,CAAC;QAClD,QAAQ,EAAE,eAAe,CAAC,OAAO,EAAE,QAAQ,CAAC;QAC5C,SAAS,EAAE,gBAAgB,CAAC,OAAO,EAAE,SAAS,CAAC;QAC/C,SAAS,EAAE,kBAAkB,WAAW,kCAAkC,OAAO,CAAC,OAAO,GAAG;QAC5F,SAAS,EAAE,OAAO,EAAE,SAAS,IAAI,MAAM;KACxC,CAAA;AACH,CAAC;AAED,2DAA2D;AAC3D,MAAM,UAAU,cAAc,CAAC,QAAwB;IACrD,OAAO,oBAAoB,CAAC,QAAQ,CAAC,CAAA;AACvC,CAAC"}
|
package/dist/lib/format.d.ts
CHANGED
|
@@ -4,7 +4,10 @@ export type Writer = {
|
|
|
4
4
|
stderr: (line?: string) => void;
|
|
5
5
|
};
|
|
6
6
|
export declare function createWriter(stdout?: NodeJS.WritableStream, stderr?: NodeJS.WritableStream): Writer;
|
|
7
|
+
export declare function printJson(writer: Writer, value: unknown): void;
|
|
7
8
|
export declare function formatToolsList(catalog: AgentToolsCatalogResponse, mode: CliOutputMode, writer: Writer, options?: {
|
|
9
|
+
authRequiredTools?: readonly string[];
|
|
10
|
+
/** @deprecated Use authRequiredTools */
|
|
8
11
|
sensitiveTools?: readonly string[];
|
|
9
12
|
isAuthenticated?: boolean;
|
|
10
13
|
}): void;
|
package/dist/lib/format.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"format.d.ts","sourceRoot":"","sources":["../../src/lib/format.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,mBAAmB,EACnB,wBAAwB,EACxB,yBAAyB,EACzB,aAAa,EACd,MAAM,aAAa,CAAA;AAEpB,MAAM,MAAM,MAAM,GAAG;IACnB,MAAM,EAAE,CAAC,IAAI,CAAC,EAAE,MAAM,KAAK,IAAI,CAAA;IAC/B,MAAM,EAAE,CAAC,IAAI,CAAC,EAAE,MAAM,KAAK,IAAI,CAAA;CAChC,CAAA;AAED,wBAAgB,YAAY,CAC1B,MAAM,GAAE,MAAM,CAAC,cAA+B,EAC9C,MAAM,GAAE,MAAM,CAAC,cAA+B,GAC7C,MAAM,CASR;
|
|
1
|
+
{"version":3,"file":"format.d.ts","sourceRoot":"","sources":["../../src/lib/format.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,mBAAmB,EACnB,wBAAwB,EACxB,yBAAyB,EACzB,aAAa,EACd,MAAM,aAAa,CAAA;AAEpB,MAAM,MAAM,MAAM,GAAG;IACnB,MAAM,EAAE,CAAC,IAAI,CAAC,EAAE,MAAM,KAAK,IAAI,CAAA;IAC/B,MAAM,EAAE,CAAC,IAAI,CAAC,EAAE,MAAM,KAAK,IAAI,CAAA;CAChC,CAAA;AAED,wBAAgB,YAAY,CAC1B,MAAM,GAAE,MAAM,CAAC,cAA+B,EAC9C,MAAM,GAAE,MAAM,CAAC,cAA+B,GAC7C,MAAM,CASR;AAED,wBAAgB,SAAS,CAAC,MAAM,EAAE,MAAM,EAAE,KAAK,EAAE,OAAO,GAAG,IAAI,CAE9D;AA2ND,wBAAgB,eAAe,CAC7B,OAAO,EAAE,yBAAyB,EAClC,IAAI,EAAE,aAAa,EACnB,MAAM,EAAE,MAAM,EACd,OAAO,CAAC,EAAE;IACR,iBAAiB,CAAC,EAAE,SAAS,MAAM,EAAE,CAAA;IACrC,wCAAwC;IACxC,cAAc,CAAC,EAAE,SAAS,MAAM,EAAE,CAAA;IAClC,eAAe,CAAC,EAAE,OAAO,CAAA;CAC1B,GACA,IAAI,CAgBN;AAED,wBAAgB,qBAAqB,CACnC,IAAI,EAAE,mBAAmB,EACzB,IAAI,EAAE,aAAa,EACnB,MAAM,EAAE,MAAM,EACd,aAAa,CAAC,EAAE,MAAM,GACrB,IAAI,CAkBN;AAED,wBAAgB,mBAAmB,CACjC,MAAM,EAAE,wBAAwB,EAChC,IAAI,EAAE,aAAa,EACnB,MAAM,EAAE,MAAM,GACb,IAAI,CA2BN;AAED,wBAAgB,WAAW,CACzB,KAAK,EAAE,OAAO,EACd,IAAI,EAAE,aAAa,EACnB,MAAM,EAAE,MAAM,GACb,IAAI,CAqCN"}
|