@m6d/cortex-server 1.6.0 → 1.8.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 (254) hide show
  1. package/dist/index.d.ts +1 -1
  2. package/dist/src/{adapters → lib/adapters}/database.d.ts +16 -1
  3. package/dist/src/lib/ai/context/compressor.d.ts +18 -0
  4. package/dist/src/{ai → lib/ai}/context/index.d.ts +2 -1
  5. package/dist/src/lib/ai/context/intra-turn-compressor.d.ts +24 -0
  6. package/dist/src/{ai → lib/ai}/context/types.d.ts +2 -0
  7. package/dist/src/lib/config.d.ts +153 -0
  8. package/dist/src/{db → lib/db}/schema.d.ts +104 -1
  9. package/dist/src/{index.d.ts → lib/index.d.ts} +2 -2
  10. package/dist/src/{types.d.ts → lib/types.d.ts} +15 -14
  11. package/index.ts +1 -1
  12. package/package.json +8 -3
  13. package/src/{adapters → lib/adapters}/database.ts +20 -1
  14. package/src/{adapters → lib/adapters}/minio.ts +2 -1
  15. package/src/{adapters → lib/adapters}/mssql.ts +38 -2
  16. package/src/lib/ai/context/compressor.ts +259 -0
  17. package/src/{ai → lib/ai}/context/index.ts +6 -1
  18. package/src/lib/ai/context/intra-turn-compressor.ts +264 -0
  19. package/src/{ai → lib/ai}/context/types.ts +4 -1
  20. package/src/{ai → lib/ai}/index.ts +114 -13
  21. package/src/lib/ai/prompt.ts +354 -0
  22. package/src/{ai → lib/ai}/tools/execute-code.tool.ts +5 -2
  23. package/src/{auth → lib/auth}/middleware.ts +7 -0
  24. package/src/lib/config.ts +181 -0
  25. package/src/{db/migrations/20260309012148_cloudy_maria_hill → lib/db/migrations/20260326231647_nice_speedball}/migration.sql +12 -0
  26. package/src/{db/migrations/20260309012148_cloudy_maria_hill → lib/db/migrations/20260326231647_nice_speedball}/snapshot.json +106 -1
  27. package/src/{db → lib/db}/schema.ts +15 -2
  28. package/src/{factory.ts → lib/factory.ts} +1 -0
  29. package/src/{index.ts → lib/index.ts} +3 -1
  30. package/src/{routes → lib/routes}/files.ts +9 -2
  31. package/src/{routes → lib/routes}/threads.ts +8 -1
  32. package/src/{types.ts → lib/types.ts} +16 -15
  33. package/src/sample/db/client.ts +9 -0
  34. package/src/sample/db/migrations/20260411023125_rich_purple_man/migration.sql +5 -0
  35. package/src/sample/db/migrations/20260411023125_rich_purple_man/snapshot.json +50 -0
  36. package/src/sample/db/schema.ts +10 -0
  37. package/src/sample/domains/account/concepts/session.concept.ts +17 -0
  38. package/src/sample/domains/account/endpoints/listCurrentSessions.endpoint.ts +31 -0
  39. package/src/sample/domains/account/endpoints/revokeAllOtherSessions.endpoint.ts +22 -0
  40. package/src/sample/domains/account/endpoints/revokeCurrentSession.endpoint.ts +33 -0
  41. package/src/sample/domains/account/index.ts +18 -0
  42. package/src/sample/domains/appraisals/concepts/appraisalCycle.concept.ts +15 -0
  43. package/src/sample/domains/appraisals/concepts/appraisalRecord.concept.ts +20 -0
  44. package/src/sample/domains/appraisals/concepts/appraisalRecordCompetency.concept.ts +10 -0
  45. package/src/sample/domains/appraisals/concepts/appraisalRecordFunctionalRequirement.concept.ts +10 -0
  46. package/src/sample/domains/appraisals/concepts/appraisalRecordGoal.concept.ts +17 -0
  47. package/src/sample/domains/appraisals/endpoints/getAppraisalRecordById.endpoint.ts +321 -0
  48. package/src/sample/domains/appraisals/endpoints/getAppraisalRecordCompetencies.endpoint.ts +120 -0
  49. package/src/sample/domains/appraisals/endpoints/getAppraisalRecordFunctionalRequirements.endpoint.ts +126 -0
  50. package/src/sample/domains/appraisals/endpoints/getAppraisalRecordGoals.endpoint.ts +104 -0
  51. package/src/sample/domains/appraisals/endpoints/getAppraisalRecordScore.endpoint.ts +58 -0
  52. package/src/sample/domains/appraisals/endpoints/listAppraisalCyclesSimple.endpoint.ts +52 -0
  53. package/src/sample/domains/appraisals/endpoints/listAppraisalRecords.endpoint.ts +245 -0
  54. package/src/sample/domains/appraisals/endpoints/listAppraisalTemplatesSimple.endpoint.ts +52 -0
  55. package/src/sample/domains/appraisals/index.ts +40 -0
  56. package/src/sample/domains/appraisals/rules/appraisalRecordScoping.rule.ts +7 -0
  57. package/src/sample/domains/attendance/concepts/attendancePermission.concept.ts +17 -0
  58. package/src/sample/domains/attendance/concepts/attendanceTransaction.concept.ts +17 -0
  59. package/src/sample/domains/attendance/concepts/publicHoliday.concept.ts +10 -0
  60. package/src/sample/domains/attendance/concepts/punch.concept.ts +19 -0
  61. package/src/sample/domains/attendance/endpoints/getAttendanceTransactionById.endpoint.ts +444 -0
  62. package/src/sample/domains/attendance/endpoints/getCurrentAttendanceProfile.endpoint.ts +886 -0
  63. package/src/sample/domains/attendance/endpoints/getCurrentAttendanceStatistics.endpoint.ts +49 -0
  64. package/src/sample/domains/attendance/endpoints/listAttendancePermissions.endpoint.ts +176 -0
  65. package/src/sample/domains/attendance/endpoints/listAttendanceTransactionStates.endpoint.ts +26 -0
  66. package/src/sample/domains/attendance/endpoints/listAttendanceTransactions.endpoint.ts +373 -0
  67. package/src/sample/domains/attendance/endpoints/listPublicHolidaysSimple.endpoint.ts +52 -0
  68. package/src/sample/domains/attendance/endpoints/listPunchTypes.endpoint.ts +25 -0
  69. package/src/sample/domains/attendance/endpoints/listPunches.endpoint.ts +178 -0
  70. package/src/sample/domains/attendance/index.ts +41 -0
  71. package/src/sample/domains/attendance/services/attendancePermissions.service.ts +15 -0
  72. package/src/sample/domains/employees/concepts/employee.concept.ts +20 -0
  73. package/src/sample/domains/employees/concepts/employeeBankAccount.concept.ts +19 -0
  74. package/src/sample/domains/employees/concepts/employeeChild.concept.ts +19 -0
  75. package/src/sample/domains/employees/concepts/employeeDocument.concept.ts +21 -0
  76. package/src/sample/domains/employees/concepts/employeeEvent.concept.ts +21 -0
  77. package/src/sample/domains/employees/concepts/employeeExperience.concept.ts +18 -0
  78. package/src/sample/domains/employees/concepts/employeeJobLevelChange.concept.ts +21 -0
  79. package/src/sample/domains/employees/concepts/employeeMedal.concept.ts +20 -0
  80. package/src/sample/domains/employees/concepts/employeeQualification.concept.ts +20 -0
  81. package/src/sample/domains/employees/concepts/employeeSpouse.concept.ts +21 -0
  82. package/src/sample/domains/employees/concepts/employeeViolation.concept.ts +19 -0
  83. package/src/sample/domains/employees/endpoints/getCurrentEmployee.endpoint.ts +1651 -0
  84. package/src/sample/domains/employees/endpoints/getCurrentIdentity.endpoint.ts +197 -0
  85. package/src/sample/domains/employees/endpoints/getCurrentManagers.endpoint.ts +142 -0
  86. package/src/sample/domains/employees/endpoints/getEmployeeById.endpoint.ts +1659 -0
  87. package/src/sample/domains/employees/endpoints/getEmployeeStatistics.endpoint.ts +43 -0
  88. package/src/sample/domains/employees/endpoints/listBankAccounts.endpoint.ts +223 -0
  89. package/src/sample/domains/employees/endpoints/listChildren.endpoint.ts +211 -0
  90. package/src/sample/domains/employees/endpoints/listDocuments.endpoint.ts +222 -0
  91. package/src/sample/domains/employees/endpoints/listEmployeesSimple.endpoint.ts +156 -0
  92. package/src/sample/domains/employees/endpoints/listEvents.endpoint.ts +120 -0
  93. package/src/sample/domains/employees/endpoints/listExperiences.endpoint.ts +188 -0
  94. package/src/sample/domains/employees/endpoints/listJobLevelChanges.endpoint.ts +240 -0
  95. package/src/sample/domains/employees/endpoints/listMedals.endpoint.ts +266 -0
  96. package/src/sample/domains/employees/endpoints/listQualifications.endpoint.ts +265 -0
  97. package/src/sample/domains/employees/endpoints/listSpouses.endpoint.ts +278 -0
  98. package/src/sample/domains/employees/endpoints/listViolations.endpoint.ts +245 -0
  99. package/src/sample/domains/employees/index.ts +75 -0
  100. package/src/sample/domains/employees/services/employees.service.ts +181 -0
  101. package/src/sample/domains/index.ts +10 -0
  102. package/src/sample/domains/leaves/concepts/leave.concept.ts +21 -0
  103. package/src/sample/domains/leaves/concepts/leaveBalance.concept.ts +17 -0
  104. package/src/sample/domains/leaves/concepts/leaveBalanceTransaction.concept.ts +16 -0
  105. package/src/sample/domains/leaves/concepts/leaveType.concept.ts +13 -0
  106. package/src/sample/domains/leaves/concepts/leaveTypes.concept.ts +205 -0
  107. package/src/sample/domains/leaves/endpoints/getBalance.endpoint.ts +53 -0
  108. package/src/sample/domains/leaves/endpoints/getLeaveById.endpoint.ts +53 -0
  109. package/src/sample/domains/leaves/endpoints/listBalanceTransactions.endpoint.ts +196 -0
  110. package/src/sample/domains/leaves/endpoints/listBalanceTypes.endpoint.ts +26 -0
  111. package/src/sample/domains/leaves/endpoints/listBalances.endpoint.ts +201 -0
  112. package/src/sample/domains/leaves/endpoints/listLeaveTypes.endpoint.ts +28 -0
  113. package/src/sample/domains/leaves/endpoints/listLeaves.endpoint.ts +234 -0
  114. package/src/sample/domains/leaves/index.ts +38 -0
  115. package/src/sample/domains/leaves/services/leaveRequests.service.ts +232 -0
  116. package/src/sample/domains/notifications/concepts/notification.concept.ts +19 -0
  117. package/src/sample/domains/notifications/endpoints/countMyNotifications.endpoint.ts +21 -0
  118. package/src/sample/domains/notifications/endpoints/getMyNotification.endpoint.ts +57 -0
  119. package/src/sample/domains/notifications/endpoints/listMyNotifications.endpoint.ts +59 -0
  120. package/src/sample/domains/notifications/endpoints/markMyNotificationAsRead.endpoint.ts +32 -0
  121. package/src/sample/domains/notifications/index.ts +20 -0
  122. package/src/sample/domains/payroll/concepts/payslip.concept.ts +18 -0
  123. package/src/sample/domains/payroll/concepts/salaryCertificate.concept.ts +17 -0
  124. package/src/sample/domains/payroll/concepts/salaryCertificateRequestingEntity.concept.ts +8 -0
  125. package/src/sample/domains/payroll/endpoints/getPayslipById.endpoint.ts +238 -0
  126. package/src/sample/domains/payroll/endpoints/listPayslips.endpoint.ts +216 -0
  127. package/src/sample/domains/payroll/endpoints/listSalaryCertificateLanguages.endpoint.ts +25 -0
  128. package/src/sample/domains/payroll/endpoints/listSalaryCertificateRequestingEntities.endpoint.ts +62 -0
  129. package/src/sample/domains/payroll/endpoints/listSalaryCertificateTypes.endpoint.ts +24 -0
  130. package/src/sample/domains/payroll/endpoints/listSalaryCertificates.endpoint.ts +122 -0
  131. package/src/sample/domains/payroll/endpoints/previewSalaryCertificate.endpoint.ts +45 -0
  132. package/src/sample/domains/payroll/index.ts +32 -0
  133. package/src/sample/domains/payroll/rules/payrollEmployeeContext.rule.ts +7 -0
  134. package/src/sample/domains/payroll/services/salaryCertificates.service.ts +15 -0
  135. package/src/sample/domains/servicing/concepts/service.concept.ts +6 -0
  136. package/src/sample/domains/servicing/concepts/serviceRequest.concept.ts +12 -0
  137. package/src/sample/domains/servicing/concepts/serviceRequestApproval.concept.ts +9 -0
  138. package/src/sample/domains/servicing/endpoints/cancelServiceRequest.endpoint.ts +21 -0
  139. package/src/sample/domains/servicing/endpoints/createServiceRequest.endpoint.ts +511 -0
  140. package/src/sample/domains/servicing/endpoints/getServiceRequest.endpoint.ts +352 -0
  141. package/src/sample/domains/servicing/endpoints/getServiceRequestFormItems.endpoint.ts +219 -0
  142. package/src/sample/domains/servicing/endpoints/getServiceRequestTransactionFormItems.endpoint.ts +216 -0
  143. package/src/sample/domains/servicing/endpoints/getServiceStates.endpoint.ts +47 -0
  144. package/src/sample/domains/servicing/endpoints/invokeServiceRequestAction.endpoint.ts +139 -0
  145. package/src/sample/domains/servicing/endpoints/listServiceRequests.endpoint.ts +292 -0
  146. package/src/sample/domains/servicing/endpoints/listServices.endpoint.ts +108 -0
  147. package/src/sample/domains/servicing/endpoints/updateServiceRequest.endpoint.ts +355 -0
  148. package/src/sample/domains/servicing/index.ts +44 -0
  149. package/src/sample/domains/servicing/rules/checkValidActions.rule.ts +7 -0
  150. package/src/sample/domains/servicing/rules/createServiceRequest.rule.ts +7 -0
  151. package/src/sample/domains/servicing/rules/filterServiceRequestsByState.rule.ts +7 -0
  152. package/src/sample/domains/servicing/rules/passingOptionFields.rule.ts +7 -0
  153. package/src/sample/domains/shared/rules/pagination.rule.ts +7 -0
  154. package/src/sample/domains/suggestions/concepts/suggestion.concept.ts +19 -0
  155. package/src/sample/domains/suggestions/concepts/suggestionCategory.concept.ts +7 -0
  156. package/src/sample/domains/suggestions/concepts/suggestionImpactLevel.concept.ts +7 -0
  157. package/src/sample/domains/suggestions/endpoints/createSuggestion.endpoint.ts +705 -0
  158. package/src/sample/domains/suggestions/endpoints/deleteSuggestion.endpoint.ts +32 -0
  159. package/src/sample/domains/suggestions/endpoints/getSuggestionById.endpoint.ts +635 -0
  160. package/src/sample/domains/suggestions/endpoints/listSuggestionCategories.endpoint.ts +62 -0
  161. package/src/sample/domains/suggestions/endpoints/listSuggestionImpactLevels.endpoint.ts +62 -0
  162. package/src/sample/domains/suggestions/endpoints/listSuggestionStates.endpoint.ts +24 -0
  163. package/src/sample/domains/suggestions/endpoints/listSuggestions.endpoint.ts +132 -0
  164. package/src/sample/domains/suggestions/endpoints/updateSuggestion.endpoint.ts +690 -0
  165. package/src/sample/domains/suggestions/endpoints/updateSuggestionState.endpoint.ts +39 -0
  166. package/src/sample/domains/suggestions/index.ts +34 -0
  167. package/src/sample/domains/suggestions/rules/suggestionScope.rule.ts +7 -0
  168. package/src/sample/domains/surveys/concepts/survey.concept.ts +10 -0
  169. package/src/sample/domains/surveys/concepts/surveyResponse.concept.ts +14 -0
  170. package/src/sample/domains/surveys/endpoints/getSurveyResponseById.endpoint.ts +131 -0
  171. package/src/sample/domains/surveys/endpoints/getTargetedSurvey.endpoint.ts +129 -0
  172. package/src/sample/domains/surveys/endpoints/listTargetedSurveys.endpoint.ts +160 -0
  173. package/src/sample/domains/surveys/endpoints/respondToSurvey.endpoint.ts +144 -0
  174. package/src/sample/domains/surveys/index.ts +21 -0
  175. package/src/sample/drizzle.config.ts +11 -0
  176. package/src/sample/index.bak.ts +341 -0
  177. package/src/sample/index.ts +318 -0
  178. package/src/sample/official-statements/defaults.ts +57 -0
  179. package/src/sample/official-statements/routes.ts +137 -0
  180. package/src/sample/official-statements/service.ts +148 -0
  181. package/src/sample/official-statements/types.ts +23 -0
  182. package/dist/src/ai/context/compressor.d.ts +0 -7
  183. package/dist/src/ai/tools/call-endpoint.tool.d.ts +0 -7
  184. package/dist/src/config.d.ts +0 -159
  185. package/src/ai/context/compressor.ts +0 -47
  186. package/src/ai/prompt.ts +0 -126
  187. package/src/ai/tools/call-endpoint.tool.ts +0 -89
  188. package/src/config.ts +0 -164
  189. package/src/db/migrations/20260315000000_add_context_meta/migration.sql +0 -1
  190. package/dist/src/{adapters → lib/adapters}/minio.d.ts +0 -0
  191. package/dist/src/{adapters → lib/adapters}/mssql.d.ts +0 -0
  192. package/dist/src/{adapters → lib/adapters}/storage.d.ts +0 -0
  193. package/dist/src/{ai → lib/ai}/active-streams.d.ts +0 -0
  194. package/dist/src/{ai → lib/ai}/context/builder.d.ts +0 -0
  195. package/dist/src/{ai → lib/ai}/context/summarizer.d.ts +0 -0
  196. package/dist/src/{ai → lib/ai}/context/token-estimator.d.ts +0 -0
  197. package/dist/src/{ai → lib/ai}/fetch.d.ts +0 -0
  198. package/dist/src/{ai → lib/ai}/helpers.d.ts +0 -0
  199. package/dist/src/{ai → lib/ai}/index.d.ts +0 -0
  200. package/dist/src/{ai → lib/ai}/interceptors/request-interceptor.d.ts +0 -0
  201. package/dist/src/{ai → lib/ai}/prompt.d.ts +0 -0
  202. package/dist/src/{ai → lib/ai}/tools/capture-files.tool.d.ts +0 -0
  203. package/dist/src/{ai → lib/ai}/tools/execute-code.tool.d.ts +0 -0
  204. package/dist/src/{ai → lib/ai}/tools/query-graph.tool.d.ts +0 -0
  205. package/dist/src/{auth → lib/auth}/middleware.d.ts +0 -0
  206. package/dist/src/{cli → lib/cli}/extract-endpoints.d.ts +0 -0
  207. package/dist/src/{db → lib/db}/migrate.d.ts +0 -0
  208. package/dist/src/{factory.d.ts → lib/factory.d.ts} +0 -0
  209. package/dist/src/{graph → lib/graph}/expand-domains.d.ts +0 -0
  210. package/dist/src/{graph → lib/graph}/generate-cypher.d.ts +0 -0
  211. package/dist/src/{graph → lib/graph}/helpers.d.ts +2 -2
  212. /package/dist/src/{graph → lib/graph}/index.d.ts +0 -0
  213. /package/dist/src/{graph → lib/graph}/neo4j.d.ts +0 -0
  214. /package/dist/src/{graph → lib/graph}/resolver.d.ts +0 -0
  215. /package/dist/src/{graph → lib/graph}/seed.d.ts +0 -0
  216. /package/dist/src/{graph → lib/graph}/types.d.ts +0 -0
  217. /package/dist/src/{graph → lib/graph}/validate.d.ts +0 -0
  218. /package/dist/src/{routes → lib/routes}/chat.d.ts +0 -0
  219. /package/dist/src/{routes → lib/routes}/files.d.ts +0 -0
  220. /package/dist/src/{routes → lib/routes}/index.d.ts +0 -0
  221. /package/dist/src/{routes → lib/routes}/threads.d.ts +0 -0
  222. /package/dist/src/{routes → lib/routes}/ws.d.ts +0 -0
  223. /package/dist/src/{ws → lib/ws}/connections.d.ts +0 -0
  224. /package/dist/src/{ws → lib/ws}/events.d.ts +0 -0
  225. /package/dist/src/{ws → lib/ws}/index.d.ts +0 -0
  226. /package/dist/src/{ws → lib/ws}/notify.d.ts +0 -0
  227. /package/src/{adapters → lib/adapters}/storage.ts +0 -0
  228. /package/src/{ai → lib/ai}/active-streams.ts +0 -0
  229. /package/src/{ai → lib/ai}/context/builder.ts +0 -0
  230. /package/src/{ai → lib/ai}/context/summarizer.ts +0 -0
  231. /package/src/{ai → lib/ai}/context/token-estimator.ts +0 -0
  232. /package/src/{ai → lib/ai}/fetch.ts +0 -0
  233. /package/src/{ai → lib/ai}/helpers.ts +0 -0
  234. /package/src/{ai → lib/ai}/interceptors/request-interceptor.ts +0 -0
  235. /package/src/{ai → lib/ai}/tools/capture-files.tool.ts +0 -0
  236. /package/src/{ai → lib/ai}/tools/query-graph.tool.ts +0 -0
  237. /package/src/{cli → lib/cli}/extract-endpoints.ts +0 -0
  238. /package/src/{db → lib/db}/migrate.ts +0 -0
  239. /package/src/{graph → lib/graph}/expand-domains.ts +0 -0
  240. /package/src/{graph → lib/graph}/generate-cypher.ts +0 -0
  241. /package/src/{graph → lib/graph}/helpers.ts +0 -0
  242. /package/src/{graph → lib/graph}/index.ts +0 -0
  243. /package/src/{graph → lib/graph}/neo4j.ts +0 -0
  244. /package/src/{graph → lib/graph}/resolver.ts +0 -0
  245. /package/src/{graph → lib/graph}/seed.ts +0 -0
  246. /package/src/{graph → lib/graph}/types.ts +0 -0
  247. /package/src/{graph → lib/graph}/validate.ts +0 -0
  248. /package/src/{routes → lib/routes}/chat.ts +0 -0
  249. /package/src/{routes → lib/routes}/index.ts +0 -0
  250. /package/src/{routes → lib/routes}/ws.ts +0 -0
  251. /package/src/{ws → lib/ws}/connections.ts +0 -0
  252. /package/src/{ws → lib/ws}/events.ts +0 -0
  253. /package/src/{ws → lib/ws}/index.ts +0 -0
  254. /package/src/{ws → lib/ws}/notify.ts +0 -0
