gthinking 1.3.0 → 2.1.1

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 (271) hide show
  1. package/.eslintrc.js +34 -0
  2. package/ANALYSIS_SUMMARY.md +363 -0
  3. package/README.md +230 -250
  4. package/dist/analysis/analysis-engine.d.ts +63 -0
  5. package/dist/analysis/analysis-engine.d.ts.map +1 -0
  6. package/dist/analysis/analysis-engine.js +322 -0
  7. package/dist/analysis/analysis-engine.js.map +1 -0
  8. package/dist/core/config.d.ts +1419 -0
  9. package/dist/core/config.d.ts.map +1 -0
  10. package/dist/core/config.js +361 -0
  11. package/dist/core/config.js.map +1 -0
  12. package/dist/core/engine.d.ts +176 -0
  13. package/dist/core/engine.d.ts.map +1 -0
  14. package/dist/core/engine.js +604 -0
  15. package/dist/core/engine.js.map +1 -0
  16. package/dist/core/errors.d.ts +153 -0
  17. package/dist/core/errors.d.ts.map +1 -0
  18. package/dist/core/errors.js +287 -0
  19. package/dist/core/errors.js.map +1 -0
  20. package/dist/core/index.d.ts +7 -0
  21. package/dist/core/index.d.ts.map +1 -0
  22. package/dist/{types.js → core/index.js} +8 -4
  23. package/dist/core/index.js.map +1 -0
  24. package/dist/core/pipeline.d.ts +121 -0
  25. package/dist/core/pipeline.d.ts.map +1 -0
  26. package/dist/core/pipeline.js +289 -0
  27. package/dist/core/pipeline.js.map +1 -0
  28. package/dist/core/rate-limiter.d.ts +58 -0
  29. package/dist/core/rate-limiter.d.ts.map +1 -0
  30. package/dist/core/rate-limiter.js +133 -0
  31. package/dist/core/rate-limiter.js.map +1 -0
  32. package/dist/core/session-manager.d.ts +96 -0
  33. package/dist/core/session-manager.d.ts.map +1 -0
  34. package/dist/core/session-manager.js +223 -0
  35. package/dist/core/session-manager.js.map +1 -0
  36. package/dist/creativity/creativity-engine.d.ts +6 -0
  37. package/dist/creativity/creativity-engine.d.ts.map +1 -0
  38. package/dist/creativity/creativity-engine.js +17 -0
  39. package/dist/creativity/creativity-engine.js.map +1 -0
  40. package/dist/index.d.ts +24 -32
  41. package/dist/index.d.ts.map +1 -1
  42. package/dist/index.js +130 -104
  43. package/dist/index.js.map +1 -1
  44. package/dist/learning/learning-engine.d.ts +6 -0
  45. package/dist/learning/learning-engine.d.ts.map +1 -0
  46. package/dist/learning/learning-engine.js +17 -0
  47. package/dist/learning/learning-engine.js.map +1 -0
  48. package/dist/llm/index.d.ts +10 -0
  49. package/dist/llm/index.d.ts.map +1 -0
  50. package/dist/llm/index.js +26 -0
  51. package/dist/llm/index.js.map +1 -0
  52. package/dist/llm/llm-service.d.ts +109 -0
  53. package/dist/llm/llm-service.d.ts.map +1 -0
  54. package/dist/llm/llm-service.js +224 -0
  55. package/dist/llm/llm-service.js.map +1 -0
  56. package/dist/llm/providers/base.d.ts +85 -0
  57. package/dist/llm/providers/base.d.ts.map +1 -0
  58. package/dist/llm/providers/base.js +57 -0
  59. package/dist/llm/providers/base.js.map +1 -0
  60. package/dist/llm/providers/cli.d.ts +23 -0
  61. package/dist/llm/providers/cli.d.ts.map +1 -0
  62. package/dist/llm/providers/cli.js +158 -0
  63. package/dist/llm/providers/cli.js.map +1 -0
  64. package/dist/llm/providers/gemini.d.ts +30 -0
  65. package/dist/llm/providers/gemini.d.ts.map +1 -0
  66. package/dist/llm/providers/gemini.js +168 -0
  67. package/dist/llm/providers/gemini.js.map +1 -0
  68. package/dist/llm/sanitization.d.ts +50 -0
  69. package/dist/llm/sanitization.d.ts.map +1 -0
  70. package/dist/llm/sanitization.js +149 -0
  71. package/dist/llm/sanitization.js.map +1 -0
  72. package/dist/{server.d.ts.map → mcp/server.d.ts.map} +1 -1
  73. package/dist/mcp/server.js +108 -0
  74. package/dist/mcp/server.js.map +1 -0
  75. package/dist/planning/planning-engine.d.ts +6 -0
  76. package/dist/planning/planning-engine.d.ts.map +1 -0
  77. package/dist/planning/planning-engine.js +17 -0
  78. package/dist/planning/planning-engine.js.map +1 -0
  79. package/dist/reasoning/reasoning-engine.d.ts +6 -0
  80. package/dist/reasoning/reasoning-engine.d.ts.map +1 -0
  81. package/dist/reasoning/reasoning-engine.js +17 -0
  82. package/dist/reasoning/reasoning-engine.js.map +1 -0
  83. package/dist/search/search-engine.d.ts +99 -0
  84. package/dist/search/search-engine.d.ts.map +1 -0
  85. package/dist/search/search-engine.js +271 -0
  86. package/dist/search/search-engine.js.map +1 -0
  87. package/dist/synthesis/synthesis-engine.d.ts +6 -0
  88. package/dist/synthesis/synthesis-engine.d.ts.map +1 -0
  89. package/dist/synthesis/synthesis-engine.js +17 -0
  90. package/dist/synthesis/synthesis-engine.js.map +1 -0
  91. package/dist/types/analysis.d.ts +1534 -49
  92. package/dist/types/analysis.d.ts.map +1 -1
  93. package/dist/types/analysis.js +250 -0
  94. package/dist/types/analysis.js.map +1 -1
  95. package/dist/types/core.d.ts +257 -30
  96. package/dist/types/core.d.ts.map +1 -1
  97. package/dist/types/core.js +148 -18
  98. package/dist/types/core.js.map +1 -1
  99. package/dist/types/creativity.d.ts +2871 -56
  100. package/dist/types/creativity.d.ts.map +1 -1
  101. package/dist/types/creativity.js +195 -0
  102. package/dist/types/creativity.js.map +1 -1
  103. package/dist/types/index.d.ts +6 -2
  104. package/dist/types/index.d.ts.map +1 -1
  105. package/dist/types/index.js +17 -2
  106. package/dist/types/index.js.map +1 -1
  107. package/dist/types/learning.d.ts +851 -61
  108. package/dist/types/learning.d.ts.map +1 -1
  109. package/dist/types/learning.js +155 -0
  110. package/dist/types/learning.js.map +1 -1
  111. package/dist/types/planning.d.ts +2223 -71
  112. package/dist/types/planning.d.ts.map +1 -1
  113. package/dist/types/planning.js +190 -0
  114. package/dist/types/planning.js.map +1 -1
  115. package/dist/types/reasoning.d.ts +2209 -72
  116. package/dist/types/reasoning.d.ts.map +1 -1
  117. package/dist/types/reasoning.js +200 -1
  118. package/dist/types/reasoning.js.map +1 -1
  119. package/dist/types/search.d.ts +981 -53
  120. package/dist/types/search.d.ts.map +1 -1
  121. package/dist/types/search.js +137 -0
  122. package/dist/types/search.js.map +1 -1
  123. package/dist/types/synthesis.d.ts +583 -38
  124. package/dist/types/synthesis.d.ts.map +1 -1
  125. package/dist/types/synthesis.js +138 -0
  126. package/dist/types/synthesis.js.map +1 -1
  127. package/dist/utils/cache.d.ts +144 -0
  128. package/dist/utils/cache.d.ts.map +1 -0
  129. package/dist/utils/cache.js +288 -0
  130. package/dist/utils/cache.js.map +1 -0
  131. package/dist/utils/id-generator.d.ts +89 -0
  132. package/dist/utils/id-generator.d.ts.map +1 -0
  133. package/dist/utils/id-generator.js +132 -0
  134. package/dist/utils/id-generator.js.map +1 -0
  135. package/dist/utils/index.d.ts +11 -0
  136. package/dist/utils/index.d.ts.map +1 -0
  137. package/dist/utils/index.js +33 -0
  138. package/dist/utils/index.js.map +1 -0
  139. package/dist/utils/logger.d.ts +142 -0
  140. package/dist/utils/logger.d.ts.map +1 -0
  141. package/dist/utils/logger.js +248 -0
  142. package/dist/utils/logger.js.map +1 -0
  143. package/dist/utils/metrics.d.ts +149 -0
  144. package/dist/utils/metrics.d.ts.map +1 -0
  145. package/dist/utils/metrics.js +296 -0
  146. package/dist/utils/metrics.js.map +1 -0
  147. package/dist/utils/timer.d.ts +7 -0
  148. package/dist/utils/timer.d.ts.map +1 -0
  149. package/dist/utils/timer.js +17 -0
  150. package/dist/utils/timer.js.map +1 -0
  151. package/dist/utils/validation.d.ts +147 -0
  152. package/dist/utils/validation.d.ts.map +1 -0
  153. package/dist/utils/validation.js +275 -0
  154. package/dist/utils/validation.js.map +1 -0
  155. package/docs/API.md +411 -0
  156. package/docs/ARCHITECTURE.md +271 -0
  157. package/docs/CHANGELOG.md +283 -0
  158. package/jest.config.js +28 -0
  159. package/package.json +43 -30
  160. package/src/analysis/analysis-engine.ts +383 -0
  161. package/src/core/config.ts +406 -0
  162. package/src/core/engine.ts +785 -0
  163. package/src/core/errors.ts +349 -0
  164. package/src/core/index.ts +12 -0
  165. package/src/core/pipeline.ts +424 -0
  166. package/src/core/rate-limiter.ts +155 -0
  167. package/src/core/session-manager.ts +269 -0
  168. package/src/creativity/creativity-engine.ts +14 -0
  169. package/src/index.ts +178 -0
  170. package/src/learning/learning-engine.ts +14 -0
  171. package/src/llm/index.ts +10 -0
  172. package/src/llm/llm-service.ts +285 -0
  173. package/src/llm/providers/base.ts +146 -0
  174. package/src/llm/providers/cli.ts +186 -0
  175. package/src/llm/providers/gemini.ts +201 -0
  176. package/src/llm/sanitization.ts +178 -0
  177. package/src/mcp/server.ts +117 -0
  178. package/src/planning/planning-engine.ts +14 -0
  179. package/src/reasoning/reasoning-engine.ts +14 -0
  180. package/src/search/search-engine.ts +333 -0
  181. package/src/synthesis/synthesis-engine.ts +14 -0
  182. package/src/types/analysis.ts +337 -0
  183. package/src/types/core.ts +342 -0
  184. package/src/types/creativity.ts +268 -0
  185. package/src/types/index.ts +31 -0
  186. package/src/types/learning.ts +215 -0
  187. package/src/types/planning.ts +251 -0
  188. package/src/types/reasoning.ts +288 -0
  189. package/src/types/search.ts +192 -0
  190. package/src/types/synthesis.ts +187 -0
  191. package/src/utils/cache.ts +363 -0
  192. package/src/utils/id-generator.ts +135 -0
  193. package/src/utils/index.ts +22 -0
  194. package/src/utils/logger.ts +290 -0
  195. package/src/utils/metrics.ts +380 -0
  196. package/src/utils/timer.ts +15 -0
  197. package/src/utils/validation.ts +297 -0
  198. package/tests/setup.ts +22 -0
  199. package/tests/unit/cache.test.ts +189 -0
  200. package/tests/unit/engine.test.ts +179 -0
  201. package/tests/unit/validation.test.ts +218 -0
  202. package/tsconfig.json +17 -12
  203. package/GEMINI.md +0 -68
  204. package/analysis.ts +0 -1063
  205. package/creativity.ts +0 -1055
  206. package/dist/analysis.d.ts +0 -54
  207. package/dist/analysis.d.ts.map +0 -1
  208. package/dist/analysis.js +0 -866
  209. package/dist/analysis.js.map +0 -1
  210. package/dist/creativity.d.ts +0 -81
  211. package/dist/creativity.d.ts.map +0 -1
  212. package/dist/creativity.js +0 -828
  213. package/dist/creativity.js.map +0 -1
  214. package/dist/engine.d.ts +0 -90
  215. package/dist/engine.d.ts.map +0 -1
  216. package/dist/engine.js +0 -720
  217. package/dist/engine.js.map +0 -1
  218. package/dist/examples.d.ts +0 -7
  219. package/dist/examples.d.ts.map +0 -1
  220. package/dist/examples.js +0 -506
  221. package/dist/examples.js.map +0 -1
  222. package/dist/learning.d.ts +0 -72
  223. package/dist/learning.d.ts.map +0 -1
  224. package/dist/learning.js +0 -615
  225. package/dist/learning.js.map +0 -1
  226. package/dist/llm-service.d.ts +0 -21
  227. package/dist/llm-service.d.ts.map +0 -1
  228. package/dist/llm-service.js +0 -100
  229. package/dist/llm-service.js.map +0 -1
  230. package/dist/planning.d.ts +0 -62
  231. package/dist/planning.d.ts.map +0 -1
  232. package/dist/planning.js +0 -886
  233. package/dist/planning.js.map +0 -1
  234. package/dist/reasoning.d.ts +0 -73
  235. package/dist/reasoning.d.ts.map +0 -1
  236. package/dist/reasoning.js +0 -845
  237. package/dist/reasoning.js.map +0 -1
  238. package/dist/search-discovery.d.ts +0 -73
  239. package/dist/search-discovery.d.ts.map +0 -1
  240. package/dist/search-discovery.js +0 -548
  241. package/dist/search-discovery.js.map +0 -1
  242. package/dist/server.js +0 -113
  243. package/dist/server.js.map +0 -1
  244. package/dist/types/engine.d.ts +0 -55
  245. package/dist/types/engine.d.ts.map +0 -1
  246. package/dist/types/engine.js +0 -3
  247. package/dist/types/engine.js.map +0 -1
  248. package/dist/types.d.ts +0 -6
  249. package/dist/types.d.ts.map +0 -1
  250. package/dist/types.js.map +0 -1
  251. package/engine.ts +0 -1009
  252. package/examples.ts +0 -717
  253. package/index.ts +0 -106
  254. package/learning.ts +0 -779
  255. package/llm-service.ts +0 -120
  256. package/planning.ts +0 -1101
  257. package/reasoning.ts +0 -1079
  258. package/search-discovery.ts +0 -700
  259. package/server.ts +0 -115
  260. package/types/analysis.ts +0 -69
  261. package/types/core.ts +0 -90
  262. package/types/creativity.ts +0 -72
  263. package/types/engine.ts +0 -60
  264. package/types/index.ts +0 -9
  265. package/types/learning.ts +0 -69
  266. package/types/planning.ts +0 -85
  267. package/types/reasoning.ts +0 -92
  268. package/types/search.ts +0 -58
  269. package/types/synthesis.ts +0 -43
  270. package/types.ts +0 -6
  271. /package/dist/{server.d.ts → mcp/server.d.ts} +0 -0
