slaunt 0.1.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 (59) hide show
  1. package/LICENSE +201 -0
  2. package/README.md +152 -0
  3. package/dist/audit/risk-engine.d.ts +4 -0
  4. package/dist/audit/risk-engine.d.ts.map +1 -0
  5. package/dist/audit/risk-engine.js +173 -0
  6. package/dist/audit/risk-engine.js.map +1 -0
  7. package/dist/audit/run.d.ts +13 -0
  8. package/dist/audit/run.d.ts.map +1 -0
  9. package/dist/audit/run.js +55 -0
  10. package/dist/audit/run.js.map +1 -0
  11. package/dist/classification/builtin-catalog.d.ts +3 -0
  12. package/dist/classification/builtin-catalog.d.ts.map +1 -0
  13. package/dist/classification/builtin-catalog.js +283 -0
  14. package/dist/classification/builtin-catalog.js.map +1 -0
  15. package/dist/classification/catalog.d.ts +10 -0
  16. package/dist/classification/catalog.d.ts.map +1 -0
  17. package/dist/classification/catalog.js +139 -0
  18. package/dist/classification/catalog.js.map +1 -0
  19. package/dist/classification/classifier.d.ts +3 -0
  20. package/dist/classification/classifier.d.ts.map +1 -0
  21. package/dist/classification/classifier.js +64 -0
  22. package/dist/classification/classifier.js.map +1 -0
  23. package/dist/cli.d.ts +3 -0
  24. package/dist/cli.d.ts.map +1 -0
  25. package/dist/cli.js +187 -0
  26. package/dist/cli.js.map +1 -0
  27. package/dist/config/discover.d.ts +8 -0
  28. package/dist/config/discover.d.ts.map +1 -0
  29. package/dist/config/discover.js +123 -0
  30. package/dist/config/discover.js.map +1 -0
  31. package/dist/config/install.d.ts +10 -0
  32. package/dist/config/install.d.ts.map +1 -0
  33. package/dist/config/install.js +143 -0
  34. package/dist/config/install.js.map +1 -0
  35. package/dist/config/paths.d.ts +17 -0
  36. package/dist/config/paths.d.ts.map +1 -0
  37. package/dist/config/paths.js +84 -0
  38. package/dist/config/paths.js.map +1 -0
  39. package/dist/demo.d.ts +4 -0
  40. package/dist/demo.d.ts.map +1 -0
  41. package/dist/demo.js +99 -0
  42. package/dist/demo.js.map +1 -0
  43. package/dist/mcp/introspect.d.ts +9 -0
  44. package/dist/mcp/introspect.d.ts.map +1 -0
  45. package/dist/mcp/introspect.js +153 -0
  46. package/dist/mcp/introspect.js.map +1 -0
  47. package/dist/report/html.d.ts +4 -0
  48. package/dist/report/html.d.ts.map +1 -0
  49. package/dist/report/html.js +96 -0
  50. package/dist/report/html.js.map +1 -0
  51. package/dist/tui/render.d.ts +4 -0
  52. package/dist/tui/render.d.ts.map +1 -0
  53. package/dist/tui/render.js +132 -0
  54. package/dist/tui/render.js.map +1 -0
  55. package/dist/types.d.ts +119 -0
  56. package/dist/types.d.ts.map +1 -0
  57. package/dist/types.js +2 -0
  58. package/dist/types.js.map +1 -0
  59. package/package.json +56 -0
