@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,52 @@
1
+ import { defineEndpoint } from "@m6d/cortex-server";
2
+ import { publicHolidayConcept } from "../concepts/publicHoliday.concept";
3
+
4
+ export const listPublicHolidaysSimpleEndpoint = defineEndpoint({
5
+ name: "List public holidays",
6
+ path: "/attendance/public-holidays/simple",
7
+ method: "GET",
8
+ description:
9
+ "List public holidays with simple output (ID and name only). Useful for viewing upcoming holidays.",
10
+ queries: [publicHolidayConcept],
11
+ returns: [{ concept: publicHolidayConcept }],
12
+
13
+ paramDescriptions: {
14
+ pageNumber: "0-based",
15
+ },
16
+
17
+ // @auto-generated-start
18
+ autoGenerated: {
19
+ params: [
20
+ { name: "keyword", required: false, type: "string" },
21
+ { name: "pageNumber", required: false, type: "number" },
22
+ { name: "pageSize", required: false, type: "number" },
23
+ ] as const,
24
+ body: [] as const,
25
+ response: [
26
+ {
27
+ name: "items",
28
+ required: false,
29
+ type: "object",
30
+ isArray: true,
31
+ properties: [
32
+ { name: "id", required: false, type: "uuid" },
33
+ {
34
+ name: "name",
35
+ required: false,
36
+ type: "object",
37
+ properties: [
38
+ { name: "ar", required: false, type: "string" },
39
+ { name: "en", required: false, type: "string" },
40
+ ],
41
+ },
42
+ ],
43
+ },
44
+ { name: "count", required: false, type: "number" },
45
+ { name: "filteredCount", required: false, type: "number" },
46
+ ] as const,
47
+ successStatus: 200,
48
+ errorStatuses: [],
49
+ responseKind: "object",
50
+ } as const,
51
+ // @auto-generated-end
52
+ });
@@ -0,0 +1,25 @@
1
+ import { defineEndpoint } from "@m6d/cortex-server";
2
+ import { punchConcept } from "../concepts/punch.concept";
3
+
4
+ export const listPunchTypesEndpoint = defineEndpoint({
5
+ name: "List punch types",
6
+ path: "/attendance/punches/types",
7
+ method: "GET",
8
+ description: "List available punch types (in, out).",
9
+ queries: [punchConcept],
10
+ returns: [{ concept: punchConcept }],
11
+
12
+ // @auto-generated-start
13
+ autoGenerated: {
14
+ params: [] as const,
15
+ body: [] as const,
16
+ response: [
17
+ { name: "id", required: false, type: "string" },
18
+ { name: "name", required: false, type: "string" },
19
+ ] as const,
20
+ successStatus: 200,
21
+ errorStatuses: [],
22
+ responseKind: "array",
23
+ } as const,
24
+ // @auto-generated-end
25
+ });
@@ -0,0 +1,178 @@
1
+ import { defineEndpoint } from "@m6d/cortex-server";
2
+ import { punchConcept } from "../concepts/punch.concept";
3
+
4
+ export const listPunchesEndpoint = defineEndpoint({
5
+ name: "List punches",
6
+ path: "/attendance/punches",
7
+ method: "GET",
8
+ description:
9
+ "List punch records with filtering and pagination. Can filter by employee, date range, and punch type. Use employeeIds to view punches for a specific employee.",
10
+ queries: [punchConcept],
11
+ returns: [{ concept: punchConcept }],
12
+
13
+ paramDescriptions: {
14
+ pageNumber: "0-based",
15
+ },
16
+
17
+ // @auto-generated-start
18
+ autoGenerated: {
19
+ params: [
20
+ {
21
+ name: "filterCountExclusions",
22
+ required: false,
23
+ type: "'employee_ids'",
24
+ isArray: true,
25
+ },
26
+ { name: "pageNumber", required: false, type: "number" },
27
+ { name: "pageSize", required: false, type: "number" },
28
+ { name: "keyword", required: false, type: "string" },
29
+ { name: "employeeIds", required: false, type: "uuid", isArray: true },
30
+ { name: "from", required: false, type: "datetime" },
31
+ { name: "to", required: false, type: "datetime" },
32
+ { name: "types", required: false, type: "string", isArray: true },
33
+ { name: "employee.keyword", required: false, type: "string" },
34
+ { name: "employee.number", required: false, type: "string" },
35
+ { name: "employee.genders", required: false, type: "string", isArray: true },
36
+ { name: "employee.jobClassificationIds", required: false, type: "uuid", isArray: true },
37
+ { name: "employee.jobLevelIds", required: false, type: "uuid", isArray: true },
38
+ { name: "employee.departmentIds", required: false, type: "uuid", isArray: true },
39
+ { name: "employee.jobTitleIds", required: false, type: "uuid", isArray: true },
40
+ { name: "employee.displayAllUnderHierarchy", required: false, type: "boolean" },
41
+ ] as const,
42
+ body: [] as const,
43
+ response: [
44
+ {
45
+ name: "items",
46
+ required: false,
47
+ type: "object",
48
+ isArray: true,
49
+ properties: [
50
+ { name: "id", required: false, type: "uuid" },
51
+ {
52
+ name: "employee",
53
+ required: false,
54
+ type: "object",
55
+ properties: [
56
+ { name: "id", required: false, type: "uuid" },
57
+ {
58
+ name: "name",
59
+ required: false,
60
+ type: "object",
61
+ properties: [
62
+ { name: "ar", required: false, type: "string" },
63
+ { name: "en", required: false, type: "string" },
64
+ ],
65
+ },
66
+ { name: "number", required: false, type: "string" },
67
+ {
68
+ name: "jobClassification",
69
+ required: false,
70
+ type: "object",
71
+ properties: [
72
+ { name: "id", required: false, type: "uuid" },
73
+ {
74
+ name: "name",
75
+ required: false,
76
+ type: "object",
77
+ properties: [
78
+ { name: "ar", required: false, type: "string" },
79
+ { name: "en", required: false, type: "string" },
80
+ ],
81
+ },
82
+ { name: "type", required: false, type: "string" },
83
+ ],
84
+ },
85
+ {
86
+ name: "jobLevel",
87
+ required: false,
88
+ type: "object",
89
+ properties: [
90
+ { name: "id", required: false, type: "uuid" },
91
+ {
92
+ name: "name",
93
+ required: false,
94
+ type: "object",
95
+ properties: [
96
+ { name: "ar", required: false, type: "string" },
97
+ { name: "en", required: false, type: "string" },
98
+ ],
99
+ },
100
+ ],
101
+ },
102
+ {
103
+ name: "jobTitle",
104
+ required: false,
105
+ type: "object",
106
+ properties: [
107
+ { name: "id", required: false, type: "uuid" },
108
+ {
109
+ name: "name",
110
+ required: false,
111
+ type: "object",
112
+ properties: [
113
+ { name: "ar", required: false, type: "string" },
114
+ { name: "en", required: false, type: "string" },
115
+ ],
116
+ },
117
+ {
118
+ name: "category",
119
+ required: false,
120
+ type: "object",
121
+ properties: [
122
+ { name: "id", required: false, type: "uuid" },
123
+ { name: "name", required: false, type: "object" },
124
+ ],
125
+ },
126
+ ],
127
+ },
128
+ {
129
+ name: "department",
130
+ required: false,
131
+ type: "object",
132
+ properties: [
133
+ { name: "id", required: false, type: "uuid" },
134
+ {
135
+ name: "name",
136
+ required: false,
137
+ type: "object",
138
+ properties: [
139
+ { name: "ar", required: false, type: "string" },
140
+ { name: "en", required: false, type: "string" },
141
+ ],
142
+ },
143
+ ],
144
+ },
145
+ {
146
+ name: "user",
147
+ required: false,
148
+ type: "object",
149
+ properties: [
150
+ { name: "id", required: false, type: "uuid" },
151
+ {
152
+ name: "name",
153
+ required: false,
154
+ type: "object",
155
+ properties: [
156
+ { name: "ar", required: false, type: "string" },
157
+ { name: "en", required: false, type: "string" },
158
+ ],
159
+ },
160
+ ],
161
+ },
162
+ ],
163
+ },
164
+ { name: "type", required: false, type: "string" },
165
+ { name: "time", required: false, type: "datetime" },
166
+ { name: "longitude", required: false, type: "number" },
167
+ { name: "latitude", required: false, type: "number" },
168
+ ],
169
+ },
170
+ { name: "count", required: false, type: "number" },
171
+ { name: "filteredCount", required: false, type: "number" },
172
+ ] as const,
173
+ successStatus: 200,
174
+ errorStatuses: [],
175
+ responseKind: "object",
176
+ } as const,
177
+ // @auto-generated-end
178
+ });
@@ -0,0 +1,41 @@
1
+ import { defineDomain } from "@m6d/cortex-server";
2
+ import type { DomainDef } from "@m6d/cortex-server";
3
+ import { attendancePermissionConcept } from "./concepts/attendancePermission.concept";
4
+ import { attendanceTransactionConcept } from "./concepts/attendanceTransaction.concept";
5
+ import { publicHolidayConcept } from "./concepts/publicHoliday.concept";
6
+ import { punchConcept } from "./concepts/punch.concept";
7
+ import { getAttendanceTransactionByIdEndpoint } from "./endpoints/getAttendanceTransactionById.endpoint";
8
+ import { getCurrentAttendanceProfileEndpoint } from "./endpoints/getCurrentAttendanceProfile.endpoint";
9
+ import { getCurrentAttendanceStatisticsEndpoint } from "./endpoints/getCurrentAttendanceStatistics.endpoint";
10
+ import { listAttendancePermissionsEndpoint } from "./endpoints/listAttendancePermissions.endpoint";
11
+ import { listAttendanceTransactionsEndpoint } from "./endpoints/listAttendanceTransactions.endpoint";
12
+ import { listAttendanceTransactionStatesEndpoint } from "./endpoints/listAttendanceTransactionStates.endpoint";
13
+ import { listPublicHolidaysSimpleEndpoint } from "./endpoints/listPublicHolidaysSimple.endpoint";
14
+ import { listPunchesEndpoint } from "./endpoints/listPunches.endpoint";
15
+ import { listPunchTypesEndpoint } from "./endpoints/listPunchTypes.endpoint";
16
+ import { attendanceServices } from "./services/attendancePermissions.service";
17
+
18
+ export const attendanceDomain: DomainDef = defineDomain({
19
+ name: "Attendance",
20
+ description:
21
+ "Employee attendance domain covering clock-in/out punching, daily attendance transactions, compliance tracking (absent, late, early, compliant), public holidays, and attendance permission request workflows. Focuses on self-service operations for employees.",
22
+ concepts: [
23
+ attendanceTransactionConcept,
24
+ punchConcept,
25
+ publicHolidayConcept,
26
+ attendancePermissionConcept,
27
+ ],
28
+ endpoints: [
29
+ getCurrentAttendanceProfileEndpoint,
30
+ getCurrentAttendanceStatisticsEndpoint,
31
+ listPunchesEndpoint,
32
+ listPunchTypesEndpoint,
33
+ listAttendanceTransactionsEndpoint,
34
+ getAttendanceTransactionByIdEndpoint,
35
+ listAttendanceTransactionStatesEndpoint,
36
+ listPublicHolidaysSimpleEndpoint,
37
+ listAttendancePermissionsEndpoint,
38
+ ],
39
+ services: [...attendanceServices],
40
+ rules: [],
41
+ });
@@ -0,0 +1,15 @@
1
+ import { defineService } from "@m6d/cortex-server";
2
+ import { attendancePermissionConcept } from "../concepts/attendancePermission.concept";
3
+
4
+ export const attendancePermissionService = defineService({
5
+ name: "Attendance permission request",
6
+ builtInId: "services:attendance_permission",
7
+ belongsTo: attendancePermissionConcept,
8
+ description:
9
+ "Request an attendance permission for late arrival, early departure, or forgetfulness. The request captures a permission type and from/to datetime range and goes through an approval workflow.",
10
+ metadata: {
11
+ intakeMode: "conversational",
12
+ },
13
+ });
14
+
15
+ export const attendanceServices = [attendancePermissionService];
@@ -0,0 +1,20 @@
1
+ import { defineConcept } from "@m6d/cortex-server";
2
+
3
+ export const employeeConcept = defineConcept({
4
+ name: "Employee",
5
+ description:
6
+ "Employee profile and personal information. Includes personal details, job assignment, department, manager, qualifications, and employment history.",
7
+ aliases: [
8
+ "employee",
9
+ "employee profile",
10
+ "my profile",
11
+ "personal information",
12
+ "employee record",
13
+ "my information",
14
+ "موظف",
15
+ "ملف الموظف",
16
+ "بياناتي",
17
+ "معلوماتي الشخصية",
18
+ "ملفي الشخصي",
19
+ ],
20
+ });
@@ -0,0 +1,19 @@
1
+ import { defineConcept } from "@m6d/cortex-server";
2
+ import { paginationRule } from "../../shared/rules/pagination.rule";
3
+
4
+ export const employeeBankAccountConcept = defineConcept({
5
+ name: "EmployeeBankAccount",
6
+ description:
7
+ "Bank account details for an employee, used for salary payments. Includes bank name, IBAN, and whether it is the default account.",
8
+ aliases: [
9
+ "bank account",
10
+ "my bank account",
11
+ "salary account",
12
+ "IBAN",
13
+ "الحساب البنكي",
14
+ "حسابي البنكي",
15
+ "حساب الراتب",
16
+ "الآيبان",
17
+ ],
18
+ governedBy: [paginationRule],
19
+ });
@@ -0,0 +1,19 @@
1
+ import { defineConcept } from "@m6d/cortex-server";
2
+ import { paginationRule } from "../../shared/rules/pagination.rule";
3
+
4
+ export const employeeChildConcept = defineConcept({
5
+ name: "EmployeeChild",
6
+ description:
7
+ "Children and dependents of an employee. Tracks name, date of birth, gender, nationality, and child allowance status.",
8
+ aliases: [
9
+ "children",
10
+ "my children",
11
+ "dependents",
12
+ "kids",
13
+ "الأبناء",
14
+ "أبنائي",
15
+ "أطفالي",
16
+ "المعالين",
17
+ ],
18
+ governedBy: [paginationRule],
19
+ });
@@ -0,0 +1,21 @@
1
+ import { defineConcept } from "@m6d/cortex-server";
2
+ import { paginationRule } from "../../shared/rules/pagination.rule";
3
+
4
+ export const employeeDocumentConcept = defineConcept({
5
+ name: "EmployeeDocument",
6
+ description:
7
+ "Personal documents on file for an employee, such as national ID, passport, residency, or other official documents. Tracks document type, number, issue and expiry dates.",
8
+ aliases: [
9
+ "employee document",
10
+ "my documents",
11
+ "personal documents",
12
+ "ID card",
13
+ "passport",
14
+ "وثائق الموظف",
15
+ "مستنداتي",
16
+ "وثائقي",
17
+ "الهوية",
18
+ "جواز السفر",
19
+ ],
20
+ governedBy: [paginationRule],
21
+ });
@@ -0,0 +1,21 @@
1
+ import { defineConcept } from "@m6d/cortex-server";
2
+ import { paginationRule } from "../../shared/rules/pagination.rule";
3
+
4
+ export const employeeEventConcept = defineConcept({
5
+ name: "EmployeeEvent",
6
+ description:
7
+ "Career events and milestones for an employee, including transfers, promotions, job level changes, and other significant employment events.",
8
+ aliases: [
9
+ "career event",
10
+ "career history",
11
+ "my events",
12
+ "employment events",
13
+ "promotions",
14
+ "transfers",
15
+ "أحداث الموظف",
16
+ "تاريخي الوظيفي",
17
+ "الترقيات",
18
+ "التنقلات",
19
+ ],
20
+ governedBy: [paginationRule],
21
+ });
@@ -0,0 +1,18 @@
1
+ import { defineConcept } from "@m6d/cortex-server";
2
+ import { paginationRule } from "../../shared/rules/pagination.rule";
3
+
4
+ export const employeeExperienceConcept = defineConcept({
5
+ name: "EmployeePreviousExperience",
6
+ description:
7
+ "Previous work experience records for an employee. Tracks the employer name, start and end dates of service.",
8
+ aliases: [
9
+ "previous experience",
10
+ "work experience",
11
+ "my experience",
12
+ "employment history",
13
+ "الخبرات السابقة",
14
+ "خبراتي",
15
+ "تجربتي العملية",
16
+ ],
17
+ governedBy: [paginationRule],
18
+ });
@@ -0,0 +1,21 @@
1
+ import { defineConcept } from "@m6d/cortex-server";
2
+ import { paginationRule } from "../../shared/rules/pagination.rule";
3
+
4
+ export const employeeJobLevelChangeConcept = defineConcept({
5
+ name: "EmployeeJobLevelChange",
6
+ description:
7
+ "Job level change records for an employee, covering promotions, demotions, and lateral moves. Tracks current and new job levels, change date, promotion type, and reference details.",
8
+ aliases: [
9
+ "job level change",
10
+ "promotion",
11
+ "demotion",
12
+ "my promotions",
13
+ "promotion history",
14
+ "job level history",
15
+ "تغيير المرتبة",
16
+ "ترقية",
17
+ "ترقياتي",
18
+ "تاريخ الترقيات",
19
+ ],
20
+ governedBy: [paginationRule],
21
+ });
@@ -0,0 +1,20 @@
1
+ import { defineConcept } from "@m6d/cortex-server";
2
+ import { paginationRule } from "../../shared/rules/pagination.rule";
3
+
4
+ export const employeeMedalConcept = defineConcept({
5
+ name: "EmployeeMedal",
6
+ description:
7
+ "Awards, medals, and recognitions received by an employee. Tracks award date, source, category, type, and level.",
8
+ aliases: [
9
+ "medal",
10
+ "award",
11
+ "my medals",
12
+ "my awards",
13
+ "recognition",
14
+ "الأوسمة",
15
+ "أوسمتي",
16
+ "الجوائز",
17
+ "جوائزي",
18
+ ],
19
+ governedBy: [paginationRule],
20
+ });
@@ -0,0 +1,20 @@
1
+ import { defineConcept } from "@m6d/cortex-server";
2
+ import { paginationRule } from "../../shared/rules/pagination.rule";
3
+
4
+ export const employeeQualificationConcept = defineConcept({
5
+ name: "EmployeeEducationalQualification",
6
+ description:
7
+ "Educational qualifications and academic credentials of an employee. Includes degree, major, specialization, institution, graduation date, and grade.",
8
+ aliases: [
9
+ "educational qualification",
10
+ "my qualifications",
11
+ "education",
12
+ "degree",
13
+ "academic credentials",
14
+ "المؤهلات التعليمية",
15
+ "مؤهلاتي",
16
+ "شهاداتي",
17
+ "التعليم",
18
+ ],
19
+ governedBy: [paginationRule],
20
+ });
@@ -0,0 +1,21 @@
1
+ import { defineConcept } from "@m6d/cortex-server";
2
+ import { paginationRule } from "../../shared/rules/pagination.rule";
3
+
4
+ export const employeeSpouseConcept = defineConcept({
5
+ name: "EmployeeSpouse",
6
+ description:
7
+ "Spouse information for an employee. Tracks name, date of marriage, marriage status, nationality, and employment details.",
8
+ aliases: [
9
+ "spouse",
10
+ "my spouse",
11
+ "wife",
12
+ "husband",
13
+ "marriage",
14
+ "الزوج",
15
+ "الزوجة",
16
+ "زوجتي",
17
+ "زوجي",
18
+ "الزواج",
19
+ ],
20
+ governedBy: [paginationRule],
21
+ });
@@ -0,0 +1,19 @@
1
+ import { defineConcept } from "@m6d/cortex-server";
2
+ import { paginationRule } from "../../shared/rules/pagination.rule";
3
+
4
+ export const employeeViolationConcept = defineConcept({
5
+ name: "EmployeeViolation",
6
+ description:
7
+ "Violations and disciplinary records for an employee. Tracks violation date, decision date, penalties, and associated violation types.",
8
+ aliases: [
9
+ "violation",
10
+ "my violations",
11
+ "disciplinary record",
12
+ "penalty",
13
+ "المخالفات",
14
+ "مخالفاتي",
15
+ "الجزاءات",
16
+ "السجل التأديبي",
17
+ ],
18
+ governedBy: [paginationRule],
19
+ });