@futdevpro/ccap 1.1.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (400) hide show
  1. package/bin/ccap.js +8 -0
  2. package/cli/build/_collections/auto-start.util.d.ts +15 -0
  3. package/cli/build/_collections/auto-start.util.d.ts.map +1 -0
  4. package/cli/build/_collections/auto-start.util.js +75 -0
  5. package/cli/build/_collections/auto-start.util.js.map +1 -0
  6. package/cli/build/_collections/config.util.d.ts +13 -0
  7. package/cli/build/_collections/config.util.d.ts.map +1 -0
  8. package/cli/build/_collections/config.util.js +71 -0
  9. package/cli/build/_collections/config.util.js.map +1 -0
  10. package/cli/build/_collections/config.util.spec.d.ts +2 -0
  11. package/cli/build/_collections/config.util.spec.d.ts.map +1 -0
  12. package/cli/build/_collections/config.util.spec.js +45 -0
  13. package/cli/build/_collections/config.util.spec.js.map +1 -0
  14. package/cli/build/_collections/ensure-setup.util.d.ts +14 -0
  15. package/cli/build/_collections/ensure-setup.util.d.ts.map +1 -0
  16. package/cli/build/_collections/ensure-setup.util.js +36 -0
  17. package/cli/build/_collections/ensure-setup.util.js.map +1 -0
  18. package/cli/build/_collections/setup-wizard.util.d.ts +22 -0
  19. package/cli/build/_collections/setup-wizard.util.d.ts.map +1 -0
  20. package/cli/build/_collections/setup-wizard.util.js +275 -0
  21. package/cli/build/_collections/setup-wizard.util.js.map +1 -0
  22. package/cli/build/_collections/setup.util.d.ts +79 -0
  23. package/cli/build/_collections/setup.util.d.ts.map +1 -0
  24. package/cli/build/_collections/setup.util.js +191 -0
  25. package/cli/build/_collections/setup.util.js.map +1 -0
  26. package/cli/build/_commands/chat.d.ts +7 -0
  27. package/cli/build/_commands/chat.d.ts.map +1 -0
  28. package/cli/build/_commands/chat.js +173 -0
  29. package/cli/build/_commands/chat.js.map +1 -0
  30. package/cli/build/_commands/config.d.ts +6 -0
  31. package/cli/build/_commands/config.d.ts.map +1 -0
  32. package/cli/build/_commands/config.js +70 -0
  33. package/cli/build/_commands/config.js.map +1 -0
  34. package/cli/build/_commands/init.d.ts +8 -0
  35. package/cli/build/_commands/init.d.ts.map +1 -0
  36. package/cli/build/_commands/init.js +25 -0
  37. package/cli/build/_commands/init.js.map +1 -0
  38. package/cli/build/_commands/restart.d.ts +5 -0
  39. package/cli/build/_commands/restart.d.ts.map +1 -0
  40. package/cli/build/_commands/restart.js +21 -0
  41. package/cli/build/_commands/restart.js.map +1 -0
  42. package/cli/build/_commands/sessions.d.ts +5 -0
  43. package/cli/build/_commands/sessions.d.ts.map +1 -0
  44. package/cli/build/_commands/sessions.js +54 -0
  45. package/cli/build/_commands/sessions.js.map +1 -0
  46. package/cli/build/_commands/start.d.ts +12 -0
  47. package/cli/build/_commands/start.d.ts.map +1 -0
  48. package/cli/build/_commands/start.js +75 -0
  49. package/cli/build/_commands/start.js.map +1 -0
  50. package/cli/build/_commands/status.d.ts +6 -0
  51. package/cli/build/_commands/status.d.ts.map +1 -0
  52. package/cli/build/_commands/status.js +71 -0
  53. package/cli/build/_commands/status.js.map +1 -0
  54. package/cli/build/_commands/stop.d.ts +6 -0
  55. package/cli/build/_commands/stop.d.ts.map +1 -0
  56. package/cli/build/_commands/stop.js +41 -0
  57. package/cli/build/_commands/stop.js.map +1 -0
  58. package/cli/build/_commands/vault-key.d.ts +7 -0
  59. package/cli/build/_commands/vault-key.d.ts.map +1 -0
  60. package/cli/build/_commands/vault-key.js +36 -0
  61. package/cli/build/_commands/vault-key.js.map +1 -0
  62. package/cli/build/_commands/version.d.ts +5 -0
  63. package/cli/build/_commands/version.d.ts.map +1 -0
  64. package/cli/build/_commands/version.js +13 -0
  65. package/cli/build/_commands/version.js.map +1 -0
  66. package/cli/build/program.d.ts +3 -0
  67. package/cli/build/program.d.ts.map +1 -0
  68. package/cli/build/program.js +97 -0
  69. package/cli/build/program.js.map +1 -0
  70. package/client-dist/3rdpartylicenses.txt +569 -0
  71. package/client-dist/browser/chunk-KJ7FQNUG.js +1 -0
  72. package/client-dist/browser/chunk-UTNU5A7U.js +218 -0
  73. package/client-dist/browser/index.html +13 -0
  74. package/client-dist/browser/main-RHNH7LDD.js +2 -0
  75. package/client-dist/browser/polyfills-HGDOEU5L.js +2 -0
  76. package/client-dist/browser/styles-VWWGDWT7.css +1 -0
  77. package/package.json +54 -0
  78. package/server/build/package.json +60 -0
  79. package/server/build/src/_collections/consts/agent.const.js +26 -0
  80. package/server/build/src/_collections/consts/agent.const.js.map +1 -0
  81. package/server/build/src/_collections/consts/compacting.const.js +14 -0
  82. package/server/build/src/_collections/consts/compacting.const.js.map +1 -0
  83. package/server/build/src/_collections/consts/run-status-transitions.const.js +26 -0
  84. package/server/build/src/_collections/consts/run-status-transitions.const.js.map +1 -0
  85. package/server/build/src/_collections/consts/run-status-transitions.const.spec.js +41 -0
  86. package/server/build/src/_collections/consts/run-status-transitions.const.spec.js.map +1 -0
  87. package/server/build/src/_collections/contract-templates/context.contract-template.js +19 -0
  88. package/server/build/src/_collections/contract-templates/context.contract-template.js.map +1 -0
  89. package/server/build/src/_collections/contract-templates/execution-summary.contract-template.js +20 -0
  90. package/server/build/src/_collections/contract-templates/execution-summary.contract-template.js.map +1 -0
  91. package/server/build/src/_collections/contract-templates/history-summary.contract-template.js +19 -0
  92. package/server/build/src/_collections/contract-templates/history-summary.contract-template.js.map +1 -0
  93. package/server/build/src/_collections/contract-templates/run.contract-template.js +14 -0
  94. package/server/build/src/_collections/contract-templates/run.contract-template.js.map +1 -0
  95. package/server/build/src/_collections/contract-templates/session.contract-template.js +15 -0
  96. package/server/build/src/_collections/contract-templates/session.contract-template.js.map +1 -0
  97. package/server/build/src/_enums/ccap-context-key-source.type-enum.js +15 -0
  98. package/server/build/src/_enums/ccap-context-key-source.type-enum.js.map +1 -0
  99. package/server/build/src/_enums/ccap-context-key-status.type-enum.js +14 -0
  100. package/server/build/src/_enums/ccap-context-key-status.type-enum.js.map +1 -0
  101. package/server/build/src/_enums/ccap-contract.type-enum.js +16 -0
  102. package/server/build/src/_enums/ccap-contract.type-enum.js.map +1 -0
  103. package/server/build/src/_enums/ccap-conversation-type.type-enum.js +15 -0
  104. package/server/build/src/_enums/ccap-conversation-type.type-enum.js.map +1 -0
  105. package/server/build/src/_enums/ccap-llm-call-type.type-enum.js +21 -0
  106. package/server/build/src/_enums/ccap-llm-call-type.type-enum.js.map +1 -0
  107. package/server/build/src/_enums/ccap-llm-provider-name.type-enum.js +18 -0
  108. package/server/build/src/_enums/ccap-llm-provider-name.type-enum.js.map +1 -0
  109. package/server/build/src/_enums/ccap-message-role.type-enum.js +15 -0
  110. package/server/build/src/_enums/ccap-message-role.type-enum.js.map +1 -0
  111. package/server/build/src/_enums/ccap-messaging-provider-name.type-enum.js +20 -0
  112. package/server/build/src/_enums/ccap-messaging-provider-name.type-enum.js.map +1 -0
  113. package/server/build/src/_enums/ccap-monitoring-event.type-enum.js +18 -0
  114. package/server/build/src/_enums/ccap-monitoring-event.type-enum.js.map +1 -0
  115. package/server/build/src/_enums/ccap-run-action.type-enum.js +15 -0
  116. package/server/build/src/_enums/ccap-run-action.type-enum.js.map +1 -0
  117. package/server/build/src/_enums/ccap-run-status.type-enum.js +18 -0
  118. package/server/build/src/_enums/ccap-run-status.type-enum.js.map +1 -0
  119. package/server/build/src/_enums/ccap-session-status.type-enum.js +14 -0
  120. package/server/build/src/_enums/ccap-session-status.type-enum.js.map +1 -0
  121. package/server/build/src/_enums/ccap-system-prompt-part.type-enum.js +16 -0
  122. package/server/build/src/_enums/ccap-system-prompt-part.type-enum.js.map +1 -0
  123. package/server/build/src/_enums/ccap-tool-category.type-enum.js +17 -0
  124. package/server/build/src/_enums/ccap-tool-category.type-enum.js.map +1 -0
  125. package/server/build/src/_enums/ccap-tool-entry-type.type-enum.js +13 -0
  126. package/server/build/src/_enums/ccap-tool-entry-type.type-enum.js.map +1 -0
  127. package/server/build/src/_models/data-models/ccap-conversation-active.data-model.js +34 -0
  128. package/server/build/src/_models/data-models/ccap-conversation-active.data-model.js.map +1 -0
  129. package/server/build/src/_models/data-models/ccap-conversation-full-active.data-model.js +40 -0
  130. package/server/build/src/_models/data-models/ccap-conversation-full-active.data-model.js.map +1 -0
  131. package/server/build/src/_models/data-models/ccap-conversation-full.data-model.js +30 -0
  132. package/server/build/src/_models/data-models/ccap-conversation-full.data-model.js.map +1 -0
  133. package/server/build/src/_models/data-models/ccap-conversation.data-model.js +30 -0
  134. package/server/build/src/_models/data-models/ccap-conversation.data-model.js.map +1 -0
  135. package/server/build/src/_models/data-models/ccap-error.data-model.js +40 -0
  136. package/server/build/src/_models/data-models/ccap-error.data-model.js.map +1 -0
  137. package/server/build/src/_models/data-models/ccap-run.data-model.js +56 -0
  138. package/server/build/src/_models/data-models/ccap-run.data-model.js.map +1 -0
  139. package/server/build/src/_models/data-models/ccap-secret.data-model.js +39 -0
  140. package/server/build/src/_models/data-models/ccap-secret.data-model.js.map +1 -0
  141. package/server/build/src/_models/data-models/ccap-session.data-model.js +69 -0
  142. package/server/build/src/_models/data-models/ccap-session.data-model.js.map +1 -0
  143. package/server/build/src/_models/interfaces/ccap-agentic-decision.interface.js +3 -0
  144. package/server/build/src/_models/interfaces/ccap-agentic-decision.interface.js.map +1 -0
  145. package/server/build/src/_models/interfaces/ccap-assistant-message.interface.js +3 -0
  146. package/server/build/src/_models/interfaces/ccap-assistant-message.interface.js.map +1 -0
  147. package/server/build/src/_models/interfaces/ccap-channel-identifier.interface.js +23 -0
  148. package/server/build/src/_models/interfaces/ccap-channel-identifier.interface.js.map +1 -0
  149. package/server/build/src/_models/interfaces/ccap-common-context.interface.js +3 -0
  150. package/server/build/src/_models/interfaces/ccap-common-context.interface.js.map +1 -0
  151. package/server/build/src/_models/interfaces/ccap-compacted-soul.interface.js +3 -0
  152. package/server/build/src/_models/interfaces/ccap-compacted-soul.interface.js.map +1 -0
  153. package/server/build/src/_models/interfaces/ccap-context-contract.interface.js +3 -0
  154. package/server/build/src/_models/interfaces/ccap-context-contract.interface.js.map +1 -0
  155. package/server/build/src/_models/interfaces/ccap-context-key.interface.js +3 -0
  156. package/server/build/src/_models/interfaces/ccap-context-key.interface.js.map +1 -0
  157. package/server/build/src/_models/interfaces/ccap-context-state.interface.js +3 -0
  158. package/server/build/src/_models/interfaces/ccap-context-state.interface.js.map +1 -0
  159. package/server/build/src/_models/interfaces/ccap-context.interface.js +3 -0
  160. package/server/build/src/_models/interfaces/ccap-context.interface.js.map +1 -0
  161. package/server/build/src/_models/interfaces/ccap-execution-summary-contract.interface.js +3 -0
  162. package/server/build/src/_models/interfaces/ccap-execution-summary-contract.interface.js.map +1 -0
  163. package/server/build/src/_models/interfaces/ccap-history-summary-contract.interface.js +3 -0
  164. package/server/build/src/_models/interfaces/ccap-history-summary-contract.interface.js.map +1 -0
  165. package/server/build/src/_models/interfaces/ccap-llm-call-options.interface.js +3 -0
  166. package/server/build/src/_models/interfaces/ccap-llm-call-options.interface.js.map +1 -0
  167. package/server/build/src/_models/interfaces/ccap-llm-provider.interface.js +3 -0
  168. package/server/build/src/_models/interfaces/ccap-llm-provider.interface.js.map +1 -0
  169. package/server/build/src/_models/interfaces/ccap-llm-response.interface.js +3 -0
  170. package/server/build/src/_models/interfaces/ccap-llm-response.interface.js.map +1 -0
  171. package/server/build/src/_models/interfaces/ccap-message.interface.js +3 -0
  172. package/server/build/src/_models/interfaces/ccap-message.interface.js.map +1 -0
  173. package/server/build/src/_models/interfaces/ccap-messaging-provider.interface.js +3 -0
  174. package/server/build/src/_models/interfaces/ccap-messaging-provider.interface.js.map +1 -0
  175. package/server/build/src/_models/interfaces/ccap-monitoring-event.interface.js +3 -0
  176. package/server/build/src/_models/interfaces/ccap-monitoring-event.interface.js.map +1 -0
  177. package/server/build/src/_models/interfaces/ccap-run-finalization-result.interface.js +3 -0
  178. package/server/build/src/_models/interfaces/ccap-run-finalization-result.interface.js.map +1 -0
  179. package/server/build/src/_models/interfaces/ccap-session-info.interface.js +3 -0
  180. package/server/build/src/_models/interfaces/ccap-session-info.interface.js.map +1 -0
  181. package/server/build/src/_models/interfaces/ccap-setup-config.interface.js +3 -0
  182. package/server/build/src/_models/interfaces/ccap-setup-config.interface.js.map +1 -0
  183. package/server/build/src/_models/interfaces/ccap-soul.interface.js +3 -0
  184. package/server/build/src/_models/interfaces/ccap-soul.interface.js.map +1 -0
  185. package/server/build/src/_models/interfaces/ccap-system-message.interface.js +3 -0
  186. package/server/build/src/_models/interfaces/ccap-system-message.interface.js.map +1 -0
  187. package/server/build/src/_models/interfaces/ccap-tool-call-message.interface.js +3 -0
  188. package/server/build/src/_models/interfaces/ccap-tool-call-message.interface.js.map +1 -0
  189. package/server/build/src/_models/interfaces/ccap-tool-call-result.interface.js +3 -0
  190. package/server/build/src/_models/interfaces/ccap-tool-call-result.interface.js.map +1 -0
  191. package/server/build/src/_models/interfaces/ccap-tool-group.interface.js +3 -0
  192. package/server/build/src/_models/interfaces/ccap-tool-group.interface.js.map +1 -0
  193. package/server/build/src/_models/interfaces/ccap-tool-in-context.interface.js +3 -0
  194. package/server/build/src/_models/interfaces/ccap-tool-in-context.interface.js.map +1 -0
  195. package/server/build/src/_models/interfaces/ccap-tool-result-message.interface.js +3 -0
  196. package/server/build/src/_models/interfaces/ccap-tool-result-message.interface.js.map +1 -0
  197. package/server/build/src/_models/interfaces/ccap-tool.interface.js +3 -0
  198. package/server/build/src/_models/interfaces/ccap-tool.interface.js.map +1 -0
  199. package/server/build/src/_models/interfaces/ccap-user-message.interface.js +3 -0
  200. package/server/build/src/_models/interfaces/ccap-user-message.interface.js.map +1 -0
  201. package/server/build/src/_modules/agent/agentic-loop.control-service.js +231 -0
  202. package/server/build/src/_modules/agent/agentic-loop.control-service.js.map +1 -0
  203. package/server/build/src/_modules/agent/analyze.control-service.js +189 -0
  204. package/server/build/src/_modules/agent/analyze.control-service.js.map +1 -0
  205. package/server/build/src/_modules/agent/assemble-conversation.control-service.js +204 -0
  206. package/server/build/src/_modules/agent/assemble-conversation.control-service.js.map +1 -0
  207. package/server/build/src/_modules/agent/compacting/_collections/compacting.const.js +26 -0
  208. package/server/build/src/_modules/agent/compacting/_collections/compacting.const.js.map +1 -0
  209. package/server/build/src/_modules/agent/compacting/chat-history-compacting.control-service.js +67 -0
  210. package/server/build/src/_modules/agent/compacting/chat-history-compacting.control-service.js.map +1 -0
  211. package/server/build/src/_modules/agent/compacting/context-compacting.control-service.js +41 -0
  212. package/server/build/src/_modules/agent/compacting/context-compacting.control-service.js.map +1 -0
  213. package/server/build/src/_modules/agent/compacting/conversation-full-active-compacting.control-service.js +245 -0
  214. package/server/build/src/_modules/agent/compacting/conversation-full-active-compacting.control-service.js.map +1 -0
  215. package/server/build/src/_modules/agent/compacting/execution-history-compacting.control-service.js +105 -0
  216. package/server/build/src/_modules/agent/compacting/execution-history-compacting.control-service.js.map +1 -0
  217. package/server/build/src/_modules/agent/compacting/soul-compacting.control-service.js +84 -0
  218. package/server/build/src/_modules/agent/compacting/soul-compacting.control-service.js.map +1 -0
  219. package/server/build/src/_modules/agent/compacting/tool-result-compacting.control-service.js +109 -0
  220. package/server/build/src/_modules/agent/compacting/tool-result-compacting.control-service.js.map +1 -0
  221. package/server/build/src/_modules/agent/execution.control-service.js +84 -0
  222. package/server/build/src/_modules/agent/execution.control-service.js.map +1 -0
  223. package/server/build/src/_modules/agent/history/chat-history.control-service.js +106 -0
  224. package/server/build/src/_modules/agent/history/chat-history.control-service.js.map +1 -0
  225. package/server/build/src/_modules/agent/history/execution-history.control-service.js +128 -0
  226. package/server/build/src/_modules/agent/history/execution-history.control-service.js.map +1 -0
  227. package/server/build/src/_modules/agent/history/execution-history.control-service.spec.js +154 -0
  228. package/server/build/src/_modules/agent/history/execution-history.control-service.spec.js.map +1 -0
  229. package/server/build/src/_modules/agent/new-user-message-handling.control-service.js +125 -0
  230. package/server/build/src/_modules/agent/new-user-message-handling.control-service.js.map +1 -0
  231. package/server/build/src/_modules/agent/new-user-message-handling.control-service.spec.js +105 -0
  232. package/server/build/src/_modules/agent/new-user-message-handling.control-service.spec.js.map +1 -0
  233. package/server/build/src/_modules/agent/run-finalization.control-service.js +210 -0
  234. package/server/build/src/_modules/agent/run-finalization.control-service.js.map +1 -0
  235. package/server/build/src/_modules/agent/run-flow-e2e.spec.js +226 -0
  236. package/server/build/src/_modules/agent/run-flow-e2e.spec.js.map +1 -0
  237. package/server/build/src/_modules/agent/run-flow.control-service.js +346 -0
  238. package/server/build/src/_modules/agent/run-flow.control-service.js.map +1 -0
  239. package/server/build/src/_modules/agent/run-initialization.control-service.js +47 -0
  240. package/server/build/src/_modules/agent/run-initialization.control-service.js.map +1 -0
  241. package/server/build/src/_modules/agent/run.data-service.js +149 -0
  242. package/server/build/src/_modules/agent/run.data-service.js.map +1 -0
  243. package/server/build/src/_modules/agent/session-mutex.control-service.js +96 -0
  244. package/server/build/src/_modules/agent/session-mutex.control-service.js.map +1 -0
  245. package/server/build/src/_modules/agent/session-mutex.control-service.spec.js +48 -0
  246. package/server/build/src/_modules/agent/session-mutex.control-service.spec.js.map +1 -0
  247. package/server/build/src/_modules/agent/tool-calling.control-service.js +186 -0
  248. package/server/build/src/_modules/agent/tool-calling.control-service.js.map +1 -0
  249. package/server/build/src/_modules/context/_collections/context.const.js +34 -0
  250. package/server/build/src/_modules/context/_collections/context.const.js.map +1 -0
  251. package/server/build/src/_modules/context/_collections/context.const.spec.js +20 -0
  252. package/server/build/src/_modules/context/_collections/context.const.spec.js.map +1 -0
  253. package/server/build/src/_modules/context/common-context.data-service.js +78 -0
  254. package/server/build/src/_modules/context/common-context.data-service.js.map +1 -0
  255. package/server/build/src/_modules/context/context-builder.util-service.js +139 -0
  256. package/server/build/src/_modules/context/context-builder.util-service.js.map +1 -0
  257. package/server/build/src/_modules/context/context-builder.util-service.spec.js +157 -0
  258. package/server/build/src/_modules/context/context-builder.util-service.spec.js.map +1 -0
  259. package/server/build/src/_modules/context/context-management.control-service.js +365 -0
  260. package/server/build/src/_modules/context/context-management.control-service.js.map +1 -0
  261. package/server/build/src/_modules/context/context-management.control-service.spec.js +305 -0
  262. package/server/build/src/_modules/context/context-management.control-service.spec.js.map +1 -0
  263. package/server/build/src/_modules/context/knowledge.data-service.js +70 -0
  264. package/server/build/src/_modules/context/knowledge.data-service.js.map +1 -0
  265. package/server/build/src/_modules/context/session-info-context.data-service.js +45 -0
  266. package/server/build/src/_modules/context/session-info-context.data-service.js.map +1 -0
  267. package/server/build/src/_modules/database/database.data-service.js +35 -0
  268. package/server/build/src/_modules/database/database.data-service.js.map +1 -0
  269. package/server/build/src/_modules/default-path/default-path.util-service.js +49 -0
  270. package/server/build/src/_modules/default-path/default-path.util-service.js.map +1 -0
  271. package/server/build/src/_modules/default-path/default-path.util-service.spec.js +61 -0
  272. package/server/build/src/_modules/default-path/default-path.util-service.spec.js.map +1 -0
  273. package/server/build/src/_modules/default-path/soul-file.util-service.js +111 -0
  274. package/server/build/src/_modules/default-path/soul-file.util-service.js.map +1 -0
  275. package/server/build/src/_modules/default-path/soul-file.util-service.spec.js +36 -0
  276. package/server/build/src/_modules/default-path/soul-file.util-service.spec.js.map +1 -0
  277. package/server/build/src/_modules/error-handling/ccap-analyze-cancelled.error.js +18 -0
  278. package/server/build/src/_modules/error-handling/ccap-analyze-cancelled.error.js.map +1 -0
  279. package/server/build/src/_modules/error-handling/error-collector.util-service.js +78 -0
  280. package/server/build/src/_modules/error-handling/error-collector.util-service.js.map +1 -0
  281. package/server/build/src/_modules/error-handling/error-collector.util-service.spec.js +38 -0
  282. package/server/build/src/_modules/error-handling/error-collector.util-service.spec.js.map +1 -0
  283. package/server/build/src/_modules/error-handling/error-table.data-service.js +59 -0
  284. package/server/build/src/_modules/error-handling/error-table.data-service.js.map +1 -0
  285. package/server/build/src/_modules/llm/_collections/llm.const.js +28 -0
  286. package/server/build/src/_modules/llm/_collections/llm.const.js.map +1 -0
  287. package/server/build/src/_modules/llm/_collections/llm.const.spec.js +24 -0
  288. package/server/build/src/_modules/llm/_collections/llm.const.spec.js.map +1 -0
  289. package/server/build/src/_modules/llm/_collections/prompt-templates/agentic-loop.prompt-template.js +48 -0
  290. package/server/build/src/_modules/llm/_collections/prompt-templates/agentic-loop.prompt-template.js.map +1 -0
  291. package/server/build/src/_modules/llm/_collections/prompt-templates/analyze.prompt-template.js +52 -0
  292. package/server/build/src/_modules/llm/_collections/prompt-templates/analyze.prompt-template.js.map +1 -0
  293. package/server/build/src/_modules/llm/_collections/prompt-templates/chat-history-compacting.prompt-template.js +28 -0
  294. package/server/build/src/_modules/llm/_collections/prompt-templates/chat-history-compacting.prompt-template.js.map +1 -0
  295. package/server/build/src/_modules/llm/_collections/prompt-templates/context-compacting.prompt-template.js +27 -0
  296. package/server/build/src/_modules/llm/_collections/prompt-templates/context-compacting.prompt-template.js.map +1 -0
  297. package/server/build/src/_modules/llm/_collections/prompt-templates/execution-history-compacting.prompt-template.js +45 -0
  298. package/server/build/src/_modules/llm/_collections/prompt-templates/execution-history-compacting.prompt-template.js.map +1 -0
  299. package/server/build/src/_modules/llm/_collections/prompt-templates/run-finalization.prompt-template.js +30 -0
  300. package/server/build/src/_modules/llm/_collections/prompt-templates/run-finalization.prompt-template.js.map +1 -0
  301. package/server/build/src/_modules/llm/_collections/prompt-templates/soul-compacting.prompt-template.js +26 -0
  302. package/server/build/src/_modules/llm/_collections/prompt-templates/soul-compacting.prompt-template.js.map +1 -0
  303. package/server/build/src/_modules/llm/_collections/prompt-templates/tool-description.prompt-template.js +25 -0
  304. package/server/build/src/_modules/llm/_collections/prompt-templates/tool-description.prompt-template.js.map +1 -0
  305. package/server/build/src/_modules/llm/_collections/prompt-templates/tool-result-chunking.prompt-template.js +54 -0
  306. package/server/build/src/_modules/llm/_collections/prompt-templates/tool-result-chunking.prompt-template.js.map +1 -0
  307. package/server/build/src/_modules/llm/llm.control-service.js +137 -0
  308. package/server/build/src/_modules/llm/llm.control-service.js.map +1 -0
  309. package/server/build/src/_modules/llm/providers/custom-local-ai-llm.control-service.js +128 -0
  310. package/server/build/src/_modules/llm/providers/custom-local-ai-llm.control-service.js.map +1 -0
  311. package/server/build/src/_modules/llm/providers/openai-llm.control-service.js +120 -0
  312. package/server/build/src/_modules/llm/providers/openai-llm.control-service.js.map +1 -0
  313. package/server/build/src/_modules/llm/system-prompt.data-service.js +124 -0
  314. package/server/build/src/_modules/llm/system-prompt.data-service.js.map +1 -0
  315. package/server/build/src/_modules/llm/system-prompt.data-service.spec.js +138 -0
  316. package/server/build/src/_modules/llm/system-prompt.data-service.spec.js.map +1 -0
  317. package/server/build/src/_modules/messaging/_collections/messaging.const.js +30 -0
  318. package/server/build/src/_modules/messaging/_collections/messaging.const.js.map +1 -0
  319. package/server/build/src/_modules/messaging/_collections/messaging.const.spec.js +18 -0
  320. package/server/build/src/_modules/messaging/_collections/messaging.const.spec.js.map +1 -0
  321. package/server/build/src/_modules/messaging/messaging-router.control-service.js +224 -0
  322. package/server/build/src/_modules/messaging/messaging-router.control-service.js.map +1 -0
  323. package/server/build/src/_modules/messaging/messaging-router.control-service.spec.js +141 -0
  324. package/server/build/src/_modules/messaging/messaging-router.control-service.spec.js.map +1 -0
  325. package/server/build/src/_modules/messaging/providers/ccap-client-messaging.control-service.js +256 -0
  326. package/server/build/src/_modules/messaging/providers/ccap-client-messaging.control-service.js.map +1 -0
  327. package/server/build/src/_modules/messaging/providers/ccap-client-socket-server.service.js +51 -0
  328. package/server/build/src/_modules/messaging/providers/ccap-client-socket-server.service.js.map +1 -0
  329. package/server/build/src/_modules/messaging/providers/cli-messaging.control-service.js +89 -0
  330. package/server/build/src/_modules/messaging/providers/cli-messaging.control-service.js.map +1 -0
  331. package/server/build/src/_modules/messaging/providers/discord-messaging.control-service.js +121 -0
  332. package/server/build/src/_modules/messaging/providers/discord-messaging.control-service.js.map +1 -0
  333. package/server/build/src/_modules/monitoring/monitoring.data-service.js +99 -0
  334. package/server/build/src/_modules/monitoring/monitoring.data-service.js.map +1 -0
  335. package/server/build/src/_modules/monitoring/monitoring.data-service.spec.js +50 -0
  336. package/server/build/src/_modules/monitoring/monitoring.data-service.spec.js.map +1 -0
  337. package/server/build/src/_modules/path-protection/path-protection.util-service.js +84 -0
  338. package/server/build/src/_modules/path-protection/path-protection.util-service.js.map +1 -0
  339. package/server/build/src/_modules/path-protection/path-protection.util-service.spec.js +55 -0
  340. package/server/build/src/_modules/path-protection/path-protection.util-service.spec.js.map +1 -0
  341. package/server/build/src/_modules/secrets-vault/secrets-vault.data-service.js +186 -0
  342. package/server/build/src/_modules/secrets-vault/secrets-vault.data-service.js.map +1 -0
  343. package/server/build/src/_modules/session/conversation.data-service.js +241 -0
  344. package/server/build/src/_modules/session/conversation.data-service.js.map +1 -0
  345. package/server/build/src/_modules/session/session.data-service.js +265 -0
  346. package/server/build/src/_modules/session/session.data-service.js.map +1 -0
  347. package/server/build/src/_modules/setup-config/setup-config.data-service.js +95 -0
  348. package/server/build/src/_modules/setup-config/setup-config.data-service.js.map +1 -0
  349. package/server/build/src/_modules/tools/_collections/tools.const.js +20 -0
  350. package/server/build/src/_modules/tools/_collections/tools.const.js.map +1 -0
  351. package/server/build/src/_modules/tools/fixed-tools/control/context-handling.tool.js +135 -0
  352. package/server/build/src/_modules/tools/fixed-tools/control/context-handling.tool.js.map +1 -0
  353. package/server/build/src/_modules/tools/fixed-tools/control/session-handling.tool.js +46 -0
  354. package/server/build/src/_modules/tools/fixed-tools/control/session-handling.tool.js.map +1 -0
  355. package/server/build/src/_modules/tools/fixed-tools/exec/exec.tool.js +119 -0
  356. package/server/build/src/_modules/tools/fixed-tools/exec/exec.tool.js.map +1 -0
  357. package/server/build/src/_modules/tools/fixed-tools/file-handling/file-handling.tool.js +179 -0
  358. package/server/build/src/_modules/tools/fixed-tools/file-handling/file-handling.tool.js.map +1 -0
  359. package/server/build/src/_modules/tools/fixed-tools/net/net.tool.js +97 -0
  360. package/server/build/src/_modules/tools/fixed-tools/net/net.tool.js.map +1 -0
  361. package/server/build/src/_modules/tools/fixed-tools/tool-handling/tool-handling.tool.js +100 -0
  362. package/server/build/src/_modules/tools/fixed-tools/tool-handling/tool-handling.tool.js.map +1 -0
  363. package/server/build/src/_modules/tools/tool-execution.control-service.js +110 -0
  364. package/server/build/src/_modules/tools/tool-execution.control-service.js.map +1 -0
  365. package/server/build/src/_modules/tools/tool-registry.control-service.js +124 -0
  366. package/server/build/src/_modules/tools/tool-registry.control-service.js.map +1 -0
  367. package/server/build/src/_modules/tools/tools-in-context.util-service.js +90 -0
  368. package/server/build/src/_modules/tools/tools-in-context.util-service.js.map +1 -0
  369. package/server/build/src/_modules/tools/tools-in-context.util-service.spec.js +66 -0
  370. package/server/build/src/_modules/tools/tools-in-context.util-service.spec.js.map +1 -0
  371. package/server/build/src/_routes/client-static/client-static.controller.js +54 -0
  372. package/server/build/src/_routes/client-static/client-static.controller.js.map +1 -0
  373. package/server/build/src/_routes/messaging/messaging-message-body.interface.js +3 -0
  374. package/server/build/src/_routes/messaging/messaging-message-body.interface.js.map +1 -0
  375. package/server/build/src/_routes/messaging/messaging.controller.js +77 -0
  376. package/server/build/src/_routes/messaging/messaging.controller.js.map +1 -0
  377. package/server/build/src/_routes/server/server-status/server-status.controller.js +40 -0
  378. package/server/build/src/_routes/server/server-status/server-status.controller.js.map +1 -0
  379. package/server/build/src/_routes/server/server-status/server-status.controller.spec.js +19 -0
  380. package/server/build/src/_routes/server/server-status/server-status.controller.spec.js.map +1 -0
  381. package/server/build/src/_routes/server/server-status/server-status.data-service.js +11 -0
  382. package/server/build/src/_routes/server/server-status/server-status.data-service.js.map +1 -0
  383. package/server/build/src/_routes/session/context-api.data-service.js +69 -0
  384. package/server/build/src/_routes/session/context-api.data-service.js.map +1 -0
  385. package/server/build/src/_routes/session/conversation-api.data-service.js +69 -0
  386. package/server/build/src/_routes/session/conversation-api.data-service.js.map +1 -0
  387. package/server/build/src/_routes/session/monitoring-api.data-service.js +45 -0
  388. package/server/build/src/_routes/session/monitoring-api.data-service.js.map +1 -0
  389. package/server/build/src/_routes/session/session-api.data-service.js +70 -0
  390. package/server/build/src/_routes/session/session-api.data-service.js.map +1 -0
  391. package/server/build/src/_routes/session/session.controller.js +251 -0
  392. package/server/build/src/_routes/session/session.controller.js.map +1 -0
  393. package/server/build/src/_routes/setup/setup.controller.js +255 -0
  394. package/server/build/src/_routes/setup/setup.controller.js.map +1 -0
  395. package/server/build/src/app.server.js +232 -0
  396. package/server/build/src/app.server.js.map +1 -0
  397. package/server/build/src/app.server.spec.js +24 -0
  398. package/server/build/src/app.server.spec.js.map +1 -0
  399. package/server/build/src/index.js +9 -0
  400. package/server/build/src/index.js.map +1 -0
