@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,35 @@
1
+ export class TollgateError extends Error {
2
+ code;
3
+ details;
4
+ constructor(message, code, details) {
5
+ super(message);
6
+ this.code = code;
7
+ this.details = details;
8
+ this.name = 'TollgateError';
9
+ }
10
+ }
11
+ export class PolicyError extends TollgateError {
12
+ constructor(message, details) {
13
+ super(message, 'POLICY_ERROR', details);
14
+ this.name = 'PolicyError';
15
+ }
16
+ }
17
+ export class ConfigError extends TollgateError {
18
+ constructor(message, details) {
19
+ super(message, 'CONFIG_ERROR', details);
20
+ this.name = 'ConfigError';
21
+ }
22
+ }
23
+ export class ProxyError extends TollgateError {
24
+ constructor(message, details) {
25
+ super(message, 'PROXY_ERROR', details);
26
+ this.name = 'ProxyError';
27
+ }
28
+ }
29
+ export class UpstreamError extends TollgateError {
30
+ constructor(message, details) {
31
+ super(message, 'UPSTREAM_ERROR', details);
32
+ this.name = 'UpstreamError';
33
+ }
34
+ }
35
+ //# sourceMappingURL=errors.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"errors.js","sourceRoot":"","sources":["../../src/utils/errors.ts"],"names":[],"mappings":"AAAA,MAAM,OAAO,aAAc,SAAQ,KAAK;IAG7B;IACA;IAHT,YACE,OAAe,EACR,IAAY,EACZ,OAAiC;QAExC,KAAK,CAAC,OAAO,CAAC,CAAC;QAHR,SAAI,GAAJ,IAAI,CAAQ;QACZ,YAAO,GAAP,OAAO,CAA0B;QAGxC,IAAI,CAAC,IAAI,GAAG,eAAe,CAAC;IAC9B,CAAC;CACF;AAED,MAAM,OAAO,WAAY,SAAQ,aAAa;IAC5C,YAAY,OAAe,EAAE,OAAiC;QAC5D,KAAK,CAAC,OAAO,EAAE,cAAc,EAAE,OAAO,CAAC,CAAC;QACxC,IAAI,CAAC,IAAI,GAAG,aAAa,CAAC;IAC5B,CAAC;CACF;AAED,MAAM,OAAO,WAAY,SAAQ,aAAa;IAC5C,YAAY,OAAe,EAAE,OAAiC;QAC5D,KAAK,CAAC,OAAO,EAAE,cAAc,EAAE,OAAO,CAAC,CAAC;QACxC,IAAI,CAAC,IAAI,GAAG,aAAa,CAAC;IAC5B,CAAC;CACF;AAED,MAAM,OAAO,UAAW,SAAQ,aAAa;IAC3C,YAAY,OAAe,EAAE,OAAiC;QAC5D,KAAK,CAAC,OAAO,EAAE,aAAa,EAAE,OAAO,CAAC,CAAC;QACvC,IAAI,CAAC,IAAI,GAAG,YAAY,CAAC;IAC3B,CAAC;CACF;AAED,MAAM,OAAO,aAAc,SAAQ,aAAa;IAC9C,YAAY,OAAe,EAAE,OAAiC;QAC5D,KAAK,CAAC,OAAO,EAAE,gBAAgB,EAAE,OAAO,CAAC,CAAC;QAC1C,IAAI,CAAC,IAAI,GAAG,eAAe,CAAC;IAC9B,CAAC;CACF"}
@@ -0,0 +1,144 @@
1
+ /**
2
+ * Structured Logger for Tollgate CLI
3
+ *
4
+ * Provides consistent logging across the application with:
5
+ * - Log levels (debug, info, warn, error)
6
+ * - JSON output mode for machine parsing
7
+ * - Colorized terminal output (respects NO_COLOR)
8
+ * - Component prefixes for context
9
+ * - Configurable via environment variables
10
+ *
11
+ * @example
12
+ * ```typescript
13
+ * import { logger, createLogger } from './utils/logger.js';
14
+ *
15
+ * // Use default logger
16
+ * logger.info('Server started', { port: 3000 });
17
+ * logger.error('Failed to connect', { error: err.message });
18
+ *
19
+ * // Create component-specific logger
20
+ * const proxyLog = createLogger('proxy');
21
+ * proxyLog.debug('Forwarding request', { tool: 'query' });
22
+ * ```
23
+ *
24
+ * @module utils/logger
25
+ */
26
+ /**
27
+ * Log level type with severity ordering.
28
+ */
29
+ export type LogLevel = 'debug' | 'info' | 'warn' | 'error' | 'silent';
30
+ /**
31
+ * Log entry structure for JSON output.
32
+ */
33
+ export interface LogEntry {
34
+ timestamp: string;
35
+ level: LogLevel;
36
+ component?: string;
37
+ message: string;
38
+ data?: Record<string, unknown>;
39
+ }
40
+ /**
41
+ * Logger configuration options.
42
+ */
43
+ export interface LoggerConfig {
44
+ /** Minimum log level to output (default: 'info') */
45
+ level: LogLevel;
46
+ /** Output format: 'text' for human-readable, 'json' for machine parsing */
47
+ format: 'text' | 'json';
48
+ /** Include timestamps in output (default: true for json, false for text) */
49
+ timestamps: boolean;
50
+ /** Enable colored output (default: auto-detect TTY) */
51
+ colors: boolean;
52
+ /** Component name for prefixing log messages */
53
+ component?: string;
54
+ }
55
+ /**
56
+ * Structured logger with configurable output.
57
+ */
58
+ export declare class Logger {
59
+ private config;
60
+ constructor(config?: Partial<LoggerConfig>);
61
+ /**
62
+ * Check if a log level should be output.
63
+ */
64
+ private shouldLog;
65
+ /**
66
+ * Format a log entry for text output.
67
+ */
68
+ private formatText;
69
+ /**
70
+ * Format a log entry for JSON output.
71
+ */
72
+ private formatJson;
73
+ /**
74
+ * Write a log entry.
75
+ */
76
+ private write;
77
+ /**
78
+ * Log a debug message (verbose, for development).
79
+ */
80
+ debug(message: string, data?: Record<string, unknown>): void;
81
+ /**
82
+ * Log an info message (normal operation).
83
+ */
84
+ info(message: string, data?: Record<string, unknown>): void;
85
+ /**
86
+ * Log a warning message (potential issues).
87
+ */
88
+ warn(message: string, data?: Record<string, unknown>): void;
89
+ /**
90
+ * Log an error message (failures).
91
+ */
92
+ error(message: string, data?: Record<string, unknown>): void;
93
+ /**
94
+ * Create a child logger with a specific component prefix.
95
+ */
96
+ child(component: string): Logger;
97
+ /**
98
+ * Get current configuration.
99
+ */
100
+ getConfig(): Readonly<LoggerConfig>;
101
+ /**
102
+ * Update configuration at runtime.
103
+ */
104
+ configure(config: Partial<LoggerConfig>): void;
105
+ }
106
+ /**
107
+ * Create a new logger instance with optional configuration.
108
+ */
109
+ export declare function createLogger(component?: string, config?: Partial<LoggerConfig>): Logger;
110
+ /**
111
+ * Default logger instance for application-wide use.
112
+ *
113
+ * Configuration is read from environment variables:
114
+ * - TOLLGATE_LOG_LEVEL or LOG_LEVEL: debug, info, warn, error, silent
115
+ * - TOLLGATE_LOG_FORMAT or LOG_FORMAT: text, json
116
+ * - NO_COLOR: Disable colors
117
+ * - FORCE_COLOR: Force colors
118
+ */
119
+ export declare const logger: Logger;
120
+ /**
121
+ * Logger for proxy/server operations.
122
+ */
123
+ export declare const proxyLogger: Logger;
124
+ /**
125
+ * Logger for session management.
126
+ */
127
+ export declare const sessionLogger: Logger;
128
+ /**
129
+ * Logger for policy engine.
130
+ */
131
+ export declare const policyLogger: Logger;
132
+ /**
133
+ * Logger for orchestrator.
134
+ */
135
+ export declare const orchestratorLogger: Logger;
136
+ /**
137
+ * Logger for upstream client.
138
+ */
139
+ export declare const upstreamLogger: Logger;
140
+ /**
141
+ * Logger for approval handlers.
142
+ */
143
+ export declare const approvalLogger: Logger;
144
+ //# sourceMappingURL=logger.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"logger.d.ts","sourceRoot":"","sources":["../../src/utils/logger.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;GAwBG;AAQH;;GAEG;AACH,MAAM,MAAM,QAAQ,GAAG,OAAO,GAAG,MAAM,GAAG,MAAM,GAAG,OAAO,GAAG,QAAQ,CAAC;AAEtE;;GAEG;AACH,MAAM,WAAW,QAAQ;IACvB,SAAS,EAAE,MAAM,CAAC;IAClB,KAAK,EAAE,QAAQ,CAAC;IAChB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,OAAO,EAAE,MAAM,CAAC;IAChB,IAAI,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;CAChC;AAED;;GAEG;AACH,MAAM,WAAW,YAAY;IAC3B,oDAAoD;IACpD,KAAK,EAAE,QAAQ,CAAC;IAChB,2EAA2E;IAC3E,MAAM,EAAE,MAAM,GAAG,MAAM,CAAC;IACxB,4EAA4E;IAC5E,UAAU,EAAE,OAAO,CAAC;IACpB,uDAAuD;IACvD,MAAM,EAAE,OAAO,CAAC;IAChB,gDAAgD;IAChD,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAwFD;;GAEG;AACH,qBAAa,MAAM;IACjB,OAAO,CAAC,MAAM,CAAe;gBAEjB,MAAM,GAAE,OAAO,CAAC,YAAY,CAAM;IAU9C;;OAEG;IACH,OAAO,CAAC,SAAS;IAIjB;;OAEG;IACH,OAAO,CAAC,UAAU;IAgDlB;;OAEG;IACH,OAAO,CAAC,UAAU;IAkBlB;;OAEG;IACH,OAAO,CAAC,KAAK;IAWb;;OAEG;IACH,KAAK,CAAC,OAAO,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,IAAI;IAI5D;;OAEG;IACH,IAAI,CAAC,OAAO,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,IAAI;IAI3D;;OAEG;IACH,IAAI,CAAC,OAAO,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,IAAI;IAI3D;;OAEG;IACH,KAAK,CAAC,OAAO,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,IAAI;IAI5D;;OAEG;IACH,KAAK,CAAC,SAAS,EAAE,MAAM,GAAG,MAAM;IAShC;;OAEG;IACH,SAAS,IAAI,QAAQ,CAAC,YAAY,CAAC;IAInC;;OAEG;IACH,SAAS,CAAC,MAAM,EAAE,OAAO,CAAC,YAAY,CAAC,GAAG,IAAI;CAG/C;AAMD;;GAEG;AACH,wBAAgB,YAAY,CAAC,SAAS,CAAC,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,OAAO,CAAC,YAAY,CAAC,GAAG,MAAM,CAEvF;AAMD;;;;;;;;GAQG;AACH,eAAO,MAAM,MAAM,QAAe,CAAC;AAMnC;;GAEG;AACH,eAAO,MAAM,WAAW,QAAwB,CAAC;AAEjD;;GAEG;AACH,eAAO,MAAM,aAAa,QAA0B,CAAC;AAErD;;GAEG;AACH,eAAO,MAAM,YAAY,QAAyB,CAAC;AAEnD;;GAEG;AACH,eAAO,MAAM,kBAAkB,QAA+B,CAAC;AAE/D;;GAEG;AACH,eAAO,MAAM,cAAc,QAA2B,CAAC;AAEvD;;GAEG;AACH,eAAO,MAAM,cAAc,QAA2B,CAAC"}
@@ -0,0 +1,300 @@
1
+ /**
2
+ * Structured Logger for Tollgate CLI
3
+ *
4
+ * Provides consistent logging across the application with:
5
+ * - Log levels (debug, info, warn, error)
6
+ * - JSON output mode for machine parsing
7
+ * - Colorized terminal output (respects NO_COLOR)
8
+ * - Component prefixes for context
9
+ * - Configurable via environment variables
10
+ *
11
+ * @example
12
+ * ```typescript
13
+ * import { logger, createLogger } from './utils/logger.js';
14
+ *
15
+ * // Use default logger
16
+ * logger.info('Server started', { port: 3000 });
17
+ * logger.error('Failed to connect', { error: err.message });
18
+ *
19
+ * // Create component-specific logger
20
+ * const proxyLog = createLogger('proxy');
21
+ * proxyLog.debug('Forwarding request', { tool: 'query' });
22
+ * ```
23
+ *
24
+ * @module utils/logger
25
+ */
26
+ import chalk from 'chalk';
27
+ // =============================================================================
28
+ // Constants
29
+ // =============================================================================
30
+ /**
31
+ * Log level severity ordering (lower = more verbose).
32
+ */
33
+ const LOG_LEVEL_PRIORITY = {
34
+ debug: 0,
35
+ info: 1,
36
+ warn: 2,
37
+ error: 3,
38
+ silent: 4,
39
+ };
40
+ /**
41
+ * Default configuration values.
42
+ */
43
+ const DEFAULT_CONFIG = {
44
+ level: 'info',
45
+ format: 'text',
46
+ timestamps: false,
47
+ colors: true,
48
+ };
49
+ // =============================================================================
50
+ // Environment Configuration
51
+ // =============================================================================
52
+ /**
53
+ * Parse log level from environment variable.
54
+ */
55
+ function parseLogLevel(value) {
56
+ if (!value)
57
+ return undefined;
58
+ const normalized = value.toLowerCase().trim();
59
+ if (normalized in LOG_LEVEL_PRIORITY) {
60
+ return normalized;
61
+ }
62
+ // Support common aliases
63
+ if (normalized === 'verbose' || normalized === 'trace')
64
+ return 'debug';
65
+ if (normalized === 'warning')
66
+ return 'warn';
67
+ if (normalized === 'none' || normalized === 'off' || normalized === 'quiet')
68
+ return 'silent';
69
+ return undefined;
70
+ }
71
+ /**
72
+ * Detect if colors should be enabled.
73
+ */
74
+ function detectColors() {
75
+ // Respect NO_COLOR standard (https://no-color.org/)
76
+ if (process.env.NO_COLOR !== undefined)
77
+ return false;
78
+ // Respect FORCE_COLOR
79
+ if (process.env.FORCE_COLOR !== undefined)
80
+ return true;
81
+ // Auto-detect TTY
82
+ return process.stderr.isTTY ?? false;
83
+ }
84
+ /**
85
+ * Get configuration from environment variables.
86
+ */
87
+ function getEnvConfig() {
88
+ const config = {};
89
+ // LOG_LEVEL or TOLLGATE_LOG_LEVEL
90
+ const level = parseLogLevel(process.env.TOLLGATE_LOG_LEVEL ?? process.env.LOG_LEVEL);
91
+ if (level)
92
+ config.level = level;
93
+ // LOG_FORMAT or TOLLGATE_LOG_FORMAT
94
+ const format = process.env.TOLLGATE_LOG_FORMAT ?? process.env.LOG_FORMAT;
95
+ if (format === 'json') {
96
+ config.format = 'json';
97
+ config.timestamps = true; // JSON mode always includes timestamps
98
+ }
99
+ else if (format === 'text') {
100
+ config.format = 'text';
101
+ }
102
+ // Color detection
103
+ config.colors = detectColors();
104
+ return config;
105
+ }
106
+ // =============================================================================
107
+ // Logger Class
108
+ // =============================================================================
109
+ /**
110
+ * Structured logger with configurable output.
111
+ */
112
+ export class Logger {
113
+ config;
114
+ constructor(config = {}) {
115
+ // Merge: defaults < env < explicit config
116
+ const envConfig = getEnvConfig();
117
+ this.config = {
118
+ ...DEFAULT_CONFIG,
119
+ ...envConfig,
120
+ ...config,
121
+ };
122
+ }
123
+ /**
124
+ * Check if a log level should be output.
125
+ */
126
+ shouldLog(level) {
127
+ return LOG_LEVEL_PRIORITY[level] >= LOG_LEVEL_PRIORITY[this.config.level];
128
+ }
129
+ /**
130
+ * Format a log entry for text output.
131
+ */
132
+ formatText(level, message, data) {
133
+ const parts = [];
134
+ // Timestamp (optional for text mode)
135
+ if (this.config.timestamps) {
136
+ const timestamp = new Date().toISOString();
137
+ parts.push(this.config.colors ? chalk.dim(timestamp) : timestamp);
138
+ }
139
+ // Level indicator with color
140
+ const levelStr = level.toUpperCase().padEnd(5);
141
+ if (this.config.colors) {
142
+ switch (level) {
143
+ case 'debug':
144
+ parts.push(chalk.dim(levelStr));
145
+ break;
146
+ case 'info':
147
+ parts.push(chalk.cyan(levelStr));
148
+ break;
149
+ case 'warn':
150
+ parts.push(chalk.yellow(levelStr));
151
+ break;
152
+ case 'error':
153
+ parts.push(chalk.red(levelStr));
154
+ break;
155
+ }
156
+ }
157
+ else {
158
+ parts.push(levelStr);
159
+ }
160
+ // Component prefix
161
+ if (this.config.component) {
162
+ const prefix = `[${this.config.component}]`;
163
+ parts.push(this.config.colors ? chalk.dim(prefix) : prefix);
164
+ }
165
+ // Message
166
+ parts.push(message);
167
+ // Data (if present)
168
+ if (data && Object.keys(data).length > 0) {
169
+ const dataStr = JSON.stringify(data);
170
+ parts.push(this.config.colors ? chalk.dim(dataStr) : dataStr);
171
+ }
172
+ return parts.join(' ');
173
+ }
174
+ /**
175
+ * Format a log entry for JSON output.
176
+ */
177
+ formatJson(level, message, data) {
178
+ const entry = {
179
+ timestamp: new Date().toISOString(),
180
+ level,
181
+ message,
182
+ };
183
+ if (this.config.component) {
184
+ entry.component = this.config.component;
185
+ }
186
+ if (data && Object.keys(data).length > 0) {
187
+ entry.data = data;
188
+ }
189
+ return JSON.stringify(entry);
190
+ }
191
+ /**
192
+ * Write a log entry.
193
+ */
194
+ write(level, message, data) {
195
+ if (!this.shouldLog(level))
196
+ return;
197
+ const output = this.config.format === 'json'
198
+ ? this.formatJson(level, message, data)
199
+ : this.formatText(level, message, data);
200
+ // Always write to stderr (CLI best practice)
201
+ process.stderr.write(output + '\n');
202
+ }
203
+ /**
204
+ * Log a debug message (verbose, for development).
205
+ */
206
+ debug(message, data) {
207
+ this.write('debug', message, data);
208
+ }
209
+ /**
210
+ * Log an info message (normal operation).
211
+ */
212
+ info(message, data) {
213
+ this.write('info', message, data);
214
+ }
215
+ /**
216
+ * Log a warning message (potential issues).
217
+ */
218
+ warn(message, data) {
219
+ this.write('warn', message, data);
220
+ }
221
+ /**
222
+ * Log an error message (failures).
223
+ */
224
+ error(message, data) {
225
+ this.write('error', message, data);
226
+ }
227
+ /**
228
+ * Create a child logger with a specific component prefix.
229
+ */
230
+ child(component) {
231
+ return new Logger({
232
+ ...this.config,
233
+ component: this.config.component
234
+ ? `${this.config.component}:${component}`
235
+ : component,
236
+ });
237
+ }
238
+ /**
239
+ * Get current configuration.
240
+ */
241
+ getConfig() {
242
+ return { ...this.config };
243
+ }
244
+ /**
245
+ * Update configuration at runtime.
246
+ */
247
+ configure(config) {
248
+ this.config = { ...this.config, ...config };
249
+ }
250
+ }
251
+ // =============================================================================
252
+ // Factory Functions
253
+ // =============================================================================
254
+ /**
255
+ * Create a new logger instance with optional configuration.
256
+ */
257
+ export function createLogger(component, config) {
258
+ return new Logger({ ...config, component });
259
+ }
260
+ // =============================================================================
261
+ // Default Instance
262
+ // =============================================================================
263
+ /**
264
+ * Default logger instance for application-wide use.
265
+ *
266
+ * Configuration is read from environment variables:
267
+ * - TOLLGATE_LOG_LEVEL or LOG_LEVEL: debug, info, warn, error, silent
268
+ * - TOLLGATE_LOG_FORMAT or LOG_FORMAT: text, json
269
+ * - NO_COLOR: Disable colors
270
+ * - FORCE_COLOR: Force colors
271
+ */
272
+ export const logger = new Logger();
273
+ // =============================================================================
274
+ // Pre-configured Component Loggers
275
+ // =============================================================================
276
+ /**
277
+ * Logger for proxy/server operations.
278
+ */
279
+ export const proxyLogger = createLogger('proxy');
280
+ /**
281
+ * Logger for session management.
282
+ */
283
+ export const sessionLogger = createLogger('session');
284
+ /**
285
+ * Logger for policy engine.
286
+ */
287
+ export const policyLogger = createLogger('policy');
288
+ /**
289
+ * Logger for orchestrator.
290
+ */
291
+ export const orchestratorLogger = createLogger('orchestrator');
292
+ /**
293
+ * Logger for upstream client.
294
+ */
295
+ export const upstreamLogger = createLogger('upstream');
296
+ /**
297
+ * Logger for approval handlers.
298
+ */
299
+ export const approvalLogger = createLogger('approval');
300
+ //# sourceMappingURL=logger.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"logger.js","sourceRoot":"","sources":["../../src/utils/logger.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,68 @@
1
+ /**
2
+ * Interactive Init Wizard for Tollgate
3
+ *
4
+ * Provides a guided experience for creating tollgate.yaml configuration files.
5
+ * Uses native readline for terminal interaction.
6
+ */
7
+ /**
8
+ * Known MCP server templates with recommended configurations.
9
+ */
10
+ export interface ServerTemplate {
11
+ name: string;
12
+ displayName: string;
13
+ description: string;
14
+ command: string;
15
+ args: string[];
16
+ envVars?: {
17
+ key: string;
18
+ description: string;
19
+ example: string;
20
+ }[];
21
+ recommendedPolicies: {
22
+ read?: string[];
23
+ write?: string[];
24
+ destructive?: string[];
25
+ };
26
+ analyzer?: 'sql' | 'filesystem' | 'shell' | 'http';
27
+ }
28
+ /**
29
+ * Well-known MCP server templates.
30
+ */
31
+ export declare const SERVER_TEMPLATES: ServerTemplate[];
32
+ /**
33
+ * Policy preset configurations.
34
+ */
35
+ export interface PolicyPreset {
36
+ name: string;
37
+ displayName: string;
38
+ description: string;
39
+ readAction: 'allow' | 'prompt';
40
+ writeAction: 'prompt' | 'deny';
41
+ destructiveAction: 'deny' | 'prompt';
42
+ }
43
+ export declare const POLICY_PRESETS: PolicyPreset[];
44
+ /**
45
+ * Result of the interactive wizard.
46
+ */
47
+ export interface WizardResult {
48
+ servers: {
49
+ name: string;
50
+ template: ServerTemplate;
51
+ envValues: Record<string, string>;
52
+ policyPreset: PolicyPreset;
53
+ additionalArgs?: string[];
54
+ }[];
55
+ globalDefaults: {
56
+ action: 'allow' | 'deny' | 'prompt';
57
+ timeout: number;
58
+ };
59
+ }
60
+ /**
61
+ * Runs the interactive init wizard.
62
+ */
63
+ export declare function runWizard(): Promise<WizardResult>;
64
+ /**
65
+ * Generates YAML configuration from wizard result.
66
+ */
67
+ export declare function generateConfig(result: WizardResult): string;
68
+ //# sourceMappingURL=wizard.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"wizard.d.ts","sourceRoot":"","sources":["../src/wizard.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAMH;;GAEG;AACH,MAAM,WAAW,cAAc;IAC7B,IAAI,EAAE,MAAM,CAAC;IACb,WAAW,EAAE,MAAM,CAAC;IACpB,WAAW,EAAE,MAAM,CAAC;IACpB,OAAO,EAAE,MAAM,CAAC;IAChB,IAAI,EAAE,MAAM,EAAE,CAAC;IACf,OAAO,CAAC,EAAE;QAAE,GAAG,EAAE,MAAM,CAAC;QAAC,WAAW,EAAE,MAAM,CAAC;QAAC,OAAO,EAAE,MAAM,CAAA;KAAE,EAAE,CAAC;IAClE,mBAAmB,EAAE;QACnB,IAAI,CAAC,EAAE,MAAM,EAAE,CAAC;QAChB,KAAK,CAAC,EAAE,MAAM,EAAE,CAAC;QACjB,WAAW,CAAC,EAAE,MAAM,EAAE,CAAC;KACxB,CAAC;IACF,QAAQ,CAAC,EAAE,KAAK,GAAG,YAAY,GAAG,OAAO,GAAG,MAAM,CAAC;CACpD;AAED;;GAEG;AACH,eAAO,MAAM,gBAAgB,EAAE,cAAc,EAoG5C,CAAC;AAEF;;GAEG;AACH,MAAM,WAAW,YAAY;IAC3B,IAAI,EAAE,MAAM,CAAC;IACb,WAAW,EAAE,MAAM,CAAC;IACpB,WAAW,EAAE,MAAM,CAAC;IACpB,UAAU,EAAE,OAAO,GAAG,QAAQ,CAAC;IAC/B,WAAW,EAAE,QAAQ,GAAG,MAAM,CAAC;IAC/B,iBAAiB,EAAE,MAAM,GAAG,QAAQ,CAAC;CACtC;AAED,eAAO,MAAM,cAAc,EAAE,YAAY,EAyBxC,CAAC;AAEF;;GAEG;AACH,MAAM,WAAW,YAAY;IAC3B,OAAO,EAAE;QACP,IAAI,EAAE,MAAM,CAAC;QACb,QAAQ,EAAE,cAAc,CAAC;QACzB,SAAS,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;QAClC,YAAY,EAAE,YAAY,CAAC;QAC3B,cAAc,CAAC,EAAE,MAAM,EAAE,CAAC;KAC3B,EAAE,CAAC;IACJ,cAAc,EAAE;QACd,MAAM,EAAE,OAAO,GAAG,MAAM,GAAG,QAAQ,CAAC;QACpC,OAAO,EAAE,MAAM,CAAC;KACjB,CAAC;CACH;AAyGD;;GAEG;AACH,wBAAsB,SAAS,IAAI,OAAO,CAAC,YAAY,CAAC,CAsGvD;AAED;;GAEG;AACH,wBAAgB,cAAc,CAAC,MAAM,EAAE,YAAY,GAAG,MAAM,CA0F3D"}