sdlc-agent-4-enterprise-server 1.15.0 → 1.16.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 (111) hide show
  1. package/README.md +2 -1
  2. package/dist/admin/admin-db.d.ts +1 -1
  3. package/dist/admin/admin-db.js +1 -1
  4. package/dist/admin/admin-db.js.map +1 -1
  5. package/dist/admin/db/users.d.ts +9 -0
  6. package/dist/admin/db/users.js +41 -0
  7. package/dist/admin/db/users.js.map +1 -1
  8. package/dist/database/dialect/DialectHelper.d.ts +14 -1
  9. package/dist/database/dialect/DialectHelper.js +27 -3
  10. package/dist/database/dialect/DialectHelper.js.map +1 -1
  11. package/dist/modules/kb-graph/KBGraphModule.js +294 -17
  12. package/dist/modules/kb-graph/KBGraphModule.js.map +1 -1
  13. package/dist/modules/kb-graph/__tests__/KBGraphModule.test.d.ts +1 -0
  14. package/dist/modules/kb-graph/__tests__/KBGraphModule.test.js +268 -0
  15. package/dist/modules/kb-graph/__tests__/KBGraphModule.test.js.map +1 -0
  16. package/dist/modules/kb-graph/service/__tests__/GraphService.test.d.ts +1 -0
  17. package/dist/modules/kb-graph/service/__tests__/GraphService.test.js +147 -0
  18. package/dist/modules/kb-graph/service/__tests__/GraphService.test.js.map +1 -0
  19. package/dist/modules/kb-graph/service/index.d.ts +72 -0
  20. package/dist/modules/kb-graph/service/index.js +279 -0
  21. package/dist/modules/kb-graph/service/index.js.map +1 -1
  22. package/dist/modules/memory/MemoryModule.d.ts +2 -0
  23. package/dist/modules/memory/MemoryModule.js +7 -0
  24. package/dist/modules/memory/MemoryModule.js.map +1 -1
  25. package/dist/modules/memory/MemoryModuleBuilder.d.ts +3 -1
  26. package/dist/modules/memory/MemoryModuleBuilder.js +16 -1
  27. package/dist/modules/memory/MemoryModuleBuilder.js.map +1 -1
  28. package/dist/modules/memory/__tests__/Consolidation.test.d.ts +1 -0
  29. package/dist/modules/memory/__tests__/Consolidation.test.js +136 -0
  30. package/dist/modules/memory/__tests__/Consolidation.test.js.map +1 -0
  31. package/dist/modules/memory/__tests__/Procedure.test.d.ts +1 -0
  32. package/dist/modules/memory/__tests__/Procedure.test.js +351 -0
  33. package/dist/modules/memory/__tests__/Procedure.test.js.map +1 -0
  34. package/dist/modules/memory/consolidation/index.d.ts +3 -0
  35. package/dist/modules/memory/consolidation/index.js +3 -0
  36. package/dist/modules/memory/consolidation/index.js.map +1 -0
  37. package/dist/modules/memory/consolidation/service.d.ts +24 -0
  38. package/dist/modules/memory/consolidation/service.js +122 -0
  39. package/dist/modules/memory/consolidation/service.js.map +1 -0
  40. package/dist/modules/memory/definitions/index.d.ts +124 -0
  41. package/dist/modules/memory/definitions/index.js +3 -1
  42. package/dist/modules/memory/definitions/index.js.map +1 -1
  43. package/dist/modules/memory/definitions/procedure.d.ts +124 -0
  44. package/dist/modules/memory/definitions/procedure.js +57 -0
  45. package/dist/modules/memory/definitions/procedure.js.map +1 -0
  46. package/dist/modules/memory/dispatchers/analytics.d.ts +1 -1
  47. package/dist/modules/memory/dispatchers/analytics.js +32 -2
  48. package/dist/modules/memory/dispatchers/analytics.js.map +1 -1
  49. package/dist/modules/memory/dispatchers/crud.js +6 -0
  50. package/dist/modules/memory/dispatchers/crud.js.map +1 -1
  51. package/dist/modules/memory/dispatchers/dispatcher.d.ts +2 -0
  52. package/dist/modules/memory/dispatchers/dispatcher.js +8 -1
  53. package/dist/modules/memory/dispatchers/dispatcher.js.map +1 -1
  54. package/dist/modules/memory/dispatchers/procedure.d.ts +7 -0
  55. package/dist/modules/memory/dispatchers/procedure.js +307 -0
  56. package/dist/modules/memory/dispatchers/procedure.js.map +1 -0
  57. package/dist/modules/memory/dispatchers/sync-code.js +10 -0
  58. package/dist/modules/memory/dispatchers/sync-code.js.map +1 -1
  59. package/dist/modules/memory/engine/core.js +10 -5
  60. package/dist/modules/memory/engine/core.js.map +1 -1
  61. package/dist/modules/memory/llm/LLMService.js +4 -0
  62. package/dist/modules/memory/llm/LLMService.js.map +1 -1
  63. package/dist/modules/memory/llm/types.d.ts +1 -1
  64. package/dist/modules/memory/task-queue/PendingTaskRepository.d.ts +1 -0
  65. package/dist/modules/memory/task-queue/PendingTaskRepository.js +4 -0
  66. package/dist/modules/memory/task-queue/PendingTaskRepository.js.map +1 -1
  67. package/dist/server/routes/admin/config.js +145 -20
  68. package/dist/server/routes/admin/config.js.map +1 -1
  69. package/dist/server/routes/admin/users.js +77 -1
  70. package/dist/server/routes/admin/users.js.map +1 -1
  71. package/dist/server/routes/tools.js +47 -34
  72. package/dist/server/routes/tools.js.map +1 -1
  73. package/dist/viewer/admin/index.html +119 -10
  74. package/eslint.config.js +22 -0
  75. package/package.json +6 -2
  76. package/src/admin/admin-db.ts +1 -1
  77. package/src/admin/db/users.ts +45 -0
  78. package/src/database/dialect/DialectHelper.ts +29 -1
  79. package/src/modules/kb-graph/KBGraphModule.ts +296 -17
  80. package/src/modules/kb-graph/__tests__/KBGraphModule.test.ts +312 -0
  81. package/src/modules/kb-graph/service/__tests__/GraphService.test.ts +168 -0
  82. package/src/modules/kb-graph/service/index.ts +341 -0
  83. package/src/modules/memory/MemoryModule.ts +4 -0
  84. package/src/modules/memory/MemoryModuleBuilder.ts +17 -1
  85. package/src/modules/memory/__tests__/Consolidation.test.ts +151 -0
  86. package/src/modules/memory/__tests__/Procedure.test.ts +401 -0
  87. package/src/modules/memory/consolidation/index.ts +3 -0
  88. package/src/modules/memory/consolidation/service.ts +181 -0
  89. package/src/modules/memory/definitions/index.ts +3 -1
  90. package/src/modules/memory/definitions/procedure.ts +56 -0
  91. package/src/modules/memory/dispatchers/analytics.ts +33 -2
  92. package/src/modules/memory/dispatchers/crud.ts +8 -0
  93. package/src/modules/memory/dispatchers/dispatcher.ts +10 -1
  94. package/src/modules/memory/dispatchers/procedure.ts +368 -0
  95. package/src/modules/memory/dispatchers/sync-code.ts +11 -0
  96. package/src/modules/memory/engine/core.ts +16 -5
  97. package/src/modules/memory/llm/LLMService.ts +4 -0
  98. package/src/modules/memory/llm/types.ts +1 -1
  99. package/src/modules/memory/task-queue/PendingTaskRepository.ts +8 -0
  100. package/src/server/routes/admin/config.ts +116 -17
  101. package/src/server/routes/admin/users.ts +73 -1
  102. package/src/server/routes/tools.ts +43 -32
  103. package/src/viewer/admin/index.html +119 -10
  104. package/minimal-err.txt +0 -12
  105. package/minimal-out.txt +0 -0
  106. package/minimal.js +0 -12
  107. package/test-all-handlers-2.ts +0 -1
  108. package/test-all-handlers.ts +0 -1
  109. package/test-handlers.ts +0 -1
  110. package/test_server.py +0 -78
  111. package/test_tools.ts +0 -1
package/README.md CHANGED
@@ -6,7 +6,7 @@
6
6
  </p>
7
7
 
8
8
  <p align="center">
9
- <img src="https://img.shields.io/badge/version-1.15.0-blue?style=for-the-badge" alt="Version">
9
+ <img src="https://img.shields.io/badge/version-1.16.0-blue?style=for-the-badge" alt="Version">
10
10
  <img src="https://img.shields.io/badge/tools-66+-teal?style=for-the-badge" alt="Tools">
11
11
  <img src="https://img.shields.io/badge/node-%3E%3D18-green?style=for-the-badge" alt="Node">
12
12
  </p>
@@ -233,6 +233,7 @@ The embedding model is expected at `.code-intel/models/model.onnx`. Download it:
233
233
 
234
234
  | Version | Date | Ticket | Changes |
235
235
  |---------|------|--------|---------|
236
+ | 1.16.0 | 2026-07-25 | — | Memory Evolution Levels L4-L6 (Collective Graph, Skill/Procedural Memory, Reflective Consolidation) implemented with real backend services and graph algorithms. Admin configuration checks resilience for Zen Upstream, TaskWorker endpoints, user management, and dynamic Admin Web UI. |
236
237
  | 1.15.0 | 2026-07-24 | SA4E-49/50/51 | PostgreSQL adapter with async DatabaseAdapter. KB tag scope fix (USER→PROJECT, now 4k+ tags visible). JWT auth, RBAC tools, config tracking. DI Container, ModuleFactory, EventBus. Agent sync to kiro/claude-code/codex-openai/github-copilot. |
237
238
  | 1.14.0 | 2026-07-19 | SA4E-48 | Extension `WrapperServer` MCP Streamable HTTP compliance: `initialize` handshake, `ping`, `notifications/initialized`, `GET /mcp` SSE — fixes VS Code `-32601` stop/restart loop + OpenCode SSE `endpoint` event fix |
238
239
  | 1.13.0 | 2026-07-19 | — | Presentation servers (FastAPI + Next.js), Electron desktop app, architecture diagrams, utility scripts |
@@ -3,7 +3,7 @@
3
3
  * SA4E-50: All exported functions are async (return Promise<T>).
4
4
  */
5
5
  export { getAdminDb, getIndexDbPath, getActiveEngine, getActiveDbConfig, resetAdminDb, getIndexAdapter, getAdminAdapter, hashPassword, verifyPassword, generateToken, } from './db/core.js';
6
- export { getUsers, getUserById, getUserByUsername, createUser, updateUserStatus, deleteUser, resetUserPassword, changePassword, updateLastLogin, updateUserEmail, getUserCount, getUserCountByGroup, } from './db/users.js';
6
+ export { getUsers, getUserById, getUserByUsername, createUser, updateUserStatus, deleteUser, resetUserPassword, changePassword, updateLastLogin, updateUserEmail, updateUser, getUserCount, getUserCountByGroup, } from './db/users.js';
7
7
  export { getGroups, getGroupById, createGroup, updateGroup, deleteGroup, getUserPermissions, getGroupPermissionIds, } from './db/groups.js';
