@m6d/cortex-server 1.8.0 → 2.0.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (354) 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/rich-text.ts +207 -0
  10. package/contracts/runtime.ts +243 -0
  11. package/contracts/wire.ts +143 -0
  12. package/dist/contracts/graph/embed.d.ts +22 -0
  13. package/dist/{src/lib → contracts}/graph/helpers.d.ts +16 -14
  14. package/dist/{src/lib → contracts}/graph/neo4j.d.ts +5 -5
  15. package/dist/contracts/graph/schema.d.ts +62 -0
  16. package/dist/{src/lib → contracts}/graph/types.d.ts +1 -1
  17. package/dist/contracts/graph.d.ts +14 -0
  18. package/dist/contracts/rich-text.d.ts +32 -0
  19. package/dist/contracts/runtime.d.ts +310 -0
  20. package/dist/contracts/wire.d.ts +120 -0
  21. package/dist/src/lib/adapters/database/index.d.ts +61 -0
  22. package/dist/src/lib/adapters/database/message-content.d.ts +30 -0
  23. package/dist/src/lib/adapters/database/mssql/attachments.d.ts +100 -0
  24. package/dist/src/lib/adapters/database/mssql/client.d.ts +8 -0
  25. package/dist/src/lib/adapters/database/mssql/index.d.ts +194 -0
  26. package/dist/src/lib/adapters/database/mssql/llm-requests.d.ts +17 -0
  27. package/dist/src/lib/adapters/database/mssql/messages.d.ts +37 -0
  28. package/dist/src/lib/adapters/database/mssql/threads.d.ts +50 -0
  29. package/dist/src/lib/adapters/database/postgres/attachments.d.ts +113 -0
  30. package/dist/src/lib/adapters/database/postgres/client.d.ts +8 -0
  31. package/dist/src/lib/adapters/database/postgres/index.d.ts +207 -0
  32. package/dist/src/lib/adapters/database/postgres/llm-requests.d.ts +17 -0
  33. package/dist/src/lib/adapters/database/postgres/messages.d.ts +37 -0
  34. package/dist/src/lib/adapters/database/postgres/threads.d.ts +50 -0
  35. package/{src/lib/adapters/storage.ts → dist/src/lib/adapters/storage/index.d.ts} +1 -1
  36. package/dist/src/lib/adapters/{minio.d.ts → storage/minio.d.ts} +1 -1
  37. package/dist/src/lib/ai/active-runs.d.ts +63 -0
  38. package/dist/src/lib/ai/attachments.d.ts +30 -0
  39. package/dist/src/lib/ai/backend-url.d.ts +16 -0
  40. package/dist/src/lib/ai/cc-runtime.d.ts +61 -0
  41. package/dist/src/lib/ai/commit-gate.d.ts +21 -0
  42. package/dist/src/lib/ai/context/builder.d.ts +6 -7
  43. package/dist/src/lib/ai/context/compression-middleware.d.ts +15 -0
  44. package/dist/src/lib/ai/context/compressor.d.ts +2 -13
  45. package/dist/src/lib/ai/context/intra-turn-compressor.d.ts +9 -9
  46. package/dist/src/lib/ai/context/optimize-thread-context.d.ts +9 -0
  47. package/dist/src/lib/ai/context/summarizer.d.ts +3 -3
  48. package/dist/src/lib/ai/context/token-estimator.d.ts +5 -8
  49. package/dist/src/lib/ai/fetch.d.ts +1 -1
  50. package/dist/src/lib/ai/finish-turn.d.ts +23 -0
  51. package/dist/src/lib/ai/helpers.d.ts +37 -4
  52. package/dist/src/lib/ai/index.d.ts +6 -3
  53. package/dist/src/lib/ai/inspector.d.ts +41 -0
  54. package/dist/src/lib/ai/interceptors/request-interceptor.d.ts +6 -5
  55. package/dist/src/lib/ai/prompt.d.ts +5 -4
  56. package/dist/src/lib/ai/redis-runs.d.ts +41 -0
  57. package/dist/src/lib/ai/redis-stream-log.d.ts +39 -0
  58. package/dist/src/lib/ai/tools/execute-code.tool.d.ts +18 -4
  59. package/dist/src/lib/ai/tools/query-graph.tool.d.ts +13 -5
  60. package/dist/src/lib/ai/tools/read-attachment.tool.d.ts +21 -0
  61. package/dist/src/lib/ai/tools/search-common.d.ts +17 -0
  62. package/dist/src/lib/ai/tools/search-knowledge.tool.d.ts +15 -0
  63. package/dist/src/lib/ai/tools/search-services.tool.d.ts +12 -0
  64. package/dist/src/lib/ai/tools/search-tools.tool.d.ts +12 -0
  65. package/dist/src/lib/ai/turn-tools.d.ts +39 -0
  66. package/dist/src/lib/ai/vision/rasterize-pdf.d.ts +26 -0
  67. package/dist/src/lib/ai/vision/rasterize-pdf.worker.d.ts +1 -0
  68. package/dist/src/lib/ai/vision/vision-reader.d.ts +45 -0
  69. package/dist/src/lib/cc/client.d.ts +183 -0
  70. package/dist/src/lib/cc/config-cache.d.ts +20 -0
  71. package/dist/src/lib/cc/format.d.ts +23 -0
  72. package/dist/src/lib/cc/registry.d.ts +34 -0
  73. package/dist/src/lib/cc/types.d.ts +27 -0
  74. package/dist/src/lib/config.d.ts +81 -64
  75. package/dist/src/lib/db/drizzle.config.mssql.d.ts +2 -0
  76. package/dist/src/lib/db/drizzle.config.pg.d.ts +2 -0
  77. package/dist/src/lib/db/migrate.d.ts +7 -1
  78. package/dist/src/lib/db/{schema.d.ts → schema.mssql.d.ts} +138 -29
  79. package/dist/src/lib/db/schema.pg.d.ts +546 -0
  80. package/dist/src/lib/factory.d.ts +2 -12
  81. package/dist/src/lib/graph/index.d.ts +10 -11
  82. package/dist/src/lib/graph/resolver.d.ts +2 -3
  83. package/dist/src/lib/index.d.ts +3 -3
  84. package/dist/src/lib/redis.d.ts +19 -0
  85. package/dist/src/lib/routes/chat.d.ts +1 -1
  86. package/dist/src/lib/routes/files.d.ts +1 -1
  87. package/dist/src/lib/routes/owned-thread.d.ts +17 -0
  88. package/dist/src/lib/routes/threads.d.ts +1 -1
  89. package/dist/src/lib/routes/ws.d.ts +1 -1
  90. package/dist/src/lib/types.d.ts +20 -37
  91. package/dist/src/lib/ws/connections.d.ts +2 -1
  92. package/package.json +33 -18
  93. package/src/lib/adapters/database/index.ts +78 -0
  94. package/src/lib/adapters/database/message-content.ts +39 -0
  95. package/src/lib/adapters/database/mssql/attachments.ts +90 -0
  96. package/src/lib/adapters/database/mssql/client.ts +11 -0
  97. package/src/lib/adapters/database/mssql/index.ts +23 -0
  98. package/src/lib/adapters/database/mssql/llm-requests.ts +43 -0
  99. package/src/lib/adapters/database/mssql/messages.ts +92 -0
  100. package/src/lib/adapters/database/mssql/threads.ts +83 -0
  101. package/src/lib/adapters/database/postgres/attachments.ts +88 -0
  102. package/src/lib/adapters/database/postgres/client.ts +11 -0
  103. package/src/lib/adapters/database/postgres/index.ts +23 -0
  104. package/src/lib/adapters/database/postgres/llm-requests.ts +45 -0
  105. package/src/lib/adapters/database/postgres/messages.ts +92 -0
  106. package/src/lib/adapters/database/postgres/threads.ts +84 -0
  107. package/{dist/src/lib/adapters/storage.d.ts → src/lib/adapters/storage/index.ts} +1 -1
  108. package/src/lib/adapters/{minio.ts → storage/minio.ts} +5 -5
  109. package/src/lib/ai/active-runs.ts +157 -0
  110. package/src/lib/ai/attachments.ts +144 -0
  111. package/src/lib/ai/backend-url.ts +27 -0
  112. package/src/lib/ai/cc-runtime.ts +63 -0
  113. package/src/lib/ai/commit-gate.ts +116 -0
  114. package/src/lib/ai/context/builder.ts +12 -14
  115. package/src/lib/ai/context/compression-middleware.ts +44 -0
  116. package/src/lib/ai/context/compressor.ts +67 -59
  117. package/src/lib/ai/context/intra-turn-compressor.ts +121 -204
  118. package/src/lib/ai/context/optimize-thread-context.ts +50 -0
  119. package/src/lib/ai/context/summarizer.ts +28 -30
  120. package/src/lib/ai/context/token-estimator.ts +35 -30
  121. package/src/lib/ai/fetch.ts +10 -5
  122. package/src/lib/ai/finish-turn.ts +75 -0
  123. package/src/lib/ai/helpers.ts +83 -15
  124. package/src/lib/ai/index.ts +366 -329
  125. package/src/lib/ai/inspector.ts +112 -0
  126. package/src/lib/ai/interceptors/request-interceptor.ts +70 -42
  127. package/src/lib/ai/prompt.ts +126 -125
  128. package/src/lib/ai/redis-runs.ts +167 -0
  129. package/src/lib/ai/redis-stream-log.ts +219 -0
  130. package/src/lib/ai/tools/execute-code.tool.ts +178 -67
  131. package/src/lib/ai/tools/query-graph.tool.ts +7 -8
  132. package/src/lib/ai/tools/read-attachment.tool.ts +59 -0
  133. package/src/lib/ai/tools/search-common.ts +15 -0
  134. package/src/lib/ai/tools/search-knowledge.tool.ts +33 -0
  135. package/src/lib/ai/tools/search-services.tool.ts +31 -0
  136. package/src/lib/ai/tools/search-tools.tool.ts +29 -0
  137. package/src/lib/ai/turn-tools.ts +154 -0
  138. package/src/lib/ai/vision/rasterize-pdf.ts +69 -0
  139. package/src/lib/ai/vision/rasterize-pdf.worker.ts +81 -0
  140. package/src/lib/ai/vision/vision-reader.ts +130 -0
  141. package/src/lib/auth/middleware.ts +5 -3
  142. package/src/lib/cc/client.ts +273 -0
  143. package/src/lib/cc/config-cache.ts +32 -0
  144. package/src/lib/cc/format.ts +92 -0
  145. package/src/lib/cc/registry.ts +62 -0
  146. package/src/lib/cc/types.ts +44 -0
  147. package/src/lib/config.ts +102 -71
  148. package/src/lib/db/drizzle.config.mssql.ts +9 -0
  149. package/src/lib/db/drizzle.config.pg.ts +9 -0
  150. package/src/lib/db/migrate.ts +45 -10
  151. package/src/lib/db/migrations/mssql/20260729092726_talented_wilson_fisk/migration.sql +20 -0
  152. package/src/lib/db/migrations/mssql/20260729092726_talented_wilson_fisk/snapshot.json +497 -0
  153. package/src/lib/db/migrations/mssql/20260801003652_perpetual_blue_shield/migration.sql +1 -0
  154. package/src/lib/db/migrations/mssql/20260801003652_perpetual_blue_shield/snapshot.json +516 -0
  155. package/src/lib/db/migrations/mssql/20260812174642_user_id_text/migration.sql +2 -0
  156. package/src/lib/db/migrations/mssql/20260812174642_user_id_text/snapshot.json +516 -0
  157. package/src/lib/db/migrations/pg/20260801084117_thick_ben_grimm/migration.sql +53 -0
  158. package/src/lib/db/migrations/pg/20260801084117_thick_ben_grimm/snapshot.json +584 -0
  159. package/src/lib/db/migrations/pg/20260812174622_user_id_text/migration.sql +2 -0
  160. package/src/lib/db/migrations/pg/20260812174622_user_id_text/snapshot.json +584 -0
  161. package/src/lib/db/{schema.ts → schema.mssql.ts} +29 -18
  162. package/src/lib/db/schema.pg.ts +95 -0
  163. package/src/lib/factory.ts +44 -89
  164. package/src/lib/graph/index.ts +12 -40
  165. package/src/lib/graph/resolver.ts +146 -116
  166. package/src/lib/index.ts +11 -4
  167. package/src/lib/redis.ts +44 -0
  168. package/src/lib/routes/chat.ts +91 -62
  169. package/src/lib/routes/files.ts +105 -83
  170. package/src/lib/routes/owned-thread.ts +17 -0
  171. package/src/lib/routes/threads.ts +14 -30
  172. package/src/lib/routes/ws.ts +9 -3
  173. package/src/lib/types.ts +37 -36
  174. package/src/lib/ws/connections.ts +9 -1
  175. package/tsconfig.json +48 -0
  176. package/dist/src/lib/adapters/database.d.ts +0 -45
  177. package/dist/src/lib/adapters/mssql.d.ts +0 -3
  178. package/dist/src/lib/ai/active-streams.d.ts +0 -14
  179. package/dist/src/lib/ai/context/index.d.ts +0 -16
  180. package/dist/src/lib/ai/tools/capture-files.tool.d.ts +0 -6
  181. package/dist/src/lib/cli/extract-endpoints.d.ts +0 -6
  182. package/dist/src/lib/graph/expand-domains.d.ts +0 -2
  183. package/dist/src/lib/graph/generate-cypher.d.ts +0 -22
  184. package/dist/src/lib/graph/seed.d.ts +0 -19
  185. package/dist/src/lib/graph/validate.d.ts +0 -2
  186. package/dist/src/lib/routes/index.d.ts +0 -4
  187. package/dist/src/lib/ws/events.d.ts +0 -39
  188. package/dist/src/lib/ws/index.d.ts +0 -3
  189. package/dist/src/lib/ws/notify.d.ts +0 -2
  190. package/src/lib/adapters/database.ts +0 -48
  191. package/src/lib/adapters/mssql.ts +0 -231
  192. package/src/lib/ai/active-streams.ts +0 -123
  193. package/src/lib/ai/context/index.ts +0 -80
  194. package/src/lib/ai/tools/capture-files.tool.ts +0 -20
  195. package/src/lib/cli/extract-endpoints.ts +0 -550
  196. package/src/lib/graph/expand-domains.ts +0 -276
  197. package/src/lib/graph/generate-cypher.ts +0 -192
  198. package/src/lib/graph/seed.ts +0 -162
  199. package/src/lib/graph/validate.ts +0 -78
  200. package/src/lib/routes/index.ts +0 -4
  201. package/src/lib/ws/events.ts +0 -39
  202. package/src/lib/ws/index.ts +0 -11
  203. package/src/lib/ws/notify.ts +0 -9
  204. package/src/sample/db/client.ts +0 -9
  205. package/src/sample/db/migrations/20260411023125_rich_purple_man/migration.sql +0 -5
  206. package/src/sample/db/migrations/20260411023125_rich_purple_man/snapshot.json +0 -50
  207. package/src/sample/db/schema.ts +0 -10
  208. package/src/sample/domains/account/concepts/session.concept.ts +0 -17
  209. package/src/sample/domains/account/endpoints/listCurrentSessions.endpoint.ts +0 -31
  210. package/src/sample/domains/account/endpoints/revokeAllOtherSessions.endpoint.ts +0 -22
  211. package/src/sample/domains/account/endpoints/revokeCurrentSession.endpoint.ts +0 -33
  212. package/src/sample/domains/account/index.ts +0 -18
  213. package/src/sample/domains/appraisals/concepts/appraisalCycle.concept.ts +0 -15
  214. package/src/sample/domains/appraisals/concepts/appraisalRecord.concept.ts +0 -20
  215. package/src/sample/domains/appraisals/concepts/appraisalRecordCompetency.concept.ts +0 -10
  216. package/src/sample/domains/appraisals/concepts/appraisalRecordFunctionalRequirement.concept.ts +0 -10
  217. package/src/sample/domains/appraisals/concepts/appraisalRecordGoal.concept.ts +0 -17
  218. package/src/sample/domains/appraisals/endpoints/getAppraisalRecordById.endpoint.ts +0 -321
  219. package/src/sample/domains/appraisals/endpoints/getAppraisalRecordCompetencies.endpoint.ts +0 -120
  220. package/src/sample/domains/appraisals/endpoints/getAppraisalRecordFunctionalRequirements.endpoint.ts +0 -126
  221. package/src/sample/domains/appraisals/endpoints/getAppraisalRecordGoals.endpoint.ts +0 -104
  222. package/src/sample/domains/appraisals/endpoints/getAppraisalRecordScore.endpoint.ts +0 -58
  223. package/src/sample/domains/appraisals/endpoints/listAppraisalCyclesSimple.endpoint.ts +0 -52
  224. package/src/sample/domains/appraisals/endpoints/listAppraisalRecords.endpoint.ts +0 -245
  225. package/src/sample/domains/appraisals/endpoints/listAppraisalTemplatesSimple.endpoint.ts +0 -52
  226. package/src/sample/domains/appraisals/index.ts +0 -40
  227. package/src/sample/domains/appraisals/rules/appraisalRecordScoping.rule.ts +0 -7
  228. package/src/sample/domains/attendance/concepts/attendancePermission.concept.ts +0 -17
  229. package/src/sample/domains/attendance/concepts/attendanceTransaction.concept.ts +0 -17
  230. package/src/sample/domains/attendance/concepts/publicHoliday.concept.ts +0 -10
  231. package/src/sample/domains/attendance/concepts/punch.concept.ts +0 -19
  232. package/src/sample/domains/attendance/endpoints/getAttendanceTransactionById.endpoint.ts +0 -444
  233. package/src/sample/domains/attendance/endpoints/getCurrentAttendanceProfile.endpoint.ts +0 -886
  234. package/src/sample/domains/attendance/endpoints/getCurrentAttendanceStatistics.endpoint.ts +0 -49
  235. package/src/sample/domains/attendance/endpoints/listAttendancePermissions.endpoint.ts +0 -176
  236. package/src/sample/domains/attendance/endpoints/listAttendanceTransactionStates.endpoint.ts +0 -26
  237. package/src/sample/domains/attendance/endpoints/listAttendanceTransactions.endpoint.ts +0 -373
  238. package/src/sample/domains/attendance/endpoints/listPublicHolidaysSimple.endpoint.ts +0 -52
  239. package/src/sample/domains/attendance/endpoints/listPunchTypes.endpoint.ts +0 -25
  240. package/src/sample/domains/attendance/endpoints/listPunches.endpoint.ts +0 -178
  241. package/src/sample/domains/attendance/index.ts +0 -41
  242. package/src/sample/domains/attendance/services/attendancePermissions.service.ts +0 -15
  243. package/src/sample/domains/employees/concepts/employee.concept.ts +0 -20
  244. package/src/sample/domains/employees/concepts/employeeBankAccount.concept.ts +0 -19
  245. package/src/sample/domains/employees/concepts/employeeChild.concept.ts +0 -19
  246. package/src/sample/domains/employees/concepts/employeeDocument.concept.ts +0 -21
  247. package/src/sample/domains/employees/concepts/employeeEvent.concept.ts +0 -21
  248. package/src/sample/domains/employees/concepts/employeeExperience.concept.ts +0 -18
  249. package/src/sample/domains/employees/concepts/employeeJobLevelChange.concept.ts +0 -21
  250. package/src/sample/domains/employees/concepts/employeeMedal.concept.ts +0 -20
  251. package/src/sample/domains/employees/concepts/employeeQualification.concept.ts +0 -20
  252. package/src/sample/domains/employees/concepts/employeeSpouse.concept.ts +0 -21
  253. package/src/sample/domains/employees/concepts/employeeViolation.concept.ts +0 -19
  254. package/src/sample/domains/employees/endpoints/getCurrentEmployee.endpoint.ts +0 -1651
  255. package/src/sample/domains/employees/endpoints/getCurrentIdentity.endpoint.ts +0 -197
  256. package/src/sample/domains/employees/endpoints/getCurrentManagers.endpoint.ts +0 -142
  257. package/src/sample/domains/employees/endpoints/getEmployeeById.endpoint.ts +0 -1659
  258. package/src/sample/domains/employees/endpoints/getEmployeeStatistics.endpoint.ts +0 -43
  259. package/src/sample/domains/employees/endpoints/listBankAccounts.endpoint.ts +0 -223
  260. package/src/sample/domains/employees/endpoints/listChildren.endpoint.ts +0 -211
  261. package/src/sample/domains/employees/endpoints/listDocuments.endpoint.ts +0 -222
  262. package/src/sample/domains/employees/endpoints/listEmployeesSimple.endpoint.ts +0 -156
  263. package/src/sample/domains/employees/endpoints/listEvents.endpoint.ts +0 -120
  264. package/src/sample/domains/employees/endpoints/listExperiences.endpoint.ts +0 -188
  265. package/src/sample/domains/employees/endpoints/listJobLevelChanges.endpoint.ts +0 -240
  266. package/src/sample/domains/employees/endpoints/listMedals.endpoint.ts +0 -266
  267. package/src/sample/domains/employees/endpoints/listQualifications.endpoint.ts +0 -265
  268. package/src/sample/domains/employees/endpoints/listSpouses.endpoint.ts +0 -278
  269. package/src/sample/domains/employees/endpoints/listViolations.endpoint.ts +0 -245
  270. package/src/sample/domains/employees/index.ts +0 -75
  271. package/src/sample/domains/employees/services/employees.service.ts +0 -181
  272. package/src/sample/domains/index.ts +0 -10
  273. package/src/sample/domains/leaves/concepts/leave.concept.ts +0 -21
  274. package/src/sample/domains/leaves/concepts/leaveBalance.concept.ts +0 -17
  275. package/src/sample/domains/leaves/concepts/leaveBalanceTransaction.concept.ts +0 -16
  276. package/src/sample/domains/leaves/concepts/leaveType.concept.ts +0 -13
  277. package/src/sample/domains/leaves/concepts/leaveTypes.concept.ts +0 -205
  278. package/src/sample/domains/leaves/endpoints/getBalance.endpoint.ts +0 -53
  279. package/src/sample/domains/leaves/endpoints/getLeaveById.endpoint.ts +0 -53
  280. package/src/sample/domains/leaves/endpoints/listBalanceTransactions.endpoint.ts +0 -196
  281. package/src/sample/domains/leaves/endpoints/listBalanceTypes.endpoint.ts +0 -26
  282. package/src/sample/domains/leaves/endpoints/listBalances.endpoint.ts +0 -201
  283. package/src/sample/domains/leaves/endpoints/listLeaveTypes.endpoint.ts +0 -28
  284. package/src/sample/domains/leaves/endpoints/listLeaves.endpoint.ts +0 -234
  285. package/src/sample/domains/leaves/index.ts +0 -38
  286. package/src/sample/domains/leaves/services/leaveRequests.service.ts +0 -232
  287. package/src/sample/domains/notifications/concepts/notification.concept.ts +0 -19
  288. package/src/sample/domains/notifications/endpoints/countMyNotifications.endpoint.ts +0 -21
  289. package/src/sample/domains/notifications/endpoints/getMyNotification.endpoint.ts +0 -57
  290. package/src/sample/domains/notifications/endpoints/listMyNotifications.endpoint.ts +0 -59
  291. package/src/sample/domains/notifications/endpoints/markMyNotificationAsRead.endpoint.ts +0 -32
  292. package/src/sample/domains/notifications/index.ts +0 -20
  293. package/src/sample/domains/payroll/concepts/payslip.concept.ts +0 -18
  294. package/src/sample/domains/payroll/concepts/salaryCertificate.concept.ts +0 -17
  295. package/src/sample/domains/payroll/concepts/salaryCertificateRequestingEntity.concept.ts +0 -8
  296. package/src/sample/domains/payroll/endpoints/getPayslipById.endpoint.ts +0 -238
  297. package/src/sample/domains/payroll/endpoints/listPayslips.endpoint.ts +0 -216
  298. package/src/sample/domains/payroll/endpoints/listSalaryCertificateLanguages.endpoint.ts +0 -25
  299. package/src/sample/domains/payroll/endpoints/listSalaryCertificateRequestingEntities.endpoint.ts +0 -62
  300. package/src/sample/domains/payroll/endpoints/listSalaryCertificateTypes.endpoint.ts +0 -24
  301. package/src/sample/domains/payroll/endpoints/listSalaryCertificates.endpoint.ts +0 -122
  302. package/src/sample/domains/payroll/endpoints/previewSalaryCertificate.endpoint.ts +0 -45
  303. package/src/sample/domains/payroll/index.ts +0 -32
  304. package/src/sample/domains/payroll/rules/payrollEmployeeContext.rule.ts +0 -7
  305. package/src/sample/domains/payroll/services/salaryCertificates.service.ts +0 -15
  306. package/src/sample/domains/servicing/concepts/service.concept.ts +0 -6
  307. package/src/sample/domains/servicing/concepts/serviceRequest.concept.ts +0 -12
  308. package/src/sample/domains/servicing/concepts/serviceRequestApproval.concept.ts +0 -9
  309. package/src/sample/domains/servicing/endpoints/cancelServiceRequest.endpoint.ts +0 -21
  310. package/src/sample/domains/servicing/endpoints/createServiceRequest.endpoint.ts +0 -511
  311. package/src/sample/domains/servicing/endpoints/getServiceRequest.endpoint.ts +0 -352
  312. package/src/sample/domains/servicing/endpoints/getServiceRequestFormItems.endpoint.ts +0 -219
  313. package/src/sample/domains/servicing/endpoints/getServiceRequestTransactionFormItems.endpoint.ts +0 -216
  314. package/src/sample/domains/servicing/endpoints/getServiceStates.endpoint.ts +0 -47
  315. package/src/sample/domains/servicing/endpoints/invokeServiceRequestAction.endpoint.ts +0 -139
  316. package/src/sample/domains/servicing/endpoints/listServiceRequests.endpoint.ts +0 -292
  317. package/src/sample/domains/servicing/endpoints/listServices.endpoint.ts +0 -108
  318. package/src/sample/domains/servicing/endpoints/updateServiceRequest.endpoint.ts +0 -355
  319. package/src/sample/domains/servicing/index.ts +0 -44
  320. package/src/sample/domains/servicing/rules/checkValidActions.rule.ts +0 -7
  321. package/src/sample/domains/servicing/rules/createServiceRequest.rule.ts +0 -7
  322. package/src/sample/domains/servicing/rules/filterServiceRequestsByState.rule.ts +0 -7
  323. package/src/sample/domains/servicing/rules/passingOptionFields.rule.ts +0 -7
  324. package/src/sample/domains/shared/rules/pagination.rule.ts +0 -7
  325. package/src/sample/domains/suggestions/concepts/suggestion.concept.ts +0 -19
  326. package/src/sample/domains/suggestions/concepts/suggestionCategory.concept.ts +0 -7
  327. package/src/sample/domains/suggestions/concepts/suggestionImpactLevel.concept.ts +0 -7
  328. package/src/sample/domains/suggestions/endpoints/createSuggestion.endpoint.ts +0 -705
  329. package/src/sample/domains/suggestions/endpoints/deleteSuggestion.endpoint.ts +0 -32
  330. package/src/sample/domains/suggestions/endpoints/getSuggestionById.endpoint.ts +0 -635
  331. package/src/sample/domains/suggestions/endpoints/listSuggestionCategories.endpoint.ts +0 -62
  332. package/src/sample/domains/suggestions/endpoints/listSuggestionImpactLevels.endpoint.ts +0 -62
  333. package/src/sample/domains/suggestions/endpoints/listSuggestionStates.endpoint.ts +0 -24
  334. package/src/sample/domains/suggestions/endpoints/listSuggestions.endpoint.ts +0 -132
  335. package/src/sample/domains/suggestions/endpoints/updateSuggestion.endpoint.ts +0 -690
  336. package/src/sample/domains/suggestions/endpoints/updateSuggestionState.endpoint.ts +0 -39
  337. package/src/sample/domains/suggestions/index.ts +0 -34
  338. package/src/sample/domains/suggestions/rules/suggestionScope.rule.ts +0 -7
  339. package/src/sample/domains/surveys/concepts/survey.concept.ts +0 -10
  340. package/src/sample/domains/surveys/concepts/surveyResponse.concept.ts +0 -14
  341. package/src/sample/domains/surveys/endpoints/getSurveyResponseById.endpoint.ts +0 -131
  342. package/src/sample/domains/surveys/endpoints/getTargetedSurvey.endpoint.ts +0 -129
  343. package/src/sample/domains/surveys/endpoints/listTargetedSurveys.endpoint.ts +0 -160
  344. package/src/sample/domains/surveys/endpoints/respondToSurvey.endpoint.ts +0 -144
  345. package/src/sample/domains/surveys/index.ts +0 -21
  346. package/src/sample/drizzle.config.ts +0 -11
  347. package/src/sample/index.bak.ts +0 -341
  348. package/src/sample/index.ts +0 -318
  349. package/src/sample/official-statements/defaults.ts +0 -57
  350. package/src/sample/official-statements/routes.ts +0 -137
  351. package/src/sample/official-statements/service.ts +0 -148
  352. package/src/sample/official-statements/types.ts +0 -23
  353. /package/src/lib/db/migrations/{20260326231647_nice_speedball → mssql/20260326231647_nice_speedball}/migration.sql +0 -0
  354. /package/src/lib/db/migrations/{20260326231647_nice_speedball → mssql/20260326231647_nice_speedball}/snapshot.json +0 -0
