@m6d/cortex-server 1.8.0 → 2.0.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 (352) hide show
  1. package/README.md +8 -3
  2. package/contracts/README.md +23 -0
  3. package/contracts/graph/embed.ts +50 -0
  4. package/{src/lib → contracts}/graph/helpers.ts +4 -10
  5. package/{src/lib → contracts}/graph/neo4j.ts +14 -27
  6. package/contracts/graph/schema.ts +65 -0
  7. package/{src/lib → contracts}/graph/types.ts +2 -29
  8. package/contracts/graph.ts +36 -0
  9. package/contracts/runtime.ts +208 -0
  10. package/contracts/wire.ts +143 -0
  11. package/dist/contracts/graph/embed.d.ts +22 -0
  12. package/dist/{src/lib → contracts}/graph/helpers.d.ts +16 -14
  13. package/dist/{src/lib → contracts}/graph/neo4j.d.ts +5 -5
  14. package/dist/contracts/graph/schema.d.ts +62 -0
  15. package/dist/{src/lib → contracts}/graph/types.d.ts +1 -1
  16. package/dist/contracts/graph.d.ts +14 -0
  17. package/dist/contracts/runtime.d.ts +278 -0
  18. package/dist/contracts/wire.d.ts +120 -0
  19. package/dist/src/lib/adapters/database/index.d.ts +61 -0
  20. package/dist/src/lib/adapters/database/message-content.d.ts +30 -0
  21. package/dist/src/lib/adapters/database/mssql/attachments.d.ts +100 -0
  22. package/dist/src/lib/adapters/database/mssql/client.d.ts +8 -0
  23. package/dist/src/lib/adapters/database/mssql/index.d.ts +194 -0
  24. package/dist/src/lib/adapters/database/mssql/llm-requests.d.ts +17 -0
  25. package/dist/src/lib/adapters/database/mssql/messages.d.ts +37 -0
  26. package/dist/src/lib/adapters/database/mssql/threads.d.ts +50 -0
  27. package/dist/src/lib/adapters/database/postgres/attachments.d.ts +113 -0
  28. package/dist/src/lib/adapters/database/postgres/client.d.ts +8 -0
  29. package/dist/src/lib/adapters/database/postgres/index.d.ts +207 -0
  30. package/dist/src/lib/adapters/database/postgres/llm-requests.d.ts +17 -0
  31. package/dist/src/lib/adapters/database/postgres/messages.d.ts +37 -0
  32. package/dist/src/lib/adapters/database/postgres/threads.d.ts +50 -0
  33. package/{src/lib/adapters/storage.ts → dist/src/lib/adapters/storage/index.d.ts} +1 -1
  34. package/dist/src/lib/adapters/{minio.d.ts → storage/minio.d.ts} +1 -1
  35. package/dist/src/lib/ai/active-runs.d.ts +63 -0
  36. package/dist/src/lib/ai/attachments.d.ts +30 -0
  37. package/dist/src/lib/ai/backend-url.d.ts +16 -0
  38. package/dist/src/lib/ai/cc-runtime.d.ts +61 -0
  39. package/dist/src/lib/ai/commit-gate.d.ts +21 -0
  40. package/dist/src/lib/ai/context/builder.d.ts +6 -7
  41. package/dist/src/lib/ai/context/compression-middleware.d.ts +15 -0
  42. package/dist/src/lib/ai/context/compressor.d.ts +2 -13
  43. package/dist/src/lib/ai/context/intra-turn-compressor.d.ts +9 -9
  44. package/dist/src/lib/ai/context/optimize-thread-context.d.ts +9 -0
  45. package/dist/src/lib/ai/context/summarizer.d.ts +3 -3
  46. package/dist/src/lib/ai/context/token-estimator.d.ts +5 -8
  47. package/dist/src/lib/ai/fetch.d.ts +1 -1
  48. package/dist/src/lib/ai/finish-turn.d.ts +23 -0
  49. package/dist/src/lib/ai/helpers.d.ts +37 -4
  50. package/dist/src/lib/ai/index.d.ts +6 -3
  51. package/dist/src/lib/ai/inspector.d.ts +41 -0
  52. package/dist/src/lib/ai/interceptors/request-interceptor.d.ts +6 -5
  53. package/dist/src/lib/ai/prompt.d.ts +5 -4
  54. package/dist/src/lib/ai/redis-runs.d.ts +41 -0
  55. package/dist/src/lib/ai/redis-stream-log.d.ts +39 -0
  56. package/dist/src/lib/ai/tools/execute-code.tool.d.ts +18 -4
  57. package/dist/src/lib/ai/tools/query-graph.tool.d.ts +13 -5
  58. package/dist/src/lib/ai/tools/read-attachment.tool.d.ts +21 -0
  59. package/dist/src/lib/ai/tools/search-common.d.ts +17 -0
  60. package/dist/src/lib/ai/tools/search-knowledge.tool.d.ts +15 -0
  61. package/dist/src/lib/ai/tools/search-services.tool.d.ts +12 -0
  62. package/dist/src/lib/ai/tools/search-tools.tool.d.ts +12 -0
  63. package/dist/src/lib/ai/turn-tools.d.ts +39 -0
  64. package/dist/src/lib/ai/vision/rasterize-pdf.d.ts +26 -0
  65. package/dist/src/lib/ai/vision/rasterize-pdf.worker.d.ts +1 -0
  66. package/dist/src/lib/ai/vision/vision-reader.d.ts +45 -0
  67. package/dist/src/lib/cc/client.d.ts +183 -0
  68. package/dist/src/lib/cc/config-cache.d.ts +20 -0
  69. package/dist/src/lib/cc/format.d.ts +23 -0
  70. package/dist/src/lib/cc/registry.d.ts +34 -0
  71. package/dist/src/lib/cc/types.d.ts +27 -0
  72. package/dist/src/lib/config.d.ts +81 -64
  73. package/dist/src/lib/db/drizzle.config.mssql.d.ts +2 -0
  74. package/dist/src/lib/db/drizzle.config.pg.d.ts +2 -0
  75. package/dist/src/lib/db/migrate.d.ts +7 -1
  76. package/dist/src/lib/db/{schema.d.ts → schema.mssql.d.ts} +138 -29
  77. package/dist/src/lib/db/schema.pg.d.ts +546 -0
  78. package/dist/src/lib/factory.d.ts +2 -12
  79. package/dist/src/lib/graph/index.d.ts +10 -11
  80. package/dist/src/lib/graph/resolver.d.ts +2 -3
  81. package/dist/src/lib/index.d.ts +3 -3
  82. package/dist/src/lib/redis.d.ts +19 -0
  83. package/dist/src/lib/routes/chat.d.ts +1 -1
  84. package/dist/src/lib/routes/files.d.ts +1 -1
  85. package/dist/src/lib/routes/owned-thread.d.ts +17 -0
  86. package/dist/src/lib/routes/threads.d.ts +1 -1
  87. package/dist/src/lib/routes/ws.d.ts +1 -1
  88. package/dist/src/lib/types.d.ts +20 -37
  89. package/dist/src/lib/ws/connections.d.ts +2 -1
  90. package/package.json +33 -18
  91. package/src/lib/adapters/database/index.ts +78 -0
  92. package/src/lib/adapters/database/message-content.ts +39 -0
  93. package/src/lib/adapters/database/mssql/attachments.ts +90 -0
  94. package/src/lib/adapters/database/mssql/client.ts +11 -0
  95. package/src/lib/adapters/database/mssql/index.ts +23 -0
  96. package/src/lib/adapters/database/mssql/llm-requests.ts +43 -0
  97. package/src/lib/adapters/database/mssql/messages.ts +92 -0
  98. package/src/lib/adapters/database/mssql/threads.ts +83 -0
  99. package/src/lib/adapters/database/postgres/attachments.ts +88 -0
  100. package/src/lib/adapters/database/postgres/client.ts +11 -0
  101. package/src/lib/adapters/database/postgres/index.ts +23 -0
  102. package/src/lib/adapters/database/postgres/llm-requests.ts +45 -0
  103. package/src/lib/adapters/database/postgres/messages.ts +92 -0
  104. package/src/lib/adapters/database/postgres/threads.ts +84 -0
  105. package/{dist/src/lib/adapters/storage.d.ts → src/lib/adapters/storage/index.ts} +1 -1
  106. package/src/lib/adapters/{minio.ts → storage/minio.ts} +5 -5
  107. package/src/lib/ai/active-runs.ts +157 -0
  108. package/src/lib/ai/attachments.ts +144 -0
  109. package/src/lib/ai/backend-url.ts +27 -0
  110. package/src/lib/ai/cc-runtime.ts +63 -0
  111. package/src/lib/ai/commit-gate.ts +116 -0
  112. package/src/lib/ai/context/builder.ts +12 -14
  113. package/src/lib/ai/context/compression-middleware.ts +44 -0
  114. package/src/lib/ai/context/compressor.ts +67 -59
  115. package/src/lib/ai/context/intra-turn-compressor.ts +121 -204
  116. package/src/lib/ai/context/optimize-thread-context.ts +50 -0
  117. package/src/lib/ai/context/summarizer.ts +28 -30
  118. package/src/lib/ai/context/token-estimator.ts +35 -30
  119. package/src/lib/ai/fetch.ts +10 -5
  120. package/src/lib/ai/finish-turn.ts +75 -0
  121. package/src/lib/ai/helpers.ts +83 -15
  122. package/src/lib/ai/index.ts +359 -329
  123. package/src/lib/ai/inspector.ts +112 -0
  124. package/src/lib/ai/interceptors/request-interceptor.ts +70 -42
  125. package/src/lib/ai/prompt.ts +126 -125
  126. package/src/lib/ai/redis-runs.ts +167 -0
  127. package/src/lib/ai/redis-stream-log.ts +219 -0
  128. package/src/lib/ai/tools/execute-code.tool.ts +178 -67
  129. package/src/lib/ai/tools/query-graph.tool.ts +7 -8
  130. package/src/lib/ai/tools/read-attachment.tool.ts +59 -0
  131. package/src/lib/ai/tools/search-common.ts +15 -0
  132. package/src/lib/ai/tools/search-knowledge.tool.ts +33 -0
  133. package/src/lib/ai/tools/search-services.tool.ts +31 -0
  134. package/src/lib/ai/tools/search-tools.tool.ts +29 -0
  135. package/src/lib/ai/turn-tools.ts +154 -0
  136. package/src/lib/ai/vision/rasterize-pdf.ts +69 -0
  137. package/src/lib/ai/vision/rasterize-pdf.worker.ts +81 -0
  138. package/src/lib/ai/vision/vision-reader.ts +130 -0
  139. package/src/lib/auth/middleware.ts +5 -3
  140. package/src/lib/cc/client.ts +273 -0
  141. package/src/lib/cc/config-cache.ts +32 -0
  142. package/src/lib/cc/format.ts +96 -0
  143. package/src/lib/cc/registry.ts +62 -0
  144. package/src/lib/cc/types.ts +44 -0
  145. package/src/lib/config.ts +102 -71
  146. package/src/lib/db/drizzle.config.mssql.ts +9 -0
  147. package/src/lib/db/drizzle.config.pg.ts +9 -0
  148. package/src/lib/db/migrate.ts +45 -10
  149. package/src/lib/db/migrations/mssql/20260729092726_talented_wilson_fisk/migration.sql +20 -0
  150. package/src/lib/db/migrations/mssql/20260729092726_talented_wilson_fisk/snapshot.json +497 -0
  151. package/src/lib/db/migrations/mssql/20260801003652_perpetual_blue_shield/migration.sql +1 -0
  152. package/src/lib/db/migrations/mssql/20260801003652_perpetual_blue_shield/snapshot.json +516 -0
  153. package/src/lib/db/migrations/mssql/20260812174642_user_id_text/migration.sql +2 -0
  154. package/src/lib/db/migrations/mssql/20260812174642_user_id_text/snapshot.json +516 -0
  155. package/src/lib/db/migrations/pg/20260801084117_thick_ben_grimm/migration.sql +53 -0
  156. package/src/lib/db/migrations/pg/20260801084117_thick_ben_grimm/snapshot.json +584 -0
  157. package/src/lib/db/migrations/pg/20260812174622_user_id_text/migration.sql +2 -0
  158. package/src/lib/db/migrations/pg/20260812174622_user_id_text/snapshot.json +584 -0
  159. package/src/lib/db/{schema.ts → schema.mssql.ts} +29 -18
  160. package/src/lib/db/schema.pg.ts +95 -0
  161. package/src/lib/factory.ts +44 -89
  162. package/src/lib/graph/index.ts +12 -40
  163. package/src/lib/graph/resolver.ts +146 -116
  164. package/src/lib/index.ts +11 -4
  165. package/src/lib/redis.ts +44 -0
  166. package/src/lib/routes/chat.ts +91 -62
  167. package/src/lib/routes/files.ts +105 -83
  168. package/src/lib/routes/owned-thread.ts +17 -0
  169. package/src/lib/routes/threads.ts +14 -30
  170. package/src/lib/routes/ws.ts +9 -3
  171. package/src/lib/types.ts +37 -36
  172. package/src/lib/ws/connections.ts +9 -1
  173. package/tsconfig.json +48 -0
  174. package/dist/src/lib/adapters/database.d.ts +0 -45
  175. package/dist/src/lib/adapters/mssql.d.ts +0 -3
  176. package/dist/src/lib/ai/active-streams.d.ts +0 -14
  177. package/dist/src/lib/ai/context/index.d.ts +0 -16
  178. package/dist/src/lib/ai/tools/capture-files.tool.d.ts +0 -6
  179. package/dist/src/lib/cli/extract-endpoints.d.ts +0 -6
  180. package/dist/src/lib/graph/expand-domains.d.ts +0 -2
  181. package/dist/src/lib/graph/generate-cypher.d.ts +0 -22
  182. package/dist/src/lib/graph/seed.d.ts +0 -19
  183. package/dist/src/lib/graph/validate.d.ts +0 -2
  184. package/dist/src/lib/routes/index.d.ts +0 -4
  185. package/dist/src/lib/ws/events.d.ts +0 -39
  186. package/dist/src/lib/ws/index.d.ts +0 -3
  187. package/dist/src/lib/ws/notify.d.ts +0 -2
  188. package/src/lib/adapters/database.ts +0 -48
  189. package/src/lib/adapters/mssql.ts +0 -231
  190. package/src/lib/ai/active-streams.ts +0 -123
  191. package/src/lib/ai/context/index.ts +0 -80
  192. package/src/lib/ai/tools/capture-files.tool.ts +0 -20
  193. package/src/lib/cli/extract-endpoints.ts +0 -550
  194. package/src/lib/graph/expand-domains.ts +0 -276
  195. package/src/lib/graph/generate-cypher.ts +0 -192
  196. package/src/lib/graph/seed.ts +0 -162
  197. package/src/lib/graph/validate.ts +0 -78
  198. package/src/lib/routes/index.ts +0 -4
  199. package/src/lib/ws/events.ts +0 -39
  200. package/src/lib/ws/index.ts +0 -11
  201. package/src/lib/ws/notify.ts +0 -9
  202. package/src/sample/db/client.ts +0 -9
  203. package/src/sample/db/migrations/20260411023125_rich_purple_man/migration.sql +0 -5
  204. package/src/sample/db/migrations/20260411023125_rich_purple_man/snapshot.json +0 -50
  205. package/src/sample/db/schema.ts +0 -10
  206. package/src/sample/domains/account/concepts/session.concept.ts +0 -17
  207. package/src/sample/domains/account/endpoints/listCurrentSessions.endpoint.ts +0 -31
  208. package/src/sample/domains/account/endpoints/revokeAllOtherSessions.endpoint.ts +0 -22
  209. package/src/sample/domains/account/endpoints/revokeCurrentSession.endpoint.ts +0 -33
  210. package/src/sample/domains/account/index.ts +0 -18
  211. package/src/sample/domains/appraisals/concepts/appraisalCycle.concept.ts +0 -15
  212. package/src/sample/domains/appraisals/concepts/appraisalRecord.concept.ts +0 -20
  213. package/src/sample/domains/appraisals/concepts/appraisalRecordCompetency.concept.ts +0 -10
  214. package/src/sample/domains/appraisals/concepts/appraisalRecordFunctionalRequirement.concept.ts +0 -10
  215. package/src/sample/domains/appraisals/concepts/appraisalRecordGoal.concept.ts +0 -17
  216. package/src/sample/domains/appraisals/endpoints/getAppraisalRecordById.endpoint.ts +0 -321
  217. package/src/sample/domains/appraisals/endpoints/getAppraisalRecordCompetencies.endpoint.ts +0 -120
  218. package/src/sample/domains/appraisals/endpoints/getAppraisalRecordFunctionalRequirements.endpoint.ts +0 -126
  219. package/src/sample/domains/appraisals/endpoints/getAppraisalRecordGoals.endpoint.ts +0 -104
  220. package/src/sample/domains/appraisals/endpoints/getAppraisalRecordScore.endpoint.ts +0 -58
  221. package/src/sample/domains/appraisals/endpoints/listAppraisalCyclesSimple.endpoint.ts +0 -52
  222. package/src/sample/domains/appraisals/endpoints/listAppraisalRecords.endpoint.ts +0 -245
  223. package/src/sample/domains/appraisals/endpoints/listAppraisalTemplatesSimple.endpoint.ts +0 -52
  224. package/src/sample/domains/appraisals/index.ts +0 -40
  225. package/src/sample/domains/appraisals/rules/appraisalRecordScoping.rule.ts +0 -7
  226. package/src/sample/domains/attendance/concepts/attendancePermission.concept.ts +0 -17
  227. package/src/sample/domains/attendance/concepts/attendanceTransaction.concept.ts +0 -17
  228. package/src/sample/domains/attendance/concepts/publicHoliday.concept.ts +0 -10
  229. package/src/sample/domains/attendance/concepts/punch.concept.ts +0 -19
  230. package/src/sample/domains/attendance/endpoints/getAttendanceTransactionById.endpoint.ts +0 -444
  231. package/src/sample/domains/attendance/endpoints/getCurrentAttendanceProfile.endpoint.ts +0 -886
  232. package/src/sample/domains/attendance/endpoints/getCurrentAttendanceStatistics.endpoint.ts +0 -49
  233. package/src/sample/domains/attendance/endpoints/listAttendancePermissions.endpoint.ts +0 -176
  234. package/src/sample/domains/attendance/endpoints/listAttendanceTransactionStates.endpoint.ts +0 -26
  235. package/src/sample/domains/attendance/endpoints/listAttendanceTransactions.endpoint.ts +0 -373
  236. package/src/sample/domains/attendance/endpoints/listPublicHolidaysSimple.endpoint.ts +0 -52
  237. package/src/sample/domains/attendance/endpoints/listPunchTypes.endpoint.ts +0 -25
  238. package/src/sample/domains/attendance/endpoints/listPunches.endpoint.ts +0 -178
  239. package/src/sample/domains/attendance/index.ts +0 -41
  240. package/src/sample/domains/attendance/services/attendancePermissions.service.ts +0 -15
  241. package/src/sample/domains/employees/concepts/employee.concept.ts +0 -20
  242. package/src/sample/domains/employees/concepts/employeeBankAccount.concept.ts +0 -19
  243. package/src/sample/domains/employees/concepts/employeeChild.concept.ts +0 -19
  244. package/src/sample/domains/employees/concepts/employeeDocument.concept.ts +0 -21
  245. package/src/sample/domains/employees/concepts/employeeEvent.concept.ts +0 -21
  246. package/src/sample/domains/employees/concepts/employeeExperience.concept.ts +0 -18
  247. package/src/sample/domains/employees/concepts/employeeJobLevelChange.concept.ts +0 -21
  248. package/src/sample/domains/employees/concepts/employeeMedal.concept.ts +0 -20
  249. package/src/sample/domains/employees/concepts/employeeQualification.concept.ts +0 -20
  250. package/src/sample/domains/employees/concepts/employeeSpouse.concept.ts +0 -21
  251. package/src/sample/domains/employees/concepts/employeeViolation.concept.ts +0 -19
  252. package/src/sample/domains/employees/endpoints/getCurrentEmployee.endpoint.ts +0 -1651
  253. package/src/sample/domains/employees/endpoints/getCurrentIdentity.endpoint.ts +0 -197
  254. package/src/sample/domains/employees/endpoints/getCurrentManagers.endpoint.ts +0 -142
  255. package/src/sample/domains/employees/endpoints/getEmployeeById.endpoint.ts +0 -1659
  256. package/src/sample/domains/employees/endpoints/getEmployeeStatistics.endpoint.ts +0 -43
  257. package/src/sample/domains/employees/endpoints/listBankAccounts.endpoint.ts +0 -223
  258. package/src/sample/domains/employees/endpoints/listChildren.endpoint.ts +0 -211
  259. package/src/sample/domains/employees/endpoints/listDocuments.endpoint.ts +0 -222
  260. package/src/sample/domains/employees/endpoints/listEmployeesSimple.endpoint.ts +0 -156
  261. package/src/sample/domains/employees/endpoints/listEvents.endpoint.ts +0 -120
  262. package/src/sample/domains/employees/endpoints/listExperiences.endpoint.ts +0 -188
  263. package/src/sample/domains/employees/endpoints/listJobLevelChanges.endpoint.ts +0 -240
  264. package/src/sample/domains/employees/endpoints/listMedals.endpoint.ts +0 -266
  265. package/src/sample/domains/employees/endpoints/listQualifications.endpoint.ts +0 -265
  266. package/src/sample/domains/employees/endpoints/listSpouses.endpoint.ts +0 -278
  267. package/src/sample/domains/employees/endpoints/listViolations.endpoint.ts +0 -245
  268. package/src/sample/domains/employees/index.ts +0 -75
  269. package/src/sample/domains/employees/services/employees.service.ts +0 -181
  270. package/src/sample/domains/index.ts +0 -10
  271. package/src/sample/domains/leaves/concepts/leave.concept.ts +0 -21
  272. package/src/sample/domains/leaves/concepts/leaveBalance.concept.ts +0 -17
  273. package/src/sample/domains/leaves/concepts/leaveBalanceTransaction.concept.ts +0 -16
  274. package/src/sample/domains/leaves/concepts/leaveType.concept.ts +0 -13
  275. package/src/sample/domains/leaves/concepts/leaveTypes.concept.ts +0 -205
  276. package/src/sample/domains/leaves/endpoints/getBalance.endpoint.ts +0 -53
  277. package/src/sample/domains/leaves/endpoints/getLeaveById.endpoint.ts +0 -53
  278. package/src/sample/domains/leaves/endpoints/listBalanceTransactions.endpoint.ts +0 -196
  279. package/src/sample/domains/leaves/endpoints/listBalanceTypes.endpoint.ts +0 -26
  280. package/src/sample/domains/leaves/endpoints/listBalances.endpoint.ts +0 -201
  281. package/src/sample/domains/leaves/endpoints/listLeaveTypes.endpoint.ts +0 -28
  282. package/src/sample/domains/leaves/endpoints/listLeaves.endpoint.ts +0 -234
  283. package/src/sample/domains/leaves/index.ts +0 -38
  284. package/src/sample/domains/leaves/services/leaveRequests.service.ts +0 -232
  285. package/src/sample/domains/notifications/concepts/notification.concept.ts +0 -19
  286. package/src/sample/domains/notifications/endpoints/countMyNotifications.endpoint.ts +0 -21
  287. package/src/sample/domains/notifications/endpoints/getMyNotification.endpoint.ts +0 -57
  288. package/src/sample/domains/notifications/endpoints/listMyNotifications.endpoint.ts +0 -59
  289. package/src/sample/domains/notifications/endpoints/markMyNotificationAsRead.endpoint.ts +0 -32
  290. package/src/sample/domains/notifications/index.ts +0 -20
  291. package/src/sample/domains/payroll/concepts/payslip.concept.ts +0 -18
  292. package/src/sample/domains/payroll/concepts/salaryCertificate.concept.ts +0 -17
  293. package/src/sample/domains/payroll/concepts/salaryCertificateRequestingEntity.concept.ts +0 -8
  294. package/src/sample/domains/payroll/endpoints/getPayslipById.endpoint.ts +0 -238
  295. package/src/sample/domains/payroll/endpoints/listPayslips.endpoint.ts +0 -216
  296. package/src/sample/domains/payroll/endpoints/listSalaryCertificateLanguages.endpoint.ts +0 -25
  297. package/src/sample/domains/payroll/endpoints/listSalaryCertificateRequestingEntities.endpoint.ts +0 -62
  298. package/src/sample/domains/payroll/endpoints/listSalaryCertificateTypes.endpoint.ts +0 -24
  299. package/src/sample/domains/payroll/endpoints/listSalaryCertificates.endpoint.ts +0 -122
  300. package/src/sample/domains/payroll/endpoints/previewSalaryCertificate.endpoint.ts +0 -45
  301. package/src/sample/domains/payroll/index.ts +0 -32
  302. package/src/sample/domains/payroll/rules/payrollEmployeeContext.rule.ts +0 -7
  303. package/src/sample/domains/payroll/services/salaryCertificates.service.ts +0 -15
  304. package/src/sample/domains/servicing/concepts/service.concept.ts +0 -6
  305. package/src/sample/domains/servicing/concepts/serviceRequest.concept.ts +0 -12
  306. package/src/sample/domains/servicing/concepts/serviceRequestApproval.concept.ts +0 -9
  307. package/src/sample/domains/servicing/endpoints/cancelServiceRequest.endpoint.ts +0 -21
  308. package/src/sample/domains/servicing/endpoints/createServiceRequest.endpoint.ts +0 -511
  309. package/src/sample/domains/servicing/endpoints/getServiceRequest.endpoint.ts +0 -352
  310. package/src/sample/domains/servicing/endpoints/getServiceRequestFormItems.endpoint.ts +0 -219
  311. package/src/sample/domains/servicing/endpoints/getServiceRequestTransactionFormItems.endpoint.ts +0 -216
  312. package/src/sample/domains/servicing/endpoints/getServiceStates.endpoint.ts +0 -47
  313. package/src/sample/domains/servicing/endpoints/invokeServiceRequestAction.endpoint.ts +0 -139
  314. package/src/sample/domains/servicing/endpoints/listServiceRequests.endpoint.ts +0 -292
  315. package/src/sample/domains/servicing/endpoints/listServices.endpoint.ts +0 -108
  316. package/src/sample/domains/servicing/endpoints/updateServiceRequest.endpoint.ts +0 -355
  317. package/src/sample/domains/servicing/index.ts +0 -44
  318. package/src/sample/domains/servicing/rules/checkValidActions.rule.ts +0 -7
  319. package/src/sample/domains/servicing/rules/createServiceRequest.rule.ts +0 -7
  320. package/src/sample/domains/servicing/rules/filterServiceRequestsByState.rule.ts +0 -7
  321. package/src/sample/domains/servicing/rules/passingOptionFields.rule.ts +0 -7
  322. package/src/sample/domains/shared/rules/pagination.rule.ts +0 -7
  323. package/src/sample/domains/suggestions/concepts/suggestion.concept.ts +0 -19
  324. package/src/sample/domains/suggestions/concepts/suggestionCategory.concept.ts +0 -7
  325. package/src/sample/domains/suggestions/concepts/suggestionImpactLevel.concept.ts +0 -7
  326. package/src/sample/domains/suggestions/endpoints/createSuggestion.endpoint.ts +0 -705
  327. package/src/sample/domains/suggestions/endpoints/deleteSuggestion.endpoint.ts +0 -32
  328. package/src/sample/domains/suggestions/endpoints/getSuggestionById.endpoint.ts +0 -635
  329. package/src/sample/domains/suggestions/endpoints/listSuggestionCategories.endpoint.ts +0 -62
  330. package/src/sample/domains/suggestions/endpoints/listSuggestionImpactLevels.endpoint.ts +0 -62
  331. package/src/sample/domains/suggestions/endpoints/listSuggestionStates.endpoint.ts +0 -24
  332. package/src/sample/domains/suggestions/endpoints/listSuggestions.endpoint.ts +0 -132
  333. package/src/sample/domains/suggestions/endpoints/updateSuggestion.endpoint.ts +0 -690
  334. package/src/sample/domains/suggestions/endpoints/updateSuggestionState.endpoint.ts +0 -39
  335. package/src/sample/domains/suggestions/index.ts +0 -34
  336. package/src/sample/domains/suggestions/rules/suggestionScope.rule.ts +0 -7
  337. package/src/sample/domains/surveys/concepts/survey.concept.ts +0 -10
  338. package/src/sample/domains/surveys/concepts/surveyResponse.concept.ts +0 -14
  339. package/src/sample/domains/surveys/endpoints/getSurveyResponseById.endpoint.ts +0 -131
  340. package/src/sample/domains/surveys/endpoints/getTargetedSurvey.endpoint.ts +0 -129
  341. package/src/sample/domains/surveys/endpoints/listTargetedSurveys.endpoint.ts +0 -160
  342. package/src/sample/domains/surveys/endpoints/respondToSurvey.endpoint.ts +0 -144
  343. package/src/sample/domains/surveys/index.ts +0 -21
  344. package/src/sample/drizzle.config.ts +0 -11
  345. package/src/sample/index.bak.ts +0 -341
  346. package/src/sample/index.ts +0 -318
  347. package/src/sample/official-statements/defaults.ts +0 -57
  348. package/src/sample/official-statements/routes.ts +0 -137
  349. package/src/sample/official-statements/service.ts +0 -148
  350. package/src/sample/official-statements/types.ts +0 -23
  351. /package/src/lib/db/migrations/{20260326231647_nice_speedball → mssql/20260326231647_nice_speedball}/migration.sql +0 -0
  352. /package/src/lib/db/migrations/{20260326231647_nice_speedball → mssql/20260326231647_nice_speedball}/snapshot.json +0 -0
