@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,15 @@
1
+ import type { ResolvedCortexAgentConfig } from "../../config";
2
+ /**
3
+ * Keeps a single turn's tool results inside the context window as steps accumulate.
4
+ *
5
+ * `onConfig` runs before every model call in the agent loop. Truncating older results
6
+ * is free, so it always happens; summarizing costs an extra model call and only
7
+ * happens if truncation left us over the threshold. A failed summarization is logged
8
+ * and swallowed — degrading to the merely-truncated prompt beats failing the turn.
9
+ */
10
+ export declare function createCompressionMiddleware(config: ResolvedCortexAgentConfig): {
11
+ name: string;
12
+ onConfig(_ctx: import("@tanstack/ai").ChatMiddlewareContext<unknown>, { messages }: import("@tanstack/ai").ChatMiddlewareConfig): Promise<{
13
+ messages: import("@tanstack/ai").ModelMessage<string | import("@tanstack/ai").ContentPart<unknown, unknown, unknown, unknown, unknown>[] | null>[];
14
+ }>;
15
+ };
@@ -1,18 +1,7 @@
1
- import type { UIMessage } from "ai";
2
- import type { MessageMetadata } from "../../types.ts";
1
+ import type { ChatMessage } from "../../types";
3
2
  /**
4
3
  * Returns a new array of messages with large tool outputs truncated
5
4
  * to `maxTokensPerResult`. Does not mutate the input messages.
6
5
  */
7
- export declare function compressToolResults(messages: UIMessage<MessageMetadata>[], maxTokensPerResult: number): UIMessage<MessageMetadata, import("ai").UIDataTypes, import("ai").UITools>[];
8
- /**
9
- * Structurally compresses a value to fit within a character budget.
10
- * Understands JSON arrays, error objects, and nested objects — preserving
11
- * semantic meaning better than naive string truncation.
12
- */
13
- export declare function smartStructuralCompress(value: unknown, charBudget: number): string;
14
- /**
15
- * Produces a short human-readable summary of a value's shape and key data.
16
- * Used both for inline object-key placeholders and for tool result one-liners.
17
- */
6
+ export declare function compressToolResults(messages: ChatMessage[], maxTokensPerResult: number): ChatMessage[];
18
7
  export declare function summarizeValue(val: unknown): string;
@@ -1,24 +1,24 @@
1
- import type { LanguageModelV3Prompt } from "@ai-sdk/provider";
2
- import type { ContextConfig } from "./types.ts";
1
+ import type { ModelMessage } from "@tanstack/ai";
2
+ import type { ContextConfig } from "./types";
3
3
  type SummarizationModelConfig = NonNullable<ContextConfig["summarizationModel"]>;
4
4
  /**
5
5
  * Compresses tool results from older steps in the prompt.
6
6
  *
7
7
  * On step N, tool results from steps 1..N-2 are aggressively compressed
8
- * to short one-liners. Only the most recent tool result stays in full.
9
- * Does not mutate the input — returns a new prompt array.
8
+ * to short one-liners. Only the most recent step's results stay in full.
9
+ * Does not mutate the input — returns a new array.
10
10
  */
11
- export declare function compressIntraTurnToolResults(prompt: LanguageModelV3Prompt, toolResultMaxTokens: number): LanguageModelV3Prompt;
11
+ export declare function compressIntraTurnToolResults(messages: ModelMessage[], toolResultMaxTokens: number): ModelMessage<string | import("@tanstack/ai").ContentPart<unknown, unknown, unknown, unknown, unknown>[] | null>[];
12
12
  /**
13
13
  * Estimates the total token count of tool results in the prompt.
14
14
  */
15
- export declare function estimateToolResultTokens(prompt: LanguageModelV3Prompt): number;
15
+ export declare function estimateToolResultTokens(messages: ModelMessage[]): number;
16
16
  /**
17
17
  * When accumulated tool result tokens exceed the threshold, summarizes
18
18
  * older step results using a lightweight LLM call.
19
19
  *
20
- * Replaces all tool results except the last two with a single synthetic
21
- * summary in the oldest tool message.
20
+ * Replaces every tool result before the last two steps with a single
21
+ * synthetic summary in the oldest tool message.
22
22
  */