@@ -0,0 +1,121 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.CCAP_DiscordMessaging_ControlService = void 0;
4
+ const discord_js_1 = require("discord.js");
5
+ const fsm_dynamo_1 = require("@futdevpro/fsm-dynamo");
6
+ const ccap_messaging_provider_name_type_enum_1 = require("../../../_enums/ccap-messaging-provider-name.type-enum");
7
+ /**
8
+ * Discord messaging provider control-service.
9
+ * Discord.js bot integráció: üzenet fogadás és küldés.
10
+ */
11
+ class CCAP_DiscordMessaging_ControlService {
12
+ /** Discord.js client instance. */
13
+ client;
14
+ /** Bejövő üzenet callback. */
15
+ messageCallback;
16
+ /** Bot token (constructor vagy env). */
17
+ botToken;
18
+ constructor(params) {
19
+ this.botToken = params?.botToken;
20
+ }
21
+ /**
22
+ * Provider neve.
23
+ */
24
+ getProviderName() {
25
+ return ccap_messaging_provider_name_type_enum_1.CCAP_MessagingProviderName_Type.discord;
26
+ }
27
+ /**
28
+ * Provider inicializálása: Discord bot csatlakozás.
29
+ */
30
+ async initialize() {
31
+ this.botToken = this.botToken ?? process.env.CCAP_DISCORD_BOT_TOKEN;
32
+ if (!this.botToken) {
33
+ fsm_dynamo_1.DyFM_Log.testInfo('CCAP_DiscordMessaging | No bot token configured'
34
+ + ' (set CCAP_DISCORD_BOT_TOKEN env var)');
35
+ return;
36
+ }
37
+ this.client = new discord_js_1.Client({
38
+ intents: [
39
+ discord_js_1.GatewayIntentBits.Guilds,
40
+ discord_js_1.GatewayIntentBits.GuildMessages,
41
+ discord_js_1.GatewayIntentBits.MessageContent,
42
+ ],
43
+ });
44
+ // Bejövő üzenet listener
45
+ this.client.on('messageCreate', async (message) => {
46
+ // Bot saját üzeneteit ignoráljuk
47
+ if (message.author.bot) {
48
+ return;
49
+ }
50
+ if (this.messageCallback) {
51
+ await this.messageCallback({
52
+ channelId: message.channelId,
53
+ content: message.content,
54
+ rawMessage: message,
55
+ });
56
+ }
57
+ });
58
+ this.client.on('ready', () => {
59
+ fsm_dynamo_1.DyFM_Log.success(`CCAP_DiscordMessaging | Bot connected: ${this.client?.user?.tag}`);
60
+ });
61
+ try {
62
+ await this.client.login(this.botToken);
63
+ }
64
+ catch (error) {
65
+ fsm_dynamo_1.DyFM_Log.error('CCAP_DiscordMessaging | Failed to connect bot', error);
66
+ }
67
+ }
68
+ /**
69
+ * Bejövő üzenet listener regisztráció.
70
+ */
71
+ onMessage(callback) {
72
+ this.messageCallback = callback;
73
+ }
74
+ /**
75
+ * Üzenet küldés egy Discord channel-re.
76
+ */
77
+ async sendMessage(params) {
78
+ if (!this.client) {
79
+ fsm_dynamo_1.DyFM_Log.error('CCAP_DiscordMessaging | Client not initialized');
80
+ return;
81
+ }
82
+ try {
83
+ const channel = this.client.channels.cache.get(params.channelId);
84
+ if (!channel) {
85
+ fsm_dynamo_1.DyFM_Log.error(`CCAP_DiscordMessaging | Channel not found: ${params.channelId}`);
86
+ return;
87
+ }
88
+ // Discord max 2000 karakter; hosszabb üzeneteket darabolunk
89
+ const maxLength = 2000;
90
+ const content = params.content;
91
+ if (content.length <= maxLength) {
92
+ await channel.send(content);
93
+ }
94
+ else {
95
+ // Darabolás soronként, ha lehetséges
96
+ let remaining = content;
97
+ while (remaining.length > 0) {
98
+ const chunk = remaining.substring(0, maxLength);
99
+ remaining = remaining.substring(maxLength);
100
+ await channel.send(chunk);
101
+ }
102
+ }
103
+ }
104
+ catch (error) {
105
+ fsm_dynamo_1.DyFM_Log.error(`CCAP_DiscordMessaging | Failed to send message`
106
+ + ` | channel: ${params.channelId}`, error);
107
+ }
108
+ }
109
+ /**
110
+ * Provider leállítása.
111
+ */
112
+ async shutdown() {
113
+ if (this.client) {
114
+ this.client.destroy();
115
+ this.client = undefined;
116
+ fsm_dynamo_1.DyFM_Log.testInfo('CCAP_DiscordMessaging | Bot disconnected');
117
+ }
118
+ }
119
+ }
120
+ exports.CCAP_DiscordMessaging_ControlService = CCAP_DiscordMessaging_ControlService;
121
+ //# sourceMappingURL=discord-messaging.control-service.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"discord-messaging.control-service.js","sourceRoot":"","sources":["../../../../../src/_modules/messaging/providers/discord-messaging.control-service.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,99 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.CCAP_Monitoring_DataService = void 0;
4
+ const fsm_dynamo_1 = require("@futdevpro/fsm-dynamo");
5
+ const nts_dynamo_1 = require("@futdevpro/nts-dynamo");
6
+ /**
7
+ * Monitoring data-service (singleton).
8
+ * Monitoring event-ek gyűjtése, tárolása és lekérdezése.
9
+ * Egyetlen példány biztosítja, hogy GET /session/:id/events a rögzített eventeket adja (REQ-TECH-004, REQ-SYS-004).
10
+ */
11
+ class CCAP_Monitoring_DataService extends nts_dynamo_1.DyNTS_SingletonService {
12
+ static getInstance() {
13
+ return CCAP_Monitoring_DataService.getSingletonInstance();
14
+ }
15
+ /** In-memory event tár; később DB-be mentés is. */
16
+ events = [];
17
+ /**
18
+ * Opcionális callback: event rögzítése után hívódik (pl. CCAP Client real-time push).
19
+ * Nincs messaging import, hogy ne legyen körfüggőség.
20
+ */
21
+ onEventRecorded;
22
+ /**
23
+ * onEventRecorded callback beállítása (bootstrap hívja, Phase 3.09).
24
+ */
25
+ setOnEventRecorded(callback) {
26
+ this.onEventRecorded = callback;
27
+ }
28
+ /**
29
+ * Monitoring event rögzítése.
30
+ * Minden lépés, kompaktálás, hívás logolásra kerül.
31
+ */
32
+ recordEvent(params) {
33
+ const event = {
34
+ eventType: params.eventType,
35
+ timestamp: new Date(),
36
+ sessionId: params.sessionId,
37
+ runId: params.runId,
38
+ data: params.data,
39
+ durationMs: params.durationMs,
40
+ inputSize: params.inputSize,
41
+ outputSize: params.outputSize,
42
+ status: params.status,
43
+ };
44
+ this.events.push(event);
45
+ if (this.onEventRecorded) {
46
+ const serialized = {
47
+ eventType: event.eventType,
48
+ timestamp: event.timestamp.toISOString(),
49
+ sessionId: event.sessionId,
50
+ runId: event.runId,
51
+ data: event.data,
52
+ durationMs: event.durationMs,
53
+ inputSize: event.inputSize,
54
+ outputSize: event.outputSize,
55
+ status: event.status,
56
+ };
57
+ this.onEventRecorded({
58
+ sessionId: params.sessionId,
59
+ runId: params.runId,
60
+ event: serialized,
61
+ });
62
+ }
63
+ fsm_dynamo_1.DyFM_Log.testInfo(`CCAP_Monitoring | ${params.eventType}`
64
+ + ` | session: ${params.sessionId ?? '-'}`
65
+ + ` | duration: ${params.durationMs ?? '-'}ms`);
66
+ }
67
+ /**
68
+ * Session-hez tartozó event-ek lekérdezése.
69
+ */
70
+ getEventsBySessionId(sessionId) {
71
+ return this.events.filter((event) => event.sessionId === sessionId);
72
+ }
73
+ /**
74
+ * Run-hoz tartozó event-ek lekérdezése.
75
+ */
76
+ getEventsByRunId(runId) {
77
+ return this.events.filter((event) => event.runId === runId);
78
+ }
79
+ /**
80
+ * Event-ek lekérdezése típus szerint.
81
+ */
82
+ getEventsByType(eventType) {
83
+ return this.events.filter((event) => event.eventType === eventType);
84
+ }
85
+ /**
86
+ * Összes event lekérdezése.
87
+ */
88
+ getAllEvents() {
89
+ return [...this.events];
90
+ }
91
+ /**
92
+ * Event-ek törlése (pl. archiválás után).
93
+ */
94
+ clearEvents() {
95
+ this.events = [];
96
+ }
97
+ }
98
+ exports.CCAP_Monitoring_DataService = CCAP_Monitoring_DataService;
99
+ //# sourceMappingURL=monitoring.data-service.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"monitoring.data-service.js","sourceRoot":"","sources":["../../../../src/_modules/monitoring/monitoring.data-service.ts"],"names":[],"mappings":";;;AAAA,sDAAiD;AACjD,sDAA+D;AAK/D;;;;GAIG;AACH,MAAa,2BAA4B,SAAQ,mCAAsB;IAErE,MAAM,CAAC,WAAW;QAChB,OAAO,2BAA2B,CAAC,oBAAoB,EAAE,CAAC;IAC5D,CAAC;IAED,mDAAmD;IAC3C,MAAM,GAAqC,EAAE,CAAC;IAEtD;;;OAGG;IACK,eAAe,CAIZ;IAEX;;OAEG;IACH,kBAAkB,CAAC,QAIT;QACR,IAAI,CAAC,eAAe,GAAG,QAAQ,CAAC;IAClC,CAAC;IAED;;;OAGG;IACH,WAAW,CAAC,MASX;QACC,MAAM,KAAK,GAAmC;YAC5C,SAAS,EAAE,MAAM,CAAC,SAAS;YAC3B,SAAS,EAAE,IAAI,IAAI,EAAE;YACrB,SAAS,EAAE,MAAM,CAAC,SAAS;YAC3B,KAAK,EAAE,MAAM,CAAC,KAAK;YACnB,IAAI,EAAE,MAAM,CAAC,IAAI;YACjB,UAAU,EAAE,MAAM,CAAC,UAAU;YAC7B,SAAS,EAAE,MAAM,CAAC,SAAS;YAC3B,UAAU,EAAE,MAAM,CAAC,UAAU;YAC7B,MAAM,EAAE,MAAM,CAAC,MAAM;SACtB,CAAC;QAEF,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QAExB,IAAI,IAAI,CAAC,eAAe,EAAE,CAAC;YACzB,MAAM,UAAU,GAA4B;gBAC1C,SAAS,EAAE,KAAK,CAAC,SAAS;gBAC1B,SAAS,EAAE,KAAK,CAAC,SAAS,CAAC,WAAW,EAAE;gBACxC,SAAS,EAAE,KAAK,CAAC,SAAS;gBAC1B,KAAK,EAAE,KAAK,CAAC,KAAK;gBAClB,IAAI,EAAE,KAAK,CAAC,IAAI;gBAChB,UAAU,EAAE,KAAK,CAAC,UAAU;gBAC5B,SAAS,EAAE,KAAK,CAAC,SAAS;gBAC1B,UAAU,EAAE,KAAK,CAAC,UAAU;gBAC5B,MAAM,EAAE,KAAK,CAAC,MAAM;aACrB,CAAC;YACF,IAAI,CAAC,eAAe,CAAC;gBACnB,SAAS,EAAE,MAAM,CAAC,SAAS;gBAC3B,KAAK,EAAE,MAAM,CAAC,KAAK;gBACnB,KAAK,EAAE,UAAU;aAClB,CAAC,CAAC;QACL,CAAC;QAED,qBAAQ,CAAC,QAAQ,CACf,qBAAqB,MAAM,CAAC,SAAS,EAAE;cACrC,eAAe,MAAM,CAAC,SAAS,IAAI,GAAG,EAAE;cACxC,gBAAgB,MAAM,CAAC,UAAU,IAAI,GAAG,IAAI,CAC/C,CAAC;IACJ,CAAC;IAED;;OAEG;IACH,oBAAoB,CAClB,SAAiB;QAEjB,OAAO,IAAI,CAAC,MAAM,CAAC,MAAM,CACvB,CAAC,KAAqC,EAAW,EAAE,CACjD,KAAK,CAAC,SAAS,KAAK,SAAS,CAChC,CAAC;IACJ,CAAC;IAED;;OAEG;IACH,gBAAgB,CACd,KAAa;QAEb,OAAO,IAAI,CAAC,MAAM,CAAC,MAAM,CACvB,CAAC,KAAqC,EAAW,EAAE,CACjD,KAAK,CAAC,KAAK,KAAK,KAAK,CACxB,CAAC;IACJ,CAAC;IAED;;OAEG;IACH,eAAe,CACb,SAAoC;QAEpC,OAAO,IAAI,CAAC,MAAM,CAAC,MAAM,CACvB,CAAC,KAAqC,EAAW,EAAE,CACjD,KAAK,CAAC,SAAS,KAAK,SAAS,CAChC,CAAC;IACJ,CAAC;IAED;;OAEG;IACH,YAAY;QACV,OAAO,CAAC,GAAG,IAAI,CAAC,MAAM,CAAC,CAAC;IAC1B,CAAC;IAED;;OAEG;IACH,WAAW;QACT,IAAI,CAAC,MAAM,GAAG,EAAE,CAAC;IACnB,CAAC;CACF;AArID,kEAqIC"}
@@ -0,0 +1,50 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ const ccap_monitoring_event_type_enum_1 = require("../../_enums/ccap-monitoring-event.type-enum");
4
+ const monitoring_data_service_1 = require("./monitoring.data-service");
5
+ describe('CCAP_Monitoring_DataService', () => {
6
+ let service;
7
+ const sessionId = 'test-session-monitoring';
8
+ const runId = 'test-run-001';
9
+ beforeEach(() => {
10
+ service = monitoring_data_service_1.CCAP_Monitoring_DataService.getInstance();
11
+ });
12
+ describe('recordEvent with onEventRecorded (Phase 3.09)', () => {
13
+ it('invokes onEventRecorded callback with sessionId, runId and serialized event', () => {
14
+ const onEventRecorded = jasmine.createSpy('onEventRecorded');
15
+ service.setOnEventRecorded(onEventRecorded);
16
+ service.recordEvent({
17
+ eventType: ccap_monitoring_event_type_enum_1.CCAP_MonitoringEvent_Type.step,
18
+ sessionId: sessionId,
19
+ runId: runId,
20
+ data: { step: 'test-step' },
21
+ status: 'completed',
22
+ });
23
+ expect(onEventRecorded).toHaveBeenCalledTimes(1);
24
+ expect(onEventRecorded).toHaveBeenCalledWith({
25
+ sessionId: sessionId,
26
+ runId: runId,
27
+ event: jasmine.objectContaining({
28
+ eventType: ccap_monitoring_event_type_enum_1.CCAP_MonitoringEvent_Type.step,
29
+ sessionId: sessionId,
30
+ runId: runId,
31
+ data: { step: 'test-step' },
32
+ status: 'completed',
33
+ timestamp: jasmine.any(String),
34
+ }),
35
+ });
36
+ const eventArg = onEventRecorded.calls.mostRecent().args[0].event;
37
+ expect(typeof eventArg.timestamp).toBe('string');
38
+ });
39
+ it('does not throw when onEventRecorded is not set', () => {
40
+ service.recordEvent({
41
+ eventType: ccap_monitoring_event_type_enum_1.CCAP_MonitoringEvent_Type.step,
42
+ sessionId: sessionId,
43
+ runId: runId,
44
+ data: {},
45
+ });
46
+ expect(service.getEventsBySessionId(sessionId).length).toBeGreaterThan(0);
47
+ });
48
+ });
49
+ });
50
+ //# sourceMappingURL=monitoring.data-service.spec.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"monitoring.data-service.spec.js","sourceRoot":"","sources":["../../../../src/_modules/monitoring/monitoring.data-service.spec.ts"],"names":[],"mappings":";;AAAA,kGAAyF;AACzF,uEAAwE;AAExE,QAAQ,CAAC,6BAA6B,EAAE,GAAG,EAAE;IAC3C,IAAI,OAAoC,CAAC;IACzC,MAAM,SAAS,GAAW,yBAAyB,CAAC;IACpD,MAAM,KAAK,GAAW,cAAc,CAAC;IAErC,UAAU,CAAC,GAAG,EAAE;QACd,OAAO,GAAG,qDAA2B,CAAC,WAAW,EAAE,CAAC;IACtD,CAAC,CAAC,CAAC;IAEH,QAAQ,CAAC,+CAA+C,EAAE,GAAG,EAAE;QAC7D,EAAE,CAAC,6EAA6E,EAAE,GAAG,EAAE;YACrF,MAAM,eAAe,GAAG,OAAO,CAAC,SAAS,CAAC,iBAAiB,CAAC,CAAC;YAE7D,OAAO,CAAC,kBAAkB,CAAC,eAAe,CAAC,CAAC;YAC5C,OAAO,CAAC,WAAW,CAAC;gBAClB,SAAS,EAAE,2DAAyB,CAAC,IAAI;gBACzC,SAAS,EAAE,SAAS;gBACpB,KAAK,EAAE,KAAK;gBACZ,IAAI,EAAE,EAAE,IAAI,EAAE,WAAW,EAAE;gBAC3B,MAAM,EAAE,WAAW;aACpB,CAAC,CAAC;YAEH,MAAM,CAAC,eAAe,CAAC,CAAC,qBAAqB,CAAC,CAAC,CAAC,CAAC;YACjD,MAAM,CAAC,eAAe,CAAC,CAAC,oBAAoB,CAAC;gBAC3C,SAAS,EAAE,SAAS;gBACpB,KAAK,EAAE,KAAK;gBACZ,KAAK,EAAE,OAAO,CAAC,gBAAgB,CAAC;oBAC9B,SAAS,EAAE,2DAAyB,CAAC,IAAI;oBACzC,SAAS,EAAE,SAAS;oBACpB,KAAK,EAAE,KAAK;oBACZ,IAAI,EAAE,EAAE,IAAI,EAAE,WAAW,EAAE;oBAC3B,MAAM,EAAE,WAAW;oBACnB,SAAS,EAAE,OAAO,CAAC,GAAG,CAAC,MAAM,CAAC;iBAC/B,CAAC;aACH,CAAC,CAAC;YACH,MAAM,QAAQ,GAA4B,eAAe,CAAC,KAAK,CAAC,UAAU,EAAE,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC;YAC3F,MAAM,CAAC,OAAO,QAAQ,CAAC,SAAS,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;QACnD,CAAC,CAAC,CAAC;QAEH,EAAE,CAAC,gDAAgD,EAAE,GAAG,EAAE;YACxD,OAAO,CAAC,WAAW,CAAC;gBAClB,SAAS,EAAE,2DAAyB,CAAC,IAAI;gBACzC,SAAS,EAAE,SAAS;gBACpB,KAAK,EAAE,KAAK;gBACZ,IAAI,EAAE,EAAE;aACT,CAAC,CAAC;YAEH,MAAM,CAAC,OAAO,CAAC,oBAAoB,CAAC,SAAS,CAAC,CAAC,MAAM,CAAC,CAAC,eAAe,CAAC,CAAC,CAAC,CAAC;QAC5E,CAAC,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC"}
@@ -0,0 +1,84 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.CCAP_PathProtection_UtilService = void 0;
4
+ const tslib_1 = require("tslib");
5
+ const fs = tslib_1.__importStar(require("fs"));
6
+ const path = tslib_1.__importStar(require("path"));
7
+ const default_path_util_service_1 = require("../default-path/default-path.util-service");
8
+ /**
9
+ * Path protection util-service.
10
+ * Whitelist: path csak az engedélyezett gyökerek alatt lehet.
11
+ * Default whitelist = default path (Phase 3.13).
12
+ */
13
+ class CCAP_PathProtection_UtilService {
14
+ /**
15
+ * Alapértelmezett engedélyezett gyökér lista (default path).
16
+ */
17
+ static getDefaultAllowedRoots() {
18
+ const root = path.normalize(path.resolve(default_path_util_service_1.CCAP_DefaultPath_UtilService.getDefaultPath()));
19
+ return [root];
20
+ }
21
+ /**
22
+ * Path feloldása és ellenőrzése: a path az egyik allowed root alatt van-e.
23
+ * Ha allowedRoots nincs megadva, default path-ot használ.
24
+ */
25
+ static resolveAndCheck(params) {
26
+ const roots = params.allowedRoots?.length
27
+ ? params.allowedRoots.map((r) => path.normalize(path.resolve(r)))
28
+ : CCAP_PathProtection_UtilService.getDefaultAllowedRoots();
29
+ let resolvedPath;
30
+ try {
31
+ resolvedPath = path.normalize(path.resolve(params.baseCwd ?? process.cwd(), params.rawPath));
32
+ }
33
+ catch {
34
+ return {
35
+ allowed: false,
36
+ error: 'Invalid path',
37
+ };
38
+ }
39
+ for (const root of roots) {
40
+ const rootNorm = path.normalize(root);
41
+ const allowed = resolvedPath === rootNorm
42
+ || resolvedPath.startsWith(rootNorm + path.sep);
43
+ if (allowed) {
44
+ return {
45
+ allowed: true,
46
+ resolvedPath: resolvedPath,
47
+ };
48
+ }
49
+ }
50
+ return {
51
+ allowed: false,
52
+ resolvedPath: resolvedPath,
53
+ error: 'Path is outside allowed roots',
54
+ };
55
+ }
56
+ /**
57
+ * Gyors ellenőrzés: path engedélyezett-e (resolveAndCheck wrapper).
58
+ */
59
+ static isPathAllowed(params) {
60
+ const result = CCAP_PathProtection_UtilService.resolveAndCheck(params);
61
+ return result.allowed;
62
+ }
63
+ /**
64
+ * Fájl olvasás előtti check: path engedélyezett, majd readFileSync.
65
+ * Ha nem engedélyezett, null; egyébként a tartalom.
66
+ */
67
+ static readFileIfAllowed(params) {
68
+ const result = CCAP_PathProtection_UtilService.resolveAndCheck(params);
69
+ if (!result.allowed || !result.resolvedPath) {
70
+ return null;
71
+ }
72
+ try {
73
+ if (fs.existsSync(result.resolvedPath) && fs.statSync(result.resolvedPath).isFile()) {
74
+ return fs.readFileSync(result.resolvedPath, 'utf-8');
75
+ }
76
+ }
77
+ catch {
78
+ // ignore
79
+ }
80
+ return null;
81
+ }
82
+ }
83
+ exports.CCAP_PathProtection_UtilService = CCAP_PathProtection_UtilService;
84
+ //# sourceMappingURL=path-protection.util-service.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"path-protection.util-service.js","sourceRoot":"","sources":["../../../../src/_modules/path-protection/path-protection.util-service.ts"],"names":[],"mappings":";;;;AAAA,+CAAyB;AACzB,mDAA6B;AAE7B,yFAAyF;AAWzF;;;;GAIG;AACH,MAAa,+BAA+B;IAE1C;;OAEG;IACH,MAAM,CAAC,sBAAsB;QAC3B,MAAM,IAAI,GACR,IAAI,CAAC,SAAS,CACZ,IAAI,CAAC,OAAO,CAAC,wDAA4B,CAAC,cAAc,EAAE,CAAC,CAC5D,CAAC;QAEJ,OAAO,CAAC,IAAI,CAAC,CAAC;IAChB,CAAC;IAED;;;OAGG;IACH,MAAM,CAAC,eAAe,CAAC,MAItB;QACC,MAAM,KAAK,GACT,MAAM,CAAC,YAAY,EAAE,MAAM;YACzB,CAAC,CAAC,MAAM,CAAC,YAAY,CAAC,GAAG,CAAC,CAAC,CAAS,EAAU,EAAE,CAC9C,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAChC;YACD,CAAC,CAAC,+BAA+B,CAAC,sBAAsB,EAAE,CAAC;QAE/D,IAAI,YAAoB,CAAC;QAEzB,IAAI,CAAC;YACH,YAAY,GAAG,IAAI,CAAC,SAAS,CAC3B,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,OAAO,IAAI,OAAO,CAAC,GAAG,EAAE,EAAE,MAAM,CAAC,OAAO,CAAC,CAC9D,CAAC;QACJ,CAAC;QAAC,MAAM,CAAC;YACP,OAAO;gBACL,OAAO,EAAE,KAAK;gBACd,KAAK,EAAE,cAAc;aACtB,CAAC;QACJ,CAAC;QAED,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE,CAAC;YACzB,MAAM,QAAQ,GAAW,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC;YAC9C,MAAM,OAAO,GACX,YAAY,KAAK,QAAQ;mBACtB,YAAY,CAAC,UAAU,CAAC,QAAQ,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC;YAElD,IAAI,OAAO,EAAE,CAAC;gBACZ,OAAO;oBACL,OAAO,EAAE,IAAI;oBACb,YAAY,EAAE,YAAY;iBAC3B,CAAC;YACJ,CAAC;QACH,CAAC;QAED,OAAO;YACL,OAAO,EAAE,KAAK;YACd,YAAY,EAAE,YAAY;YAC1B,KAAK,EAAE,+BAA+B;SACvC,CAAC;IACJ,CAAC;IAED;;OAEG;IACH,MAAM,CAAC,aAAa,CAAC,MAIpB;QACC,MAAM,MAAM,GACV,+BAA+B,CAAC,eAAe,CAAC,MAAM,CAAC,CAAC;QAE1D,OAAO,MAAM,CAAC,OAAO,CAAC;IACxB,CAAC;IAED;;;OAGG;IACH,MAAM,CAAC,iBAAiB,CAAC,MAIxB;QACC,MAAM,MAAM,GACV,+BAA+B,CAAC,eAAe,CAAC,MAAM,CAAC,CAAC;QAE1D,IAAI,CAAC,MAAM,CAAC,OAAO,IAAI,CAAC,MAAM,CAAC,YAAY,EAAE,CAAC;YAC5C,OAAO,IAAI,CAAC;QACd,CAAC;QAED,IAAI,CAAC;YACH,IAAI,EAAE,CAAC,UAAU,CAAC,MAAM,CAAC,YAAY,CAAC,IAAI,EAAE,CAAC,QAAQ,CAAC,MAAM,CAAC,YAAY,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC;gBACpF,OAAO,EAAE,CAAC,YAAY,CAAC,MAAM,CAAC,YAAY,EAAE,OAAO,CAAC,CAAC;YACvD,CAAC;QACH,CAAC;QAAC,MAAM,CAAC;YACP,SAAS;QACX,CAAC;QAED,OAAO,IAAI,CAAC;IACd,CAAC;CACF;AAxGD,0EAwGC"}
@@ -0,0 +1,55 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ const tslib_1 = require("tslib");
4
+ const path = tslib_1.__importStar(require("path"));
5
+ const path_protection_util_service_1 = require("./path-protection.util-service");
6
+ describe('CCAP_PathProtection_UtilService', () => {
7
+ const allowedRoot = path.resolve(path.sep, 'allowed', 'root');
8
+ describe('resolveAndCheck', () => {
9
+ it('returns allowed when resolved path is under allowed root', () => {
10
+ const result = path_protection_util_service_1.CCAP_PathProtection_UtilService.resolveAndCheck({
11
+ rawPath: path.join('sub', 'file.txt'),
12
+ allowedRoots: [allowedRoot],
13
+ baseCwd: allowedRoot,
14
+ });
15
+ expect(result.allowed).toBe(true);
16
+ expect(result.resolvedPath).toBeDefined();
17
+ expect(result.resolvedPath).toContain('allowed');
18
+ expect(result.error).toBeUndefined();
19
+ });
20
+ it('returns allowed when resolved path equals root', () => {
21
+ const result = path_protection_util_service_1.CCAP_PathProtection_UtilService.resolveAndCheck({
22
+ rawPath: allowedRoot,
23
+ allowedRoots: [allowedRoot],
24
+ });
25
+ expect(result.allowed).toBe(true);
26
+ expect(result.resolvedPath).toBeDefined();
27
+ });
28
+ it('returns not allowed when path is outside allowed roots', () => {
29
+ const result = path_protection_util_service_1.CCAP_PathProtection_UtilService.resolveAndCheck({
30
+ rawPath: path.resolve(path.sep, 'other', 'file.txt'),
31
+ allowedRoots: [allowedRoot],
32
+ });
33
+ expect(result.allowed).toBe(false);
34
+ expect(result.error).toBe('Path is outside allowed roots');
35
+ });
36
+ });
37
+ describe('isPathAllowed', () => {
38
+ it('returns true when resolveAndCheck allows', () => {
39
+ const allowed = path_protection_util_service_1.CCAP_PathProtection_UtilService.isPathAllowed({
40
+ rawPath: 'file.txt',
41
+ allowedRoots: [allowedRoot],
42
+ baseCwd: allowedRoot,
43
+ });
44
+ expect(allowed).toBe(true);
45
+ });
46
+ it('returns false when path is outside roots', () => {
47
+ const allowed = path_protection_util_service_1.CCAP_PathProtection_UtilService.isPathAllowed({
48
+ rawPath: path.resolve(path.sep, 'outside'),
49
+ allowedRoots: [allowedRoot],
50
+ });
51
+ expect(allowed).toBe(false);
52
+ });
53
+ });
54
+ });
55
+ //# sourceMappingURL=path-protection.util-service.spec.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"path-protection.util-service.spec.js","sourceRoot":"","sources":["../../../../src/_modules/path-protection/path-protection.util-service.spec.ts"],"names":[],"mappings":";;;AAAA,mDAA6B;AAE7B,iFAAiF;AAEjF,QAAQ,CAAC,iCAAiC,EAAE,GAAG,EAAE;IAC/C,MAAM,WAAW,GAAW,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,GAAG,EAAE,SAAS,EAAE,MAAM,CAAC,CAAC;IAEtE,QAAQ,CAAC,iBAAiB,EAAE,GAAG,EAAE;QAC/B,EAAE,CAAC,0DAA0D,EAAE,GAAG,EAAE;YAClE,MAAM,MAAM,GAAG,8DAA+B,CAAC,eAAe,CAAC;gBAC7D,OAAO,EAAE,IAAI,CAAC,IAAI,CAAC,KAAK,EAAE,UAAU,CAAC;gBACrC,YAAY,EAAE,CAAC,WAAW,CAAC;gBAC3B,OAAO,EAAE,WAAW;aACrB,CAAC,CAAC;YAEH,MAAM,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;YAClC,MAAM,CAAC,MAAM,CAAC,YAAY,CAAC,CAAC,WAAW,EAAE,CAAC;YAC1C,MAAM,CAAC,MAAM,CAAC,YAAY,CAAC,CAAC,SAAS,CAAC,SAAS,CAAC,CAAC;YACjD,MAAM,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,aAAa,EAAE,CAAC;QACvC,CAAC,CAAC,CAAC;QAEH,EAAE,CAAC,gDAAgD,EAAE,GAAG,EAAE;YACxD,MAAM,MAAM,GAAG,8DAA+B,CAAC,eAAe,CAAC;gBAC7D,OAAO,EAAE,WAAW;gBACpB,YAAY,EAAE,CAAC,WAAW,CAAC;aAC5B,CAAC,CAAC;YAEH,MAAM,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;YAClC,MAAM,CAAC,MAAM,CAAC,YAAY,CAAC,CAAC,WAAW,EAAE,CAAC;QAC5C,CAAC,CAAC,CAAC;QAEH,EAAE,CAAC,wDAAwD,EAAE,GAAG,EAAE;YAChE,MAAM,MAAM,GAAG,8DAA+B,CAAC,eAAe,CAAC;gBAC7D,OAAO,EAAE,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,GAAG,EAAE,OAAO,EAAE,UAAU,CAAC;gBACpD,YAAY,EAAE,CAAC,WAAW,CAAC;aAC5B,CAAC,CAAC;YAEH,MAAM,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;YACnC,MAAM,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC,+BAA+B,CAAC,CAAC;QAC7D,CAAC,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;IAEH,QAAQ,CAAC,eAAe,EAAE,GAAG,EAAE;QAC7B,EAAE,CAAC,0CAA0C,EAAE,GAAG,EAAE;YAClD,MAAM,OAAO,GAAY,8DAA+B,CAAC,aAAa,CAAC;gBACrE,OAAO,EAAE,UAAU;gBACnB,YAAY,EAAE,CAAC,WAAW,CAAC;gBAC3B,OAAO,EAAE,WAAW;aACrB,CAAC,CAAC;YAEH,MAAM,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QAC7B,CAAC,CAAC,CAAC;QAEH,EAAE,CAAC,0CAA0C,EAAE,GAAG,EAAE;YAClD,MAAM,OAAO,GAAY,8DAA+B,CAAC,aAAa,CAAC;gBACrE,OAAO,EAAE,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,GAAG,EAAE,SAAS,CAAC;gBAC1C,YAAY,EAAE,CAAC,WAAW,CAAC;aAC5B,CAAC,CAAC;YAEH,MAAM,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QAC9B,CAAC,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC"}
@@ -0,0 +1,186 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.CCAP_SecretsVault_DataService = void 0;
4
+ const crypto_1 = require("crypto");
5
+ const fsm_dynamo_1 = require("@futdevpro/fsm-dynamo");
6
+ const nts_dynamo_1 = require("@futdevpro/nts-dynamo");
7
+ const ccap_secret_data_model_1 = require("../../_models/data-models/ccap-secret.data-model");
8
+ /** AES-256-GCM IV hossz (byte). */
9
+ const IV_LENGTH = 12;
10
+ /** GCM auth tag hossz (byte). */
11
+ const AUTH_TAG_LENGTH = 16;
12
+ /** Master key byte hossz. */
13
+ const KEY_LENGTH = 32;
14
+ /** Env var a vault master kulcshoz (32 byte hex vagy plain; hash-elve használjuk). */
15
+ const VAULT_MASTER_KEY_ENV = 'CCAP_VAULT_MASTER_KEY';
16
+ /**
17
+ * Secrets vault data-service.
18
+ * Titkok tárolása titkosítva (at rest); get/set/delete kulcs alapján.
19
+ * Egyetlen forrás az API kulcsoknak, Discord tokennek stb.
20
+ */
21
+ class CCAP_SecretsVault_DataService extends nts_dynamo_1.DyNTS_DataService {
22
+ /** Cache-elt master key buffer (null ha nincs env). */
23
+ masterKeyBuffer = null;
24
+ constructor(set) {
25
+ super(new ccap_secret_data_model_1.CCAP_Secret(set?.data), ccap_secret_data_model_1.ccapSecret_dataParams, set.issuer);
26
+ this.ensureMasterKey();
27
+ }
28
+ /**
29
+ * Master key kiolvasása env-ből és cache-elése.
30
+ * CCAP_VAULT_MASTER_KEY: 64 hex karakter = 32 byte, vagy tetszőleges string (scrypt-tal hash-elve).
31
+ */
32
+ ensureMasterKey() {
33
+ if (this.masterKeyBuffer !== null) {
34
+ return;
35
+ }
36
+ const raw = process.env[VAULT_MASTER_KEY_ENV];
37
+ if (!raw || raw.length === 0) {
38
+ this.masterKeyBuffer = null;
39
+ return;
40
+ }
41
+ // 64 hex karakter → 32 byte közvetlenül
42
+ if (/^[0-9a-fA-F]{64}$/.test(raw)) {
43
+ this.masterKeyBuffer = Buffer.from(raw, 'hex');
44
+ return;
45
+ }
46
+ // Egyéb esetben salt nélküli scrypt (determinisztikus) 32 byte
47
+ this.masterKeyBuffer = (0, crypto_1.scryptSync)(raw, 'ccap-vault-salt', KEY_LENGTH);
48
+ }
49
+ /**
50
+ * Vault használható-e (master key beállítva).
51
+ */
52
+ isVaultAvailable() {
53
+ return this.masterKeyBuffer !== null;
54
+ }
55
+ /**
56
+ * Plaintext titkosítása AES-256-GCM-mel.
57
+ * Kimenet: base64(iv + authTag + ciphertext).
58
+ */
59
+ encrypt(plaintext) {
60
+ const key = this.masterKeyBuffer;
61
+ if (!key || key.length !== KEY_LENGTH) {
62
+ throw new fsm_dynamo_1.DyFM_Error({
63
+ message: 'Vault master key not set (CCAP_VAULT_MASTER_KEY)',
64
+ errorCode: 'CCAP-VDS-ENC0',
65
+ });
66
+ }
67
+ const iv = (0, crypto_1.randomBytes)(IV_LENGTH);
68
+ const cipher = (0, crypto_1.createCipheriv)('aes-256-gcm', key, iv);
69
+ const enc = Buffer.concat([
70
+ cipher.update(plaintext, 'utf8'),
71
+ cipher.final(),
72
+ ]);
73
+ const authTag = cipher.getAuthTag();
74
+ return Buffer.concat([iv, authTag, enc]).toString('base64');
75
+ }
76
+ /**
77
+ * Titkosított érték dekódolása.
78
+ * Bemenet: base64(iv + authTag + ciphertext).
79
+ */
80
+ decrypt(encoded) {
81
+ const key = this.masterKeyBuffer;
82
+ if (!key || key.length !== KEY_LENGTH) {
83
+ throw new fsm_dynamo_1.DyFM_Error({
84
+ message: 'Vault master key not set (CCAP_VAULT_MASTER_KEY)',
85
+ errorCode: 'CCAP-VDS-DEC0',
86
+ });
87
+ }
88
+ const buf = Buffer.from(encoded, 'base64');
89
+ if (buf.length < IV_LENGTH + AUTH_TAG_LENGTH) {
90
+ throw new fsm_dynamo_1.DyFM_Error({
91
+ message: 'Invalid encrypted payload',
92
+ errorCode: 'CCAP-VDS-DEC1',
93
+ });
94
+ }
95
+ const iv = buf.subarray(0, IV_LENGTH);
96
+ const authTag = buf.subarray(IV_LENGTH, IV_LENGTH + AUTH_TAG_LENGTH);
97
+ const ciphertext = buf.subarray(IV_LENGTH + AUTH_TAG_LENGTH);
98
+ const decipher = (0, crypto_1.createDecipheriv)('aes-256-gcm', key, iv);
99
+ decipher.setAuthTag(authTag);
100
+ return decipher.update(ciphertext).toString('utf8') + decipher.final('utf8');
101
+ }
102
+ /**
103
+ * Titok lekérése kulcs alapján; dekódolt érték vagy null ha nincs / vault nincs feloldva.
104
+ */
105
+ async getSecret(key) {
106
+ try {
107
+ if (!this.isVaultAvailable()) {
108
+ return null;
109
+ }
110
+ const list = await this.findDataList({ key: key });
111
+ const doc = list[0];
112
+ if (!doc || !doc.encryptedValue) {
113
+ return null;
114
+ }
115
+ return this.decrypt(doc.encryptedValue);
116
+ }
117
+ catch (error) {
118
+ fsm_dynamo_1.DyFM_Log.error(`CCAP_SecretsVault | getSecret failed: ${key}`, error);
119
+ return null;
120
+ }
121
+ }
122
+ /**
123
+ * Titok mentése (felülírja ha létezik).
124
+ */
125
+ async setSecret(params) {
126
+ try {
127
+ if (!this.isVaultAvailable()) {
128
+ throw new fsm_dynamo_1.DyFM_Error({
129
+ message: 'Vault master key not set; cannot store secret',
130
+ errorCode: 'CCAP-VDS-SET0',
131
+ });
132
+ }
133
+ const list = await this.findDataList({ key: params.key });
134
+ const existing = list[0];
135
+ const encrypted = this.encrypt(params.value);
136
+ const now = new Date();
137
+ if (existing && existing._id) {
138
+ this.data = new ccap_secret_data_model_1.CCAP_Secret({
139
+ _id: existing._id,
140
+ key: params.key,
141
+ encryptedValue: encrypted,
142
+ metadata: params.metadata ?? existing.metadata,
143
+ updatedAt: now,
144
+ });
145
+ }
146
+ else {
147
+ this.data = new ccap_secret_data_model_1.CCAP_Secret({
148
+ key: params.key,
149
+ encryptedValue: encrypted,
150
+ metadata: params.metadata,
151
+ updatedAt: now,
152
+ });
153
+ }
154
+ await this.saveData();
155
+ fsm_dynamo_1.DyFM_Log.testInfo(`CCAP_SecretsVault | Secret set: ${params.key}`);
156
+ }
157
+ catch (error) {
158
+ throw new fsm_dynamo_1.DyFM_Error({
159
+ ...this.getDefaultErrorSettings('setSecret', error),
160
+ errorCode: 'CCAP-VDS-SET1',
161
+ message: 'Failed to set secret',
162
+ });
163
+ }
164
+ }
165
+ /**
166
+ * Titok törlése kulcs alapján.
167
+ */
168
+ async deleteSecret(key) {
169
+ try {
170
+ const list = await this.findDataList({ key: key });
171
+ const doc = list[0];
172
+ if (!doc || !doc._id) {
173
+ return false;
174
+ }
175
+ await this.deleteData(doc._id);
176
+ fsm_dynamo_1.DyFM_Log.testInfo(`CCAP_SecretsVault | Secret deleted: ${key}`);
177
+ return true;
178
+ }
179
+ catch (error) {
180
+ fsm_dynamo_1.DyFM_Log.error(`CCAP_SecretsVault | deleteSecret failed: ${key}`, error);
181
+ return false;
182
+ }
183
+ }
184
+ }
185
+ exports.CCAP_SecretsVault_DataService = CCAP_SecretsVault_DataService;
186
+ //# sourceMappingURL=secrets-vault.data-service.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"secrets-vault.data-service.js","sourceRoot":"","sources":["../../../../src/_modules/secrets-vault/secrets-vault.data-service.ts"],"names":[],"mappings":"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"}