@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.
Files changed (66) hide show
  1. package/README.md +30 -79
  2. package/dist/bin.js +0 -0
  3. package/dist/cli.d.ts +2 -2
  4. package/dist/cli.d.ts.map +1 -1
  5. package/dist/cli.js +36 -376
  6. package/dist/cli.js.map +1 -1
  7. package/dist/commands/account.d.ts +3 -0
  8. package/dist/commands/account.d.ts.map +1 -0
  9. package/dist/commands/account.js +171 -0
  10. package/dist/commands/account.js.map +1 -0
  11. package/dist/commands/auth.d.ts +5 -0
  12. package/dist/commands/auth.d.ts.map +1 -0
  13. package/dist/commands/auth.js +185 -0
  14. package/dist/commands/auth.js.map +1 -0
  15. package/dist/commands/billing.d.ts +3 -0
  16. package/dist/commands/billing.d.ts.map +1 -0
  17. package/dist/commands/billing.js +47 -0
  18. package/dist/commands/billing.js.map +1 -0
  19. package/dist/commands/cloudflare.d.ts +3 -0
  20. package/dist/commands/cloudflare.d.ts.map +1 -0
  21. package/dist/commands/cloudflare.js +53 -0
  22. package/dist/commands/cloudflare.js.map +1 -0
  23. package/dist/commands/helpers.d.ts +49 -0
  24. package/dist/commands/helpers.d.ts.map +1 -0
  25. package/dist/commands/helpers.js +36 -0
  26. package/dist/commands/helpers.js.map +1 -0
  27. package/dist/commands/index.d.ts +9 -0
  28. package/dist/commands/index.d.ts.map +1 -0
  29. package/dist/commands/index.js +37 -0
  30. package/dist/commands/index.js.map +1 -0
  31. package/dist/commands/public-tools.d.ts +9 -0
  32. package/dist/commands/public-tools.d.ts.map +1 -0
  33. package/dist/commands/public-tools.js +171 -0
  34. package/dist/commands/public-tools.js.map +1 -0
  35. package/dist/commands/runs.d.ts +3 -0
  36. package/dist/commands/runs.d.ts.map +1 -0
  37. package/dist/commands/runs.js +69 -0
  38. package/dist/commands/runs.js.map +1 -0
  39. package/dist/commands/watchdog.d.ts +3 -0
  40. package/dist/commands/watchdog.d.ts.map +1 -0
  41. package/dist/commands/watchdog.js +59 -0
  42. package/dist/commands/watchdog.js.map +1 -0
  43. package/dist/index.d.ts +1 -1
  44. package/dist/index.d.ts.map +1 -1
  45. package/dist/index.js +1 -1
  46. package/dist/index.js.map +1 -1
  47. package/dist/lib/config.d.ts.map +1 -1
  48. package/dist/lib/config.js +2 -1
  49. package/dist/lib/config.js.map +1 -1
  50. package/dist/lib/format.d.ts +3 -0
  51. package/dist/lib/format.d.ts.map +1 -1
  52. package/dist/lib/format.js +4 -3
  53. package/dist/lib/format.js.map +1 -1
  54. package/dist/lib/help.d.ts +1 -1
  55. package/dist/lib/help.d.ts.map +1 -1
  56. package/dist/lib/help.js +34 -9
  57. package/dist/lib/help.js.map +1 -1
  58. package/dist/lib/one-client.d.ts +42 -3
  59. package/dist/lib/one-client.d.ts.map +1 -1
  60. package/dist/lib/one-client.js +121 -28
  61. package/dist/lib/one-client.js.map +1 -1
  62. package/dist/version.d.ts +2 -0
  63. package/dist/version.d.ts.map +1 -0
  64. package/dist/version.js +6 -0
  65. package/dist/version.js.map +1 -0
  66. 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,3 @@
1
+ import { type CommandHandler } from './helpers.js';
2
+ export declare const handleRuns: CommandHandler;
3
+ //# sourceMappingURL=runs.d.ts.map
@@ -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":"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"}
@@ -0,0 +1,3 @@
1
+ import { type CommandHandler } from './helpers.js';
2
+ export declare const handleWatchdog: CommandHandler;
3
+ //# sourceMappingURL=watchdog.d.ts.map
@@ -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';
@@ -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"}
@@ -1 +1 @@
1
- {"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../../src/lib/config.ts"],"names":[],"mappings":"AAQA,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"}
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"}
@@ -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/0.1.0 (+https://vigilbase.com; node/${process.version})`,
50
+ userAgent: `@vigilbase/cli/${CLI_VERSION} (+https://vigilbase.com; node/${process.version})`,
50
51
  timeoutMs: options?.timeoutMs ?? 60_000,
51
52
  };
52
53
  }
@@ -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;AAEhC,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,sDAAsD,OAAO,CAAC,OAAO,GAAG;QACnF,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"}
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"}
@@ -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;
@@ -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;AA+ND,wBAAgB,eAAe,CAC7B,OAAO,EAAE,yBAAyB,EAClC,IAAI,EAAE,aAAa,EACnB,MAAM,EAAE,MAAM,EACd,OAAO,CAAC,EAAE;IACR,cAAc,CAAC,EAAE,SAAS,MAAM,EAAE,CAAA;IAClC,eAAe,CAAC,EAAE,OAAO,CAAA;CAC1B,GACA,IAAI,CAcN;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"}
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"}