@dotsetlabs/tollgate 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 (215) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +885 -0
  3. package/dist/analyzers/filesystem.d.ts +26 -0
  4. package/dist/analyzers/filesystem.d.ts.map +1 -0
  5. package/dist/analyzers/filesystem.js +284 -0
  6. package/dist/analyzers/filesystem.js.map +1 -0
  7. package/dist/analyzers/http.d.ts +90 -0
  8. package/dist/analyzers/http.d.ts.map +1 -0
  9. package/dist/analyzers/http.js +433 -0
  10. package/dist/analyzers/http.js.map +1 -0
  11. package/dist/analyzers/index.d.ts +101 -0
  12. package/dist/analyzers/index.d.ts.map +1 -0
  13. package/dist/analyzers/index.js +342 -0
  14. package/dist/analyzers/index.js.map +1 -0
  15. package/dist/analyzers/loader.d.ts +114 -0
  16. package/dist/analyzers/loader.d.ts.map +1 -0
  17. package/dist/analyzers/loader.js +184 -0
  18. package/dist/analyzers/loader.js.map +1 -0
  19. package/dist/analyzers/prompt-injection.d.ts +95 -0
  20. package/dist/analyzers/prompt-injection.d.ts.map +1 -0
  21. package/dist/analyzers/prompt-injection.js +725 -0
  22. package/dist/analyzers/prompt-injection.js.map +1 -0
  23. package/dist/analyzers/sdk.d.ts +230 -0
  24. package/dist/analyzers/sdk.d.ts.map +1 -0
  25. package/dist/analyzers/sdk.js +283 -0
  26. package/dist/analyzers/sdk.js.map +1 -0
  27. package/dist/analyzers/shell.d.ts +20 -0
  28. package/dist/analyzers/shell.d.ts.map +1 -0
  29. package/dist/analyzers/shell.js +297 -0
  30. package/dist/analyzers/shell.js.map +1 -0
  31. package/dist/analyzers/sql.d.ts +37 -0
  32. package/dist/analyzers/sql.d.ts.map +1 -0
  33. package/dist/analyzers/sql.js +455 -0
  34. package/dist/analyzers/sql.js.map +1 -0
  35. package/dist/analyzers/types.d.ts +117 -0
  36. package/dist/analyzers/types.d.ts.map +1 -0
  37. package/dist/analyzers/types.js +46 -0
  38. package/dist/analyzers/types.js.map +1 -0
  39. package/dist/approval/interactive.d.ts +72 -0
  40. package/dist/approval/interactive.d.ts.map +1 -0
  41. package/dist/approval/interactive.js +550 -0
  42. package/dist/approval/interactive.js.map +1 -0
  43. package/dist/approval/terminal.d.ts +59 -0
  44. package/dist/approval/terminal.d.ts.map +1 -0
  45. package/dist/approval/terminal.js +238 -0
  46. package/dist/approval/terminal.js.map +1 -0
  47. package/dist/approval/types.d.ts +66 -0
  48. package/dist/approval/types.d.ts.map +1 -0
  49. package/dist/approval/types.js +2 -0
  50. package/dist/approval/types.js.map +1 -0
  51. package/dist/audit/exporter.d.ts +138 -0
  52. package/dist/audit/exporter.d.ts.map +1 -0
  53. package/dist/audit/exporter.js +366 -0
  54. package/dist/audit/exporter.js.map +1 -0
  55. package/dist/audit/logger.d.ts +156 -0
  56. package/dist/audit/logger.d.ts.map +1 -0
  57. package/dist/audit/logger.js +406 -0
  58. package/dist/audit/logger.js.map +1 -0
  59. package/dist/audit/redaction.d.ts +110 -0
  60. package/dist/audit/redaction.d.ts.map +1 -0
  61. package/dist/audit/redaction.js +307 -0
  62. package/dist/audit/redaction.js.map +1 -0
  63. package/dist/audit/schema.d.ts +76 -0
  64. package/dist/audit/schema.d.ts.map +1 -0
  65. package/dist/audit/schema.js +122 -0
  66. package/dist/audit/schema.js.map +1 -0
  67. package/dist/cli/commands/doctor.d.ts +34 -0
  68. package/dist/cli/commands/doctor.d.ts.map +1 -0
  69. package/dist/cli/commands/doctor.js +431 -0
  70. package/dist/cli/commands/doctor.js.map +1 -0
  71. package/dist/cli/commands/export.d.ts +18 -0
  72. package/dist/cli/commands/export.d.ts.map +1 -0
  73. package/dist/cli/commands/export.js +63 -0
  74. package/dist/cli/commands/export.js.map +1 -0
  75. package/dist/cli/commands/init.d.ts +12 -0
  76. package/dist/cli/commands/init.d.ts.map +1 -0
  77. package/dist/cli/commands/init.js +102 -0
  78. package/dist/cli/commands/init.js.map +1 -0
  79. package/dist/cli/commands/logs.d.ts +11 -0
  80. package/dist/cli/commands/logs.d.ts.map +1 -0
  81. package/dist/cli/commands/logs.js +60 -0
  82. package/dist/cli/commands/logs.js.map +1 -0
  83. package/dist/cli/commands/scan.d.ts +29 -0
  84. package/dist/cli/commands/scan.d.ts.map +1 -0
  85. package/dist/cli/commands/scan.js +251 -0
  86. package/dist/cli/commands/scan.js.map +1 -0
  87. package/dist/cli/commands/serve.d.ts +26 -0
  88. package/dist/cli/commands/serve.d.ts.map +1 -0
  89. package/dist/cli/commands/serve.js +424 -0
  90. package/dist/cli/commands/serve.js.map +1 -0
  91. package/dist/cli/commands/start.d.ts +20 -0
  92. package/dist/cli/commands/start.d.ts.map +1 -0
  93. package/dist/cli/commands/start.js +82 -0
  94. package/dist/cli/commands/start.js.map +1 -0
  95. package/dist/cli/commands/stats.d.ts +10 -0
  96. package/dist/cli/commands/stats.d.ts.map +1 -0
  97. package/dist/cli/commands/stats.js +42 -0
  98. package/dist/cli/commands/stats.js.map +1 -0
  99. package/dist/cli/commands/templates.d.ts +26 -0
  100. package/dist/cli/commands/templates.d.ts.map +1 -0
  101. package/dist/cli/commands/templates.js +221 -0
  102. package/dist/cli/commands/templates.js.map +1 -0
  103. package/dist/cli/commands/validate.d.ts +12 -0
  104. package/dist/cli/commands/validate.d.ts.map +1 -0
  105. package/dist/cli/commands/validate.js +107 -0
  106. package/dist/cli/commands/validate.js.map +1 -0
  107. package/dist/cli/commands/wrap.d.ts +19 -0
  108. package/dist/cli/commands/wrap.d.ts.map +1 -0
  109. package/dist/cli/commands/wrap.js +59 -0
  110. package/dist/cli/commands/wrap.js.map +1 -0
  111. package/dist/cli/index.d.ts +17 -0
  112. package/dist/cli/index.d.ts.map +1 -0
  113. package/dist/cli/index.js +202 -0
  114. package/dist/cli/index.js.map +1 -0
  115. package/dist/cli/ui.d.ts +139 -0
  116. package/dist/cli/ui.d.ts.map +1 -0
  117. package/dist/cli/ui.js +271 -0
  118. package/dist/cli/ui.js.map +1 -0
  119. package/dist/constants.d.ts +33 -0
  120. package/dist/constants.d.ts.map +1 -0
  121. package/dist/constants.js +54 -0
  122. package/dist/constants.js.map +1 -0
  123. package/dist/errors.d.ts +28 -0
  124. package/dist/errors.d.ts.map +1 -0
  125. package/dist/errors.js +37 -0
  126. package/dist/errors.js.map +1 -0
  127. package/dist/index.d.ts +49 -0
  128. package/dist/index.d.ts.map +1 -0
  129. package/dist/index.js +82 -0
  130. package/dist/index.js.map +1 -0
  131. package/dist/orchestrator/index.d.ts +11 -0
  132. package/dist/orchestrator/index.d.ts.map +1 -0
  133. package/dist/orchestrator/index.js +10 -0
  134. package/dist/orchestrator/index.js.map +1 -0
  135. package/dist/orchestrator/manager.d.ts +127 -0
  136. package/dist/orchestrator/manager.d.ts.map +1 -0
  137. package/dist/orchestrator/manager.js +498 -0
  138. package/dist/orchestrator/manager.js.map +1 -0
  139. package/dist/orchestrator/types.d.ts +141 -0
  140. package/dist/orchestrator/types.d.ts.map +1 -0
  141. package/dist/orchestrator/types.js +9 -0
  142. package/dist/orchestrator/types.js.map +1 -0
  143. package/dist/policy/engine.d.ts +55 -0
  144. package/dist/policy/engine.d.ts.map +1 -0
  145. package/dist/policy/engine.js +288 -0
  146. package/dist/policy/engine.js.map +1 -0
  147. package/dist/policy/natural-language.d.ts +141 -0
  148. package/dist/policy/natural-language.d.ts.map +1 -0
  149. package/dist/policy/natural-language.js +552 -0
  150. package/dist/policy/natural-language.js.map +1 -0
  151. package/dist/policy/parser.d.ts +141 -0
  152. package/dist/policy/parser.d.ts.map +1 -0
  153. package/dist/policy/parser.js +314 -0
  154. package/dist/policy/parser.js.map +1 -0
  155. package/dist/policy/types.d.ts +428 -0
  156. package/dist/policy/types.d.ts.map +1 -0
  157. package/dist/policy/types.js +32 -0
  158. package/dist/policy/types.js.map +1 -0
  159. package/dist/policy/validator.d.ts +72 -0
  160. package/dist/policy/validator.d.ts.map +1 -0
  161. package/dist/policy/validator.js +453 -0
  162. package/dist/policy/validator.js.map +1 -0
  163. package/dist/proxy/bridge.d.ts +84 -0
  164. package/dist/proxy/bridge.d.ts.map +1 -0
  165. package/dist/proxy/bridge.js +217 -0
  166. package/dist/proxy/bridge.js.map +1 -0
  167. package/dist/proxy/client.d.ts +130 -0
  168. package/dist/proxy/client.d.ts.map +1 -0
  169. package/dist/proxy/client.js +290 -0
  170. package/dist/proxy/client.js.map +1 -0
  171. package/dist/proxy/server.d.ts +111 -0
  172. package/dist/proxy/server.d.ts.map +1 -0
  173. package/dist/proxy/server.js +444 -0
  174. package/dist/proxy/server.js.map +1 -0
  175. package/dist/scanner.d.ts +91 -0
  176. package/dist/scanner.d.ts.map +1 -0
  177. package/dist/scanner.js +373 -0
  178. package/dist/scanner.js.map +1 -0
  179. package/dist/session/index.d.ts +32 -0
  180. package/dist/session/index.d.ts.map +1 -0
  181. package/dist/session/index.js +31 -0
  182. package/dist/session/index.js.map +1 -0
  183. package/dist/session/manager.d.ts +166 -0
  184. package/dist/session/manager.d.ts.map +1 -0
  185. package/dist/session/manager.js +454 -0
  186. package/dist/session/manager.js.map +1 -0
  187. package/dist/session/sqlite-store.d.ts +54 -0
  188. package/dist/session/sqlite-store.d.ts.map +1 -0
  189. package/dist/session/sqlite-store.js +209 -0
  190. package/dist/session/sqlite-store.js.map +1 -0
  191. package/dist/session/types.d.ts +179 -0
  192. package/dist/session/types.d.ts.map +1 -0
  193. package/dist/session/types.js +38 -0
  194. package/dist/session/types.js.map +1 -0
  195. package/dist/templates.d.ts +64 -0
  196. package/dist/templates.d.ts.map +1 -0
  197. package/dist/templates.js +451 -0
  198. package/dist/templates.js.map +1 -0
  199. package/dist/utils/config.d.ts +57 -0
  200. package/dist/utils/config.d.ts.map +1 -0
  201. package/dist/utils/config.js +104 -0
  202. package/dist/utils/config.js.map +1 -0
  203. package/dist/utils/errors.d.ts +18 -0
  204. package/dist/utils/errors.d.ts.map +1 -0
  205. package/dist/utils/errors.js +35 -0
  206. package/dist/utils/errors.js.map +1 -0
  207. package/dist/utils/logger.d.ts +144 -0
  208. package/dist/utils/logger.d.ts.map +1 -0
  209. package/dist/utils/logger.js +300 -0
  210. package/dist/utils/logger.js.map +1 -0
  211. package/dist/wizard.d.ts +68 -0
  212. package/dist/wizard.d.ts.map +1 -0
  213. package/dist/wizard.js +395 -0
  214. package/dist/wizard.js.map +1 -0
  215. package/package.json +99 -0
