@aimarket/warden 0.8.2 → 0.9.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (78) hide show
  1. package/CHANGELOG.md +20 -1
  2. package/README-es.md +17 -7
  3. package/README-fr.md +17 -7
  4. package/README-ru.md +17 -7
  5. package/README-zh.md +17 -7
  6. package/README.md +17 -7
  7. package/dist/classifier.d.ts +50 -0
  8. package/dist/classifier.d.ts.map +1 -0
  9. package/dist/classifier.js +164 -0
  10. package/dist/classifier.js.map +1 -0
  11. package/dist/claude-hook.d.ts +53 -0
  12. package/dist/claude-hook.d.ts.map +1 -0
  13. package/dist/claude-hook.js +192 -0
  14. package/dist/claude-hook.js.map +1 -0
  15. package/dist/histor.d.ts +69 -0
  16. package/dist/histor.d.ts.map +1 -0
  17. package/dist/histor.js +82 -0
  18. package/dist/histor.js.map +1 -0
  19. package/dist/mcp-client.d.ts +58 -0
  20. package/dist/mcp-client.d.ts.map +1 -0
  21. package/dist/mcp-client.js +451 -0
  22. package/dist/mcp-client.js.map +1 -0
  23. package/dist/mcp-rpc.js +1 -1
  24. package/dist/mcp-server.js +8 -0
  25. package/dist/mcp-server.js.map +1 -1
  26. package/dist/mcp-tools.js +2 -2
  27. package/dist/mcp-tools.js.map +1 -1
  28. package/dist/mtl.d.ts +28 -0
  29. package/dist/mtl.d.ts.map +1 -0
  30. package/dist/mtl.js +77 -0
  31. package/dist/mtl.js.map +1 -0
  32. package/dist/scan-cli.d.ts +3 -0
  33. package/dist/scan-cli.d.ts.map +1 -0
  34. package/dist/scan-cli.js +36 -0
  35. package/dist/scan-cli.js.map +1 -0
  36. package/dist/scan-config.d.ts +72 -0
  37. package/dist/scan-config.d.ts.map +1 -0
  38. package/dist/scan-config.js +239 -0
  39. package/dist/scan-config.js.map +1 -0
  40. package/dist/scan-lock.d.ts +46 -0
  41. package/dist/scan-lock.d.ts.map +1 -0
  42. package/dist/scan-lock.js +112 -0
  43. package/dist/scan-lock.js.map +1 -0
  44. package/dist/scan-report.d.ts +21 -0
  45. package/dist/scan-report.d.ts.map +1 -0
  46. package/dist/scan-report.js +273 -0
  47. package/dist/scan-report.js.map +1 -0
  48. package/dist/scan.d.ts +137 -0
  49. package/dist/scan.d.ts.map +1 -0
  50. package/dist/scan.js +534 -0
  51. package/dist/scan.js.map +1 -0
  52. package/dist/static-scan.d.ts +1 -1
  53. package/dist/static-scan.d.ts.map +1 -1
  54. package/dist/static-scan.js +189 -4
  55. package/dist/static-scan.js.map +1 -1
  56. package/dist/tool-list.d.ts +34 -0
  57. package/dist/tool-list.d.ts.map +1 -0
  58. package/dist/tool-list.js +57 -0
  59. package/dist/tool-list.js.map +1 -0
  60. package/dist/wrap.d.ts.map +1 -1
  61. package/dist/wrap.js +2 -33
  62. package/dist/wrap.js.map +1 -1
  63. package/docs/gates.es.md +40 -7
  64. package/docs/gates.fr.md +39 -6
  65. package/docs/gates.md +38 -7
  66. package/docs/gates.ru.md +40 -7
  67. package/docs/gates.zh.md +10 -5
  68. package/docs/scan.es.md +184 -0
  69. package/docs/scan.fr.md +184 -0
  70. package/docs/scan.md +184 -0
  71. package/docs/scan.ru.md +184 -0
  72. package/docs/scan.zh.md +184 -0
  73. package/docs/scanner-comparison.es.md +218 -0
  74. package/docs/scanner-comparison.fr.md +223 -0
  75. package/docs/scanner-comparison.md +209 -0
  76. package/docs/scanner-comparison.ru.md +214 -0
  77. package/docs/scanner-comparison.zh.md +135 -0
  78. package/package.json +5 -3
