@xopcai/xopcbot 0.1.5 → 0.2.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 (285) hide show
  1. package/README.md +6 -6
  2. package/README.zh-CN.md +6 -6
  3. package/dist/agent/__tests__/media-processing.test.d.ts +6 -0
  4. package/dist/agent/__tests__/media-processing.test.js +385 -0
  5. package/dist/agent/__tests__/media-processing.test.js.map +1 -0
  6. package/dist/agent/fallback/__tests__/index.test.js +16 -5
  7. package/dist/agent/fallback/__tests__/index.test.js.map +1 -1
  8. package/dist/agent/fallback/candidates.d.ts +2 -4
  9. package/dist/agent/fallback/candidates.js +19 -26
  10. package/dist/agent/fallback/candidates.js.map +1 -1
  11. package/dist/agent/helpers.d.ts +1 -0
  12. package/dist/agent/helpers.js.map +1 -1
  13. package/dist/agent/index.d.ts +6 -1
  14. package/dist/agent/index.js +10 -1
  15. package/dist/agent/index.js.map +1 -1
  16. package/dist/agent/models/compat.d.ts +35 -0
  17. package/dist/agent/models/compat.js +110 -0
  18. package/dist/agent/models/compat.js.map +1 -0
  19. package/dist/agent/models/fallback.d.ts +38 -0
  20. package/dist/agent/models/fallback.js +133 -0
  21. package/dist/agent/models/fallback.js.map +1 -0
  22. package/dist/agent/models/index.d.ts +10 -0
  23. package/dist/agent/models/index.js +11 -0
  24. package/dist/agent/models/index.js.map +1 -0
  25. package/dist/agent/{model-manager.d.ts → models/manager.d.ts} +2 -8
  26. package/dist/agent/{model-manager.js → models/manager.js} +38 -24
  27. package/dist/agent/models/manager.js.map +1 -0
  28. package/dist/agent/models/scan.d.ts +46 -0
  29. package/dist/agent/models/scan.js +177 -0
  30. package/dist/agent/models/scan.js.map +1 -0
  31. package/dist/agent/models/selection.d.ts +44 -0
  32. package/dist/agent/models/selection.js +141 -0
  33. package/dist/agent/models/selection.js.map +1 -0
  34. package/dist/agent/prompt/index.js +1 -1
  35. package/dist/agent/prompt/index.js.map +1 -1
  36. package/dist/agent/service.js +34 -16
  37. package/dist/agent/service.js.map +1 -1
  38. package/dist/agent/skills/__tests__/test-framework.test.js +15 -7
  39. package/dist/agent/skills/__tests__/test-framework.test.js.map +1 -1
  40. package/dist/agent/skills/config.d.ts +1 -1
  41. package/dist/agent/skills/config.js +2 -2
  42. package/dist/agent/skills/config.js.map +1 -1
  43. package/dist/agent/skills/index.js +15 -28
  44. package/dist/agent/skills/index.js.map +1 -1
  45. package/dist/agent/skills/installer.d.ts +1 -1
  46. package/dist/agent/skills/installer.js +1 -1
  47. package/dist/agent/skills/scanner.d.ts +1 -1
  48. package/dist/agent/skills/scanner.js +1 -1
  49. package/dist/agent/skills/test-framework.js +21 -20
  50. package/dist/agent/skills/test-framework.js.map +1 -1
  51. package/dist/agent/skills/types.d.ts +3 -3
  52. package/dist/agent/skills/types.js +1 -1
  53. package/dist/agent/skills/watcher.d.ts +1 -1
  54. package/dist/agent/skills/watcher.js +1 -1
  55. package/dist/agent/system-prompt.d.ts +67 -0
  56. package/dist/agent/system-prompt.js +351 -0
  57. package/dist/agent/system-prompt.js.map +1 -0
  58. package/dist/agent/tools/__tests__/send-media.test.d.ts +6 -0
  59. package/dist/agent/tools/__tests__/send-media.test.js +251 -0
  60. package/dist/agent/tools/__tests__/send-media.test.js.map +1 -0
  61. package/dist/agent/types.agent-defaults.d.ts +48 -0
  62. package/dist/agent/types.agent-defaults.js +5 -0
  63. package/dist/agent/types.agent-defaults.js.map +1 -0
  64. package/dist/agent/types.d.ts +14 -6
  65. package/dist/agent/types.js +5 -0
  66. package/dist/agent/types.js.map +1 -1
  67. package/dist/agent/workspace.d.ts +94 -0
  68. package/dist/agent/workspace.js +625 -0
  69. package/dist/agent/workspace.js.map +1 -0
  70. package/dist/auth/index.js +1 -1
  71. package/dist/auth/index.js.map +1 -1
  72. package/dist/auth/oauth/index.d.ts +1 -0
  73. package/dist/auth/oauth/index.js +1 -0
  74. package/dist/auth/oauth/index.js.map +1 -1
  75. package/dist/auth/oauth/kimi.d.ts +2 -1
  76. package/dist/auth/oauth/kimi.js +51 -48
  77. package/dist/auth/oauth/kimi.js.map +1 -1
  78. package/dist/auth/oauth/minimax-cn.d.ts +12 -0
  79. package/dist/auth/oauth/minimax-cn.js +111 -0
  80. package/dist/auth/oauth/minimax-cn.js.map +1 -0
  81. package/dist/auth/oauth/qwen.d.ts +5 -0
  82. package/dist/auth/oauth/qwen.js +54 -84
  83. package/dist/auth/oauth/qwen.js.map +1 -1
  84. package/dist/auth/profiles/index.d.ts +0 -2
  85. package/dist/auth/profiles/index.js +0 -2
  86. package/dist/auth/profiles/index.js.map +1 -1
  87. package/dist/auth/storage.js +7 -1
  88. package/dist/auth/storage.js.map +1 -1
  89. package/dist/channels/__tests__/media-integration.test.d.ts +6 -0
  90. package/dist/channels/__tests__/media-integration.test.js +398 -0
  91. package/dist/channels/__tests__/media-integration.test.js.map +1 -0
  92. package/dist/channels/__tests__/media.test.d.ts +6 -0
  93. package/dist/channels/__tests__/media.test.js +251 -0
  94. package/dist/channels/__tests__/media.test.js.map +1 -0
  95. package/dist/channels/access-control.d.ts +1 -1
  96. package/dist/channels/access-control.js +1 -1
  97. package/dist/channels/draft-stream.d.ts +1 -1
  98. package/dist/channels/draft-stream.js +1 -1
  99. package/dist/channels/format.d.ts +1 -1
  100. package/dist/channels/format.js +1 -1
  101. package/dist/channels/telegram/command-handler.js +15 -48
  102. package/dist/channels/telegram/command-handler.js.map +1 -1
  103. package/dist/channels/telegram/plugin.js +3 -2
  104. package/dist/channels/telegram/plugin.js.map +1 -1
  105. package/dist/channels/telegram/webhook.d.ts +1 -1
  106. package/dist/channels/telegram/webhook.js +1 -1
  107. package/dist/channels/types.d.ts +1 -1
  108. package/dist/channels/types.js +1 -1
  109. package/dist/channels/update-offset-store.d.ts +1 -1
  110. package/dist/channels/update-offset-store.js +1 -1
  111. package/dist/cli/commands/auth.js +8 -23
  112. package/dist/cli/commands/auth.js.map +1 -1
  113. package/dist/cli/commands/gateway.js +9 -1
  114. package/dist/cli/commands/gateway.js.map +1 -1
  115. package/dist/cli/commands/models.js +35 -29
  116. package/dist/cli/commands/models.js.map +1 -1
  117. package/dist/cli/commands/onboard.js +73 -58
  118. package/dist/cli/commands/onboard.js.map +1 -1
  119. package/dist/cli/commands/skills.js +6 -6
  120. package/dist/cli/commands/skills.js.map +1 -1
  121. package/dist/cli/index.js +0 -0
  122. package/dist/cli/templates.d.ts +2 -0
  123. package/dist/cli/templates.js +1 -1
  124. package/dist/cli/templates.js.map +1 -1
  125. package/dist/config/defaults.d.ts +19 -0
  126. package/dist/config/defaults.js +168 -0
  127. package/dist/config/defaults.js.map +1 -0
  128. package/dist/config/index.d.ts +5 -0
  129. package/dist/config/index.js +4 -0
  130. package/dist/config/index.js.map +1 -1
  131. package/dist/config/integration.d.ts +12 -0
  132. package/dist/config/integration.js +14 -0
  133. package/dist/config/integration.js.map +1 -0
  134. package/dist/config/models-json.d.ts +454 -0
  135. package/dist/config/models-json.js +323 -0
  136. package/dist/config/models-json.js.map +1 -0
  137. package/dist/config/paths.d.ts +2 -0
  138. package/dist/config/paths.js +4 -0
  139. package/dist/config/paths.js.map +1 -1
  140. package/dist/config/reload.d.ts +1 -1
  141. package/dist/config/reload.js +3 -3
  142. package/dist/config/reload.js.map +1 -1
  143. package/dist/config/resolve-config-value.d.ts +36 -0
  144. package/dist/config/resolve-config-value.js +218 -0
  145. package/dist/config/resolve-config-value.js.map +1 -0
  146. package/dist/config/rules.js +3 -2
  147. package/dist/config/rules.js.map +1 -1
  148. package/dist/config/schema.d.ts +17 -884
  149. package/dist/config/schema.js +36 -312
  150. package/dist/config/schema.js.map +1 -1
  151. package/dist/config/types.models.d.ts +54 -0
  152. package/dist/config/types.models.js +2 -0
  153. package/dist/config/types.models.js.map +1 -0
  154. package/dist/cron/validation.d.ts +4 -4
  155. package/dist/gateway/hono/app.js +230 -78
  156. package/dist/gateway/hono/app.js.map +1 -1
  157. package/dist/gateway/hono/oauth-async.d.ts +14 -0
  158. package/dist/gateway/hono/oauth-async.js +285 -0
  159. package/dist/gateway/hono/oauth-async.js.map +1 -0
  160. package/dist/gateway/hono/oauth.d.ts +9 -0
  161. package/dist/gateway/hono/oauth.js +157 -0
  162. package/dist/gateway/hono/oauth.js.map +1 -0
  163. package/dist/gateway/hono/sse.js +5 -2
  164. package/dist/gateway/hono/sse.js.map +1 -1
  165. package/dist/gateway/service.d.ts +6 -2
  166. package/dist/gateway/service.js +20 -6
  167. package/dist/gateway/service.js.map +1 -1
  168. package/dist/gateway/static/root/assets/flow-BqIEBwW6.js +2 -0
  169. package/dist/gateway/static/root/assets/flow-BqIEBwW6.js.map +1 -0
  170. package/dist/gateway/static/root/assets/main-Br2tw-87.js +5168 -0
  171. package/dist/gateway/static/root/assets/main-Br2tw-87.js.map +1 -0
  172. package/dist/gateway/static/root/assets/main-DwlbPf8Z.css +1 -0
  173. package/dist/gateway/static/root/index.html +2 -2
  174. package/dist/plugins/index.d.ts +0 -2
  175. package/dist/plugins/index.js +0 -2
  176. package/dist/plugins/index.js.map +1 -1
  177. package/dist/plugins/types.d.ts +0 -2
  178. package/dist/plugins/types.js +0 -2
  179. package/dist/plugins/types.js.map +1 -1
  180. package/dist/providers/index.d.ts +50 -22
  181. package/dist/providers/index.js +276 -50
  182. package/dist/providers/index.js.map +1 -1
  183. package/dist/providers/model-registry.d.ts +84 -0
  184. package/dist/providers/model-registry.js +385 -0
  185. package/dist/providers/model-registry.js.map +1 -0
  186. package/dist/types/providers.d.ts +2 -63
  187. package/dist/types/providers.js +1 -1
  188. package/dist/utils/__tests__/frontmatter.test.js +4 -3
  189. package/dist/utils/__tests__/frontmatter.test.js.map +1 -1
  190. package/dist/utils/diagnostic-events.d.ts +230 -0
  191. package/dist/utils/diagnostic-events.js +189 -0
  192. package/dist/utils/diagnostic-events.js.map +1 -0
  193. package/dist/utils/frontmatter.d.ts +0 -1
  194. package/dist/utils/frontmatter.js +13 -77
  195. package/dist/utils/frontmatter.js.map +1 -1
  196. package/dist/utils/log-stream.d.ts +95 -0
  197. package/dist/utils/log-stream.js +229 -0
  198. package/dist/utils/log-stream.js.map +1 -0
  199. package/dist/utils/logger.d.ts +5 -0
  200. package/dist/utils/logger.js +25 -0
  201. package/dist/utils/logger.js.map +1 -1
  202. package/dist/utils/redact.d.ts +73 -0
  203. package/dist/utils/redact.js +245 -0
  204. package/dist/utils/redact.js.map +1 -0
  205. package/package.json +6 -4
  206. package/skills/find-skills/SKILL.md +0 -9
  207. package/dist/__tests__/core.test.d.ts +0 -1
  208. package/dist/__tests__/core.test.js +0 -72
  209. package/dist/__tests__/core.test.js.map +0 -1
  210. package/dist/agent/model-manager.js.map +0 -1
  211. package/dist/cli/commands/configure.d.ts +0 -1
  212. package/dist/cli/commands/configure.js +0 -171
  213. package/dist/cli/commands/configure.js.map +0 -1
  214. package/dist/cli/commands/gateway-daemon.d.ts +0 -1
  215. package/dist/cli/commands/gateway-daemon.js +0 -141
  216. package/dist/cli/commands/gateway-daemon.js.map +0 -1
  217. package/dist/config/__tests__/diff.test.d.ts +0 -1
  218. package/dist/config/__tests__/diff.test.js +0 -192
  219. package/dist/config/__tests__/diff.test.js.map +0 -1
  220. package/dist/config/__tests__/loader.test.d.ts +0 -1
  221. package/dist/config/__tests__/loader.test.js +0 -356
  222. package/dist/config/__tests__/loader.test.js.map +0 -1
  223. package/dist/config/__tests__/paths.test.d.ts +0 -1
  224. package/dist/config/__tests__/paths.test.js +0 -192
  225. package/dist/config/__tests__/paths.test.js.map +0 -1
  226. package/dist/config/__tests__/reload.test.d.ts +0 -1
  227. package/dist/config/__tests__/reload.test.js +0 -374
  228. package/dist/config/__tests__/reload.test.js.map +0 -1
  229. package/dist/config/__tests__/rules.test.d.ts +0 -1
  230. package/dist/config/__tests__/rules.test.js +0 -204
  231. package/dist/config/__tests__/rules.test.js.map +0 -1
  232. package/dist/config/__tests__/schema.test.d.ts +0 -1
  233. package/dist/config/__tests__/schema.test.js +0 -672
  234. package/dist/config/__tests__/schema.test.js.map +0 -1
  235. package/dist/daemon/background-start.d.ts +0 -33
  236. package/dist/daemon/background-start.js +0 -89
  237. package/dist/daemon/background-start.js.map +0 -1
  238. package/dist/daemon/gateway-manager.d.ts +0 -87
  239. package/dist/daemon/gateway-manager.js +0 -324
  240. package/dist/daemon/gateway-manager.js.map +0 -1
  241. package/dist/daemon/index.d.ts +0 -5
  242. package/dist/daemon/index.js +0 -6
  243. package/dist/daemon/index.js.map +0 -1
  244. package/dist/gateway/static/root/assets/main-DevbZW9K.js +0 -2227
  245. package/dist/gateway/static/root/assets/main-DevbZW9K.js.map +0 -1
  246. package/dist/gateway/static/root/assets/main-DxZg1Nmz.css +0 -1
  247. package/dist/providers/__tests__/registry.test.d.ts +0 -1
  248. package/dist/providers/__tests__/registry.test.js +0 -110
  249. package/dist/providers/__tests__/registry.test.js.map +0 -1
  250. package/dist/providers/api-strategies.d.ts +0 -15
  251. package/dist/providers/api-strategies.js +0 -96
  252. package/dist/providers/api-strategies.js.map +0 -1
  253. package/dist/providers/auto-discovery.d.ts +0 -39
  254. package/dist/providers/auto-discovery.js +0 -189
  255. package/dist/providers/auto-discovery.js.map +0 -1
  256. package/dist/providers/config.d.ts +0 -25
  257. package/dist/providers/config.js +0 -42
  258. package/dist/providers/config.js.map +0 -1
  259. package/dist/providers/model-catalog.d.ts +0 -92
  260. package/dist/providers/model-catalog.js +0 -998
  261. package/dist/providers/model-catalog.js.map +0 -1
  262. package/dist/providers/models-dev-data.d.ts +0 -11
  263. package/dist/providers/models-dev-data.js +0 -1035
  264. package/dist/providers/models-dev-data.js.map +0 -1
  265. package/dist/providers/models-dev.d.ts +0 -34
  266. package/dist/providers/models-dev.js +0 -33
  267. package/dist/providers/models-dev.js.map +0 -1
  268. package/dist/providers/pi-ai.d.ts +0 -62
  269. package/dist/providers/pi-ai.js +0 -221
  270. package/dist/providers/pi-ai.js.map +0 -1
  271. package/dist/providers/provider-catalog.d.ts +0 -91
  272. package/dist/providers/provider-catalog.js +0 -791
  273. package/dist/providers/provider-catalog.js.map +0 -1
  274. package/dist/providers/registry.d.ts +0 -135
  275. package/dist/providers/registry.js +0 -475
  276. package/dist/providers/registry.js.map +0 -1
  277. package/dist/providers/types.d.ts +0 -95
  278. package/dist/providers/types.js +0 -7
  279. package/dist/providers/types.js.map +0 -1
  280. package/dist/session/chat-manager.d.ts +0 -49
  281. package/dist/session/chat-manager.js +0 -167
  282. package/dist/session/chat-manager.js.map +0 -1
  283. package/dist/session/chat-types.d.ts +0 -53
  284. package/dist/session/chat-types.js +0 -63
  285. package/dist/session/chat-types.js.map +0 -1