8
8
  export { createSession, validateSession, invalidateSession, invalidateUserSessions, refreshSession, getUserSessions, } from './db/sessions.js';
9
9
  export { recordAudit, getAuditLogs, getRecentActivity } from './db/audit.js';
@@ -3,7 +3,7 @@
3
3
  * SA4E-50: All exported functions are async (return Promise<T>).
4
4
  */
5
5
  export { getAdminDb, getIndexDbPath, getActiveEngine, getActiveDbConfig, resetAdminDb, getIndexAdapter, getAdminAdapter, hashPassword, verifyPassword, generateToken, } from './db/core.js';
6
- export { getUsers, getUserById, getUserByUsername, createUser, updateUserStatus, deleteUser, resetUserPassword, changePassword, updateLastLogin, updateUserEmail, getUserCount, getUserCountByGroup, } from './db/users.js';
6
+ export { getUsers, getUserById, getUserByUsername, createUser, updateUserStatus, deleteUser, resetUserPassword, changePassword, updateLastLogin, updateUserEmail, updateUser, getUserCount, getUserCountByGroup, } from './db/users.js';
7
7
  export { getGroups, getGroupById, createGroup, updateGroup, deleteGroup, getUserPermissions, getGroupPermissionIds, } from './db/groups.js';
8
8
  export { createSession, validateSession, invalidateSession, invalidateUserSessions, refreshSession, getUserSessions, } from './db/sessions.js';
9
9
  export { recordAudit, getAuditLogs, getRecentActivity } from './db/audit.js';