23
- export declare function summarizeOldStepResults(prompt: LanguageModelV3Prompt, thresholdTokens: number, modelConfig: SummarizationModelConfig): Promise<LanguageModelV3Prompt>;
23
+ export declare function summarizeOldStepResults(messages: ModelMessage[], thresholdTokens: number, modelConfig: SummarizationModelConfig): Promise<ModelMessage<string | import("@tanstack/ai").ContentPart<unknown, unknown, unknown, unknown, unknown>[] | null>[]>;
24
24
  export {};
@@ -0,0 +1,9 @@
1
+ import type { ResolvedCortexAgentConfig } from "../../config";
2
+ import type { ChatMessage, Thread } from "../../types";
3
+ /**
4
+ * Post-response context optimization, called fire-and-forget from onFinish.
5
+ *
6
+ * Below the summarization threshold this only refreshes the token estimate —
7
+ * summarizing early would burn a model call to compress context that still fits.
8
+ */
9
+ export declare function optimizeThreadContext(thread: Thread, messages: ChatMessage[], config: ResolvedCortexAgentConfig): Promise<void>;
@@ -1,5 +1,5 @@
1
- import type { UIMessage } from "ai";
2
- import type { ContextConfig } from "./types.ts";
1
+ import type { ChatMessage } from "../../types";
2
+ import type { ContextConfig } from "./types";
3
3
  type SummarizationModelConfig = NonNullable<ContextConfig["summarizationModel"]>;
4
- export declare function summarizeMessages(messages: UIMessage[], existingSummary: string | null, modelConfig: SummarizationModelConfig): Promise<string>;
4
+ export declare function summarizeMessages(messages: ChatMessage[], existingSummary: string | null, modelConfig: SummarizationModelConfig): Promise<string>;
5
5
  export {};
@@ -1,4 +1,4 @@
1
- import type { UIMessage } from "ai";
1
+ import type { ChatMessage } from "../../types";
2
2
  /** Average characters per token for English text. Used by the heuristic estimator. */
3
3
  export declare const CHARS_PER_TOKEN = 4;
4
4
  /**
@@ -6,15 +6,12 @@ export declare const CHARS_PER_TOKEN = 4;
6
6
  * ~10% accuracy for English text — good enough for budget decisions.
7
7
  */
8
8
  export declare function estimateTokens(text: string): number;
9
+ export declare function estimateMessageTokens(message: ChatMessage): number;
9
10
  /**
10
- * Estimates token count for a single UIMessage by walking its parts.
11
- */
12
- export declare function estimateMessageTokens(message: UIMessage): number;
13
- /**
14
- * Estimates token counts for an array of UIMessages.
11
+ * Estimates token counts for an array of messages.
15
12
  * Returns per-message estimates in the same order.
16
13
  */
