slaunt 0.1.16 → 0.1.18

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 (164) hide show
  1. package/README.md +17 -106
  2. package/bin/slaunt-hooks.js +96 -0
  3. package/package.json +9 -59
  4. package/release/SlauntKillBar.zip +0 -0
  5. package/release/manifest.json +7 -0
  6. package/scripts/killbar-portability-check.js +67 -0
  7. package/scripts/package-killbar-macos.sh +38 -0
  8. package/src/approval-manager.js +53 -0
  9. package/src/cli-auth.js +230 -0
  10. package/src/compact-wordmark.js +13 -0
  11. package/src/desktop/broker-daemon.js +18 -0
  12. package/src/desktop/broker-grants.js +37 -0
  13. package/src/desktop/broker-hook-command.js +23 -0
  14. package/src/desktop/broker-keychain.js +29 -0
  15. package/src/desktop/broker-launch-agent.js +34 -0
  16. package/src/desktop/broker-service.js +40 -0
  17. package/src/desktop/chat-capture-command.js +7 -0
  18. package/src/desktop/chat-hook-capture.js +445 -0
  19. package/src/desktop/claude-lifecycle.js +143 -0
  20. package/src/desktop/client-identity.js +19 -0
  21. package/src/desktop/native-claude-broker.js +34 -0
  22. package/src/desktop/native-claude-connection.js +42 -0
  23. package/src/desktop/tool-guard-command.js +13 -0
  24. package/src/desktop/tool-guard.js +225 -0
  25. package/src/discovery/catalog.js +734 -0
  26. package/src/full-screen.js +88 -0
  27. package/src/helper-release.js +27 -0
  28. package/src/hidden-oauth.js +70 -0
  29. package/src/independent-grants.js +38 -0
  30. package/src/install-flow.js +71 -0
  31. package/src/killbar-background-install.js +47 -0
  32. package/src/killbar-enrollment.js +74 -0
  33. package/src/killbar-launch-agent.js +10 -0
  34. package/src/mcp-identity.js +6 -0
  35. package/src/native-config.js +150 -0
  36. package/src/native-oauth.js +33 -0
  37. package/src/oauth-cohort.js +43 -0
  38. package/src/pty-wrapper.py +57 -0
  39. package/src/read-json.js +8 -0
  40. package/src/setup/client-installer.js +93 -0
  41. package/src/setup/codex-guard-supervisor.js +34 -0
  42. package/src/setup/hook-installer.js +496 -0
  43. package/src/setup/managed-policy.js +26 -0
  44. package/src/setup/mcp-config-installer.js +204 -0
  45. package/src/setup-flow.js +66 -0
  46. package/src/tui.js +205 -0
  47. package/test/approval-manager.test.js +27 -0
  48. package/test/broker-grants.test.js +14 -0
  49. package/test/broker-keychain.test.js +14 -0
  50. package/test/broker-launch-agent.test.js +15 -0
  51. package/test/broker-service.test.js +42 -0
  52. package/test/cli-auth-recovery.test.js +15 -0
  53. package/test/codex-guard-supervisor.test.js +25 -0
  54. package/test/full-screen.test.js +49 -0
  55. package/test/helper-release.test.js +22 -0
  56. package/test/hidden-oauth.test.js +44 -0
  57. package/test/hook-installer.test.js +232 -0
  58. package/test/independent-grants.test.js +16 -0
  59. package/test/install-flow.test.js +24 -0
  60. package/test/killbar-background-install.test.js +15 -0
  61. package/test/killbar-enrollment.test.js +115 -0
  62. package/test/killbar-launch-agent.test.js +12 -0
  63. package/test/killbar-portability.test.js +17 -0
  64. package/test/managed-policy.test.js +18 -0
  65. package/test/native-claude-broker.test.js +19 -0
  66. package/test/native-claude-connection.test.js +17 -0
  67. package/test/native-claude-hooks.test.js +9 -0
  68. package/test/native-config.test.js +3 -0
  69. package/test/native-integration.cjs +29 -0
  70. package/test/native-oauth.test.js +23 -0
  71. package/test/oauth-cohort.test.js +26 -0
  72. package/test/tui.test.js +100 -0
  73. package/LICENSE +0 -201
  74. package/dist/audit/risk-engine.d.ts +0 -4
  75. package/dist/audit/risk-engine.d.ts.map +0 -1
  76. package/dist/audit/risk-engine.js +0 -174
  77. package/dist/audit/risk-engine.js.map +0 -1
  78. package/dist/audit/run.d.ts +0 -16
  79. package/dist/audit/run.d.ts.map +0 -1
  80. package/dist/audit/run.js +0 -66
  81. package/dist/audit/run.js.map +0 -1
  82. package/dist/classification/builtin-catalog.d.ts +0 -3
  83. package/dist/classification/builtin-catalog.d.ts.map +0 -1
  84. package/dist/classification/builtin-catalog.js +0 -283
  85. package/dist/classification/builtin-catalog.js.map +0 -1
  86. package/dist/classification/catalog.d.ts +0 -10
  87. package/dist/classification/catalog.d.ts.map +0 -1
  88. package/dist/classification/catalog.js +0 -194
  89. package/dist/classification/catalog.js.map +0 -1
  90. package/dist/classification/classifier.d.ts +0 -3
  91. package/dist/classification/classifier.d.ts.map +0 -1
  92. package/dist/classification/classifier.js +0 -64
  93. package/dist/classification/classifier.js.map +0 -1
  94. package/dist/classification/public-catalog-config.d.ts +0 -3
  95. package/dist/classification/public-catalog-config.d.ts.map +0 -1
  96. package/dist/classification/public-catalog-config.js +0 -5
  97. package/dist/classification/public-catalog-config.js.map +0 -1
  98. package/dist/cli.d.ts +0 -3
  99. package/dist/cli.d.ts.map +0 -1
  100. package/dist/cli.js +0 -220
  101. package/dist/cli.js.map +0 -1
  102. package/dist/config/discover.d.ts +0 -8
  103. package/dist/config/discover.d.ts.map +0 -1
  104. package/dist/config/discover.js +0 -163
  105. package/dist/config/discover.js.map +0 -1
  106. package/dist/config/install.d.ts +0 -10
  107. package/dist/config/install.d.ts.map +0 -1
  108. package/dist/config/install.js +0 -143
  109. package/dist/config/install.js.map +0 -1
  110. package/dist/config/paths.d.ts +0 -24
  111. package/dist/config/paths.d.ts.map +0 -1
  112. package/dist/config/paths.js +0 -90
  113. package/dist/config/paths.js.map +0 -1
  114. package/dist/demo.d.ts +0 -4
  115. package/dist/demo.d.ts.map +0 -1
  116. package/dist/demo.js +0 -99
  117. package/dist/demo.js.map +0 -1
  118. package/dist/explanation/local.d.ts +0 -24
  119. package/dist/explanation/local.d.ts.map +0 -1
  120. package/dist/explanation/local.js +0 -667
  121. package/dist/explanation/local.js.map +0 -1
  122. package/dist/mcp/introspect.d.ts +0 -14
  123. package/dist/mcp/introspect.d.ts.map +0 -1
  124. package/dist/mcp/introspect.js +0 -186
  125. package/dist/mcp/introspect.js.map +0 -1
  126. package/dist/presentation/plain-language.d.ts +0 -12
  127. package/dist/presentation/plain-language.d.ts.map +0 -1
  128. package/dist/presentation/plain-language.js +0 -120
  129. package/dist/presentation/plain-language.js.map +0 -1
  130. package/dist/privacy/redaction.d.ts +0 -2
  131. package/dist/privacy/redaction.d.ts.map +0 -1
  132. package/dist/privacy/redaction.js +0 -50
  133. package/dist/privacy/redaction.js.map +0 -1
  134. package/dist/report/html.d.ts +0 -4
  135. package/dist/report/html.d.ts.map +0 -1
  136. package/dist/report/html.js +0 -101
  137. package/dist/report/html.js.map +0 -1
  138. package/dist/tui/analysis-path.d.ts +0 -17
  139. package/dist/tui/analysis-path.d.ts.map +0 -1
  140. package/dist/tui/analysis-path.js +0 -184
  141. package/dist/tui/analysis-path.js.map +0 -1
  142. package/dist/tui/render.d.ts +0 -4
  143. package/dist/tui/render.d.ts.map +0 -1
  144. package/dist/tui/render.js +0 -273
  145. package/dist/tui/render.js.map +0 -1
  146. package/dist/tui/splash.d.ts +0 -15
  147. package/dist/tui/splash.d.ts.map +0 -1
  148. package/dist/tui/splash.js +0 -130
  149. package/dist/tui/splash.js.map +0 -1
  150. package/dist/tui/stream.d.ts +0 -6
  151. package/dist/tui/stream.d.ts.map +0 -1
  152. package/dist/tui/stream.js +0 -56
  153. package/dist/tui/stream.js.map +0 -1
  154. package/dist/types.d.ts +0 -131
  155. package/dist/types.d.ts.map +0 -1
  156. package/dist/types.js +0 -2
  157. package/dist/types.js.map +0 -1
  158. package/dist/version.d.ts +0 -2
  159. package/dist/version.d.ts.map +0 -1
  160. package/dist/version.js +0 -8
  161. package/dist/version.js.map +0 -1
  162. package/models/APACHE-2.0.txt +0 -202
  163. package/models/MODEL.json +0 -29
  164. package/models/NOTICE.md +0 -23