@@ -0,0 +1,95 @@
1
+ import { ATTACHMENT_STATUSES } from "@cortex/contracts/wire";
2
+ import {
3
+ index,
4
+ integer,
5
+ jsonb,
6
+ pgSchema,
7
+ text,
8
+ timestamp,
9
+ uuid,
10
+ varchar,
11
+ } from "drizzle-orm/pg-core";
12
+ import type { ChatMessage, TokenUsage } from "@/types";
13
+ import type { ThreadContextMeta } from "@/ai/context/types";
14
+
15
+ /**
16
+ * The Postgres twin of `schema.mssql.ts`. Drizzle types its schemas per dialect,
17
+ * so the two cannot be shared — `schema.parity.test.ts` asserts at compile time
18
+ * that they still infer the same rows, which is what the rest of the code sees.
19
+ */
20
+
21
+ export const aiSchema = pgSchema("ai");
22
+
23
+ const auditColumns = {
24
+ createdAt: timestamp({ mode: "date", withTimezone: true })
25
+ .$default(() => new Date())
26
+ .notNull(),
27
+ updatedAt: timestamp({ mode: "date", withTimezone: true })
28
+ .$default(() => new Date())
29
+ .$onUpdate(() => new Date())
30
+ .notNull(),
31
+ };
32
+
33
+ export const threads = aiSchema.table("threads", {
34
+ id: uuid().defaultRandom().primaryKey(),
35
+ userId: varchar({ length: 255 }).notNull(),
36
+ agentId: varchar({ length: 128 }).notNull().default("default"),
37
+ title: varchar({ length: 256 }),
38
+ session: jsonb().$type<Record<string, unknown>>(),
39
+ contextMeta: jsonb().$type<ThreadContextMeta>(),
40
+ ...auditColumns,
41
+ });
42
+
43
+ export const messages = aiSchema.table("messages", {
44
+ id: varchar({ length: 128 }).primaryKey(),
45
+ threadId: uuid()
46
+ .references(() => threads.id, { onDelete: "cascade" })
47
+ .notNull(),
48
+ text: text(),
49
+ content: jsonb().notNull().$type<ChatMessage>(),
50
+ /**
51
+ * Position within the insert batch that wrote the row. A turn commits
52
+ * several rows at once, so they share a `createdAt`; the transcript orders
53
+ * on (createdAt, ordinal) to keep them in the order the turn produced them.
54
+ */
55
+ ordinal: integer().notNull().default(0),
56
+ role: varchar({
57
+ enum: ["system", "user", "assistant", "tool"],
58
+ length: 16,
59
+ }).notNull(),
60
+ ...auditColumns,
61
+ });
62
+
63
+ export const llmRequests = aiSchema.table("llm_requests", {
64
+ id: uuid().defaultRandom().primaryKey(),
65
+ messageId: varchar({ length: 128 })
66
+ .references(() => messages.id, { onDelete: "cascade" })
67
+ .notNull(),
68
+ stepNumber: integer().notNull(),
69
+ prompt: text().notNull(),
70
+ output: text(),
71
+ tokenUsage: jsonb().$type<TokenUsage>(),
72
+ });
73
+
74
+ export const attachments = aiSchema.table(
75
+ "attachments",
76
+ {
77
+ id: uuid().defaultRandom().primaryKey(),
78
+ threadId: uuid()
79
+ .references(() => threads.id, { onDelete: "cascade" })
80
+ .notNull(),
81
+ userId: varchar({ length: 255 }).notNull(),
82
+ messageId: varchar({ length: 128 }).references(() => messages.id),
83
+ filename: varchar({ length: 2048 }).notNull(),
84
+ contentType: varchar({ length: 256 }).notNull(),
85
+ sizeBytes: integer().notNull(),
86
+ storageKey: varchar({ length: 512 }).notNull(),
87
+ status: varchar({
88
+ enum: ATTACHMENT_STATUSES,
89
+ length: 16,
90
+ }).notNull(),
91
+ description: text(),
92
+ ...auditColumns,
93
+ },
94
+ (table) => [index("attachments_thread_id_index").on(table.threadId)],
95
+ );
@@ -1,21 +1,24 @@
1
1
  import { Hono } from "hono";