@@ -1 +1 @@
1
- {"version":3,"file":"admin-db.js","sourceRoot":"","sources":["../../src/admin/admin-db.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,EACL,UAAU,EAAE,cAAc,EAAE,eAAe,EAAE,iBAAiB,EAC9D,YAAY,EAAE,eAAe,EAAE,eAAe,EAC9C,YAAY,EAAE,cAAc,EAAE,aAAa,GAC5C,MAAM,cAAc,CAAC;AAEtB,OAAO,EACL,QAAQ,EAAE,WAAW,EAAE,iBAAiB,EAAE,UAAU,EAAE,gBAAgB,EACtE,UAAU,EAAE,iBAAiB,EAAE,cAAc,EAAE,eAAe,EAC9D,eAAe,EAAE,YAAY,EAAE,mBAAmB,GACnD,MAAM,eAAe,CAAC;AAEvB,OAAO,EACL,SAAS,EAAE,YAAY,EAAE,WAAW,EAAE,WAAW,EAAE,WAAW,EAC9D,kBAAkB,EAAE,qBAAqB,GAC1C,MAAM,gBAAgB,CAAC;AAExB,OAAO,EACL,aAAa,EAAE,eAAe,EAAE,iBAAiB,EACjD,sBAAsB,EAAE,cAAc,EAAE,eAAe,GACxD,MAAM,kBAAkB,CAAC;AAE1B,OAAO,EAAE,WAAW,EAAE,YAAY,EAAE,iBAAiB,EAAE,MAAM,eAAe,CAAC;AAG7E,OAAO,EAAE,kBAAkB,EAAE,gBAAgB,EAAE,oBAAoB,EAAE,sBAAsB,EAAE,MAAM,gBAAgB,CAAC;AAEpH,OAAO,EAAE,cAAc,EAAE,YAAY,EAAE,gBAAgB,EAAE,MAAM,oBAAoB,CAAC;AAEpF,OAAO,EAAE,oBAAoB,EAAE,sBAAsB,EAAE,MAAM,mBAAmB,CAAC;AAEjF,OAAO,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAC;AAEpD,OAAO,EAAE,eAAe,EAAE,MAAM,uBAAuB,CAAC;AAExD,OAAO,EAAE,cAAc,EAAE,eAAe,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AAEnF,OAAO,EACL,YAAY,EAAE,iBAAiB,EAAE,WAAW,EAC5C,WAAW,EAAE,WAAW,EAAE,iBAAiB,GAC5C,MAAM,iBAAiB,CAAC"}
1
+ {"version":3,"file":"admin-db.js","sourceRoot":"","sources":["../../src/admin/admin-db.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,EACL,UAAU,EAAE,cAAc,EAAE,eAAe,EAAE,iBAAiB,EAC9D,YAAY,EAAE,eAAe,EAAE,eAAe,EAC9C,YAAY,EAAE,cAAc,EAAE,aAAa,GAC5C,MAAM,cAAc,CAAC;AAEtB,OAAO,EACL,QAAQ,EAAE,WAAW,EAAE,iBAAiB,EAAE,UAAU,EAAE,gBAAgB,EACtE,UAAU,EAAE,iBAAiB,EAAE,cAAc,EAAE,eAAe,EAC9D,eAAe,EAAE,UAAU,EAAE,YAAY,EAAE,mBAAmB,GAC/D,MAAM,eAAe,CAAC;AAEvB,OAAO,EACL,SAAS,EAAE,YAAY,EAAE,WAAW,EAAE,WAAW,EAAE,WAAW,EAC9D,kBAAkB,EAAE,qBAAqB,GAC1C,MAAM,gBAAgB,CAAC;AAExB,OAAO,EACL,aAAa,EAAE,eAAe,EAAE,iBAAiB,EACjD,sBAAsB,EAAE,cAAc,EAAE,eAAe,GACxD,MAAM,kBAAkB,CAAC;AAE1B,OAAO,EAAE,WAAW,EAAE,YAAY,EAAE,iBAAiB,EAAE,MAAM,eAAe,CAAC;AAG7E,OAAO,EAAE,kBAAkB,EAAE,gBAAgB,EAAE,oBAAoB,EAAE,sBAAsB,EAAE,MAAM,gBAAgB,CAAC;AAEpH,OAAO,EAAE,cAAc,EAAE,YAAY,EAAE,gBAAgB,EAAE,MAAM,oBAAoB,CAAC;AAEpF,OAAO,EAAE,oBAAoB,EAAE,sBAAsB,EAAE,MAAM,mBAAmB,CAAC;AAEjF,OAAO,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAC;AAEpD,OAAO,EAAE,eAAe,EAAE,MAAM,uBAAuB,CAAC;AAExD,OAAO,EAAE,cAAc,EAAE,eAAe,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AAEnF,OAAO,EACL,YAAY,EAAE,iBAAiB,EAAE,WAAW,EAC5C,WAAW,EAAE,WAAW,EAAE,iBAAiB,GAC5C,MAAM,iBAAiB,CAAC"}
@@ -58,6 +58,15 @@ export declare function changePassword(userId: string, newPassword: string): Pro
58
58
  export declare function updateLastLogin(userId: string): Promise<void>;
59
59
  /** Update user email address. */
60
60
  export declare function updateUserEmail(userId: string, email: string): Promise<void>;
61
+ /**
62
+ * Update user details (username, email, access_group_id).
63
+ * @throws Error if username conflicts or group doesn't exist
64
+ */
65
+ export declare function updateUser(userId: string, updates: {
66
+ username?: string;
67
+ email?: string;
68
+ accessGroupId?: string;
69
+ }): Promise<User>;
61
70
  /** Count total active users (used by dashboard stats). */
62
71
  export declare function getUserCount(): Promise<number>;
63
72
  /** Count users belonging to a specific access group. */
@@ -141,6 +141,47 @@ export async function updateUserEmail(userId, email) {
141
141
  const adapter = getAdminAdapter();
142
142
  await adapter.runAsync('UPDATE users SET email = ? WHERE user_id = ?', [email, userId]);
143
143
  }
144
+ /**
145
+ * Update user details (username, email, access_group_id).
146
+ * @throws Error if username conflicts or group doesn't exist
147
+ */
148
+ export async function updateUser(userId, updates) {
149
+ const adapter = getAdminAdapter();
150
+ // Validate username uniqueness if changing
151
+ if (updates.username) {
152
+ const existing = await adapter.getAsync('SELECT user_id FROM users WHERE username = ? AND user_id != ?', [updates.username, userId]);
153
+ if (existing)
154
+ throw new Error('Username already exists');
155
+ }
156
+ // Validate group exists if changing
157
+ if (updates.accessGroupId) {
158
+ const group = await adapter.getAsync('SELECT access_group_id FROM access_groups WHERE access_group_id = ?', [updates.accessGroupId]);
159
+ if (!group)
160
+ throw new Error('Access group not found');
161
+ }
162
+ const fields = [];
163
+ const params = [];
164
+ if (updates.username) {
165
+ fields.push('username = ?');
166
+ params.push(updates.username);
167
+ }
168
+ if (updates.email !== undefined) {
169
+ fields.push('email = ?');
170
+ params.push(updates.email);
171
+ }
172
+ if (updates.accessGroupId) {
173
+ fields.push('access_group_id = ?');
174
+ params.push(updates.accessGroupId);
175
+ }
176
+ if (fields.length === 0)
177
+ throw new Error('No updates provided');
178
+ params.push(userId);
179
+ await adapter.runAsync(`UPDATE users SET ${fields.join(', ')} WHERE user_id = ?`, params);
180
+ const updated = await getUserById(userId);
181
+ if (!updated)
182
+ throw new Error('User not found after update');
183
+ return updated;
184
+ }
144
185
  /** Count total active users (used by dashboard stats). */
145
186
  export async function getUserCount() {
146
187
  const adapter = getAdminAdapter();
@@ -1 +1 @@
1
- {"version":3,"file":"users.js","sourceRoot":"","sources":["../../../src/admin/db/users.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,KAAK,MAAM,MAAM,QAAQ,CAAC;AAEjC,OAAO,EAAE,eAAe,EAAE,MAAM,WAAW,CAAC;AAC5C,OAAO,EAAE,YAAY,EAAE,MAAM,eAAe,CAAC;AAC7C,OAAO,EAAE,sBAAsB,EAAE,MAAM,eAAe,CAAC;AAEvD,yCAAyC;AACzC,SAAS,SAAS,CAAC,CAA0B;IAC3C,OAAO;QACL,MAAM,EAAE,CAAC,CAAC,OAAiB;QAC3B,QAAQ,EAAE,CAAC,CAAC,QAAkB;QAC9B,KAAK,EAAE,CAAC,CAAC,KAAe;QACxB,MAAM,EAAE,CAAC,CAAC,MAAoB;QAC9B,aAAa,EAAE,CAAC,CAAC,eAAyB;QAC1C,mBAAmB,EAAE,CAAC,CAAE,CAAC,CAAC,qBAAgC;QAC1D,SAAS,EAAE,CAAC,CAAC,UAAoB;QACjC,SAAS,EAAG,CAAC,CAAC,UAAqB,IAAI,SAAS;KACjD,CAAC;AACJ,CAAC;AAED;;;;;GAKG;AACH,MAAM,CAAC,KAAK,UAAU,QAAQ,CAC5B,OAAsE,EACtE,IAAI,GAAG,CAAC,EACR,QAAQ,GAAG,EAAE;IAEb,MAAM,OAAO,GAAG,eAAe,EAAE,CAAC;IAClC,IAAI,KAAK,GAAG,WAAW,CAAC;IACxB,MAAM,MAAM,GAAc,EAAE,CAAC;IAE7B,IAAI,OAAO,EAAE,MAAM,EAAE,CAAC;QAAC,KAAK,IAAI,mBAAmB,CAAC;QAAC,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC;IAAC,CAAC;IACnF,IAAI,OAAO,EAAE,aAAa,EAAE,CAAC;QAAC,KAAK,IAAI,4BAA4B,CAAC;QAAC,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,aAAa,CAAC,CAAC;IAAC,CAAC;IAC1G,IAAI,OAAO,EAAE,MAAM,EAAE,CAAC;QACpB,KAAK,IAAI,4CAA4C,CAAC;QACtD,MAAM,CAAC,IAAI,CAAC,IAAI,OAAO,CAAC,MAAM,GAAG,EAAE,IAAI,OAAO,CAAC,MAAM,GAAG,CAAC,CAAC;IAC5D,CAAC;IAED,MAAM,QAAQ,GAAG,MAAM,OAAO,CAAC,QAAQ,CACrC,uCAAuC,KAAK,EAAE,EAAE,MAAM,CACvD,CAAC;IACF,MAAM,KAAK,GAAG,QAAQ,EAAE,GAAG,IAAI,CAAC,CAAC;IAEjC,MAAM,IAAI,GAAG,MAAM,OAAO,CAAC,QAAQ,CACjC;;OAEG,KAAK,8CAA8C,EACtD,CAAC,GAAG,MAAM,EAAE,QAAQ,EAAE,CAAC,IAAI,GAAG,CAAC,CAAC,GAAG,QAAQ,CAAC,CAC7C,CAAC;IAEF,OAAO;QACL,KAAK;QACL,KAAK,EAAE,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;YACpB,GAAG,SAAS,CAAC,CAAC,CAAC;YACf,eAAe,EAAG,CAAC,CAAC,iBAA4B,IAAI,EAAE;SACvD,CAAC,CAAC;KACJ,CAAC;AACJ,CAAC;AAED;;;GAGG;AACH,MAAM,CAAC,KAAK,UAAU,WAAW,CAAC,MAAc;IAC9C,MAAM,OAAO,GAAG,eAAe,EAAE,CAAC;IAClC,MAAM,CAAC,GAAG,MAAM,OAAO,CAAC,QAAQ,CAC9B,uCAAuC,EAAE,CAAC,MAAM,CAAC,CAClD,CAAC;IACF,OAAO,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC;AACjC,CAAC;AAED;;;GAGG;AACH,MAAM,CAAC,KAAK,UAAU,iBAAiB,CACrC,QAAgB;IAEhB,MAAM,OAAO,GAAG,eAAe,EAAE,CAAC;IAClC,MAAM,CAAC,GAAG,MAAM,OAAO,CAAC,QAAQ,CAC9B,wCAAwC,EAAE,CAAC,QAAQ,CAAC,CACrD,CAAC;IACF,IAAI,CAAC,CAAC;QAAE,OAAO,IAAI,CAAC;IACpB,OAAO,EAAE,GAAG,SAAS,CAAC,CAAC,CAAC,EAAE,YAAY,EAAE,CAAC,CAAC,aAAuB,EAAE,CAAC;AACtE,CAAC;AAED;;;GAGG;AACH,MAAM,CAAC,KAAK,UAAU,UAAU,CAC9B,QAAgB,EAChB,KAAa,EACb,QAAgB,EAChB,aAAqB;IAErB,MAAM,OAAO,GAAG,eAAe,EAAE,CAAC;IAClC,MAAM,MAAM,GAAG,OAAO,GAAG,MAAM,CAAC,UAAU,EAAE,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;IACzD,MAAM,GAAG,GAAG,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE,CAAC;IACrC,MAAM,IAAI,GAAG,YAAY,CAAC,QAAQ,CAAC,CAAC;IAEpC,MAAM,OAAO,CAAC,QAAQ,CACpB;4CACwC,EACxC,CAAC,MAAM,EAAE,QAAQ,EAAE,KAAK,EAAE,IAAI,EAAE,aAAa,EAAE,GAAG,CAAC,CACpD,CAAC;IAEF,OAAO,EAAE,MAAM,EAAE,QAAQ,EAAE,KAAK,EAAE,MAAM,EAAE,QAAQ,EAAE,aAAa,EAAE,mBAAmB,EAAE,IAAI,EAAE,SAAS,EAAE,GAAG,EAAE,CAAC;AACjH,CAAC;AAED;;;GAGG;AACH,MAAM,CAAC,KAAK,UAAU,gBAAgB,CAAC,MAAc,EAAE,MAAkB;IACvE,MAAM,OAAO,GAAG,eAAe,EAAE,CAAC;IAClC,MAAM,OAAO,CAAC,QAAQ,CAAC,+CAA+C,EAAE,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,CAAC;IAC1F,IAAI,MAAM,KAAK,UAAU,EAAE,CAAC;QAC1B,OAAO,sBAAsB,CAAC,MAAM,CAAC,CAAC;IACxC,CAAC;IACD,OAAO,CAAC,CAAC;AACX,CAAC;AAED;;;GAGG;AACH,MAAM,CAAC,KAAK,UAAU,UAAU,CAAC,MAAc;IAC7C,MAAM,OAAO,GAAG,eAAe,EAAE,CAAC;IAClC,MAAM,IAAI,GAAG,MAAM,OAAO,CAAC,QAAQ,CACjC,8CAA8C,EAAE,CAAC,MAAM,CAAC,CACzD,CAAC;IACF,IAAI,IAAI,EAAE,QAAQ,KAAK,OAAO;QAAE,MAAM,IAAI,KAAK,CAAC,4BAA4B,CAAC,CAAC;IAC9E,MAAM,sBAAsB,CAAC,MAAM,CAAC,CAAC;IACrC,MAAM,OAAO,CAAC,QAAQ,CAAC,qCAAqC,EAAE,CAAC,MAAM,CAAC,CAAC,CAAC;AAC1E,CAAC;AAED;;;GAGG;AACH,MAAM,CAAC,KAAK,UAAU,iBAAiB,CAAC,MAAc;IACpD,MAAM,OAAO,GAAG,eAAe,EAAE,CAAC;IAClC,MAAM,OAAO,GAAG,MAAM,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,WAAW,CAAC,CAAC;IAC5D,MAAM,IAAI,GAAG,YAAY,CAAC,OAAO,CAAC,CAAC;IACnC,MAAM,OAAO,CAAC,QAAQ,CACpB,iFAAiF,EACjF,CAAC,IAAI,EAAE,MAAM,CAAC,CACf,CAAC;IACF,OAAO,OAAO,CAAC;AACjB,CAAC;AAED;;GAEG;AACH,MAAM,CAAC,KAAK,UAAU,cAAc,CAAC,MAAc,EAAE,WAAmB;IACtE,MAAM,OAAO,GAAG,eAAe,EAAE,CAAC;IAClC,MAAM,IAAI,GAAG,YAAY,CAAC,WAAW,CAAC,CAAC;IACvC,MAAM,OAAO,CAAC,QAAQ,CACpB,iFAAiF,EACjF,CAAC,IAAI,EAAE,MAAM,CAAC,CACf,CAAC;AACJ,CAAC;AAED,6DAA6D;AAC7D,MAAM,CAAC,KAAK,UAAU,eAAe,CAAC,MAAc;IAClD,MAAM,OAAO,GAAG,eAAe,EAAE,CAAC;IAClC,MAAM,OAAO,CAAC,QAAQ,CACpB,mDAAmD,EACnD,CAAC,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE,EAAE,MAAM,CAAC,CACnC,CAAC;AACJ,CAAC;AAED,iCAAiC;AACjC,MAAM,CAAC,KAAK,UAAU,eAAe,CAAC,MAAc,EAAE,KAAa;IACjE,MAAM,OAAO,GAAG,eAAe,EAAE,CAAC;IAClC,MAAM,OAAO,CAAC,QAAQ,CAAC,8CAA8C,EAAE,CAAC,KAAK,EAAE,MAAM,CAAC,CAAC,CAAC;AAC1F,CAAC;AAED,0DAA0D;AAC1D,MAAM,CAAC,KAAK,UAAU,YAAY;IAChC,MAAM,OAAO,GAAG,eAAe,EAAE,CAAC;IAClC,MAAM,GAAG,GAAG,MAAM,OAAO,CAAC,QAAQ,CAChC,2DAA2D,CAC5D,CAAC;IACF,OAAO,GAAG,EAAE,GAAG,IAAI,CAAC,CAAC;AACvB,CAAC;AAED,wDAAwD;AACxD,MAAM,CAAC,KAAK,UAAU,mBAAmB,CAAC,OAAe;IACvD,MAAM,OAAO,GAAG,eAAe,EAAE,CAAC;IAClC,MAAM,GAAG,GAAG,MAAM,OAAO,CAAC,QAAQ,CAChC,6DAA6D,EAAE,CAAC,OAAO,CAAC,CACzE,CAAC;IACF,OAAO,GAAG,EAAE,GAAG,IAAI,CAAC,CAAC;AACvB,CAAC"}
1
+ {"version":3,"file":"users.js","sourceRoot":"","sources":["../../../src/admin/db/users.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,KAAK,MAAM,MAAM,QAAQ,CAAC;AAEjC,OAAO,EAAE,eAAe,EAAE,MAAM,WAAW,CAAC;AAC5C,OAAO,EAAE,YAAY,EAAE,MAAM,eAAe,CAAC;AAC7C,OAAO,EAAE,sBAAsB,EAAE,MAAM,eAAe,CAAC;AAEvD,yCAAyC;AACzC,SAAS,SAAS,CAAC,CAA0B;IAC3C,OAAO;QACL,MAAM,EAAE,CAAC,CAAC,OAAiB;QAC3B,QAAQ,EAAE,CAAC,CAAC,QAAkB;QAC9B,KAAK,EAAE,CAAC,CAAC,KAAe;QACxB,MAAM,EAAE,CAAC,CAAC,MAAoB;QAC9B,aAAa,EAAE,CAAC,CAAC,eAAyB;QAC1C,mBAAmB,EAAE,CAAC,CAAE,CAAC,CAAC,qBAAgC;QAC1D,SAAS,EAAE,CAAC,CAAC,UAAoB;QACjC,SAAS,EAAG,CAAC,CAAC,UAAqB,IAAI,SAAS;KACjD,CAAC;AACJ,CAAC;AAED;;;;;GAKG;AACH,MAAM,CAAC,KAAK,UAAU,QAAQ,CAC5B,OAAsE,EACtE,IAAI,GAAG,CAAC,EACR,QAAQ,GAAG,EAAE;IAEb,MAAM,OAAO,GAAG,eAAe,EAAE,CAAC;IAClC,IAAI,KAAK,GAAG,WAAW,CAAC;IACxB,MAAM,MAAM,GAAc,EAAE,CAAC;IAE7B,IAAI,OAAO,EAAE,MAAM,EAAE,CAAC;QAAC,KAAK,IAAI,mBAAmB,CAAC;QAAC,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC;IAAC,CAAC;IACnF,IAAI,OAAO,EAAE,aAAa,EAAE,CAAC;QAAC,KAAK,IAAI,4BAA4B,CAAC;QAAC,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,aAAa,CAAC,CAAC;IAAC,CAAC;IAC1G,IAAI,OAAO,EAAE,MAAM,EAAE,CAAC;QACpB,KAAK,IAAI,4CAA4C,CAAC;QACtD,MAAM,CAAC,IAAI,CAAC,IAAI,OAAO,CAAC,MAAM,GAAG,EAAE,IAAI,OAAO,CAAC,MAAM,GAAG,CAAC,CAAC;IAC5D,CAAC;IAED,MAAM,QAAQ,GAAG,MAAM,OAAO,CAAC,QAAQ,CACrC,uCAAuC,KAAK,EAAE,EAAE,MAAM,CACvD,CAAC;IACF,MAAM,KAAK,GAAG,QAAQ,EAAE,GAAG,IAAI,CAAC,CAAC;IAEjC,MAAM,IAAI,GAAG,MAAM,OAAO,CAAC,QAAQ,CACjC;;OAEG,KAAK,8CAA8C,EACtD,CAAC,GAAG,MAAM,EAAE,QAAQ,EAAE,CAAC,IAAI,GAAG,CAAC,CAAC,GAAG,QAAQ,CAAC,CAC7C,CAAC;IAEF,OAAO;QACL,KAAK;QACL,KAAK,EAAE,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;YACpB,GAAG,SAAS,CAAC,CAAC,CAAC;YACf,eAAe,EAAG,CAAC,CAAC,iBAA4B,IAAI,EAAE;SACvD,CAAC,CAAC;KACJ,CAAC;AACJ,CAAC;AAED;;;GAGG;AACH,MAAM,CAAC,KAAK,UAAU,WAAW,CAAC,MAAc;IAC9C,MAAM,OAAO,GAAG,eAAe,EAAE,CAAC;IAClC,MAAM,CAAC,GAAG,MAAM,OAAO,CAAC,QAAQ,CAC9B,uCAAuC,EAAE,CAAC,MAAM,CAAC,CAClD,CAAC;IACF,OAAO,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC;AACjC,CAAC;AAED;;;GAGG;AACH,MAAM,CAAC,KAAK,UAAU,iBAAiB,CACrC,QAAgB;IAEhB,MAAM,OAAO,GAAG,eAAe,EAAE,CAAC;IAClC,MAAM,CAAC,GAAG,MAAM,OAAO,CAAC,QAAQ,CAC9B,wCAAwC,EAAE,CAAC,QAAQ,CAAC,CACrD,CAAC;IACF,IAAI,CAAC,CAAC;QAAE,OAAO,IAAI,CAAC;IACpB,OAAO,EAAE,GAAG,SAAS,CAAC,CAAC,CAAC,EAAE,YAAY,EAAE,CAAC,CAAC,aAAuB,EAAE,CAAC;AACtE,CAAC;AAED;;;GAGG;AACH,MAAM,CAAC,KAAK,UAAU,UAAU,CAC9B,QAAgB,EAChB,KAAa,EACb,QAAgB,EAChB,aAAqB;IAErB,MAAM,OAAO,GAAG,eAAe,EAAE,CAAC;IAClC,MAAM,MAAM,GAAG,OAAO,GAAG,MAAM,CAAC,UAAU,EAAE,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;IACzD,MAAM,GAAG,GAAG,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE,CAAC;IACrC,MAAM,IAAI,GAAG,YAAY,CAAC,QAAQ,CAAC,CAAC;IAEpC,MAAM,OAAO,CAAC,QAAQ,CACpB;4CACwC,EACxC,CAAC,MAAM,EAAE,QAAQ,EAAE,KAAK,EAAE,IAAI,EAAE,aAAa,EAAE,GAAG,CAAC,CACpD,CAAC;IAEF,OAAO,EAAE,MAAM,EAAE,QAAQ,EAAE,KAAK,EAAE,MAAM,EAAE,QAAQ,EAAE,aAAa,EAAE,mBAAmB,EAAE,IAAI,EAAE,SAAS,EAAE,GAAG,EAAE,CAAC;AACjH,CAAC;AAED;;;GAGG;AACH,MAAM,CAAC,KAAK,UAAU,gBAAgB,CAAC,MAAc,EAAE,MAAkB;IACvE,MAAM,OAAO,GAAG,eAAe,EAAE,CAAC;IAClC,MAAM,OAAO,CAAC,QAAQ,CAAC,+CAA+C,EAAE,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,CAAC;IAC1F,IAAI,MAAM,KAAK,UAAU,EAAE,CAAC;QAC1B,OAAO,sBAAsB,CAAC,MAAM,CAAC,CAAC;IACxC,CAAC;IACD,OAAO,CAAC,CAAC;AACX,CAAC;AAED;;;GAGG;AACH,MAAM,CAAC,KAAK,UAAU,UAAU,CAAC,MAAc;IAC7C,MAAM,OAAO,GAAG,eAAe,EAAE,CAAC;IAClC,MAAM,IAAI,GAAG,MAAM,OAAO,CAAC,QAAQ,CACjC,8CAA8C,EAAE,CAAC,MAAM,CAAC,CACzD,CAAC;IACF,IAAI,IAAI,EAAE,QAAQ,KAAK,OAAO;QAAE,MAAM,IAAI,KAAK,CAAC,4BAA4B,CAAC,CAAC;IAC9E,MAAM,sBAAsB,CAAC,MAAM,CAAC,CAAC;IACrC,MAAM,OAAO,CAAC,QAAQ,CAAC,qCAAqC,EAAE,CAAC,MAAM,CAAC,CAAC,CAAC;AAC1E,CAAC;AAED;;;GAGG;AACH,MAAM,CAAC,KAAK,UAAU,iBAAiB,CAAC,MAAc;IACpD,MAAM,OAAO,GAAG,eAAe,EAAE,CAAC;IAClC,MAAM,OAAO,GAAG,MAAM,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,WAAW,CAAC,CAAC;IAC5D,MAAM,IAAI,GAAG,YAAY,CAAC,OAAO,CAAC,CAAC;IACnC,MAAM,OAAO,CAAC,QAAQ,CACpB,iFAAiF,EACjF,CAAC,IAAI,EAAE,MAAM,CAAC,CACf,CAAC;IACF,OAAO,OAAO,CAAC;AACjB,CAAC;AAED;;GAEG;AACH,MAAM,CAAC,KAAK,UAAU,cAAc,CAAC,MAAc,EAAE,WAAmB;IACtE,MAAM,OAAO,GAAG,eAAe,EAAE,CAAC;IAClC,MAAM,IAAI,GAAG,YAAY,CAAC,WAAW,CAAC,CAAC;IACvC,MAAM,OAAO,CAAC,QAAQ,CACpB,iFAAiF,EACjF,CAAC,IAAI,EAAE,MAAM,CAAC,CACf,CAAC;AACJ,CAAC;AAED,6DAA6D;AAC7D,MAAM,CAAC,KAAK,UAAU,eAAe,CAAC,MAAc;IAClD,MAAM,OAAO,GAAG,eAAe,EAAE,CAAC;IAClC,MAAM,OAAO,CAAC,QAAQ,CACpB,mDAAmD,EACnD,CAAC,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE,EAAE,MAAM,CAAC,CACnC,CAAC;AACJ,CAAC;AAED,iCAAiC;AACjC,MAAM,CAAC,KAAK,UAAU,eAAe,CAAC,MAAc,EAAE,KAAa;IACjE,MAAM,OAAO,GAAG,eAAe,EAAE,CAAC;IAClC,MAAM,OAAO,CAAC,QAAQ,CAAC,8CAA8C,EAAE,CAAC,KAAK,EAAE,MAAM,CAAC,CAAC,CAAC;AAC1F,CAAC;AAED;;;GAGG;AACH,MAAM,CAAC,KAAK,UAAU,UAAU,CAC9B,MAAc,EACd,OAAsE;IAEtE,MAAM,OAAO,GAAG,eAAe,EAAE,CAAC;IAElC,2CAA2C;IAC3C,IAAI,OAAO,CAAC,QAAQ,EAAE,CAAC;QACrB,MAAM,QAAQ,GAAG,MAAM,OAAO,CAAC,QAAQ,CACrC,+DAA+D,EAC/D,CAAC,OAAO,CAAC,QAAQ,EAAE,MAAM,CAAC,CAC3B,CAAC;QACF,IAAI,QAAQ;YAAE,MAAM,IAAI,KAAK,CAAC,yBAAyB,CAAC,CAAC;IAC3D,CAAC;IAED,oCAAoC;IACpC,IAAI,OAAO,CAAC,aAAa,EAAE,CAAC;QAC1B,MAAM,KAAK,GAAG,MAAM,OAAO,CAAC,QAAQ,CAClC,qEAAqE,EACrE,CAAC,OAAO,CAAC,aAAa,CAAC,CACxB,CAAC;QACF,IAAI,CAAC,KAAK;YAAE,MAAM,IAAI,KAAK,CAAC,wBAAwB,CAAC,CAAC;IACxD,CAAC;IAED,MAAM,MAAM,GAAa,EAAE,CAAC;IAC5B,MAAM,MAAM,GAAc,EAAE,CAAC;IAE7B,IAAI,OAAO,CAAC,QAAQ,EAAE,CAAC;QAAC,MAAM,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC;QAAC,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC;IAAC,CAAC;IACrF,IAAI,OAAO,CAAC,KAAK,KAAK,SAAS,EAAE,CAAC;QAAC,MAAM,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;QAAC,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;IAAC,CAAC;IAC1F,IAAI,OAAO,CAAC,aAAa,EAAE,CAAC;QAAC,MAAM,CAAC,IAAI,CAAC,qBAAqB,CAAC,CAAC;QAAC,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,aAAa,CAAC,CAAC;IAAC,CAAC;IAEtG,IAAI,MAAM,CAAC,MAAM,KAAK,CAAC;QAAE,MAAM,IAAI,KAAK,CAAC,qBAAqB,CAAC,CAAC;IAEhE,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;IACpB,MAAM,OAAO,CAAC,QAAQ,CAAC,oBAAoB,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,oBAAoB,EAAE,MAAM,CAAC,CAAC;IAE1F,MAAM,OAAO,GAAG,MAAM,WAAW,CAAC,MAAM,CAAC,CAAC;IAC1C,IAAI,CAAC,OAAO;QAAE,MAAM,IAAI,KAAK,CAAC,6BAA6B,CAAC,CAAC;IAC7D,OAAO,OAAO,CAAC;AACjB,CAAC;AAED,0DAA0D;AAC1D,MAAM,CAAC,KAAK,UAAU,YAAY;IAChC,MAAM,OAAO,GAAG,eAAe,EAAE,CAAC;IAClC,MAAM,GAAG,GAAG,MAAM,OAAO,CAAC,QAAQ,CAChC,2DAA2D,CAC5D,CAAC;IACF,OAAO,GAAG,EAAE,GAAG,IAAI,CAAC,CAAC;AACvB,CAAC;AAED,wDAAwD;AACxD,MAAM,CAAC,KAAK,UAAU,mBAAmB,CAAC,OAAe;IACvD,MAAM,OAAO,GAAG,eAAe,EAAE,CAAC;IAClC,MAAM,GAAG,GAAG,MAAM,OAAO,CAAC,QAAQ,CAChC,6DAA6D,EAAE,CAAC,OAAO,CAAC,CACzE,CAAC;IACF,OAAO,GAAG,EAAE,GAAG,IAAI,CAAC,CAAC;AACvB,CAAC"}
@@ -4,7 +4,7 @@ import type { DatabaseEngine } from '../adapters/DatabaseAdapter.js';
4
4
  * Produces engine-specific SQL fragments for SQLite and PostgreSQL.
5
5
  */
6
6
  export declare class DialectHelper {
7
- private readonly engine;
7
+ readonly engine: DatabaseEngine;
8
8
  constructor(engine: DatabaseEngine);
9
9
  /** Current timestamp expression for DML queries. */
10
10
  now(): string;
@@ -22,4 +22,17 @@ export declare class DialectHelper {
22
22
  defaultTimestamp(): string;
23
23
  /** Date arithmetic: subtract seconds from now. */
24
24
  dateSubtract(seconds: string): string;
25
+ /**
26
+ * Column-to-date comparison expression.
27
+ *
28
+ * Supports two operators:
29
+ * - `'<= now -'`: column compared against now minus an interval (SQLite sign convention)
30
+ * - `'<= now'`: column compared against now (no interval)
31
+ *
32
+ * @example
33
+ * dialect.dateColumnCompare('created_at', '<= now -', '-24 hours')
34
+ * // SQLite: datetime(created_at) <= datetime('now', '-24 hours')
35
+ * // PG: created_at::timestamp <= NOW() - INTERVAL '24 hours'
36
+ */
37
+ dateColumnCompare(column: string, operator: '<= now -' | '<= now', interval?: string): string;
25
38
  }
@@ -4,9 +4,7 @@
4
4
  */
5
5
  export class DialectHelper {
6
6
  engine;
7
- constructor(engine) {
8
- this.engine = engine;
9
- }
7
+ constructor(engine) { this.engine = engine; }
10
8
  /** Current timestamp expression for DML queries. */
11
9
  now() {
12
10
  return this.engine === 'sqlite' ? "datetime('now')" : 'NOW()';
@@ -55,5 +53,31 @@ export class DialectHelper {
55
53
  }
56
54
  return `NOW() - INTERVAL '1 second' * ${seconds}`;
57
55
  }
56
+ /**
57
+ * Column-to-date comparison expression.
58
+ *
59
+ * Supports two operators:
60
+ * - `'<= now -'`: column compared against now minus an interval (SQLite sign convention)
61
+ * - `'<= now'`: column compared against now (no interval)
62
+ *
63
+ * @example
64
+ * dialect.dateColumnCompare('created_at', '<= now -', '-24 hours')
65
+ * // SQLite: datetime(created_at) <= datetime('now', '-24 hours')
66
+ * // PG: created_at::timestamp <= NOW() - INTERVAL '24 hours'
67
+ */
68
+ dateColumnCompare(column, operator, interval) {
69
+ if (this.engine === 'postgresql' || this.engine === 'mysql') {
70
+ const tsCol = `${column}::timestamp`;
71
+ if (operator === '<= now -' && interval != null) {
72
+ const pgInterval = interval.startsWith('-') ? interval.slice(1) : interval;
73
+ return `${tsCol} <= NOW() - INTERVAL '${pgInterval}'`;
74
+ }
75
+ return `${tsCol} <= NOW()`;
76
+ }
77
+ if (operator === '<= now -' && interval != null) {
78
+ return `datetime(${column}) <= datetime('now', '${interval}')`;
79
+ }
80
+ return `datetime(${column}) <= datetime('now')`;
81
+ }
58
82
  }
59
83
  //# sourceMappingURL=DialectHelper.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"DialectHelper.js","sourceRoot":"","sources":["../../../src/database/dialect/DialectHelper.ts"],"names":[],"mappings":"AAEA;;;GAGG;AACH,MAAM,OAAO,aAAa;IACK;IAA7B,YAA6B,MAAsB;QAAtB,WAAM,GAAN,MAAM,CAAgB;IAAG,CAAC;IAEvD,oDAAoD;IACpD,GAAG;QACD,OAAO,IAAI,CAAC,MAAM,KAAK,QAAQ,CAAC,CAAC,CAAC,iBAAiB,CAAC,CAAC,CAAC,OAAO,CAAC;IAChE,CAAC;IAED,uEAAuE;IACvE,MAAM,CAAC,KAAa,EAAE,OAAiB,EAAE,WAAmB,EAAE,aAAuB;QACnF,IAAI,IAAI,CAAC,MAAM,KAAK,QAAQ,EAAE,CAAC;YAC7B,OAAO,0BAA0B,KAAK,KAAK,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,aAAa,OAAO,CAAC,GAAG,CAAC,GAAG,EAAE,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC;QACjH,CAAC;QACD,MAAM,UAAU,GAAG,aAAa,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,eAAe,CAAC,EAAE,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QAC7E,OAAO,eAAe,KAAK,KAAK,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,aAAa,OAAO,CAAC,GAAG,CAAC,GAAG,EAAE,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,kBAAkB,WAAW,mBAAmB,UAAU,EAAE,CAAC;IAC/J,CAAC;IAED,8EAA8E;IAC9E,YAAY,CAAC,KAAa,EAAE,OAAiB,EAAE,WAAmB;QAChE,IAAI,IAAI,CAAC,MAAM,KAAK,QAAQ,EAAE,CAAC;YAC7B,OAAO,yBAAyB,KAAK,KAAK,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,aAAa,OAAO,CAAC,GAAG,CAAC,GAAG,EAAE,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC;QAChH,CAAC;QACD,OAAO,eAAe,KAAK,KAAK,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,aAAa,OAAO,CAAC,GAAG,CAAC,GAAG,EAAE,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,kBAAkB,WAAW,cAAc,CAAC;IAC9I,CAAC;IAED,kDAAkD;IAClD,gBAAgB,CAAC,KAAa;QAC5B,IAAI,IAAI,CAAC,MAAM,KAAK,QAAQ,EAAE,CAAC;YAC7B,OAAO,+DAA+D,KAAK,GAAG,CAAC;QACjF,CAAC;QACD,OAAO,wEAAwE,KAAK,GAAG,CAAC;IAC1F,CAAC;IAED,iDAAiD;IACjD,iBAAiB,CAAC,KAAa;QAC7B,IAAI,IAAI,CAAC,MAAM,KAAK,QAAQ,EAAE,CAAC;YAC7B,OAAO,uCAAuC,KAAK,IAAI,CAAC;QAC1D,CAAC;QACD,OAAO,kFAAkF,KAAK,GAAG,CAAC;IACpG,CAAC;IAED,oDAAoD;IACpD,QAAQ;QACN,OAAO,IAAI,CAAC,MAAM,KAAK,QAAQ,CAAC,CAAC,CAAC,mCAAmC,CAAC,CAAC,CAAC,oBAAoB,CAAC;IAC/F,CAAC;IAED,8DAA8D;IAC9D,gBAAgB;QACd,OAAO,IAAI,CAAC,MAAM,KAAK,QAAQ,CAAC,CAAC,CAAC,mBAAmB,CAAC,CAAC,CAAC,mBAAmB,CAAC;IAC9E,CAAC;IAED,kDAAkD;IAClD,YAAY,CAAC,OAAe;QAC1B,IAAI,IAAI,CAAC,MAAM,KAAK,QAAQ,EAAE,CAAC;YAC7B,OAAO,0BAA0B,OAAO,iBAAiB,CAAC;QAC5D,CAAC;QACD,OAAO,iCAAiC,OAAO,EAAE,CAAC;IACpD,CAAC;CACF"}
1
+ {"version":3,"file":"DialectHelper.js","sourceRoot":"","sources":["../../../src/database/dialect/DialectHelper.ts"],"names":[],"mappings":"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"}
@@ -31,38 +31,315 @@ export class KBGraphModule {
31
31
  }
32
32
  getToolHandlers() {
33
33
  const handlers = new Map();
34
- handlers.set('kb_graph_query', async (args) => ({
35
- content: [{ type: 'text', text: JSON.stringify({ nodes: [], edges: [], query: args.query }) }],
36
- isError: false,
37
- }));
38
- handlers.set('kb_graph_add_node', async (args) => ({
39
- content: [{ type: 'text', text: `Node added: ${args.title}` }],
40
- isError: false,
41
- }));
42
- handlers.set('kb_graph_add_edge', async (args) => ({
43
- content: [{ type: 'text', text: `Edge added: ${args.from} -> ${args.to}` }],
44
- isError: false,
45
- }));
34
+ handlers.set('kb_graph_query', async (args) => {
35
+ const query = args.query;
36
+ const type = args.type;
37
+ const tier = args.tier;
38
+ const limit = args.limit || 20;
39
+ const projectId = args.project_id || args.__projectId || undefined;
40
+ try {
41
+ const nodes = await this.graphService.searchNodes(query, type, tier, limit, projectId);
42
+ const nodeIds = nodes.map(n => n.id);
43
+ const edges = await this.graphService.getEdgesForNodeIds(nodeIds);
44
+ return {
45
+ content: [{ type: 'text', text: JSON.stringify({
46
+ nodes, edges, query: query ?? null,
47
+ stats: { nodeCount: nodes.length, edgeCount: edges.length },
48
+ }) }],
49
+ isError: false,
50
+ };
51
+ }
52
+ catch (err) {
53
+ this.logger.error({ err: err.message, query }, 'kb_graph_query failed');
54
+ return {
55
+ content: [{ type: 'text', text: JSON.stringify({ error: err.message, nodes: [], edges: [] }) }],
56
+ isError: true,
57
+ };
58
+ }
59
+ });
60
+ handlers.set('kb_graph_add_node', async (args) => {
61
+ const label = args.label || args.title || '';
62
+ const type = args.type || 'CONTEXT';
63
+ const tier = args.tier || 'SHARED';
64
+ const entryId = args.entry_id || `custom-${Date.now()}-${Math.random().toString(36).slice(2, 8)}`;
65
+ const projectId = args.project_id || '';
66
+ try {
67
+ const node = await this.graphService.addNode(entryId, label, type, tier, projectId);
68
+ return {
69
+ content: [{ type: 'text', text: JSON.stringify({ status: 'added', node }) }],
70
+ isError: false,
71
+ };
72
+ }
73
+ catch (err) {
74
+ return {
75
+ content: [{ type: 'text', text: JSON.stringify({ error: err.message }) }],
76
+ isError: true,
77
+ };
78
+ }
79
+ });
80
+ handlers.set('kb_graph_add_edge', async (args) => {
81
+ const source = args.source || args.from || '';
82
+ const target = args.target || args.to || '';
83
+ if (!source || !target) {
84
+ return {
85
+ content: [{ type: 'text', text: JSON.stringify({ error: 'source and target are required' }) }],
86
+ isError: true,
87
+ };
88
+ }
89
+ const weight = args.weight ?? 0.5;
90
+ const relType = args.relation || args.rel_type || 'RELATED_TO';
91
+ try {
92
+ await this.graphService.addEdge(source, target, weight, relType);
93
+ return {
94
+ content: [{ type: 'text', text: JSON.stringify({ status: 'added', source, target, relType }) }],
95
+ isError: false,
96
+ };
97
+ }
98
+ catch (err) {
99
+ return {
100
+ content: [{ type: 'text', text: JSON.stringify({ error: err.message }) }],
101
+ isError: true,
102
+ };
103
+ }
104
+ });
105
+ handlers.set('kb_graph_community', async (args) => {
106
+ const maxIterations = args.max_iterations || 20;
107
+ const minClusterSize = args.min_cluster_size || 2;
108
+ try {
109
+ const communities = await this.graphService.detectCommunities(maxIterations, minClusterSize);
110
+ return {
111
+ content: [{ type: 'text', text: JSON.stringify({
112
+ communities,
113
+ totalClusters: communities.length,
114
+ totalNodes: communities.reduce((s, c) => s + c.nodeCount, 0),
115
+ }) }],
116
+ isError: false,
117
+ };
118
+ }
119
+ catch (err) {
120
+ this.logger.error({ err: err.message }, 'kb_graph_community failed');
121
+ return {
122
+ content: [{ type: 'text', text: JSON.stringify({ error: err.message, communities: [] }) }],
123
+ isError: true,
124
+ };
125
+ }
126
+ });
127
+ handlers.set('kb_graph_pagerank', async (args) => {
128
+ const topN = args.top_n || 20;
129
+ const dampingFactor = args.damping_factor ?? 0.85;
130
+ const maxIterations = args.max_iterations || 20;
131
+ try {
132
+ const ranked = await this.graphService.computePageRank(dampingFactor, maxIterations, 0.001, topN);
133
+ return {
134
+ content: [{ type: 'text', text: JSON.stringify({
135
+ ranked,
136
+ topN: ranked.length,
137
+ }) }],
138
+ isError: false,
139
+ };
140
+ }
141
+ catch (err) {
142
+ this.logger.error({ err: err.message }, 'kb_graph_pagerank failed');
143
+ return {
144
+ content: [{ type: 'text', text: JSON.stringify({ error: err.message, ranked: [] }) }],
145
+ isError: true,
146
+ };
147
+ }
148
+ });
149
+ handlers.set('kb_graph_merge', async (args) => {
150
+ const projectIds = args.project_ids || [];
151
+ try {
152
+ const result = await this.graphService.mergeGraph(projectIds);
153
+ return {
154
+ content: [{ type: 'text', text: JSON.stringify(result) }],
155
+ isError: false,
156
+ };
157
+ }
158
+ catch (err) {
159
+ return {
160
+ content: [{ type: 'text', text: JSON.stringify({ error: err.message }) }],
161
+ isError: true,
162
+ };
163
+ }
164
+ });
165
+ handlers.set('kb_graph_cross_sync', async (args) => {
166
+ const source = args.source_project_id || '';
167
+ const target = args.target_project_id || '';
168
+ if (!source || !target) {
169
+ return {
170
+ content: [{ type: 'text', text: JSON.stringify({ error: 'source_project_id and target_project_id are required' }) }],
171
+ isError: true,
172
+ };
173
+ }
174
+ try {
175
+ const result = await this.graphService.crossSync(source, target);
176
+ return {
177
+ content: [{ type: 'text', text: JSON.stringify(result) }],
178
+ isError: false,
179
+ };
180
+ }
181
+ catch (err) {
182
+ return {
183
+ content: [{ type: 'text', text: JSON.stringify({ error: err.message }) }],
184
+ isError: true,
185
+ };
186
+ }
187
+ });
188
+ handlers.set('kb_graph_remove_cross', async (args) => {
189
+ const a = args.project_a || '';
190
+ const b = args.project_b || '';
191
+ if (!a || !b) {
192
+ return {
193
+ content: [{ type: 'text', text: JSON.stringify({ error: 'project_a and project_b are required' }) }],
194
+ isError: true,
195
+ };
196
+ }
197
+ try {
198
+ const result = await this.graphService.removeCrossEdges(a, b);
199
+ return {
200
+ content: [{ type: 'text', text: JSON.stringify(result) }],
201
+ isError: false,
202
+ };
203
+ }
204
+ catch (err) {
205
+ return {
206
+ content: [{ type: 'text', text: JSON.stringify({ error: err.message }) }],
207
+ isError: true,
208
+ };
209
+ }
210
+ });
211
+ handlers.set('kb_graph_stats', async () => {
212
+ try {
213
+ const stats = await this.graphService.getGraphStats();
214
+ return {
215
+ content: [{ type: 'text', text: JSON.stringify(stats) }],
216
+ isError: false,
217
+ };
218
+ }
219
+ catch (err) {
220
+ return {
221
+ content: [{ type: 'text', text: JSON.stringify({ error: err.message }) }],
222
+ isError: true,
223
+ };
224
+ }
225
+ });
46
226
  return handlers;
47
227
  }
48
228
  getToolDefinitions() {
49
229
  return [
50
230
  {
51
231
  name: 'kb_graph_query',
52
- description: 'Query the knowledge base graph',
53
- inputSchema: { type: 'object', properties: { query: { type: 'string' } }, required: ['query'] },
232
+ description: 'Query the knowledge base graph — search by label, type, or tier',
233
+ inputSchema: {
234
+ type: 'object',
235
+ properties: {
236
+ query: { type: 'string', description: 'Fuzzy search label or entry_id' },
237
+ type: { type: 'string', description: 'Filter by node type (FUNCTION, CLASS, DOCUMENT, etc.)' },
238
+ tier: { type: 'string', description: 'Filter by tier (CODE, SHARED, etc.)' },
239
+ limit: { type: 'number', description: 'Max results (default 20)' },
240
+ project_id: { type: 'string' },
241
+ },
242
+ },
54
243
  category: 'kb-graph',
55
244
  },
56
245
  {
57
246
  name: 'kb_graph_add_node',
58
- description: 'Add a node to the KB graph',
59
- inputSchema: { type: 'object', properties: { title: { type: 'string' }, content: { type: 'string' } }, required: ['title'] },
247
+ description: 'Add a node to the KB graph — auto-creates position and type/tier edges',
248
+ inputSchema: {
249
+ type: 'object',
250
+ properties: {
251
+ label: { type: 'string', description: 'Display label (max 50 chars)' },
252
+ type: { type: 'string', description: 'Node type (CLASS, FUNCTION, DOCUMENT, CONTEXT, etc.)' },
253
+ tier: { type: 'string', description: 'Tier (SHARED, CODE, etc.)' },
254
+ entry_id: { type: 'string', description: 'Unique ID (auto-generated if omitted)' },
255
+ project_id: { type: 'string' },
256
+ },
257
+ required: ['label'],
258
+ },
60
259
  category: 'kb-graph',
61
260
  },
62
261
  {
63
262
  name: 'kb_graph_add_edge',
64
263
  description: 'Add an edge between KB graph nodes',
65
- inputSchema: { type: 'object', properties: { from: { type: 'string' }, to: { type: 'string' }, relation: { type: 'string' } }, required: ['from', 'to'] },
264
+ inputSchema: {
265
+ type: 'object',
266
+ properties: {
267
+ source: { type: 'string', description: 'Source node entry_id' },
268
+ target: { type: 'string', description: 'Target node entry_id' },
269
+ relation: { type: 'string', description: 'Relationship label (default: RELATED_TO)' },
270
+ weight: { type: 'number', description: 'Edge strength 0-1 (default 0.5)' },
271
+ },
272
+ required: ['source', 'target'],
273
+ },
274
+ category: 'kb-graph',
275
+ },
276
+ {
277
+ name: 'kb_graph_community',
278
+ description: 'Detect communities/clusters in the KB graph using label propagation. Returns groups of densely connected nodes.',
279
+ inputSchema: {
280
+ type: 'object',
281
+ properties: {
282
+ max_iterations: { type: 'number', description: 'Max label propagation passes (default 20)' },
283
+ min_cluster_size: { type: 'number', description: 'Minimum nodes per cluster (default 2)' },
284
+ },
285
+ },
286
+ category: 'kb-graph',
287
+ },
288
+ {
289
+ name: 'kb_graph_pagerank',
290
+ description: 'Compute PageRank scores for all graph nodes. Returns top-N nodes ranked by importance.',
291
+ inputSchema: {
292
+ type: 'object',
293
+ properties: {
294
+ top_n: { type: 'number', description: 'Return top N nodes (default 20, 0 = all)' },
295
+ damping_factor: { type: 'number', description: 'Probability of following edges (default 0.85)' },
296
+ max_iterations: { type: 'number', description: 'Max iterations (default 20)' },
297
+ },
298
+ },
299
+ category: 'kb-graph',
300
+ },
301
+ {
302
+ name: 'kb_graph_merge',
303
+ description: 'Multi-agent graph merge — combine nodes/edges from multiple projects. Returns merged view with conflict detection.',
304
+ inputSchema: {
305
+ type: 'object',
306
+ properties: {
307
+ project_ids: { type: 'array', items: { type: 'string' }, description: 'Project IDs to merge' },
308
+ },
309
+ required: ['project_ids'],
310
+ },
311
+ category: 'kb-graph',
312
+ },
313
+ {
314
+ name: 'kb_graph_cross_sync',
315
+ description: 'Cross-tenant sync — create CROSS_TENANT edges between matching nodes across two projects.',
316
+ inputSchema: {
317
+ type: 'object',
318
+ properties: {
319
+ source_project_id: { type: 'string', description: 'Source project ID' },
320
+ target_project_id: { type: 'string', description: 'Target project ID' },
321
+ },
322
+ required: ['source_project_id', 'target_project_id'],
323
+ },
324
+ category: 'kb-graph',
325
+ },
326
+ {
327
+ name: 'kb_graph_remove_cross',
328
+ description: 'Remove all CROSS_TENANT edges between two projects.',
329
+ inputSchema: {
330
+ type: 'object',
331
+ properties: {
332
+ project_a: { type: 'string', description: 'First project ID' },
333
+ project_b: { type: 'string', description: 'Second project ID' },
334
+ },
335
+ required: ['project_a', 'project_b'],
336
+ },
337
+ category: 'kb-graph',
338
+ },
339
+ {
340
+ name: 'kb_graph_stats',
341
+ description: 'Get KB graph summary statistics: node/edge count, density, type distribution.',
342
+ inputSchema: { type: 'object', properties: {} },
66
343
  category: 'kb-graph',
67
344
  },
68
345
  ];
@@ -1 +1 @@
1
- {"version":3,"file":"KBGraphModule.js","sourceRoot":"","sources":["../../../src/modules/kb-graph/KBGraphModule.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"KBGraphModule.js","sourceRoot":"","sources":["../../../src/modules/kb-graph/KBGraphModule.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAKH,OAAO,EAAE,eAAe,EAAE,MAAM,wBAAwB,CAAC;AACzD,OAAO,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AAElD,MAAM,OAAO,aAAa;IACf,IAAI,GAAG,SAAS,CAAC;IAClB,OAAO,GAAiB,cAAc,CAAC;IAC9B,MAAM,CAAS;IACf,YAAY,CAAe;IAE5C;;OAEG;IACH,YAAY,MAAc;QACxB,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC,KAAK,CAAC,EAAE,MAAM,EAAE,IAAI,CAAC,IAAI,EAAE,CAAC,CAAC;QAClD,iEAAiE;QACjE,IAAI,CAAC,YAAY,GAAG,IAAI,YAAY,CAAC,eAAe,EAAE,EAAE,IAAI,CAAC,MAAM,CAAC,CAAC;IACvE,CAAC;IAED,IAAI,MAAM,KAAmB,OAAO,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC;IAEnD,KAAK,CAAC,UAAU;QACd,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,8BAA8B,CAAC,CAAC;QACjD,MAAM,IAAI,CAAC,YAAY,CAAC,UAAU,EAAE,CAAC;QACrC,oDAAoD;QACnD,UAAkB,CAAC,oBAAoB,GAAG,IAAI,CAAC,YAAY,CAAC;QAC7D,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC;IACzB,CAAC;IAED,KAAK,CAAC,QAAQ;QACZ,IAAI,CAAC,OAAO,GAAG,SAAS,CAAC;IAC3B,CAAC;IAED,eAAe;QACb,MAAM,QAAQ,GAAG,IAAI,GAAG,EAAuB,CAAC;QAEhD,QAAQ,CAAC,GAAG,CAAC,gBAAgB,EAAE,KAAK,EAAE,IAAI,EAAE,EAAE;YAC5C,MAAM,KAAK,GAAG,IAAI,CAAC,KAA2B,CAAC;YAC/C,MAAM,IAAI,GAAG,IAAI,CAAC,IAA0B,CAAC;YAC7C,MAAM,IAAI,GAAG,IAAI,CAAC,IAA0B,CAAC;YAC7C,MAAM,KAAK,GAAI,IAAI,CAAC,KAAgB,IAAI,EAAE,CAAC;YAC3C,MAAM,SAAS,GAAI,IAAI,CAAC,UAAqB,IAAK,IAAI,CAAC,WAAsB,IAAI,SAAS,CAAC;YAE3F,IAAI,CAAC;gBACH,MAAM,KAAK,GAAG,MAAM,IAAI,CAAC,YAAY,CAAC,WAAW,CAAC,KAAK,EAAE,IAAI,EAAE,IAAI,EAAE,KAAK,EAAE,SAAS,CAAC,CAAC;gBACvF,MAAM,OAAO,GAAG,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;gBACrC,MAAM,KAAK,GAAG,MAAM,IAAI,CAAC,YAAY,CAAC,kBAAkB,CAAC,OAAO,CAAC,CAAC;gBAClE,OAAO;oBACL,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC;gCAC7C,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,IAAI,IAAI;gCAClC,KAAK,EAAE,EAAE,SAAS,EAAE,KAAK,CAAC,MAAM,EAAE,SAAS,EAAE,KAAK,CAAC,MAAM,EAAE;6BAC5D,CAAC,EAAE,CAAC;oBACL,OAAO,EAAE,KAAK;iBACf,CAAC;YACJ,CAAC;YAAC,OAAO,GAAQ,EAAE,CAAC;gBAClB,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE,GAAG,EAAE,GAAG,CAAC,OAAO,EAAE,KAAK,EAAE,EAAE,uBAAuB,CAAC,CAAC;gBACxE,OAAO;oBACL,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,EAAE,KAAK,EAAE,GAAG,CAAC,OAAO,EAAE,KAAK,EAAE,EAAE,EAAE,KAAK,EAAE,EAAE,EAAE,CAAC,EAAE,CAAC;oBAC/F,OAAO,EAAE,IAAI;iBACd,CAAC;YACJ,CAAC;QACH,CAAC,CAAC,CAAC;QAEH,QAAQ,CAAC,GAAG,CAAC,mBAAmB,EAAE,KAAK,EAAE,IAAI,EAAE,EAAE;YAC/C,MAAM,KAAK,GAAG,IAAI,CAAC,KAAe,IAAI,IAAI,CAAC,KAAe,IAAI,EAAE,CAAC;YACjE,MAAM,IAAI,GAAI,IAAI,CAAC,IAAe,IAAI,SAAS,CAAC;YAChD,MAAM,IAAI,GAAI,IAAI,CAAC,IAAe,IAAI,QAAQ,CAAC;YAC/C,MAAM,OAAO,GAAI,IAAI,CAAC,QAAmB,IAAI,UAAU,IAAI,CAAC,GAAG,EAAE,IAAI,IAAI,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC;YAC9G,MAAM,SAAS,GAAI,IAAI,CAAC,UAAqB,IAAI,EAAE,CAAC;YAEpD,IAAI,CAAC;gBACH,MAAM,IAAI,GAAG,MAAM,IAAI,CAAC,YAAY,CAAC,OAAO,CAAC,OAAO,EAAE,KAAK,EAAE,IAAI,EAAE,IAAI,EAAE,SAAS,CAAC,CAAC;gBACpF,OAAO;oBACL,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,EAAE,MAAM,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC,EAAE,CAAC;oBAC5E,OAAO,EAAE,KAAK;iBACf,CAAC;YACJ,CAAC;YAAC,OAAO,GAAQ,EAAE,CAAC;gBAClB,OAAO;oBACL,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,EAAE,KAAK,EAAE,GAAG,CAAC,OAAO,EAAE,CAAC,EAAE,CAAC;oBACzE,OAAO,EAAE,IAAI;iBACd,CAAC;YACJ,CAAC;QACH,CAAC,CAAC,CAAC;QAEH,QAAQ,CAAC,GAAG,CAAC,mBAAmB,EAAE,KAAK,EAAE,IAAI,EAAE,EAAE;YAC/C,MAAM,MAAM,GAAG,IAAI,CAAC,MAAgB,IAAI,IAAI,CAAC,IAAc,IAAI,EAAE,CAAC;YAClE,MAAM,MAAM,GAAG,IAAI,CAAC,MAAgB,IAAI,IAAI,CAAC,EAAY,IAAI,EAAE,CAAC;YAChE,IAAI,CAAC,MAAM,IAAI,CAAC,MAAM,EAAE,CAAC;gBACvB,OAAO;oBACL,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,EAAE,KAAK,EAAE,gCAAgC,EAAE,CAAC,EAAE,CAAC;oBAC9F,OAAO,EAAE,IAAI;iBACd,CAAC;YACJ,CAAC;YACD,MAAM,MAAM,GAAI,IAAI,CAAC,MAAiB,IAAI,GAAG,CAAC;YAC9C,MAAM,OAAO,GAAI,IAAI,CAAC,QAAmB,IAAK,IAAI,CAAC,QAAmB,IAAI,YAAY,CAAC;YAEvF,IAAI,CAAC;gBACH,MAAM,IAAI,CAAC,YAAY,CAAC,OAAO,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,OAAO,CAAC,CAAC;gBACjE,OAAO;oBACL,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE,CAAC,EAAE,CAAC;oBAC/F,OAAO,EAAE,KAAK;iBACf,CAAC;YACJ,CAAC;YAAC,OAAO,GAAQ,EAAE,CAAC;gBAClB,OAAO;oBACL,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,EAAE,KAAK,EAAE,GAAG,CAAC,OAAO,EAAE,CAAC,EAAE,CAAC;oBACzE,OAAO,EAAE,IAAI;iBACd,CAAC;YACJ,CAAC;QACH,CAAC,CAAC,CAAC;QAEH,QAAQ,CAAC,GAAG,CAAC,oBAAoB,EAAE,KAAK,EAAE,IAAI,EAAE,EAAE;YAChD,MAAM,aAAa,GAAI,IAAI,CAAC,cAAyB,IAAI,EAAE,CAAC;YAC5D,MAAM,cAAc,GAAI,IAAI,CAAC,gBAA2B,IAAI,CAAC,CAAC;YAE9D,IAAI,CAAC;gBACH,MAAM,WAAW,GAAG,MAAM,IAAI,CAAC,YAAY,CAAC,iBAAiB,CAAC,aAAa,EAAE,cAAc,CAAC,CAAC;gBAC7F,OAAO;oBACL,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC;gCAC7C,WAAW;gCACX,aAAa,EAAE,WAAW,CAAC,MAAM;gCACjC,UAAU,EAAE,WAAW,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,SAAS,EAAE,CAAC,CAAC;6BAC7D,CAAC,EAAE,CAAC;oBACL,OAAO,EAAE,KAAK;iBACf,CAAC;YACJ,CAAC;YAAC,OAAO,GAAQ,EAAE,CAAC;gBAClB,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE,GAAG,EAAE,GAAG,CAAC,OAAO,EAAE,EAAE,2BAA2B,CAAC,CAAC;gBACrE,OAAO;oBACL,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,EAAE,KAAK,EAAE,GAAG,CAAC,OAAO,EAAE,WAAW,EAAE,EAAE,EAAE,CAAC,EAAE,CAAC;oBAC1F,OAAO,EAAE,IAAI;iBACd,CAAC;YACJ,CAAC;QACH,CAAC,CAAC,CAAC;QAEH,QAAQ,CAAC,GAAG,CAAC,mBAAmB,EAAE,KAAK,EAAE,IAAI,EAAE,EAAE;YAC/C,MAAM,IAAI,GAAI,IAAI,CAAC,KAAgB,IAAI,EAAE,CAAC;YAC1C,MAAM,aAAa,GAAI,IAAI,CAAC,cAAyB,IAAI,IAAI,CAAC;YAC9D,MAAM,aAAa,GAAI,IAAI,CAAC,cAAyB,IAAI,EAAE,CAAC;YAE5D,IAAI,CAAC;gBACH,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,YAAY,CAAC,eAAe,CAAC,aAAa,EAAE,aAAa,EAAE,KAAK,EAAE,IAAI,CAAC,CAAC;gBAClG,OAAO;oBACL,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC;gCAC7C,MAAM;gCACN,IAAI,EAAE,MAAM,CAAC,MAAM;6BACpB,CAAC,EAAE,CAAC;oBACL,OAAO,EAAE,KAAK;iBACf,CAAC;YACJ,CAAC;YAAC,OAAO,GAAQ,EAAE,CAAC;gBAClB,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE,GAAG,EAAE,GAAG,CAAC,OAAO,EAAE,EAAE,0BAA0B,CAAC,CAAC;gBACpE,OAAO;oBACL,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,EAAE,KAAK,EAAE,GAAG,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE,EAAE,CAAC,EAAE,CAAC;oBACrF,OAAO,EAAE,IAAI;iBACd,CAAC;YACJ,CAAC;QACH,CAAC,CAAC,CAAC;QAEH,QAAQ,CAAC,GAAG,CAAC,gBAAgB,EAAE,KAAK,EAAE,IAAI,EAAE,EAAE;YAC5C,MAAM,UAAU,GAAG,IAAI,CAAC,WAAuB,IAAI,EAAE,CAAC;YACtD,IAAI,CAAC;gBACH,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,YAAY,CAAC,UAAU,CAAC,UAAU,CAAC,CAAC;gBAC9D,OAAO;oBACL,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,EAAE,CAAC;oBACzD,OAAO,EAAE,KAAK;iBACf,CAAC;YACJ,CAAC;YAAC,OAAO,GAAQ,EAAE,CAAC;gBAClB,OAAO;oBACL,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,EAAE,KAAK,EAAE,GAAG,CAAC,OAAO,EAAE,CAAC,EAAE,CAAC;oBACzE,OAAO,EAAE,IAAI;iBACd,CAAC;YACJ,CAAC;QACH,CAAC,CAAC,CAAC;QAEH,QAAQ,CAAC,GAAG,CAAC,qBAAqB,EAAE,KAAK,EAAE,IAAI,EAAE,EAAE;YACjD,MAAM,MAAM,GAAG,IAAI,CAAC,iBAA2B,IAAI,EAAE,CAAC;YACtD,MAAM,MAAM,GAAG,IAAI,CAAC,iBAA2B,IAAI,EAAE,CAAC;YACtD,IAAI,CAAC,MAAM,IAAI,CAAC,MAAM,EAAE,CAAC;gBACvB,OAAO;oBACL,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,EAAE,KAAK,EAAE,sDAAsD,EAAE,CAAC,EAAE,CAAC;oBACpH,OAAO,EAAE,IAAI;iBACd,CAAC;YACJ,CAAC;YACD,IAAI,CAAC;gBACH,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,YAAY,CAAC,SAAS,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;gBACjE,OAAO;oBACL,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,EAAE,CAAC;oBACzD,OAAO,EAAE,KAAK;iBACf,CAAC;YACJ,CAAC;YAAC,OAAO,GAAQ,EAAE,CAAC;gBAClB,OAAO;oBACL,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,EAAE,KAAK,EAAE,GAAG,CAAC,OAAO,EAAE,CAAC,EAAE,CAAC;oBACzE,OAAO,EAAE,IAAI;iBACd,CAAC;YACJ,CAAC;QACH,CAAC,CAAC,CAAC;QAEH,QAAQ,CAAC,GAAG,CAAC,uBAAuB,EAAE,KAAK,EAAE,IAAI,EAAE,EAAE;YACnD,MAAM,CAAC,GAAG,IAAI,CAAC,SAAmB,IAAI,EAAE,CAAC;YACzC,MAAM,CAAC,GAAG,IAAI,CAAC,SAAmB,IAAI,EAAE,CAAC;YACzC,IAAI,CAAC,CAAC,IAAI,CAAC,CAAC,EAAE,CAAC;gBACb,OAAO;oBACL,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,EAAE,KAAK,EAAE,sCAAsC,EAAE,CAAC,EAAE,CAAC;oBACpG,OAAO,EAAE,IAAI;iBACd,CAAC;YACJ,CAAC;YACD,IAAI,CAAC;gBACH,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,YAAY,CAAC,gBAAgB,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;gBAC9D,OAAO;oBACL,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,EAAE,CAAC;oBACzD,OAAO,EAAE,KAAK;iBACf,CAAC;YACJ,CAAC;YAAC,OAAO,GAAQ,EAAE,CAAC;gBAClB,OAAO;oBACL,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,EAAE,KAAK,EAAE,GAAG,CAAC,OAAO,EAAE,CAAC,EAAE,CAAC;oBACzE,OAAO,EAAE,IAAI;iBACd,CAAC;YACJ,CAAC;QACH,CAAC,CAAC,CAAC;QAEH,QAAQ,CAAC,GAAG,CAAC,gBAAgB,EAAE,KAAK,IAAI,EAAE;YACxC,IAAI,CAAC;gBACH,MAAM,KAAK,GAAG,MAAM,IAAI,CAAC,YAAY,CAAC,aAAa,EAAE,CAAC;gBACtD,OAAO;oBACL,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC;oBACxD,OAAO,EAAE,KAAK;iBACf,CAAC;YACJ,CAAC;YAAC,OAAO,GAAQ,EAAE,CAAC;gBAClB,OAAO;oBACL,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,EAAE,KAAK,EAAE,GAAG,CAAC,OAAO,EAAE,CAAC,EAAE,CAAC;oBACzE,OAAO,EAAE,IAAI;iBACd,CAAC;YACJ,CAAC;QACH,CAAC,CAAC,CAAC;QAEH,OAAO,QAAQ,CAAC;IAClB,CAAC;IAED,kBAAkB;QAChB,OAAO;YACL;gBACE,IAAI,EAAE,gBAAgB;gBACtB,WAAW,EAAE,iEAAiE;gBAC9E,WAAW,EAAE;oBACX,IAAI,EAAE,QAAQ;oBACd,UAAU,EAAE;wBACV,KAAK,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,WAAW,EAAE,gCAAgC,EAAE;wBACxE,IAAI,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,WAAW,EAAE,uDAAuD,EAAE;wBAC9F,IAAI,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,WAAW,EAAE,qCAAqC,EAAE;wBAC5E,KAAK,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,WAAW,EAAE,0BAA0B,EAAE;wBAClE,UAAU,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE;qBAC/B;iBACF;gBACD,QAAQ,EAAE,UAAU;aACrB;YACD;gBACE,IAAI,EAAE,mBAAmB;gBACzB,WAAW,EAAE,wEAAwE;gBACrF,WAAW,EAAE;oBACX,IAAI,EAAE,QAAQ;oBACd,UAAU,EAAE;wBACV,KAAK,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,WAAW,EAAE,8BAA8B,EAAE;wBACtE,IAAI,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,WAAW,EAAE,sDAAsD,EAAE;wBAC7F,IAAI,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,WAAW,EAAE,2BAA2B,EAAE;wBAClE,QAAQ,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,WAAW,EAAE,uCAAuC,EAAE;wBAClF,UAAU,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE;qBAC/B;oBACD,QAAQ,EAAE,CAAC,OAAO,CAAC;iBACpB;gBACD,QAAQ,EAAE,UAAU;aACrB;YACD;gBACE,IAAI,EAAE,mBAAmB;gBACzB,WAAW,EAAE,oCAAoC;gBACjD,WAAW,EAAE;oBACX,IAAI,EAAE,QAAQ;oBACd,UAAU,EAAE;wBACV,MAAM,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,WAAW,EAAE,sBAAsB,EAAE;wBAC/D,MAAM,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,WAAW,EAAE,sBAAsB,EAAE;wBAC/D,QAAQ,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,WAAW,EAAE,0CAA0C,EAAE;wBACrF,MAAM,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,WAAW,EAAE,iCAAiC,EAAE;qBAC3E;oBACD,QAAQ,EAAE,CAAC,QAAQ,EAAE,QAAQ,CAAC;iBAC/B;gBACD,QAAQ,EAAE,UAAU;aACrB;YACD;gBACE,IAAI,EAAE,oBAAoB;gBAC1B,WAAW,EAAE,iHAAiH;gBAC9H,WAAW,EAAE;oBACX,IAAI,EAAE,QAAQ;oBACd,UAAU,EAAE;wBACV,cAAc,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,WAAW,EAAE,2CAA2C,EAAE;wBAC5F,gBAAgB,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,WAAW,EAAE,uCAAuC,EAAE;qBAC3F;iBACF;gBACD,QAAQ,EAAE,UAAU;aACrB;YACD;gBACE,IAAI,EAAE,mBAAmB;gBACzB,WAAW,EAAE,wFAAwF;gBACrG,WAAW,EAAE;oBACX,IAAI,EAAE,QAAQ;oBACd,UAAU,EAAE;wBACV,KAAK,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,WAAW,EAAE,0CAA0C,EAAE;wBAClF,cAAc,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,WAAW,EAAE,+CAA+C,EAAE;wBAChG,cAAc,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,WAAW,EAAE,6BAA6B,EAAE;qBAC/E;iBACF;gBACD,QAAQ,EAAE,UAAU;aACrB;YACD;gBACE,IAAI,EAAE,gBAAgB;gBACtB,WAAW,EAAE,oHAAoH;gBACjI,WAAW,EAAE;oBACX,IAAI,EAAE,QAAQ;oBACd,UAAU,EAAE;wBACV,WAAW,EAAE,EAAE,IAAI,EAAE,OAAO,EAAE,KAAK,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,EAAE,WAAW,EAAE,sBAAsB,EAAE;qBAC/F;oBACD,QAAQ,EAAE,CAAC,aAAa,CAAC;iBAC1B;gBACD,QAAQ,EAAE,UAAU;aACrB;YACD;gBACE,IAAI,EAAE,qBAAqB;gBAC3B,WAAW,EAAE,2FAA2F;gBACxG,WAAW,EAAE;oBACX,IAAI,EAAE,QAAQ;oBACd,UAAU,EAAE;wBACV,iBAAiB,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,WAAW,EAAE,mBAAmB,EAAE;wBACvE,iBAAiB,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,WAAW,EAAE,mBAAmB,EAAE;qBACxE;oBACD,QAAQ,EAAE,CAAC,mBAAmB,EAAE,mBAAmB,CAAC;iBACrD;gBACD,QAAQ,EAAE,UAAU;aACrB;YACD;gBACE,IAAI,EAAE,uBAAuB;gBAC7B,WAAW,EAAE,qDAAqD;gBAClE,WAAW,EAAE;oBACX,IAAI,EAAE,QAAQ;oBACd,UAAU,EAAE;wBACV,SAAS,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,WAAW,EAAE,kBAAkB,EAAE;wBAC9D,SAAS,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,WAAW,EAAE,mBAAmB,EAAE;qBAChE;oBACD,QAAQ,EAAE,CAAC,WAAW,EAAE,WAAW,CAAC;iBACrC;gBACD,QAAQ,EAAE,UAAU;aACrB;YACD;gBACE,IAAI,EAAE,gBAAgB;gBACtB,WAAW,EAAE,+EAA+E;gBAC5F,WAAW,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,UAAU,EAAE,EAAE,EAAE;gBAC/C,QAAQ,EAAE,UAAU;aACrB;SACF,CAAC;IACJ,CAAC;CACF"}