@hed-hog/core 0.0.368 → 0.0.371

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 (271) hide show
  1. package/LICENSE.md +21 -0
  2. package/README.md +2 -0
  3. package/dist/ai/ai.service.d.ts.map +1 -1
  4. package/dist/ai/ai.service.js +10 -7
  5. package/dist/ai/ai.service.js.map +1 -1
  6. package/dist/app-command/app-command.module.d.ts +3 -0
  7. package/dist/app-command/app-command.module.d.ts.map +1 -0
  8. package/dist/app-command/app-command.module.js +22 -0
  9. package/dist/app-command/app-command.module.js.map +1 -0
  10. package/dist/app-command/app-command.registry.d.ts +22 -0
  11. package/dist/app-command/app-command.registry.d.ts.map +1 -0
  12. package/dist/{webhook-integration/webhook-command.registry.js → app-command/app-command.registry.js} +6 -6
  13. package/dist/app-command/app-command.registry.js.map +1 -0
  14. package/dist/auth/auth.controller.d.ts +2 -2
  15. package/dist/auth/auth.controller.d.ts.map +1 -1
  16. package/dist/auth/auth.controller.js +20 -7
  17. package/dist/auth/auth.controller.js.map +1 -1
  18. package/dist/auth/auth.service.d.ts +3 -3
  19. package/dist/auth/auth.service.d.ts.map +1 -1
  20. package/dist/auth/auth.service.js +10 -36
  21. package/dist/auth/auth.service.js.map +1 -1
  22. package/dist/auth/dto/forget.dto.d.ts +1 -0
  23. package/dist/auth/dto/forget.dto.d.ts.map +1 -1
  24. package/dist/auth/dto/forget.dto.js +5 -0
  25. package/dist/auth/dto/forget.dto.js.map +1 -1
  26. package/dist/auth/guards/auth.guard.d.ts.map +1 -1
  27. package/dist/auth/guards/auth.guard.js +4 -1
  28. package/dist/auth/guards/auth.guard.js.map +1 -1
  29. package/dist/challenge/challenge.service.d.ts +8 -7
  30. package/dist/challenge/challenge.service.d.ts.map +1 -1
  31. package/dist/challenge/challenge.service.js +27 -19
  32. package/dist/challenge/challenge.service.js.map +1 -1
  33. package/dist/file/dto/upload.dto.d.ts +3 -0
  34. package/dist/file/dto/upload.dto.d.ts.map +1 -1
  35. package/dist/file/dto/upload.dto.js +22 -0
  36. package/dist/file/dto/upload.dto.js.map +1 -1
  37. package/dist/file/file.controller.d.ts +2 -1
  38. package/dist/file/file.controller.d.ts.map +1 -1
  39. package/dist/file/file.controller.js +29 -16
  40. package/dist/file/file.controller.js.map +1 -1
  41. package/dist/file/file.service.d.ts +51 -1
  42. package/dist/file/file.service.d.ts.map +1 -1
  43. package/dist/file/file.service.js +250 -18
  44. package/dist/file/file.service.js.map +1 -1
  45. package/dist/file/image-optimization.service.d.ts +17 -4
  46. package/dist/file/image-optimization.service.d.ts.map +1 -1
  47. package/dist/file/image-optimization.service.js +101 -46
  48. package/dist/file/image-optimization.service.js.map +1 -1
  49. package/dist/file/provider/s3.provider.d.ts.map +1 -1
  50. package/dist/file/provider/s3.provider.js +15 -7
  51. package/dist/file/provider/s3.provider.js.map +1 -1
  52. package/dist/file/provider/spaces.provider.d.ts.map +1 -1
  53. package/dist/file/provider/spaces.provider.js +18 -8
  54. package/dist/file/provider/spaces.provider.js.map +1 -1
  55. package/dist/index.d.ts +4 -1
  56. package/dist/index.d.ts.map +1 -1
  57. package/dist/index.js +4 -1
  58. package/dist/index.js.map +1 -1
  59. package/dist/integration/services/event-subscriber.registry.d.ts +5 -0
  60. package/dist/integration/services/event-subscriber.registry.d.ts.map +1 -1
  61. package/dist/integration/services/event-subscriber.registry.js +15 -0
  62. package/dist/integration/services/event-subscriber.registry.js.map +1 -1
  63. package/dist/integration/services/outbox.processor.d.ts.map +1 -1
  64. package/dist/integration/services/outbox.processor.js +2 -4
  65. package/dist/integration/services/outbox.processor.js.map +1 -1
  66. package/dist/integration/services/outbox.service.d.ts +4 -2
  67. package/dist/integration/services/outbox.service.d.ts.map +1 -1
  68. package/dist/integration/services/outbox.service.js +26 -15
  69. package/dist/integration/services/outbox.service.js.map +1 -1
  70. package/dist/integration-profile/integration-credential-crypto.service.d.ts +43 -0
  71. package/dist/integration-profile/integration-credential-crypto.service.d.ts.map +1 -0
  72. package/dist/integration-profile/integration-credential-crypto.service.js +142 -0
  73. package/dist/integration-profile/integration-credential-crypto.service.js.map +1 -0
  74. package/dist/integration-profile/integration-profile.controller.d.ts +6 -7
  75. package/dist/integration-profile/integration-profile.controller.d.ts.map +1 -1
  76. package/dist/integration-profile/integration-profile.controller.js +4 -3
  77. package/dist/integration-profile/integration-profile.controller.js.map +1 -1
  78. package/dist/integration-profile/integration-profile.module.d.ts.map +1 -1
  79. package/dist/integration-profile/integration-profile.module.js +5 -2
  80. package/dist/integration-profile/integration-profile.module.js.map +1 -1
  81. package/dist/integration-profile/integration-profile.secrets.d.ts +16 -0
  82. package/dist/integration-profile/integration-profile.secrets.d.ts.map +1 -0
  83. package/dist/integration-profile/integration-profile.secrets.js +56 -0
  84. package/dist/integration-profile/integration-profile.secrets.js.map +1 -0
  85. package/dist/integration-profile/integration-profile.service.d.ts +125 -8
  86. package/dist/integration-profile/integration-profile.service.d.ts.map +1 -1
  87. package/dist/integration-profile/integration-profile.service.js +257 -68
  88. package/dist/integration-profile/integration-profile.service.js.map +1 -1
  89. package/dist/integration-profile/integration-profile.utils.d.ts +17 -0
  90. package/dist/integration-profile/integration-profile.utils.d.ts.map +1 -1
  91. package/dist/integration-profile/integration-profile.utils.js +31 -0
  92. package/dist/integration-profile/integration-profile.utils.js.map +1 -1
  93. package/dist/language/en.json +178 -0
  94. package/dist/language/pt.json +178 -0
  95. package/dist/mail/mail.controller.d.ts.map +1 -1
  96. package/dist/mail/mail.controller.js +5 -28
  97. package/dist/mail/mail.controller.js.map +1 -1
  98. package/dist/mail/mail.module.js +18 -18
  99. package/dist/mail/mail.module.js.map +1 -1
  100. package/dist/mail/mail.service.d.ts +13 -2
  101. package/dist/mail/mail.service.d.ts.map +1 -1
  102. package/dist/mail/mail.service.js +25 -15
  103. package/dist/mail/mail.service.js.map +1 -1
  104. package/dist/mcp-chat/mcp-chat.service.js +6 -5
  105. package/dist/mcp-chat/mcp-chat.service.js.map +1 -1
  106. package/dist/oauth/providers/facebook.provider.js +5 -5
  107. package/dist/oauth/providers/facebook.provider.js.map +1 -1
  108. package/dist/oauth/providers/github.provider.js +5 -5
  109. package/dist/oauth/providers/github.provider.js.map +1 -1
  110. package/dist/oauth/providers/google.provider.js +5 -5
  111. package/dist/oauth/providers/google.provider.js.map +1 -1
  112. package/dist/oauth/providers/microsoft-entra-id.provider.js +5 -5
  113. package/dist/oauth/providers/microsoft-entra-id.provider.js.map +1 -1
  114. package/dist/oauth/providers/microsoft.provider.js +5 -5
  115. package/dist/oauth/providers/microsoft.provider.js.map +1 -1
  116. package/dist/pdf/pdf.service.d.ts +4 -0
  117. package/dist/pdf/pdf.service.d.ts.map +1 -1
  118. package/dist/pdf/pdf.service.js +16 -9
  119. package/dist/pdf/pdf.service.js.map +1 -1
  120. package/dist/profile/profile.controller.d.ts +7 -7
  121. package/dist/profile/profile.controller.d.ts.map +1 -1
  122. package/dist/profile/profile.controller.js +28 -21
  123. package/dist/profile/profile.controller.js.map +1 -1
  124. package/dist/profile/profile.service.d.ts +7 -7
  125. package/dist/profile/profile.service.d.ts.map +1 -1
  126. package/dist/profile/profile.service.js +21 -25
  127. package/dist/profile/profile.service.js.map +1 -1
  128. package/dist/setting/setting.service.d.ts +1 -0
  129. package/dist/setting/setting.service.d.ts.map +1 -1
  130. package/dist/setting/setting.service.js +15 -2
  131. package/dist/setting/setting.service.js.map +1 -1
  132. package/dist/token/token.service.d.ts.map +1 -1
  133. package/dist/token/token.service.js +2 -1
  134. package/dist/token/token.service.js.map +1 -1
  135. package/dist/user/user.controller.d.ts +9 -0
  136. package/dist/user/user.controller.d.ts.map +1 -1
  137. package/dist/user/user.controller.js +13 -0
  138. package/dist/user/user.controller.js.map +1 -1
  139. package/dist/user/user.service.d.ts +7 -0
  140. package/dist/user/user.service.d.ts.map +1 -1
  141. package/dist/user/user.service.js +19 -0
  142. package/dist/user/user.service.js.map +1 -1
  143. package/dist/utils/webauthn-origin.d.ts +11 -0
  144. package/dist/utils/webauthn-origin.d.ts.map +1 -0
  145. package/dist/utils/webauthn-origin.js +37 -0
  146. package/dist/utils/webauthn-origin.js.map +1 -0
  147. package/dist/webhook-integration/webhook-integration.controller.d.ts +13 -0
  148. package/dist/webhook-integration/webhook-integration.controller.d.ts.map +1 -1
  149. package/dist/webhook-integration/webhook-integration.controller.js +29 -0
  150. package/dist/webhook-integration/webhook-integration.controller.js.map +1 -1
  151. package/dist/webhook-integration/webhook-integration.module.js +3 -3
  152. package/dist/webhook-integration/webhook-integration.module.js.map +1 -1
  153. package/dist/webhook-integration/webhook-integration.service.d.ts +18 -2
  154. package/dist/webhook-integration/webhook-integration.service.d.ts.map +1 -1
  155. package/dist/webhook-integration/webhook-integration.service.js +110 -6
  156. package/dist/webhook-integration/webhook-integration.service.js.map +1 -1
  157. package/hedhog/data/integration_event_catalog.yaml +118 -118
  158. package/hedhog/data/integration_provider.yaml +9 -0
  159. package/hedhog/data/integration_type.yaml +6 -0
  160. package/hedhog/data/menu.yaml +6 -0
  161. package/hedhog/data/role.yaml +7 -0
  162. package/hedhog/data/route.yaml +192 -207
  163. package/hedhog/data/setting_group.yaml +119 -13
  164. package/hedhog/frontend/app/access-log/page.tsx.ejs +35 -3
  165. package/hedhog/frontend/app/account/components/active-sessions.tsx.ejs +36 -3
  166. package/hedhog/frontend/app/account/components/mcp-tokens.tsx.ejs +39 -4
  167. package/hedhog/frontend/app/account/components/tokens.tsx.ejs +39 -4
  168. package/hedhog/frontend/app/ai_agent/page.tsx.ejs +35 -2
  169. package/hedhog/frontend/app/configurations/[slug]/components/byte-size-input.tsx.ejs +160 -0
  170. package/hedhog/frontend/app/configurations/[slug]/components/duration-input.tsx.ejs +157 -0
  171. package/hedhog/frontend/app/configurations/[slug]/components/setting-field.tsx.ejs +244 -63
  172. package/hedhog/frontend/app/dashboard/[slug]/dashboard-content.tsx.ejs +33 -1
  173. package/hedhog/frontend/app/dashboard/management/tabs/component-roles-tab.tsx.ejs +35 -3
  174. package/hedhog/frontend/app/dashboard/management/tabs/components-tab.tsx.ejs +36 -4
  175. package/hedhog/frontend/app/dashboard/management/tabs/dashboard-roles-tab.tsx.ejs +35 -3
  176. package/hedhog/frontend/app/dashboard/management/tabs/dashboards-tab.tsx.ejs +36 -4
  177. package/hedhog/frontend/app/dashboard/management/tabs/items-tab.tsx.ejs +35 -3
  178. package/hedhog/frontend/app/integration/profiles/page.tsx.ejs +141 -29
  179. package/hedhog/frontend/app/integrations-webhooks/page.tsx.ejs +118 -11
  180. package/hedhog/frontend/app/mail/log/page.tsx.ejs +37 -4
  181. package/hedhog/frontend/app/menu/page.tsx.ejs +34 -2
  182. package/hedhog/frontend/app/preferences/page.tsx.ejs +77 -0
  183. package/hedhog/frontend/app/roles/menus.tsx.ejs +35 -3
  184. package/hedhog/frontend/app/roles/page.tsx.ejs +34 -2
  185. package/hedhog/frontend/app/roles/routes.tsx.ejs +36 -4
  186. package/hedhog/frontend/app/roles/users.tsx.ejs +36 -4
  187. package/hedhog/frontend/app/routes/page.tsx.ejs +34 -2
  188. package/hedhog/frontend/app/setting-list/page.tsx.ejs +34 -2
  189. package/hedhog/frontend/app/users/page.tsx.ejs +51 -21
  190. package/hedhog/frontend/messages/en.json +69 -4
  191. package/hedhog/frontend/messages/pt.json +69 -4
  192. package/hedhog/table/event_webhook.yaml +55 -55
  193. package/hedhog/table/event_webhook_delivery_log.yaml +66 -66
  194. package/hedhog/table/event_webhook_event.yaml +26 -26
  195. package/hedhog/table/integration_event_catalog.yaml +41 -41
  196. package/hedhog/table/mcp_conversation.yaml +12 -12
  197. package/hedhog/table/mcp_conversation_message.yaml +23 -23
  198. package/hedhog/table/mcp_tool_call_log.yaml +22 -22
  199. package/hedhog/table/route.yaml +33 -33
  200. package/hedhog/table/setting.yaml +2 -0
  201. package/hedhog/table/webhook_call_log.yaml +3 -0
  202. package/hedhog/table/webhook_integration.yaml +43 -43
  203. package/package.json +9 -4
  204. package/src/ai/ai.service.ts +9 -6
  205. package/src/app-command/app-command.module.ts +9 -0
  206. package/src/{webhook-integration/webhook-command.registry.ts → app-command/app-command.registry.ts} +9 -9
  207. package/src/auth/auth.controller.ts +20 -4
  208. package/src/auth/auth.service.ts +10 -36
  209. package/src/auth/dto/forget.dto.ts +5 -1
  210. package/src/auth/guards/auth.guard.ts +4 -1
  211. package/src/challenge/challenge.service.ts +30 -19
  212. package/src/file/dto/upload.dto.ts +25 -1
  213. package/src/file/file.controller.ts +31 -18
  214. package/src/file/file.service.ts +341 -16
  215. package/src/file/image-optimization.service.ts +111 -46
  216. package/src/file/provider/s3.provider.ts +16 -7
  217. package/src/file/provider/spaces.provider.ts +15 -5
  218. package/src/index.ts +4 -1
  219. package/src/integration/services/event-subscriber.registry.ts +15 -0
  220. package/src/integration/services/outbox.processor.ts +2 -5
  221. package/src/integration/services/outbox.service.ts +35 -17
  222. package/src/integration/types/event.types.ts +4 -4
  223. package/src/integration-profile/integration-credential-crypto.service.ts +146 -0
  224. package/src/integration-profile/integration-profile.controller.ts +2 -0
  225. package/src/integration-profile/integration-profile.module.ts +5 -2
  226. package/src/integration-profile/integration-profile.secrets.ts +51 -0
  227. package/src/integration-profile/integration-profile.service.ts +335 -54
  228. package/src/integration-profile/integration-profile.utils.ts +56 -0
  229. package/src/language/en.json +5 -1
  230. package/src/language/pt.json +5 -1
  231. package/src/mail/mail.controller.ts +5 -29
  232. package/src/mail/mail.module.ts +5 -5
  233. package/src/mail/mail.service.ts +37 -13
  234. package/src/mcp/decorators/mcp-tool.decorator.ts +7 -7
  235. package/src/mcp/guards/mcp-permission.guard.ts +51 -51
  236. package/src/mcp/interfaces/mcp-tool-definition.interface.ts +6 -6
  237. package/src/mcp/mcp-server.service.ts +87 -87
  238. package/src/mcp/types/mcp-context.type.ts +6 -6
  239. package/src/mcp-chat/dto/create-conversation.dto.ts +7 -7
  240. package/src/mcp-chat/dto/send-message.dto.ts +7 -7
  241. package/src/mcp-chat/mcp-chat.service.ts +5 -5
  242. package/src/notification/events/notification-stale-progress-check.event.ts +5 -5
  243. package/src/oauth/oauth-callback-coordinator.service.spec.ts +159 -0
  244. package/src/oauth/providers/facebook.provider.ts +3 -3
  245. package/src/oauth/providers/github.provider.ts +3 -3
  246. package/src/oauth/providers/google.provider.ts +3 -3
  247. package/src/oauth/providers/microsoft-entra-id.provider.ts +3 -3
  248. package/src/oauth/providers/microsoft.provider.ts +3 -3
  249. package/src/pdf/pdf.service.ts +19 -6
  250. package/src/profile/profile.controller.ts +21 -14
  251. package/src/profile/profile.service.ts +23 -20
  252. package/src/route/dto/create.dto.ts +32 -32
  253. package/src/route/dto/update.dto.ts +31 -31
  254. package/src/security/security.service.spec.ts +222 -0
  255. package/src/setting/setting.service.ts +15 -2
  256. package/src/token/token.service.ts +2 -1
  257. package/src/user/user.controller.ts +26 -16
  258. package/src/user/user.service.ts +25 -0
  259. package/src/utils/webauthn-origin.ts +38 -0
  260. package/src/webhook-integration/integration-event-catalog.controller.ts +50 -50
  261. package/src/webhook-integration/integration-event-catalog.service.ts +117 -117
  262. package/src/webhook-integration/webhook-integration.controller.ts +23 -0
  263. package/src/webhook-integration/webhook-integration.module.ts +3 -3
  264. package/src/webhook-integration/webhook-integration.service.ts +115 -5
  265. package/dist/webhook-integration/webhook-command.registry.d.ts +0 -22
  266. package/dist/webhook-integration/webhook-command.registry.d.ts.map +0 -1
  267. package/dist/webhook-integration/webhook-command.registry.js.map +0 -1
  268. package/src/menu/menu.service.spec.ts +0 -247
  269. package/src/route/route.service.spec.ts +0 -300
  270. package/src/screen/screen.service.spec.ts +0 -298
  271. package/src/user/user.service.spec.ts +0 -294