@@ -1 +0,0 @@
1
- {"version":3,"file":"risk-engine.js","sourceRoot":"","sources":["../../src/audit/risk-engine.ts"],"names":[],"mappings":"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"}
@@ -1,16 +0,0 @@
1
- import type { AuditResult, DiscoveredConfiguration } from '../types.js';
2
- export type AuditStage = 'discover' | 'catalog' | 'probe' | 'explain' | 'classify' | 'analyze';
3
- export interface RunAuditOptions {
4
- customPaths?: string[];
5
- allowServerStarts: boolean;
6
- inheritParentEnvironment?: boolean;
7
- allowSensitiveEnvironment?: boolean;
8
- offline?: boolean;
9
- timeoutMs?: number;
10
- explain?: boolean;
11
- demo?: boolean;
12
- discovery?: DiscoveredConfiguration;
13
- onStage?: (stage: AuditStage, detail: string) => void;
14
- }
15
- export declare function runAudit(options: RunAuditOptions): Promise<AuditResult>;
16
- //# sourceMappingURL=run.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"run.d.ts","sourceRoot":"","sources":["../../src/audit/run.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAE,uBAAuB,EAAgB,MAAM,aAAa,CAAC;AAUtF,MAAM,MAAM,UAAU,GAAG,UAAU,GAAG,SAAS,GAAG,OAAO,GAAG,SAAS,GAAG,UAAU,GAAG,SAAS,CAAC;AAE/F,MAAM,WAAW,eAAe;IAC9B,WAAW,CAAC,EAAE,MAAM,EAAE,CAAC;IACvB,iBAAiB,EAAE,OAAO,CAAC;IAC3B,wBAAwB,CAAC,EAAE,OAAO,CAAC;IACnC,yBAAyB,CAAC,EAAE,OAAO,CAAC;IACpC,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,IAAI,CAAC,EAAE,OAAO,CAAC;IACf,SAAS,CAAC,EAAE,uBAAuB,CAAC;IACpC,OAAO,CAAC,EAAE,CAAC,KAAK,EAAE,UAAU,EAAE,MAAM,EAAE,MAAM,KAAK,IAAI,CAAC;CACvD;AAWD,wBAAsB,QAAQ,CAAC,OAAO,EAAE,eAAe,GAAG,OAAO,CAAC,WAAW,CAAC,CAqD7E"}
package/dist/audit/run.js DELETED
@@ -1,66 +0,0 @@
1
- import { classifyTools } from '../classification/classifier.js';
2
- import { loadCatalog } from '../classification/catalog.js';
3
- import { discoverConfigurations } from '../config/discover.js';
4
- import { demoDiscovery, demoProbes } from '../demo.js';
5
- import { explainServers } from '../explanation/local.js';
6
- import { probeServers } from '../mcp/introspect.js';
7
- import { sanitizeCommandArgs } from '../privacy/redaction.js';
8
- import { analyzeRisks, summarizeAudit } from './risk-engine.js';
9
- function sanitizeServer(server) {
10
- return {
11
- ...server,
12
- args: sanitizeCommandArgs(server.args),
13
- env: Object.fromEntries(server.envKeys.map((key) => [key, '[redacted]'])),
14
- headers: Object.fromEntries(server.headerKeys.map((key) => [key, '[redacted]'])),
15
- };
16
- }
17
- export async function runAudit(options) {
18
- options.onStage?.('discover', 'Reading Claude and Codex MCP configuration files');
19
- const discovery = options.demo
20
- ? demoDiscovery()
21
- : options.discovery || await discoverConfigurations({ ...(options.customPaths ? { customPaths: options.customPaths } : {}) });
22
- options.onStage?.('catalog', 'Loading the reviewed classification catalog; local tool data stays local');
23
- const catalog = await loadCatalog({ ...(options.offline || options.demo ? { offline: true } : {}) });
24
- if (catalog.warning)
25
- discovery.warnings.push(`Classification catalog: ${catalog.warning}`);
26
- options.onStage?.('probe', 'Retrieving declared tool inventories without calling any tools');
27
- const probes = options.demo
28
- ? demoProbes()
29
- : await probeServers(discovery.servers, {
30
- allowServerStarts: options.allowServerStarts,
31
- ...(options.inheritParentEnvironment ? { inheritParentEnvironment: true } : {}),
32
- ...(options.allowSensitiveEnvironment ? { allowSensitiveEnvironment: true } : {}),
33
- ...(options.timeoutMs ? { timeoutMs: options.timeoutMs } : {}),
34
- });
35
- options.onStage?.('explain', 'Explaining every MCP server with a loopback-only local model');
36
- const explanations = await explainServers(discovery.servers, probes, {
37
- enabled: !options.demo && options.explain !== false,
38
- ...(options.timeoutMs ? { timeoutMs: Math.min(options.timeoutMs, 5_000) } : {}),
39
- });
40
- options.onStage?.('classify', 'Matching each tool to its capabilities and risk level');
41
- const tools = classifyTools(probes.flatMap((probe) => probe.tools), catalog.rules);
42
- options.onStage?.('analyze', 'Correlating capabilities across agent clients and MCP servers');
43
- const findings = analyzeRisks(discovery.servers, tools);
44
- const clientCount = discovery.clients.filter((client) => client.detected).length;
45
- const serverCount = new Set(discovery.servers.map((server) => server.name.toLowerCase())).size;
46
- const summary = summarizeAudit(clientCount, serverCount, tools, findings, discovery.servers.length);
47
- return {
48
- schemaVersion: 1,
49
- generatedAt: new Date().toISOString(),
50
- privacy: {
51
- uploadedAuditData: false,
52
- catalogSource: catalog.source,
53
- startedConfiguredServers: options.allowServerStarts && discovery.servers.some((server) => server.transport === 'stdio'),
54
- },
55
- discovery: {
56
- ...discovery,
57
- servers: discovery.servers.map(sanitizeServer),
58
- },
59
- probes,
60
- explanations,
61
- tools,
62
- findings,
63
- summary,
64
- };
65
- }
66
- //# sourceMappingURL=run.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"run.js","sourceRoot":"","sources":["../../src/audit/run.ts"],"names":[],"mappings":"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"}
@@ -1,3 +0,0 @@
1
- import type { ClassificationRule } from '../types.js';
2
- export declare const BUILTIN_CATALOG: ClassificationRule[];
3
- //# sourceMappingURL=builtin-catalog.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"builtin-catalog.d.ts","sourceRoot":"","sources":["../../src/classification/builtin-catalog.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,aAAa,CAAC;AAEtD,eAAO,MAAM,eAAe,EAAE,kBAAkB,EAyR/C,CAAC"}
@@ -1,283 +0,0 @@
1
- export const BUILTIN_CATALOG = [
2
- {
3
- id: 'deploy-production',
4
- toolPattern: '*deploy*',
5
- descriptionTerms: ['deploy', 'production'],
6
- category: 'Deployment',
7
- capabilities: ['deploy-production', 'write-data', 'network-access'],
8
- riskScore: 96,
9
- riskLevel: 'critical',
10
- sensitive: true,
11
- verified: true,
12
- rationale: 'Can change a deployed production environment.',
13
- priority: 100,
14
- },
15
- {
16
- id: 'shell-execution',
17
- toolPattern: '*exec*command*',
18
- category: 'Shell',
19
- capabilities: ['execute-shell', 'execute-code', 'read-files', 'write-files'],
20
- riskScore: 90,
21
- riskLevel: 'high',
22
- sensitive: true,
23
- verified: true,
24
- rationale: 'Can execute arbitrary operating-system commands.',
25
- priority: 95,
26
- },
27
- {
28
- id: 'shell-run',
29
- namespace: '*shell*',
30
- toolPattern: '*run*command*',
31
- category: 'Shell',
32
- capabilities: ['execute-shell', 'execute-code', 'read-files', 'write-files'],
33
- riskScore: 90,
34
- riskLevel: 'high',
35
- sensitive: true,
36
- verified: true,
37
- rationale: 'Can execute commands through a shell-capable server.',
38
- priority: 94,
39
- },
40
- {
41
- id: 'secrets-read',
42
- namespace: '*secret*',
43
- toolPattern: '*',
44
- category: 'Secrets',
45
- capabilities: ['read-secrets'],
46
- riskScore: 88,
47
- riskLevel: 'high',
48
- sensitive: true,
49
- verified: true,
50
- rationale: 'Can read or enumerate credential material.',
51
- priority: 92,
52
- },
53
- {
54
- id: 'github-merge',
55
- namespace: '*github*',
56
- toolPattern: '*merge*pull*request*',
57
- category: 'Source control',
58
- capabilities: ['merge-pull-request', 'edit-code', 'write-data'],
59
- riskScore: 86,
60
- riskLevel: 'high',
61
- sensitive: true,
62
- verified: true,
63
- rationale: 'Can merge changes into a repository branch.',
64
- priority: 90,
65
- },
66
- {
67
- id: 'github-delete',
68
- namespace: '*github*',
69
- toolPattern: '*delete*',
70
- category: 'Source control',
71
- capabilities: ['delete-data', 'edit-code', 'write-data'],
72
- riskScore: 86,
73
- riskLevel: 'high',
74
- sensitive: true,
75
- verified: true,
76
- rationale: 'Can delete repository content or references.',
77
- priority: 89,
78
- },
79
- {
80
- id: 'github-write-code',
81
- namespace: '*github*',
82
- toolPattern: '*update*file*',
83
- category: 'Source control',
84
- capabilities: ['edit-code', 'write-data'],
85
- riskScore: 75,
86
- riskLevel: 'high',
87
- sensitive: true,
88
- verified: true,
89
- rationale: 'Can edit source-controlled files.',
90
- priority: 85,
91
- },
92
- {
93
- id: 'github-create-code',
94
- namespace: '*github*',
95
- toolPattern: '*create*file*',
96
- category: 'Source control',
97
- capabilities: ['edit-code', 'write-data'],
98
- riskScore: 75,
99
- riskLevel: 'high',
100
- sensitive: true,
101
- verified: true,
102
- rationale: 'Can create source-controlled files.',
103
- priority: 85,
104
- },
105
- {
106
- id: 'github-pr-create',
107
- namespace: '*github*',
108
- toolPattern: '*create*pull*request*',
109
- category: 'Source control',
110
- capabilities: ['create-pull-request', 'write-data'],
111
- riskScore: 65,
112
- riskLevel: 'medium',
113
- sensitive: true,
114
- verified: true,
115
- rationale: 'Can create pull requests visible to collaborators.',
116
- priority: 82,
117
- },
118
- {
119
- id: 'filesystem-delete',
120
- namespace: '*file*',
121
- toolPattern: '*delete*',
122
- category: 'Filesystem',
123
- capabilities: ['delete-data', 'write-files'],
124
- riskScore: 84,
125
- riskLevel: 'high',
126
- sensitive: true,
127
- verified: true,
128
- rationale: 'Can remove local files.',
129
- priority: 88,
130
- },
131
- {
132
- id: 'filesystem-write',
133
- namespace: '*file*',
134
- toolPattern: '*write*',
135
- category: 'Filesystem',
136
- capabilities: ['write-files'],
137
- riskScore: 70,
138
- riskLevel: 'high',
139
- sensitive: true,
140
- verified: true,
141
- rationale: 'Can write local files.',
142
- priority: 80,
143
- },
144
- {
145
- id: 'filesystem-edit',
146
- namespace: '*file*',
147
- toolPattern: '*edit*',
148
- category: 'Filesystem',
149
- capabilities: ['write-files'],
150
- riskScore: 70,
151
- riskLevel: 'high',
152
- sensitive: true,
153
- verified: true,
154
- rationale: 'Can modify local files.',
155
- priority: 80,
156
- },
157
- {
158
- id: 'filesystem-read',
159
- namespace: '*file*',
160
- toolPattern: '*read*',
161
- category: 'Filesystem',
162
- capabilities: ['read-files'],
163
- riskScore: 45,
164
- riskLevel: 'medium',
165
- sensitive: true,
166
- verified: true,
167
- rationale: 'Can read local files that may contain sensitive data.',
168
- priority: 70,
169
- },
170
- {
171
- id: 'auth-management',
172
- toolPattern: '*auth*',
173
- descriptionTerms: ['user'],
174
- category: 'Identity',
175
- capabilities: ['manage-auth', 'write-data'],
176
- riskScore: 80,
177
- riskLevel: 'high',
178
- sensitive: true,
179
- verified: false,
180
- rationale: 'May change authentication or identity state.',
181
- priority: 75,
182
- },
183
- {
184
- id: 'database-write',
185
- toolPattern: '*execute*sql*',
186
- category: 'Database',
187
- capabilities: ['read-data', 'write-data', 'delete-data'],
188
- riskScore: 85,
189
- riskLevel: 'high',
190
- sensitive: true,
191
- verified: true,
192
- rationale: 'Can execute SQL that may read or modify database state.',
193
- priority: 86,
194
- },
195
- {
196
- id: 'database-query',
197
- toolPattern: '*query*',
198
- descriptionTerms: ['database'],
199
- category: 'Database',
200
- capabilities: ['read-data'],
201
- riskScore: 48,
202
- riskLevel: 'medium',
203
- sensitive: true,
204
- verified: false,
205
- rationale: 'Can query a data store.',
206
- priority: 55,
207
- },
208
- {
209
- id: 'browser-control',
210
- namespace: '*browser*',
211
- toolPattern: '*',
212
- category: 'Browser automation',
213
- capabilities: ['control-browser', 'network-access'],
214
- riskScore: 62,
215
- riskLevel: 'medium',
216
- sensitive: true,
217
- verified: true,
218
- rationale: 'Can interact with websites using the user browser context.',
219
- priority: 68,
220
- },
221
- {
222
- id: 'computer-control',
223
- namespace: '*computer*',
224
- toolPattern: '*',
225
- category: 'Computer control',
226
- capabilities: ['execute-code', 'control-browser'],
227
- riskScore: 82,
228
- riskLevel: 'high',
229
- sensitive: true,
230
- verified: true,
231
- rationale: 'Can control local applications or the desktop.',
232
- priority: 72,
233
- },
234
- {
235
- id: 'message-send',
236
- toolPattern: '*send*message*',
237
- category: 'Communications',
238
- capabilities: ['send-message', 'write-data', 'network-access'],
239
- riskScore: 66,
240
- riskLevel: 'medium',
241
- sensitive: true,
242
- verified: true,
243
- rationale: 'Can communicate externally as the configured user.',
244
- priority: 67,
245
- },
246
- {
247
- id: 'read-list-get',
248
- toolPattern: '*list*',
249
- category: 'Read-only data',
250
- capabilities: ['read-data'],
251
- riskScore: 22,
252
- riskLevel: 'low',
253
- sensitive: false,
254
- verified: false,
255
- rationale: 'Appears to list data without changing state.',
256
- priority: 20,
257
- },
258
- {
259
- id: 'read-get',
260
- toolPattern: '*get*',
261
- category: 'Read-only data',
262
- capabilities: ['read-data'],
263
- riskScore: 22,
264
- riskLevel: 'low',
265
- sensitive: false,
266
- verified: false,
267
- rationale: 'Appears to retrieve data without changing state.',
268
- priority: 20,
269
- },
270
- {
271
- id: 'read-search',
272
- toolPattern: '*search*',
273
- category: 'Read-only data',
274
- capabilities: ['read-data'],
275
- riskScore: 25,
276
- riskLevel: 'low',
277
- sensitive: false,
278
- verified: false,
279
- rationale: 'Appears to search data without changing state.',
280
- priority: 20,
281
- },
282
- ];
283
- //# sourceMappingURL=builtin-catalog.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"builtin-catalog.js","sourceRoot":"","sources":["../../src/classification/builtin-catalog.ts"],"names":[],"mappings":"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"}
@@ -1,10 +0,0 @@
1
- import type { ClassificationRule } from '../types.js';
2
- export interface CatalogResult {
3
- rules: ClassificationRule[];
4
- source: 'database' | 'cache' | 'built-in';
5
- warning?: string;
6
- }
7
- export declare function loadCatalog(options?: {
8
- offline?: boolean;
9
- }): Promise<CatalogResult>;
10
- //# sourceMappingURL=catalog.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"catalog.d.ts","sourceRoot":"","sources":["../../src/classification/catalog.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAc,kBAAkB,EAAE,MAAM,aAAa,CAAC;AAuKlE,MAAM,WAAW,aAAa;IAC5B,KAAK,EAAE,kBAAkB,EAAE,CAAC;IAC5B,MAAM,EAAE,UAAU,GAAG,OAAO,GAAG,UAAU,CAAC;IAC1C,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB;AAED,wBAAsB,WAAW,CAAC,OAAO,GAAE;IAAE,OAAO,CAAC,EAAE,OAAO,CAAA;CAAO,GAAG,OAAO,CAAC,aAAa,CAAC,CA0B7F"}
@@ -1,194 +0,0 @@
1
- import { randomBytes } from 'node:crypto';
2
- import { mkdir, readFile, rename, writeFile } from 'node:fs/promises';
3
- import { dirname, join, resolve } from 'node:path';
4
- import { z } from 'zod';
5
- import { BUILTIN_CATALOG } from './builtin-catalog.js';
6
- import { PUBLIC_CATALOG_KEY, PUBLIC_CATALOG_URL } from './public-catalog-config.js';
7
- const MAX_CATALOG_BYTES = 2 * 1024 * 1024;
8
- const capabilities = [
9
- 'read-data', 'write-data', 'read-files', 'write-files', 'delete-data', 'execute-code',
10
- 'execute-shell', 'read-secrets', 'manage-auth', 'network-access', 'deploy-production',
11
- 'edit-code', 'create-pull-request', 'merge-pull-request', 'administer-system',
12
- 'control-browser', 'send-message',
13
- ];
14
- const databaseRowSchema = z.object({
15
- id: z.union([z.string(), z.number()]).transform(String),
16
- namespace: z.string().max(200).nullable().optional(),
17
- tool_pattern: z.string().min(1).max(200),
18
- description_terms: z.array(z.string().min(1).max(100)).max(20).default([]),
19
- category: z.string().min(1).max(100),
20
- capabilities: z.array(z.enum(capabilities)).max(20),
21
- risk_score: z.number().int().min(0).max(100),
22
- risk_level: z.enum(['critical', 'high', 'medium', 'low', 'info']),
23
- sensitive: z.boolean(),
24
- verified: z.boolean(),
25
- rationale: z.string().min(1).max(500),
26
- priority: z.number().int().min(0).max(1000),
27
- });
28
- const cacheSchema = z.object({
29
- fetchedAt: z.string(),
30
- rules: z.array(databaseRowSchema).max(10_000),
31
- });
32
- function cachePath() {
33
- const home = process.env.SLAUNT_AUDIT_HOME || process.env.HOME || process.cwd();
34
- return resolve(process.env.SLAUNT_AUDIT_CACHE || join(home, '.cache', 'slaunt', 'catalog-v1.json'));
35
- }
36
- function mapRule(row) {
37
- return {
38
- id: `db:${row.id}`,
39
- ...(row.namespace ? { namespace: row.namespace } : {}),
40
- toolPattern: row.tool_pattern,
41
- ...(row.description_terms.length > 0 ? { descriptionTerms: row.description_terms } : {}),
42
- category: row.category,
43
- capabilities: row.capabilities,
44
- riskScore: row.risk_score,
45
- riskLevel: row.risk_level,
46
- sensitive: row.sensitive,
47
- verified: row.verified,
48
- rationale: row.rationale,
49
- priority: row.priority + 1_000,
50
- };
51
- }
52
- async function readCache() {
53
- try {
54
- const raw = await readFile(cachePath(), 'utf8');
55
- const parsed = cacheSchema.parse(JSON.parse(raw));
56
- const age = Date.now() - Date.parse(parsed.fetchedAt);
57
- if (!Number.isFinite(age) || age > 7 * 24 * 60 * 60 * 1000)
58
- return undefined;
59
- return parsed.rules.map(mapRule);
60
- }
61
- catch {
62
- return undefined;
63
- }
64
- }
65
- async function writeCache(rows) {
66
- const path = cachePath();
67
- const temporary = join(dirname(path), `.${randomBytes(12).toString('hex')}.tmp`);
68
- await mkdir(dirname(path), { recursive: true, mode: 0o700 });
69
- await writeFile(temporary, `${JSON.stringify({ fetchedAt: new Date().toISOString(), rules: rows })}\n`, {
70
- encoding: 'utf8',
71
- mode: 0o600,
72
- flag: 'wx',
73
- });
74
- await rename(temporary, path);
75
- }
76
- function validatedSupabaseUrl(raw) {
77
- const url = new URL(raw);
78
- const local = ['localhost', '127.0.0.1', '::1'].includes(url.hostname);
79
- if (url.username || url.password || url.hash || (url.protocol !== 'https:' && !(local && url.protocol === 'http:'))) {
80
- throw new Error('Supabase URL must be credential-free HTTPS (or localhost HTTP)');
81
- }
82
- return url;
83
- }
84
- function legacyJwtRole(key) {
85
- if (key.split('.').length !== 3)
86
- return undefined;
87
- try {
88
- const payload = JSON.parse(Buffer.from(key.split('.')[1] || '', 'base64url').toString('utf8'));
89
- if (!payload || typeof payload !== 'object' || !('role' in payload))
90
- return undefined;
91
- return typeof payload.role === 'string' ? payload.role : undefined;
92
- }
93
- catch {
94
- return undefined;
95
- }
96
- }
97
- function validatedPublicKey(raw) {
98
- const key = raw.trim();
99
- if (!key || key.length > 2_048 || /[\r\n]/u.test(key))
100
- throw new Error('Supabase publishable key is malformed');
101
- if (key.startsWith('sb_secret_'))
102
- throw new Error('Refusing to use a Supabase secret key in the public audit client');
103
- if (key.startsWith('sb_') && !key.startsWith('sb_publishable_')) {
104
- throw new Error('Supabase catalog requires a publishable key');
105
- }
106
- const role = legacyJwtRole(key);
107
- if (key.split('.').length === 3 && role !== 'anon') {
108
- throw new Error('Supabase catalog accepts only a legacy anon JWT, never a service-role or user token');
109
- }
110
- if (!key.startsWith('sb_publishable_') && role !== 'anon') {
111
- throw new Error('Supabase catalog requires a publishable key');
112
- }
113
- return { key, legacyJwt: role === 'anon' };
114
- }
115
- async function readBoundedBody(response) {
116
- const declaredLength = Number(response.headers.get('content-length'));
117
- if (Number.isFinite(declaredLength) && declaredLength > MAX_CATALOG_BYTES) {
118
- throw new Error('catalog response exceeded 2 MiB');
119
- }
120
- if (!response.body)
121
- return '';
122
- const reader = response.body.getReader();
123
- const chunks = [];
124
- let received = 0;
125
- while (true) {
126
- const { done, value } = await reader.read();
127
- if (done)
128
- break;
129
- received += value.byteLength;
130
- if (received > MAX_CATALOG_BYTES) {
131
- await reader.cancel();
132
- throw new Error('catalog response exceeded 2 MiB');
133
- }
134
- chunks.push(value);
135
- }
136
- return Buffer.concat(chunks, received).toString('utf8');
137
- }
138
- async function fetchDatabaseRules() {
139
- const rawUrl = process.env.SLAUNT_SUPABASE_URL || PUBLIC_CATALOG_URL;
140
- const candidateKey = process.env.SLAUNT_SUPABASE_PUBLISHABLE_KEY
141
- || process.env.SLAUNT_SUPABASE_ANON_KEY
142
- || PUBLIC_CATALOG_KEY;
143
- const base = validatedSupabaseUrl(rawUrl);
144
- const { key, legacyJwt } = validatedPublicKey(candidateKey);
145
- const endpoint = new URL('/rest/v1/tool_classification_catalog', base);
146
- endpoint.searchParams.set('select', 'id,namespace,tool_pattern,description_terms,category,capabilities,risk_score,risk_level,sensitive,verified,rationale,priority');
147
- endpoint.searchParams.set('active', 'eq.true');
148
- endpoint.searchParams.set('order', 'priority.desc');
149
- endpoint.searchParams.set('limit', '10000');
150
- const controller = new AbortController();
151
- const timeout = setTimeout(() => controller.abort(), 5_000);
152
- try {
153
- const headers = { apikey: key, accept: 'application/json' };
154
- if (legacyJwt)
155
- headers.authorization = `Bearer ${key}`;
156
- const response = await fetch(endpoint, { headers, signal: controller.signal, redirect: 'error' });
157
- if (!response.ok)
158
- throw new Error(`catalog request returned HTTP ${response.status}`);
159
- const body = await readBoundedBody(response);
160
- return z.array(databaseRowSchema).max(10_000).parse(JSON.parse(body));
161
- }
162
- finally {
163
- clearTimeout(timeout);
164
- }
165
- }
166
- export async function loadCatalog(options = {}) {
167
- if (!options.offline) {
168
- try {
169
- const rows = await fetchDatabaseRules();
170
- await writeCache(rows).catch(() => undefined);
171
- return { rules: [...rows.map(mapRule), ...BUILTIN_CATALOG], source: 'database' };
172
- }
173
- catch (error) {
174
- const cached = await readCache();
175
- if (cached) {
176
- return {
177
- rules: [...cached, ...BUILTIN_CATALOG],
178
- source: 'cache',
179
- warning: error instanceof Error ? error.message : 'database catalog unavailable',
180
- };
181
- }
182
- return {
183
- rules: BUILTIN_CATALOG,
184
- source: 'built-in',
185
- warning: error instanceof Error ? error.message : 'database catalog unavailable',
186
- };
187
- }
188
- }
189
- const cached = options.offline ? undefined : await readCache();
190
- return cached
191
- ? { rules: [...cached, ...BUILTIN_CATALOG], source: 'cache' }
192
- : { rules: BUILTIN_CATALOG, source: 'built-in' };
193
- }
194
- //# sourceMappingURL=catalog.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"catalog.js","sourceRoot":"","sources":["../../src/classification/catalog.ts"],"names":[],"mappings":"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"}
@@ -1,3 +0,0 @@
1
- import type { ClassificationRule, ClassifiedTool, DeclaredTool } from '../types.js';
2
- export declare function classifyTools(tools: DeclaredTool[], rules: ClassificationRule[]): ClassifiedTool[];
3
- //# sourceMappingURL=classifier.d.ts.map