package/dist/scan.d.ts ADDED
@@ -0,0 +1,137 @@
1
+ import { type ClientKind, type ConfiguredServer, type DiscoveryEnv } from './scan-config.js';
2
+ import { type FetchedServer } from './mcp-client.js';
3
+ import { type ClassifierOptions } from './classifier.js';
4
+ import { type ToolChange } from './scan-lock.js';
5
+ import type { Severity, ToolDef, WardenFinding, WardenPolicy, RulesetRef } from './types.js';
6
+ export declare const SEVERITIES: Severity[];
7
+ export interface ScanOptions {
8
+ configs: string[];
9
+ project: boolean;
10
+ clients?: ClientKind[];
11
+ cwd: string;
12
+ launch: boolean;
13
+ publicOnly: boolean;
14
+ timeoutMs: number;
15
+ concurrency: number;
16
+ policy: WardenPolicy;
17
+ lock?: string;
18
+ updateLock: boolean;
19
+ stateDir: string;
20
+ feed?: string;
21
+ feedKey?: string;
22
+ histor: boolean;
23
+ historUrl: string;
24
+ /** Opt-in meaning-based check; absent unless both --classifier-url and --classifier-model are given. */
25
+ classifier?: ClassifierOptions & {
26
+ blocks: boolean;
27
+ };
28
+ format: 'table' | 'json';
29
+ sarif?: string;
30
+ markdown?: string;
31
+ jsonFile?: string;
32
+ failOnError: boolean;
33
+ color: boolean;
34
+ }
35
+ export type ServerStatus = 'scanned' | 'launch-only' | 'blocked-at-launch' | 'error' | 'skipped';
36
+ export interface HistorSummary {
37
+ match?: string;
38
+ note?: string;
39
+ page?: string;
40
+ unchangedSince?: string;
41
+ changes?: number;
42
+ error?: string;
43
+ notSent?: string;
44
+ }
45
+ export interface ScanServerResult {
46
+ id: string;
47
+ key: string;
48
+ client: ClientKind;
49
+ source: string;
50
+ scope: 'user' | 'project';
51
+ transport: 'stdio' | 'sse' | 'http';
52
+ wrapped: boolean;
53
+ /** Display form of the launch: secrets in args and URLs are redacted. */
54
+ launch: string;
55
+ status: ServerStatus;
56
+ allow: boolean | null;
57
+ score?: number;
58
+ decidedBy?: string;
59
+ findings: WardenFinding[];
60
+ allowedTools: string[];
61
+ blockedTools: string[];
62
+ toolCount?: number;
63
+ serverInfo?: {
64
+ name?: string;
65
+ version?: string;
66
+ };
67
+ error?: string;
68
+ skipped?: string;
69
+ mtlDigest?: string;
70
+ mtlError?: string;
71
+ histor?: HistorSummary;
72
+ classifier?: {
73
+ model: string;
74
+ flagged: number;
75
+ error?: string;
76
+ };
77
+ lock?: {
78
+ state: 'match' | 'drift' | 'missing' | 'updated' | 'unchanged' | 'refused';
79
+ changes?: ToolChange[];
80
+ };
81
+ /** The fetched definitions; kept for the Markdown diff and --update-lock, not printed in JSON. */
82
+ tools?: ToolDef[];
83
+ }
84
+ export interface ScanReport {
85
+ tool: 'warden-scan';
86
+ version: string;
87
+ scannedAt: string;
88
+ ruleset: RulesetRef;
89
+ policy: WardenPolicy;
90
+ launch: boolean;
91
+ sources: Array<{
92
+ path: string;
93
+ client: ClientKind;
94
+ scope: 'user' | 'project';
95
+ servers: number;
96
+ error?: string;
97
+ }>;
98
+ servers: ScanServerResult[];
99
+ lock?: {
100
+ path: string;
101
+ stale: string[];
102
+ written: boolean;
103
+ };
104
+ summary: {
105
+ servers: number;
106
+ scanned: number;
107
+ allowed: number;
108
+ blocked: number;
109
+ errors: number;
110
+ skipped: number;
111
+ launchOnly: number;
112
+ };
113
+ }
114
+ export declare const SCAN_USAGE: string;
115
+ export declare function parseScanArgs(argv: string[], env?: NodeJS.ProcessEnv): Promise<ScanOptions>;
116
+ export declare class UsageRequested extends Error {
117
+ constructor();
118
+ }
119
+ /** A path segment or argument that looks like it carries a credential. */
120
+ export declare function looksSecret(text: string): boolean;
121
+ /** The launch line with credentials replaced, for terminals, reports and SARIF. */
122
+ export declare function redactLaunch(server: ConfiguredServer): string;
123
+ export declare function redactUrl(raw: string): string;
124
+ /** The endpoint HISTOR may be asked about, or why it is not sent. */
125
+ export declare function historEndpoint(raw: string): {
126
+ endpoint?: string;
127
+ reason?: string;
128
+ };
129
+ export interface ScanDeps {
130
+ fetch?: (server: ConfiguredServer, opts: ScanOptions) => Promise<FetchedServer>;
131
+ historFetch?: typeof fetch;
132
+ now?: () => Date;
133
+ discovery?: Partial<DiscoveryEnv>;
134
+ }
135
+ export declare function runScan(opts: ScanOptions, deps?: ScanDeps): Promise<ScanReport>;
136
+ export declare function exitCode(report: ScanReport, opts: Pick<ScanOptions, 'failOnError'>): number;
137
+ //# sourceMappingURL=scan.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"scan.d.ts","sourceRoot":"","sources":["../src/scan.ts"],"names":[],"mappings":"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"}