@@ -0,0 +1,269 @@
1
+ /**
2
+ * Session Manager for GThinking
3
+ *
4
+ * Manages user sessions with automatic cleanup, persistence,
5
+ * and history tracking.
6
+ *
7
+ * @module core/session-manager
8
+ */
9
+
10
+ import type { EngineConfig, Session, ThinkingRequest, ThinkingResponse } from '../types/core';
11
+ import { SessionSchema } from '../types/core';
12
+ import { GThinkingError } from './errors';
13
+ class SessionError extends GThinkingError {
14
+ constructor(message: string, sessionId: string) {
15
+ super(message, 'SESSION_ERROR', { sessionId });
16
+ }
17
+ }
18
+ import { logger, createComponentLogger } from '../utils/logger';
19
+ import { generateUUID } from '../utils/id-generator';
20
+ import { validateSchema } from '../utils/validation';
21
+
22
+ /**
23
+ * Session manager implementation
24
+ */
25
+ export class SessionManager {
26
+ private readonly sessions: Map<string, Session> = new Map();
27
+ private readonly config: Pick<EngineConfig, 'sessionMaxAgeMs' | 'sessionCleanupIntervalMs' | 'maxConcurrentSessions'>;
28
+ private readonly logger = createComponentLogger('SessionManager');
29
+ private cleanupIntervalId: NodeJS.Timeout | null = null;
30
+
31
+ constructor(config: Pick<EngineConfig, 'sessionMaxAgeMs' | 'sessionCleanupIntervalMs' | 'maxConcurrentSessions'>) {
32
+ this.config = config;
33
+ }
34
+
35
+ /**
36
+ * Initialize the session manager
37
+ */
38
+ async initialize(): Promise<void> {
39
+ this.startCleanupInterval();
40
+ this.logger.info('Session manager initialized');
41
+ }
42
+
43
+ /**
44
+ * Shutdown the session manager
45
+ */
46
+ async shutdown(): Promise<void> {
47
+ this.stopCleanupInterval();
48
+ this.sessions.clear();
49
+ this.logger.info('Session manager shut down');
50
+ }
51
+
52
+ /**
53
+ * Get or create a session
54
+ *
55
+ * @param sessionId - Session ID
56
+ * @returns Session
57
+ */
58
+ async getOrCreateSession(sessionId: string): Promise<Session> {
59
+ // Validate session ID
60
+ if (!this.isValidSessionId(sessionId)) {
61
+ throw new SessionError('Invalid session ID', sessionId);
62
+ }
63
+
64
+ // Check if session exists
65
+ const existingSession = this.sessions.get(sessionId);
66
+ if (existingSession !== undefined) {
67
+ // Update last accessed
68
+ existingSession.lastAccessedAt = Date.now();
69
+ return existingSession;
70
+ }
71
+
72
+ // Check session limit
73
+ if (this.sessions.size >= this.config.maxConcurrentSessions) {
74
+ // Try to clean up expired sessions first
75
+ this.cleanupExpiredSessions();
76
+
77
+ if (this.sessions.size >= this.config.maxConcurrentSessions) {
78
+ throw new SessionError(
79
+ 'Maximum concurrent sessions reached',
80
+ sessionId
81
+ );
82
+ }
83
+ }
84
+
85
+ // Create new session
86
+ const newSession = this.createSession(sessionId);
87
+ this.sessions.set(sessionId, newSession);
88
+
89
+ this.logger.debug('Session created', { sessionId });
90
+ return newSession;
91
+ }
92
+
93
+ /**
94
+ * Get a session by ID
95
+ *
96
+ * @param sessionId - Session ID
97
+ * @returns Session or undefined
98
+ */
99
+ async getSession(sessionId: string): Promise<Session | undefined> {
100
+ const session = this.sessions.get(sessionId);
101
+
102
+ if (session !== undefined) {
103
+ session.lastAccessedAt = Date.now();
104
+ }
105
+
106
+ return session;
107
+ }
108
+
109
+ /**
110
+ * Delete a session
111
+ *
112
+ * @param sessionId - Session ID
113
+ * @returns True if session was deleted
114
+ */
115
+ async deleteSession(sessionId: string): Promise<boolean> {
116
+ const deleted = this.sessions.delete(sessionId);
117
+
118
+ if (deleted) {
119
+ this.logger.debug('Session deleted', { sessionId });
120
+ }
121
+
122
+ return deleted;
123
+ }
124
+
125
+ /**
126
+ * Add request/response to session history
127
+ *
128
+ * @param sessionId - Session ID
129
+ * @param request - Thinking request
130
+ * @param response - Thinking response
131
+ */
132
+ async addToHistory(
133
+ sessionId: string,
134
+ request: ThinkingRequest,
135
+ response: ThinkingResponse
136
+ ): Promise<void> {
137
+ const session = this.sessions.get(sessionId);
138
+
139
+ if (session === undefined) {
140
+ throw new SessionError('Session not found', sessionId);
141
+ }
142
+
143
+ const results = session.results as Record<string, any>;
144
+ const history = results.history as Array<any> || [];
145
+ history.push({
146
+ request,
147
+ response,
148
+ timestamp: Date.now(),
149
+ });
150
+ results.history = history;
151
+
152
+ // Update metadata with latest data
153
+ session.metadata.lastQuery = request.query;
154
+ session.metadata.lastResponse = response.finalOutput;
155
+ session.lastAccessedAt = Date.now();
156
+ }
157
+
158
+ /**
159
+ * Update session context
160
+ *
161
+ * @param sessionId - Session ID
162
+ * @param context - Context updates
163
+ */
164
+ async updateContext(
165
+ sessionId: string,
166
+ context: Record<string, unknown>
167
+ ): Promise<void> {
168
+ const session = this.sessions.get(sessionId);
169
+
170
+ if (session === undefined) {
171
+ throw new SessionError('Session not found', sessionId);
172
+ }
173
+
174
+ session.metadata = { ...session.metadata, ...context };
175
+ session.lastAccessedAt = Date.now();
176
+ }
177
+
178
+ /**
179
+ * Get session count
180
+ */
181
+ getSessionCount(): number {
182
+ return this.sessions.size;
183
+ }
184
+
185
+ /**
186
+ * Get all active session IDs
187
+ */
188
+ getActiveSessionIds(): string[] {
189
+ return Array.from(this.sessions.keys());
190
+ }
191
+
192
+ /**
193
+ * Clear all sessions
194
+ */
195
+ async clearAllSessions(): Promise<void> {
196
+ this.sessions.clear();
197
+ this.logger.info('All sessions cleared');
198
+ }
199
+
200
+ /**
201
+ * Create a new session object
202
+ */
203
+ private createSession(sessionId: string): Session {
204
+ const now = Date.now();
205
+
206
+ return validateSchema(SessionSchema, {
207
+ id: sessionId,
208
+ status: 'running',
209
+ startTime: now,
210
+ lastAccessedAt: now,
211
+ metadata: {},
212
+ results: { history: [] },
213
+ } as any) as Session;
214
+ }
215
+
216
+ /**
217
+ * Validate session ID format
218
+ */
219
+ private isValidSessionId(sessionId: string): boolean {
220
+ // Accept UUID format or prefixed IDs
221
+ return (
222
+ /^[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}$/i.test(sessionId) ||
223
+ /^[a-zA-Z0-9_-]{1,128}$/.test(sessionId)
224
+ );
225
+ }
226
+
227
+ /**
228
+ * Start cleanup interval
229
+ */
230
+ private startCleanupInterval(): void {
231
+ this.cleanupIntervalId = setInterval(() => {
232
+ this.cleanupExpiredSessions();
233
+ }, this.config.sessionCleanupIntervalMs);
234
+ }
235
+
236
+ /**
237
+ * Stop cleanup interval
238
+ */
239
+ private stopCleanupInterval(): void {
240
+ if (this.cleanupIntervalId !== null) {
241
+ clearInterval(this.cleanupIntervalId);
242
+ this.cleanupIntervalId = null;
243
+ }
244
+ }
245
+
246
+ /**
247
+ * Clean up expired sessions
248
+ */
249
+ private cleanupExpiredSessions(): number {
250
+ const now = Date.now();
251
+ const expiredSessions: string[] = [];
252
+
253
+ for (const [sessionId, session] of this.sessions.entries()) {
254
+ if (now - session.lastAccessedAt > this.config.sessionMaxAgeMs) {
255
+ expiredSessions.push(sessionId);
256
+ }
257
+ }
258
+
259
+ for (const sessionId of expiredSessions) {
260
+ this.sessions.delete(sessionId);
261
+ }
262
+
263
+ if (expiredSessions.length > 0) {
264
+ this.logger.debug('Cleaned up expired sessions', { count: expiredSessions.length });
265
+ }
266
+
267
+ return expiredSessions.length;
268
+ }
269
+ }
@@ -0,0 +1,14 @@
1
+ import { EventEmitter } from 'events';
2
+ import { Logger } from '../utils/logger';
3
+
4
+ const logger = new Logger('CreativityEngine');
5
+
6
+ export class CreativityEngine extends EventEmitter {
7
+ constructor() {
8
+ super();
9
+ }
10
+ }
11
+
12
+ export function createCreativityEngine(): CreativityEngine {
13
+ return new CreativityEngine();
14
+ }
package/src/index.ts ADDED
@@ -0,0 +1,178 @@
1
+ /**
2
+ * gthinking v2.0.0 - Sequential Thinking System
3
+ * Advanced multi-stage thinking engine with AI-powered analysis, reasoning, and planning
4
+ */
5
+
6
+ // Types
7
+ export * from './types';
8
+
9
+ // Utils
10
+ export * from './utils';
11
+
12
+ // Core
13
+ export * from './core/errors';
14
+ export * from './core/config';
15
+
16
+ // Version
17
+ export const VERSION = '2.0.0';
18
+
19
+ /**
20
+ * Main entry point for the gthinking library
21
+ */
22
+ export { SequentialThinkingEngine } from './core/engine';
23
+
24
+ // Convenience exports for common use cases
25
+ export {
26
+ // Search
27
+ SearchDiscoveryEngine,
28
+ createSearchEngine,
29
+ } from './search/search-engine';
30
+
31
+ export {
32
+ // Analysis
33
+ AnalysisEngine,
34
+ createAnalysisEngine,
35
+ } from './analysis/analysis-engine';
36
+
37
+ export {
38
+ // Reasoning
39
+ ReasoningEngine,
40
+ createReasoningEngine,
41
+ } from './reasoning/reasoning-engine';
42
+
43
+ export {
44
+ // Planning
45
+ PlanningEngine,
46
+ createPlanningEngine,
47
+ } from './planning/planning-engine';
48
+
49
+ export {
50
+ // Creativity
51
+ CreativityEngine,
52
+ createCreativityEngine,
53
+ } from './creativity/creativity-engine';
54
+
55
+ export {
56
+ // Learning
57
+ LearningEngine,
58
+ createLearningEngine,
59
+ } from './learning/learning-engine';
60
+
61
+ export {
62
+ // Synthesis
63
+ SynthesisEngine,
64
+ createSynthesisEngine,
65
+ } from './synthesis/synthesis-engine';
66
+
67
+ // LLM Service
68
+ export {
69
+ LLMService,
70
+ createLLMService,
71
+ } from './llm/llm-service';
72
+
73
+ // Cache
74
+ export {
75
+ Cache,
76
+ CacheManager,
77
+ cacheManager,
78
+ } from './utils/cache';
79
+
80
+ // Logger
81
+ export {
82
+ Logger,
83
+ createLogger,
84
+ createChildLogger,
85
+ error,
86
+ warn,
87
+ info,
88
+ debug,
89
+ } from './utils/logger';
90
+
91
+ // Metrics
92
+ export {
93
+ MetricsCollector,
94
+ metricsCollector,
95
+ timed,
96
+ trackOperation,
97
+ } from './utils/metrics';
98
+
99
+ // ID Generator
100
+ export {
101
+ generateUUID,
102
+ generateDeterministicUUID,
103
+ generateShortId,
104
+ generateTimestampId,
105
+ generateSequentialId,
106
+ generateCompoundId,
107
+ isValidUUID,
108
+ Namespaces,
109
+ IdGenerator,
110
+ idGenerator,
111
+ } from './utils/id-generator';
112
+
113
+ // Validation
114
+ export {
115
+ sanitizeInput,
116
+ sanitizeForShell,
117
+ validateEmail,
118
+ isValidURL,
119
+ isNonEmptyString,
120
+ isPositiveInteger,
121
+ isInRange,
122
+ hasUniqueElements,
123
+ safeJsonParse,
124
+ safeJsonStringify,
125
+ validateSchema,
126
+ validateSchemaAsync,
127
+ hasRequiredProperties,
128
+ isValidLength,
129
+ removeNullValues,
130
+ deepClone,
131
+ isPlainObject,
132
+ ValidationRateLimiter,
133
+ validationRateLimiter,
134
+ } from './utils/validation';
135
+
136
+ // Error handling
137
+ export {
138
+ GThinkingError,
139
+ ValidationError,
140
+ TimeoutError,
141
+ CacheError,
142
+ StageError,
143
+ LLMError,
144
+ SearchError,
145
+ ConfigurationError,
146
+ SecurityError,
147
+ RateLimitError,
148
+ ErrorCode,
149
+ errorHandlerRegistry,
150
+ withRetry,
151
+ withErrorHandling,
152
+ defaultRetryConfig,
153
+ } from './core/errors';
154
+
155
+ // Configuration
156
+ export {
157
+ ConfigManager,
158
+ configManager,
159
+ defaultConfig,
160
+ GThinkingConfigSchema,
161
+ LLMProviderConfigSchema,
162
+ SearchConfigSchema,
163
+ CacheConfigSchema,
164
+ LoggingConfigSchema,
165
+ PipelineConfigSchema,
166
+ StageConfigSchema,
167
+ } from './core/config';
168
+
169
+ // Type re-exports for convenience
170
+ export type {
171
+ GThinkingConfig,
172
+ LLMProviderConfig,
173
+ SearchConfig,
174
+ CacheConfig,
175
+ LoggingConfig,
176
+ PipelineConfig,
177
+ StageConfig,
178
+ } from './core/config';
@@ -0,0 +1,14 @@
1
+ import { EventEmitter } from 'events';
2
+ import { Logger } from '../utils/logger';
3
+
4
+ const logger = new Logger('LearningEngine');
5
+
6
+ export class LearningEngine extends EventEmitter {
7
+ constructor() {
8
+ super();
9
+ }
10
+ }
11
+
12
+ export function createLearningEngine(): LearningEngine {
13
+ return new LearningEngine();
14
+ }
@@ -0,0 +1,10 @@
1
+ /**
2
+ * LLM Module Exports
3
+ *
4
+ * @module llm
5
+ */
6
+
7
+ export * from './sanitization';
8
+ export * from './providers/base';
9
+ export * from './providers/gemini';
10
+ export * from './llm-service';