@@ -0,0 +1 @@
1
+ {"version":3,"file":"prompt-injection.js","sourceRoot":"","sources":["../../src/analyzers/prompt-injection.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,230 @@
1
+ /**
2
+ * Custom Analyzer SDK
3
+ *
4
+ * Provides a simple API for creating custom content analyzers that can be
5
+ * loaded from external files and used in tollgate.yaml configurations.
6
+ *
7
+ * @example
8
+ * ```typescript
9
+ * // my-graphql-analyzer.ts
10
+ * import { defineAnalyzer } from '@dotsetlabs/tollgate/sdk';
11
+ *
12
+ * export default defineAnalyzer({
13
+ * name: 'graphql',
14
+ * analyze(content, context) {
15
+ * if (content.includes('mutation')) {
16
+ * return { risk: 'write', reason: 'GraphQL mutation detected' };
17
+ * }
18
+ * return { risk: 'read', reason: 'GraphQL query' };
19
+ * }
20
+ * });
21
+ * ```
22
+ *
23
+ * @module analyzers/sdk
24
+ */
25
+ import type { ContentAnalyzer, AnalysisResult, AnalyzerContext, RiskLevel } from './types.js';
26
+ /**
27
+ * Configuration for defining a custom analyzer.
28
+ */
29
+ export interface AnalyzerDefinition {
30
+ /**
31
+ * Unique name for the analyzer.
32
+ * Must be alphanumeric with hyphens/underscores, e.g., 'graphql', 'my-custom-analyzer'.
33
+ */
34
+ name: string;
35
+ /**
36
+ * Description of what the analyzer does.
37
+ * Displayed in documentation and error messages.
38
+ */
39
+ description?: string;
40
+ /**
41
+ * The analyze function that processes content and returns a risk assessment.
42
+ *
43
+ * @param content - The content to analyze (extracted from tool arguments)
44
+ * @param context - Optional context including tool name, server, and full args
45
+ * @returns Analysis result with risk level and reason
46
+ */
47
+ analyze: (content: string, context?: AnalyzerContext) => AnalysisResult | Promise<AnalysisResult>;
48
+ /**
49
+ * Optional initialization function called when the analyzer is registered.
50
+ * Use for setup, loading resources, etc.
51
+ */
52
+ init?: () => void | Promise<void>;
53
+ /**
54
+ * Optional cleanup function called when the analyzer is unregistered.
55
+ */
56
+ cleanup?: () => void | Promise<void>;
57
+ /**
58
+ * Optional function to extract analyzable content from tool arguments.
59
+ * If not provided, the default extraction logic is used.
60
+ *
61
+ * @param tool - The tool name
62
+ * @param args - The tool arguments
63
+ * @returns The content to analyze, or null if no content can be extracted
64
+ */
65
+ extractContent?: (tool: string, args: Record<string, unknown>) => string | null;
66
+ /**
67
+ * Version of the analyzer (for tracking/debugging).
68
+ */
69
+ version?: string;
70
+ /**
71
+ * Author of the analyzer.
72
+ */
73
+ author?: string;
74
+ }
75
+ /**
76
+ * A custom analyzer instance created by defineAnalyzer.
77
+ */
78
+ export interface CustomAnalyzer extends ContentAnalyzer {
79
+ /** Analyzer definition metadata */
80
+ readonly definition: AnalyzerDefinition;
81
+ /** Custom content extraction function if provided */
82
+ readonly extractContent?: (tool: string, args: Record<string, unknown>) => string | null;
83
+ /** Initialize the analyzer */
84
+ init(): Promise<void>;
85
+ /** Cleanup the analyzer */
86
+ cleanup(): Promise<void>;
87
+ }
88
+ /**
89
+ * Define a custom content analyzer.
90
+ *
91
+ * This is the primary API for creating custom analyzers that can be loaded
92
+ * from external files and used in tollgate.yaml configurations.
93
+ *
94
+ * @param definition - The analyzer definition
95
+ * @returns A ContentAnalyzer instance ready for registration
96
+ *
97
+ * @example
98
+ * ```typescript
99
+ * // Basic GraphQL analyzer
100
+ * import { defineAnalyzer } from '@dotsetlabs/tollgate/sdk';
101
+ *
102
+ * export default defineAnalyzer({
103
+ * name: 'graphql',
104
+ * description: 'Analyzes GraphQL queries and mutations',
105
+ * analyze(content, context) {
106
+ * // Parse and analyze the GraphQL content
107
+ * if (content.includes('mutation')) {
108
+ * return { risk: 'write', reason: 'GraphQL mutation detected' };
109
+ * }
110
+ * if (content.includes('subscription')) {
111
+ * return { risk: 'read', reason: 'GraphQL subscription' };
112
+ * }
113
+ * return { risk: 'read', reason: 'GraphQL query' };
114
+ * }
115
+ * });
116
+ * ```
117
+ *
118
+ * @example
119
+ * ```typescript
120
+ * // Analyzer with custom content extraction
121
+ * export default defineAnalyzer({
122
+ * name: 'json-rpc',
123
+ * extractContent(tool, args) {
124
+ * // Extract the method name from JSON-RPC calls
125
+ * if (args.method && typeof args.method === 'string') {
126
+ * return args.method;
127
+ * }
128
+ * return null;
129
+ * },
130
+ * analyze(content) {
131
+ * if (content.startsWith('admin.')) {
132
+ * return { risk: 'dangerous', reason: 'Admin RPC method' };
133
+ * }
134
+ * if (content.startsWith('write.')) {
135
+ * return { risk: 'write', reason: 'Write RPC method' };
136
+ * }
137
+ * return { risk: 'read', reason: 'Read RPC method' };
138
+ * }
139
+ * });
140
+ * ```
141
+ *
142
+ * @example
143
+ * ```typescript
144
+ * // Async analyzer with initialization
145
+ * export default defineAnalyzer({
146
+ * name: 'ml-classifier',
147
+ * async init() {
148
+ * // Load ML model, connect to service, etc.
149
+ * await loadModel();
150
+ * },
151
+ * async cleanup() {
152
+ * // Cleanup resources
153
+ * await unloadModel();
154
+ * },
155
+ * async analyze(content) {
156
+ * const classification = await classifyContent(content);
157
+ * return {
158
+ * risk: classification.risk,
159
+ * reason: classification.reason,
160
+ * metadata: { confidence: classification.confidence }
161
+ * };
162
+ * }
163
+ * });
164
+ * ```
165
+ */
166
+ export declare function defineAnalyzer(definition: AnalyzerDefinition): CustomAnalyzer;
167
+ /**
168
+ * Define an async analyzer that can perform asynchronous operations.
169
+ *
170
+ * Use this when your analyzer needs to:
171
+ * - Make network requests
172
+ * - Read files
173
+ * - Call external services
174
+ * - Use ML models
175
+ *
176
+ * @param definition - The analyzer definition with async analyze function
177
+ * @returns An async analyzer instance
178
+ *
179
+ * @example
180
+ * ```typescript
181
+ * import { defineAsyncAnalyzer } from '@dotsetlabs/tollgate/sdk';
182
+ *
183
+ * export default defineAsyncAnalyzer({
184
+ * name: 'virus-scan',
185
+ * async analyze(content) {
186
+ * const result = await scanForMalware(content);
187
+ * if (result.isMalicious) {
188
+ * return { risk: 'dangerous', reason: `Malware detected: ${result.threat}` };
189
+ * }
190
+ * return { risk: 'safe', reason: 'No threats detected' };
191
+ * }
192
+ * });
193
+ * ```
194
+ */
195
+ export declare function defineAsyncAnalyzer(definition: Omit<AnalyzerDefinition, 'analyze'> & {
196
+ analyze: (content: string, context?: AnalyzerContext) => Promise<AnalysisResult>;
197
+ }): CustomAnalyzer & {
198
+ analyzeAsync: (content: string, context?: AnalyzerContext) => Promise<AnalysisResult>;
199
+ };
200
+ /**
201
+ * Helper to create a simple pattern-based analyzer.
202
+ *
203
+ * @param name - Analyzer name
204
+ * @param patterns - Map of regex patterns to risk levels
205
+ * @param defaultRisk - Default risk if no patterns match
206
+ *
207
+ * @example
208
+ * ```typescript
209
+ * import { createPatternAnalyzer } from '@dotsetlabs/tollgate/sdk';
210
+ *
211
+ * export default createPatternAnalyzer('redis', {
212
+ * dangerous: [/FLUSHALL/i, /FLUSHDB/i, /CONFIG\s+SET/i],
213
+ * destructive: [/DEL\s/i, /EXPIRE\s/i],
214
+ * write: [/SET\s/i, /HSET\s/i, /LPUSH\s/i],
215
+ * read: [/GET\s/i, /HGET\s/i, /LRANGE\s/i],
216
+ * }, 'read');
217
+ * ```
218
+ */
219
+ export declare function createPatternAnalyzer(name: string, patterns: Partial<Record<RiskLevel, RegExp[]>>, defaultRisk?: RiskLevel): CustomAnalyzer;
220
+ /**
221
+ * Type guard to check if an analyzer is a CustomAnalyzer.
222
+ */
223
+ export declare function isCustomAnalyzer(analyzer: ContentAnalyzer): analyzer is CustomAnalyzer;
224
+ /**
225
+ * Type guard to check if an analyzer supports async analysis.
226
+ */
227
+ export declare function isAsyncAnalyzer(analyzer: ContentAnalyzer): analyzer is CustomAnalyzer & {
228
+ analyzeAsync: (content: string, context?: AnalyzerContext) => Promise<AnalysisResult>;
229
+ };
230
+ //# sourceMappingURL=sdk.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"sdk.d.ts","sourceRoot":"","sources":["../../src/analyzers/sdk.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;GAuBG;AAEH,OAAO,KAAK,EAAE,eAAe,EAAE,cAAc,EAAE,eAAe,EAAE,SAAS,EAAE,MAAM,YAAY,CAAC;AAE9F;;GAEG;AACH,MAAM,WAAW,kBAAkB;IACjC;;;OAGG;IACH,IAAI,EAAE,MAAM,CAAC;IAEb;;;OAGG;IACH,WAAW,CAAC,EAAE,MAAM,CAAC;IAErB;;;;;;OAMG;IACH,OAAO,EAAE,CAAC,OAAO,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,eAAe,KAAK,cAAc,GAAG,OAAO,CAAC,cAAc,CAAC,CAAC;IAElG;;;OAGG;IACH,IAAI,CAAC,EAAE,MAAM,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IAElC;;OAEG;IACH,OAAO,CAAC,EAAE,MAAM,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IAErC;;;;;;;OAOG;IACH,cAAc,CAAC,EAAE,CAAC,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,KAAK,MAAM,GAAG,IAAI,CAAC;IAEhF;;OAEG;IACH,OAAO,CAAC,EAAE,MAAM,CAAC;IAEjB;;OAEG;IACH,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB;AAED;;GAEG;AACH,MAAM,WAAW,cAAe,SAAQ,eAAe;IACrD,mCAAmC;IACnC,QAAQ,CAAC,UAAU,EAAE,kBAAkB,CAAC;IACxC,qDAAqD;IACrD,QAAQ,CAAC,cAAc,CAAC,EAAE,CAAC,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,KAAK,MAAM,GAAG,IAAI,CAAC;IACzF,8BAA8B;IAC9B,IAAI,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC;IACtB,2BAA2B;IAC3B,OAAO,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC;CAC1B;AAuBD;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA6EG;AACH,wBAAgB,cAAc,CAAC,UAAU,EAAE,kBAAkB,GAAG,cAAc,CAsC7E;AAED;;;;;;;;;;;;;;;;;;;;;;;;;;;GA2BG;AACH,wBAAgB,mBAAmB,CACjC,UAAU,EAAE,IAAI,CAAC,kBAAkB,EAAE,SAAS,CAAC,GAAG;IAChD,OAAO,EAAE,CAAC,OAAO,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,eAAe,KAAK,OAAO,CAAC,cAAc,CAAC,CAAC;CAClF,GACA,cAAc,GAAG;IAAE,YAAY,EAAE,CAAC,OAAO,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,eAAe,KAAK,OAAO,CAAC,cAAc,CAAC,CAAA;CAAE,CAmC5G;AA0BD;;;;;;;;;;;;;;;;;;GAkBG;AACH,wBAAgB,qBAAqB,CACnC,IAAI,EAAE,MAAM,EACZ,QAAQ,EAAE,OAAO,CAAC,MAAM,CAAC,SAAS,EAAE,MAAM,EAAE,CAAC,CAAC,EAC9C,WAAW,GAAE,SAAkB,GAC9B,cAAc,CA6BhB;AAED;;GAEG;AACH,wBAAgB,gBAAgB,CAAC,QAAQ,EAAE,eAAe,GAAG,QAAQ,IAAI,cAAc,CAEtF;AAED;;GAEG;AACH,wBAAgB,eAAe,CAC7B,QAAQ,EAAE,eAAe,GACxB,QAAQ,IAAI,cAAc,GAAG;IAAE,YAAY,EAAE,CAAC,OAAO,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,eAAe,KAAK,OAAO,CAAC,cAAc,CAAC,CAAA;CAAE,CAExH"}
@@ -0,0 +1,283 @@
1
+ /**
2
+ * Custom Analyzer SDK
3
+ *
4
+ * Provides a simple API for creating custom content analyzers that can be
5
+ * loaded from external files and used in tollgate.yaml configurations.
6
+ *
7
+ * @example
8
+ * ```typescript
9
+ * // my-graphql-analyzer.ts
10
+ * import { defineAnalyzer } from '@dotsetlabs/tollgate/sdk';
11
+ *
12
+ * export default defineAnalyzer({
13
+ * name: 'graphql',
14
+ * analyze(content, context) {
15
+ * if (content.includes('mutation')) {
16
+ * return { risk: 'write', reason: 'GraphQL mutation detected' };
17
+ * }
18
+ * return { risk: 'read', reason: 'GraphQL query' };
19
+ * }
20
+ * });
21
+ * ```
22
+ *
23
+ * @module analyzers/sdk
24
+ */
25
+ /**
26
+ * Validates an analyzer definition.
27
+ */
28
+ function validateDefinition(definition) {
29
+ if (!definition.name) {
30
+ throw new Error('Analyzer definition must have a name');
31
+ }
32
+ // Validate name format
33
+ if (!/^[a-zA-Z][a-zA-Z0-9_-]*$/.test(definition.name)) {
34
+ throw new Error(`Invalid analyzer name "${definition.name}". ` +
35
+ 'Name must start with a letter and contain only alphanumeric characters, hyphens, and underscores.');
36
+ }
37
+ if (typeof definition.analyze !== 'function') {
38
+ throw new Error(`Analyzer "${definition.name}" must have an analyze function`);
39
+ }
40
+ }
41
+ /**
42
+ * Define a custom content analyzer.
43
+ *
44
+ * This is the primary API for creating custom analyzers that can be loaded
45
+ * from external files and used in tollgate.yaml configurations.
46
+ *
47
+ * @param definition - The analyzer definition
48
+ * @returns A ContentAnalyzer instance ready for registration
49
+ *
50
+ * @example
51
+ * ```typescript
52
+ * // Basic GraphQL analyzer
53
+ * import { defineAnalyzer } from '@dotsetlabs/tollgate/sdk';
54
+ *
55
+ * export default defineAnalyzer({
56
+ * name: 'graphql',
57
+ * description: 'Analyzes GraphQL queries and mutations',
58
+ * analyze(content, context) {
59
+ * // Parse and analyze the GraphQL content
60
+ * if (content.includes('mutation')) {
61
+ * return { risk: 'write', reason: 'GraphQL mutation detected' };
62
+ * }
63
+ * if (content.includes('subscription')) {
64
+ * return { risk: 'read', reason: 'GraphQL subscription' };
65
+ * }
66
+ * return { risk: 'read', reason: 'GraphQL query' };
67
+ * }
68
+ * });
69
+ * ```
70
+ *
71
+ * @example
72
+ * ```typescript
73
+ * // Analyzer with custom content extraction
74
+ * export default defineAnalyzer({
75
+ * name: 'json-rpc',
76
+ * extractContent(tool, args) {
77
+ * // Extract the method name from JSON-RPC calls
78
+ * if (args.method && typeof args.method === 'string') {
79
+ * return args.method;
80
+ * }
81
+ * return null;
82
+ * },
83
+ * analyze(content) {
84
+ * if (content.startsWith('admin.')) {
85
+ * return { risk: 'dangerous', reason: 'Admin RPC method' };
86
+ * }
87
+ * if (content.startsWith('write.')) {
88
+ * return { risk: 'write', reason: 'Write RPC method' };
89
+ * }
90
+ * return { risk: 'read', reason: 'Read RPC method' };
91
+ * }
92
+ * });
93
+ * ```
94
+ *
95
+ * @example
96
+ * ```typescript
97
+ * // Async analyzer with initialization
98
+ * export default defineAnalyzer({
99
+ * name: 'ml-classifier',
100
+ * async init() {
101
+ * // Load ML model, connect to service, etc.
102
+ * await loadModel();
103
+ * },
104
+ * async cleanup() {
105
+ * // Cleanup resources
106
+ * await unloadModel();
107
+ * },
108
+ * async analyze(content) {
109
+ * const classification = await classifyContent(content);
110
+ * return {
111
+ * risk: classification.risk,
112
+ * reason: classification.reason,
113
+ * metadata: { confidence: classification.confidence }
114
+ * };
115
+ * }
116
+ * });
117
+ * ```
118
+ */
119
+ export function defineAnalyzer(definition) {
120
+ validateDefinition(definition);
121
+ const analyzer = {
122
+ name: definition.name,
123
+ definition,
124
+ extractContent: definition.extractContent,
125
+ analyze(content, context) {
126
+ const result = definition.analyze(content, context);
127
+ // Handle both sync and async results
128
+ if (result instanceof Promise) {
129
+ // For synchronous API compatibility, we need to handle this carefully
130
+ // The actual async handling happens in the policy engine
131
+ throw new Error(`Async analyzer "${definition.name}" returned a Promise. ` +
132
+ 'Use analyzeAsync() for async analyzers or make the analyze function synchronous.');
133
+ }
134
+ return normalizeResult(result, definition.name);
135
+ },
136
+ async init() {
137
+ if (definition.init) {
138
+ await definition.init();
139
+ }
140
+ },
141
+ async cleanup() {
142
+ if (definition.cleanup) {
143
+ await definition.cleanup();
144
+ }
145
+ },
146
+ };
147
+ return analyzer;
148
+ }
149
+ /**
150
+ * Define an async analyzer that can perform asynchronous operations.
151
+ *
152
+ * Use this when your analyzer needs to:
153
+ * - Make network requests
154
+ * - Read files
155
+ * - Call external services
156
+ * - Use ML models
157
+ *
158
+ * @param definition - The analyzer definition with async analyze function
159
+ * @returns An async analyzer instance
160
+ *
161
+ * @example
162
+ * ```typescript
163
+ * import { defineAsyncAnalyzer } from '@dotsetlabs/tollgate/sdk';
164
+ *
165
+ * export default defineAsyncAnalyzer({
166
+ * name: 'virus-scan',
167
+ * async analyze(content) {
168
+ * const result = await scanForMalware(content);
169
+ * if (result.isMalicious) {
170
+ * return { risk: 'dangerous', reason: `Malware detected: ${result.threat}` };
171
+ * }
172
+ * return { risk: 'safe', reason: 'No threats detected' };
173
+ * }
174
+ * });
175
+ * ```
176
+ */
177
+ export function defineAsyncAnalyzer(definition) {
178
+ validateDefinition(definition);
179
+ const analyzer = {
180
+ name: definition.name,
181
+ definition: definition,
182
+ extractContent: definition.extractContent,
183
+ // Sync version throws - use analyzeAsync instead
184
+ analyze(_content, _context) {
185
+ throw new Error(`Analyzer "${definition.name}" is async. Use analyzeAsync() instead of analyze().`);
186
+ },
187
+ // Async version for actual use
188
+ async analyzeAsync(content, context) {
189
+ const result = await definition.analyze(content, context);
190
+ return normalizeResult(result, definition.name);
191
+ },
192
+ async init() {
193
+ if (definition.init) {
194
+ await definition.init();
195
+ }
196
+ },
197
+ async cleanup() {
198
+ if (definition.cleanup) {
199
+ await definition.cleanup();
200
+ }
201
+ },
202
+ };
203
+ return analyzer;
204
+ }
205
+ /**
206
+ * Normalize an analysis result to ensure all required fields are present.
207
+ */
208
+ function normalizeResult(result, analyzerName) {
209
+ if (!result || typeof result !== 'object') {
210
+ throw new Error(`Analyzer "${analyzerName}" returned invalid result: ${JSON.stringify(result)}`);
211
+ }
212
+ const validRisks = ['safe', 'read', 'write', 'destructive', 'dangerous'];
213
+ if (!validRisks.includes(result.risk)) {
214
+ throw new Error(`Analyzer "${analyzerName}" returned invalid risk level "${result.risk}". ` +
215
+ `Valid levels: ${validRisks.join(', ')}`);
216
+ }
217
+ return {
218
+ risk: result.risk,
219
+ reason: result.reason ?? `Classified as ${result.risk} by ${analyzerName}`,
220
+ triggers: result.triggers,
221
+ metadata: result.metadata,
222
+ };
223
+ }
224
+ /**
225
+ * Helper to create a simple pattern-based analyzer.
226
+ *
227
+ * @param name - Analyzer name
228
+ * @param patterns - Map of regex patterns to risk levels
229
+ * @param defaultRisk - Default risk if no patterns match
230
+ *
231
+ * @example
232
+ * ```typescript
233
+ * import { createPatternAnalyzer } from '@dotsetlabs/tollgate/sdk';
234
+ *
235
+ * export default createPatternAnalyzer('redis', {
236
+ * dangerous: [/FLUSHALL/i, /FLUSHDB/i, /CONFIG\s+SET/i],
237
+ * destructive: [/DEL\s/i, /EXPIRE\s/i],
238
+ * write: [/SET\s/i, /HSET\s/i, /LPUSH\s/i],
239
+ * read: [/GET\s/i, /HGET\s/i, /LRANGE\s/i],
240
+ * }, 'read');
241
+ * ```
242
+ */
243
+ export function createPatternAnalyzer(name, patterns, defaultRisk = 'read') {
244
+ return defineAnalyzer({
245
+ name,
246
+ description: `Pattern-based analyzer for ${name}`,
247
+ analyze(content) {
248
+ // Check patterns from highest to lowest risk
249
+ const riskOrder = ['dangerous', 'destructive', 'write', 'read', 'safe'];
250
+ for (const risk of riskOrder) {
251
+ const riskPatterns = patterns[risk];
252
+ if (riskPatterns) {
253
+ for (const pattern of riskPatterns) {
254
+ if (pattern.test(content)) {
255
+ return {
256
+ risk,
257
+ reason: `Matched pattern: ${pattern.source}`,
258
+ triggers: [pattern.source],
259
+ };
260
+ }
261
+ }
262
+ }
263
+ }
264
+ return {
265
+ risk: defaultRisk,
266
+ reason: `No patterns matched, defaulting to ${defaultRisk}`,
267
+ };
268
+ },
269
+ });
270
+ }
271
+ /**
272
+ * Type guard to check if an analyzer is a CustomAnalyzer.
273
+ */
274
+ export function isCustomAnalyzer(analyzer) {
275
+ return 'definition' in analyzer && 'init' in analyzer && 'cleanup' in analyzer;
276
+ }
277
+ /**
278
+ * Type guard to check if an analyzer supports async analysis.
279
+ */
280
+ export function isAsyncAnalyzer(analyzer) {
281
+ return 'analyzeAsync' in analyzer && typeof analyzer.analyzeAsync === 'function';
282
+ }
283
+ //# sourceMappingURL=sdk.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"sdk.js","sourceRoot":"","sources":["../../src/analyzers/sdk.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,20 @@
1
+ import type { AnalysisResult, ContentAnalyzer, AnalyzerContext } from './types.js';
2
+ /**
3
+ * Shell Command Analyzer
4
+ *
5
+ * Detects dangerous shell commands and patterns:
6
+ * - Destructive commands (rm -rf, mkfs, dd)
7
+ * - Privilege escalation (sudo, su)
8
+ * - Remote code execution (curl | bash)
9
+ * - System modification (chmod 777, chown)
10
+ */
11
+ export declare class ShellAnalyzer implements ContentAnalyzer {
12
+ readonly name = "shell";
13
+ private readonly FORBIDDEN_COMMANDS;
14
+ private readonly DANGEROUS_PATTERNS;
15
+ private readonly CAUTION_PATTERNS;
16
+ analyze(command: string, _context?: AnalyzerContext): AnalysisResult;
17
+ private normalizeCommand;
18
+ private hasSuspiciousChaining;
19
+ }
20
+ //# sourceMappingURL=shell.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"shell.d.ts","sourceRoot":"","sources":["../../src/analyzers/shell.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,eAAe,EAAE,eAAe,EAAE,MAAM,YAAY,CAAC;AASnF;;;;;;;;GAQG;AACH,qBAAa,aAAc,YAAW,eAAe;IACnD,QAAQ,CAAC,IAAI,WAAW;IAGxB,OAAO,CAAC,QAAQ,CAAC,kBAAkB,CA6BjC;IAGF,OAAO,CAAC,QAAQ,CAAC,kBAAkB,CA2IjC;IAGF,OAAO,CAAC,QAAQ,CAAC,gBAAgB,CA+B/B;IAEF,OAAO,CAAC,OAAO,EAAE,MAAM,EAAE,QAAQ,CAAC,EAAE,eAAe,GAAG,cAAc;IAwDpE,OAAO,CAAC,gBAAgB;IAUxB,OAAO,CAAC,qBAAqB;CA0B9B"}