2
2
  import { websocket } from "hono/bun";
3
- import { createOpenAICompatible } from "@ai-sdk/openai-compatible";
4
- import type { CortexConfig, ResolvedCortexAgentConfig } from "./config.ts";
5
- import { DEFAULT_CONTEXT_CONFIG } from "./ai/context/types.ts";
6
- import type { ContextConfig } from "./ai/context/types.ts";
7
- import type { AppEnv, CortexAppEnv } from "./types.ts";
8
- import type { DomainDef } from "./graph/types.ts";
9
- import { createUserLoaderMiddleware } from "./auth/middleware.ts";
10
- import { createThreadRoutes } from "./routes/threads.ts";
11
- import { createChatRoutes } from "./routes/chat.ts";
12
- import { createFileRoutes } from "./routes/files.ts";
13
- import { createWsRoute } from "./routes/ws.ts";
14
- import { runMigrations } from "./db/migrate.ts";
15
- import { createMssqlAdapter } from "./adapters/mssql.ts";
16
- import { createMinioAdapter } from "./adapters/minio.ts";
17
- import { seedGraph as seedGraphFn } from "./graph/seed.ts";
18
- import { extractEndpoints as extractEndpointsFn } from "./cli/extract-endpoints.ts";
3
+ import type { CortexConfig, ResolvedCortexAgentConfig } from "./config";
4
+ import { DEFAULT_CONTEXT_CONFIG } from "./ai/context/types";
5
+ import type { ContextConfig } from "./ai/context/types";
6
+ import type { AppEnv, CortexAppEnv } from "./types";
7
+ import { createUserLoaderMiddleware } from "./auth/middleware";
8
+ import { createThreadRoutes } from "./routes/threads";
9
+ import { createChatRoutes } from "./routes/chat";
10
+ import { createFileRoutes } from "./routes/files";
11
+ import { createWsRoute } from "./routes/ws";
12
+ import { runMigrations } from "./db/migrate";
13
+ import { configureRunCoordination } from "./ai/active-runs";
14
+ import { createRedisRuns } from "./ai/redis-runs";
15
+ import { getRedisConnections } from "./redis";
16
+ import { createMssqlAdapter } from "./adapters/database/mssql/index";
17
+ import { createPostgresAdapter } from "./adapters/database/postgres/index";
18
+ import { createMinioAdapter } from "./adapters/storage/minio";
19
+ import { ControlCenterClient } from "./cc/client";
20
+ import { getControlCenterConfig } from "./cc/config-cache";
21
+ import { AGENT_SLUG_PATTERN } from "./cc/types";
19
22
 
