@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.
- package/LICENSE +21 -0
- package/README.md +885 -0
- package/dist/analyzers/filesystem.d.ts +26 -0
- package/dist/analyzers/filesystem.d.ts.map +1 -0
- package/dist/analyzers/filesystem.js +284 -0
- package/dist/analyzers/filesystem.js.map +1 -0
- package/dist/analyzers/http.d.ts +90 -0
- package/dist/analyzers/http.d.ts.map +1 -0
- package/dist/analyzers/http.js +433 -0
- package/dist/analyzers/http.js.map +1 -0
- package/dist/analyzers/index.d.ts +101 -0
- package/dist/analyzers/index.d.ts.map +1 -0
- package/dist/analyzers/index.js +342 -0
- package/dist/analyzers/index.js.map +1 -0
- package/dist/analyzers/loader.d.ts +114 -0
- package/dist/analyzers/loader.d.ts.map +1 -0
- package/dist/analyzers/loader.js +184 -0
- package/dist/analyzers/loader.js.map +1 -0
- package/dist/analyzers/prompt-injection.d.ts +95 -0
- package/dist/analyzers/prompt-injection.d.ts.map +1 -0
- package/dist/analyzers/prompt-injection.js +725 -0
- package/dist/analyzers/prompt-injection.js.map +1 -0
- package/dist/analyzers/sdk.d.ts +230 -0
- package/dist/analyzers/sdk.d.ts.map +1 -0
- package/dist/analyzers/sdk.js +283 -0
- package/dist/analyzers/sdk.js.map +1 -0
- package/dist/analyzers/shell.d.ts +20 -0
- package/dist/analyzers/shell.d.ts.map +1 -0
- package/dist/analyzers/shell.js +297 -0
- package/dist/analyzers/shell.js.map +1 -0
- package/dist/analyzers/sql.d.ts +37 -0
- package/dist/analyzers/sql.d.ts.map +1 -0
- package/dist/analyzers/sql.js +455 -0
- package/dist/analyzers/sql.js.map +1 -0
- package/dist/analyzers/types.d.ts +117 -0
- package/dist/analyzers/types.d.ts.map +1 -0
- package/dist/analyzers/types.js +46 -0
- package/dist/analyzers/types.js.map +1 -0
- package/dist/approval/interactive.d.ts +72 -0
- package/dist/approval/interactive.d.ts.map +1 -0
- package/dist/approval/interactive.js +550 -0
- package/dist/approval/interactive.js.map +1 -0
- package/dist/approval/terminal.d.ts +59 -0
- package/dist/approval/terminal.d.ts.map +1 -0
- package/dist/approval/terminal.js +238 -0
- package/dist/approval/terminal.js.map +1 -0
- package/dist/approval/types.d.ts +66 -0
- package/dist/approval/types.d.ts.map +1 -0
- package/dist/approval/types.js +2 -0
- package/dist/approval/types.js.map +1 -0
- package/dist/audit/exporter.d.ts +138 -0
- package/dist/audit/exporter.d.ts.map +1 -0
- package/dist/audit/exporter.js +366 -0
- package/dist/audit/exporter.js.map +1 -0
- package/dist/audit/logger.d.ts +156 -0
- package/dist/audit/logger.d.ts.map +1 -0
- package/dist/audit/logger.js +406 -0
- package/dist/audit/logger.js.map +1 -0
- package/dist/audit/redaction.d.ts +110 -0
- package/dist/audit/redaction.d.ts.map +1 -0
- package/dist/audit/redaction.js +307 -0
- package/dist/audit/redaction.js.map +1 -0
- package/dist/audit/schema.d.ts +76 -0
- package/dist/audit/schema.d.ts.map +1 -0
- package/dist/audit/schema.js +122 -0
- package/dist/audit/schema.js.map +1 -0
- package/dist/cli/commands/doctor.d.ts +34 -0
- package/dist/cli/commands/doctor.d.ts.map +1 -0
- package/dist/cli/commands/doctor.js +431 -0
- package/dist/cli/commands/doctor.js.map +1 -0
- package/dist/cli/commands/export.d.ts +18 -0
- package/dist/cli/commands/export.d.ts.map +1 -0
- package/dist/cli/commands/export.js +63 -0
- package/dist/cli/commands/export.js.map +1 -0
- package/dist/cli/commands/init.d.ts +12 -0
- package/dist/cli/commands/init.d.ts.map +1 -0
- package/dist/cli/commands/init.js +102 -0
- package/dist/cli/commands/init.js.map +1 -0
- package/dist/cli/commands/logs.d.ts +11 -0
- package/dist/cli/commands/logs.d.ts.map +1 -0
- package/dist/cli/commands/logs.js +60 -0
- package/dist/cli/commands/logs.js.map +1 -0
- package/dist/cli/commands/scan.d.ts +29 -0
- package/dist/cli/commands/scan.d.ts.map +1 -0
- package/dist/cli/commands/scan.js +251 -0
- package/dist/cli/commands/scan.js.map +1 -0
- package/dist/cli/commands/serve.d.ts +26 -0
- package/dist/cli/commands/serve.d.ts.map +1 -0
- package/dist/cli/commands/serve.js +424 -0
- package/dist/cli/commands/serve.js.map +1 -0
- package/dist/cli/commands/start.d.ts +20 -0
- package/dist/cli/commands/start.d.ts.map +1 -0
- package/dist/cli/commands/start.js +82 -0
- package/dist/cli/commands/start.js.map +1 -0
- package/dist/cli/commands/stats.d.ts +10 -0
- package/dist/cli/commands/stats.d.ts.map +1 -0
- package/dist/cli/commands/stats.js +42 -0
- package/dist/cli/commands/stats.js.map +1 -0
- package/dist/cli/commands/templates.d.ts +26 -0
- package/dist/cli/commands/templates.d.ts.map +1 -0
- package/dist/cli/commands/templates.js +221 -0
- package/dist/cli/commands/templates.js.map +1 -0
- package/dist/cli/commands/validate.d.ts +12 -0
- package/dist/cli/commands/validate.d.ts.map +1 -0
- package/dist/cli/commands/validate.js +107 -0
- package/dist/cli/commands/validate.js.map +1 -0
- package/dist/cli/commands/wrap.d.ts +19 -0
- package/dist/cli/commands/wrap.d.ts.map +1 -0
- package/dist/cli/commands/wrap.js +59 -0
- package/dist/cli/commands/wrap.js.map +1 -0
- package/dist/cli/index.d.ts +17 -0
- package/dist/cli/index.d.ts.map +1 -0
- package/dist/cli/index.js +202 -0
- package/dist/cli/index.js.map +1 -0
- package/dist/cli/ui.d.ts +139 -0
- package/dist/cli/ui.d.ts.map +1 -0
- package/dist/cli/ui.js +271 -0
- package/dist/cli/ui.js.map +1 -0
- package/dist/constants.d.ts +33 -0
- package/dist/constants.d.ts.map +1 -0
- package/dist/constants.js +54 -0
- package/dist/constants.js.map +1 -0
- package/dist/errors.d.ts +28 -0
- package/dist/errors.d.ts.map +1 -0
- package/dist/errors.js +37 -0
- package/dist/errors.js.map +1 -0
- package/dist/index.d.ts +49 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +82 -0
- package/dist/index.js.map +1 -0
- package/dist/orchestrator/index.d.ts +11 -0
- package/dist/orchestrator/index.d.ts.map +1 -0
- package/dist/orchestrator/index.js +10 -0
- package/dist/orchestrator/index.js.map +1 -0
- package/dist/orchestrator/manager.d.ts +127 -0
- package/dist/orchestrator/manager.d.ts.map +1 -0
- package/dist/orchestrator/manager.js +498 -0
- package/dist/orchestrator/manager.js.map +1 -0
- package/dist/orchestrator/types.d.ts +141 -0
- package/dist/orchestrator/types.d.ts.map +1 -0
- package/dist/orchestrator/types.js +9 -0
- package/dist/orchestrator/types.js.map +1 -0
- package/dist/policy/engine.d.ts +55 -0
- package/dist/policy/engine.d.ts.map +1 -0
- package/dist/policy/engine.js +288 -0
- package/dist/policy/engine.js.map +1 -0
- package/dist/policy/natural-language.d.ts +141 -0
- package/dist/policy/natural-language.d.ts.map +1 -0
- package/dist/policy/natural-language.js +552 -0
- package/dist/policy/natural-language.js.map +1 -0
- package/dist/policy/parser.d.ts +141 -0
- package/dist/policy/parser.d.ts.map +1 -0
- package/dist/policy/parser.js +314 -0
- package/dist/policy/parser.js.map +1 -0
- package/dist/policy/types.d.ts +428 -0
- package/dist/policy/types.d.ts.map +1 -0
- package/dist/policy/types.js +32 -0
- package/dist/policy/types.js.map +1 -0
- package/dist/policy/validator.d.ts +72 -0
- package/dist/policy/validator.d.ts.map +1 -0
- package/dist/policy/validator.js +453 -0
- package/dist/policy/validator.js.map +1 -0
- package/dist/proxy/bridge.d.ts +84 -0
- package/dist/proxy/bridge.d.ts.map +1 -0
- package/dist/proxy/bridge.js +217 -0
- package/dist/proxy/bridge.js.map +1 -0
- package/dist/proxy/client.d.ts +130 -0
- package/dist/proxy/client.d.ts.map +1 -0
- package/dist/proxy/client.js +290 -0
- package/dist/proxy/client.js.map +1 -0
- package/dist/proxy/server.d.ts +111 -0
- package/dist/proxy/server.d.ts.map +1 -0
- package/dist/proxy/server.js +444 -0
- package/dist/proxy/server.js.map +1 -0
- package/dist/scanner.d.ts +91 -0
- package/dist/scanner.d.ts.map +1 -0
- package/dist/scanner.js +373 -0
- package/dist/scanner.js.map +1 -0
- package/dist/session/index.d.ts +32 -0
- package/dist/session/index.d.ts.map +1 -0
- package/dist/session/index.js +31 -0
- package/dist/session/index.js.map +1 -0
- package/dist/session/manager.d.ts +166 -0
- package/dist/session/manager.d.ts.map +1 -0
- package/dist/session/manager.js +454 -0
- package/dist/session/manager.js.map +1 -0
- package/dist/session/sqlite-store.d.ts +54 -0
- package/dist/session/sqlite-store.d.ts.map +1 -0
- package/dist/session/sqlite-store.js +209 -0
- package/dist/session/sqlite-store.js.map +1 -0
- package/dist/session/types.d.ts +179 -0
- package/dist/session/types.d.ts.map +1 -0
- package/dist/session/types.js +38 -0
- package/dist/session/types.js.map +1 -0
- package/dist/templates.d.ts +64 -0
- package/dist/templates.d.ts.map +1 -0
- package/dist/templates.js +451 -0
- package/dist/templates.js.map +1 -0
- package/dist/utils/config.d.ts +57 -0
- package/dist/utils/config.d.ts.map +1 -0
- package/dist/utils/config.js +104 -0
- package/dist/utils/config.js.map +1 -0
- package/dist/utils/errors.d.ts +18 -0
- package/dist/utils/errors.d.ts.map +1 -0
- package/dist/utils/errors.js +35 -0
- package/dist/utils/errors.js.map +1 -0
- package/dist/utils/logger.d.ts +144 -0
- package/dist/utils/logger.d.ts.map +1 -0
- package/dist/utils/logger.js +300 -0
- package/dist/utils/logger.js.map +1 -0
- package/dist/wizard.d.ts +68 -0
- package/dist/wizard.d.ts.map +1 -0
- package/dist/wizard.js +395 -0
- package/dist/wizard.js.map +1 -0
- 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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"}
|
package/dist/wizard.d.ts
ADDED
|
@@ -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"}
|