@@ -1,66 +1,66 @@
1
- columns:
2
- - type: pk
3
- - type: fk
4
- name: event_webhook_id
5
- isNullable: true
6
- references:
7
- table: event_webhook
8
- column: id
9
- onDelete: set null
10
- onUpdate: cascade
11
- - type: fk
12
- name: integration_event_catalog_id
13
- isNullable: true
14
- references:
15
- table: integration_event_catalog
16
- column: id
17
- onDelete: set null
18
- onUpdate: cascade
19
- - name: outbox_event_id
20
- type: int
21
- isNullable: true
22
- - name: event_name
23
- type: varchar
24
- length: 255
25
- - name: method
26
- type: varchar
27
- length: 15
28
- - name: url
29
- type: text
30
- - name: status
31
- type: enum
32
- enum:
33
- - success
34
- - failed
35
- - name: http_status
36
- type: int
37
- isNullable: true
38
- - name: duration_ms
39
- type: int
40
- default: 0
41
- - name: attempt_count
42
- type: int
43
- default: 1
44
- - name: error_message
45
- type: text
46
- isNullable: true
47
- - name: request_summary
48
- type: json
49
- isNullable: true
50
- - name: response_summary
51
- type: json
52
- isNullable: true
53
- - type: created_at
54
- - type: updated_at
55
- indices:
56
- - columns:
57
- - event_webhook_id
58
- - columns:
59
- - integration_event_catalog_id
60
- - columns:
61
- - event_name
62
- - columns:
63
- - status
64
- - columns:
65
- - created_at
66
-
1
+ columns:
2
+ - type: pk
3
+ - type: fk
4
+ name: event_webhook_id
5
+ isNullable: true
6
+ references:
7
+ table: event_webhook
8
+ column: id
9
+ onDelete: set null
10
+ onUpdate: cascade
11
+ - type: fk
12
+ name: integration_event_catalog_id
13
+ isNullable: true
14
+ references:
15
+ table: integration_event_catalog
16
+ column: id
17
+ onDelete: set null
18
+ onUpdate: cascade
19
+ - name: outbox_event_id
20
+ type: int
21
+ isNullable: true
22
+ - name: event_name
23
+ type: varchar
24
+ length: 255
25
+ - name: method
26
+ type: varchar
27
+ length: 15
28
+ - name: url
29
+ type: text
30
+ - name: status
31
+ type: enum
32
+ enum:
33
+ - success
34
+ - failed
35
+ - name: http_status
36
+ type: int
37
+ isNullable: true
38
+ - name: duration_ms
39
+ type: int
40
+ default: 0
41
+ - name: attempt_count
42
+ type: int
43
+ default: 1
44
+ - name: error_message
45
+ type: text
46
+ isNullable: true
47
+ - name: request_summary
48
+ type: json
49
+ isNullable: true
50
+ - name: response_summary
51
+ type: json
52
+ isNullable: true
53
+ - type: created_at
54
+ - type: updated_at
55
+ indices:
56
+ - columns:
57
+ - event_webhook_id
58
+ - columns:
59
+ - integration_event_catalog_id
60
+ - columns:
61
+ - event_name
62
+ - columns:
63
+ - status
64
+ - columns:
65
+ - created_at
66
+
@@ -1,26 +1,26 @@
1
- columns:
2
- - type: pk
3
- - type: fk
4
- name: event_webhook_id
5
- references:
6
- table: event_webhook
7
- column: id
8
- onDelete: cascade
9
- onUpdate: cascade
10
- - type: fk
11
- name: integration_event_catalog_id
12
- references:
13
- table: integration_event_catalog
14
- column: id
15
- onDelete: cascade
16
- onUpdate: cascade
17
- - type: created_at
18
- - type: updated_at
19
- indices:
20
- - columns:
21
- - event_webhook_id
22
- - integration_event_catalog_id
23
- isUnique: true
24
- - columns:
25
- - integration_event_catalog_id
26
-
1
+ columns:
2
+ - type: pk
3
+ - type: fk
4
+ name: event_webhook_id
5
+ references:
6
+ table: event_webhook
7
+ column: id
8
+ onDelete: cascade
9
+ onUpdate: cascade
10
+ - type: fk
11
+ name: integration_event_catalog_id
12
+ references:
13
+ table: integration_event_catalog
14
+ column: id
15
+ onDelete: cascade
16
+ onUpdate: cascade
17
+ - type: created_at
18
+ - type: updated_at
19
+ indices:
20
+ - columns:
21
+ - event_webhook_id
22
+ - integration_event_catalog_id
23
+ isUnique: true
24
+ - columns:
25
+ - integration_event_catalog_id
26
+
@@ -1,41 +1,41 @@
1
- columns:
2
- - type: pk
3
- - type: slug
4
- - name: name
5
- type: varchar
6
- length: 127
7
- - name: module
8
- type: varchar
9
- length: 127
10
- - name: aggregate_type
11
- type: varchar
12
- length: 127
13
- isNullable: true
14
- - name: description
15
- type: text
16
- isNullable: true
17
- - name: payload_schema
18
- type: json
19
- isNullable: true
20
- - name: metadata_schema
21
- type: json
22
- isNullable: true
23
- - name: status
24
- type: enum
25
- enum:
26
- - active
27
- - inactive
28
- default: active
29
- - type: created_at
30
- - type: updated_at
31
- indices:
32
- - columns:
33
- - slug
34
- isUnique: true
35
- - columns:
36
- - module
37
- - columns:
38
- - aggregate_type
39
- - columns:
40
- - status
41
-
1
+ columns:
2
+ - type: pk
3
+ - type: slug
4
+ - name: name
5
+ type: varchar
6
+ length: 127
7
+ - name: module
8
+ type: varchar
9
+ length: 127
10
+ - name: aggregate_type
11
+ type: varchar
12
+ length: 127
13
+ isNullable: true
14
+ - name: description
15
+ type: text
16
+ isNullable: true
17
+ - name: payload_schema
18
+ type: json
19
+ isNullable: true
20
+ - name: metadata_schema
21
+ type: json
22
+ isNullable: true
23
+ - name: status
24
+ type: enum
25
+ enum:
26
+ - active
27
+ - inactive
28
+ default: active
29
+ - type: created_at
30
+ - type: updated_at
31
+ indices:
32
+ - columns:
33
+ - slug
34
+ isUnique: true
35
+ - columns:
36
+ - module
37
+ - columns:
38
+ - aggregate_type
39
+ - columns:
40
+ - status
41
+
@@ -1,12 +1,12 @@
1
- columns:
2
- - type: pk
3
- - name: user_id
4
- type: fk
5
- references:
6
- table: user
7
- column: id
8
- onDelete: CASCADE
9
- - name: title
10
- isNullable: true
11
- - type: created_at
12
- - type: updated_at
1
+ columns:
2
+ - type: pk
3
+ - name: user_id
4
+ type: fk
5
+ references:
6
+ table: user
7
+ column: id
8
+ onDelete: CASCADE
9
+ - name: title
10
+ isNullable: true
11
+ - type: created_at
12
+ - type: updated_at
@@ -1,23 +1,23 @@
1
- columns:
2
- - type: pk
3
- - name: conversation_id
4
- type: fk
5
- references:
6
- table: mcp_conversation
7
- column: id
8
- onDelete: CASCADE
9
- - name: role
10
- type: enum
11
- enum:
12
- - user
13
- - assistant
14
- - tool_call
15
- - tool_result
16
- - name: content
17
- type: text
18
- - name: tool_name
19
- isNullable: true
20
- - name: tool_call_id
21
- isNullable: true
22
- - type: created_at
23
- - type: updated_at
1
+ columns:
2
+ - type: pk
3
+ - name: conversation_id
4
+ type: fk
5
+ references:
6
+ table: mcp_conversation
7
+ column: id
8
+ onDelete: CASCADE
9
+ - name: role
10
+ type: enum
11
+ enum:
12
+ - user
13
+ - assistant
14
+ - tool_call
15
+ - tool_result
16
+ - name: content
17
+ type: text
18
+ - name: tool_name
19
+ isNullable: true
20
+ - name: tool_call_id
21
+ isNullable: true
22
+ - type: created_at
23
+ - type: updated_at
@@ -1,22 +1,22 @@
1
- columns:
2
- - type: pk
3
- - name: user_id
4
- type: fk
5
- references:
6
- table: user
7
- column: id
8
- onDelete: SET NULL
9
- isNullable: true
10
- - name: tool_name
11
- - name: input
12
- type: text
13
- isNullable: true
14
- - name: success
15
- type: boolean
16
- default: false
17
- - name: error
18
- isNullable: true
19
- - name: duration_ms
20
- type: int
21
- - type: created_at
22
- - type: updated_at
1
+ columns:
2
+ - type: pk
3
+ - name: user_id
4
+ type: fk
5
+ references:
6
+ table: user
7
+ column: id
8
+ onDelete: SET NULL
9
+ isNullable: true
10
+ - name: tool_name
11
+ - name: input
12
+ type: text
13
+ isNullable: true
14
+ - name: success
15
+ type: boolean
16
+ default: false
17
+ - name: error
18
+ isNullable: true
19
+ - name: duration_ms
20
+ type: int
21
+ - type: created_at
22
+ - type: updated_at
@@ -1,33 +1,33 @@
1
- columns:
2
- - type: pk
3
- - name: type
4
- type: enum
5
- enum:
6
- - HTTP
7
- - MCP
8
- default: HTTP
9
- - name: name
10
- isNullable: true
11
- - name: url
12
- isNullable: true
13
- - name: method
14
- type: enum
15
- enum:
16
- - GET
17
- - POST
18
- - PATCH
19
- - DELETE
20
- - PUT
21
- - OPTIONS
22
- - HEAD
23
- isNullable: true
24
- - name: tool_name
25
- isNullable: true
26
- - name: description
27
- isNullable: true
28
- - type: created_at
29
- - type: updated_at
30
- indices:
31
- - columns:
32
- - tool_name
33
- isUnique: true
1
+ columns:
2
+ - type: pk
3
+ - name: type
4
+ type: enum
5
+ enum:
6
+ - HTTP
7
+ - MCP
8
+ default: HTTP
9
+ - name: name
10
+ isNullable: true
11
+ - name: url
12
+ isNullable: true
13
+ - name: method
14
+ type: enum
15
+ enum:
16
+ - GET
17
+ - POST
18
+ - PATCH
19
+ - DELETE
20
+ - PUT
21
+ - OPTIONS
22
+ - HEAD
23
+ isNullable: true
24
+ - name: tool_name
25
+ isNullable: true
26
+ - name: description
27
+ isNullable: true
28
+ - type: created_at
29
+ - type: updated_at
30
+ indices:
31
+ - columns:
32
+ - tool_name
33
+ isUnique: true
@@ -22,6 +22,8 @@ columns:
22
22
  enum:
23
23
  - input-text
24
24
  - input-number
25
+ - input-duration
26
+ - input-bytes
25
27
  - input-secret
26
28
  - input-file
27
29
  - input-tags
@@ -29,6 +29,9 @@ columns:
29
29
  - name: payload_summary
30
30
  type: json
31
31
  isNullable: true
32
+ - name: payload_raw
33
+ type: json
34
+ isNullable: true
32
35
  - name: response_summary
33
36
  type: json
34
37
  isNullable: true
@@ -1,43 +1,43 @@
1
- columns:
2
- - type: pk
3
- - type: slug
4
- - name: name
5
- type: varchar
6
- length: 127
7
- - name: description
8
- type: text
9
- isNullable: true
10
- - name: public_uuid
11
- type: varchar
12
- length: 36
13
- - name: status
14
- type: enum
15
- enum:
16
- - active
17
- - inactive
18
- default: active
19
- - name: require_token
20
- type: boolean
21
- default: false
22
- - name: token_hash
23
- type: varchar
24
- length: 128
25
- isNullable: true
26
- - name: allowed_ips
27
- type: json
28
- isNullable: true
29
- - name: body_schema
30
- type: json
31
- isNullable: true
32
- - type: created_at
33
- - type: updated_at
34
- indices:
35
- - columns:
36
- - slug
37
- isUnique: true
38
- - columns:
39
- - public_uuid
40
- isUnique: true
41
- - columns:
42
- - status
43
-
1
+ columns:
2
+ - type: pk
3
+ - type: slug
4
+ - name: name
5
+ type: varchar
6
+ length: 127
7
+ - name: description
8
+ type: text
9
+ isNullable: true
10
+ - name: public_uuid
11
+ type: varchar
12
+ length: 36
13
+ - name: status
14
+ type: enum
15
+ enum:
16
+ - active
17
+ - inactive
18
+ default: active
19
+ - name: require_token
20
+ type: boolean
21
+ default: false
22
+ - name: token_hash
23
+ type: varchar
24
+ length: 128
25
+ isNullable: true
26
+ - name: allowed_ips
27
+ type: json
28
+ isNullable: true
29
+ - name: body_schema
30
+ type: json
31
+ isNullable: true
32
+ - type: created_at
33
+ - type: updated_at
34
+ indices:
35
+ - columns:
36
+ - slug
37
+ isUnique: true
38
+ - columns:
39
+ - public_uuid
40
+ isUnique: true
41
+ - columns:
42
+ - status
43
+
package/package.json CHANGED
@@ -1,12 +1,14 @@
1
1
  {
2
2
  "name": "@hed-hog/core",
3
- "version": "0.0.368",
3
+ "version": "0.0.371",
4
+ "license": "MIT",
4
5
  "main": "dist/index.js",
5
6
  "types": "dist/index.d.ts",
6
7
  "dependencies": {
7
8
  "@aws-sdk/client-lambda": "3.1014.0",
8
9
  "@aws-sdk/client-s3": "^3.1014.0",
9
10
  "@aws-sdk/client-sts": "3.1014.0",
11
+ "@aws-sdk/lib-storage": "3.1014.0",
10
12
  "@aws-sdk/s3-request-presigner": "^3.1014.0",
11
13
  "@azure/storage-blob": "^12.27.0",
12
14
  "@google-cloud/storage": "^7.16.0",
@@ -19,6 +21,7 @@
19
21
  "@nestjs/jwt": "^11",
20
22
  "@nestjs/mapped-types": "*",
21
23
  "@nestjs/schedule": "^6.0.1",
24
+ "@nestjs/throttler": "^6.4.0",
22
25
  "@simplewebauthn/server": "^13.2.2",
23
26
  "argon2": "^0.44.0",
24
27
  "axios": "^1.9.0",
@@ -41,9 +44,9 @@
41
44
  "@hed-hog/api": "0.0.8",
42
45
  "@hed-hog/api-locale": "0.0.14",
43
46
  "@hed-hog/api-pagination": "0.0.7",
44
- "@hed-hog/api-mail": "0.0.9",
45
47
  "@hed-hog/api-types": "0.0.1",
46
- "@hed-hog/api-prisma": "0.0.6"
48
+ "@hed-hog/api-prisma": "0.0.6",
49
+ "@hed-hog/api-mail": "0.0.9"
47
50
  },
48
51
  "exports": {
49
52
  ".": {
@@ -85,10 +88,12 @@
85
88
  "scripts": {
86
89
  "_dev": "pnpm build --watch",
87
90
  "lint": "eslint \"{src,apps,libs,test}/**/*.ts\"",
91
+ "test": "jest --config jest.config.ts --runInBand --passWithNoTests",
88
92
  "clean": "rimraf dist tsconfig.production.tsbuildinfo",
89
93
  "prebuild": "pnpm run clean && pnpm --dir ../.. exec ts-node ./scripts/build-dependencies.ts libraries/core",
90
- "build": "tsc --project tsconfig.production.json && pnpm run copy:templates",
94
+ "build": "tsc --project tsconfig.production.json && pnpm run copy:templates && pnpm run copy:language",
91
95
  "copy:templates": "node -e \"require('fs').cpSync('src/file/templates', 'dist/file/templates', {recursive: true})\"",
96
+ "copy:language": "node -e \"const fs=require('fs');if(fs.existsSync('src/language'))fs.cpSync('src/language','dist/language',{recursive:true})\"",
92
97
  "patch": "pnpm exec ts-node ../../scripts/patch.ts libraries/core",
93
98
  "prod": "pnpm run patch && pnpm run build && pnpm publish --access public --no-git-checks"
94
99
  }
@@ -62,7 +62,10 @@ export class AiService implements OnModuleInit {
62
62
  'ai-openai-profile-id',
63
63
  'ai-gemini-profile-id',
64
64
  ]);
65
- if (!Number(s['ai-openai-profile-id']) && !Number(s['ai-gemini-profile-id'])) {
65
+ if (
66
+ !String(s['ai-openai-profile-id'] ?? '').trim() &&
67
+ !String(s['ai-gemini-profile-id'] ?? '').trim()
68
+ ) {
66
69
  this.logger.warn('No AI profiles configured. Set profiles in Settings → AI.');
67
70
  }
68
71
  } catch { /* settings not available yet */ }
@@ -442,21 +445,21 @@ export class AiService implements OnModuleInit {
442
445
  private async getAiApiKey(provider: AiProvider): Promise<string> {
443
446
  const slug = provider === 'openai' ? 'ai-openai-profile-id' : 'ai-gemini-profile-id';
444
447
  const settings = await this.settingService.getSettingValues([slug]);
445
- const profileId = Number(settings[slug]);
448
+ const profileSlug = String(settings[slug] ?? '').trim();
446
449
 
447
- if (!profileId) {
450
+ if (!profileSlug) {
448
451
  throw new BadRequestException(
449
452
  `No ${provider} AI profile configured. Set one in Settings → AI.`,
450
453
  );
451
454
  }
452
455
 
453
456
  const profile = await this.prismaService.integration_profile.findUnique({
454
- where: { id: profileId },
457
+ where: { slug: profileSlug },
455
458
  include: { integration_provider: { select: { slug: true } } },
456
459
  });
457
460
 
458
461
  if (!profile) {
459
- throw new BadRequestException(`AI profile ${profileId} not found.`);
462
+ throw new BadRequestException(`AI profile "${profileSlug}" not found.`);
460
463
  }
461
464
 
462
465
  const { apiKey } = buildAiConfigFromIntegration(
@@ -465,7 +468,7 @@ export class AiService implements OnModuleInit {
465
468
  );
466
469
 
467
470
  if (!apiKey) {
468
- throw new BadRequestException(`AI profile ${profileId} has no API key configured.`);
471
+ throw new BadRequestException(`AI profile "${profileSlug}" has no API key configured.`);
469
472
  }
470
473
 
471
474
  return apiKey;
@@ -0,0 +1,9 @@
1
+ import { Global, Module } from '@nestjs/common';
2
+ import { AppCommandRegistry } from './app-command.registry';
3
+
4
+ @Global()
5
+ @Module({
6
+ providers: [AppCommandRegistry],
7
+ exports: [AppCommandRegistry],
8
+ })
9
+ export class AppCommandModule {}