20
23
  export type CortexInstance = {
21
24
  serve(): Promise<{
@@ -24,39 +27,26 @@ export type CortexInstance = {
24
27
  fetch: Hono<AppEnv>["fetch"];
25
28
  websocket: typeof websocket;
26
29
  }>;
27
- seedGraph(): Promise<void>;
28
- extractEndpoints(options: { domainsDir: string; write?: boolean }): Promise<void>;
29
30
  };
30
31
 
31
32
  export function createCortex(config: CortexConfig) {
32
- function collectAllDomains() {
33
- const all: Record<string, DomainDef> = {};
34
- if (config.knowledge?.domains) Object.assign(all, config.knowledge.domains);
35
- for (const agent of Object.values(config.agents)) {
36
- if (agent.knowledge && agent.knowledge.domains) {
37
- Object.assign(all, agent.knowledge.domains);
38
- }
39
- }
40
- return all;
41
- }
42
-
43
- function collectAllSwaggerUrls() {
44
- const urls = new Set<string>();
45
- if (config.knowledge?.swagger?.url) urls.add(config.knowledge.swagger.url);
46
- for (const agent of Object.values(config.agents)) {
47
- if (agent.knowledge && agent.knowledge.swagger?.url) {
48
- urls.add(agent.knowledge.swagger.url);
49
- }
50
- }
51
- return [...urls];
52
- }
53
-
54
33
  return {
55
34
  async serve() {
56
- const storage = createMinioAdapter(config.storage);
57
- const db = createMssqlAdapter(config.database.connectionString, storage);
35
+ const storage = config.storage ? createMinioAdapter(config.storage) : undefined;
36
+ const createAdapter =
37
+ config.database.type === "postgres" ? createPostgresAdapter : createMssqlAdapter;
38
+ const db = createAdapter(config.database.connectionString, storage);
39
+ const ccClient = config.controlCenter
40
+ ? new ControlCenterClient(config.controlCenter)
41
+ : null;
42
+
43
+ if (config.redis) {
44
+ configureRunCoordination(
45
+ createRedisRuns(getRedisConnections(config.redis.url), config.redis),
46
+ );
47
+ }
58
48
 
59
- await runMigrations(config.database.connectionString);
49
+ await runMigrations(config.database);
60
50
 
61
51
  const app = new Hono<AppEnv>();
62
52
 
@@ -71,7 +61,14 @@ export function createCortex(config: CortexConfig) {
71
61
 
72
62
  agentApp.use("*", async function (c, next) {
73
63
  const agentId = c.req.param("agentId") as string;
74
- const agentDef = config.agents[agentId];
64
+ // An id with no local entry may still be an agent published on the
65
+ // Control Center: existence is checked against it (ETag-cached, so
66
+ // usually a 304), which makes publishing there the only allowlist.
67
+ let agentDef = config.agents?.[agentId];
68
+ if (!agentDef && ccClient && AGENT_SLUG_PATTERN.test(agentId)) {
69
+ const ccConfig = await getControlCenterConfig(ccClient, agentId);
70
+ if (ccConfig) agentDef = {};
71
+ }
75
72
  if (!agentDef) return c.json({ error: "Agent not found" }, 404);
76
73
 
77
74
  const resolvedContext: ContextConfig = {
@@ -81,13 +78,16 @@ export function createCortex(config: CortexConfig) {
81
78
  };
82
79
 
83
80
  const resolvedConfig: ResolvedCortexAgentConfig = {
81
+ agentId,
84
82
  db,
85
83
  storage,
86
84
  model: agentDef.model ?? config.model,
87
85
  fastModel: agentDef.fastModel ?? config.fastModel,
86
+ vision: agentDef.vision ?? config.vision,
88
87
  embedding: agentDef.embedding ?? config.embedding,
89
88
  neo4j: agentDef.neo4j ?? config.neo4j,
90
89
  reranker: agentDef.reranker ?? config.reranker,
90
+ controlCenter: config.controlCenter,
91
91
  knowledge:
92
92
  agentDef.knowledge === null
93
93
  ? undefined
@@ -123,50 +123,5 @@ export function createCortex(config: CortexConfig) {
123
123
  websocket,
124
124
  };
125
125
  },
126
-
127
- async seedGraph() {
128
- const domains = collectAllDomains();
129
- if (!Object.keys(domains).length) {
130
- throw new Error("No domains found in knowledge config");
131
- }
132
- if (!config.neo4j) {
133
- throw new Error("neo4j config is required for seedGraph");
134
- }
135
- if (!config.embedding) {
136
- throw new Error("embedding config is required for seedGraph");
137
- }
138
-
139
- const provider = createOpenAICompatible({
140
- name: "embedding-provider",
141
- baseURL: config.embedding.baseURL,
142
- apiKey: config.embedding.apiKey,
143
- });
144
-
145
- await seedGraphFn(
146
- {
147
- neo4j: config.neo4j,
148
- embedding: {
149
- model: provider.textEmbeddingModel(config.embedding.modelName),
150
- dimension: config.embedding.dimension,
151
- },
152
- },
153
- domains,
154
- );
155
- },
156
-
157
- async extractEndpoints(options) {
158
- const swaggerUrls = collectAllSwaggerUrls();
159
- if (!swaggerUrls.length) {
160
- throw new Error("No swagger URLs found in knowledge config");
161
- }
162
-
163
- for (const swaggerUrl of swaggerUrls) {
164
- await extractEndpointsFn({
165
- swaggerUrl,
166
- domainsDir: options.domainsDir,
167
- write: options.write ?? true,
168
- });
169
- }
170
- },
171
126
  } satisfies CortexInstance;
172
127
  }
@@ -1,47 +1,19 @@
1
- // Types
2
- export type {
3
- EndpointScalarType,
4
- EndpointProperty,
5
- ResponseKind,
6
- AutoGenerated,
7
- ConceptDef,
8
- EndpointDef,
9
- EndpointInput,
10
- ServiceDef,
11
- RuleDef,
12
- DomainDef,
13
- } from "./types.ts";
14
-
15
- // Helpers
16
- export {
17
- defineConcept,
18
- defineRule,
19
- defineService,
20
- defineDomain,
21
- defineEndpoint,
22
- } from "./helpers.ts";
23
-
24
- // Cypher generation
25
- export type { GeneratedCypher } from "./generate-cypher.ts";
26
- export { generateCypher, toCypherScript } from "./generate-cypher.ts";
27
-
28
- // Validation
29
- export { validateDomain } from "./validate.ts";
30
-
31
- // Neo4j client
32
- export type { Neo4jConfig, Neo4jClient } from "./neo4j.ts";
33
- export { createNeo4jClient } from "./neo4j.ts";
34
-
35
- // Seed orchestrator
36
- export type { EmbeddingConfig, SeedGraphConfig } from "./seed.ts";
37
- export { seedGraph } from "./seed.ts";
1
+ /**
2
+ * The graph contract lives in `@cortex/contracts/graph` (internal/contracts),
3
+ * because `@m6d/cortex-cli` writes the graph this package reads and the two are
4
+ * installed separately (each vendors its own copy at pack time). It is
5
+ * re-exported here so authoring a project's domains still needs exactly one
6
+ * import path — nothing about the public surface moved.
7
+ */
8
+ export * from "@cortex/contracts/graph";
38
9
 
39
- // Graph resolver
10
+ // Graph resolver — the reader, and the one part of the graph that is this
11
+ // package's own.
40
12
  export type {
41
13
  RerankerConfig,
42
14
  ResolverConfig,
43
15
  ResolvedEndpoint,
44
16
  ResolvedService,
45
17
  ResolvedContext,
46
- } from "./resolver.ts";
47
- export { resolveFromGraph } from "./resolver.ts";
18
+ } from "./resolver";
19
+ export { resolveFromGraph } from "./resolver";