@@ -0,0 +1,229 @@
1
+ /**
2
+ * Log Streaming Module - SSE Real-time Log Delivery
3
+ *
4
+ * Provides Server-Sent Events (SSE) for real-time log streaming:
5
+ * - Subscribe to log events
6
+ * - Filter by level and module
7
+ * - Automatic cleanup on disconnect
8
+ */
9
+ const subscribers = new Set();
10
+ // Log level numeric values for comparison (reserved for future use)
11
+ const _LOG_LEVELS = {
12
+ trace: 10,
13
+ debug: 20,
14
+ info: 30,
15
+ warn: 40,
16
+ error: 50,
17
+ fatal: 60,
18
+ };
19
+ // =============================================================================
20
+ // Public API
21
+ // =============================================================================
22
+ /**
23
+ * Subscribe to log events
24
+ *
25
+ * @param subscriber - Callback function to receive log entries
26
+ * @returns Unsubscribe function
27
+ */
28
+ export function subscribeToLogs(subscriber) {
29
+ subscribers.add(subscriber);
30
+ return () => subscribers.delete(subscriber);
31
+ }
32
+ /**
33
+ * Get number of active subscribers
34
+ */
35
+ export function getSubscriberCount() {
36
+ return subscribers.size;
37
+ }
38
+ /**
39
+ * Check if any subscribers are active
40
+ */
41
+ export function hasSubscribers() {
42
+ return subscribers.size > 0;
43
+ }
44
+ /**
45
+ * Emit a log entry to all subscribers
46
+ *
47
+ * @internal - Called by the logger integration
48
+ */
49
+ export function emitLogEntry(entry) {
50
+ if (subscribers.size === 0)
51
+ return;
52
+ for (const subscriber of subscribers) {
53
+ try {
54
+ subscriber(entry);
55
+ }
56
+ catch {
57
+ // Ignore subscriber errors
58
+ }
59
+ }
60
+ }
61
+ /**
62
+ * Create a log entry from raw data
63
+ *
64
+ * @internal
65
+ */
66
+ export function createLogEntry(level, message, context) {
67
+ return {
68
+ timestamp: new Date().toISOString(),
69
+ level,
70
+ message,
71
+ ...context,
72
+ };
73
+ }
74
+ // =============================================================================
75
+ // HTTP SSE Handler
76
+ // =============================================================================
77
+ /**
78
+ * Create an SSE handler for log streaming
79
+ *
80
+ * Usage:
81
+ * ```typescript
82
+ * import { createLogStreamHandler } from './log-stream.js';
83
+ *
84
+ * app.get('/api/logs/stream', createLogStreamHandler());
85
+ * ```
86
+ */
87
+ export function createLogStreamHandler() {
88
+ return (req) => {
89
+ const url = new URL(req.url);
90
+ const levelsParam = url.searchParams.get('levels');
91
+ const moduleFilter = url.searchParams.get('module');
92
+ // Parse levels
93
+ const allowedLevels = levelsParam
94
+ ? levelsParam.split(',')
95
+ : ['info', 'warn', 'error', 'fatal'];
96
+ const stream = new ReadableStream({
97
+ start(controller) {
98
+ const encoder = new TextEncoder();
99
+ const sendEvent = (data) => {
100
+ const message = `data: ${JSON.stringify(data)}\n\n`;
101
+ controller.enqueue(encoder.encode(message));
102
+ };
103
+ // Send connection message
104
+ sendEvent({ type: 'connected', message: 'Log stream started' });
105
+ // Subscribe to logs
106
+ const unsubscribe = subscribeToLogs((entry) => {
107
+ // Filter by level
108
+ if (!allowedLevels.includes(entry.level))
109
+ return;
110
+ // Filter by module
111
+ if (moduleFilter && entry.module !== moduleFilter && entry.prefix !== moduleFilter)
112
+ return;
113
+ sendEvent(entry);
114
+ });
115
+ // Handle disconnect
116
+ req.signal.addEventListener('abort', () => {
117
+ unsubscribe();
118
+ try {
119
+ controller.close();
120
+ }
121
+ catch {
122
+ // Already closed
123
+ }
124
+ });
125
+ // Send heartbeat every 30 seconds
126
+ const heartbeat = setInterval(() => {
127
+ try {
128
+ sendEvent({ type: 'heartbeat', subscribers: getSubscriberCount() });
129
+ }
130
+ catch {
131
+ clearInterval(heartbeat);
132
+ }
133
+ }, 30000);
134
+ req.signal.addEventListener('abort', () => {
135
+ clearInterval(heartbeat);
136
+ });
137
+ },
138
+ });
139
+ return new Response(stream, {
140
+ headers: {
141
+ 'Content-Type': 'text/event-stream',
142
+ 'Cache-Control': 'no-cache',
143
+ 'Connection': 'keep-alive',
144
+ 'X-Accel-Buffering': 'no',
145
+ },
146
+ });
147
+ };
148
+ }
149
+ // =============================================================================
150
+ // Utility: Create SSE handler compatible with Hono
151
+ // =============================================================================
152
+ /**
153
+ * Create a Hono-compatible SSE handler for log streaming
154
+ *
155
+ * Usage:
156
+ * ```typescript
157
+ * import { createLogSSEHandler } from './log-stream.js';
158
+ *
159
+ * app.get('/api/logs/stream', createLogSSEHandler());
160
+ * ```
161
+ */
162
+ export function createLogSSEHandler() {
163
+ return async (c) => {
164
+ const url = new URL(c.req.url);
165
+ const levelsParam = url.searchParams.get('levels');
166
+ const moduleFilter = url.searchParams.get('module');
167
+ const allowedLevels = levelsParam
168
+ ? levelsParam.split(',')
169
+ : ['info', 'warn', 'error', 'fatal'];
170
+ const stream = new ReadableStream({
171
+ start(controller) {
172
+ const encoder = new TextEncoder();
173
+ const sendEvent = (data) => {
174
+ const message = `data: ${JSON.stringify(data)}\n\n`;
175
+ controller.enqueue(encoder.encode(message));
176
+ };
177
+ // Send connection message
178
+ sendEvent({ type: 'connected', message: 'Log stream started' });
179
+ // Subscribe to logs
180
+ const unsubscribe = subscribeToLogs((entry) => {
181
+ if (!allowedLevels.includes(entry.level))
182
+ return;
183
+ if (moduleFilter && entry.module !== moduleFilter && entry.prefix !== moduleFilter)
184
+ return;
185
+ sendEvent(entry);
186
+ });
187
+ // Handle disconnect
188
+ c.req.raw.signal.addEventListener('abort', () => {
189
+ unsubscribe();
190
+ try {
191
+ controller.close();
192
+ }
193
+ catch {
194
+ // Already closed
195
+ }
196
+ });
197
+ // Heartbeat
198
+ const heartbeat = setInterval(() => {
199
+ try {
200
+ sendEvent({ type: 'heartbeat', subscribers: getSubscriberCount() });
201
+ }
202
+ catch {
203
+ clearInterval(heartbeat);
204
+ }
205
+ }, 30000);
206
+ c.req.raw.signal.addEventListener('abort', () => {
207
+ clearInterval(heartbeat);
208
+ });
209
+ },
210
+ });
211
+ return new Response(stream, {
212
+ headers: {
213
+ 'Content-Type': 'text/event-stream',
214
+ 'Cache-Control': 'no-cache',
215
+ 'Connection': 'keep-alive',
216
+ },
217
+ });
218
+ };
219
+ }
220
+ export default {
221
+ subscribeToLogs,
222
+ getSubscriberCount,
223
+ hasSubscribers,
224
+ emitLogEntry,
225
+ createLogEntry,
226
+ createLogStreamHandler,
227
+ createLogSSEHandler,
228
+ };
229
+ //# sourceMappingURL=log-stream.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"log-stream.js","sourceRoot":"","sources":["../../src/utils/log-stream.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAsCH,MAAM,WAAW,GAAG,IAAI,GAAG,EAAiB,CAAC;AAE7C,oEAAoE;AACpE,MAAM,WAAW,GAA6B;IAC5C,KAAK,EAAE,EAAE;IACT,KAAK,EAAE,EAAE;IACT,IAAI,EAAE,EAAE;IACR,IAAI,EAAE,EAAE;IACR,KAAK,EAAE,EAAE;IACT,KAAK,EAAE,EAAE;CACV,CAAC;AAEF,gFAAgF;AAChF,aAAa;AACb,gFAAgF;AAEhF;;;;;GAKG;AACH,MAAM,UAAU,eAAe,CAAC,UAAyB;IACvD,WAAW,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC;IAC5B,OAAO,GAAG,EAAE,CAAC,WAAW,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC;AAC9C,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,kBAAkB;IAChC,OAAO,WAAW,CAAC,IAAI,CAAC;AAC1B,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,cAAc;IAC5B,OAAO,WAAW,CAAC,IAAI,GAAG,CAAC,CAAC;AAC9B,CAAC;AAED;;;;GAIG;AACH,MAAM,UAAU,YAAY,CAAC,KAAe;IAC1C,IAAI,WAAW,CAAC,IAAI,KAAK,CAAC;QAAE,OAAO;IAEnC,KAAK,MAAM,UAAU,IAAI,WAAW,EAAE,CAAC;QACrC,IAAI,CAAC;YACH,UAAU,CAAC,KAAK,CAAC,CAAC;QACpB,CAAC;QAAC,MAAM,CAAC;YACP,2BAA2B;QAC7B,CAAC;IACH,CAAC;AACH,CAAC;AAED;;;;GAIG;AACH,MAAM,UAAU,cAAc,CAC5B,KAAe,EACf,OAAe,EACf,OAAiC;IAEjC,OAAO;QACL,SAAS,EAAE,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE;QACnC,KAAK;QACL,OAAO;QACP,GAAG,OAAO;KACX,CAAC;AACJ,CAAC;AAED,gFAAgF;AAChF,mBAAmB;AACnB,gFAAgF;AAEhF;;;;;;;;;GASG;AACH,MAAM,UAAU,sBAAsB;IACpC,OAAO,CAAC,GAAY,EAAY,EAAE;QAChC,MAAM,GAAG,GAAG,IAAI,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;QAC7B,MAAM,WAAW,GAAG,GAAG,CAAC,YAAY,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;QACnD,MAAM,YAAY,GAAG,GAAG,CAAC,YAAY,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;QAEpD,eAAe;QACf,MAAM,aAAa,GAAe,WAAW;YAC3C,CAAC,CAAC,WAAW,CAAC,KAAK,CAAC,GAAG,CAAe;YACtC,CAAC,CAAC,CAAC,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE,OAAO,CAAC,CAAC;QAEvC,MAAM,MAAM,GAAG,IAAI,cAAc,CAAC;YAChC,KAAK,CAAC,UAAU;gBACd,MAAM,OAAO,GAAG,IAAI,WAAW,EAAE,CAAC;gBAElC,MAAM,SAAS,GAAG,CAAC,IAAa,EAAE,EAAE;oBAClC,MAAM,OAAO,GAAG,SAAS,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,MAAM,CAAC;oBACpD,UAAU,CAAC,OAAO,CAAC,OAAO,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC;gBAC9C,CAAC,CAAC;gBAEF,0BAA0B;gBAC1B,SAAS,CAAC,EAAE,IAAI,EAAE,WAAW,EAAE,OAAO,EAAE,oBAAoB,EAAE,CAAC,CAAC;gBAEhE,oBAAoB;gBACpB,MAAM,WAAW,GAAG,eAAe,CAAC,CAAC,KAAK,EAAE,EAAE;oBAC5C,kBAAkB;oBAClB,IAAI,CAAC,aAAa,CAAC,QAAQ,CAAC,KAAK,CAAC,KAAK,CAAC;wBAAE,OAAO;oBAEjD,mBAAmB;oBACnB,IAAI,YAAY,IAAI,KAAK,CAAC,MAAM,KAAK,YAAY,IAAI,KAAK,CAAC,MAAM,KAAK,YAAY;wBAAE,OAAO;oBAE3F,SAAS,CAAC,KAAK,CAAC,CAAC;gBACnB,CAAC,CAAC,CAAC;gBAEH,oBAAoB;gBACpB,GAAG,CAAC,MAAM,CAAC,gBAAgB,CAAC,OAAO,EAAE,GAAG,EAAE;oBACxC,WAAW,EAAE,CAAC;oBACd,IAAI,CAAC;wBACH,UAAU,CAAC,KAAK,EAAE,CAAC;oBACrB,CAAC;oBAAC,MAAM,CAAC;wBACP,iBAAiB;oBACnB,CAAC;gBACH,CAAC,CAAC,CAAC;gBAEH,kCAAkC;gBAClC,MAAM,SAAS,GAAG,WAAW,CAAC,GAAG,EAAE;oBACjC,IAAI,CAAC;wBACH,SAAS,CAAC,EAAE,IAAI,EAAE,WAAW,EAAE,WAAW,EAAE,kBAAkB,EAAE,EAAE,CAAC,CAAC;oBACtE,CAAC;oBAAC,MAAM,CAAC;wBACP,aAAa,CAAC,SAAS,CAAC,CAAC;oBAC3B,CAAC;gBACH,CAAC,EAAE,KAAK,CAAC,CAAC;gBAEV,GAAG,CAAC,MAAM,CAAC,gBAAgB,CAAC,OAAO,EAAE,GAAG,EAAE;oBACxC,aAAa,CAAC,SAAS,CAAC,CAAC;gBAC3B,CAAC,CAAC,CAAC;YACL,CAAC;SACF,CAAC,CAAC;QAEH,OAAO,IAAI,QAAQ,CAAC,MAAM,EAAE;YAC1B,OAAO,EAAE;gBACP,cAAc,EAAE,mBAAmB;gBACnC,eAAe,EAAE,UAAU;gBAC3B,YAAY,EAAE,YAAY;gBAC1B,mBAAmB,EAAE,IAAI;aAC1B;SACF,CAAC,CAAC;IACL,CAAC,CAAC;AACJ,CAAC;AAED,gFAAgF;AAChF,mDAAmD;AACnD,gFAAgF;AAEhF;;;;;;;;;GASG;AACH,MAAM,UAAU,mBAAmB;IACjC,OAAO,KAAK,EAAE,CAAyC,EAAE,EAAE;QACzD,MAAM,GAAG,GAAG,IAAI,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;QAC/B,MAAM,WAAW,GAAG,GAAG,CAAC,YAAY,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;QACnD,MAAM,YAAY,GAAG,GAAG,CAAC,YAAY,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;QAEpD,MAAM,aAAa,GAAe,WAAW;YAC3C,CAAC,CAAC,WAAW,CAAC,KAAK,CAAC,GAAG,CAAe;YACtC,CAAC,CAAC,CAAC,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE,OAAO,CAAC,CAAC;QAEvC,MAAM,MAAM,GAAG,IAAI,cAAc,CAAC;YAChC,KAAK,CAAC,UAAU;gBACd,MAAM,OAAO,GAAG,IAAI,WAAW,EAAE,CAAC;gBAElC,MAAM,SAAS,GAAG,CAAC,IAAa,EAAE,EAAE;oBAClC,MAAM,OAAO,GAAG,SAAS,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,MAAM,CAAC;oBACpD,UAAU,CAAC,OAAO,CAAC,OAAO,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC;gBAC9C,CAAC,CAAC;gBAEF,0BAA0B;gBAC1B,SAAS,CAAC,EAAE,IAAI,EAAE,WAAW,EAAE,OAAO,EAAE,oBAAoB,EAAE,CAAC,CAAC;gBAEhE,oBAAoB;gBACpB,MAAM,WAAW,GAAG,eAAe,CAAC,CAAC,KAAK,EAAE,EAAE;oBAC5C,IAAI,CAAC,aAAa,CAAC,QAAQ,CAAC,KAAK,CAAC,KAAK,CAAC;wBAAE,OAAO;oBACjD,IAAI,YAAY,IAAI,KAAK,CAAC,MAAM,KAAK,YAAY,IAAI,KAAK,CAAC,MAAM,KAAK,YAAY;wBAAE,OAAO;oBAE3F,SAAS,CAAC,KAAK,CAAC,CAAC;gBACnB,CAAC,CAAC,CAAC;gBAEH,oBAAoB;gBACpB,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,MAAM,CAAC,gBAAgB,CAAC,OAAO,EAAE,GAAG,EAAE;oBAC9C,WAAW,EAAE,CAAC;oBACd,IAAI,CAAC;wBACH,UAAU,CAAC,KAAK,EAAE,CAAC;oBACrB,CAAC;oBAAC,MAAM,CAAC;wBACP,iBAAiB;oBACnB,CAAC;gBACH,CAAC,CAAC,CAAC;gBAEH,YAAY;gBACZ,MAAM,SAAS,GAAG,WAAW,CAAC,GAAG,EAAE;oBACjC,IAAI,CAAC;wBACH,SAAS,CAAC,EAAE,IAAI,EAAE,WAAW,EAAE,WAAW,EAAE,kBAAkB,EAAE,EAAE,CAAC,CAAC;oBACtE,CAAC;oBAAC,MAAM,CAAC;wBACP,aAAa,CAAC,SAAS,CAAC,CAAC;oBAC3B,CAAC;gBACH,CAAC,EAAE,KAAK,CAAC,CAAC;gBAEV,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,MAAM,CAAC,gBAAgB,CAAC,OAAO,EAAE,GAAG,EAAE;oBAC9C,aAAa,CAAC,SAAS,CAAC,CAAC;gBAC3B,CAAC,CAAC,CAAC;YACL,CAAC;SACF,CAAC,CAAC;QAEH,OAAO,IAAI,QAAQ,CAAC,MAAM,EAAE;YAC1B,OAAO,EAAE;gBACP,cAAc,EAAE,mBAAmB;gBACnC,eAAe,EAAE,UAAU;gBAC3B,YAAY,EAAE,YAAY;aAC3B;SACF,CAAC,CAAC;IACL,CAAC,CAAC;AACJ,CAAC;AAED,eAAe;IACb,eAAe;IACf,kBAAkB;IAClB,cAAc;IACd,YAAY;IACZ,cAAc;IACd,sBAAsB;IACtB,mBAAmB;CACpB,CAAC"}
@@ -83,6 +83,11 @@ export declare function isLevelEnabled(level: LogLevel): boolean;
83
83
  * Log with sampling (for high-frequency debug logs)