@@ -0,0 +1,119 @@
1
+ export type ClientId = 'claude-code' | 'claude-desktop' | 'codex';
2
+ export type TransportKind = 'stdio' | 'http' | 'sse' | 'unknown';
3
+ export type Severity = 'critical' | 'high' | 'medium' | 'low' | 'info';
4
+ export type ClassificationSource = 'database' | 'built-in' | 'heuristic' | 'unknown';
5
+ export type Capability = 'read-data' | 'write-data' | 'read-files' | 'write-files' | 'delete-data' | 'execute-code' | 'execute-shell' | 'read-secrets' | 'manage-auth' | 'network-access' | 'deploy-production' | 'edit-code' | 'create-pull-request' | 'merge-pull-request' | 'administer-system' | 'control-browser' | 'send-message';
6
+ export interface ClientDetection {
7
+ id: ClientId;
8
+ label: string;
9
+ detected: boolean;
10
+ sources: string[];
11
+ }
12
+ export interface ServerConfig {
13
+ id: string;
14
+ client: ClientId;
15
+ clientLabel: string;
16
+ name: string;
17
+ transport: TransportKind;
18
+ sourcePath: string;
19
+ scope: 'user' | 'project' | 'desktop' | 'custom';
20
+ command?: string;
21
+ args: string[];
22
+ env: Record<string, string>;
23
+ envKeys: string[];
24
+ url?: string;
25
+ headers: Record<string, string>;
26
+ headerKeys: string[];
27
+ enabled: boolean;
28
+ }
29
+ export interface DiscoveredConfiguration {
30
+ clients: ClientDetection[];
31
+ servers: ServerConfig[];
32
+ warnings: string[];
33
+ }
34
+ export interface DeclaredTool {
35
+ serverId: string;
36
+ serverName: string;
37
+ client: ClientId;
38
+ clientLabel: string;
39
+ name: string;
40
+ description: string;
41
+ inputSchema?: Record<string, unknown>;
42
+ }
43
+ export interface ServerProbe {
44
+ serverId: string;
45
+ status: 'ok' | 'skipped' | 'failed';
46
+ tools: DeclaredTool[];
47
+ message?: string;
48
+ }
49
+ export interface ClassificationRule {
50
+ id: string;
51
+ namespace?: string;
52
+ toolPattern: string;
53
+ descriptionTerms?: string[];
54
+ category: string;
55
+ capabilities: Capability[];
56
+ riskScore: number;
57
+ riskLevel: Severity;
58
+ sensitive: boolean;
59
+ verified: boolean;
60
+ rationale: string;
61
+ priority: number;
62
+ }
63
+ export interface ClassifiedTool extends DeclaredTool {
64
+ classification: {
65
+ ruleId?: string;
66
+ category: string;
67
+ capabilities: Capability[];
68
+ riskScore: number;
69
+ riskLevel: Severity;
70
+ sensitive: boolean;
71
+ verified: boolean;
72
+ rationale: string;
73
+ source: ClassificationSource;
74
+ };
75
+ }
76
+ export interface Finding {
77
+ id: string;
78
+ severity: Severity;
79
+ title: string;
80
+ serverNames: string[];
81
+ toolNames: string[];
82
+ access: string[];
83
+ why: string;
84
+ recommendation: string;
85
+ clients: ClientId[];
86
+ }
87
+ export interface AuditSummary {
88
+ clientsDetected: number;
89
+ servers: number;
90
+ tools: number;
91
+ classified: number;
92
+ sensitiveCapabilities: number;
93
+ highRiskFindings: number;
94
+ unclassified: number;
95
+ postureScore: number;
96
+ }
97
+ export interface AuditResult {
98
+ schemaVersion: 1;
99
+ generatedAt: string;
100
+ privacy: {
101
+ uploadedAuditData: false;
102
+ catalogSource: 'database' | 'cache' | 'built-in';
103
+ startedConfiguredServers: boolean;
104
+ };
105
+ discovery: DiscoveredConfiguration;
106
+ probes: ServerProbe[];
107
+ tools: ClassifiedTool[];
108
+ findings: Finding[];
109
+ summary: AuditSummary;
110
+ reportPath?: string;
111
+ }
112
+ export interface InstallChange {
113
+ client: ClientId;
114
+ path: string;
115
+ status: 'installed' | 'already-present' | 'skipped' | 'failed';
116
+ backupPath?: string;
117
+ message?: string;
118
+ }
119
+ //# sourceMappingURL=types.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"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"}
package/dist/types.js ADDED
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=types.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.js","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":""}
package/package.json ADDED
@@ -0,0 +1,56 @@
1
+ {
2
+ "name": "slaunt",
3
+ "version": "0.1.0",
4
+ "description": "Privacy-first MCP agent access auditor for Claude and Codex",
5
+ "type": "module",
6
+ "bin": {
7
+ "slaunt": "dist/cli.js"
8
+ },
9
+ "files": [
10
+ "dist",
11
+ "README.md",
12
+ "LICENSE"
13
+ ],
14
+ "scripts": {
15
+ "build": "tsc -p tsconfig.build.json",
16
+ "check": "tsc --noEmit",
17
+ "test": "npm run build && vitest run",
18
+ "test:watch": "vitest",
19
+ "audit:demo": "npm run build && node dist/cli.js audit --demo --no-open --no-install-slaunt",
20
+ "prepublishOnly": "npm run check && npm test"
21
+ },
22
+ "engines": {
23
+ "node": ">=20.17.0"
24
+ },
25
+ "keywords": [
26
+ "mcp",
27
+ "security",
28
+ "audit",
29
+ "claude",
30
+ "codex",
31
+ "agent"
32
+ ],
33
+ "repository": {
34
+ "type": "git",
35
+ "url": "git+https://github.com/kerodem/slaunt-audit.git"
36
+ },
37
+ "bugs": {
38
+ "url": "https://github.com/kerodem/slaunt-audit/issues"
39
+ },
40
+ "homepage": "https://github.com/kerodem/slaunt-audit#readme",
41
+ "license": "MIT",
42
+ "dependencies": {
43
+ "@inquirer/prompts": "8.5.2",
44
+ "@modelcontextprotocol/sdk": "1.30.0",
45
+ "chalk": "6.0.0",
46
+ "open": "11.0.0",
47
+ "ora": "9.4.1",
48
+ "smol-toml": "1.7.1",
49
+ "zod": "4.4.3"
50
+ },
51
+ "devDependencies": {
52
+ "@types/node": "24.10.1",
53
+ "typescript": "7.0.2",
54
+ "vitest": "4.1.10"
55
+ }
56
+ }