openloops 0.1.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/LICENSE +201 -0
- package/README.md +0 -0
- package/dist/src/common/clients/index.d.ts +3 -0
- package/dist/src/common/clients/index.js +20 -0
- package/dist/src/common/clients/index.js.map +1 -0
- package/dist/src/common/clients/llm-client.d.ts +30 -0
- package/dist/src/common/clients/llm-client.js +118 -0
- package/dist/src/common/clients/llm-client.js.map +1 -0
- package/dist/src/common/clients/sentry-client.d.ts +10 -0
- package/dist/src/common/clients/sentry-client.js +91 -0
- package/dist/src/common/clients/sentry-client.js.map +1 -0
- package/dist/src/common/clients/serper-client.d.ts +66 -0
- package/dist/src/common/clients/serper-client.js +46 -0
- package/dist/src/common/clients/serper-client.js.map +1 -0
- package/dist/src/common/core/base.app.d.ts +12 -0
- package/dist/src/common/core/base.app.js +35 -0
- package/dist/src/common/core/base.app.js.map +1 -0
- package/dist/src/common/core/base.entity.d.ts +55 -0
- package/dist/src/common/core/base.entity.js +210 -0
- package/dist/src/common/core/base.entity.js.map +1 -0
- package/dist/src/common/core/base.use-case.d.ts +15 -0
- package/dist/src/common/core/base.use-case.js +8 -0
- package/dist/src/common/core/base.use-case.js.map +1 -0
- package/dist/src/common/core/index.d.ts +1 -0
- package/dist/src/common/core/index.js +3 -0
- package/dist/src/common/core/index.js.map +1 -0
- package/dist/src/common/core/utils/delete-empty-fields.d.ts +1 -0
- package/dist/src/common/core/utils/delete-empty-fields.js +46 -0
- package/dist/src/common/core/utils/delete-empty-fields.js.map +1 -0
- package/dist/src/common/core/utils/flatten-object.d.ts +1 -0
- package/dist/src/common/core/utils/flatten-object.js +23 -0
- package/dist/src/common/core/utils/flatten-object.js.map +1 -0
- package/dist/src/common/core/utils/index.d.ts +3 -0
- package/dist/src/common/core/utils/index.js +20 -0
- package/dist/src/common/core/utils/index.js.map +1 -0
- package/dist/src/common/core/utils/is-plain-object.d.ts +1 -0
- package/dist/src/common/core/utils/is-plain-object.js +10 -0
- package/dist/src/common/core/utils/is-plain-object.js.map +1 -0
- package/dist/src/common/decorators/admin-only/admin-only.d.ts +2 -0
- package/dist/src/common/decorators/admin-only/admin-only.js +30 -0
- package/dist/src/common/decorators/admin-only/admin-only.js.map +1 -0
- package/dist/src/common/decorators/admin-only/index.d.ts +1 -0
- package/dist/src/common/decorators/admin-only/index.js +18 -0
- package/dist/src/common/decorators/admin-only/index.js.map +1 -0
- package/dist/src/common/decorators/index.d.ts +3 -0
- package/dist/src/common/decorators/index.js +20 -0
- package/dist/src/common/decorators/index.js.map +1 -0
- package/dist/src/common/decorators/mask-in-logs/index.d.ts +1 -0
- package/dist/src/common/decorators/mask-in-logs/index.js +18 -0
- package/dist/src/common/decorators/mask-in-logs/index.js.map +1 -0
- package/dist/src/common/decorators/mask-in-logs/mask-in-logs.d.ts +2 -0
- package/dist/src/common/decorators/mask-in-logs/mask-in-logs.js +32 -0
- package/dist/src/common/decorators/mask-in-logs/mask-in-logs.js.map +1 -0
- package/dist/src/common/decorators/owner-only/index.d.ts +1 -0
- package/dist/src/common/decorators/owner-only/index.js +18 -0
- package/dist/src/common/decorators/owner-only/index.js.map +1 -0
- package/dist/src/common/decorators/owner-only/owner-only.d.ts +2 -0
- package/dist/src/common/decorators/owner-only/owner-only.js +30 -0
- package/dist/src/common/decorators/owner-only/owner-only.js.map +1 -0
- package/dist/src/common/error/http-error.d.ts +11 -0
- package/dist/src/common/error/http-error.js +15 -0
- package/dist/src/common/error/http-error.js.map +1 -0
- package/dist/src/common/error/index.d.ts +2 -0
- package/dist/src/common/error/index.js +19 -0
- package/dist/src/common/error/index.js.map +1 -0
- package/dist/src/common/error/reportError.d.ts +2 -0
- package/dist/src/common/error/reportError.js +30 -0
- package/dist/src/common/error/reportError.js.map +1 -0
- package/dist/src/common/helpers/countries-db.d.ts +2718 -0
- package/dist/src/common/helpers/countries-db.js +2722 -0
- package/dist/src/common/helpers/countries-db.js.map +1 -0
- package/dist/src/common/helpers/currencies-db.d.ts +470 -0
- package/dist/src/common/helpers/currencies-db.js +474 -0
- package/dist/src/common/helpers/currencies-db.js.map +1 -0
- package/dist/src/common/helpers/extract-json-from-text.d.ts +1 -0
- package/dist/src/common/helpers/extract-json-from-text.js +45 -0
- package/dist/src/common/helpers/extract-json-from-text.js.map +1 -0
- package/dist/src/common/helpers/get-country-data-from-country-code.d.ts +16 -0
- package/dist/src/common/helpers/get-country-data-from-country-code.js +14 -0
- package/dist/src/common/helpers/get-country-data-from-country-code.js.map +1 -0
- package/dist/src/common/helpers/get-country-from-timezone.d.ts +1 -0
- package/dist/src/common/helpers/get-country-from-timezone.js +14 -0
- package/dist/src/common/helpers/get-country-from-timezone.js.map +1 -0
- package/dist/src/common/helpers/get-country-name-from-country-code.d.ts +1 -0
- package/dist/src/common/helpers/get-country-name-from-country-code.js +17 -0
- package/dist/src/common/helpers/get-country-name-from-country-code.js.map +1 -0
- package/dist/src/common/helpers/get-currency-data.d.ts +13 -0
- package/dist/src/common/helpers/get-currency-data.js +48 -0
- package/dist/src/common/helpers/get-currency-data.js.map +1 -0
- package/dist/src/common/helpers/get-language-from-language-code.d.ts +5 -0
- package/dist/src/common/helpers/get-language-from-language-code.js +23 -0
- package/dist/src/common/helpers/get-language-from-language-code.js.map +1 -0
- package/dist/src/common/helpers/get-timezone-offset.d.ts +1 -0
- package/dist/src/common/helpers/get-timezone-offset.js +12 -0
- package/dist/src/common/helpers/get-timezone-offset.js.map +1 -0
- package/dist/src/common/helpers/index.d.ts +8 -0
- package/dist/src/common/helpers/index.js +25 -0
- package/dist/src/common/helpers/index.js.map +1 -0
- package/dist/src/common/helpers/sanitize-string.d.ts +1 -0
- package/dist/src/common/helpers/sanitize-string.js +16 -0
- package/dist/src/common/helpers/sanitize-string.js.map +1 -0
- package/dist/src/common/logger/index.d.ts +1 -0
- package/dist/src/common/logger/index.js +18 -0
- package/dist/src/common/logger/index.js.map +1 -0
- package/dist/src/common/logger/pino.d.ts +12 -0
- package/dist/src/common/logger/pino.js +39 -0
- package/dist/src/common/logger/pino.js.map +1 -0
- package/dist/src/common/repositories/index.d.ts +2 -0
- package/dist/src/common/repositories/index.js +19 -0
- package/dist/src/common/repositories/index.js.map +1 -0
- package/dist/src/common/repositories/mongo-db.client.d.ts +11 -0
- package/dist/src/common/repositories/mongo-db.client.js +59 -0
- package/dist/src/common/repositories/mongo-db.client.js.map +1 -0
- package/dist/src/common/repositories/mongo-db.repository.d.ts +87 -0
- package/dist/src/common/repositories/mongo-db.repository.js +210 -0
- package/dist/src/common/repositories/mongo-db.repository.js.map +1 -0
- package/dist/src/common/utils/secret-manager.d.ts +15 -0
- package/dist/src/common/utils/secret-manager.js +77 -0
- package/dist/src/common/utils/secret-manager.js.map +1 -0
- package/dist/src/index.d.ts +3 -0
- package/dist/src/index.js +10 -0
- package/dist/src/index.js.map +1 -0
- package/dist/src/services/agent/core/agent-loop.d.ts +38 -0
- package/dist/src/services/agent/core/agent-loop.js +7 -0
- package/dist/src/services/agent/core/agent-loop.js.map +1 -0
- package/dist/src/services/agent/core/agent-state.d.ts +42 -0
- package/dist/src/services/agent/core/agent-state.js +72 -0
- package/dist/src/services/agent/core/agent-state.js.map +1 -0
- package/dist/src/services/agent/core/agent.d.ts +70 -0
- package/dist/src/services/agent/core/agent.js +351 -0
- package/dist/src/services/agent/core/agent.js.map +1 -0
- package/dist/src/services/agent/core/index.d.ts +3 -0
- package/dist/src/services/agent/core/index.js +20 -0
- package/dist/src/services/agent/core/index.js.map +1 -0
- package/dist/src/services/agent/loops/index.d.ts +1 -0
- package/dist/src/services/agent/loops/index.js +18 -0
- package/dist/src/services/agent/loops/index.js.map +1 -0
- package/dist/src/services/agent/loops/plan-execute/index.d.ts +1 -0
- package/dist/src/services/agent/loops/plan-execute/index.js +18 -0
- package/dist/src/services/agent/loops/plan-execute/index.js.map +1 -0
- package/dist/src/services/agent/loops/plan-execute/plan-execute-loop.d.ts +27 -0
- package/dist/src/services/agent/loops/plan-execute/plan-execute-loop.js +228 -0
- package/dist/src/services/agent/loops/plan-execute/plan-execute-loop.js.map +1 -0
- package/dist/src/services/agent/loops/shared/skills/action-planner.d.ts +35 -0
- package/dist/src/services/agent/loops/shared/skills/action-planner.js +44 -0
- package/dist/src/services/agent/loops/shared/skills/action-planner.js.map +1 -0
- package/dist/src/services/agent/loops/shared/skills/confirmation-gate.d.ts +9 -0
- package/dist/src/services/agent/loops/shared/skills/confirmation-gate.js +30 -0
- package/dist/src/services/agent/loops/shared/skills/confirmation-gate.js.map +1 -0
- package/dist/src/services/agent/loops/shared/skills/fast-responder.d.ts +9 -0
- package/dist/src/services/agent/loops/shared/skills/fast-responder.js +46 -0
- package/dist/src/services/agent/loops/shared/skills/fast-responder.js.map +1 -0
- package/dist/src/services/agent/loops/shared/skills/final-responder.d.ts +7 -0
- package/dist/src/services/agent/loops/shared/skills/final-responder.js +34 -0
- package/dist/src/services/agent/loops/shared/skills/final-responder.js.map +1 -0
- package/dist/src/services/agent/loops/shared/skills/index.d.ts +6 -0
- package/dist/src/services/agent/loops/shared/skills/index.js +23 -0
- package/dist/src/services/agent/loops/shared/skills/index.js.map +1 -0
- package/dist/src/services/agent/loops/shared/skills/state-observer.d.ts +10 -0
- package/dist/src/services/agent/loops/shared/skills/state-observer.js +34 -0
- package/dist/src/services/agent/loops/shared/skills/state-observer.js.map +1 -0
- package/dist/src/services/agent/loops/shared/skills/strategy-engine.d.ts +15 -0
- package/dist/src/services/agent/loops/shared/skills/strategy-engine.js +37 -0
- package/dist/src/services/agent/loops/shared/skills/strategy-engine.js.map +1 -0
- package/dist/src/services/agent/modules/chats/entities/agent-action.entity.d.ts +58 -0
- package/dist/src/services/agent/modules/chats/entities/agent-action.entity.js +117 -0
- package/dist/src/services/agent/modules/chats/entities/agent-action.entity.js.map +1 -0
- package/dist/src/services/agent/modules/chats/entities/agent-task.entity.d.ts +59 -0
- package/dist/src/services/agent/modules/chats/entities/agent-task.entity.js +200 -0
- package/dist/src/services/agent/modules/chats/entities/agent-task.entity.js.map +1 -0
- package/dist/src/services/agent/modules/chats/entities/chat-context.entity.d.ts +39 -0
- package/dist/src/services/agent/modules/chats/entities/chat-context.entity.js +46 -0
- package/dist/src/services/agent/modules/chats/entities/chat-context.entity.js.map +1 -0
- package/dist/src/services/agent/modules/chats/entities/chat-message.entity.d.ts +16 -0
- package/dist/src/services/agent/modules/chats/entities/chat-message.entity.js +34 -0
- package/dist/src/services/agent/modules/chats/entities/chat-message.entity.js.map +1 -0
- package/dist/src/services/agent/modules/chats/entities/chat-settings.entity.d.ts +17 -0
- package/dist/src/services/agent/modules/chats/entities/chat-settings.entity.js +36 -0
- package/dist/src/services/agent/modules/chats/entities/chat-settings.entity.js.map +1 -0
- package/dist/src/services/agent/modules/chats/entities/chat.entity.d.ts +50 -0
- package/dist/src/services/agent/modules/chats/entities/chat.entity.js +135 -0
- package/dist/src/services/agent/modules/chats/entities/chat.entity.js.map +1 -0
- package/dist/src/services/agent/modules/chats/entities/index.d.ts +1 -0
- package/dist/src/services/agent/modules/chats/entities/index.js +18 -0
- package/dist/src/services/agent/modules/chats/entities/index.js.map +1 -0
- package/dist/src/services/agent/modules/chats/lambdas/create-chat/create-chat.use-case.d.ts +14 -0
- package/dist/src/services/agent/modules/chats/lambdas/create-chat/create-chat.use-case.js +37 -0
- package/dist/src/services/agent/modules/chats/lambdas/create-chat/create-chat.use-case.js.map +1 -0
- package/dist/src/services/agent/modules/chats/lambdas/create-chat/index.d.ts +1 -0
- package/dist/src/services/agent/modules/chats/lambdas/create-chat/index.js +18 -0
- package/dist/src/services/agent/modules/chats/lambdas/create-chat/index.js.map +1 -0
- package/dist/src/services/agent/modules/chats/lambdas/delete-chat/delete-chat.use-case.d.ts +15 -0
- package/dist/src/services/agent/modules/chats/lambdas/delete-chat/delete-chat.use-case.js +44 -0
- package/dist/src/services/agent/modules/chats/lambdas/delete-chat/delete-chat.use-case.js.map +1 -0
- package/dist/src/services/agent/modules/chats/lambdas/delete-chat/index.d.ts +1 -0
- package/dist/src/services/agent/modules/chats/lambdas/delete-chat/index.js +18 -0
- package/dist/src/services/agent/modules/chats/lambdas/delete-chat/index.js.map +1 -0
- package/dist/src/services/agent/modules/chats/lambdas/get-chat-by-id/get-chat-by-id.use-case.d.ts +14 -0
- package/dist/src/services/agent/modules/chats/lambdas/get-chat-by-id/get-chat-by-id.use-case.js +33 -0
- package/dist/src/services/agent/modules/chats/lambdas/get-chat-by-id/get-chat-by-id.use-case.js.map +1 -0
- package/dist/src/services/agent/modules/chats/lambdas/get-chat-by-id/index.d.ts +1 -0
- package/dist/src/services/agent/modules/chats/lambdas/get-chat-by-id/index.js +18 -0
- package/dist/src/services/agent/modules/chats/lambdas/get-chat-by-id/index.js.map +1 -0
- package/dist/src/services/agent/modules/chats/lambdas/interrupt-execution/index.d.ts +1 -0
- package/dist/src/services/agent/modules/chats/lambdas/interrupt-execution/index.js +18 -0
- package/dist/src/services/agent/modules/chats/lambdas/interrupt-execution/index.js.map +1 -0
- package/dist/src/services/agent/modules/chats/lambdas/interrupt-execution/interrupt-execution.use-case.d.ts +14 -0
- package/dist/src/services/agent/modules/chats/lambdas/interrupt-execution/interrupt-execution.use-case.js +45 -0
- package/dist/src/services/agent/modules/chats/lambdas/interrupt-execution/interrupt-execution.use-case.js.map +1 -0
- package/dist/src/services/agent/modules/chats/lambdas/list-chats-by-props/index.d.ts +1 -0
- package/dist/src/services/agent/modules/chats/lambdas/list-chats-by-props/index.js +18 -0
- package/dist/src/services/agent/modules/chats/lambdas/list-chats-by-props/index.js.map +1 -0
- package/dist/src/services/agent/modules/chats/lambdas/list-chats-by-props/list-chats-by-props.use-case.d.ts +16 -0
- package/dist/src/services/agent/modules/chats/lambdas/list-chats-by-props/list-chats-by-props.use-case.js +33 -0
- package/dist/src/services/agent/modules/chats/lambdas/list-chats-by-props/list-chats-by-props.use-case.js.map +1 -0
- package/dist/src/services/agent/modules/chats/lambdas/list-chats-by-user/index.d.ts +1 -0
- package/dist/src/services/agent/modules/chats/lambdas/list-chats-by-user/index.js +18 -0
- package/dist/src/services/agent/modules/chats/lambdas/list-chats-by-user/index.js.map +1 -0
- package/dist/src/services/agent/modules/chats/lambdas/list-chats-by-user/list-chats-by-user.use-case.d.ts +16 -0
- package/dist/src/services/agent/modules/chats/lambdas/list-chats-by-user/list-chats-by-user.use-case.js +40 -0
- package/dist/src/services/agent/modules/chats/lambdas/list-chats-by-user/list-chats-by-user.use-case.js.map +1 -0
- package/dist/src/services/agent/modules/chats/lambdas/update-chat/index.d.ts +1 -0
- package/dist/src/services/agent/modules/chats/lambdas/update-chat/index.js +18 -0
- package/dist/src/services/agent/modules/chats/lambdas/update-chat/index.js.map +1 -0
- package/dist/src/services/agent/modules/chats/lambdas/update-chat/update-chat.use-case.d.ts +15 -0
- package/dist/src/services/agent/modules/chats/lambdas/update-chat/update-chat.use-case.js +45 -0
- package/dist/src/services/agent/modules/chats/lambdas/update-chat/update-chat.use-case.js.map +1 -0
- package/dist/src/services/agent/modules/chats/repositories/chat.repository.d.ts +10 -0
- package/dist/src/services/agent/modules/chats/repositories/chat.repository.js +43 -0
- package/dist/src/services/agent/modules/chats/repositories/chat.repository.js.map +1 -0
- package/dist/src/services/agent/modules/chats/repositories/index.d.ts +1 -0
- package/dist/src/services/agent/modules/chats/repositories/index.js +18 -0
- package/dist/src/services/agent/modules/chats/repositories/index.js.map +1 -0
- package/dist/src/services/agent/modules/llmcalls/entities/index.d.ts +1 -0
- package/dist/src/services/agent/modules/llmcalls/entities/index.js +18 -0
- package/dist/src/services/agent/modules/llmcalls/entities/index.js.map +1 -0
- package/dist/src/services/agent/modules/llmcalls/entities/llmcall.entity.d.ts +23 -0
- package/dist/src/services/agent/modules/llmcalls/entities/llmcall.entity.js +42 -0
- package/dist/src/services/agent/modules/llmcalls/entities/llmcall.entity.js.map +1 -0
- package/dist/src/services/agent/modules/llmcalls/lambdas/create-llmcall/create-llmcall.use-case.d.ts +14 -0
- package/dist/src/services/agent/modules/llmcalls/lambdas/create-llmcall/create-llmcall.use-case.js +37 -0
- package/dist/src/services/agent/modules/llmcalls/lambdas/create-llmcall/create-llmcall.use-case.js.map +1 -0
- package/dist/src/services/agent/modules/llmcalls/lambdas/create-llmcall/index.d.ts +1 -0
- package/dist/src/services/agent/modules/llmcalls/lambdas/create-llmcall/index.js +18 -0
- package/dist/src/services/agent/modules/llmcalls/lambdas/create-llmcall/index.js.map +1 -0
- package/dist/src/services/agent/modules/llmcalls/lambdas/delete-llmcall/delete-llmcall.use-case.d.ts +15 -0
- package/dist/src/services/agent/modules/llmcalls/lambdas/delete-llmcall/delete-llmcall.use-case.js +44 -0
- package/dist/src/services/agent/modules/llmcalls/lambdas/delete-llmcall/delete-llmcall.use-case.js.map +1 -0
- package/dist/src/services/agent/modules/llmcalls/lambdas/delete-llmcall/index.d.ts +1 -0
- package/dist/src/services/agent/modules/llmcalls/lambdas/delete-llmcall/index.js +18 -0
- package/dist/src/services/agent/modules/llmcalls/lambdas/delete-llmcall/index.js.map +1 -0
- package/dist/src/services/agent/modules/llmcalls/lambdas/get-llm-usage/get-llm-usage.use-case.d.ts +21 -0
- package/dist/src/services/agent/modules/llmcalls/lambdas/get-llm-usage/get-llm-usage.use-case.js +104 -0
- package/dist/src/services/agent/modules/llmcalls/lambdas/get-llm-usage/get-llm-usage.use-case.js.map +1 -0
- package/dist/src/services/agent/modules/llmcalls/lambdas/get-llm-usage/index.d.ts +1 -0
- package/dist/src/services/agent/modules/llmcalls/lambdas/get-llm-usage/index.js +18 -0
- package/dist/src/services/agent/modules/llmcalls/lambdas/get-llm-usage/index.js.map +1 -0
- package/dist/src/services/agent/modules/llmcalls/lambdas/get-llmcall-by-id/get-llmcall-by-id.use-case.d.ts +14 -0
- package/dist/src/services/agent/modules/llmcalls/lambdas/get-llmcall-by-id/get-llmcall-by-id.use-case.js +33 -0
- package/dist/src/services/agent/modules/llmcalls/lambdas/get-llmcall-by-id/get-llmcall-by-id.use-case.js.map +1 -0
- package/dist/src/services/agent/modules/llmcalls/lambdas/get-llmcall-by-id/index.d.ts +1 -0
- package/dist/src/services/agent/modules/llmcalls/lambdas/get-llmcall-by-id/index.js +18 -0
- package/dist/src/services/agent/modules/llmcalls/lambdas/get-llmcall-by-id/index.js.map +1 -0
- package/dist/src/services/agent/modules/llmcalls/lambdas/list-llmcalls-by-props/index.d.ts +1 -0
- package/dist/src/services/agent/modules/llmcalls/lambdas/list-llmcalls-by-props/index.js +18 -0
- package/dist/src/services/agent/modules/llmcalls/lambdas/list-llmcalls-by-props/index.js.map +1 -0
- package/dist/src/services/agent/modules/llmcalls/lambdas/list-llmcalls-by-props/list-llmcalls-by-props.use-case.d.ts +16 -0
- package/dist/src/services/agent/modules/llmcalls/lambdas/list-llmcalls-by-props/list-llmcalls-by-props.use-case.js +33 -0
- package/dist/src/services/agent/modules/llmcalls/lambdas/list-llmcalls-by-props/list-llmcalls-by-props.use-case.js.map +1 -0
- package/dist/src/services/agent/modules/llmcalls/lambdas/update-llmcall/index.d.ts +1 -0
- package/dist/src/services/agent/modules/llmcalls/lambdas/update-llmcall/index.js +18 -0
- package/dist/src/services/agent/modules/llmcalls/lambdas/update-llmcall/index.js.map +1 -0
- package/dist/src/services/agent/modules/llmcalls/lambdas/update-llmcall/update-llmcall.use-case.d.ts +15 -0
- package/dist/src/services/agent/modules/llmcalls/lambdas/update-llmcall/update-llmcall.use-case.js +43 -0
- package/dist/src/services/agent/modules/llmcalls/lambdas/update-llmcall/update-llmcall.use-case.js.map +1 -0
- package/dist/src/services/agent/modules/llmcalls/repositories/index.d.ts +1 -0
- package/dist/src/services/agent/modules/llmcalls/repositories/index.js +18 -0
- package/dist/src/services/agent/modules/llmcalls/repositories/index.js.map +1 -0
- package/dist/src/services/agent/modules/llmcalls/repositories/llmcall.repository.d.ts +10 -0
- package/dist/src/services/agent/modules/llmcalls/repositories/llmcall.repository.js +43 -0
- package/dist/src/services/agent/modules/llmcalls/repositories/llmcall.repository.js.map +1 -0
- package/dist/src/services/agent/modules/mcp-servers/entities/index.d.ts +1 -0
- package/dist/src/services/agent/modules/mcp-servers/entities/index.js +18 -0
- package/dist/src/services/agent/modules/mcp-servers/entities/index.js.map +1 -0
- package/dist/src/services/agent/modules/mcp-servers/entities/mcpserver.entity.d.ts +23 -0
- package/dist/src/services/agent/modules/mcp-servers/entities/mcpserver.entity.js +53 -0
- package/dist/src/services/agent/modules/mcp-servers/entities/mcpserver.entity.js.map +1 -0
- package/dist/src/services/agent/modules/mcp-servers/lambdas/create-mcpserver/create-mcpserver.use-case.d.ts +14 -0
- package/dist/src/services/agent/modules/mcp-servers/lambdas/create-mcpserver/create-mcpserver.use-case.js +37 -0
- package/dist/src/services/agent/modules/mcp-servers/lambdas/create-mcpserver/create-mcpserver.use-case.js.map +1 -0
- package/dist/src/services/agent/modules/mcp-servers/lambdas/create-mcpserver/index.d.ts +1 -0
- package/dist/src/services/agent/modules/mcp-servers/lambdas/create-mcpserver/index.js +18 -0
- package/dist/src/services/agent/modules/mcp-servers/lambdas/create-mcpserver/index.js.map +1 -0
- package/dist/src/services/agent/modules/mcp-servers/lambdas/delete-mcpserver/delete-mcpserver.use-case.d.ts +15 -0
- package/dist/src/services/agent/modules/mcp-servers/lambdas/delete-mcpserver/delete-mcpserver.use-case.js +44 -0
- package/dist/src/services/agent/modules/mcp-servers/lambdas/delete-mcpserver/delete-mcpserver.use-case.js.map +1 -0
- package/dist/src/services/agent/modules/mcp-servers/lambdas/delete-mcpserver/index.d.ts +1 -0
- package/dist/src/services/agent/modules/mcp-servers/lambdas/delete-mcpserver/index.js +18 -0
- package/dist/src/services/agent/modules/mcp-servers/lambdas/delete-mcpserver/index.js.map +1 -0
- package/dist/src/services/agent/modules/mcp-servers/lambdas/get-mcpserver-by-id/get-mcpserver-by-id.use-case.d.ts +14 -0
- package/dist/src/services/agent/modules/mcp-servers/lambdas/get-mcpserver-by-id/get-mcpserver-by-id.use-case.js +33 -0
- package/dist/src/services/agent/modules/mcp-servers/lambdas/get-mcpserver-by-id/get-mcpserver-by-id.use-case.js.map +1 -0
- package/dist/src/services/agent/modules/mcp-servers/lambdas/get-mcpserver-by-id/index.d.ts +1 -0
- package/dist/src/services/agent/modules/mcp-servers/lambdas/get-mcpserver-by-id/index.js +18 -0
- package/dist/src/services/agent/modules/mcp-servers/lambdas/get-mcpserver-by-id/index.js.map +1 -0
- package/dist/src/services/agent/modules/mcp-servers/lambdas/list-mcpservers-by-user/index.d.ts +1 -0
- package/dist/src/services/agent/modules/mcp-servers/lambdas/list-mcpservers-by-user/index.js +18 -0
- package/dist/src/services/agent/modules/mcp-servers/lambdas/list-mcpservers-by-user/index.js.map +1 -0
- package/dist/src/services/agent/modules/mcp-servers/lambdas/list-mcpservers-by-user/list-mcpservers-by-user.use-case.d.ts +16 -0
- package/dist/src/services/agent/modules/mcp-servers/lambdas/list-mcpservers-by-user/list-mcpservers-by-user.use-case.js +40 -0
- package/dist/src/services/agent/modules/mcp-servers/lambdas/list-mcpservers-by-user/list-mcpservers-by-user.use-case.js.map +1 -0
- package/dist/src/services/agent/modules/mcp-servers/lambdas/update-mcpserver/index.d.ts +1 -0
- package/dist/src/services/agent/modules/mcp-servers/lambdas/update-mcpserver/index.js +18 -0
- package/dist/src/services/agent/modules/mcp-servers/lambdas/update-mcpserver/index.js.map +1 -0
- package/dist/src/services/agent/modules/mcp-servers/lambdas/update-mcpserver/update-mcpserver.use-case.d.ts +15 -0
- package/dist/src/services/agent/modules/mcp-servers/lambdas/update-mcpserver/update-mcpserver.use-case.js +42 -0
- package/dist/src/services/agent/modules/mcp-servers/lambdas/update-mcpserver/update-mcpserver.use-case.js.map +1 -0
- package/dist/src/services/agent/modules/mcp-servers/repositories/index.d.ts +1 -0
- package/dist/src/services/agent/modules/mcp-servers/repositories/index.js +18 -0
- package/dist/src/services/agent/modules/mcp-servers/repositories/index.js.map +1 -0
- package/dist/src/services/agent/modules/mcp-servers/repositories/mcpserver.repository.d.ts +10 -0
- package/dist/src/services/agent/modules/mcp-servers/repositories/mcpserver.repository.js +43 -0
- package/dist/src/services/agent/modules/mcp-servers/repositories/mcpserver.repository.js.map +1 -0
- package/dist/src/services/agent/skills/shared/shared-rules.d.ts +4 -0
- package/dist/src/services/agent/skills/shared/shared-rules.js +8 -0
- package/dist/src/services/agent/skills/shared/shared-rules.js.map +1 -0
- package/dist/src/services/agent/skills/skill-runner.d.ts +31 -0
- package/dist/src/services/agent/skills/skill-runner.js +105 -0
- package/dist/src/services/agent/skills/skill-runner.js.map +1 -0
- package/dist/src/services/agent/skills/skill.d.ts +33 -0
- package/dist/src/services/agent/skills/skill.js +110 -0
- package/dist/src/services/agent/skills/skill.js.map +1 -0
- package/dist/src/services/agent/tools/core/call-ai/call-ai.skill.d.ts +6 -0
- package/dist/src/services/agent/tools/core/call-ai/call-ai.skill.js +31 -0
- package/dist/src/services/agent/tools/core/call-ai/call-ai.skill.js.map +1 -0
- package/dist/src/services/agent/tools/core/call-ai/call-ai.tool.d.ts +2 -0
- package/dist/src/services/agent/tools/core/call-ai/call-ai.tool.js +47 -0
- package/dist/src/services/agent/tools/core/call-ai/call-ai.tool.js.map +1 -0
- package/dist/src/services/agent/tools/core/call-ai/index.d.ts +1 -0
- package/dist/src/services/agent/tools/core/call-ai/index.js +18 -0
- package/dist/src/services/agent/tools/core/call-ai/index.js.map +1 -0
- package/dist/src/services/agent/tools/core/index.d.ts +2 -0
- package/dist/src/services/agent/tools/core/index.js +19 -0
- package/dist/src/services/agent/tools/core/index.js.map +1 -0
- package/dist/src/services/agent/tools/core/web-search/index.d.ts +1 -0
- package/dist/src/services/agent/tools/core/web-search/index.js +18 -0
- package/dist/src/services/agent/tools/core/web-search/index.js.map +1 -0
- package/dist/src/services/agent/tools/core/web-search/web-search.tool.d.ts +2 -0
- package/dist/src/services/agent/tools/core/web-search/web-search.tool.js +29 -0
- package/dist/src/services/agent/tools/core/web-search/web-search.tool.js.map +1 -0
- package/dist/src/services/agent/tools/tool.d.ts +40 -0
- package/dist/src/services/agent/tools/tool.js +35 -0
- package/dist/src/services/agent/tools/tool.js.map +1 -0
- package/dist/src/services/agent/utils/rank-tools-by-keywords.d.ts +12 -0
- package/dist/src/services/agent/utils/rank-tools-by-keywords.js +43 -0
- package/dist/src/services/agent/utils/rank-tools-by-keywords.js.map +1 -0
- package/dist/src/services/app/core/app.d.ts +14 -0
- package/dist/src/services/app/core/app.js +38 -0
- package/dist/src/services/app/core/app.js.map +1 -0
- package/dist/src/services/app/core/current-session.d.ts +129 -0
- package/dist/src/services/app/core/current-session.js +95 -0
- package/dist/src/services/app/core/current-session.js.map +1 -0
- package/dist/src/services/app/core/current-user.d.ts +16 -0
- package/dist/src/services/app/core/current-user.js +61 -0
- package/dist/src/services/app/core/current-user.js.map +1 -0
- package/dist/src/services/app/core/index.d.ts +3 -0
- package/dist/src/services/app/core/index.js +20 -0
- package/dist/src/services/app/core/index.js.map +1 -0
- package/dist/src/services/app/modules/authentication/lambdas/login/index.d.ts +1 -0
- package/dist/src/services/app/modules/authentication/lambdas/login/index.js +18 -0
- package/dist/src/services/app/modules/authentication/lambdas/login/index.js.map +1 -0
- package/dist/src/services/app/modules/authentication/lambdas/login/login.use-case.d.ts +21 -0
- package/dist/src/services/app/modules/authentication/lambdas/login/login.use-case.js +64 -0
- package/dist/src/services/app/modules/authentication/lambdas/login/login.use-case.js.map +1 -0
- package/dist/src/services/app/modules/users/entities/index.d.ts +1 -0
- package/dist/src/services/app/modules/users/entities/index.js +18 -0
- package/dist/src/services/app/modules/users/entities/index.js.map +1 -0
- package/dist/src/services/app/modules/users/entities/user-acquisition.d.ts +12 -0
- package/dist/src/services/app/modules/users/entities/user-acquisition.js +34 -0
- package/dist/src/services/app/modules/users/entities/user-acquisition.js.map +1 -0
- package/dist/src/services/app/modules/users/entities/user-country.d.ts +11 -0
- package/dist/src/services/app/modules/users/entities/user-country.js +22 -0
- package/dist/src/services/app/modules/users/entities/user-country.js.map +1 -0
- package/dist/src/services/app/modules/users/entities/user-currency.d.ts +13 -0
- package/dist/src/services/app/modules/users/entities/user-currency.js +22 -0
- package/dist/src/services/app/modules/users/entities/user-currency.js.map +1 -0
- package/dist/src/services/app/modules/users/entities/user-email.value-object.d.ts +6 -0
- package/dist/src/services/app/modules/users/entities/user-email.value-object.js +22 -0
- package/dist/src/services/app/modules/users/entities/user-email.value-object.js.map +1 -0
- package/dist/src/services/app/modules/users/entities/user-language.d.ts +11 -0
- package/dist/src/services/app/modules/users/entities/user-language.js +22 -0
- package/dist/src/services/app/modules/users/entities/user-language.js.map +1 -0
- package/dist/src/services/app/modules/users/entities/user-marketing.d.ts +9 -0
- package/dist/src/services/app/modules/users/entities/user-marketing.js +32 -0
- package/dist/src/services/app/modules/users/entities/user-marketing.js.map +1 -0
- package/dist/src/services/app/modules/users/entities/user-notification-preferences.d.ts +11 -0
- package/dist/src/services/app/modules/users/entities/user-notification-preferences.js +19 -0
- package/dist/src/services/app/modules/users/entities/user-notification-preferences.js.map +1 -0
- package/dist/src/services/app/modules/users/entities/user-password.value-object.d.ts +8 -0
- package/dist/src/services/app/modules/users/entities/user-password.value-object.js +28 -0
- package/dist/src/services/app/modules/users/entities/user-password.value-object.js.map +1 -0
- package/dist/src/services/app/modules/users/entities/user-permissions.d.ts +21 -0
- package/dist/src/services/app/modules/users/entities/user-permissions.js +37 -0
- package/dist/src/services/app/modules/users/entities/user-permissions.js.map +1 -0
- package/dist/src/services/app/modules/users/entities/user-preferences.d.ts +25 -0
- package/dist/src/services/app/modules/users/entities/user-preferences.js +40 -0
- package/dist/src/services/app/modules/users/entities/user-preferences.js.map +1 -0
- package/dist/src/services/app/modules/users/entities/user-report-preferences.d.ts +16 -0
- package/dist/src/services/app/modules/users/entities/user-report-preferences.js +29 -0
- package/dist/src/services/app/modules/users/entities/user-report-preferences.js.map +1 -0
- package/dist/src/services/app/modules/users/entities/user-report-schedule.d.ts +11 -0
- package/dist/src/services/app/modules/users/entities/user-report-schedule.js +19 -0
- package/dist/src/services/app/modules/users/entities/user-report-schedule.js.map +1 -0
- package/dist/src/services/app/modules/users/entities/user-timezone.d.ts +11 -0
- package/dist/src/services/app/modules/users/entities/user-timezone.js +22 -0
- package/dist/src/services/app/modules/users/entities/user-timezone.js.map +1 -0
- package/dist/src/services/app/modules/users/entities/user.entity.d.ts +41 -0
- package/dist/src/services/app/modules/users/entities/user.entity.js +100 -0
- package/dist/src/services/app/modules/users/entities/user.entity.js.map +1 -0
- package/dist/src/services/app/modules/users/lambdas/create-user/create-user.use-case.d.ts +14 -0
- package/dist/src/services/app/modules/users/lambdas/create-user/create-user.use-case.js +41 -0
- package/dist/src/services/app/modules/users/lambdas/create-user/create-user.use-case.js.map +1 -0
- package/dist/src/services/app/modules/users/lambdas/create-user/index.d.ts +1 -0
- package/dist/src/services/app/modules/users/lambdas/create-user/index.js +18 -0
- package/dist/src/services/app/modules/users/lambdas/create-user/index.js.map +1 -0
- package/dist/src/services/app/modules/users/lambdas/delete-user/delete-user.use-case.d.ts +16 -0
- package/dist/src/services/app/modules/users/lambdas/delete-user/delete-user.use-case.js +44 -0
- package/dist/src/services/app/modules/users/lambdas/delete-user/delete-user.use-case.js.map +1 -0
- package/dist/src/services/app/modules/users/lambdas/delete-user/index.d.ts +1 -0
- package/dist/src/services/app/modules/users/lambdas/delete-user/index.js +18 -0
- package/dist/src/services/app/modules/users/lambdas/delete-user/index.js.map +1 -0
- package/dist/src/services/app/modules/users/lambdas/get-user-by-id/get-user-by-id.use-case.d.ts +14 -0
- package/dist/src/services/app/modules/users/lambdas/get-user-by-id/get-user-by-id.use-case.js +33 -0
- package/dist/src/services/app/modules/users/lambdas/get-user-by-id/get-user-by-id.use-case.js.map +1 -0
- package/dist/src/services/app/modules/users/lambdas/get-user-by-id/index.d.ts +1 -0
- package/dist/src/services/app/modules/users/lambdas/get-user-by-id/index.js +18 -0
- package/dist/src/services/app/modules/users/lambdas/get-user-by-id/index.js.map +1 -0
- package/dist/src/services/app/modules/users/lambdas/list-users-by-props/index.d.ts +1 -0
- package/dist/src/services/app/modules/users/lambdas/list-users-by-props/index.js +18 -0
- package/dist/src/services/app/modules/users/lambdas/list-users-by-props/index.js.map +1 -0
- package/dist/src/services/app/modules/users/lambdas/list-users-by-props/list-users-by-props.use-case.d.ts +16 -0
- package/dist/src/services/app/modules/users/lambdas/list-users-by-props/list-users-by-props.use-case.js +33 -0
- package/dist/src/services/app/modules/users/lambdas/list-users-by-props/list-users-by-props.use-case.js.map +1 -0
- package/dist/src/services/app/modules/users/lambdas/update-user/index.d.ts +1 -0
- package/dist/src/services/app/modules/users/lambdas/update-user/index.js +18 -0
- package/dist/src/services/app/modules/users/lambdas/update-user/index.js.map +1 -0
- package/dist/src/services/app/modules/users/lambdas/update-user/update-user.use-case.d.ts +15 -0
- package/dist/src/services/app/modules/users/lambdas/update-user/update-user.use-case.js +43 -0
- package/dist/src/services/app/modules/users/lambdas/update-user/update-user.use-case.js.map +1 -0
- package/dist/src/services/app/modules/users/repositories/index.d.ts +1 -0
- package/dist/src/services/app/modules/users/repositories/index.js +18 -0
- package/dist/src/services/app/modules/users/repositories/index.js.map +1 -0
- package/dist/src/services/app/modules/users/repositories/user.repository.d.ts +12 -0
- package/dist/src/services/app/modules/users/repositories/user.repository.js +60 -0
- package/dist/src/services/app/modules/users/repositories/user.repository.js.map +1 -0
- package/package.json +71 -0
|
@@ -0,0 +1,228 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.PlanExecuteLoop = void 0;
|
|
4
|
+
const core_1 = require("../../core/index.js");
|
|
5
|
+
const skills_1 = require("../shared/skills");
|
|
6
|
+
const MAX_STEP_RETRIES = 2;
|
|
7
|
+
class PlanExecuteLoop extends core_1.AgentLoop {
|
|
8
|
+
get initialNode() {
|
|
9
|
+
return this.nodes.fast_responder;
|
|
10
|
+
}
|
|
11
|
+
get nodes() {
|
|
12
|
+
return {
|
|
13
|
+
fast_responder: this.fastResponder,
|
|
14
|
+
strategy_engine: this.strategyEngine,
|
|
15
|
+
action_planner: this.actionPlanner,
|
|
16
|
+
execution_loop: this.executionLoop,
|
|
17
|
+
state_observer: this.executionObserver,
|
|
18
|
+
final_responder: this.finalResponder,
|
|
19
|
+
confirmation_gate: this.confirmationGate,
|
|
20
|
+
};
|
|
21
|
+
}
|
|
22
|
+
get name() {
|
|
23
|
+
return 'plan_execute';
|
|
24
|
+
}
|
|
25
|
+
get version() {
|
|
26
|
+
return '1.0.0';
|
|
27
|
+
}
|
|
28
|
+
get author() {
|
|
29
|
+
return {
|
|
30
|
+
name: 'Jose Barcos',
|
|
31
|
+
email: 'jose@openloops.xyz',
|
|
32
|
+
website: 'https://openloops.xyz/jose'
|
|
33
|
+
};
|
|
34
|
+
}
|
|
35
|
+
async fastResponder(ctx) {
|
|
36
|
+
ctx.chat.state?.setCurrentActivity('Analyzing requirement...');
|
|
37
|
+
const chat_history = ctx.chat.lastHistoryMessages();
|
|
38
|
+
const result = await skills_1.fastResponder.run({
|
|
39
|
+
...ctx.skillParams,
|
|
40
|
+
contextInjection: {
|
|
41
|
+
...(chat_history?.length ? { chat_history } : {}),
|
|
42
|
+
},
|
|
43
|
+
});
|
|
44
|
+
ctx.chat.state?.setLanguage(result.detected_language);
|
|
45
|
+
if (!result.can_answer) {
|
|
46
|
+
ctx.setNextNode(this.nodes.strategy_engine);
|
|
47
|
+
}
|
|
48
|
+
else {
|
|
49
|
+
ctx.chat.state?.setStatus(core_1.AgentStatus.IDLE);
|
|
50
|
+
ctx.setNextNode(this.nodes.fast_responder);
|
|
51
|
+
ctx.reply(result.answer ?? '');
|
|
52
|
+
}
|
|
53
|
+
}
|
|
54
|
+
async strategyEngine(ctx) {
|
|
55
|
+
ctx.chat.state?.setCurrentActivity('Designing strategy...');
|
|
56
|
+
const lastCompletedTask = ctx.task ? undefined : ctx.chat.lastCompletedTask();
|
|
57
|
+
const chatHistory = ctx.chat.lastHistoryMessages();
|
|
58
|
+
const result = await skills_1.strategyEngine.run({
|
|
59
|
+
...ctx.skillParams,
|
|
60
|
+
contextInjection: {
|
|
61
|
+
user_goal: ctx.currentMessage,
|
|
62
|
+
...(chatHistory?.length ? { chat_history: chatHistory } : {}),
|
|
63
|
+
...(lastCompletedTask
|
|
64
|
+
? { last_completed_task: { goal: lastCompletedTask.goal, summary: lastCompletedTask.summary } }
|
|
65
|
+
: {}),
|
|
66
|
+
},
|
|
67
|
+
});
|
|
68
|
+
ctx.chat.state?.setLanguage(result.detected_language);
|
|
69
|
+
const task = result.is_continuation && lastCompletedTask
|
|
70
|
+
? ctx.chat.reopenTask(lastCompletedTask.id)
|
|
71
|
+
: ctx.chat.createTask(result.goal ?? ctx.currentMessage);
|
|
72
|
+
ctx.chat.context.addContext({
|
|
73
|
+
taskId: task.id,
|
|
74
|
+
meta: { name: 'strategy', type: 'artifact', shortDescription: 'High-level strategy for the active task' },
|
|
75
|
+
content: result,
|
|
76
|
+
});
|
|
77
|
+
ctx.setNextNode(this.nodes.action_planner);
|
|
78
|
+
}
|
|
79
|
+
async actionPlanner(ctx) {
|
|
80
|
+
ctx.chat.state?.setCurrentActivity('Creating action plan...');
|
|
81
|
+
const task = ctx.task;
|
|
82
|
+
const strategy = ctx.chat.context.lastContext({ taskId: task.id, name: 'strategy' })?.content;
|
|
83
|
+
const tools = ctx.searchTools(strategy?.tool_keywords ?? []);
|
|
84
|
+
const result = await skills_1.actionPlanner.run({
|
|
85
|
+
...ctx.skillParams,
|
|
86
|
+
contextInjection: {
|
|
87
|
+
active_task: {
|
|
88
|
+
user_goal: task.goal,
|
|
89
|
+
strategy: strategy?.hypothesis,
|
|
90
|
+
required_capabilities: strategy?.required_capabilities,
|
|
91
|
+
},
|
|
92
|
+
tools,
|
|
93
|
+
},
|
|
94
|
+
});
|
|
95
|
+
const enqueueSteps = (steps) => steps.map(step => task.addAction({
|
|
96
|
+
name: step.tool_name,
|
|
97
|
+
stepId: String(step.step_id),
|
|
98
|
+
args: step.args ?? step.arguments,
|
|
99
|
+
dependsOn: step.depends_on?.map(String),
|
|
100
|
+
author: 'action_planner',
|
|
101
|
+
}));
|
|
102
|
+
switch (result.plan_status) {
|
|
103
|
+
case 'MISSING_TOOLS':
|
|
104
|
+
ctx.chat.state?.setStatus(core_1.AgentStatus.AWAITING_USER_INPUT);
|
|
105
|
+
ctx.chat.failTask(task.id);
|
|
106
|
+
ctx.setNextNode(undefined);
|
|
107
|
+
ctx.reply(result.user_response);
|
|
108
|
+
break;
|
|
109
|
+
case 'NEEDS_CLARIFICATION':
|
|
110
|
+
ctx.chat.state?.setStatus(core_1.AgentStatus.AWAITING_USER_INPUT);
|
|
111
|
+
ctx.setNextNode(undefined);
|
|
112
|
+
ctx.reply(result.clarification_prompt);
|
|
113
|
+
break;
|
|
114
|
+
case 'NEEDS_CONFIRMATION': {
|
|
115
|
+
enqueueSteps(result.steps);
|
|
116
|
+
const actionsList = (result.confirmation_details?.actions ?? [])
|
|
117
|
+
.map(action => `- ${action.description}`)
|
|
118
|
+
.join('\n');
|
|
119
|
+
ctx.chat.state?.setStatus(core_1.AgentStatus.AWAITING_USER_CONFIRMATION);
|
|
120
|
+
ctx.setNextNode(this.nodes.confirmation_gate);
|
|
121
|
+
ctx.reply([
|
|
122
|
+
result.clarification_prompt,
|
|
123
|
+
result.confirmation_details?.impact_summary,
|
|
124
|
+
actionsList,
|
|
125
|
+
result.confirmation_details?.confirm_label,
|
|
126
|
+
].filter(Boolean).join('\n\n'));
|
|
127
|
+
break;
|
|
128
|
+
}
|
|
129
|
+
case 'SUCCESS':
|
|
130
|
+
enqueueSteps(result.steps);
|
|
131
|
+
ctx.setNextNode(this.nodes.execution_loop);
|
|
132
|
+
break;
|
|
133
|
+
}
|
|
134
|
+
}
|
|
135
|
+
async executionLoop(ctx) {
|
|
136
|
+
const task = ctx.task;
|
|
137
|
+
const [next] = task.readyActions;
|
|
138
|
+
if (!next) {
|
|
139
|
+
ctx.setNextNode(this.nodes.final_responder);
|
|
140
|
+
return;
|
|
141
|
+
}
|
|
142
|
+
ctx.chat.state?.setCurrentActivity(`Running ${next.name}...`);
|
|
143
|
+
const tool = ctx.tools.find(t => t.name === next.name);
|
|
144
|
+
const executed = await task.runReadyAction(next.id, tool, ctx.chat.context, ctx.baseParams);
|
|
145
|
+
if (executed.status === 'failed' && (executed.retries ?? 0) < MAX_STEP_RETRIES) {
|
|
146
|
+
executed.incrementRetries();
|
|
147
|
+
executed.resetForRetry();
|
|
148
|
+
ctx.setNextNode(this.nodes.execution_loop);
|
|
149
|
+
return;
|
|
150
|
+
}
|
|
151
|
+
ctx.setNextNode(this.nodes.state_observer);
|
|
152
|
+
}
|
|
153
|
+
async confirmationGate(ctx) {
|
|
154
|
+
const task = ctx.task;
|
|
155
|
+
const result = await skills_1.confirmationGate.run({
|
|
156
|
+
...ctx.skillParams,
|
|
157
|
+
contextInjection: {
|
|
158
|
+
...(ctx.chat.lastAnswer ? { pending_confirmation: ctx.chat.lastAnswer } : {}),
|
|
159
|
+
},
|
|
160
|
+
});
|
|
161
|
+
switch (result.decision) {
|
|
162
|
+
case 'CONFIRMED':
|
|
163
|
+
ctx.chat.state?.setStatus(core_1.AgentStatus.PROCESSING);
|
|
164
|
+
ctx.setNextNode(this.nodes.execution_loop);
|
|
165
|
+
break;
|
|
166
|
+
case 'DECLINED':
|
|
167
|
+
ctx.chat.cancelTask(task.id);
|
|
168
|
+
ctx.chat.state?.setStatus(core_1.AgentStatus.IDLE);
|
|
169
|
+
ctx.setNextNode(this.nodes.fast_responder);
|
|
170
|
+
ctx.reply(result.acknowledgement);
|
|
171
|
+
break;
|
|
172
|
+
case 'UNCLEAR':
|
|
173
|
+
default:
|
|
174
|
+
ctx.chat.state?.setStatus(core_1.AgentStatus.AWAITING_USER_CONFIRMATION);
|
|
175
|
+
ctx.setNextNode(this.nodes.confirmation_gate);
|
|
176
|
+
ctx.reply(result.clarification_prompt);
|
|
177
|
+
break;
|
|
178
|
+
}
|
|
179
|
+
}
|
|
180
|
+
async executionObserver(ctx) {
|
|
181
|
+
const task = ctx.task;
|
|
182
|
+
const lastAction = task.lastExecutedAction;
|
|
183
|
+
const result = await skills_1.stateObserver.run({
|
|
184
|
+
...ctx.skillParams,
|
|
185
|
+
contextInjection: {
|
|
186
|
+
user_intent: task.goal,
|
|
187
|
+
executed_step: lastAction?.toJSON(),
|
|
188
|
+
remaining_steps: task.readyActions.map(a => a.toJSON()),
|
|
189
|
+
},
|
|
190
|
+
});
|
|
191
|
+
ctx.chat.state?.setCurrentActivity(result.reasoning);
|
|
192
|
+
switch (result.action) {
|
|
193
|
+
case 'REPLAN':
|
|
194
|
+
ctx.setNextNode(this.nodes.action_planner);
|
|
195
|
+
break;
|
|
196
|
+
case 'ASK_USER':
|
|
197
|
+
ctx.chat.state?.setStatus(core_1.AgentStatus.AWAITING_USER_INPUT);
|
|
198
|
+
ctx.setNextNode(undefined);
|
|
199
|
+
ctx.reply(result.user_prompt ?? '');
|
|
200
|
+
break;
|
|
201
|
+
case 'CONTINUE':
|
|
202
|
+
default: {
|
|
203
|
+
const stillPending = task.actions.some(a => a.status === 'pending');
|
|
204
|
+
ctx.setNextNode(stillPending ? this.nodes.execution_loop : this.nodes.final_responder);
|
|
205
|
+
break;
|
|
206
|
+
}
|
|
207
|
+
}
|
|
208
|
+
}
|
|
209
|
+
async finalResponder(ctx) {
|
|
210
|
+
ctx.chat.state?.setCurrentActivity('Generating final response...');
|
|
211
|
+
const task = ctx.task;
|
|
212
|
+
const executionResults = task.actions
|
|
213
|
+
.map(a => ({ tool_name: a.name, args: a.args, output: a.output, status: a.status }));
|
|
214
|
+
const result = await skills_1.finalResponder.run({
|
|
215
|
+
...ctx.skillParams,
|
|
216
|
+
contextInjection: {
|
|
217
|
+
user_goal: task.goal,
|
|
218
|
+
execution_results: executionResults,
|
|
219
|
+
},
|
|
220
|
+
});
|
|
221
|
+
ctx.reply(result.final_response ?? '');
|
|
222
|
+
ctx.chat.completeTask(task.id, result.reasoning);
|
|
223
|
+
ctx.chat.state?.setStatus(core_1.AgentStatus.IDLE);
|
|
224
|
+
ctx.setNextNode(this.nodes.fast_responder);
|
|
225
|
+
}
|
|
226
|
+
}
|
|
227
|
+
exports.PlanExecuteLoop = PlanExecuteLoop;
|
|
228
|
+
//# sourceMappingURL=plan-execute-loop.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"plan-execute-loop.js","sourceRoot":"","sources":["../../../../../../src/services/agent/loops/plan-execute/plan-execute-loop.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,35 @@
|
|
|
1
|
+
import { Skill } from '../../../skills/skill';
|
|
2
|
+
interface PlanStepOutput {
|
|
3
|
+
step_id: number;
|
|
4
|
+
tool_name: string;
|
|
5
|
+
arguments: Record<string, any>;
|
|
6
|
+
expected_outcome: string;
|
|
7
|
+
status: 'READY' | 'MISSING_PARAMS' | 'REQUIRES_CONFIRMATION' | 'COMPLETED' | 'FAILED';
|
|
8
|
+
is_destructive: boolean;
|
|
9
|
+
missing_fields: string[];
|
|
10
|
+
rationale: string;
|
|
11
|
+
depends_on_steps: number[];
|
|
12
|
+
output: Record<string, any>;
|
|
13
|
+
}
|
|
14
|
+
interface ConfirmationDetails {
|
|
15
|
+
actions: Array<{
|
|
16
|
+
step_id: number;
|
|
17
|
+
description: string;
|
|
18
|
+
}>;
|
|
19
|
+
impact_summary: string;
|
|
20
|
+
confirm_label: string;
|
|
21
|
+
}
|
|
22
|
+
type ResponseSchema = {
|
|
23
|
+
plan_status: 'SUCCESS' | 'MISSING_TOOLS' | 'NEEDS_CLARIFICATION' | 'NEEDS_CONFIRMATION';
|
|
24
|
+
current_step_index: number;
|
|
25
|
+
missing_tools_explanation: string;
|
|
26
|
+
user_response: string;
|
|
27
|
+
steps: PlanStepOutput[];
|
|
28
|
+
needs_clarification: boolean;
|
|
29
|
+
missing_entities: string[];
|
|
30
|
+
clarification_prompt: string;
|
|
31
|
+
confirmation_details: ConfirmationDetails | null;
|
|
32
|
+
reasoning: string;
|
|
33
|
+
};
|
|
34
|
+
export declare const actionPlanner: Skill<ResponseSchema>;
|
|
35
|
+
export {};
|
|
@@ -0,0 +1,44 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.actionPlanner = void 0;
|
|
4
|
+
const skill_1 = require("../../../skills/skill");
|
|
5
|
+
exports.actionPlanner = new skill_1.Skill({
|
|
6
|
+
name: 'action_planner',
|
|
7
|
+
version: '1.6.2',
|
|
8
|
+
description: 'Generates an ordered step-by-step tool execution plan based on IntentContext and candidate tools schema. Flags missing tools, missing required execution parameters, or steps requiring user confirmation for destructive actions.',
|
|
9
|
+
temperature: 0.1,
|
|
10
|
+
systemInstructions: {
|
|
11
|
+
instruction_set: {
|
|
12
|
+
goal: "Evaluate userIntent, extracted_entities, and candidate tools to output a structured execution plan. Detect missing capabilities, missing tool arguments, or destructive tool executions and ask for clarification or confirmation when necessary.",
|
|
13
|
+
role: "Action planning, tool mapping, argument mapping, and execution strategy agent",
|
|
14
|
+
logic_rules: [
|
|
15
|
+
"TOOL_EVALUATION: Analyze available tool schemas against userIntent and extracted_entities in IntentContext. Select only the necessary tools required to achieve the goal.",
|
|
16
|
+
"MISSING_TOOLS_CHECK: If no candidate tools fit the intent, or if essential actions cannot be mapped to any available tool: 1) Set 'plan_status' to 'MISSING_TOOLS', 2) Set 'current_step_index' to 0, 3) Provide a technical explanation in 'missing_tools_explanation' in English, 4) Generate a polite message in 'user_response' written in 'detected_language' explaining that no connected tools/integrations were found to complete the request and suggest checking their active integrations, 5) Set 'steps' to [], 6) Set 'needs_clarification' to false, 'missing_entities' to [], 'clarification_prompt' to '', and 'confirmation_details' to null.",
|
|
17
|
+
"STEP_PLANNING: If tools are available, sequence them logically in 'steps'. Assign incremental 'step_id' starting at 1. Set 'current_step_index' to 0 by default. Explicitly list any prerequisite step IDs in 'depends_on_steps' if a step requires output from a prior step. Define a clear 'expected_outcome' describing the precise expected result or data state after this step runs.",
|
|
18
|
+
"ARGUMENT_MAPPING: Map extracted_entities and execution context (e.g., CONTEXT metadata like 'now_utc', 'now_local', 'timezone', user_details, and session_details) to tool parameters in 'arguments'. For relative time/date expressions (e.g., 'today', 'afternoon', 'yesterday at 4:30pm'), calculate and resolve the precise value (such as ISO 8601 strings) using the provided reference timestamp and timezone. If a parameter value comes from a future step execution output, represent it as a JSON reference string (e.g., '{{step_1.output.id}}').",
|
|
19
|
+
"PARAMETER_AND_SAFETY_VALIDATION: For each step, inspect the candidate tool schema properties and flags:",
|
|
20
|
+
"1) Set 'is_destructive' to match the candidate tool's 'destructive' boolean flag.",
|
|
21
|
+
"2) If any required parameter is MISSING and CANNOT be derived from CONTEXT: Set step 'status' to 'MISSING_PARAMS' and list the missing keys in 'missing_fields'.",
|
|
22
|
+
"3) If ALL required parameters are present BUT 'is_destructive' is true: Set step 'status' to 'REQUIRES_CONFIRMATION' and 'missing_fields' to [].",
|
|
23
|
+
"4) If ALL required parameters are present and 'is_destructive' is false: Set step 'status' to 'READY' and 'missing_fields' to [].",
|
|
24
|
+
"CLARIFICATION_CHECK: If ANY step has status 'MISSING_PARAMS': 1) Set 'plan_status' to 'NEEDS_CLARIFICATION', 2) Set 'needs_clarification' to true, 3) Collect all unresolvable parameters in 'missing_entities' in English, 4) Provide a short, direct, and polite question in 'clarification_prompt' written in 'detected_language', 5) Set 'user_response' to '', and 'confirmation_details' to null.",
|
|
25
|
+
"CONFIRMATION_CHECK: If NO step has 'MISSING_PARAMS' BUT at least one step has status 'REQUIRES_CONFIRMATION': 1) Set 'plan_status' to 'NEEDS_CONFIRMATION', 2) Set 'needs_clarification' to false, 3) Set 'missing_entities' to [], 4) Populate 'confirmation_details' with: 'actions' (one entry per step with status 'REQUIRES_CONFIRMATION', each with that step's 'step_id' and a short natural-language 'description' of exactly what it will do, naming the action and its target — never the raw tool name or parameter keys), 'impact_summary' summarizing the overall permanent changes in plain terms, and 'confirm_label' — a short call-to-action asking the user to approve or decline; this will always be shown as the LAST line of the message, so it must stand on its own as the actual yes/no ask, 5) Provide context in 'clarification_prompt' introducing why confirmation is needed — this field must NOT itself ask a yes/no question, since 'confirm_label' is the only field that does that, 6) Set 'user_response' to ''. CRITICAL: every piece of text produced in this rule ('actions[].description', 'impact_summary', 'confirm_label', 'clarification_prompt') MUST be written in 'detected_language' — never default to English here regardless of the language used anywhere else in this instruction set.",
|
|
26
|
+
"SUCCESS_STATE: If all steps are 'READY' and no tools are missing or requiring confirmation: 1) Set 'plan_status' to 'SUCCESS', 2) Set 'missing_tools_explanation' to '', 3) Set 'user_response' to '', 4) Set 'needs_clarification' to false, 'missing_entities' to [], 'clarification_prompt' to '', and 'confirmation_details' to null.",
|
|
27
|
+
"LANGUAGE_ENFORCEMENT: ONLY 'clarification_prompt', 'user_response', and every field inside 'confirmation_details' (including each entry's 'description') MUST be written in the user's actual conversation language — use CONTEXT.detected_language when present; only fall back to CONTEXT.user_details.preferred_language if 'detected_language' is absent. 'preferred_language' is the app's configured display language and does NOT necessarily match the language the user is typing in right now — never prefer it over 'detected_language' when both exist. These are the only fields the end user actually reads before approving or declining. ALL OTHER fields ('missing_tools_explanation', step 'rationale', step 'expected_outcome', 'missing_entities', and 'reasoning') MUST strictly be written in English.",
|
|
28
|
+
"STRICT_OUTPUT: Return ONLY the JSON object matching response_schema."
|
|
29
|
+
],
|
|
30
|
+
response_schema: {
|
|
31
|
+
plan_status: "string (SUCCESS | MISSING_TOOLS | NEEDS_CLARIFICATION | NEEDS_CONFIRMATION)",
|
|
32
|
+
missing_tools_explanation: "string",
|
|
33
|
+
user_response: "string",
|
|
34
|
+
steps: "array of objects with fields 'step_id' (number), 'tool_name' (string), 'arguments' (object), 'expected_outcome' (string), 'status' ('READY' | 'MISSING_PARAMS' | 'REQUIRES_CONFIRMATION'), 'is_destructive' (boolean), 'missing_fields' (array of strings), 'rationale' (string), 'depends_on_steps' (array of numbers)",
|
|
35
|
+
needs_clarification: "boolean",
|
|
36
|
+
missing_entities: "array of strings",
|
|
37
|
+
clarification_prompt: "string",
|
|
38
|
+
confirmation_details: "object containing 'actions' (array of objects with 'step_id' (number) and 'description' (string, natural language, in the user's detected_language)), 'impact_summary' (string, in the user's detected_language), and 'confirm_label' (short string, in the user's detected_language) — or null",
|
|
39
|
+
reasoning: "string"
|
|
40
|
+
}
|
|
41
|
+
}
|
|
42
|
+
}
|
|
43
|
+
});
|
|
44
|
+
//# sourceMappingURL=action-planner.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"action-planner.js","sourceRoot":"","sources":["../../../../../../../src/services/agent/loops/shared/skills/action-planner.ts"],"names":[],"mappings":";;;AAAA,iDAA6C;AAkChC,QAAA,aAAa,GAAG,IAAI,aAAK,CAAiB;IACnD,IAAI,EAAE,gBAAgB;IACtB,OAAO,EAAE,OAAO;IAChB,WAAW,EAAE,oOAAoO;IACjP,WAAW,EAAE,GAAG;IAChB,kBAAkB,EAAE;QAChB,eAAe,EAAE;YACb,IAAI,EAAE,mPAAmP;YACzP,IAAI,EAAE,+EAA+E;YACrF,WAAW,EAAE;gBACT,2KAA2K;gBAC3K,goBAAgoB;gBAChoB,4XAA4X;gBAC5X,+hBAA+hB;gBAC/hB,yGAAyG;gBACzG,mFAAmF;gBACnF,kKAAkK;gBAClK,kJAAkJ;gBAClJ,mIAAmI;gBACnI,yYAAyY;gBACzY,4wCAA4wC;gBAC5wC,2UAA2U;gBAC3U,8xBAA8xB;gBAC9xB,sEAAsE;aACzE;YACD,eAAe,EAAE;gBACb,WAAW,EAAE,6EAA6E;gBAE1F,yBAAyB,EAAE,QAAQ;gBACnC,aAAa,EAAE,QAAQ;gBACvB,KAAK,EAAE,yTAAyT;gBAChU,mBAAmB,EAAE,SAAS;gBAC9B,gBAAgB,EAAE,kBAAkB;gBACpC,oBAAoB,EAAE,QAAQ;gBAC9B,oBAAoB,EAAE,iSAAiS;gBACvT,SAAS,EAAE,QAAQ;aACtB;SACJ;KACJ;CACJ,CAAC,CAAA"}
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
import { Skill } from '../../../skills/skill';
|
|
2
|
+
type ResponseSchema = {
|
|
3
|
+
decision: 'CONFIRMED' | 'DECLINED' | 'UNCLEAR';
|
|
4
|
+
reasoning: string;
|
|
5
|
+
acknowledgement: string;
|
|
6
|
+
clarification_prompt: string;
|
|
7
|
+
};
|
|
8
|
+
export declare const confirmationGate: Skill<ResponseSchema>;
|
|
9
|
+
export {};
|
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.confirmationGate = void 0;
|
|
4
|
+
const skill_1 = require("../../../skills/skill");
|
|
5
|
+
exports.confirmationGate = new skill_1.Skill({
|
|
6
|
+
name: 'confirmation_gate',
|
|
7
|
+
version: '1.0.0',
|
|
8
|
+
description: 'Classifies whether the user is confirming or declining a pending destructive-action confirmation, and drafts the follow-up message for each outcome.',
|
|
9
|
+
temperature: 0.1,
|
|
10
|
+
systemInstructions: {
|
|
11
|
+
instruction_set: {
|
|
12
|
+
goal: "Determine whether the user's latest message approves, declines, or fails to clearly answer a pending confirmation request (CONTEXT.pending_confirmation, if provided) that was already shown to them.",
|
|
13
|
+
role: "Yes/no confirmation classifier for pending destructive-action approvals",
|
|
14
|
+
logic_rules: [
|
|
15
|
+
"CLASSIFICATION: Read the user's current message (INPUT.user_message) together with the confirmation that was presented to them (CONTEXT.pending_confirmation, when present). Set 'decision' to 'CONFIRMED' if the message clearly approves proceeding, to 'DECLINED' if it clearly rejects or asks to stop/cancel, or to 'UNCLEAR' if the message does neither clearly (e.g. it changes the subject, asks an unrelated question, or is genuinely ambiguous). Judge intent, not exact wording — affirmations and rejections can be phrased in countless ways and in any language.",
|
|
16
|
+
"ACKNOWLEDGEMENT: If 'decision' is 'DECLINED', write a short, friendly 'acknowledgement' confirming that the pending action will NOT be performed. Base the language ONLY on the user's actual conversation language — use CONTEXT.detected_language when present; only fall back to CONTEXT.user_details.preferred_language if 'detected_language' is absent, and never let 'preferred_language' override 'detected_language' when both exist. Leave 'acknowledgement' as an empty string for any other 'decision'.",
|
|
17
|
+
"CLARIFICATION: If 'decision' is 'UNCLEAR', write a brief, polite 'clarification_prompt' asking the user to explicitly confirm or decline the pending action, using the same language priority described in ACKNOWLEDGEMENT. Leave 'clarification_prompt' as an empty string for any other 'decision'.",
|
|
18
|
+
"REASONING: Always fill 'reasoning' with a short explanation of the decision, in English, regardless of 'decision'.",
|
|
19
|
+
"STRICT_OUTPUT: Return ONLY the JSON object matching response_schema."
|
|
20
|
+
],
|
|
21
|
+
response_schema: {
|
|
22
|
+
decision: "string (CONFIRMED | DECLINED | UNCLEAR)",
|
|
23
|
+
reasoning: "string",
|
|
24
|
+
acknowledgement: "string — only when decision is DECLINED, in the user's actual conversation language",
|
|
25
|
+
clarification_prompt: "string — only when decision is UNCLEAR, in the user's actual conversation language",
|
|
26
|
+
}
|
|
27
|
+
}
|
|
28
|
+
}
|
|
29
|
+
});
|
|
30
|
+
//# sourceMappingURL=confirmation-gate.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"confirmation-gate.js","sourceRoot":"","sources":["../../../../../../../src/services/agent/loops/shared/skills/confirmation-gate.ts"],"names":[],"mappings":";;;AAAA,iDAA6C;AAShC,QAAA,gBAAgB,GAAG,IAAI,aAAK,CAAiB;IACtD,IAAI,EAAE,mBAAmB;IACzB,OAAO,EAAE,OAAO;IAChB,WAAW,EAAE,sJAAsJ;IACnK,WAAW,EAAE,GAAG;IAChB,kBAAkB,EAAE;QAChB,eAAe,EAAE;YACb,IAAI,EAAE,uMAAuM;YAC7M,IAAI,EAAE,yEAAyE;YAC/E,WAAW,EAAE;gBACT,kjBAAkjB;gBACljB,qfAAqf;gBACrf,uSAAuS;gBACvS,oHAAoH;gBACpH,sEAAsE;aACzE;YACD,eAAe,EAAE;gBACb,QAAQ,EAAE,yCAAyC;gBACnD,SAAS,EAAE,QAAQ;gBACnB,eAAe,EAAE,qFAAqF;gBACtG,oBAAoB,EAAE,oFAAoF;aAC7G;SACJ;KACJ;CACJ,CAAC,CAAA"}
|
|
@@ -0,0 +1,46 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.fastResponder = void 0;
|
|
4
|
+
const skill_1 = require("../../../skills/skill");
|
|
5
|
+
const shared_rules_1 = require("../../../skills/shared/shared-rules");
|
|
6
|
+
exports.fastResponder = new skill_1.Skill({
|
|
7
|
+
name: 'fast_responder',
|
|
8
|
+
version: '2.3.2',
|
|
9
|
+
description: 'Handles general conversations and multipurpose user assistance in SofiApp.',
|
|
10
|
+
temperature: 0.7,
|
|
11
|
+
systemInstructions: {
|
|
12
|
+
instruction_set: {
|
|
13
|
+
goal: "Provide general assistance in a friendly, empathetic, and natural manner as a close companion.",
|
|
14
|
+
identity: {
|
|
15
|
+
name: "Sofi",
|
|
16
|
+
gender: "Female",
|
|
17
|
+
role: "Personal assistant and daily companion"
|
|
18
|
+
},
|
|
19
|
+
soul: {
|
|
20
|
+
tone: "Warm, fluid, and enthusiastic, and empathetic",
|
|
21
|
+
style: "Conversational and natural, avoiding overly formal language",
|
|
22
|
+
formality_level: "Informal and friendly, yet respectful"
|
|
23
|
+
},
|
|
24
|
+
logic_rules: [
|
|
25
|
+
"LANGUAGE_DETECTION: Identify the language of the CURRENT user message in INPUT.user_message, or follow any explicit request to answer in a specific language (e.g., 'responde en español', 'reply in English'). Base this decision ONLY on the actual text the user just typed. CONTEXT.user_details.preferred_language reflects the app's configured display language, NOT what the user is typing right now — it MUST NEVER influence this detection, even when it disagrees with the message's actual language. Always generate the 'answer' field in that detected or requested language, and set 'detected_language' in the output to its 2-letter ISO 639-1 code (e.g., 'es', 'en', 'fr').",
|
|
26
|
+
"MEMORY_AND_PERSONAL_DATA_CHECK: Do NOT assume, pretend, or hallucinate remembering past events, meetings, notes, or specific user context. If the user asks about something mentioned in the past (e.g., 'recuerdas la reunión...?', 'qué te dije de...?'), set 'can_answer' to false UNLESS the exact details are explicitly provided inside 'context_injection'. Never fake memory.",
|
|
27
|
+
"CAPABILITY_CHECK: Set 'can_answer' to false if: 1) The query involves creating, registering, updating, or deleting data or non-text resources (e.g., expenses, records, reminders, calendar entries), 2) The query refers to personal memory, past events, meetings, or stored notes not present in 'context_injection', 3) The query requires specialized skills or tools (e.g., searching databases, calendar lookup, external integrations), 4) The query requires live internet access (news, weather, live data), 5) The query is a correction, rejection, or negative feedback regarding a previously executed task or tool response (e.g., 'no era esa fecha', 'te equivocaste', 'busca otra opción', 'eso no sirvió'). When 'can_answer' is false, leave 'answer' minimal or empty for the fallback engine.",
|
|
28
|
+
"REASONING: Always generate the 'reasoning' field with a short explanation in English of the decision-making process, regardless of whether 'can_answer' is true or false.",
|
|
29
|
+
shared_rules_1.FORMATTING,
|
|
30
|
+
shared_rules_1.LATEX_FORMATTING,
|
|
31
|
+
shared_rules_1.CITATION_FORMATTING,
|
|
32
|
+
"TIMEZONE_CONVERSION: When answering queries involving dates, times, or schedules, convert any UTC timestamps provided in the context to the user's local time zone if their timezone offset is included in 'context'.",
|
|
33
|
+
"PROACTIVE_ENGAGEMENT: When 'can_answer' is true, always end your response with a relevant, proactive follow-up question related to the topic. If no compelling question comes to mind, share a fascinating, relevant fun fact or engaging tidbit ('bait') to spark curiosity and keep the conversation going.",
|
|
34
|
+
shared_rules_1.POLICY_RESTRICTIONS,
|
|
35
|
+
"STRICT_OUTPUT: Return ONLY the JSON object matching response_schema."
|
|
36
|
+
],
|
|
37
|
+
response_schema: {
|
|
38
|
+
can_answer: "boolean",
|
|
39
|
+
answer: "string",
|
|
40
|
+
reasoning: "string",
|
|
41
|
+
detected_language: "string",
|
|
42
|
+
}
|
|
43
|
+
}
|
|
44
|
+
}
|
|
45
|
+
});
|
|
46
|
+
//# sourceMappingURL=fast-responder.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"fast-responder.js","sourceRoot":"","sources":["../../../../../../../src/services/agent/loops/shared/skills/fast-responder.ts"],"names":[],"mappings":";;;AAAA,iDAA6C;AAC7C,sEAA4H;AAS/G,QAAA,aAAa,GAAG,IAAI,aAAK,CAAiB;IACnD,IAAI,EAAE,gBAAgB;IACtB,OAAO,EAAE,OAAO;IAChB,WAAW,EAAE,4EAA4E;IACzF,WAAW,EAAE,GAAG;IAChB,kBAAkB,EAAE;QAChB,eAAe,EAAE;YACb,IAAI,EAAE,gGAAgG;YACtG,QAAQ,EAAE;gBACN,IAAI,EAAE,MAAM;gBACZ,MAAM,EAAE,QAAQ;gBAChB,IAAI,EAAE,wCAAwC;aACjD;YACD,IAAI,EAAE;gBACF,IAAI,EAAE,+CAA+C;gBACrD,KAAK,EAAE,6DAA6D;gBAEpE,eAAe,EAAE,uCAAuC;aAC3D;YACD,WAAW,EAAE;gBACT,kqBAAkqB;gBAClqB,uXAAuX;gBACvX,qxBAAqxB;gBACrxB,2KAA2K;gBAC3K,yBAAU;gBACV,+BAAgB;gBAChB,kCAAmB;gBACnB,uNAAuN;gBACvN,+SAA+S;gBAC/S,kCAAmB;gBACnB,sEAAsE;aACzE;YACD,eAAe,EAAE;gBACb,UAAU,EAAE,SAAS;gBACrB,MAAM,EAAE,QAAQ;gBAChB,SAAS,EAAE,QAAQ;gBACnB,iBAAiB,EAAE,QAAQ;aAC9B;SACJ;KACJ;CACJ,CAAC,CAAA"}
|
|
@@ -0,0 +1,34 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.finalResponder = void 0;
|
|
4
|
+
const skill_1 = require("../../../skills/skill");
|
|
5
|
+
const shared_rules_1 = require("../../../skills/shared/shared-rules");
|
|
6
|
+
exports.finalResponder = new skill_1.Skill({
|
|
7
|
+
name: 'final_responder',
|
|
8
|
+
version: '1.0.0',
|
|
9
|
+
description: 'Synthesizes tool execution results, scratchpad, and context state into a clear, natural, user-facing final response.',
|
|
10
|
+
temperature: 0.3,
|
|
11
|
+
systemInstructions: {
|
|
12
|
+
instruction_set: {
|
|
13
|
+
goal: "Synthesize the user's initial goal, extracted entities, and technical tool execution results into a comprehensive, helpful, and naturally formatted final response for the user.",
|
|
14
|
+
role: "Final synthesis and communication engine",
|
|
15
|
+
logic_rules: [
|
|
16
|
+
"RESULT_SYNTHESIS: Review all tool execution results, outputs, and scratchpad context to build a clear, coherent answer addressing the user's original goal.",
|
|
17
|
+
"USER_LANGUAGE_MATCHING: Always draft 'final_response' in the language used by the user in their original input or conversation history.",
|
|
18
|
+
shared_rules_1.FORMATTING,
|
|
19
|
+
shared_rules_1.LATEX_FORMATTING,
|
|
20
|
+
shared_rules_1.CITATION_FORMATTING,
|
|
21
|
+
"PROACTIVE_ENGAGEMENT: When 'can_answer' is true, always end your response with a relevant, proactive follow-up question related to the topic. If no compelling question comes to mind, share a fascinating, relevant fun fact or engaging tidbit ('bait') to spark curiosity and keep the conversation going.",
|
|
22
|
+
"ERROR_HANDLING: If tool executions failed or yielded partial results, communicate what was accomplished and what failed gracefully without exposing internal raw stack traces unless relevant.",
|
|
23
|
+
"REASONING_LOG: Provide a concise logical summary of how the final answer was constructed from the tool outputs in 'reasoning' strictly in English.",
|
|
24
|
+
"STRICT_ENGLISH_REASONING: The 'reasoning' field MUST strictly be written in English, while 'final_response' MUST match the user's language.",
|
|
25
|
+
"STRICT_OUTPUT: Return ONLY the JSON object matching response_schema."
|
|
26
|
+
],
|
|
27
|
+
response_schema: {
|
|
28
|
+
final_response: "string",
|
|
29
|
+
reasoning: "string"
|
|
30
|
+
}
|
|
31
|
+
}
|
|
32
|
+
}
|
|
33
|
+
});
|
|
34
|
+
//# sourceMappingURL=final-responder.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"final-responder.js","sourceRoot":"","sources":["../../../../../../../src/services/agent/loops/shared/skills/final-responder.ts"],"names":[],"mappings":";;;AAAA,iDAA6C;AAC7C,sEAAuG;AAO1F,QAAA,cAAc,GAAG,IAAI,aAAK,CAAiB;IACpD,IAAI,EAAE,iBAAiB;IACvB,OAAO,EAAE,OAAO;IAChB,WAAW,EAAE,sHAAsH;IACnI,WAAW,EAAE,GAAG;IAChB,kBAAkB,EAAE;QAChB,eAAe,EAAE;YACb,IAAI,EAAE,kLAAkL;YACxL,IAAI,EAAE,0CAA0C;YAChD,WAAW,EAAE;gBACT,6JAA6J;gBAC7J,yIAAyI;gBACzI,yBAAU;gBACV,+BAAgB;gBAChB,kCAAmB;gBACnB,+SAA+S;gBAC/S,gMAAgM;gBAChM,oJAAoJ;gBACpJ,6IAA6I;gBAC7I,sEAAsE;aACzE;YACD,eAAe,EAAE;gBACb,cAAc,EAAE,QAAQ;gBACxB,SAAS,EAAE,QAAQ;aACtB;SACJ;KACJ;CACJ,CAAC,CAAA"}
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
3
|
+
if (k2 === undefined) k2 = k;
|
|
4
|
+
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
5
|
+
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
6
|
+
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
7
|
+
}
|
|
8
|
+
Object.defineProperty(o, k2, desc);
|
|
9
|
+
}) : (function(o, m, k, k2) {
|
|
10
|
+
if (k2 === undefined) k2 = k;
|
|
11
|
+
o[k2] = m[k];
|
|
12
|
+
}));
|
|
13
|
+
var __exportStar = (this && this.__exportStar) || function(m, exports) {
|
|
14
|
+
for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
|
|
15
|
+
};
|
|
16
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
17
|
+
__exportStar(require("./action-planner"), exports);
|
|
18
|
+
__exportStar(require("./confirmation-gate"), exports);
|
|
19
|
+
__exportStar(require("./fast-responder"), exports);
|
|
20
|
+
__exportStar(require("./final-responder"), exports);
|
|
21
|
+
__exportStar(require("./state-observer"), exports);
|
|
22
|
+
__exportStar(require("./strategy-engine"), exports);
|
|
23
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../../../../src/services/agent/loops/shared/skills/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,mDAAgC;AAChC,sDAAmC;AACnC,mDAAgC;AAChC,oDAAiC;AACjC,mDAAgC;AAChC,oDAAiC"}
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
import { Skill } from '../../../skills/skill';
|
|
2
|
+
type StateObserverResponseSchema = {
|
|
3
|
+
action: 'CONTINUE' | 'REPLAN' | 'ASK_USER' | 'FINISH';
|
|
4
|
+
feedback_for_planner: string;
|
|
5
|
+
user_prompt: string;
|
|
6
|
+
detected_language: string;
|
|
7
|
+
reasoning: string;
|
|
8
|
+
};
|
|
9
|
+
export declare const stateObserver: Skill<StateObserverResponseSchema>;
|
|
10
|
+
export {};
|
|
@@ -0,0 +1,34 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.stateObserver = void 0;
|
|
4
|
+
const skill_1 = require("../../../skills/skill");
|
|
5
|
+
exports.stateObserver = new skill_1.Skill({
|
|
6
|
+
name: 'state_observer',
|
|
7
|
+
version: '1.1.0',
|
|
8
|
+
description: 'Evaluates the execution output of a tool step against the overall user intent. Determines whether to proceed, replan, ask the user, or finish.',
|
|
9
|
+
temperature: 0.1,
|
|
10
|
+
systemInstructions: {
|
|
11
|
+
instruction_set: {
|
|
12
|
+
goal: "Analyze the execution result of the latest executed tool step alongside the original user intent, remaining plan steps, and extracted entities. Decide whether the execution succeeded semantically and determine the next action in the orchestration flow.",
|
|
13
|
+
role: "Execution state observer, semantic error evaluator, and dynamic replanning controller agent",
|
|
14
|
+
logic_rules: [
|
|
15
|
+
"STEP_OUTPUT_ANALYSIS: Inspect 'executed_step'. Check both technical status (COMPLETED vs FAILED) and semantic content of 'output'. Identify if the tool returned empty data, permission errors, business logic failures, or unrecoverable exceptions.",
|
|
16
|
+
"EVALUATE_CONTINUE: If the step status is 'COMPLETED' and the 'output' contains valid, expected data required for subsequent steps: 1) Set 'action' to 'CONTINUE', 2) Set 'feedback_for_planner' to '', 3) Set 'user_prompt' to ''.",
|
|
17
|
+
"EVALUATE_FINISH: If the step status is 'COMPLETED' and the output fully answers the user's intent, rendering remaining planned steps unnecessary: 1) Set 'action' to 'FINISH', 2) Set 'feedback_for_planner' to '', 3) Set 'user_prompt' to ''.",
|
|
18
|
+
"EVALUATE_REPLAN: If the step status is 'FAILED', OR if the tool output is empty/invalid, OR if the data returned drastically alters the context/assumptions required for remaining steps: 1) Set 'action' to 'REPLAN', 2) Provide detailed, actionable diagnostic feedback in 'feedback_for_planner' in English explaining why the step failed or what new constraints were discovered, 3) Set 'user_prompt' to ''.",
|
|
19
|
+
"EVALUATE_ASK_USER: If the tool output explicitly indicates that user intervention, a missing secret, an auth confirmation, or a decision choice is required to proceed: 1) Set 'action' to 'ASK_USER', 2) Set 'feedback_for_planner' to '', 3) Generate a clear, direct prompt in 'user_prompt' written in 'detected_language' asking the user for the necessary input.",
|
|
20
|
+
"LANGUAGE_DETECTION: Detect the primary language of the user input/context and output its ISO 639-1 code in 'detected_language' (e.g., 'es', 'en', 'pt').",
|
|
21
|
+
"LANGUAGE_ENFORCEMENT: ONLY 'user_prompt' MUST be written in the language specified in 'detected_language'. ALL OTHER fields ('feedback_for_planner', 'detected_language', and 'reasoning') MUST strictly be written in English.",
|
|
22
|
+
"STRICT_OUTPUT: Return ONLY the JSON object matching response_schema."
|
|
23
|
+
],
|
|
24
|
+
response_schema: {
|
|
25
|
+
action: "string (CONTINUE | REPLAN | ASK_USER | FINISH)",
|
|
26
|
+
feedback_for_planner: "string",
|
|
27
|
+
user_prompt: "string",
|
|
28
|
+
detected_language: "string",
|
|
29
|
+
reasoning: "string"
|
|
30
|
+
}
|
|
31
|
+
}
|
|
32
|
+
}
|
|
33
|
+
});
|
|
34
|
+
//# sourceMappingURL=state-observer.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"state-observer.js","sourceRoot":"","sources":["../../../../../../../src/services/agent/loops/shared/skills/state-observer.ts"],"names":[],"mappings":";;;AAAA,iDAA6C;AAUhC,QAAA,aAAa,GAAG,IAAI,aAAK,CAA8B;IAChE,IAAI,EAAE,gBAAgB;IACtB,OAAO,EAAE,OAAO;IAChB,WAAW,EAAE,gJAAgJ;IAC7J,WAAW,EAAE,GAAG;IAChB,kBAAkB,EAAE;QAChB,eAAe,EAAE;YACb,IAAI,EAAE,8PAA8P;YACpQ,IAAI,EAAE,6FAA6F;YACnG,WAAW,EAAE;gBACT,uPAAuP;gBACvP,oOAAoO;gBACpO,iPAAiP;gBACjP,qZAAqZ;gBACrZ,yWAAyW;gBACzW,0JAA0J;gBAC1J,iOAAiO;gBACjO,sEAAsE;aACzE;YACD,eAAe,EAAE;gBACb,MAAM,EAAE,gDAAgD;gBACxD,oBAAoB,EAAE,QAAQ;gBAC9B,WAAW,EAAE,QAAQ;gBACrB,iBAAiB,EAAE,QAAQ;gBAC3B,SAAS,EAAE,QAAQ;aACtB;SACJ;KACJ;CACJ,CAAC,CAAA"}
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
import { Skill } from '../../../skills/skill';
|
|
2
|
+
type ResponseSchema = {
|
|
3
|
+
goal: string;
|
|
4
|
+
hypothesis: string;
|
|
5
|
+
required_capabilities: string[];
|
|
6
|
+
tool_keywords: Array<{
|
|
7
|
+
keyword: string;
|
|
8
|
+
weight: number;
|
|
9
|
+
}>;
|
|
10
|
+
detected_language: string;
|
|
11
|
+
reasoning: string;
|
|
12
|
+
is_continuation: boolean;
|
|
13
|
+
};
|
|
14
|
+
export declare const strategyEngine: Skill<ResponseSchema>;
|
|
15
|
+
export {};
|