84
84
  */
85
85
  export declare function logWithSample(logger: ContextualLogger, level: LogLevel, sampleRate: number, message: string, data?: unknown): void;
86
+ /**
87
+ * Wrap a logger to automatically redact sensitive data
88
+ * Note: Returns original logger - redaction happens at log call site
89
+ */
90
+ export declare function createRedactedLogger(logger: ContextualLogger): ContextualLogger;
86
91
  export type { ContextualLogger as Logger, LogContext } from './logger.types.js';
87
92
  /**
88
93
  * Logging Best Practices:
@@ -22,6 +22,7 @@ import { fileURLToPath } from 'url';
22
22
  import { existsSync, mkdirSync, createWriteStream, unlinkSync, readdirSync, statSync, readFileSync } from 'fs';
23
23
  import { gzip } from 'zlib';
24
24
  import { promisify } from 'util';
25
+ import { redactSensitiveText, redactObject } from './redact.js';
25
26
  const __dirname = path.dirname(fileURLToPath(import.meta.url));
26
27
  const compressAsync = promisify(gzip);
27
28
  // ============================================
@@ -437,6 +438,30 @@ export function logWithSample(logger, level, sampleRate, message, data) {
437
438
  break;
438
439
  }
439
440
  }
441
+ /**
442
+ * Redact sensitive data from log arguments
443
+ * Automatically filters API keys, tokens, passwords, etc.
444
+ */
445
+ // eslint-disable-next-line @typescript-eslint/no-unused-vars
446
+ function redactForLog(data) {
447
+ if (data === null || data === undefined) {
448
+ return data;
449
+ }
450
+ if (typeof data === 'string') {
451
+ return redactSensitiveText(data);
452
+ }
453
+ if (typeof data === 'object') {
454
+ return redactObject(data);
455
+ }
456
+ return data;
457
+ }
458
+ /**
459
+ * Wrap a logger to automatically redact sensitive data
460
+ * Note: Returns original logger - redaction happens at log call site
461
+ */
462
+ export function createRedactedLogger(logger) {
463
+ return logger;
464
+ }
440
465
  /**
441
466
  * Logging Best Practices:
442
467
  *
@@ -1 +1 @@
1
- {"version":3,"file":"logger.js","sourceRoot":"","sources":["../../src/utils/logger.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;GAiBG;AAEH,OAAO,IAAI,MAAM,MAAM,CAAC;AAExB,OAAO,IAAI,MAAM,MAAM,CAAC;AACxB,OAAO,EAAE,aAAa,EAAE,MAAM,KAAK,CAAC;AACpC,OAAO,EAAE,UAAU,EAAE,SAAS,EAAE,iBAAiB,EAAE,UAAU,EAAE,WAAW,EAAE,QAAQ,EAAE,YAAY,EAAE,MAAM,IAAI,CAAC;AAC/G,OAAO,EAAE,IAAI,EAAE,MAAM,MAAM,CAAC;AAC5B,OAAO,EAAE,SAAS,EAAE,MAAM,MAAM,CAAC;AASjC,MAAM,SAAS,GAAG,IAAI,CAAC,OAAO,CAAC,aAAa,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC;AAC/D,MAAM,aAAa,GAAG,SAAS,CAAC,IAAI,CAAC,CAAC;AAEtC,+CAA+C;AAC/C,gBAAgB;AAChB,+CAA+C;AAE/C,MAAM,cAAc,GAAiB;IACnC,KAAK,EAAE,MAAM;IACb,MAAM,EAAE,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,IAAI,IAAI,GAAG,EAAE,UAAU,EAAE,MAAM,CAAC;IAC9D,aAAa,EAAE,IAAI;IACnB,UAAU,EAAE,IAAI;IAChB,eAAe,EAAE,IAAI;IACrB,aAAa,EAAE,CAAC;IAChB,aAAa,EAAE,GAAG;IAClB,WAAW,EAAE,KAAK;IAClB,KAAK,EAAE,IAAI;IACX,eAAe,EAAE,GAAG;CACrB,CAAC;AAEF,SAAS,UAAU;IACjB,MAAM,MAAM,GAAiB,EAAE,GAAG,cAAc,EAAE,CAAC;IAEnD,2CAA2C;IAC3C,MAAM,QAAQ,GAAG,OAAO,CAAC,GAAG,CAAC,iBAAiB,IAAI,OAAO,CAAC,GAAG,CAAC,SAAS,CAAC;IACxE,IAAI,QAAQ,EAAE,CAAC;QACb,MAAM,CAAC,KAAK,GAAG,QAAQ,CAAC,WAAW,EAAc,CAAC;IACpD,CAAC;SAAM,IAAI,OAAO,CAAC,GAAG,CAAC,KAAK,EAAE,CAAC;QAC7B,MAAM,CAAC,KAAK,GAAG,OAAO,CAAC;IACzB,CAAC;IAED,gBAAgB;IAChB,IAAI,OAAO,CAAC,GAAG,CAAC,eAAe,EAAE,CAAC;QAChC,MAAM,CAAC,MAAM,GAAG,OAAO,CAAC,GAAG,CAAC,eAAe,CAAC;IAC9C,CAAC;IAED,iBAAiB;IACjB,IAAI,OAAO,CAAC,GAAG,CAAC,mBAAmB,KAAK,OAAO,EAAE,CAAC;QAChD,MAAM,CAAC,aAAa,GAAG,KAAK,CAAC;IAC/B,CAAC;IACD,IAAI,OAAO,CAAC,GAAG,CAAC,gBAAgB,KAAK,OAAO,EAAE,CAAC;QAC7C,MAAM,CAAC,UAAU,GAAG,KAAK,CAAC;IAC5B,CAAC;IAED,YAAY;IACZ,IAAI,OAAO,CAAC,GAAG,CAAC,0BAA0B,EAAE,CAAC;QAC3C,MAAM,CAAC,aAAa,GAAG,QAAQ,CAAC,OAAO,CAAC,GAAG,CAAC,0BAA0B,EAAE,EAAE,CAAC,CAAC;IAC9E,CAAC;IAED,+BAA+B;IAC/B,IAAI,OAAO,CAAC,GAAG,CAAC,QAAQ,KAAK,aAAa,IAAI,OAAO,CAAC,GAAG,CAAC,mBAAmB,KAAK,MAAM,EAAE,CAAC;QACzF,MAAM,CAAC,WAAW,GAAG,IAAI,CAAC;IAC5B,CAAC;IAED,OAAO,MAAM,CAAC;AAChB,CAAC;AAED,MAAM,MAAM,GAAG,UAAU,EAAE,CAAC;AAE5B,8BAA8B;AAC9B,IAAI,CAAC,UAAU,CAAC,MAAM,CAAC,MAAM,CAAC,EAAE,CAAC;IAC/B,SAAS,CAAC,MAAM,CAAC,MAAM,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;AAChD,CAAC;AAED,+CAA+C;AAC/C,sBAAsB;AACtB,+CAA+C;AAE/C,SAAS,UAAU,CAAC,OAA6C,KAAK,EAAE,OAAa,IAAI,IAAI,EAAE;IAC7F,MAAM,OAAO,GAAG,IAAI,CAAC,WAAW,EAAE,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;IACjD,OAAO,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,MAAM,EAAE,GAAG,IAAI,IAAI,OAAO,MAAM,CAAC,CAAC;AAC5D,CAAC;AAED,SAAS,oBAAoB,CAAC,YAAoB;IAChD,OAAO,GAAG,YAAY,KAAK,CAAC;AAC9B,CAAC;AAED,SAAS,eAAe,CAAC,QAAgB;IACvC,OAAO,iBAAiB,CAAC,QAAQ,EAAE,EAAE,KAAK,EAAE,GAAG,EAAE,QAAQ,EAAE,OAAO,EAAE,CAAC,CAAC;AACxE,CAAC;AAED,iBAAiB;AACjB,MAAM,OAAO,GAA+E,EAAE,CAAC;AAE/F,IAAI,MAAM,CAAC,aAAa,EAAE,CAAC;IACzB,OAAO,CAAC,IAAI,CAAC;QACX,MAAM,EAAE,OAAO,CAAC,MAAsC;QACtD,KAAK,EAAE,MAAM,CAAC,KAAK;KACpB,CAAC,CAAC;AACL,CAAC;AAED,IAAI,MAAM,CAAC,UAAU,EAAE,CAAC;IACtB,OAAO,CAAC,IAAI,CAAC;QACX,MAAM,EAAE,eAAe,CAAC,UAAU,CAAC,KAAK,CAAC,CAAiC;QAC1E,KAAK,EAAE,MAAM,CAAC,KAAK;KACpB,CAAC,CAAC;AACL,CAAC;AAED,IAAI,MAAM,CAAC,eAAe,EAAE,CAAC;IAC3B,OAAO,CAAC,IAAI,CAAC;QACX,MAAM,EAAE,eAAe,CAAC,UAAU,CAAC,OAAO,CAAC,CAAiC;QAC5E,KAAK,EAAE,OAAO;KACf,CAAC,CAAC;AACL,CAAC;AAED,+CAA+C;AAC/C,kCAAkC;AAClC,+CAA+C;AAE/C,MAAM,YAAY,GAAG;IACnB,KAAK,EAAE,EAAE;IACT,KAAK,EAAE,EAAE;IACT,IAAI,EAAE,EAAE;IACR,IAAI,EAAE,EAAE;IACR,KAAK,EAAE,EAAE;IACT,KAAK,EAAE,EAAE;CACV,CAAC;AAEF,+CAA+C;AAC/C,uBAAuB;AACvB,+CAA+C;AAE/C,MAAM,WAAW,GAAuB;IACtC,KAAK,EAAE,MAAM,CAAC,KAAK;IACnB,IAAI,EAAE;QACJ,OAAO,EAAE,SAAS;QAClB,OAAO,EAAE,OAAO,CAAC,GAAG,CAAC,mBAAmB,IAAI,OAAO;KACpD;IACD,SAAS,EAAE,IAAI,CAAC,gBAAgB,CAAC,OAAO;IACxC,UAAU,EAAE;QACV,KAAK,EAAE,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC,EAAE,KAAK,EAAE,KAAK,EAAE,CAAC;QACpC,QAAQ,EAAE,CAAC,QAAQ,EAAE,EAAE,CAAC,CAAC;YACvB,GAAG,EAAE,QAAQ,CAAC,GAAG;YACjB,IAAI,EAAE,QAAQ,CAAC,IAAI;SACpB,CAAC;KACH;IACD,YAAY;CACb,CAAC;AAEF,mCAAmC;AACnC,IAAI,MAAM,CAAC,WAAW,EAAE,CAAC;IACvB,WAAW,CAAC,SAAS,GAAG;QACtB,MAAM,EAAE,aAAa;QACrB,OAAO,EAAE;YACP,QAAQ,EAAE,IAAI;YACd,aAAa,EAAE,cAAc;YAC7B,MAAM,EAAE,UAAU;SACnB;KACF,CAAC;AACJ,CAAC;AAED,MAAM,UAAU,GAAG,IAAI,CAAC,WAAW,EAAE,IAAI,CAAC,WAAW,CAAC,OAAO,CAAC,CAAC,CAAC;AAEhE,+CAA+C;AAC/C,mBAAmB;AACnB,+CAA+C;AAE/C,MAAM,YAAY,GAAG,IAAI,GAAG,EAAsB,CAAC;AAEnD,SAAS,YAAY,CAAC,IAAgB,EAAE,UAAsB;IAC5D,OAAO,EAAE,GAAG,IAAI,EAAE,GAAG,UAAU,EAAE,CAAC;AACpC,CAAC;AAED,SAAS,iBAAiB,CAAC,MAAkB,EAAE,iBAA6B,EAAE;IAC5E,MAAM,UAAU,GAAG,EAAE,OAAO,EAAE,cAAc,EAAE,CAAC;IAE/C,MAAM,KAAK,GAAG,IAAI,KAAK,CAAC,MAAM,EAAE;QAC9B,GAAG,CAAC,MAAM,EAAE,IAAI;YACd,MAAM,OAAO,GAAG,IAAyD,CAAC;YAE1E,IAAI,IAAI,KAAK,aAAa,EAAE,CAAC;gBAC3B,OAAO,CAAC,OAAmB,EAAE,EAAE;oBAC7B,UAAU,CAAC,OAAO,GAAG,YAAY,CAAC,UAAU,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC;oBAC/D,OAAO,KAAK,CAAC;gBACf,CAAC,CAAC;YACJ,CAAC;YACD,IAAI,IAAI,KAAK,cAAc,EAAE,CAAC;gBAC5B,OAAO,CAAC,OAAmB,EAAE,EAAE;oBAC7B,MAAM,MAAM,GAAG,YAAY,CAAC,UAAU,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC;oBACzD,MAAM,KAAK,GAAG,MAAM,CAAC,KAAK,CAAC,EAAE,GAAG,MAAM,EAAE,CAAC,CAAC;oBAC1C,OAAO,iBAAiB,CAAC,KAAK,EAAE,MAAM,CAAC,CAAC;gBAC1C,CAAC,CAAC;YACJ,CAAC;YACD,OAAQ,MAAsD,CAAC,OAAiB,CAAC,CAAC;QACpF,CAAC;KACF,CAAC,CAAC;IAEH,yCAAyC;IACzC,MAAM,aAAa,GAAG,KAAyB,CAAC;IAEhD,OAAO,aAAa,CAAC;AACvB,CAAC;AAED,+CAA+C;AAC/C,aAAa;AACb,+CAA+C;AAE/C,MAAM,CAAC,MAAM,MAAM,GAAG,iBAAiB,CAAC,UAAU,CAAC,CAAC;AACpD,OAAO,EAAE,IAAI,IAAI,IAAI,EAAE,CAAC;AAExB;;GAEG;AACH,MAAM,UAAU,YAAY,CAAC,MAAc,EAAE,OAAoB;IAC/D,MAAM,KAAK,GAAG,UAAU,CAAC,KAAK,CAAC,EAAE,MAAM,EAAE,CAAC,CAAC;IAC3C,OAAO,iBAAiB,CAAC,KAAK,EAAE,EAAE,MAAM,EAAE,MAAM,EAAE,GAAG,OAAO,EAAE,CAAC,CAAC;AAClE,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,kBAAkB,CAAC,UAAkB,EAAE,UAAmB;IACxE,MAAM,IAAI,GAAG,UAAU;QACrB,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,IAAI,CAAC,EAAE,UAAU,CAAC,CAAC,OAAO,CAAC,OAAO,EAAE,EAAE,CAAC;QAC5E,CAAC,CAAC,UAAU,CAAC;IACf,MAAM,KAAK,GAAG,UAAU,CAAC,KAAK,CAAC,EAAE,MAAM,EAAE,IAAI,EAAE,CAAC,CAAC;IACjD,OAAO,iBAAiB,CAAC,KAAK,EAAE,EAAE,MAAM,EAAE,IAAI,EAAE,CAAC,CAAC;AACpD,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,kBAAkB,CAAC,UAAkB;IACnD,MAAM,KAAK,GAAG,UAAU,CAAC,KAAK,CAAC,EAAE,MAAM,EAAE,UAAU,EAAE,CAAC,CAAC;IACvD,OAAO,iBAAiB,CAAC,KAAK,EAAE,EAAE,MAAM,EAAE,UAAU,EAAE,CAAC,CAAC;AAC1D,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,mBAAmB,CAAC,SAAiB;IACnD,MAAM,KAAK,GAAG,UAAU,CAAC,KAAK,CAAC,EAAE,OAAO,EAAE,MAAM,EAAE,KAAK,EAAE,SAAS,EAAE,CAAC,CAAC;IACtE,OAAO,iBAAiB,CAAC,KAAK,EAAE,EAAE,OAAO,EAAE,MAAM,EAAE,KAAK,EAAE,SAAS,EAAE,CAAC,CAAC;AACzE,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,mBAAmB,CAAC,SAAiB,EAAE,cAA2B;IAChF,MAAM,OAAO,GAAe,EAAE,SAAS,EAAE,GAAG,cAAc,EAAE,CAAC;IAC7D,YAAY,CAAC,GAAG,CAAC,SAAS,EAAE,OAAO,CAAC,CAAC;IAErC,MAAM,KAAK,GAAG,UAAU,CAAC,KAAK,CAAC,EAAE,SAAS,EAAE,CAAC,CAAC;IAC9C,MAAM,KAAK,GAAG,iBAAiB,CAAC,KAAK,EAAE,OAAO,CAAC,CAAC;IAEhD,OAAO,KAAK,CAAC;AACf,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,mBAAmB,CAAC,SAAiB;IACnD,YAAY,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC;AACjC,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,iBAAiB,CAAC,SAAiB;IACjD,OAAO,YAAY,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC;AACrC,CAAC;AAQD,MAAM,UAAU,WAAW,CAAC,KAAe;IACzC,UAAU,CAAC,KAAK,GAAG,KAAK,CAAC;AAC3B,CAAC;AAED,MAAM,UAAU,WAAW;IACzB,OAAO,UAAU,CAAC,KAAiB,CAAC;AACtC,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,YAAY,CAAI,KAAe,EAAE,EAAW;IAC1D,MAAM,QAAQ,GAAG,UAAU,CAAC,KAAK,CAAC;IAClC,UAAU,CAAC,KAAK,GAAG,KAAK,CAAC;IACzB,IAAI,CAAC;QACH,OAAO,EAAE,EAAE,CAAC;IACd,CAAC;YAAS,CAAC;QACT,UAAU,CAAC,KAAK,GAAG,QAAQ,CAAC;IAC9B,CAAC;AACH,CAAC;AAED,+CAA+C;AAC/C,eAAe;AACf,+CAA+C;AAE/C;;GAEG;AACH,MAAM,CAAC,KAAK,UAAU,UAAU;IAC9B,MAAM,MAAM,GAAmB;QAC7B,OAAO,EAAE,CAAC;QACV,OAAO,EAAE,CAAC;QACV,UAAU,EAAE,CAAC;QACb,MAAM,EAAE,EAAE;KACX,CAAC;IAEF,IAAI,CAAC;QACH,MAAM,KAAK,GAAG,WAAW,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;QACzC,MAAM,YAAY,GAAG,MAAM,CAAC,aAAa,GAAG,IAAI,GAAG,IAAI,CAAC;QAExD,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE,CAAC;YACzB,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,IAAI,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC;gBAAE,SAAS;YAE7D,MAAM,QAAQ,GAAG,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,MAAM,EAAE,IAAI,CAAC,CAAC;YAChD,MAAM,KAAK,GAAG,QAAQ,CAAC,QAAQ,CAAC,CAAC;YAEjC,IAAI,KAAK,CAAC,IAAI,IAAI,YAAY,EAAE,CAAC;gBAC/B,uCAAuC;gBACvC,MAAM,cAAc,GAAG,oBAAoB,CAAC,QAAQ,CAAC,CAAC;gBAEtD,IAAI,CAAC;oBACH,MAAM,OAAO,GAAG,YAAY,CAAC,QAAQ,CAAC,CAAC;oBACvC,MAAM,UAAU,GAAG,MAAM,aAAa,CAAC,OAAO,CAAC,CAAC;oBAChD,wBAAwB;oBACxB,MAAM,EAAE,SAAS,EAAE,GAAG,MAAM,MAAM,CAAC,aAAa,CAAC,CAAC;oBAClD,MAAM,SAAS,CAAC,cAAc,EAAE,UAAU,CAAC,CAAC;oBAC5C,UAAU,CAAC,QAAQ,CAAC,CAAC;oBACrB,MAAM,CAAC,UAAU,EAAE,CAAC;oBACpB,MAAM,CAAC,OAAO,EAAE,CAAC;gBACnB,CAAC;gBAAC,OAAO,GAAG,EAAE,CAAC;oBACb,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,sBAAsB,IAAI,KAAK,GAAG,EAAE,CAAC,CAAC;gBAC3D,CAAC;YACH,CAAC;QACH,CAAC;IACH,CAAC;IAAC,OAAO,GAAG,EAAE,CAAC;QACb,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,oBAAoB,GAAG,EAAE,CAAC,CAAC;IAChD,CAAC;IAED,OAAO,MAAM,CAAC;AAChB,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,YAAY,CAAC,WAAmB,MAAM,CAAC,aAAa;IAClE,MAAM,MAAM,GAAmB;QAC7B,OAAO,EAAE,CAAC;QACV,OAAO,EAAE,CAAC;QACV,UAAU,EAAE,CAAC;QACb,MAAM,EAAE,EAAE;KACX,CAAC;IAEF,IAAI,CAAC;QACH,MAAM,MAAM,GAAG,IAAI,IAAI,EAAE,CAAC;QAC1B,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC,OAAO,EAAE,GAAG,QAAQ,CAAC,CAAC;QAE5C,MAAM,KAAK,GAAG,WAAW,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;QAEzC,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE,CAAC;YACzB,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,SAAS,CAAC;gBAAE,SAAS;YAElE,MAAM,QAAQ,GAAG,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,MAAM,EAAE,IAAI,CAAC,CAAC;YAChD,MAAM,KAAK,GAAG,QAAQ,CAAC,QAAQ,CAAC,CAAC;YAEjC,IAAI,IAAI,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,GAAG,MAAM,EAAE,CAAC;gBACnC,IAAI,CAAC;oBACH,UAAU,CAAC,QAAQ,CAAC,CAAC;oBACrB,MAAM,CAAC,OAAO,EAAE,CAAC;gBACnB,CAAC;gBAAC,OAAO,GAAG,EAAE,CAAC;oBACb,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,oBAAoB,IAAI,KAAK,GAAG,EAAE,CAAC,CAAC;gBACzD,CAAC;YACH,CAAC;QACH,CAAC;IACH,CAAC;IAAC,OAAO,GAAG,EAAE,CAAC;QACb,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,mBAAmB,GAAG,EAAE,CAAC,CAAC;IAC/C,CAAC;IAED,OAAO,MAAM,CAAC;AAChB,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,SAAS;IACvB,OAAO,MAAM,CAAC,MAAM,CAAC;AACvB,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,eAAe;IAC7B,OAAO,EAAE,GAAG,MAAM,EAAE,CAAC;AACvB,CAAC;AAED,+CAA+C;AAC/C,oBAAoB;AACpB,+CAA+C;AAE/C,IAAI,eAAe,GAAiC,IAAI,CAAC;AAEzD;;GAEG;AACH,MAAM,UAAU,uBAAuB;IACrC,IAAI,eAAe;QAAE,OAAO;IAE5B,eAAe,GAAG,KAAK,IAAI,EAAE;QAC3B,IAAI,CAAC;YACH,yBAAyB;YACzB,MAAM,IAAI,OAAO,CAAO,CAAC,OAAO,EAAE,EAAE;gBAClC,UAAU,CAAC,KAAK,EAAE,CAAC;gBACnB,UAAU,CAAC,OAAO,EAAE,GAAG,CAAC,CAAC;YAC3B,CAAC,CAAC,CAAC;QACL,CAAC;QAAC,MAAM,CAAC;YACP,kCAAkC;QACpC,CAAC;IACH,CAAC,CAAC;IAEF,OAAO,CAAC,EAAE,CAAC,QAAQ,EAAE,eAAe,CAAC,CAAC;IACtC,OAAO,CAAC,EAAE,CAAC,SAAS,EAAE,eAAe,CAAC,CAAC;IACvC,OAAO,CAAC,EAAE,CAAC,MAAM,EAAE,GAAG,EAAE;QACtB,IAAI,eAAe,EAAE,CAAC;YACpB,eAAe,EAAE,CAAC;QACpB,CAAC;IACH,CAAC,CAAC,CAAC;AACL,CAAC;AAED,iCAAiC;AACjC,uBAAuB,EAAE,CAAC;AAE1B,+CAA+C;AAC/C,YAAY;AACZ,+CAA+C;AAE/C;;GAEG;AACH,MAAM,UAAU,cAAc,CAAC,KAAe;IAC5C,MAAM,UAAU,GAAG;QACjB,KAAK,EAAE,EAAE;QACT,KAAK,EAAE,EAAE;QACT,IAAI,EAAE,EAAE;QACR,IAAI,EAAE,EAAE;QACR,KAAK,EAAE,EAAE;QACT,KAAK,EAAE,EAAE;QACT,MAAM,EAAE,MAAM,CAAC,SAAS;KACzB,CAAC,KAAK,CAAC,CAAC;IAET,MAAM,iBAAiB,GAAG;QACxB,KAAK,EAAE,EAAE;QACT,KAAK,EAAE,EAAE;QACT,IAAI,EAAE,EAAE;QACR,IAAI,EAAE,EAAE;QACR,KAAK,EAAE,EAAE;QACT,KAAK,EAAE,EAAE;QACT,MAAM,EAAE,MAAM,CAAC,SAAS;KACzB,CAAC,WAAW,EAAE,CAAC,CAAC;IAEjB,OAAO,UAAU,IAAI,iBAAiB,CAAC;AACzC,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,aAAa,CAC3B,MAAwB,EACxB,KAAe,EACf,UAAkB,EAClB,OAAe,EACf,IAAc;IAEd,IAAI,IAAI,CAAC,MAAM,EAAE,GAAG,UAAU;QAAE,OAAO;IAEvC,QAAQ,KAAK,EAAE,CAAC;QACd,KAAK,OAAO;YACV,MAAM,CAAC,KAAK,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC;YAC5B,MAAM;QACR,KAAK,OAAO;YACV,MAAM,CAAC,KAAK,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC;YAC5B,MAAM;QACR,KAAK,MAAM;YACT,MAAM,CAAC,IAAI,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC;YAC3B,MAAM;QACR,KAAK,MAAM;YACT,MAAM,CAAC,IAAI,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC;YAC3B,MAAM;QACR,KAAK,OAAO;YACV,MAAM,CAAC,KAAK,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC;YAC5B,MAAM;QACR,KAAK,OAAO;YACV,MAAM,CAAC,KAAK,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC;YAC5B,MAAM;IACV,CAAC;AACH,CAAC;AAQD;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAwCG"}
1
+ {"version":3,"file":"logger.js","sourceRoot":"","sources":["../../src/utils/logger.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,73 @@
1
+ /**
2
+ * Sensitive Data Redaction Module
3
+ *
4
+ * Automatically redacts sensitive information from logs:
5
+ * - API keys (OpenAI, Anthropic, etc.)
6
+ * - Tokens (GitHub, Slack, etc.)
7
+ * - Passwords and secrets
8
+ * - Private keys (PEM blocks)
9
+ *
10
+ * Based on OpenClaw's redact.ts implementation.
11
+ */
12
+ export type RedactMode = 'off' | 'tools' | 'always';
13
+ export interface RedactOptions {
14
+ mode?: RedactMode;
15
+ patterns?: string[];
16
+ }
17
+ /**
18
+ * Redact sensitive data from text
19
+ *
20
+ * @param text - Text to redact
21
+ * @param options - Redaction options (optional)
22
+ * @returns Redacted text
23
+ */
24
+ export declare function redactSensitiveText(text: string, options?: RedactOptions): string;
25
+ /**
26
+ * Redact sensitive data from object (recursive)
27
+ *
28
+ * @param obj - Object to redact
29
+ * @param options - Redaction options (optional)
30
+ * @returns Redacted object
31
+ */
32
+ export declare function redactObject<T>(obj: T, options?: RedactOptions): T;
33
+ /**
34
+ * Redact tool details (for logging)
35
+ *
36
+ * Automatically skips sensitive fields in tool arguments
37
+ *
38
+ * @param detail - Tool detail string
39
+ * @returns Redacted detail
40
+ */
41
+ export declare function redactToolDetail(detail: string): string;
42
+ /**
43
+ * Check if redaction is enabled
44
+ */
45
+ export declare function isRedactionEnabled(): boolean;
46
+ /**
47
+ * Get default redact patterns
48
+ */
49
+ export declare function getDefaultRedactPatterns(): string[];
50
+ /**
51
+ * Create a redaction middleware for logger
52
+ *
53
+ * Usage:
54
+ * ```typescript
55
+ * import { createLogger } from './logger.js';
56
+ * import { redactForLogger } from './redact.js';
57
+ *
58
+ * const log = createLogger('MyModule');
59
+ *
60
+ * // Wrap sensitive log data
61
+ * log.info('Request', redactForLogger({ apiKey: 'sk-xxx', data: 'normal' }));
62
+ * ```
63
+ */
64
+ export declare function redactForLogger<T extends Record<string, unknown>>(data: T): T;
65
+ declare const _default: {
66
+ redactSensitiveText: typeof redactSensitiveText;
67
+ redactObject: typeof redactObject;
68
+ redactToolDetail: typeof redactToolDetail;
69
+ isRedactionEnabled: typeof isRedactionEnabled;
70
+ getDefaultRedactPatterns: typeof getDefaultRedactPatterns;
71
+ redactForLogger: typeof redactForLogger;
72
+ };
73
+ export default _default;
@@ -0,0 +1,245 @@
1
+ /**
2
+ * Sensitive Data Redaction Module
3
+ *
4
+ * Automatically redacts sensitive information from logs:
5
+ * - API keys (OpenAI, Anthropic, etc.)
6
+ * - Tokens (GitHub, Slack, etc.)
7
+ * - Passwords and secrets
8
+ * - Private keys (PEM blocks)
9
+ *
10
+ * Based on OpenClaw's redact.ts implementation.
11
+ */
12
+ // Environment variable override
13
+ const ENV_REDACT_MODE = process.env.XOPCBOT_REDACT_MODE;
14
+ const DEFAULT_REDACT_MODE = 'tools';
15
+ const DEFAULT_REDACT_MIN_LENGTH = 18;
16
+ const DEFAULT_REDACT_KEEP_START = 6;
17
+ const DEFAULT_REDACT_KEEP_END = 4;
18
+ // Common sensitive data patterns
19
+ const DEFAULT_REDACT_PATTERNS = [
20
+ // ENV-style assignments (KEY, TOKEN, SECRET, PASSWORD)
21
+ String.raw `\b[A-Z0-9_]*(?:KEY|TOKEN|SECRET|PASSWORD|PASSWD)\b\s*[=:]\s*(["']?)([^\s"'\\]+)\1`,
22
+ // JSON fields (apiKey, token, secret, password, accessToken, refreshToken)
23
+ String.raw `"(?:apiKey|token|secret|password|passwd|accessToken|refreshToken|api_key|authToken)"\s*:\s*"([^"]+)"`,
24
+ // CLI flags
25
+ String.raw `--(?:api[-_]?key|token|secret|password|passwd)\s+(["']?)([^\s"']+)\1`,
26
+ // Authorization headers
27
+ String.raw `Authorization\s*[:=]\s*Bearer\s+([A-Za-z0-9._\-+=]+)`,
28
+ String.raw `\bBearer\s+([A-Za-z0-9._\-+=]{18,})\b`,
29
+ // PEM private keys
30
+ String.raw `-----BEGIN [A-Z ]*PRIVATE KEY-----[\s\S]+?-----END [A-Z ]*PRIVATE KEY-----`,
31
+ // OpenAI API keys
32
+ String.raw `\b(sk-[A-Za-z0-9_-]{20,})\b`,
33
+ // Anthropic API keys
34
+ String.raw `\b(sk-ant-[A-Za-z0-9_-]{20,})\b`,
35
+ // GitHub tokens
36
+ String.raw `\b(ghp_[A-Za-z0-9]{20,})\b`,
37
+ String.raw `\b(github_pat_[A-Za-z0-9_]{20,})\b`,
38
+ String.raw `\b(gho_[A-Za-z0-9]{20,})\b`,
39
+ // Slack tokens
40
+ String.raw `\b(xox[baprs]-[A-Za-z0-9-]{10,})\b`,
41
+ // Google API keys
42
+ String.raw `\b(AIza[0-9A-Za-z\-_]{20,})\b`,
43
+ // Anthropic/other keys
44
+ String.raw `\b(sk-antapi[0-9a-zA-Z_-]{20,})\b`,
45
+ // OpenRouter keys
46
+ String.raw `\b(sk-or-v[0-9a-zA-Z_-]{20,})\b`,
47
+ // MiniMax keys
48
+ String.raw `\b(mmx-[A-Za-z0-9_-]{20,})\b`,
49
+ // Kimi/Moonshot keys
50
+ String.raw `\b(moonshot-[A-Za-z0-9_-]{20,})\b`,
51
+ // Generic Bearer tokens
52
+ String.raw `\b[Aa]ccess[-_]?[Tt]oken["']?\s*[:=]\s*["']?([A-Za-z0-9._\-+=]{20,})["']?`,
53
+ // Generic refresh tokens
54
+ String.raw `\b[Rr]efresh[-_]?[Tt]oken["']?\s*[:=]\s*["']?([A-Za-z0-9._\-+=]{20,})["']?`,
55
+ ];
56
+ // =============================================================================
57
+ // Internal Functions
58
+ // =============================================================================
59
+ function normalizeMode(value) {
60
+ return value === 'off' ? 'off' : DEFAULT_REDACT_MODE;
61
+ }
62
+ function parsePattern(raw) {
63
+ if (!raw.trim()) {
64
+ return null;
65
+ }
66
+ const match = raw.match(/^\/(.+)\/([gimsuy]*)$/);
67
+ try {
68
+ if (match) {
69
+ const flags = match[2].includes('g') ? match[2] : `${match[2]}g`;
70
+ return new RegExp(match[1], flags);
71
+ }
72
+ return new RegExp(raw, 'gi');
73
+ }
74
+ catch {
75
+ return null;
76
+ }
77
+ }
78
+ function resolvePatterns(value) {
79
+ const source = value?.length ? value : DEFAULT_REDACT_PATTERNS;
80
+ return source.map(parsePattern).filter((re) => Boolean(re));
81
+ }
82
+ function maskToken(token) {
83
+ if (token.length < DEFAULT_REDACT_MIN_LENGTH) {
84
+ return '***';
85
+ }
86
+ const start = token.slice(0, DEFAULT_REDACT_KEEP_START);
87
+ const end = token.slice(-DEFAULT_REDACT_KEEP_END);
88
+ return `${start}…${end}`;
89
+ }
90
+ function redactPemBlock(block) {
91
+ const lines = block.split(/\r?\n/).filter(Boolean);
92
+ if (lines.length < 2) {
93
+ return '***';
94
+ }
95
+ return `${lines[0]}\n…redacted…\n${lines[lines.length - 1]}`;
96
+ }
97
+ function redactMatch(match, groups) {
98
+ if (match.includes('PRIVATE KEY-----')) {
99
+ return redactPemBlock(match);
100
+ }
101
+ const token = groups.filter((value) => typeof value === 'string' && value.length > 0).at(-1) ?? match;
102
+ const masked = maskToken(token);
103
+ if (token === match) {
104
+ return masked;
105
+ }
106
+ return match.replace(token, masked);
107
+ }
108
+ function redactText(text, patterns) {
109
+ let next = text;
110
+ for (const pattern of patterns) {
111
+ next = next.replace(pattern, (...args) => redactMatch(args[0], args.slice(1, args.length - 2)));
112
+ }
113
+ return next;
114
+ }
115
+ function resolveConfigRedaction() {
116
+ // Check environment variable first
117
+ if (ENV_REDACT_MODE) {
118
+ return {
119
+ mode: normalizeMode(ENV_REDACT_MODE),
120
+ patterns: undefined,
121
+ };
122
+ }
123
+ // Default to 'tools' mode
124
+ return {
125
+ mode: DEFAULT_REDACT_MODE,
126
+ patterns: undefined,
127
+ };
128
+ }
129
+ // =============================================================================
130
+ // Public API
131
+ // =============================================================================
132
+ /**
133
+ * Redact sensitive data from text
134
+ *
135
+ * @param text - Text to redact
136
+ * @param options - Redaction options (optional)
137
+ * @returns Redacted text
138
+ */
139
+ export function redactSensitiveText(text, options) {
140
+ if (!text) {
141
+ return text;
142
+ }
143
+ const resolved = options ?? resolveConfigRedaction();
144
+ if (normalizeMode(resolved.mode) === 'off') {
145
+ return text;
146
+ }
147
+ const patterns = resolvePatterns(resolved.patterns);
148
+ if (!patterns.length) {
149
+ return text;
150
+ }
151
+ return redactText(text, patterns);
152
+ }
153
+ /**
154
+ * Redact sensitive data from object (recursive)
155
+ *
156
+ * @param obj - Object to redact
157
+ * @param options - Redaction options (optional)
158
+ * @returns Redacted object
159
+ */
160
+ export function redactObject(obj, options) {
161
+ if (obj === null || obj === undefined) {
162
+ return obj;
163
+ }
164
+ if (typeof obj === 'string') {
165
+ return redactSensitiveText(obj, options);
166
+ }
167
+ if (typeof obj === 'object') {
168
+ if (Array.isArray(obj)) {
169
+ return obj.map(item => redactObject(item, options));
170
+ }
171
+ const redacted = {};
172
+ for (const [key, value] of Object.entries(obj)) {
173
+ // Skip known sensitive keys
174
+ const sensitiveKeys = [
175
+ 'apiKey', 'api_key', 'token', 'accessToken', 'refreshToken',
176
+ 'password', 'secret', 'privateKey', 'credential'
177
+ ];
178
+ if (sensitiveKeys.some(k => key.toLowerCase().includes(k.toLowerCase()))) {
179
+ redacted[key] = '***REDACTED***';
180
+ }
181
+ else {
182
+ redacted[key] = redactObject(value, options);
183
+ }
184
+ }
185
+ return redacted;
186
+ }
187
+ return obj;
188
+ }
189
+ /**
190
+ * Redact tool details (for logging)
191
+ *
192
+ * Automatically skips sensitive fields in tool arguments
193
+ *
194
+ * @param detail - Tool detail string
195
+ * @returns Redacted detail
196
+ */
197
+ export function redactToolDetail(detail) {
198
+ const resolved = resolveConfigRedaction();
199
+ if (normalizeMode(resolved.mode) !== 'tools') {
200
+ return detail;
201
+ }
202
+ return redactSensitiveText(detail, resolved);
203
+ }
204
+ /**
205
+ * Check if redaction is enabled
206
+ */
207
+ export function isRedactionEnabled() {
208
+ const resolved = resolveConfigRedaction();
209
+ return normalizeMode(resolved.mode) !== 'off';
210
+ }
211
+ /**
212
+ * Get default redact patterns
213
+ */
214
+ export function getDefaultRedactPatterns() {
215
+ return [...DEFAULT_REDACT_PATTERNS];
216
+ }
217
+ // =============================================================================
218
+ // Logger Integration
219
+ // =============================================================================
220
+ /**
221
+ * Create a redaction middleware for logger
222
+ *
223
+ * Usage:
224
+ * ```typescript
225
+ * import { createLogger } from './logger.js';
226
+ * import { redactForLogger } from './redact.js';
227
+ *
228
+ * const log = createLogger('MyModule');
229
+ *
230
+ * // Wrap sensitive log data
231
+ * log.info('Request', redactForLogger({ apiKey: 'sk-xxx', data: 'normal' }));
232
+ * ```
233
+ */
234
+ export function redactForLogger(data) {
235
+ return redactObject(data);
236
+ }
237
+ export default {
238
+ redactSensitiveText,
239
+ redactObject,
240
+ redactToolDetail,
241
+ isRedactionEnabled,
242
+ getDefaultRedactPatterns,
243
+ redactForLogger,
244
+ };
245
+ //# sourceMappingURL=redact.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"redact.js","sourceRoot":"","sources":["../../src/utils/redact.ts"],"names":[],"mappings":"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"}