17
- export declare function estimateMessagesTokens(messages: UIMessage[]): {
18
- message: UIMessage<unknown, import("ai").UIDataTypes, import("ai").UITools>;
14
+ export declare function estimateMessagesTokens(messages: ChatMessage[]): {
15
+ message: ChatMessage;
19
16
  tokens: number;
20
17
  }[];
@@ -1,2 +1,2 @@
1
- import type { ResolvedCortexAgentConfig } from "../config.ts";
1
+ import type { ResolvedCortexAgentConfig } from "../config";
2
2
  export declare function fetchBackend(path: string, backendFetch: NonNullable<ResolvedCortexAgentConfig["backendFetch"]>, token: string, options?: RequestInit): Promise<Response>;
@@ -0,0 +1,23 @@
1
+ import type { ResolvedCortexAgentConfig } from "../config";
2
+ import type { ChatMessage, Thread } from "../types";
3
+ import type { CapturedStep } from "./inspector";
4
+ type FinishTurnOptions = {
5
+ /** What this run produced — the only messages the turn writes. */
6
+ messages: ChatMessage[];
7
+ /** The thread including them, which is what a summary has to be judged against. */
8
+ threadMessages: ChatMessage[];
9
+ isAborted: boolean;
10
+ assistantMessageId: string | undefined;
11
+ thread: Thread;
12
+ userId: string;
13
+ capturedSteps: CapturedStep[];
14
+ config: ResolvedCortexAgentConfig;
15
+ };
16
+ /**
17
+ * Persists everything a completed turn produced, then tells the client to refetch.
18
+ *
19
+ * The thread is re-read first: it may have been deleted mid-stream, in which case
20
+ * there is nothing to write to and the whole turn is discarded.
21
+ */
22
+ export declare function finishTurn(options: FinishTurnOptions): Promise<void>;
23
+ export {};
@@ -1,5 +1,38 @@
1
- import type { ResolvedCortexAgentConfig } from "../config.ts";
2
- export declare function createModel(config: ResolvedCortexAgentConfig["model"]): import("@ai-sdk/provider").LanguageModelV3;
3
- export declare function createEmbeddingModel(config: ResolvedCortexAgentConfig["embedding"]): import("@ai-sdk/provider").EmbeddingModelV3;
1
+ import { OpenAICompatibleChatAdapter } from "@tanstack/ai-openai/compatible";
2
+ /** Everything cortex needs to reach one OpenAI-compatible chat endpoint. */
3
+ export type ProviderConfig = {
4
+ baseURL: string;
5
+ apiKey: string;
6
+ modelName: string;
7
+ providerName?: string;
8
+ };
9
+ /**
10
+ * `openaiCompatible()` drops streamed reasoning: its `extractReasoning` hook is
11
+ * a no-op and nothing shipped overrides it. Cortex renders thinking parts, so it
12
+ * takes the sanctioned subclass seam and reads the `reasoning_content` delta.
13
+ */
14
+ declare class ReasoningChatAdapter extends OpenAICompatibleChatAdapter<string> {
15
+ protected extractReasoning(chunk: unknown): {
16
+ text: string;
17
+ } | undefined;
18
+ }
19
+ /**
20
+ * `fetch` is how the caller observes or rewrites the raw HTTP exchange — the LLM
21
+ * inspector captures through it, the vision model adapts `max_tokens` through it.
22
+ */
23
+ export declare function createModel(config: ProviderConfig, options?: {
24
+ name?: string;
25
+ fetch?: typeof globalThis.fetch;
26
+ }): ReasoningChatAdapter;
27
+ /** Vision calls cap output tokens, so they need the max_tokens parameter shim. */
28
+ export declare function createVisionModel(config: ProviderConfig): ReasoningChatAdapter;
4
29
  export declare function streamToBase64(stream: ReadableStream<Uint8Array>): Promise<string>;
5
- export declare function tokenToUserId(token: string): string;
30
+ /**
31
+ * OpenAI's newer models reject `max_tokens` in favor of `max_completion_tokens`,
32
+ * while most OpenAI-compatible gateways only accept `max_tokens`. Retry once on
33
+ * that specific rejection and remember the answer for this fetch's lifetime.
34
+ */
35
+ export declare function createMaxTokensAdaptingFetch(): ((input: string | URL | Request, init?: RequestInit) => Promise<Response>) & {
36
+ preconnect: typeof fetch.preconnect;
37
+ };
38
+ export {};
@@ -1,4 +1,7 @@
1
- import type { ResolvedCortexAgentConfig } from "../config.ts";
2
- import type { Thread } from "../types.ts";
3
- export declare function stream(messages: unknown[], thread: Thread, userId: string, token: string, requestContext: Record<string, unknown>, config: ResolvedCortexAgentConfig): Promise<Response>;
1
+ import { chatParamsFromRequest } from "@tanstack/ai";
2
+ import type { ResolvedCortexAgentConfig } from "../config";
3
+ import type { Thread } from "../types";
4
+ /** The AG-UI request body, as the route parsed it. */
5
+ export type TurnParams = Awaited<ReturnType<typeof chatParamsFromRequest>>;
6
+ export declare function startTurn(params: TurnParams, thread: Thread, userId: string, token: string, requestContext: Record<string, unknown>, config: ResolvedCortexAgentConfig): Promise<Response | null>;
4
7
  export declare function generateTitle(threadId: string, prompt: string, userId: string, config: ResolvedCortexAgentConfig): Promise<void>;
@@ -0,0 +1,41 @@
1
+ import type { ChatMiddleware, TokenUsage as ProviderTokenUsage } from "@tanstack/ai";
2
+ import type { TokenUsage } from "../types";
3
+ /** One model call's raw exchange, as the LLM request inspector renders it. */
4
+ export type CapturedStep = {
5
+ prompt: string;
6
+ output: string | null;
7
+ tokenUsage: TokenUsage | null;
8
+ };
9
+ /**
10
+ * Watches one turn's model calls. The SDK's `debug` logger reports call metadata
11
+ * but never raw bodies, so the raw exchange is captured where it actually
12
+ * exists — on the HTTP client — while usage arrives through middleware.
13
+ */
14
+ export declare function createInspector(): {
15
+ steps: CapturedStep[];
16
+ middleware: ChatMiddleware<unknown>;
17
+ fetch: ((input: string | URL | Request, init?: RequestInit) => Promise<Response>) & {
18
+ preconnect: typeof fetch.preconnect;
19
+ };
20
+ readonly modelId: string;
21
+ readonly tokenUsage: TokenUsage | undefined;
22
+ };
23
+ /**
24
+ * Flattens the provider's usage shape into ours. The provider reports cached and
25
+ * cache-written prompt tokens but no uncached counter, so that dimension is the
26
+ * remainder — which is what makes the client's breakdown add up to the total.
27
+ */
28
+ export declare function toTokenUsage(usage: ProviderTokenUsage): {
29
+ input: {
30
+ noCache: number;
31
+ cacheRead: number;
32
+ cacheWrite: number;
33
+ total: number;
34
+ };
35
+ output: {
36
+ reasoning: number;
37
+ text: number;
38
+ total: number;
39
+ };
40
+ total: number;
41
+ };
@@ -1,5 +1,5 @@
1
- import type { DatabaseAdapter } from "../../adapters/database.ts";
2
- import type { StorageAdapter } from "../../adapters/storage.ts";
1
+ import type { DatabaseAdapter } from "../../adapters/database/index";
2
+ import type { StorageAdapter } from "../../adapters/storage/index";
3
3
  export type ResolvedFile = {
4
4
  name: string;
5
5
  bytes: string;
@@ -7,6 +7,7 @@ export type ResolvedFile = {
7
7
  export type RequestInterceptorOptions = {
8
8
  transformFile?: (file: ResolvedFile) => unknown;
9
9
  };
10
- export declare function createRequestInterceptor(db: DatabaseAdapter, storage: StorageAdapter, options?: RequestInterceptorOptions): (body: Record<string, unknown>, context: {
11
- token: string;
12
- }) => Promise<Record<string, unknown>>;
10
+ export declare function createRequestInterceptor(db: DatabaseAdapter, storage: StorageAdapter, options: RequestInterceptorOptions & {
11
+ threadId: string;
12
+ userId: string;
13
+ }): (body: Record<string, unknown>) => Promise<Record<string, unknown>>;
@@ -1,9 +1,10 @@
1
- import type { ResolvedContext } from "../graph/resolver.ts";
2
- import type { PromptContext, ResolvedCortexAgentConfig } from "../config.ts";
3
- import type { Thread } from "../types.ts";
1
+ import type { ResolvedContext } from "../graph/resolver";
2
+ import type { PromptContext, ResolvedCortexAgentConfig } from "../config";
3
+ import type { Thread } from "../types";
4
+ import type { CcPromptInput } from "../cc/format";
4
5
  /**
5
6
  * Resolves session data for the thread, loading from the configured
6
7
  * session loader if not already cached on the thread.
7
8
  */
8
9
  export declare function resolveSession(config: ResolvedCortexAgentConfig, thread: Thread, token: string): Promise<Record<string, unknown> | null>;
9
- export declare function buildSystemPrompt(config: ResolvedCortexAgentConfig, resolved: ResolvedContext | null, promptContext: PromptContext): Promise<string>;
10
+ export declare function buildSystemPrompt(config: ResolvedCortexAgentConfig, resolved: ResolvedContext | null, promptContext: PromptContext, cc?: CcPromptInput, attachmentListing?: string): Promise<string>;
@@ -0,0 +1,41 @@
1
+ import type { RedisConnections } from "../redis";
2
+ import type { ActiveRun } from "./active-runs";
3
+ import { offsetBelongsToRun } from "./redis-stream-log";
4
+ type RedisRunOptions = {
5
+ streamTtlSeconds?: number;
6
+ };
7
+ export declare function createRedisRuns(connections: RedisConnections, options?: RedisRunOptions): {
8
+ startRun(threadId: string): Promise<ActiveRun>;
9
+ getRunId(threadId: string): Promise<string | undefined>;
10
+ runningThreadIds(threadIds: string[]): Promise<Set<string>>;
11
+ abortRun: (threadId: string) => Promise<boolean>;
12
+ endRun(threadId: string, runId: string): Promise<void>;
13
+ producerLog(runId: string): {
14
+ resumeFrom: () => string | null;
15
+ append: (chunks: import("@tanstack/ai").AGUIEvent[]) => Promise<string[]>;
16
+ snapshot: () => Promise<{
17
+ offset: string;
18
+ chunk: import("@tanstack/ai").StreamChunk;
19
+ }[]>;
20
+ close: () => Promise<void>;
21
+ read: (offset: string, signal?: AbortSignal) => AsyncGenerator<{
22
+ offset: string;
23
+ chunk: import("@tanstack/ai").StreamChunk;
24
+ }, void, any>;
25
+ };
26
+ joinLog(threadId: string, runId: string, offset?: string | undefined): {
27
+ resumeFrom: () => string | null;
28
+ append: (chunks: import("@tanstack/ai").AGUIEvent[]) => Promise<string[]>;
29
+ snapshot: () => Promise<{
30
+ offset: string;
31
+ chunk: import("@tanstack/ai").StreamChunk;
32
+ }[]>;
33
+ close: () => Promise<void>;
34
+ read: (offset: string, signal?: AbortSignal) => AsyncGenerator<{
35
+ offset: string;
36
+ chunk: import("@tanstack/ai").StreamChunk;
37
+ }, void, any>;
38
+ };
39
+ offsetBelongsToRun: typeof offsetBelongsToRun;
40
+ };
41
+ export {};
@@ -0,0 +1,39 @@
1
+ import type { Redis } from "ioredis";
2
+ import type { StreamChunk } from "@tanstack/ai";
3
+ /**
4
+ * Whether a client-supplied resume offset belongs to `runId`. The offset names
5
+ * the log it replays, so an offset naming another run would replay that run's
6
+ * log to whoever presents it — matching the prefix this adapter encodes is what
7
+ * binds a resume to the thread the caller owns.
8
+ */
9
+ export declare function offsetBelongsToRun(offset: string, runId: string): boolean;
10
+ type RedisStreamLogOptions = {
11
+ /** `null` builds a producer (appends flow into the log); an offset builds a reader. */
12
+ resumeOffset: string | null;
13
+ /** How long the log stays replayable after its last append or `close()`. */
14
+ streamTtlMs: number;
15
+ /** How long a reader waits for the run's first entry before failing. */
16
+ firstChunkDeadlineMs: number;
17
+ /**
18
+ * Whether the run's producer is still alive. While it is, a caught-up
19
+ * reader parks indefinitely between chunks — the producer owns termination.
20
+ * Once it reports dead with the log still unclosed, the run was orphaned
21
+ * (producer crashed before `close()`), and the read fails so the joiner
22
+ * gets a terminal error instead of tailing forever.
23
+ */
24
+ isLive?: () => Promise<boolean>;
25
+ };
26
+ export declare function redisStreamLog(redis: Redis, runId: string, options: RedisStreamLogOptions): {
27
+ resumeFrom: () => string | null;
28
+ append: (chunks: import("@tanstack/ai").AGUIEvent[]) => Promise<string[]>;
29
+ snapshot: () => Promise<{
30
+ offset: string;
31
+ chunk: StreamChunk;
32
+ }[]>;
33
+ close: () => Promise<void>;
34
+ read: (offset: string, signal?: AbortSignal) => AsyncGenerator<{
35
+ offset: string;
36
+ chunk: StreamChunk;
37
+ }, void, any>;
38
+ };
39
+ export {};
@@ -1,4 +1,18 @@
1
- import type { ResolvedCortexAgentConfig } from "../../config.ts";
2
- export declare function createExecuteCodeTool(backendFetch: NonNullable<ResolvedCortexAgentConfig["backendFetch"]>, token: string): import("ai").Tool<{
3
- code: string;
4
- }, string>;
1
+ import z from "zod";
2
+ import type { ResolvedCortexAgentConfig } from "../../config";
3
+ import type { CcRuntime } from "../../cc/registry";
4
+ export type ExecuteCodeToolOptions = {
5
+ backendFetch?: NonNullable<ResolvedCortexAgentConfig["backendFetch"]>;
6
+ attachmentSentinels?: boolean;
7
+ token: string;
8
+ cc?: CcRuntime;
9
+ };
10
+ export declare function createExecuteCodeTool(options: ExecuteCodeToolOptions): import("@tanstack/ai").ServerTool<z.ZodObject<{
11
+ code: z.ZodString;
12
+ }, z.core.$strip>, undefined, "executeCode", unknown, false, undefined> & {
13
+ inputSchema: z.ZodObject<{
14
+ code: z.ZodString;
15
+ }, z.core.$strip>;
16
+ outputSchema: undefined;
17
+ approvalSchema: undefined;
18
+ };
@@ -1,5 +1,13 @@
1
- import type { Neo4jClient } from "../../graph/neo4j.ts";
2
- export declare function createQueryGraphTool(neo4j: Neo4jClient): import("ai").Tool<{
3
- query: string;
4
- parameters?: string | undefined;
5
- }, string>;
1
+ import z from "zod";
2
+ import type { Neo4jClient } from "../../../../contracts/graph";
3
+ export declare function createQueryGraphTool(neo4j: Neo4jClient): import("@tanstack/ai").ServerTool<z.ZodObject<{
4
+ query: z.ZodString;
5
+ parameters: z.ZodOptional<z.ZodString>;
6
+ }, z.core.$strip>, undefined, "queryGraph", unknown, false, undefined> & {
7
+ inputSchema: z.ZodObject<{
8
+ query: z.ZodString;
9
+ parameters: z.ZodOptional<z.ZodString>;
10
+ }, z.core.$strip>;
11
+ outputSchema: undefined;
12
+ approvalSchema: undefined;
13
+ };
@@ -0,0 +1,21 @@
1
+ import z from "zod";
2
+ import type { ResolvedCortexAgentConfig } from "../../config";
3
+ type ReadAttachmentToolOptions = {
4
+ db: ResolvedCortexAgentConfig["db"];
5
+ storage: NonNullable<ResolvedCortexAgentConfig["storage"]>;
6
+ vision: NonNullable<ResolvedCortexAgentConfig["vision"]>;
7
+ threadId: string;
8
+ userId: string;
9
+ };
10
+ export declare function createReadAttachmentTool(options: ReadAttachmentToolOptions): import("@tanstack/ai").ServerTool<z.ZodObject<{
11
+ attachmentId: z.ZodString;
12
+ query: z.ZodString;
13
+ }, z.core.$strip>, undefined, "readAttachment", unknown, false, undefined> & {
14
+ inputSchema: z.ZodObject<{
15
+ attachmentId: z.ZodString;
16
+ query: z.ZodString;
17
+ }, z.core.$strip>;
18
+ outputSchema: undefined;
19
+ approvalSchema: undefined;
20
+ };
21
+ export {};
@@ -0,0 +1,17 @@
1
+ import z from "zod";
2
+ import type { CcRuntime } from "../../cc/registry";
3
+ /** The input shape all three catalog search tools share; only the query hint differs. */
4
+ export declare function searchInputSchema(queryDescription: string): z.ZodObject<{
5
+ query: z.ZodString;
6
+ limit: z.ZodOptional<z.ZodNumber>;
7
+ }, z.core.$strip>;
8
+ /** The runtime search request those tools send: the model's input plus the turn's context. */
9
+ export declare function searchRequest(cc: CcRuntime, input: {
10
+ query: string;
11
+ limit?: number;
12
+ }): {
13
+ locale: "en" | "ar";
14
+ threadId: string;
15
+ query: string;
16
+ limit?: number;
17
+ };
@@ -0,0 +1,15 @@
1
+ import z from "zod";
2
+ import type { CcRuntime } from "../../cc/registry";
3
+ export declare function createSearchKnowledgeTool(cc: CcRuntime): import("@tanstack/ai").ServerTool<z.ZodObject<{
4
+ query: z.ZodString;
5
+ limit: z.ZodOptional<z.ZodNumber>;
6
+ service: z.ZodOptional<z.ZodString>;
7
+ }, z.core.$strip>, undefined, "searchKnowledge", unknown, false, undefined> & {
8
+ inputSchema: z.ZodObject<{
9
+ query: z.ZodString;
10
+ limit: z.ZodOptional<z.ZodNumber>;
11
+ service: z.ZodOptional<z.ZodString>;
12
+ }, z.core.$strip>;
13
+ outputSchema: undefined;
14
+ approvalSchema: undefined;
15
+ };
@@ -0,0 +1,12 @@
1
+ import type { CcRuntime } from "../../cc/registry";
2
+ export declare function createSearchServicesTool(cc: CcRuntime): import("@tanstack/ai").ServerTool<import("zod").ZodObject<{
3
+ query: import("zod").ZodString;
4
+ limit: import("zod").ZodOptional<import("zod").ZodNumber>;
5
+ }, import("zod/v4/core").$strip>, undefined, "searchServices", unknown, false, undefined> & {
6
+ inputSchema: import("zod").ZodObject<{
7
+ query: import("zod").ZodString;
8
+ limit: import("zod").ZodOptional<import("zod").ZodNumber>;
9
+ }, import("zod/v4/core").$strip>;
10
+ outputSchema: undefined;
11
+ approvalSchema: undefined;
12
+ };
@@ -0,0 +1,12 @@
1
+ import type { CcRuntime } from "../../cc/registry";
2
+ export declare function createSearchToolsTool(cc: CcRuntime): import("@tanstack/ai").ServerTool<import("zod").ZodObject<{
3
+ query: import("zod").ZodString;
4
+ limit: import("zod").ZodOptional<import("zod").ZodNumber>;
5
+ }, import("zod/v4/core").$strip>, undefined, "searchTools", unknown, false, undefined> & {
6
+ inputSchema: import("zod").ZodObject<{
7
+ query: import("zod").ZodString;
8
+ limit: import("zod").ZodOptional<import("zod").ZodNumber>;
9
+ }, import("zod/v4/core").$strip>;
10
+ outputSchema: undefined;
11
+ approvalSchema: undefined;
12
+ };
@@ -0,0 +1,39 @@
1
+ import type { AnyServerTool } from "@tanstack/ai";
2
+ import type { ResolvedCortexAgentConfig } from "../config";
3
+ import type { Attachment, Thread } from "../types";
4
+ import type { CcRuntime } from "../cc/registry";
5
+ import type { Neo4jClient } from "../../../contracts/graph";
6
+ type TurnToolsOptions = {
7
+ config: ResolvedCortexAgentConfig;
8
+ cc: CcRuntime | undefined;
9
+ neo4j: Neo4jClient | undefined;
10
+ thread: Thread;
11
+ userId: string;
12
+ token: string;
13
+ session: Record<string, unknown> | null;
14
+ requestContext: Record<string, unknown>;
15
+ threadAttachments: Attachment[];
16
+ };
17
+ /**
18
+ * Assembles the tool set for one turn: built-ins gated on what the agent has
19
+ * configured, then the agent's own tools.
20
+ *
21
+ * User tools are appended last and deliberately win on name collision — an agent
22
+ * must be able to replace a built-in it doesn't want.
23
+ */
24
+ export declare function buildTurnTools(options: TurnToolsOptions): AnyServerTool[];
25
+ /**
26
+ * Instruments tool calls for the callbacks an agent configured. Returns
27
+ * `undefined` when nothing is listening, so the caller can skip the middleware
28
+ * entirely.
29
+ */
30
+ export declare function createToolInstrumentation(options: TurnToolsOptions & {
31
+ onToolStart: (toolName: string, toolCallId: string) => void;
32
+ onToolFinish: (toolName: string, toolCallId: string) => void;
33
+ }): {
34
+ name: string;
35
+ onBeforeToolCall(_ctx: import("@tanstack/ai").ChatMiddlewareContext<unknown>, { toolName, toolCallId, args }: import("@tanstack/ai").ToolCallHookContext): void;
36
+ onAfterToolCall(_ctx: import("@tanstack/ai").ChatMiddlewareContext<unknown>, { toolName, toolCallId }: import("@tanstack/ai").AfterToolCallInfo): void;
37
+ } | undefined;
38
+ export declare function hasDefaultAttachmentInterceptor(config: ResolvedCortexAgentConfig): boolean;
39
+ export {};
@@ -0,0 +1,26 @@
1
+ export type RasterizedPdf = {
2
+ pages: {
3
+ data: Uint8Array;
4
+ width: number;
5
+ height: number;
6
+ }[];
7
+ totalPages: number;
8
+ truncatedBy?: "page-limit" | "payload-limit";
9
+ };
10
+ export type RasterizePdfWorkerRequest = {
11
+ bytes: Uint8Array;
12
+ maxPayloadBytes?: number;
13
+ };
14
+ export type RasterizePdfWorkerResponse = {
15
+ status: "success";
16
+ result: RasterizedPdf;
17
+ } | {
18
+ status: "error";
19
+ message: string;
20
+ };
21
+ type RasterizePdfOptions = {
22
+ abortSignal?: AbortSignal;
23
+ maxPayloadBytes?: number;
24
+ };
25
+ export declare function rasterizePdf(bytes: Uint8Array, options?: RasterizePdfOptions): Promise<RasterizedPdf>;
26
+ export {};
@@ -0,0 +1 @@
1
+ export {};
@@ -0,0 +1,45 @@
1
+ import type { ResolvedCortexAgentConfig } from "../../config";
2
+ type VisionConfig = NonNullable<ResolvedCortexAgentConfig["vision"]>;
3
+ export declare function describeAttachment(vision: VisionConfig, contentType: string, base64: string, abortSignal?: AbortSignal): Promise<{
4
+ status: "skipped";
5
+ error?: undefined;
6
+ text?: undefined;
7
+ note?: undefined;
8
+ } | {
9
+ status: "failed";
10
+ error: string;
11
+ text?: undefined;
12
+ note?: undefined;
13
+ } | {
14
+ status: "success";
15
+ text: string;
16
+ note: string;
17
+ error?: undefined;
18
+ } | {
19
+ status: "failed";
20
+ error?: undefined;
21
+ text?: undefined;
22
+ note?: undefined;
23
+ }>;
24
+ export declare function answerQuestionAbout(vision: VisionConfig, contentType: string, base64: string, query: string, abortSignal?: AbortSignal): Promise<{
25
+ status: "skipped";
26
+ error?: undefined;
27
+ text?: undefined;
28
+ note?: undefined;
29
+ } | {
30
+ status: "failed";
31
+ error: string;
32
+ text?: undefined;
33
+ note?: undefined;
34
+ } | {
35
+ status: "success";
36
+ text: string;
37
+ note: string;
38
+ error?: undefined;
39
+ } | {
40
+ status: "failed";
41
+ error?: undefined;
42
+ text?: undefined;
43
+ note?: undefined;
44
+ }>;
45
+ export {};