openloops 0.1.8 → 0.1.10
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.
- package/dist/chunk-XRJFNASX.mjs +14 -0
- package/dist/common/clients/index.js +26 -0
- package/dist/common/clients/index.mjs +3 -0
- package/dist/common/clients/llm-client.js +159 -0
- package/dist/common/clients/llm-client.mjs +126 -0
- package/dist/common/clients/sentry-client.js +87 -0
- package/dist/common/clients/sentry-client.mjs +53 -0
- package/dist/common/clients/serper-client.js +74 -0
- package/dist/common/clients/serper-client.mjs +41 -0
- package/dist/common/core/base.app.js +57 -0
- package/dist/common/core/base.app.mjs +34 -0
- package/dist/common/core/base.entity.js +208 -0
- package/dist/common/core/base.entity.mjs +179 -0
- package/dist/common/core/base.use-case.js +30 -0
- package/dist/common/core/base.use-case.mjs +7 -0
- package/dist/common/core/index.js +1 -0
- package/dist/common/core/index.mjs +0 -0
- package/dist/common/core/utils/delete-empty-fields.js +66 -0
- package/dist/common/core/utils/delete-empty-fields.mjs +43 -0
- package/dist/common/core/utils/flatten-object.js +45 -0
- package/dist/common/core/utils/flatten-object.mjs +22 -0
- package/dist/common/core/utils/index.js +26 -0
- package/dist/common/core/utils/index.mjs +3 -0
- package/dist/common/core/utils/is-plain-object.js +32 -0
- package/dist/common/core/utils/is-plain-object.mjs +9 -0
- package/dist/common/decorators/admin-only/admin-only.js +52 -0
- package/dist/common/decorators/admin-only/admin-only.mjs +28 -0
- package/dist/common/decorators/admin-only/index.js +22 -0
- package/dist/common/decorators/admin-only/index.mjs +1 -0
- package/dist/common/decorators/index.js +26 -0
- package/dist/common/decorators/index.mjs +3 -0
- package/dist/common/decorators/mask-in-logs/index.js +22 -0
- package/dist/common/decorators/mask-in-logs/index.mjs +1 -0
- package/dist/common/decorators/mask-in-logs/mask-in-logs.js +53 -0
- package/dist/common/decorators/mask-in-logs/mask-in-logs.mjs +29 -0
- package/dist/common/decorators/owner-only/index.js +22 -0
- package/dist/common/decorators/owner-only/index.mjs +1 -0
- package/dist/common/decorators/owner-only/owner-only.js +52 -0
- package/dist/common/decorators/owner-only/owner-only.mjs +28 -0
- package/dist/common/error/http-error.js +37 -0
- package/dist/common/error/http-error.mjs +14 -0
- package/dist/common/error/index.js +24 -0
- package/dist/common/error/index.mjs +2 -0
- package/dist/common/error/reportError.js +51 -0
- package/dist/common/error/reportError.mjs +28 -0
- package/dist/common/helpers/extract-json-from-text.js +63 -0
- package/dist/common/helpers/extract-json-from-text.mjs +40 -0
- package/dist/common/helpers/index.js +24 -0
- package/dist/common/helpers/index.mjs +2 -0
- package/dist/common/helpers/sanitize-string.js +45 -0
- package/dist/common/helpers/sanitize-string.mjs +12 -0
- package/dist/common/logger/index.js +22 -0
- package/dist/common/logger/index.mjs +1 -0
- package/dist/common/logger/pino.js +70 -0
- package/dist/common/logger/pino.mjs +36 -0
- package/dist/common/repositories/index.js +24 -0
- package/dist/common/repositories/index.mjs +2 -0
- package/dist/common/repositories/mongo-db.client.js +79 -0
- package/dist/common/repositories/mongo-db.client.mjs +57 -0
- package/dist/common/repositories/mongo-db.repository.js +219 -0
- package/dist/common/repositories/mongo-db.repository.mjs +196 -0
- package/dist/common/utils/secret-manager.js +105 -0
- package/dist/common/utils/secret-manager.mjs +71 -0
- package/dist/index.js +22 -7
- package/dist/index.mjs +1 -7
- package/dist/services/agent/core/agent-loop.js +29 -0
- package/dist/services/agent/core/agent-loop.mjs +6 -0
- package/dist/services/agent/core/agent-state.js +102 -0
- package/dist/services/agent/core/agent-state.mjs +78 -0
- package/dist/services/agent/core/agent.js +351 -0
- package/dist/services/agent/core/agent.mjs +327 -0
- package/dist/services/agent/core/index.js +26 -0
- package/dist/services/agent/core/index.mjs +3 -0
- package/dist/services/agent/loops/index.js +24 -0
- package/dist/services/agent/loops/index.mjs +2 -0
- package/dist/services/agent/loops/plan-execute/index.js +22 -0
- package/dist/services/agent/loops/plan-execute/index.mjs +1 -0
- package/dist/services/agent/loops/plan-execute/plan-execute-loop.js +242 -0
- package/dist/services/agent/loops/plan-execute/plan-execute-loop.mjs +226 -0
- package/dist/services/agent/loops/shared/index.js +22 -0
- package/dist/services/agent/loops/shared/index.mjs +1 -0
- package/dist/services/agent/loops/shared/skills/action-planner.js +68 -0
- package/dist/services/agent/loops/shared/skills/action-planner.mjs +45 -0
- package/dist/services/agent/loops/shared/skills/confirmation-gate.js +53 -0
- package/dist/services/agent/loops/shared/skills/confirmation-gate.mjs +30 -0
- package/dist/services/agent/loops/shared/skills/fast-responder.js +70 -0
- package/dist/services/agent/loops/shared/skills/fast-responder.mjs +47 -0
- package/dist/services/agent/loops/shared/skills/final-responder.js +57 -0
- package/dist/services/agent/loops/shared/skills/final-responder.mjs +34 -0
- package/dist/services/agent/loops/shared/skills/index.js +32 -0
- package/dist/services/agent/loops/shared/skills/index.mjs +6 -0
- package/dist/services/agent/loops/shared/skills/state-observer.js +57 -0
- package/dist/services/agent/loops/shared/skills/state-observer.mjs +34 -0
- package/dist/services/agent/loops/shared/skills/strategy-engine.js +60 -0
- package/dist/services/agent/loops/shared/skills/strategy-engine.mjs +37 -0
- package/dist/services/agent/modules/chats/entities/agent-action.entity.js +151 -0
- package/dist/services/agent/modules/chats/entities/agent-action.entity.mjs +128 -0
- package/dist/services/agent/modules/chats/entities/agent-task.entity.js +231 -0
- package/dist/services/agent/modules/chats/entities/agent-task.entity.mjs +207 -0
- package/dist/services/agent/modules/chats/entities/chat-context.entity.js +70 -0
- package/dist/services/agent/modules/chats/entities/chat-context.entity.mjs +47 -0
- package/dist/services/agent/modules/chats/entities/chat-message.entity.js +58 -0
- package/dist/services/agent/modules/chats/entities/chat-message.entity.mjs +35 -0
- package/dist/services/agent/modules/chats/entities/chat-settings.entity.js +63 -0
- package/dist/services/agent/modules/chats/entities/chat-settings.entity.mjs +40 -0
- package/dist/services/agent/modules/chats/entities/chat.entity.js +163 -0
- package/dist/services/agent/modules/chats/entities/chat.entity.mjs +140 -0
- package/dist/services/agent/modules/chats/entities/index.js +22 -0
- package/dist/services/agent/modules/chats/entities/index.mjs +1 -0
- package/dist/services/agent/modules/chats/lambdas/create-chat/create-chat.use-case.js +56 -0
- package/dist/services/agent/modules/chats/lambdas/create-chat/create-chat.use-case.mjs +27 -0
- package/dist/services/agent/modules/chats/lambdas/create-chat/index.js +22 -0
- package/dist/services/agent/modules/chats/lambdas/create-chat/index.mjs +1 -0
- package/dist/services/agent/modules/chats/lambdas/delete-chat/delete-chat.use-case.js +61 -0
- package/dist/services/agent/modules/chats/lambdas/delete-chat/delete-chat.use-case.mjs +32 -0
- package/dist/services/agent/modules/chats/lambdas/delete-chat/index.js +22 -0
- package/dist/services/agent/modules/chats/lambdas/delete-chat/index.mjs +1 -0
- package/dist/services/agent/modules/chats/lambdas/get-chat-by-id/get-chat-by-id.use-case.js +52 -0
- package/dist/services/agent/modules/chats/lambdas/get-chat-by-id/get-chat-by-id.use-case.mjs +23 -0
- package/dist/services/agent/modules/chats/lambdas/get-chat-by-id/index.js +22 -0
- package/dist/services/agent/modules/chats/lambdas/get-chat-by-id/index.mjs +1 -0
- package/dist/services/agent/modules/chats/lambdas/interrupt-execution/index.js +22 -0
- package/dist/services/agent/modules/chats/lambdas/interrupt-execution/index.mjs +1 -0
- package/dist/services/agent/modules/chats/lambdas/interrupt-execution/interrupt-execution.use-case.js +64 -0
- package/dist/services/agent/modules/chats/lambdas/interrupt-execution/interrupt-execution.use-case.mjs +35 -0
- package/dist/services/agent/modules/chats/lambdas/list-chats-by-props/index.js +22 -0
- package/dist/services/agent/modules/chats/lambdas/list-chats-by-props/index.mjs +1 -0
- package/dist/services/agent/modules/chats/lambdas/list-chats-by-props/list-chats-by-props.use-case.js +52 -0
- package/dist/services/agent/modules/chats/lambdas/list-chats-by-props/list-chats-by-props.use-case.mjs +23 -0
- package/dist/services/agent/modules/chats/lambdas/list-chats-by-user/index.js +22 -0
- package/dist/services/agent/modules/chats/lambdas/list-chats-by-user/index.mjs +1 -0
- package/dist/services/agent/modules/chats/lambdas/list-chats-by-user/list-chats-by-user.use-case.js +59 -0
- package/dist/services/agent/modules/chats/lambdas/list-chats-by-user/list-chats-by-user.use-case.mjs +30 -0
- package/dist/services/agent/modules/chats/lambdas/update-chat/index.js +22 -0
- package/dist/services/agent/modules/chats/lambdas/update-chat/index.mjs +1 -0
- package/dist/services/agent/modules/chats/lambdas/update-chat/update-chat.use-case.js +64 -0
- package/dist/services/agent/modules/chats/lambdas/update-chat/update-chat.use-case.mjs +35 -0
- package/dist/services/agent/modules/chats/repositories/chat.repository.js +67 -0
- package/dist/services/agent/modules/chats/repositories/chat.repository.mjs +38 -0
- package/dist/services/agent/modules/chats/repositories/index.js +22 -0
- package/dist/services/agent/modules/chats/repositories/index.mjs +1 -0
- package/dist/services/agent/modules/llmcalls/entities/index.js +22 -0
- package/dist/services/agent/modules/llmcalls/entities/index.mjs +1 -0
- package/dist/services/agent/modules/llmcalls/entities/llmcall.entity.js +71 -0
- package/dist/services/agent/modules/llmcalls/entities/llmcall.entity.mjs +48 -0
- package/dist/services/agent/modules/llmcalls/lambdas/create-llmcall/create-llmcall.use-case.js +56 -0
- package/dist/services/agent/modules/llmcalls/lambdas/create-llmcall/create-llmcall.use-case.mjs +27 -0
- package/dist/services/agent/modules/llmcalls/lambdas/create-llmcall/index.js +22 -0
- package/dist/services/agent/modules/llmcalls/lambdas/create-llmcall/index.mjs +1 -0
- package/dist/services/agent/modules/llmcalls/lambdas/delete-llmcall/delete-llmcall.use-case.js +61 -0
- package/dist/services/agent/modules/llmcalls/lambdas/delete-llmcall/delete-llmcall.use-case.mjs +32 -0
- package/dist/services/agent/modules/llmcalls/lambdas/delete-llmcall/index.js +22 -0
- package/dist/services/agent/modules/llmcalls/lambdas/delete-llmcall/index.mjs +1 -0
- package/dist/services/agent/modules/llmcalls/lambdas/get-llm-usage/get-llm-usage.use-case.js +123 -0
- package/dist/services/agent/modules/llmcalls/lambdas/get-llm-usage/get-llm-usage.use-case.mjs +94 -0
- package/dist/services/agent/modules/llmcalls/lambdas/get-llm-usage/index.js +22 -0
- package/dist/services/agent/modules/llmcalls/lambdas/get-llm-usage/index.mjs +1 -0
- package/dist/services/agent/modules/llmcalls/lambdas/get-llmcall-by-id/get-llmcall-by-id.use-case.js +52 -0
- package/dist/services/agent/modules/llmcalls/lambdas/get-llmcall-by-id/get-llmcall-by-id.use-case.mjs +23 -0
- package/dist/services/agent/modules/llmcalls/lambdas/get-llmcall-by-id/index.js +22 -0
- package/dist/services/agent/modules/llmcalls/lambdas/get-llmcall-by-id/index.mjs +1 -0
- package/dist/services/agent/modules/llmcalls/lambdas/list-llmcalls-by-props/index.js +22 -0
- package/dist/services/agent/modules/llmcalls/lambdas/list-llmcalls-by-props/index.mjs +1 -0
- package/dist/services/agent/modules/llmcalls/lambdas/list-llmcalls-by-props/list-llmcalls-by-props.use-case.js +52 -0
- package/dist/services/agent/modules/llmcalls/lambdas/list-llmcalls-by-props/list-llmcalls-by-props.use-case.mjs +23 -0
- package/dist/services/agent/modules/llmcalls/lambdas/update-llmcall/index.js +22 -0
- package/dist/services/agent/modules/llmcalls/lambdas/update-llmcall/index.mjs +1 -0
- package/dist/services/agent/modules/llmcalls/lambdas/update-llmcall/update-llmcall.use-case.js +62 -0
- package/dist/services/agent/modules/llmcalls/lambdas/update-llmcall/update-llmcall.use-case.mjs +33 -0
- package/dist/services/agent/modules/llmcalls/repositories/index.js +22 -0
- package/dist/services/agent/modules/llmcalls/repositories/index.mjs +1 -0
- package/dist/services/agent/modules/llmcalls/repositories/llmcall.repository.js +67 -0
- package/dist/services/agent/modules/llmcalls/repositories/llmcall.repository.mjs +38 -0
- package/dist/services/agent/modules/mcp-servers/entities/index.js +22 -0
- package/dist/services/agent/modules/mcp-servers/entities/index.mjs +1 -0
- package/dist/services/agent/modules/mcp-servers/entities/mcpserver.entity.js +79 -0
- package/dist/services/agent/modules/mcp-servers/entities/mcpserver.entity.mjs +56 -0
- package/dist/services/agent/modules/mcp-servers/lambdas/create-mcpserver/create-mcpserver.use-case.js +56 -0
- package/dist/services/agent/modules/mcp-servers/lambdas/create-mcpserver/create-mcpserver.use-case.mjs +27 -0
- package/dist/services/agent/modules/mcp-servers/lambdas/create-mcpserver/index.js +22 -0
- package/dist/services/agent/modules/mcp-servers/lambdas/create-mcpserver/index.mjs +1 -0
- package/dist/services/agent/modules/mcp-servers/lambdas/delete-mcpserver/delete-mcpserver.use-case.js +61 -0
- package/dist/services/agent/modules/mcp-servers/lambdas/delete-mcpserver/delete-mcpserver.use-case.mjs +32 -0
- package/dist/services/agent/modules/mcp-servers/lambdas/delete-mcpserver/index.js +22 -0
- package/dist/services/agent/modules/mcp-servers/lambdas/delete-mcpserver/index.mjs +1 -0
- package/dist/services/agent/modules/mcp-servers/lambdas/get-mcpserver-by-id/get-mcpserver-by-id.use-case.js +52 -0
- package/dist/services/agent/modules/mcp-servers/lambdas/get-mcpserver-by-id/get-mcpserver-by-id.use-case.mjs +23 -0
- package/dist/services/agent/modules/mcp-servers/lambdas/get-mcpserver-by-id/index.js +22 -0
- package/dist/services/agent/modules/mcp-servers/lambdas/get-mcpserver-by-id/index.mjs +1 -0
- package/dist/services/agent/modules/mcp-servers/lambdas/list-mcpservers-by-user/index.js +22 -0
- package/dist/services/agent/modules/mcp-servers/lambdas/list-mcpservers-by-user/index.mjs +1 -0
- package/dist/services/agent/modules/mcp-servers/lambdas/list-mcpservers-by-user/list-mcpservers-by-user.use-case.js +59 -0
- package/dist/services/agent/modules/mcp-servers/lambdas/list-mcpservers-by-user/list-mcpservers-by-user.use-case.mjs +30 -0
- package/dist/services/agent/modules/mcp-servers/lambdas/update-mcpserver/index.js +22 -0
- package/dist/services/agent/modules/mcp-servers/lambdas/update-mcpserver/index.mjs +1 -0
- package/dist/services/agent/modules/mcp-servers/lambdas/update-mcpserver/update-mcpserver.use-case.js +61 -0
- package/dist/services/agent/modules/mcp-servers/lambdas/update-mcpserver/update-mcpserver.use-case.mjs +32 -0
- package/dist/services/agent/modules/mcp-servers/repositories/index.js +22 -0
- package/dist/services/agent/modules/mcp-servers/repositories/index.mjs +1 -0
- package/dist/services/agent/modules/mcp-servers/repositories/mcpserver.repository.js +67 -0
- package/dist/services/agent/modules/mcp-servers/repositories/mcpserver.repository.mjs +38 -0
- package/dist/services/agent/skills/index.js +24 -0
- package/dist/services/agent/skills/index.mjs +2 -0
- package/dist/services/agent/skills/shared/index.js +22 -0
- package/dist/services/agent/skills/shared/index.mjs +1 -0
- package/dist/services/agent/skills/shared/shared-rules.js +37 -0
- package/dist/services/agent/skills/shared/shared-rules.mjs +11 -0
- package/dist/services/agent/skills/skill-runner.js +121 -0
- package/dist/services/agent/skills/skill-runner.mjs +92 -0
- package/dist/services/agent/skills/skill.js +128 -0
- package/dist/services/agent/skills/skill.mjs +105 -0
- package/dist/services/agent/tools/core/call-ai/call-ai.skill.js +54 -0
- package/dist/services/agent/tools/core/call-ai/call-ai.skill.mjs +31 -0
- package/dist/services/agent/tools/core/call-ai/call-ai.tool.js +68 -0
- package/dist/services/agent/tools/core/call-ai/call-ai.tool.mjs +45 -0
- package/dist/services/agent/tools/core/call-ai/index.js +22 -0
- package/dist/services/agent/tools/core/call-ai/index.mjs +1 -0
- package/dist/services/agent/tools/core/index.js +24 -0
- package/dist/services/agent/tools/core/index.mjs +2 -0
- package/dist/services/agent/tools/core/web-search/index.js +22 -0
- package/dist/services/agent/tools/core/web-search/index.mjs +1 -0
- package/dist/services/agent/tools/core/web-search/web-search.tool.js +51 -0
- package/dist/services/agent/tools/core/web-search/web-search.tool.mjs +30 -0
- package/dist/services/agent/tools/index.js +24 -0
- package/dist/services/agent/tools/index.mjs +2 -0
- package/dist/services/agent/tools/tool.js +57 -0
- package/dist/services/agent/tools/tool.mjs +34 -0
- package/dist/services/agent/utils/rank-tools-by-keywords.js +65 -0
- package/dist/services/agent/utils/rank-tools-by-keywords.mjs +42 -0
- package/dist/services/app/core/app.js +60 -0
- package/dist/services/app/core/app.mjs +47 -0
- package/dist/services/app/core/current-session.js +124 -0
- package/dist/services/app/core/current-session.mjs +104 -0
- package/dist/services/app/core/current-user.js +84 -0
- package/dist/services/app/core/current-user.mjs +61 -0
- package/dist/services/app/core/index.js +26 -0
- package/dist/services/app/core/index.mjs +3 -0
- package/dist/services/app/modules/authentication/lambdas/login/index.js +22 -0
- package/dist/services/app/modules/authentication/lambdas/login/index.mjs +1 -0
- package/dist/services/app/modules/authentication/lambdas/login/login.use-case.js +89 -0
- package/dist/services/app/modules/authentication/lambdas/login/login.use-case.mjs +50 -0
- package/dist/services/app/modules/users/entities/index.js +22 -0
- package/dist/services/app/modules/users/entities/index.mjs +1 -0
- package/dist/services/app/modules/users/entities/user-acquisition.js +55 -0
- package/dist/services/app/modules/users/entities/user-acquisition.mjs +26 -0
- package/dist/services/app/modules/users/entities/user-country.js +44 -0
- package/dist/services/app/modules/users/entities/user-country.mjs +21 -0
- package/dist/services/app/modules/users/entities/user-currency.js +44 -0
- package/dist/services/app/modules/users/entities/user-currency.mjs +21 -0
- package/dist/services/app/modules/users/entities/user-email.value-object.js +43 -0
- package/dist/services/app/modules/users/entities/user-email.value-object.mjs +20 -0
- package/dist/services/app/modules/users/entities/user-language.js +44 -0
- package/dist/services/app/modules/users/entities/user-language.mjs +21 -0
- package/dist/services/app/modules/users/entities/user-marketing.js +53 -0
- package/dist/services/app/modules/users/entities/user-marketing.mjs +24 -0
- package/dist/services/app/modules/users/entities/user-notification-preferences.js +41 -0
- package/dist/services/app/modules/users/entities/user-notification-preferences.mjs +18 -0
- package/dist/services/app/modules/users/entities/user-password.value-object.js +69 -0
- package/dist/services/app/modules/users/entities/user-password.value-object.mjs +36 -0
- package/dist/services/app/modules/users/entities/user-permissions.js +59 -0
- package/dist/services/app/modules/users/entities/user-permissions.mjs +36 -0
- package/dist/services/app/modules/users/entities/user-preferences.js +69 -0
- package/dist/services/app/modules/users/entities/user-preferences.mjs +46 -0
- package/dist/services/app/modules/users/entities/user-report-preferences.js +56 -0
- package/dist/services/app/modules/users/entities/user-report-preferences.mjs +33 -0
- package/dist/services/app/modules/users/entities/user-report-schedule.js +41 -0
- package/dist/services/app/modules/users/entities/user-report-schedule.mjs +18 -0
- package/dist/services/app/modules/users/entities/user-timezone.js +44 -0
- package/dist/services/app/modules/users/entities/user-timezone.mjs +21 -0
- package/dist/services/app/modules/users/entities/user.entity.js +133 -0
- package/dist/services/app/modules/users/entities/user.entity.mjs +103 -0
- package/dist/services/app/modules/users/lambdas/create-user/create-user.use-case.js +58 -0
- package/dist/services/app/modules/users/lambdas/create-user/create-user.use-case.mjs +29 -0
- package/dist/services/app/modules/users/lambdas/create-user/index.js +22 -0
- package/dist/services/app/modules/users/lambdas/create-user/index.mjs +1 -0
- package/dist/services/app/modules/users/lambdas/delete-user/delete-user.use-case.js +61 -0
- package/dist/services/app/modules/users/lambdas/delete-user/delete-user.use-case.mjs +32 -0
- package/dist/services/app/modules/users/lambdas/delete-user/index.js +22 -0
- package/dist/services/app/modules/users/lambdas/delete-user/index.mjs +1 -0
- package/dist/services/app/modules/users/lambdas/get-user-by-id/get-user-by-id.use-case.js +52 -0
- package/dist/services/app/modules/users/lambdas/get-user-by-id/get-user-by-id.use-case.mjs +23 -0
- package/dist/services/app/modules/users/lambdas/get-user-by-id/index.js +22 -0
- package/dist/services/app/modules/users/lambdas/get-user-by-id/index.mjs +1 -0
- package/dist/services/app/modules/users/lambdas/list-users-by-props/index.js +22 -0
- package/dist/services/app/modules/users/lambdas/list-users-by-props/index.mjs +1 -0
- package/dist/services/app/modules/users/lambdas/list-users-by-props/list-users-by-props.use-case.js +52 -0
- package/dist/services/app/modules/users/lambdas/list-users-by-props/list-users-by-props.use-case.mjs +23 -0
- package/dist/services/app/modules/users/lambdas/update-user/index.js +22 -0
- package/dist/services/app/modules/users/lambdas/update-user/index.mjs +1 -0
- package/dist/services/app/modules/users/lambdas/update-user/update-user.use-case.js +62 -0
- package/dist/services/app/modules/users/lambdas/update-user/update-user.use-case.mjs +33 -0
- package/dist/services/app/modules/users/repositories/index.js +22 -0
- package/dist/services/app/modules/users/repositories/index.mjs +1 -0
- package/dist/services/app/modules/users/repositories/user.repository.js +83 -0
- package/dist/services/app/modules/users/repositories/user.repository.mjs +54 -0
- package/package.json +2 -2
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
var __defProp = Object.defineProperty;
|
|
2
|
+
var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
|
|
3
|
+
var __decorateClass = (decorators, target, key, kind) => {
|
|
4
|
+
var result = kind > 1 ? void 0 : kind ? __getOwnPropDesc(target, key) : target;
|
|
5
|
+
for (var i = decorators.length - 1, decorator; i >= 0; i--)
|
|
6
|
+
if (decorator = decorators[i])
|
|
7
|
+
result = (kind ? decorator(target, key, result) : decorator(result)) || result;
|
|
8
|
+
if (kind && result) __defProp(target, key, result);
|
|
9
|
+
return result;
|
|
10
|
+
};
|
|
11
|
+
|
|
12
|
+
export {
|
|
13
|
+
__decorateClass
|
|
14
|
+
};
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __defProp = Object.defineProperty;
|
|
3
|
+
var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
|
|
4
|
+
var __getOwnPropNames = Object.getOwnPropertyNames;
|
|
5
|
+
var __hasOwnProp = Object.prototype.hasOwnProperty;
|
|
6
|
+
var __copyProps = (to, from, except, desc) => {
|
|
7
|
+
if (from && typeof from === "object" || typeof from === "function") {
|
|
8
|
+
for (let key of __getOwnPropNames(from))
|
|
9
|
+
if (!__hasOwnProp.call(to, key) && key !== except)
|
|
10
|
+
__defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
|
|
11
|
+
}
|
|
12
|
+
return to;
|
|
13
|
+
};
|
|
14
|
+
var __reExport = (target, mod, secondTarget) => (__copyProps(target, mod, "default"), secondTarget && __copyProps(secondTarget, mod, "default"));
|
|
15
|
+
var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
|
|
16
|
+
var clients_exports = {};
|
|
17
|
+
module.exports = __toCommonJS(clients_exports);
|
|
18
|
+
__reExport(clients_exports, require("./llm-client"), module.exports);
|
|
19
|
+
__reExport(clients_exports, require("./sentry-client"), module.exports);
|
|
20
|
+
__reExport(clients_exports, require("./serper-client"), module.exports);
|
|
21
|
+
// Annotate the CommonJS export names for ESM import in node:
|
|
22
|
+
0 && (module.exports = {
|
|
23
|
+
...require("./llm-client"),
|
|
24
|
+
...require("./sentry-client"),
|
|
25
|
+
...require("./serper-client")
|
|
26
|
+
});
|
|
@@ -0,0 +1,159 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __create = Object.create;
|
|
3
|
+
var __defProp = Object.defineProperty;
|
|
4
|
+
var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
|
|
5
|
+
var __getOwnPropNames = Object.getOwnPropertyNames;
|
|
6
|
+
var __getProtoOf = Object.getPrototypeOf;
|
|
7
|
+
var __hasOwnProp = Object.prototype.hasOwnProperty;
|
|
8
|
+
var __export = (target, all) => {
|
|
9
|
+
for (var name in all)
|
|
10
|
+
__defProp(target, name, { get: all[name], enumerable: true });
|
|
11
|
+
};
|
|
12
|
+
var __copyProps = (to, from, except, desc) => {
|
|
13
|
+
if (from && typeof from === "object" || typeof from === "function") {
|
|
14
|
+
for (let key of __getOwnPropNames(from))
|
|
15
|
+
if (!__hasOwnProp.call(to, key) && key !== except)
|
|
16
|
+
__defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
|
|
17
|
+
}
|
|
18
|
+
return to;
|
|
19
|
+
};
|
|
20
|
+
var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__getProtoOf(mod)) : {}, __copyProps(
|
|
21
|
+
// If the importer is in node compatibility mode or this is not an ESM
|
|
22
|
+
// file that has been converted to a CommonJS file using a Babel-
|
|
23
|
+
// compatible transform (i.e. "__esModule" has not been set), then set
|
|
24
|
+
// "default" to the CommonJS "module.exports" for node compatibility.
|
|
25
|
+
isNodeMode || !mod || !mod.__esModule ? __defProp(target, "default", { value: mod, enumerable: true }) : target,
|
|
26
|
+
mod
|
|
27
|
+
));
|
|
28
|
+
var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
|
|
29
|
+
var llm_client_exports = {};
|
|
30
|
+
__export(llm_client_exports, {
|
|
31
|
+
LLMClient: () => LLMClient
|
|
32
|
+
});
|
|
33
|
+
module.exports = __toCommonJS(llm_client_exports);
|
|
34
|
+
var import_reflect_metadata = require("reflect-metadata");
|
|
35
|
+
var import_tsyringe = require("tsyringe");
|
|
36
|
+
var import_langfuse = require("langfuse");
|
|
37
|
+
var import_secret_manager = require("@common/utils/secret-manager");
|
|
38
|
+
var import_logger = require("@common/logger");
|
|
39
|
+
var import_helpers = require("@common/helpers");
|
|
40
|
+
var import_create_llmcall = require("@services/agent/modules/llmcalls/lambdas/create-llmcall");
|
|
41
|
+
class LLMClient {
|
|
42
|
+
logger = new import_logger.Logger();
|
|
43
|
+
langfuse;
|
|
44
|
+
constructor() {
|
|
45
|
+
process.env.OPENAI_API_KEY = import_secret_manager.secretManager.get("OPENAI_API_KEY");
|
|
46
|
+
this.langfuse = new import_langfuse.Langfuse({
|
|
47
|
+
publicKey: import_secret_manager.secretManager.get("LANGFUSE_PUBLIC_KEY"),
|
|
48
|
+
secretKey: import_secret_manager.secretManager.get("LANGFUSE_SECRET_KEY"),
|
|
49
|
+
baseUrl: process.env.LANGFUSE_BASE_URL
|
|
50
|
+
});
|
|
51
|
+
}
|
|
52
|
+
async complete(params) {
|
|
53
|
+
const { getModel, complete } = await import("@mariozechner/pi-ai");
|
|
54
|
+
const {
|
|
55
|
+
taskName,
|
|
56
|
+
sessionId,
|
|
57
|
+
answerId,
|
|
58
|
+
currentUser,
|
|
59
|
+
systemPrompt,
|
|
60
|
+
messages,
|
|
61
|
+
provider = "openai",
|
|
62
|
+
modelName = "gpt-4o-mini",
|
|
63
|
+
temperature = 0.7
|
|
64
|
+
} = params ?? {};
|
|
65
|
+
const model = getModel(provider, modelName);
|
|
66
|
+
const context = {
|
|
67
|
+
systemPrompt,
|
|
68
|
+
messages
|
|
69
|
+
};
|
|
70
|
+
this.logger.debug({
|
|
71
|
+
taskName,
|
|
72
|
+
context: {
|
|
73
|
+
...context,
|
|
74
|
+
messages: this.formatMessagesForLog(messages)
|
|
75
|
+
}
|
|
76
|
+
}, "[LLM Service] context");
|
|
77
|
+
const trace = this.langfuse.trace({
|
|
78
|
+
sessionId,
|
|
79
|
+
name: taskName,
|
|
80
|
+
userId: currentUser?.userId,
|
|
81
|
+
metadata: {
|
|
82
|
+
taskName,
|
|
83
|
+
email: currentUser?.email,
|
|
84
|
+
sessionId
|
|
85
|
+
}
|
|
86
|
+
});
|
|
87
|
+
const generation = trace.generation({
|
|
88
|
+
name: "llm-completion",
|
|
89
|
+
model: modelName,
|
|
90
|
+
modelParameters: { temperature, provider },
|
|
91
|
+
input: context
|
|
92
|
+
});
|
|
93
|
+
try {
|
|
94
|
+
const response = await complete(model, context, {
|
|
95
|
+
temperature
|
|
96
|
+
});
|
|
97
|
+
generation.end({
|
|
98
|
+
output: response,
|
|
99
|
+
usage: response.usage ? {
|
|
100
|
+
promptTokens: response.usage.input,
|
|
101
|
+
completionTokens: response.usage.output,
|
|
102
|
+
totalTokens: response.usage.totalTokens
|
|
103
|
+
} : void 0
|
|
104
|
+
});
|
|
105
|
+
await this.langfuse.flushAsync();
|
|
106
|
+
this.logger.debug({
|
|
107
|
+
taskName,
|
|
108
|
+
response: {
|
|
109
|
+
...response,
|
|
110
|
+
content: this.formatContentForLog(response?.content)
|
|
111
|
+
}
|
|
112
|
+
}, "[LLM Service] Response");
|
|
113
|
+
await this.postResponse({ taskName, sessionId, answerId, currentUser, response });
|
|
114
|
+
return response;
|
|
115
|
+
} catch (error) {
|
|
116
|
+
generation.end({
|
|
117
|
+
level: "ERROR",
|
|
118
|
+
statusMessage: error.message
|
|
119
|
+
});
|
|
120
|
+
await this.langfuse.flushAsync();
|
|
121
|
+
throw error;
|
|
122
|
+
}
|
|
123
|
+
}
|
|
124
|
+
async postResponse(params) {
|
|
125
|
+
const { taskName, sessionId, answerId, currentUser, response } = params ?? {};
|
|
126
|
+
const createLLMCallUseCase = import_tsyringe.container.resolve(import_create_llmcall.CreateLLMCallUseCase);
|
|
127
|
+
await createLLMCallUseCase.execute({
|
|
128
|
+
payload: {
|
|
129
|
+
taskName,
|
|
130
|
+
sessionId,
|
|
131
|
+
answerId,
|
|
132
|
+
response,
|
|
133
|
+
costInUsd: response?.usage?.cost?.total
|
|
134
|
+
},
|
|
135
|
+
currentUser
|
|
136
|
+
});
|
|
137
|
+
}
|
|
138
|
+
formatContentForLog(records) {
|
|
139
|
+
return records?.map((record) => {
|
|
140
|
+
const text = record?.text;
|
|
141
|
+
const extracted = (0, import_helpers.extractJSON)(text);
|
|
142
|
+
const isJson = Object.keys(extracted).length > 0;
|
|
143
|
+
return {
|
|
144
|
+
...record,
|
|
145
|
+
text: isJson ? extracted : text
|
|
146
|
+
};
|
|
147
|
+
});
|
|
148
|
+
}
|
|
149
|
+
formatMessagesForLog(messages) {
|
|
150
|
+
return messages.map((message) => ({
|
|
151
|
+
...message,
|
|
152
|
+
content: this.formatContentForLog(message?.content) ?? message?.content
|
|
153
|
+
}));
|
|
154
|
+
}
|
|
155
|
+
}
|
|
156
|
+
// Annotate the CommonJS export names for ESM import in node:
|
|
157
|
+
0 && (module.exports = {
|
|
158
|
+
LLMClient
|
|
159
|
+
});
|
|
@@ -0,0 +1,126 @@
|
|
|
1
|
+
import "../../chunk-XRJFNASX.mjs";
|
|
2
|
+
import "reflect-metadata";
|
|
3
|
+
import { container } from "tsyringe";
|
|
4
|
+
import { Langfuse } from "langfuse";
|
|
5
|
+
import { secretManager } from "@common/utils/secret-manager";
|
|
6
|
+
import { Logger } from "@common/logger";
|
|
7
|
+
import { extractJSON } from "@common/helpers";
|
|
8
|
+
import { CreateLLMCallUseCase } from "@services/agent/modules/llmcalls/lambdas/create-llmcall";
|
|
9
|
+
class LLMClient {
|
|
10
|
+
logger = new Logger();
|
|
11
|
+
langfuse;
|
|
12
|
+
constructor() {
|
|
13
|
+
process.env.OPENAI_API_KEY = secretManager.get("OPENAI_API_KEY");
|
|
14
|
+
this.langfuse = new Langfuse({
|
|
15
|
+
publicKey: secretManager.get("LANGFUSE_PUBLIC_KEY"),
|
|
16
|
+
secretKey: secretManager.get("LANGFUSE_SECRET_KEY"),
|
|
17
|
+
baseUrl: process.env.LANGFUSE_BASE_URL
|
|
18
|
+
});
|
|
19
|
+
}
|
|
20
|
+
async complete(params) {
|
|
21
|
+
const { getModel, complete } = await import("@mariozechner/pi-ai");
|
|
22
|
+
const {
|
|
23
|
+
taskName,
|
|
24
|
+
sessionId,
|
|
25
|
+
answerId,
|
|
26
|
+
currentUser,
|
|
27
|
+
systemPrompt,
|
|
28
|
+
messages,
|
|
29
|
+
provider = "openai",
|
|
30
|
+
modelName = "gpt-4o-mini",
|
|
31
|
+
temperature = 0.7
|
|
32
|
+
} = params ?? {};
|
|
33
|
+
const model = getModel(provider, modelName);
|
|
34
|
+
const context = {
|
|
35
|
+
systemPrompt,
|
|
36
|
+
messages
|
|
37
|
+
};
|
|
38
|
+
this.logger.debug({
|
|
39
|
+
taskName,
|
|
40
|
+
context: {
|
|
41
|
+
...context,
|
|
42
|
+
messages: this.formatMessagesForLog(messages)
|
|
43
|
+
}
|
|
44
|
+
}, "[LLM Service] context");
|
|
45
|
+
const trace = this.langfuse.trace({
|
|
46
|
+
sessionId,
|
|
47
|
+
name: taskName,
|
|
48
|
+
userId: currentUser?.userId,
|
|
49
|
+
metadata: {
|
|
50
|
+
taskName,
|
|
51
|
+
email: currentUser?.email,
|
|
52
|
+
sessionId
|
|
53
|
+
}
|
|
54
|
+
});
|
|
55
|
+
const generation = trace.generation({
|
|
56
|
+
name: "llm-completion",
|
|
57
|
+
model: modelName,
|
|
58
|
+
modelParameters: { temperature, provider },
|
|
59
|
+
input: context
|
|
60
|
+
});
|
|
61
|
+
try {
|
|
62
|
+
const response = await complete(model, context, {
|
|
63
|
+
temperature
|
|
64
|
+
});
|
|
65
|
+
generation.end({
|
|
66
|
+
output: response,
|
|
67
|
+
usage: response.usage ? {
|
|
68
|
+
promptTokens: response.usage.input,
|
|
69
|
+
completionTokens: response.usage.output,
|
|
70
|
+
totalTokens: response.usage.totalTokens
|
|
71
|
+
} : void 0
|
|
72
|
+
});
|
|
73
|
+
await this.langfuse.flushAsync();
|
|
74
|
+
this.logger.debug({
|
|
75
|
+
taskName,
|
|
76
|
+
response: {
|
|
77
|
+
...response,
|
|
78
|
+
content: this.formatContentForLog(response?.content)
|
|
79
|
+
}
|
|
80
|
+
}, "[LLM Service] Response");
|
|
81
|
+
await this.postResponse({ taskName, sessionId, answerId, currentUser, response });
|
|
82
|
+
return response;
|
|
83
|
+
} catch (error) {
|
|
84
|
+
generation.end({
|
|
85
|
+
level: "ERROR",
|
|
86
|
+
statusMessage: error.message
|
|
87
|
+
});
|
|
88
|
+
await this.langfuse.flushAsync();
|
|
89
|
+
throw error;
|
|
90
|
+
}
|
|
91
|
+
}
|
|
92
|
+
async postResponse(params) {
|
|
93
|
+
const { taskName, sessionId, answerId, currentUser, response } = params ?? {};
|
|
94
|
+
const createLLMCallUseCase = container.resolve(CreateLLMCallUseCase);
|
|
95
|
+
await createLLMCallUseCase.execute({
|
|
96
|
+
payload: {
|
|
97
|
+
taskName,
|
|
98
|
+
sessionId,
|
|
99
|
+
answerId,
|
|
100
|
+
response,
|
|
101
|
+
costInUsd: response?.usage?.cost?.total
|
|
102
|
+
},
|
|
103
|
+
currentUser
|
|
104
|
+
});
|
|
105
|
+
}
|
|
106
|
+
formatContentForLog(records) {
|
|
107
|
+
return records?.map((record) => {
|
|
108
|
+
const text = record?.text;
|
|
109
|
+
const extracted = extractJSON(text);
|
|
110
|
+
const isJson = Object.keys(extracted).length > 0;
|
|
111
|
+
return {
|
|
112
|
+
...record,
|
|
113
|
+
text: isJson ? extracted : text
|
|
114
|
+
};
|
|
115
|
+
});
|
|
116
|
+
}
|
|
117
|
+
formatMessagesForLog(messages) {
|
|
118
|
+
return messages.map((message) => ({
|
|
119
|
+
...message,
|
|
120
|
+
content: this.formatContentForLog(message?.content) ?? message?.content
|
|
121
|
+
}));
|
|
122
|
+
}
|
|
123
|
+
}
|
|
124
|
+
export {
|
|
125
|
+
LLMClient
|
|
126
|
+
};
|
|
@@ -0,0 +1,87 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __create = Object.create;
|
|
3
|
+
var __defProp = Object.defineProperty;
|
|
4
|
+
var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
|
|
5
|
+
var __getOwnPropNames = Object.getOwnPropertyNames;
|
|
6
|
+
var __getProtoOf = Object.getPrototypeOf;
|
|
7
|
+
var __hasOwnProp = Object.prototype.hasOwnProperty;
|
|
8
|
+
var __export = (target, all) => {
|
|
9
|
+
for (var name in all)
|
|
10
|
+
__defProp(target, name, { get: all[name], enumerable: true });
|
|
11
|
+
};
|
|
12
|
+
var __copyProps = (to, from, except, desc) => {
|
|
13
|
+
if (from && typeof from === "object" || typeof from === "function") {
|
|
14
|
+
for (let key of __getOwnPropNames(from))
|
|
15
|
+
if (!__hasOwnProp.call(to, key) && key !== except)
|
|
16
|
+
__defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
|
|
17
|
+
}
|
|
18
|
+
return to;
|
|
19
|
+
};
|
|
20
|
+
var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__getProtoOf(mod)) : {}, __copyProps(
|
|
21
|
+
// If the importer is in node compatibility mode or this is not an ESM
|
|
22
|
+
// file that has been converted to a CommonJS file using a Babel-
|
|
23
|
+
// compatible transform (i.e. "__esModule" has not been set), then set
|
|
24
|
+
// "default" to the CommonJS "module.exports" for node compatibility.
|
|
25
|
+
isNodeMode || !mod || !mod.__esModule ? __defProp(target, "default", { value: mod, enumerable: true }) : target,
|
|
26
|
+
mod
|
|
27
|
+
));
|
|
28
|
+
var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
|
|
29
|
+
var sentry_client_exports = {};
|
|
30
|
+
__export(sentry_client_exports, {
|
|
31
|
+
SentryClient: () => SentryClient,
|
|
32
|
+
sentryClient: () => sentryClient
|
|
33
|
+
});
|
|
34
|
+
module.exports = __toCommonJS(sentry_client_exports);
|
|
35
|
+
var Sentry = __toESM(require("@sentry/node"));
|
|
36
|
+
var import_logger = require("../logger");
|
|
37
|
+
var import_secret_manager = require("@common/utils/secret-manager");
|
|
38
|
+
class SentryClient {
|
|
39
|
+
static instance;
|
|
40
|
+
enabled;
|
|
41
|
+
static getInstance() {
|
|
42
|
+
if (!SentryClient.instance) {
|
|
43
|
+
SentryClient.instance = new SentryClient();
|
|
44
|
+
}
|
|
45
|
+
return SentryClient.instance;
|
|
46
|
+
}
|
|
47
|
+
constructor() {
|
|
48
|
+
const dsn = this.resolveDsn();
|
|
49
|
+
this.enabled = !!dsn;
|
|
50
|
+
if (!dsn) {
|
|
51
|
+
import_logger.logger.warn("[Sentry Client] Sentry DSN is not configured. Skipping error reporting.");
|
|
52
|
+
return;
|
|
53
|
+
}
|
|
54
|
+
Sentry.init({ dsn, environment: process.env.NODE_ENV || "production", tracesSampleRate: 0 });
|
|
55
|
+
import_logger.logger.debug("[Sentry Client] Sentry client initialized");
|
|
56
|
+
}
|
|
57
|
+
async captureError(error, contextData) {
|
|
58
|
+
if (!this.enabled) return;
|
|
59
|
+
Sentry.withScope((scope) => {
|
|
60
|
+
if (contextData) scope.setExtras(contextData);
|
|
61
|
+
Sentry.captureException(error);
|
|
62
|
+
});
|
|
63
|
+
try {
|
|
64
|
+
await Sentry.flush(2e3);
|
|
65
|
+
import_logger.logger.debug("[Sentry Client] Error reported to Sentry successfully");
|
|
66
|
+
} catch (e) {
|
|
67
|
+
import_logger.logger.error(e, "[Sentry Client] Failed to flush Sentry events");
|
|
68
|
+
}
|
|
69
|
+
}
|
|
70
|
+
setUser(userId) {
|
|
71
|
+
if (!this.enabled) return;
|
|
72
|
+
Sentry.setUser({ id: userId });
|
|
73
|
+
}
|
|
74
|
+
resolveDsn() {
|
|
75
|
+
try {
|
|
76
|
+
return import_secret_manager.secretManager.get("SENTRY_DSN");
|
|
77
|
+
} catch {
|
|
78
|
+
return void 0;
|
|
79
|
+
}
|
|
80
|
+
}
|
|
81
|
+
}
|
|
82
|
+
const sentryClient = SentryClient.getInstance();
|
|
83
|
+
// Annotate the CommonJS export names for ESM import in node:
|
|
84
|
+
0 && (module.exports = {
|
|
85
|
+
SentryClient,
|
|
86
|
+
sentryClient
|
|
87
|
+
});
|
|
@@ -0,0 +1,53 @@
|
|
|
1
|
+
import "../../chunk-XRJFNASX.mjs";
|
|
2
|
+
import * as Sentry from "@sentry/node";
|
|
3
|
+
import { logger } from "../logger";
|
|
4
|
+
import { secretManager } from "@common/utils/secret-manager";
|
|
5
|
+
class SentryClient {
|
|
6
|
+
static instance;
|
|
7
|
+
enabled;
|
|
8
|
+
static getInstance() {
|
|
9
|
+
if (!SentryClient.instance) {
|
|
10
|
+
SentryClient.instance = new SentryClient();
|
|
11
|
+
}
|
|
12
|
+
return SentryClient.instance;
|
|
13
|
+
}
|
|
14
|
+
constructor() {
|
|
15
|
+
const dsn = this.resolveDsn();
|
|
16
|
+
this.enabled = !!dsn;
|
|
17
|
+
if (!dsn) {
|
|
18
|
+
logger.warn("[Sentry Client] Sentry DSN is not configured. Skipping error reporting.");
|
|
19
|
+
return;
|
|
20
|
+
}
|
|
21
|
+
Sentry.init({ dsn, environment: process.env.NODE_ENV || "production", tracesSampleRate: 0 });
|
|
22
|
+
logger.debug("[Sentry Client] Sentry client initialized");
|
|
23
|
+
}
|
|
24
|
+
async captureError(error, contextData) {
|
|
25
|
+
if (!this.enabled) return;
|
|
26
|
+
Sentry.withScope((scope) => {
|
|
27
|
+
if (contextData) scope.setExtras(contextData);
|
|
28
|
+
Sentry.captureException(error);
|
|
29
|
+
});
|
|
30
|
+
try {
|
|
31
|
+
await Sentry.flush(2e3);
|
|
32
|
+
logger.debug("[Sentry Client] Error reported to Sentry successfully");
|
|
33
|
+
} catch (e) {
|
|
34
|
+
logger.error(e, "[Sentry Client] Failed to flush Sentry events");
|
|
35
|
+
}
|
|
36
|
+
}
|
|
37
|
+
setUser(userId) {
|
|
38
|
+
if (!this.enabled) return;
|
|
39
|
+
Sentry.setUser({ id: userId });
|
|
40
|
+
}
|
|
41
|
+
resolveDsn() {
|
|
42
|
+
try {
|
|
43
|
+
return secretManager.get("SENTRY_DSN");
|
|
44
|
+
} catch {
|
|
45
|
+
return void 0;
|
|
46
|
+
}
|
|
47
|
+
}
|
|
48
|
+
}
|
|
49
|
+
const sentryClient = SentryClient.getInstance();
|
|
50
|
+
export {
|
|
51
|
+
SentryClient,
|
|
52
|
+
sentryClient
|
|
53
|
+
};
|
|
@@ -0,0 +1,74 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __create = Object.create;
|
|
3
|
+
var __defProp = Object.defineProperty;
|
|
4
|
+
var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
|
|
5
|
+
var __getOwnPropNames = Object.getOwnPropertyNames;
|
|
6
|
+
var __getProtoOf = Object.getPrototypeOf;
|
|
7
|
+
var __hasOwnProp = Object.prototype.hasOwnProperty;
|
|
8
|
+
var __export = (target, all) => {
|
|
9
|
+
for (var name in all)
|
|
10
|
+
__defProp(target, name, { get: all[name], enumerable: true });
|
|
11
|
+
};
|
|
12
|
+
var __copyProps = (to, from, except, desc) => {
|
|
13
|
+
if (from && typeof from === "object" || typeof from === "function") {
|
|
14
|
+
for (let key of __getOwnPropNames(from))
|
|
15
|
+
if (!__hasOwnProp.call(to, key) && key !== except)
|
|
16
|
+
__defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
|
|
17
|
+
}
|
|
18
|
+
return to;
|
|
19
|
+
};
|
|
20
|
+
var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__getProtoOf(mod)) : {}, __copyProps(
|
|
21
|
+
// If the importer is in node compatibility mode or this is not an ESM
|
|
22
|
+
// file that has been converted to a CommonJS file using a Babel-
|
|
23
|
+
// compatible transform (i.e. "__esModule" has not been set), then set
|
|
24
|
+
// "default" to the CommonJS "module.exports" for node compatibility.
|
|
25
|
+
isNodeMode || !mod || !mod.__esModule ? __defProp(target, "default", { value: mod, enumerable: true }) : target,
|
|
26
|
+
mod
|
|
27
|
+
));
|
|
28
|
+
var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
|
|
29
|
+
var serper_client_exports = {};
|
|
30
|
+
__export(serper_client_exports, {
|
|
31
|
+
SerperClient: () => SerperClient
|
|
32
|
+
});
|
|
33
|
+
module.exports = __toCommonJS(serper_client_exports);
|
|
34
|
+
var import_axios = __toESM(require("axios"));
|
|
35
|
+
var import_logger = require("@common/logger");
|
|
36
|
+
var import_secret_manager = require("@common/utils/secret-manager");
|
|
37
|
+
class SerperClient {
|
|
38
|
+
logger = new import_logger.Logger();
|
|
39
|
+
async searchOnGoogle(params) {
|
|
40
|
+
const { query, type, page, num, countryCode, languageCode } = params;
|
|
41
|
+
const apiKey = import_secret_manager.secretManager.get("SERPER_API_KEY");
|
|
42
|
+
const inputData = {
|
|
43
|
+
q: query,
|
|
44
|
+
type,
|
|
45
|
+
page,
|
|
46
|
+
num,
|
|
47
|
+
...countryCode ? { gl: countryCode } : {},
|
|
48
|
+
...languageCode ? { hl: languageCode } : {},
|
|
49
|
+
engine: "google"
|
|
50
|
+
};
|
|
51
|
+
const config = {
|
|
52
|
+
method: "post",
|
|
53
|
+
maxBodyLength: Infinity,
|
|
54
|
+
url: "https://google.serper.dev/search",
|
|
55
|
+
headers: {
|
|
56
|
+
"X-API-KEY": apiKey,
|
|
57
|
+
"Content-Type": "application/json"
|
|
58
|
+
},
|
|
59
|
+
data: inputData
|
|
60
|
+
};
|
|
61
|
+
try {
|
|
62
|
+
this.logger.debug({ ...inputData }, "[Serper Client] Searching on internet...");
|
|
63
|
+
const { data } = await import_axios.default.request(config);
|
|
64
|
+
this.logger.debug({ ...data }, "[Serper Client] Search results");
|
|
65
|
+
return data;
|
|
66
|
+
} catch (error) {
|
|
67
|
+
this.logger.error(error);
|
|
68
|
+
}
|
|
69
|
+
}
|
|
70
|
+
}
|
|
71
|
+
// Annotate the CommonJS export names for ESM import in node:
|
|
72
|
+
0 && (module.exports = {
|
|
73
|
+
SerperClient
|
|
74
|
+
});
|
|
@@ -0,0 +1,41 @@
|
|
|
1
|
+
import "../../chunk-XRJFNASX.mjs";
|
|
2
|
+
import axios from "axios";
|
|
3
|
+
import { Logger } from "@common/logger";
|
|
4
|
+
import { secretManager } from "@common/utils/secret-manager";
|
|
5
|
+
class SerperClient {
|
|
6
|
+
logger = new Logger();
|
|
7
|
+
async searchOnGoogle(params) {
|
|
8
|
+
const { query, type, page, num, countryCode, languageCode } = params;
|
|
9
|
+
const apiKey = secretManager.get("SERPER_API_KEY");
|
|
10
|
+
const inputData = {
|
|
11
|
+
q: query,
|
|
12
|
+
type,
|
|
13
|
+
page,
|
|
14
|
+
num,
|
|
15
|
+
...countryCode ? { gl: countryCode } : {},
|
|
16
|
+
...languageCode ? { hl: languageCode } : {},
|
|
17
|
+
engine: "google"
|
|
18
|
+
};
|
|
19
|
+
const config = {
|
|
20
|
+
method: "post",
|
|
21
|
+
maxBodyLength: Infinity,
|
|
22
|
+
url: "https://google.serper.dev/search",
|
|
23
|
+
headers: {
|
|
24
|
+
"X-API-KEY": apiKey,
|
|
25
|
+
"Content-Type": "application/json"
|
|
26
|
+
},
|
|
27
|
+
data: inputData
|
|
28
|
+
};
|
|
29
|
+
try {
|
|
30
|
+
this.logger.debug({ ...inputData }, "[Serper Client] Searching on internet...");
|
|
31
|
+
const { data } = await axios.request(config);
|
|
32
|
+
this.logger.debug({ ...data }, "[Serper Client] Search results");
|
|
33
|
+
return data;
|
|
34
|
+
} catch (error) {
|
|
35
|
+
this.logger.error(error);
|
|
36
|
+
}
|
|
37
|
+
}
|
|
38
|
+
}
|
|
39
|
+
export {
|
|
40
|
+
SerperClient
|
|
41
|
+
};
|
|
@@ -0,0 +1,57 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __defProp = Object.defineProperty;
|
|
3
|
+
var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
|
|
4
|
+
var __getOwnPropNames = Object.getOwnPropertyNames;
|
|
5
|
+
var __hasOwnProp = Object.prototype.hasOwnProperty;
|
|
6
|
+
var __export = (target, all) => {
|
|
7
|
+
for (var name in all)
|
|
8
|
+
__defProp(target, name, { get: all[name], enumerable: true });
|
|
9
|
+
};
|
|
10
|
+
var __copyProps = (to, from, except, desc) => {
|
|
11
|
+
if (from && typeof from === "object" || typeof from === "function") {
|
|
12
|
+
for (let key of __getOwnPropNames(from))
|
|
13
|
+
if (!__hasOwnProp.call(to, key) && key !== except)
|
|
14
|
+
__defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
|
|
15
|
+
}
|
|
16
|
+
return to;
|
|
17
|
+
};
|
|
18
|
+
var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
|
|
19
|
+
var base_app_exports = {};
|
|
20
|
+
__export(base_app_exports, {
|
|
21
|
+
BaseApp: () => BaseApp
|
|
22
|
+
});
|
|
23
|
+
module.exports = __toCommonJS(base_app_exports);
|
|
24
|
+
var import_logger = require("@common/logger");
|
|
25
|
+
var import_error = require("@common/error");
|
|
26
|
+
var import_error2 = require("@common/error");
|
|
27
|
+
var import_secret_manager = require("@common/utils/secret-manager");
|
|
28
|
+
class BaseApp {
|
|
29
|
+
logger = new import_logger.Logger();
|
|
30
|
+
secretManager = import_secret_manager.secretManager;
|
|
31
|
+
reportError = import_error.reportError;
|
|
32
|
+
async onCatch(error) {
|
|
33
|
+
await (0, import_error.reportError)(error);
|
|
34
|
+
throw error;
|
|
35
|
+
}
|
|
36
|
+
throwHttpError(error) {
|
|
37
|
+
throw new import_error2.HttpError(error);
|
|
38
|
+
}
|
|
39
|
+
throwError401(currentSession) {
|
|
40
|
+
this.throwHttpError({
|
|
41
|
+
statusCode: 401,
|
|
42
|
+
errorMessage: "{{invalid_token}}: {{not_authenticated_error_details}}",
|
|
43
|
+
errorDetails: JSON.stringify(currentSession ?? {})
|
|
44
|
+
});
|
|
45
|
+
}
|
|
46
|
+
throwError403(currentSession) {
|
|
47
|
+
this.throwHttpError({
|
|
48
|
+
statusCode: 403,
|
|
49
|
+
errorMessage: "{{forbidden_error}}: {{forbidden_error_details}}",
|
|
50
|
+
errorDetails: JSON.stringify(currentSession ?? {})
|
|
51
|
+
});
|
|
52
|
+
}
|
|
53
|
+
}
|
|
54
|
+
// Annotate the CommonJS export names for ESM import in node:
|
|
55
|
+
0 && (module.exports = {
|
|
56
|
+
BaseApp
|
|
57
|
+
});
|
|
@@ -0,0 +1,34 @@
|
|
|
1
|
+
import "../../chunk-XRJFNASX.mjs";
|
|
2
|
+
import { Logger } from "@common/logger";
|
|
3
|
+
import { reportError } from "@common/error";
|
|
4
|
+
import { HttpError } from "@common/error";
|
|
5
|
+
import { secretManager } from "@common/utils/secret-manager";
|
|
6
|
+
class BaseApp {
|
|
7
|
+
logger = new Logger();
|
|
8
|
+
secretManager = secretManager;
|
|
9
|
+
reportError = reportError;
|
|
10
|
+
async onCatch(error) {
|
|
11
|
+
await reportError(error);
|
|
12
|
+
throw error;
|
|
13
|
+
}
|
|
14
|
+
throwHttpError(error) {
|
|
15
|
+
throw new HttpError(error);
|
|
16
|
+
}
|
|
17
|
+
throwError401(currentSession) {
|
|
18
|
+
this.throwHttpError({
|
|
19
|
+
statusCode: 401,
|
|
20
|
+
errorMessage: "{{invalid_token}}: {{not_authenticated_error_details}}",
|
|
21
|
+
errorDetails: JSON.stringify(currentSession ?? {})
|
|
22
|
+
});
|
|
23
|
+
}
|
|
24
|
+
throwError403(currentSession) {
|
|
25
|
+
this.throwHttpError({
|
|
26
|
+
statusCode: 403,
|
|
27
|
+
errorMessage: "{{forbidden_error}}: {{forbidden_error_details}}",
|
|
28
|
+
errorDetails: JSON.stringify(currentSession ?? {})
|
|
29
|
+
});
|
|
30
|
+
}
|
|
31
|
+
}
|
|
32
|
+
export {
|
|
33
|
+
BaseApp
|
|
34
|
+
};
|