@@ -0,0 +1,40 @@
1
+ import { defineDomain } from "@m6d/cortex-server";
2
+ import type { DomainDef } from "@m6d/cortex-server";
3
+ import { appraisalCycleConcept } from "./concepts/appraisalCycle.concept";
4
+ import { appraisalRecordConcept } from "./concepts/appraisalRecord.concept";
5
+ import { appraisalRecordCompetencyConcept } from "./concepts/appraisalRecordCompetency.concept";
6
+ import { appraisalRecordFunctionalRequirementConcept } from "./concepts/appraisalRecordFunctionalRequirement.concept";
7
+ import { appraisalRecordGoalConcept } from "./concepts/appraisalRecordGoal.concept";
8
+ import { getAppraisalRecordByIdEndpoint } from "./endpoints/getAppraisalRecordById.endpoint";
9
+ import { getAppraisalRecordCompetenciesEndpoint } from "./endpoints/getAppraisalRecordCompetencies.endpoint";
10
+ import { getAppraisalRecordFunctionalRequirementsEndpoint } from "./endpoints/getAppraisalRecordFunctionalRequirements.endpoint";
11
+ import { getAppraisalRecordGoalsEndpoint } from "./endpoints/getAppraisalRecordGoals.endpoint";
12
+ import { getAppraisalRecordScoreEndpoint } from "./endpoints/getAppraisalRecordScore.endpoint";
13
+ import { listAppraisalCyclesSimpleEndpoint } from "./endpoints/listAppraisalCyclesSimple.endpoint";
14
+ import { listAppraisalRecordsEndpoint } from "./endpoints/listAppraisalRecords.endpoint";
15
+ import { listAppraisalTemplatesSimpleEndpoint } from "./endpoints/listAppraisalTemplatesSimple.endpoint";
16
+ import { appraisalRecordScopingRule } from "./rules/appraisalRecordScoping.rule";
17
+
18
+ export const appraisalsDomain: DomainDef = defineDomain({
19
+ name: "Appraisals",
20
+ description:
21
+ "Performance appraisal domain covering appraisal cycles, records, goals, competencies, and functional requirements. Supports the full appraisal workflow from goal-setting through assessment and finalization. Focuses on self-service operations for employees and their managers.",
22
+ concepts: [
23
+ appraisalCycleConcept,
24
+ appraisalRecordConcept,
25
+ appraisalRecordGoalConcept,
26
+ appraisalRecordCompetencyConcept,
27
+ appraisalRecordFunctionalRequirementConcept,
28
+ ],
29
+ endpoints: [
30
+ listAppraisalRecordsEndpoint,
31
+ getAppraisalRecordByIdEndpoint,
32
+ getAppraisalRecordScoreEndpoint,
33
+ getAppraisalRecordGoalsEndpoint,
34
+ getAppraisalRecordCompetenciesEndpoint,
35
+ getAppraisalRecordFunctionalRequirementsEndpoint,
36
+ listAppraisalCyclesSimpleEndpoint,
37
+ listAppraisalTemplatesSimpleEndpoint,
38
+ ],
39
+ rules: [appraisalRecordScopingRule],
40
+ });
@@ -0,0 +1,7 @@
1
+ import { defineRule } from "@m6d/cortex-server";
2
+
3
+ export const appraisalRecordScopingRule = defineRule({
4
+ name: "Use scope parameter when listing appraisal records",
5
+ description:
6
+ "When listing appraisal records, use the scope parameter to filter appropriately: scope=Own returns only the current employee's records, scope=Act returns records that need the current user's action (e.g., pending approval). Default scope=All returns all accessible records. For self-service use cases, prefer scope=Own.",
7
+ });
@@ -0,0 +1,17 @@
1
+ import { defineConcept } from "@m6d/cortex-server";
2
+ import { paginationRule } from "../../shared/rules/pagination.rule";
3
+
4
+ export const attendancePermissionConcept = defineConcept({
5
+ name: "AttendancePermission",
6
+ description:
7
+ "A permission granted to an employee for late arrival (late_in), early departure (early_out), or forgetfulness. Has a date/time range and is linked to a service request.",
8
+ aliases: [
9
+ "attendance permission",
10
+ "late permission",
11
+ "early leave permission",
12
+ "إذن حضور",
13
+ "إذن تأخير",
14
+ "إذن انصراف مبكر",
15
+ ],
16
+ governedBy: [paginationRule],
17
+ });
@@ -0,0 +1,17 @@
1
+ import { defineConcept } from "@m6d/cortex-server";
2
+ import { paginationRule } from "../../shared/rules/pagination.rule";
3
+
4
+ export const attendanceTransactionConcept = defineConcept({
5
+ name: "AttendanceTransaction",
6
+ description:
7
+ "A daily attendance record for an employee showing clock-in time, clock-out time, schedule info, and compliance state (absent, late, early, compliant). Also indicates if covered by a leave or permission.",
8
+ aliases: [
9
+ "attendance record",
10
+ "daily attendance",
11
+ "attendance log",
12
+ "سجل الحضور",
13
+ "حضور وانصراف",
14
+ "سجل الدوام",
15
+ ],
16
+ governedBy: [paginationRule],
17
+ });
@@ -0,0 +1,10 @@
1
+ import { defineConcept } from "@m6d/cortex-server";
2
+ import { paginationRule } from "../../shared/rules/pagination.rule";
3
+
4
+ export const publicHolidayConcept = defineConcept({
5
+ name: "PublicHoliday",
6
+ description:
7
+ "A public holiday that affects attendance schedules. Has a name, date range, and periodicity (once, yearly, monthly, weekly).",
8
+ aliases: ["public holiday", "holiday", "day off", "إجازة رسمية", "عطلة رسمية", "يوم عطلة"],
9
+ governedBy: [paginationRule],
10
+ });
@@ -0,0 +1,19 @@
1
+ import { defineConcept } from "@m6d/cortex-server";
2
+ import { paginationRule } from "../../shared/rules/pagination.rule";
3
+
4
+ export const punchConcept = defineConcept({
5
+ name: "Punch",
6
+ description:
7
+ "A clock-in or clock-out event recorded by an employee. Captures the punch type (in/out), timestamp, and optional geolocation (longitude, latitude).",
8
+ aliases: [
9
+ "clock in",
10
+ "clock out",
11
+ "punch in",
12
+ "punch out",
13
+ "time punch",
14
+ "تسجيل حضور",
15
+ "تسجيل انصراف",
16
+ "بصمة",
17
+ ],
18
+ governedBy: [paginationRule],
19
+ });
@@ -0,0 +1,444 @@
1
+ import { defineEndpoint } from "@m6d/cortex-server";
2
+ import { attendanceTransactionConcept } from "../concepts/attendanceTransaction.concept";
3
+
4
+ export const getAttendanceTransactionByIdEndpoint = defineEndpoint({
5
+ name: "Get attendance transaction by ID",
6
+ path: "/attendance/transactions/{id}",
7
+ method: "GET",
8
+ description:
9
+ "Get a specific attendance transaction by its ID. Returns full details including in/out times, zones, compliance state, and associated punches.",
10
+ queries: [attendanceTransactionConcept],
11
+ returns: [{ concept: attendanceTransactionConcept }],
12
+
13
+ paramDescriptions: {
14
+ id: "The attendance transaction UUID",
15
+ },
16
+
17
+ // @auto-generated-start
18
+ autoGenerated: {
19
+ params: [{ name: "id", required: true, type: "uuid" }] as const,
20
+ body: [] as const,
21
+ response: [
22
+ { name: "id", required: false, type: "uuid" },
23
+ {
24
+ name: "employee",
25
+ required: false,
26
+ type: "object",
27
+ properties: [
28
+ { name: "id", required: false, type: "uuid" },
29
+ {
30
+ name: "name",
31
+ required: false,
32
+ type: "object",
33
+ properties: [
34
+ { name: "ar", required: false, type: "string" },
35
+ { name: "en", required: false, type: "string" },
36
+ ],
37
+ },
38
+ { name: "number", required: false, type: "string" },
39
+ {
40
+ name: "jobClassification",
41
+ required: false,
42
+ type: "object",
43
+ properties: [
44
+ { name: "id", required: false, type: "uuid" },
45
+ {
46
+ name: "name",
47
+ required: false,
48
+ type: "object",
49
+ properties: [
50
+ { name: "ar", required: false, type: "string" },
51
+ { name: "en", required: false, type: "string" },
52
+ ],
53
+ },
54
+ { name: "type", required: false, type: "string" },
55
+ ],
56
+ },
57
+ {
58
+ name: "jobLevel",
59
+ required: false,
60
+ type: "object",
61
+ properties: [
62
+ { name: "id", required: false, type: "uuid" },
63
+ {
64
+ name: "name",
65
+ required: false,
66
+ type: "object",
67
+ properties: [
68
+ { name: "ar", required: false, type: "string" },
69
+ { name: "en", required: false, type: "string" },
70
+ ],
71
+ },
72
+ ],
73
+ },
74
+ {
75
+ name: "jobTitle",
76
+ required: false,
77
+ type: "object",
78
+ properties: [
79
+ { name: "id", required: false, type: "uuid" },
80
+ {
81
+ name: "name",
82
+ required: false,
83
+ type: "object",
84
+ properties: [
85
+ { name: "ar", required: false, type: "string" },
86
+ { name: "en", required: false, type: "string" },
87
+ ],
88
+ },
89
+ {
90
+ name: "category",
91
+ required: false,
92
+ type: "object",
93
+ properties: [
94
+ { name: "id", required: false, type: "uuid" },
95
+ {
96
+ name: "name",
97
+ required: false,
98
+ type: "object",
99
+ properties: [
100
+ { name: "ar", required: false, type: "string" },
101
+ { name: "en", required: false, type: "string" },
102
+ ],
103
+ },
104
+ ],
105
+ },
106
+ ],
107
+ },
108
+ {
109
+ name: "department",
110
+ required: false,
111
+ type: "object",
112
+ properties: [
113
+ { name: "id", required: false, type: "uuid" },
114
+ {
115
+ name: "name",
116
+ required: false,
117
+ type: "object",
118
+ properties: [
119
+ { name: "ar", required: false, type: "string" },
120
+ { name: "en", required: false, type: "string" },
121
+ ],
122
+ },
123
+ ],
124
+ },
125
+ {
126
+ name: "user",
127
+ required: false,
128
+ type: "object",
129
+ properties: [
130
+ { name: "id", required: false, type: "uuid" },
131
+ {
132
+ name: "name",
133
+ required: false,
134
+ type: "object",
135
+ properties: [
136
+ { name: "ar", required: false, type: "string" },
137
+ { name: "en", required: false, type: "string" },
138
+ ],
139
+ },
140
+ ],
141
+ },
142
+ ],
143
+ },
144
+ {
145
+ name: "scheduleName",
146
+ required: false,
147
+ type: "object",
148
+ properties: [
149
+ { name: "ar", required: false, type: "string" },
150
+ { name: "en", required: false, type: "string" },
151
+ ],
152
+ },
153
+ { name: "inTime", required: false, type: "datetime" },
154
+ {
155
+ name: "inZoneName",
156
+ required: false,
157
+ type: "object",
158
+ properties: [
159
+ { name: "ar", required: false, type: "string" },
160
+ { name: "en", required: false, type: "string" },
161
+ ],
162
+ },
163
+ { name: "inLongitude", required: false, type: "number" },
164
+ { name: "inLatitude", required: false, type: "number" },
165
+ { name: "inRadiusInMeters", required: false, type: "number" },
166
+ { name: "outTime", required: false, type: "datetime" },
167
+ {
168
+ name: "outZoneName",
169
+ required: false,
170
+ type: "object",
171
+ properties: [
172
+ { name: "ar", required: false, type: "string" },
173
+ { name: "en", required: false, type: "string" },
174
+ ],
175
+ },
176
+ { name: "outLongitude", required: false, type: "number" },
177
+ { name: "outLatitude", required: false, type: "number" },
178
+ { name: "outRadiusInMeters", required: false, type: "number" },
179
+ {
180
+ name: "inPunch",
181
+ required: false,
182
+ type: "object",
183
+ properties: [
184
+ { name: "id", required: false, type: "uuid" },
185
+ {
186
+ name: "employee",
187
+ required: false,
188
+ type: "object",
189
+ properties: [
190
+ { name: "id", required: false, type: "uuid" },
191
+ {
192
+ name: "name",
193
+ required: false,
194
+ type: "object",
195
+ properties: [
196
+ { name: "ar", required: false, type: "string" },
197
+ { name: "en", required: false, type: "string" },
198
+ ],
199
+ },
200
+ { name: "number", required: false, type: "string" },
201
+ {
202
+ name: "jobClassification",
203
+ required: false,
204
+ type: "object",
205
+ properties: [
206
+ { name: "id", required: false, type: "uuid" },
207
+ {
208
+ name: "name",
209
+ required: false,
210
+ type: "object",
211
+ properties: [
212
+ { name: "ar", required: false, type: "string" },
213
+ { name: "en", required: false, type: "string" },
214
+ ],
215
+ },
216
+ { name: "type", required: false, type: "string" },
217
+ ],
218
+ },
219
+ {
220
+ name: "jobLevel",
221
+ required: false,
222
+ type: "object",
223
+ properties: [
224
+ { name: "id", required: false, type: "uuid" },
225
+ {
226
+ name: "name",
227
+ required: false,
228
+ type: "object",
229
+ properties: [
230
+ { name: "ar", required: false, type: "string" },
231
+ { name: "en", required: false, type: "string" },
232
+ ],
233
+ },
234
+ ],
235
+ },
236
+ {
237
+ name: "jobTitle",
238
+ required: false,
239
+ type: "object",
240
+ properties: [
241
+ { name: "id", required: false, type: "uuid" },
242
+ {
243
+ name: "name",
244
+ required: false,
245
+ type: "object",
246
+ properties: [
247
+ { name: "ar", required: false, type: "string" },
248
+ { name: "en", required: false, type: "string" },
249
+ ],
250
+ },
251
+ {
252
+ name: "category",
253
+ required: false,
254
+ type: "object",
255
+ properties: [
256
+ { name: "id", required: false, type: "uuid" },
257
+ { name: "name", required: false, type: "object" },
258
+ ],
259
+ },
260
+ ],
261
+ },
262
+ {
263
+ name: "department",
264
+ required: false,
265
+ type: "object",
266
+ properties: [
267
+ { name: "id", required: false, type: "uuid" },
268
+ {
269
+ name: "name",
270
+ required: false,
271
+ type: "object",
272
+ properties: [
273
+ { name: "ar", required: false, type: "string" },
274
+ { name: "en", required: false, type: "string" },
275
+ ],
276
+ },
277
+ ],
278
+ },
279
+ {
280
+ name: "user",
281
+ required: false,
282
+ type: "object",
283
+ properties: [
284
+ { name: "id", required: false, type: "uuid" },
285
+ {
286
+ name: "name",
287
+ required: false,
288
+ type: "object",
289
+ properties: [
290
+ { name: "ar", required: false, type: "string" },
291
+ { name: "en", required: false, type: "string" },
292
+ ],
293
+ },
294
+ ],
295
+ },
296
+ ],
297
+ },
298
+ { name: "type", required: false, type: "string" },
299
+ { name: "time", required: false, type: "datetime" },
300
+ { name: "longitude", required: false, type: "number" },
301
+ { name: "latitude", required: false, type: "number" },
302
+ ],
303
+ },
304
+ {
305
+ name: "outPunch",
306
+ required: false,
307
+ type: "object",
308
+ properties: [
309
+ { name: "id", required: false, type: "uuid" },
310
+ {
311
+ name: "employee",
312
+ required: false,
313
+ type: "object",
314
+ properties: [
315
+ { name: "id", required: false, type: "uuid" },
316
+ {
317
+ name: "name",
318
+ required: false,
319
+ type: "object",
320
+ properties: [
321
+ { name: "ar", required: false, type: "string" },
322
+ { name: "en", required: false, type: "string" },
323
+ ],
324
+ },
325
+ { name: "number", required: false, type: "string" },
326
+ {
327
+ name: "jobClassification",
328
+ required: false,
329
+ type: "object",
330
+ properties: [
331
+ { name: "id", required: false, type: "uuid" },
332
+ {
333
+ name: "name",
334
+ required: false,
335
+ type: "object",
336
+ properties: [
337
+ { name: "ar", required: false, type: "string" },
338
+ { name: "en", required: false, type: "string" },
339
+ ],
340
+ },
341
+ { name: "type", required: false, type: "string" },
342
+ ],
343
+ },
344
+ {
345
+ name: "jobLevel",
346
+ required: false,
347
+ type: "object",
348
+ properties: [
349
+ { name: "id", required: false, type: "uuid" },
350
+ {
351
+ name: "name",
352
+ required: false,
353
+ type: "object",
354
+ properties: [
355
+ { name: "ar", required: false, type: "string" },
356
+ { name: "en", required: false, type: "string" },
357
+ ],
358
+ },
359
+ ],
360
+ },
361
+ {
362
+ name: "jobTitle",
363
+ required: false,
364
+ type: "object",
365
+ properties: [
366
+ { name: "id", required: false, type: "uuid" },
367
+ {
368
+ name: "name",
369
+ required: false,
370
+ type: "object",
371
+ properties: [
372
+ { name: "ar", required: false, type: "string" },
373
+ { name: "en", required: false, type: "string" },
374
+ ],
375
+ },
376
+ {
377
+ name: "category",
378
+ required: false,
379
+ type: "object",
380
+ properties: [
381
+ { name: "id", required: false, type: "uuid" },
382
+ { name: "name", required: false, type: "object" },
383
+ ],
384
+ },
385
+ ],
386
+ },
387
+ {
388
+ name: "department",
389
+ required: false,
390
+ type: "object",
391
+ properties: [
392
+ { name: "id", required: false, type: "uuid" },
393
+ {
394
+ name: "name",
395
+ required: false,
396
+ type: "object",
397
+ properties: [
398
+ { name: "ar", required: false, type: "string" },
399
+ { name: "en", required: false, type: "string" },
400
+ ],
401
+ },
402
+ ],
403
+ },
404
+ {
405
+ name: "user",
406
+ required: false,
407
+ type: "object",
408
+ properties: [
409
+ { name: "id", required: false, type: "uuid" },
410
+ {
411
+ name: "name",
412
+ required: false,
413
+ type: "object",
414
+ properties: [
415
+ { name: "ar", required: false, type: "string" },
416
+ { name: "en", required: false, type: "string" },
417
+ ],
418
+ },
419
+ ],
420
+ },
421
+ ],
422
+ },
423
+ { name: "type", required: false, type: "string" },
424
+ { name: "time", required: false, type: "datetime" },
425
+ { name: "longitude", required: false, type: "number" },
426
+ { name: "latitude", required: false, type: "number" },
427
+ ],
428
+ },
429
+ { name: "flexOffsetInMinutes", required: false, type: "number" },
430
+ { name: "earlyStartOffsetInMinutes", required: false, type: "number" },
431
+ { name: "lateEndOffsetInMinutes", required: false, type: "number" },
432
+ { name: "isAbsent", required: false, type: "boolean" },
433
+ { name: "isLate", required: false, type: "boolean" },
434
+ { name: "isEarly", required: false, type: "boolean" },
435
+ { name: "isCoveredByLeave", required: false, type: "boolean" },
436
+ { name: "isCoveredByPermission", required: false, type: "boolean" },
437
+ { name: "isOverlappingPermission", required: false, type: "boolean" },
438
+ ] as const,
439
+ successStatus: 200,
440
+ errorStatuses: [404],
441
+ responseKind: "object",
442
+ } as const,
443
+ // @auto-generated-end
444
+ });