@@ -0,0 +1,183 @@
1
+ import type { ControlCenterConfig } from "../config";
2
+ import type { ExecuteRequest, ResolveRequest, SearchRequest } from "./types";
3
+ type ControlCenterFetch = (input: string | URL | Request, init?: RequestInit) => Promise<Response>;
4
+ export type ExecuteOptions = {
5
+ readOnly: boolean;
6
+ endUserToken?: string;
7
+ threadId: string;
8
+ turnKey: string;
9
+ stepIndex: number;
10
+ callIndex: number;
11
+ timeoutMs?: number;
12
+ abortSignal?: AbortSignal;
13
+ };
14
+ export declare class ControlCenterClient {
15
+ readonly url: string;
16
+ readonly cacheKey: string;
17
+ private readonly apiKey;
18
+ private readonly fetcher;
19
+ constructor(config: ControlCenterConfig, fetcher?: ControlCenterFetch);
20
+ getConfig(agentId: string, etag?: string, abortSignal?: AbortSignal): Promise<{
21
+ readonly status: "not-modified";
22
+ readonly config?: undefined;
23
+ readonly etag?: undefined;
24
+ } | {
25
+ readonly status: "not-found";
26
+ readonly config?: undefined;
27
+ readonly etag?: undefined;
28
+ } | {
29
+ readonly status: "modified";
30
+ readonly config: {
31
+ agentId: string;
32
+ systemPrompt: string;
33
+ promptVariables: ("userName" | "channel" | "locale")[];
34
+ catalogBlurb: string;
35
+ defaultLocale: "en" | "ar";
36
+ metaTools: {
37
+ searchKnowledge: boolean;
38
+ searchTools: boolean;
39
+ searchServices: boolean;
40
+ };
41
+ limits: {
42
+ resolveTokenBudget: number;
43
+ executeTimeoutMs: number;
44
+ maxResponseBytes: number;
45
+ };
46
+ catalogVersion: string;
47
+ publishedAt: string;
48
+ };
49
+ readonly etag: string | null;
50
+ } | null>;
51
+ resolve(agentId: string, request: ResolveRequest, abortSignal?: AbortSignal): Promise<{
52
+ resolveId: string;
53
+ catalogVersion: string;
54
+ locale: "en" | "ar";
55
+ knowledge: {
56
+ chunkId: string;
57
+ text: string;
58
+ score: number;
59
+ citation: {
60
+ documentId: string;
61
+ documentTitle: string;
62
+ page: number | null;
63
+ section: string | null;
64
+ uri: string | null;
65
+ service: string | null;
66
+ };
67
+ }[];
68
+ tools: {
69
+ toolId: string;
70
+ name: string;
71
+ version: number;
72
+ readOnly: boolean;
73
+ tags: string[];
74
+ signature: string;
75
+ score: number | null;
76
+ pinned: boolean;
77
+ }[];
78
+ services: {
79
+ serviceId: string;
80
+ key: string;
81
+ name: string;
82
+ card: string;
83
+ score: number;
84
+ }[];
85
+ sharedShapes: {
86
+ ref: string;
87
+ shape: string;
88
+ }[];
89
+ budget: {
90
+ requested: number;
91
+ used: number;
92
+ truncated: boolean;
93
+ };
94
+ } | null>;
95
+ searchTools(agentId: string, request: SearchRequest, abortSignal?: AbortSignal): Promise<{
96
+ catalogVersion: string;
97
+ tools: {
98
+ toolId: string;
99
+ name: string;
100
+ version: number;
101
+ readOnly: boolean;
102
+ tags: string[];
103
+ signature: string;
104
+ score: number | null;
105
+ pinned: boolean;
106
+ }[];
107
+ sharedShapes: {
108
+ ref: string;
109
+ shape: string;
110
+ }[];
111
+ } | null>;
112
+ searchServices(agentId: string, request: SearchRequest, abortSignal?: AbortSignal): Promise<{
113
+ catalogVersion: string;
114
+ services: {
115
+ serviceId: string;
116
+ key: string;
117
+ name: string;
118
+ card: string;
119
+ score: number;
120
+ }[];
121
+ tools: {
122
+ toolId: string;
123
+ name: string;
124
+ version: number;
125
+ readOnly: boolean;
126
+ tags: string[];
127
+ signature: string;
128
+ score: number | null;
129
+ pinned: boolean;
130
+ }[];
131
+ sharedShapes: {
132
+ ref: string;
133
+ shape: string;
134
+ }[];
135
+ } | null>;
136
+ searchKnowledge(agentId: string, request: SearchRequest, abortSignal?: AbortSignal): Promise<{
137
+ catalogVersion: string;
138
+ knowledge: {
139
+ chunkId: string;
140
+ text: string;
141
+ score: number;
142
+ citation: {
143
+ documentId: string;
144
+ documentTitle: string;
145
+ page: number | null;
146
+ section: string | null;
147
+ uri: string | null;
148
+ service: string | null;
149
+ };
150
+ }[];
151
+ } | null>;
152
+ execute(agentId: string, toolId: string, request: ExecuteRequest, options: ExecuteOptions): Promise<{
153
+ error: {
154
+ kind: "timeout" | "upstream_4xx" | "upstream_5xx" | "schema_mismatch" | "rate_limited" | "not_found" | "unauthorized" | "invalid_request" | "egress_blocked" | "internal";
155
+ detail: string;
156
+ retryable: boolean;
157
+ retryAfterSeconds?: number | undefined;
158
+ upstreamStatus?: number | undefined;
159
+ };
160
+ } | {
161
+ toolId: string;
162
+ name: string;
163
+ version: number;
164
+ output: unknown;
165
+ meta: {
166
+ upstreamStatus: number;
167
+ durationMs: number;
168
+ replayed: boolean;
169
+ truncated: boolean;
170
+ truncatedPaths: string[];
171
+ drift: {
172
+ path: string;
173
+ kind: "missing" | "unexpected" | "type_mismatch";
174
+ }[];
175
+ };
176
+ } | null>;
177
+ private agentPath;
178
+ private post;
179
+ private postResponse;
180
+ private request;
181
+ private parse;
182
+ }
183
+ export {};
@@ -0,0 +1,20 @@
1
+ import type { ControlCenterClient } from "./client";
2
+ export declare function getControlCenterConfig(cc: ControlCenterClient, agentId: string, abortSignal?: AbortSignal): Promise<{
3
+ agentId: string;
4
+ systemPrompt: string;
5
+ promptVariables: ("userName" | "channel" | "locale")[];
6
+ catalogBlurb: string;
7
+ defaultLocale: "en" | "ar";
8
+ metaTools: {
9
+ searchKnowledge: boolean;
10
+ searchTools: boolean;
11
+ searchServices: boolean;
12
+ };
13
+ limits: {
14
+ resolveTokenBudget: number;
15
+ executeTimeoutMs: number;
16
+ maxResponseBytes: number;
17
+ };
18
+ catalogVersion: string;
19
+ publishedAt: string;
20
+ } | null>;
@@ -0,0 +1,23 @@
1
+ import type { ResolveResponse, RuntimeAgentConfig } from "./types";
2
+ type SharedShape = ResolveResponse["sharedShapes"][number];
3
+ type ToolSignature = ResolveResponse["tools"][number];
4
+ type ServiceCard = ResolveResponse["services"][number];
5
+ type KnowledgeChunk = ResolveResponse["knowledge"][number];
6
+ /** Values for the published prompt's `{{variable}}` placeholders, read from session/request context. */
7
+ export declare function buildPromptVariables(promptVariables: RuntimeAgentConfig["promptVariables"], sources: Record<string, unknown>): Record<string, string>;
8
+ export declare function formatSharedShapes(shapes: SharedShape[]): string;
9
+ export declare function formatToolSignatures(tools: ToolSignature[]): string;
10
+ export declare function formatServiceCards(services: ServiceCard[]): string;
11
+ export declare function formatKnowledgeChunks(chunks: KnowledgeChunk[]): string;
12
+ export type CcPromptInput = {
13
+ config: RuntimeAgentConfig;
14
+ resolved: ResolveResponse | null;
15
+ variables: Record<string, string>;
16
+ };
17
+ /**
18
+ * Dumb concatenator by contract: `signature`, `card`, and `shape` arrive
19
+ * pre-rendered from Control Center and are injected verbatim — never
20
+ * re-rendered from structured fields.
21
+ */
22
+ export declare function buildCcSection(cc: CcPromptInput): string;
23
+ export {};
@@ -0,0 +1,34 @@
1
+ import type { ControlCenterClient } from "./client";
2
+ import type { RuntimeAgentConfig } from "./types";
3
+ export type CcToolBinding = {
4
+ toolId: string;
5
+ readOnly: boolean;
6
+ };
7
+ /**
8
+ * Turn-scoped and mutable: seeded from /resolve, extended by searchTools
9
+ * mid-turn so a tool discovered at step 3 is callable at step 4.
10
+ */
11
+ export type CcToolRegistry = Map<string, CcToolBinding>;
12
+ export declare function registerCcTools(registry: CcToolRegistry, tools: {
13
+ name: string;
14
+ toolId: string;
15
+ readOnly: boolean;
16
+ }[]): void;
17
+ export declare function recordRecentCcTool(threadId: string, name: string): void;
18
+ export declare function getRecentCcTools(threadId: string): string[];
19
+ /** Everything a CC-aware tool needs for one turn. */
20
+ export type CcRuntime = {
21
+ client: ControlCenterClient;
22
+ agentId: string;
23
+ config: RuntimeAgentConfig;
24
+ registry: CcToolRegistry;
25
+ threadId: string;
26
+ turnKey: string;
27
+ userId: string;
28
+ locale: RuntimeAgentConfig["defaultLocale"];
29
+ endUserToken: string;
30
+ abortSignal?: AbortSignal;
31
+ getStepIndex: () => number;
32
+ nextCallIndex: (stepIndex: number) => number;
33
+ onToolProgress?: (toolName: string, toolCallId: string, status: "started" | "finished") => void;
34
+ };
@@ -0,0 +1,27 @@
1
+ import z from "zod";
2
+ export { AGENT_SLUG_PATTERN, executeResponseSchema, resolveResponseSchema, runtimeAgentConfigSchema, searchKnowledgeResponseSchema, searchServicesResponseSchema, searchToolsResponseSchema, type ExecuteRequest, type ResolveRequest, type ResolveResponse, type RuntimeAgentConfig, type SearchRequest, } from "../../../contracts/runtime";
3
+ /**
4
+ * The contract's error envelope, hardened for this consumer: a newer runtime may
5
+ * answer with an error kind this build has never heard of, which must degrade to a
6
+ * generic non-retryable `internal` rather than fail the parse.
7
+ */
8
+ export declare const runtimeErrorSchema: z.ZodPreprocess<z.ZodObject<{
9
+ error: z.ZodObject<{
10
+ kind: z.ZodEnum<{
11
+ timeout: "timeout";
12
+ upstream_4xx: "upstream_4xx";
13
+ upstream_5xx: "upstream_5xx";
14
+ schema_mismatch: "schema_mismatch";
15
+ rate_limited: "rate_limited";
16
+ not_found: "not_found";
17
+ unauthorized: "unauthorized";
18
+ invalid_request: "invalid_request";
19
+ egress_blocked: "egress_blocked";
20
+ internal: "internal";
21
+ }>;
22
+ detail: z.ZodString;
23
+ retryable: z.ZodBoolean;
24
+ retryAfterSeconds: z.ZodOptional<z.ZodNumber>;
25
+ upstreamStatus: z.ZodOptional<z.ZodNumber>;
26
+ }, z.core.$strip>;
27
+ }, z.core.$strip>>;
@@ -1,10 +1,12 @@
1
- import type { ToolSet, UIMessage } from "ai";
2
- import type { DatabaseAdapter } from "./adapters/database";
3
- import type { StorageAdapter } from "./adapters/storage";
4
- import type { DomainDef } from "./graph/types.ts";
5
- import type { RequestInterceptorOptions } from "./ai/interceptors/request-interceptor.ts";
6
- import type { ContextConfig } from "./ai/context/types.ts";
7
- import type { Thread } from "./types.ts";
1
+ import type { AnyServerTool } from "@tanstack/ai";
2
+ import type { DatabaseAdapter } from "./adapters/database/index";
3
+ import type { StorageAdapter } from "./adapters/storage/index";
4
+ import type { DomainDef } from "../../contracts/graph";
5
+ import type { RequestInterceptorOptions } from "./ai/interceptors/request-interceptor";
6
+ import type { ContextConfig } from "./ai/context/types";
7
+ import type { ChatMessage, Thread } from "./types";
8
+ /** An agent's tools, as `chat()` takes them. */
9
+ export type ToolSet = ReadonlyArray<AnyServerTool>;
8
10
  type ModelConfig = {
9
11
  baseURL: string;
10
12
  apiKey: string;
@@ -26,6 +28,10 @@ type RerankerConfig = {
26
28
  url: string;
27
29
  apiKey: string;
28
30
  };
31
+ export type ControlCenterConfig = {
32
+ url: string;
33
+ apiKey: string;
34
+ };
29
35
  export type KnowledgeConfig = {
30
36
  swagger?: {
31
37
  url: string;
@@ -50,9 +56,19 @@ export type ToolContext<TSession extends Record<string, unknown> = Record<string
50
56
  };
51
57
  export type ToolSetFactory<TSession extends Record<string, unknown> = Record<string, unknown>, TRequestContext extends Record<string, unknown> = Record<string, unknown>> = (context: ToolContext<TSession, TRequestContext>) => ToolSet;
52
58
  export type DatabaseConfig = {
53
- type: "mssql";
59
+ type: "mssql" | "postgres";
54
60
  connectionString: string;
55
61
  };
62
+ /**
63
+ * Optional. With Redis, live runs survive a producer restart and reach every
64
+ * instance: the chunk log, the thread→run claims, and abort fan-out all move
65
+ * there. Without it, an in-memory fallback covers a single process.
66
+ */
67
+ export type RedisConfig = {
68
+ url: string;
69
+ /** How long a finished run's stream log stays replayable. Defaults to 24 h. */
70
+ streamTtlSeconds?: number;
71
+ };
56
72
  export type StorageConfig = {
57
73
  endPoint: string;
58
74
  port: number;
@@ -61,18 +77,34 @@ export type StorageConfig = {
61
77
  secretKey: string;
62
78
  bucketName?: string;
63
79
  };
64
- export type CortexAgentDefinition<TSession extends Record<string, unknown> = Record<string, unknown>, TRequestContext extends Record<string, unknown> = Record<string, unknown>> = {
65
- systemPrompt: string | ((context: PromptContext<TSession, TRequestContext>) => string | Promise<string>);
80
+ type BackendFetchConfig = {
81
+ baseUrl: string;
82
+ apiKey: string;
83
+ headers?: Record<string, string>;
84
+ transformRequestBody?: (body: Record<string, unknown>, context: {
85
+ token: string;
86
+ }) => Promise<Record<string, unknown>>;
87
+ interceptor?: RequestInterceptorOptions;
88
+ };
89
+ /** Model and knowledge-graph providers. Declared once at server level; an agent may override any of them. */
90
+ type ProviderConfig = {
91
+ model: ModelConfig;
92
+ fastModel?: ModelConfig;
93
+ vision?: ModelConfig;
94
+ embedding?: EmbeddingConfig;
95
+ neo4j?: Neo4jConfig;
96
+ reranker?: RerankerConfig;
97
+ };
98
+ /**
99
+ * What an agent *does*, independent of where its providers came from. Shared
100
+ * verbatim by the authored definition and its resolved form — the two differ
101
+ * only in how providers and opt-outs are expressed, so everything else lives
102
+ * here and cannot drift between them.
103
+ */
104
+ type AgentBehavior<TSession extends Record<string, unknown>, TRequestContext extends Record<string, unknown>> = {
105
+ systemPrompt?: string | ((context: PromptContext<TSession, TRequestContext>) => string | Promise<string>);
66
106
  tools?: ToolSet | ToolSetFactory<TSession, TRequestContext>;
67
- backendFetch?: {
68
- baseUrl: string;
69
- apiKey: string;
70
- headers?: Record<string, string>;
71
- transformRequestBody?: (body: Record<string, unknown>, context: {
72
- token: string;
73
- }) => Promise<Record<string, unknown>>;
74
- interceptor?: RequestInterceptorOptions;
75
- };
107
+ backendFetch?: BackendFetchConfig;
76
108
  loadSessionData?: (token: string) => Promise<TSession>;
77
109
  resolveRequestContext?: (request: Request) => TRequestContext | Promise<TRequestContext>;
78
110
  onToolCall?: (toolCall: {
@@ -81,68 +113,53 @@ export type CortexAgentDefinition<TSession extends Record<string, unknown> = Rec
81
113
  args: Record<string, unknown>;
82
114
  }) => void;
83
115
  onStreamFinish?: (result: {
84
- messages: UIMessage[];
116
+ messages: ChatMessage[];
85
117
  isAborted: boolean;
86
118
  }) => void;
87
- model?: ModelConfig;
88
- fastModel?: ModelConfig;
89
- embedding?: EmbeddingConfig;
90
- neo4j?: Neo4jConfig;
91
- reranker?: RerankerConfig;
92
- context?: Partial<ContextConfig>;
119
+ };
120
+ /**
121
+ * An agent as authored. Providers are optional because an unset one inherits
122
+ * from server level; `null` on knowledge means "opt out entirely" rather than
123
+ * "inherit". The Control Center is server-level only: which agents it backs is
124
+ * decided by publishing them there, not per entry here.
125
+ */
126
+ export type CortexAgentDefinition<TSession extends Record<string, unknown> = Record<string, unknown>, TRequestContext extends Record<string, unknown> = Record<string, unknown>> = AgentBehavior<TSession, TRequestContext> & Partial<ProviderConfig> & {
93
127
  knowledge?: KnowledgeConfig | null;
128
+ context?: Partial<ContextConfig>;
94
129
  };
95
- export type ResolvedCortexAgentConfig = {
130
+ /**
131
+ * An agent after the factory has merged it with server-level config. Every
132
+ * inherit-or-opt-out decision is already resolved, so nothing here is nullable
133
+ * and `model`/`context` are guaranteed present.
134
+ */
135
+ export type ResolvedCortexAgentConfig = AgentBehavior<Record<string, unknown>, Record<string, unknown>> & ProviderConfig & {
136
+ agentId: string;
96
137
  db: DatabaseAdapter;
97
- storage: StorageAdapter;
98
- model: ModelConfig;
99
- fastModel?: ModelConfig;
100
- embedding: EmbeddingConfig;
101
- neo4j?: Neo4jConfig;
102
- reranker?: RerankerConfig;
103
- systemPrompt: string | ((context: PromptContext) => string | Promise<string>);
104
- tools?: ToolSet | ToolSetFactory;
105
- backendFetch?: {
106
- baseUrl: string;
107
- apiKey: string;
108
- headers?: Record<string, string>;
109
- transformRequestBody?: (body: Record<string, unknown>, context: {
110
- token: string;
111
- }) => Promise<Record<string, unknown>>;
112
- interceptor?: RequestInterceptorOptions;
113
- };
114
- loadSessionData?: (token: string) => Promise<Record<string, unknown>>;
115
- resolveRequestContext?: (request: Request) => Record<string, unknown> | Promise<Record<string, unknown>>;
116
- onToolCall?: (toolCall: {
117
- toolName: string;
118
- toolCallId: string;
119
- args: Record<string, unknown>;
120
- }) => void;
121
- onStreamFinish?: (result: {
122
- messages: UIMessage[];
123
- isAborted: boolean;
124
- }) => void;
125
- context: ContextConfig;
138
+ storage?: StorageAdapter;
139
+ controlCenter?: ControlCenterConfig;
126
140
  knowledge?: KnowledgeConfig;
141
+ context: ContextConfig;
127
142
  };
128
- export type CortexConfig = {
143
+ export type CortexConfig = ProviderConfig & {
129
144
  port?: number;
130
145
  database: DatabaseConfig;
131
- storage: StorageConfig;
146
+ storage?: StorageConfig;
147
+ redis?: RedisConfig;
132
148
  auth?: {
133
149
  jwksUri: string;
134
150
  issuer: string;
135
151
  tokenExtractor?: (req: Request) => string | null;
136
152
  cookieName?: string;
137
153
  };
138
- model: ModelConfig;
139
- fastModel?: ModelConfig;
140
- embedding: EmbeddingConfig;
141
- neo4j?: Neo4jConfig;
142
- reranker?: RerankerConfig;
154
+ controlCenter?: ControlCenterConfig;
143
155
  context?: Partial<ContextConfig>;
144
156
  knowledge?: KnowledgeConfig;
145
- agents: Record<string, CortexAgentDefinition>;
157
+ /**
158
+ * Locally-defined agents. With `controlCenter` set, agents published there
159
+ * are served automatically and need no entry here; an entry is only needed
160
+ * for local behavior (tools, backendFetch, provider overrides).
161
+ */
162
+ agents?: Record<string, CortexAgentDefinition>;
146
163
  };
147
164
  /**
148
165
  * Helper to define an agent with full type inference for `systemPrompt` context.
@@ -0,0 +1,2 @@
1
+ declare const _default: import("drizzle-kit").Config;
2
+ export default _default;
@@ -0,0 +1,2 @@
1
+ declare const _default: import("drizzle-kit").Config;
2
+ export default _default;
@@ -1 +1,7 @@
1
- export declare function runMigrations(connectionString: string): Promise<void>;
1
+ import type { DatabaseConfig } from "../config";
2
+ /**
3
+ * Each dialect keeps its own migration history — Postgres starts from a
4
+ * squashed initial migration rather than replaying MSSQL's. The driver imports
5
+ * are lazy so a server only loads the one it was configured for.
6
+ */
7
+ export declare function runMigrations(database: DatabaseConfig): Promise<void>;