crewly 1.2.4 → 1.2.7
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 +1 -1
- package/config/constants.ts +4 -2
- package/config/roles/auditor/prompt.md +84 -0
- package/config/roles/orchestrator/prompt.md +62 -7
- package/config/runtime_scripts/runtime-config.json +5 -5
- package/config/skills/orchestrator/cancel-all-schedules/execute.sh +24 -0
- package/config/skills/orchestrator/cancel-all-schedules/instructions.md +23 -0
- package/config/skills/orchestrator/cancel-all-schedules/skill.json +17 -0
- package/config/skills/orchestrator/list-schedules/execute.sh +19 -0
- package/config/skills/orchestrator/list-schedules/instructions.md +24 -0
- package/config/skills/orchestrator/list-schedules/skill.json +12 -0
- package/dist/backend/backend/src/constants.d.ts +77 -13
- package/dist/backend/backend/src/constants.d.ts.map +1 -1
- package/dist/backend/backend/src/constants.js +78 -16
- package/dist/backend/backend/src/constants.js.map +1 -1
- package/dist/backend/backend/src/controllers/auditor/auditor.controller.d.ts +37 -0
- package/dist/backend/backend/src/controllers/auditor/auditor.controller.d.ts.map +1 -0
- package/dist/backend/backend/src/controllers/auditor/auditor.controller.js +64 -0
- package/dist/backend/backend/src/controllers/auditor/auditor.controller.js.map +1 -0
- package/dist/backend/backend/src/controllers/auditor/auditor.routes.d.ts +15 -0
- package/dist/backend/backend/src/controllers/auditor/auditor.routes.d.ts.map +1 -0
- package/dist/backend/backend/src/controllers/auditor/auditor.routes.js +23 -0
- package/dist/backend/backend/src/controllers/auditor/auditor.routes.js.map +1 -0
- package/dist/backend/backend/src/controllers/cloud/admin/admin-auth.middleware.d.ts +23 -0
- package/dist/backend/backend/src/controllers/cloud/admin/admin-auth.middleware.d.ts.map +1 -0
- package/dist/backend/backend/src/controllers/cloud/admin/admin-auth.middleware.js +42 -0
- package/dist/backend/backend/src/controllers/cloud/admin/admin-auth.middleware.js.map +1 -0
- package/dist/backend/backend/src/controllers/cloud/admin/admin.controller.d.ts +56 -0
- package/dist/backend/backend/src/controllers/cloud/admin/admin.controller.d.ts.map +1 -0
- package/dist/backend/backend/src/controllers/cloud/admin/admin.controller.js +173 -0
- package/dist/backend/backend/src/controllers/cloud/admin/admin.controller.js.map +1 -0
- package/dist/backend/backend/src/controllers/cloud/admin/admin.routes.d.ts +22 -0
- package/dist/backend/backend/src/controllers/cloud/admin/admin.routes.d.ts.map +1 -0
- package/dist/backend/backend/src/controllers/cloud/admin/admin.routes.js +33 -0
- package/dist/backend/backend/src/controllers/cloud/admin/admin.routes.js.map +1 -0
- package/dist/backend/backend/src/controllers/cloud/admin/index.d.ts +7 -0
- package/dist/backend/backend/src/controllers/cloud/admin/index.d.ts.map +1 -0
- package/dist/backend/backend/src/controllers/cloud/admin/index.js +7 -0
- package/dist/backend/backend/src/controllers/cloud/admin/index.js.map +1 -0
- package/dist/backend/backend/src/controllers/cloud/auth/auth.routes.d.ts +1 -1
- package/dist/backend/backend/src/controllers/cloud/auth/auth.routes.js +5 -5
- package/dist/backend/backend/src/controllers/cloud/auth/auth.routes.js.map +1 -1
- package/dist/backend/backend/src/controllers/cloud/cloud.routes.d.ts.map +1 -1
- package/dist/backend/backend/src/controllers/cloud/cloud.routes.js +0 -3
- package/dist/backend/backend/src/controllers/cloud/cloud.routes.js.map +1 -1
- package/dist/backend/backend/src/controllers/cloud/index.d.ts +0 -5
- package/dist/backend/backend/src/controllers/cloud/index.d.ts.map +1 -1
- package/dist/backend/backend/src/controllers/cloud/index.js +0 -5
- package/dist/backend/backend/src/controllers/cloud/index.js.map +1 -1
- package/dist/backend/backend/src/controllers/cloud/relay.controller.d.ts +6 -45
- package/dist/backend/backend/src/controllers/cloud/relay.controller.d.ts.map +1 -1
- package/dist/backend/backend/src/controllers/cloud/relay.controller.js +6 -165
- package/dist/backend/backend/src/controllers/cloud/relay.controller.js.map +1 -1
- package/dist/backend/backend/src/controllers/cloud/relay.routes.d.ts +5 -9
- package/dist/backend/backend/src/controllers/cloud/relay.routes.d.ts.map +1 -1
- package/dist/backend/backend/src/controllers/cloud/relay.routes.js +11 -21
- package/dist/backend/backend/src/controllers/cloud/relay.routes.js.map +1 -1
- package/dist/backend/backend/src/controllers/cloud/tasks/index.d.ts +5 -2
- package/dist/backend/backend/src/controllers/cloud/tasks/index.d.ts.map +1 -1
- package/dist/backend/backend/src/controllers/cloud/tasks/index.js +5 -2
- package/dist/backend/backend/src/controllers/cloud/tasks/index.js.map +1 -1
- package/dist/backend/backend/src/controllers/marketplace/template-marketplace.routes.d.ts +6 -2
- package/dist/backend/backend/src/controllers/marketplace/template-marketplace.routes.d.ts.map +1 -1
- package/dist/backend/backend/src/controllers/marketplace/template-marketplace.routes.js +12 -8
- package/dist/backend/backend/src/controllers/marketplace/template-marketplace.routes.js.map +1 -1
- package/dist/backend/backend/src/controllers/messaging/messenger.routes.d.ts +7 -0
- package/dist/backend/backend/src/controllers/messaging/messenger.routes.d.ts.map +1 -1
- package/dist/backend/backend/src/controllers/messaging/messenger.routes.js +64 -3
- package/dist/backend/backend/src/controllers/messaging/messenger.routes.js.map +1 -1
- package/dist/backend/backend/src/controllers/monitoring/terminal.controller.d.ts.map +1 -1
- package/dist/backend/backend/src/controllers/monitoring/terminal.controller.js +32 -4
- package/dist/backend/backend/src/controllers/monitoring/terminal.controller.js.map +1 -1
- package/dist/backend/backend/src/controllers/payment/payment.controller.d.ts +16 -5
- package/dist/backend/backend/src/controllers/payment/payment.controller.d.ts.map +1 -1
- package/dist/backend/backend/src/controllers/payment/payment.controller.js +6 -6
- package/dist/backend/backend/src/controllers/payment/payment.controller.js.map +1 -1
- package/dist/backend/backend/src/controllers/payment/payment.routes.d.ts +6 -2
- package/dist/backend/backend/src/controllers/payment/payment.routes.d.ts.map +1 -1
- package/dist/backend/backend/src/controllers/payment/payment.routes.js +22 -8
- package/dist/backend/backend/src/controllers/payment/payment.routes.js.map +1 -1
- package/dist/backend/backend/src/controllers/payment/payment.types.d.ts +1 -1
- package/dist/backend/backend/src/controllers/payment/payment.types.d.ts.map +1 -1
- package/dist/backend/backend/src/controllers/payment/payment.types.js +1 -1
- package/dist/backend/backend/src/controllers/payment/payment.types.js.map +1 -1
- package/dist/backend/backend/src/controllers/request-types.d.ts +2 -2
- package/dist/backend/backend/src/controllers/request-types.d.ts.map +1 -1
- package/dist/backend/backend/src/controllers/system/scheduler.controller.d.ts +19 -0
- package/dist/backend/backend/src/controllers/system/scheduler.controller.d.ts.map +1 -1
- package/dist/backend/backend/src/controllers/system/scheduler.controller.js +51 -0
- package/dist/backend/backend/src/controllers/system/scheduler.controller.js.map +1 -1
- package/dist/backend/backend/src/controllers/team/team.controller.d.ts.map +1 -1
- package/dist/backend/backend/src/controllers/team/team.controller.js +13 -5
- package/dist/backend/backend/src/controllers/team/team.controller.js.map +1 -1
- package/dist/backend/backend/src/controllers/template/template.controller.d.ts.map +1 -1
- package/dist/backend/backend/src/controllers/template/template.controller.js +2 -2
- package/dist/backend/backend/src/controllers/template/template.controller.js.map +1 -1
- package/dist/backend/backend/src/index.d.ts.map +1 -1
- package/dist/backend/backend/src/index.js +33 -30
- package/dist/backend/backend/src/index.js.map +1 -1
- package/dist/backend/backend/src/routes/api.routes.d.ts.map +1 -1
- package/dist/backend/backend/src/routes/api.routes.js +4 -12
- package/dist/backend/backend/src/routes/api.routes.js.map +1 -1
- package/dist/backend/backend/src/routes/modules/log-rotation.routes.d.ts +8 -0
- package/dist/backend/backend/src/routes/modules/log-rotation.routes.d.ts.map +1 -0
- package/dist/backend/backend/src/routes/modules/log-rotation.routes.js +62 -0
- package/dist/backend/backend/src/routes/modules/log-rotation.routes.js.map +1 -0
- package/dist/backend/backend/src/routes/modules/scheduler.routes.d.ts.map +1 -1
- package/dist/backend/backend/src/routes/modules/scheduler.routes.js +2 -0
- package/dist/backend/backend/src/routes/modules/scheduler.routes.js.map +1 -1
- package/dist/backend/backend/src/scripts/run-log-rotation.d.ts +3 -0
- package/dist/backend/backend/src/scripts/run-log-rotation.d.ts.map +1 -0
- package/dist/backend/backend/src/scripts/run-log-rotation.js +31 -0
- package/dist/backend/backend/src/scripts/run-log-rotation.js.map +1 -0
- package/dist/backend/backend/src/services/agent/agent-registration.service.d.ts +10 -0
- package/dist/backend/backend/src/services/agent/agent-registration.service.d.ts.map +1 -1
- package/dist/backend/backend/src/services/agent/agent-registration.service.js +85 -1
- package/dist/backend/backend/src/services/agent/agent-registration.service.js.map +1 -1
- package/dist/backend/backend/src/services/agent/auditor-scheduler.service.d.ts +150 -0
- package/dist/backend/backend/src/services/agent/auditor-scheduler.service.d.ts.map +1 -0
- package/dist/backend/backend/src/services/agent/auditor-scheduler.service.js +307 -0
- package/dist/backend/backend/src/services/agent/auditor-scheduler.service.js.map +1 -0
- package/dist/backend/backend/src/services/agent/crewly-agent/agent-runner.service.d.ts +105 -0
- package/dist/backend/backend/src/services/agent/crewly-agent/agent-runner.service.d.ts.map +1 -0
- package/dist/backend/backend/src/services/agent/crewly-agent/agent-runner.service.js +199 -0
- package/dist/backend/backend/src/services/agent/crewly-agent/agent-runner.service.js.map +1 -0
- package/dist/backend/backend/src/services/agent/crewly-agent/api-client.d.ts +68 -0
- package/dist/backend/backend/src/services/agent/crewly-agent/api-client.d.ts.map +1 -0
- package/dist/backend/backend/src/services/agent/crewly-agent/api-client.js +131 -0
- package/dist/backend/backend/src/services/agent/crewly-agent/api-client.js.map +1 -0
- package/dist/backend/backend/src/services/agent/crewly-agent/auditor-tools.d.ts +29 -0
- package/dist/backend/backend/src/services/agent/crewly-agent/auditor-tools.d.ts.map +1 -0
- package/dist/backend/backend/src/services/agent/crewly-agent/auditor-tools.js +229 -0
- package/dist/backend/backend/src/services/agent/crewly-agent/auditor-tools.js.map +1 -0
- package/dist/backend/backend/src/services/agent/crewly-agent/crewly-agent-runtime.service.d.ts +127 -0
- package/dist/backend/backend/src/services/agent/crewly-agent/crewly-agent-runtime.service.d.ts.map +1 -0
- package/dist/backend/backend/src/services/agent/crewly-agent/crewly-agent-runtime.service.js +242 -0
- package/dist/backend/backend/src/services/agent/crewly-agent/crewly-agent-runtime.service.js.map +1 -0
- package/dist/backend/backend/src/services/agent/crewly-agent/in-process-log-buffer.d.ts +95 -0
- package/dist/backend/backend/src/services/agent/crewly-agent/in-process-log-buffer.d.ts.map +1 -0
- package/dist/backend/backend/src/services/agent/crewly-agent/in-process-log-buffer.js +130 -0
- package/dist/backend/backend/src/services/agent/crewly-agent/in-process-log-buffer.js.map +1 -0
- package/dist/backend/backend/src/services/agent/crewly-agent/index.d.ts +14 -0
- package/dist/backend/backend/src/services/agent/crewly-agent/index.d.ts.map +1 -0
- package/dist/backend/backend/src/services/agent/crewly-agent/index.js +14 -0
- package/dist/backend/backend/src/services/agent/crewly-agent/index.js.map +1 -0
- package/dist/backend/backend/src/services/agent/crewly-agent/model-manager.d.ts +57 -0
- package/dist/backend/backend/src/services/agent/crewly-agent/model-manager.d.ts.map +1 -0
- package/dist/backend/backend/src/services/agent/crewly-agent/model-manager.js +93 -0
- package/dist/backend/backend/src/services/agent/crewly-agent/model-manager.js.map +1 -0
- package/dist/backend/backend/src/services/agent/crewly-agent/smoke-test.d.ts +13 -0
- package/dist/backend/backend/src/services/agent/crewly-agent/smoke-test.d.ts.map +1 -0
- package/dist/backend/backend/src/services/agent/crewly-agent/smoke-test.js +91 -0
- package/dist/backend/backend/src/services/agent/crewly-agent/smoke-test.js.map +1 -0
- package/dist/backend/backend/src/services/agent/crewly-agent/tool-registry.d.ts +29 -0
- package/dist/backend/backend/src/services/agent/crewly-agent/tool-registry.d.ts.map +1 -0
- package/dist/backend/backend/src/services/agent/crewly-agent/tool-registry.js +519 -0
- package/dist/backend/backend/src/services/agent/crewly-agent/tool-registry.js.map +1 -0
- package/dist/backend/backend/src/services/agent/crewly-agent/types.d.ts +159 -0
- package/dist/backend/backend/src/services/agent/crewly-agent/types.d.ts.map +1 -0
- package/dist/backend/backend/src/services/agent/crewly-agent/types.js +63 -0
- package/dist/backend/backend/src/services/agent/crewly-agent/types.js.map +1 -0
- package/dist/backend/backend/src/services/agent/runtime-exit-monitor.service.d.ts +56 -1
- package/dist/backend/backend/src/services/agent/runtime-exit-monitor.service.d.ts.map +1 -1
- package/dist/backend/backend/src/services/agent/runtime-exit-monitor.service.js +273 -215
- package/dist/backend/backend/src/services/agent/runtime-exit-monitor.service.js.map +1 -1
- package/dist/backend/backend/src/services/agent/runtime-service.factory.js +8 -8
- package/dist/backend/backend/src/services/agent/runtime-service.factory.js.map +1 -1
- package/dist/backend/backend/src/services/chat/chat.service.d.ts +7 -1
- package/dist/backend/backend/src/services/chat/chat.service.d.ts.map +1 -1
- package/dist/backend/backend/src/services/chat/chat.service.js +14 -5
- package/dist/backend/backend/src/services/chat/chat.service.js.map +1 -1
- package/dist/backend/backend/src/services/cloud/admin-seed.service.d.ts +18 -0
- package/dist/backend/backend/src/services/cloud/admin-seed.service.d.ts.map +1 -0
- package/dist/backend/backend/src/services/cloud/admin-seed.service.js +50 -0
- package/dist/backend/backend/src/services/cloud/admin-seed.service.js.map +1 -0
- package/dist/backend/backend/src/services/cloud/cloud-features.d.ts +19 -0
- package/dist/backend/backend/src/services/cloud/cloud-features.d.ts.map +1 -0
- package/dist/backend/backend/src/services/cloud/cloud-features.js +23 -0
- package/dist/backend/backend/src/services/cloud/cloud-features.js.map +1 -0
- package/dist/backend/backend/src/services/cloud/cloud-task-processor.service.d.ts +3 -3
- package/dist/backend/backend/src/services/cloud/cloud-task-processor.service.d.ts.map +1 -1
- package/dist/backend/backend/src/services/cloud/cloud-task-processor.service.js +10 -6
- package/dist/backend/backend/src/services/cloud/cloud-task-processor.service.js.map +1 -1
- package/dist/backend/backend/src/services/cloud/mongodb.service.d.ts +45 -0
- package/dist/backend/backend/src/services/cloud/mongodb.service.d.ts.map +1 -0
- package/dist/backend/backend/src/services/cloud/mongodb.service.js +76 -0
- package/dist/backend/backend/src/services/cloud/mongodb.service.js.map +1 -0
- package/dist/backend/backend/src/services/cloud/relay-server.service.d.ts +0 -2
- package/dist/backend/backend/src/services/cloud/relay-server.service.d.ts.map +1 -1
- package/dist/backend/backend/src/services/cloud/relay-server.service.js +7 -36
- package/dist/backend/backend/src/services/cloud/relay-server.service.js.map +1 -1
- package/dist/backend/backend/src/services/continuation/continuation.service.d.ts.map +1 -1
- package/dist/backend/backend/src/services/continuation/continuation.service.js +5 -10
- package/dist/backend/backend/src/services/continuation/continuation.service.js.map +1 -1
- package/dist/backend/backend/src/services/event-bus/event-bus.service.d.ts +10 -2
- package/dist/backend/backend/src/services/event-bus/event-bus.service.d.ts.map +1 -1
- package/dist/backend/backend/src/services/event-bus/event-bus.service.js +47 -12
- package/dist/backend/backend/src/services/event-bus/event-bus.service.js.map +1 -1
- package/dist/backend/backend/src/services/mcp-server.js +1 -1
- package/dist/backend/backend/src/services/mcp-server.js.map +1 -1
- package/dist/backend/backend/src/services/messaging/adapters/google-chat-messenger.adapter.d.ts +95 -22
- package/dist/backend/backend/src/services/messaging/adapters/google-chat-messenger.adapter.d.ts.map +1 -1
- package/dist/backend/backend/src/services/messaging/adapters/google-chat-messenger.adapter.js +284 -60
- package/dist/backend/backend/src/services/messaging/adapters/google-chat-messenger.adapter.js.map +1 -1
- package/dist/backend/backend/src/services/messaging/message-queue.service.d.ts.map +1 -1
- package/dist/backend/backend/src/services/messaging/message-queue.service.js +2 -1
- package/dist/backend/backend/src/services/messaging/message-queue.service.js.map +1 -1
- package/dist/backend/backend/src/services/messaging/queue-processor.service.d.ts.map +1 -1
- package/dist/backend/backend/src/services/messaging/queue-processor.service.js +22 -4
- package/dist/backend/backend/src/services/messaging/queue-processor.service.js.map +1 -1
- package/dist/backend/backend/src/services/messaging/response-router.service.d.ts +8 -0
- package/dist/backend/backend/src/services/messaging/response-router.service.d.ts.map +1 -1
- package/dist/backend/backend/src/services/messaging/response-router.service.js +42 -0
- package/dist/backend/backend/src/services/messaging/response-router.service.js.map +1 -1
- package/dist/backend/backend/src/services/orchestrator/orchestrator-restart.service.d.ts.map +1 -1
- package/dist/backend/backend/src/services/orchestrator/orchestrator-restart.service.js +6 -0
- package/dist/backend/backend/src/services/orchestrator/orchestrator-restart.service.js.map +1 -1
- package/dist/backend/backend/src/services/payment/stripe.service.d.ts +4 -43
- package/dist/backend/backend/src/services/payment/stripe.service.d.ts.map +1 -1
- package/dist/backend/backend/src/services/payment/stripe.service.js +56 -180
- package/dist/backend/backend/src/services/payment/stripe.service.js.map +1 -1
- package/dist/backend/backend/src/services/session/index.d.ts +2 -0
- package/dist/backend/backend/src/services/session/index.d.ts.map +1 -1
- package/dist/backend/backend/src/services/session/index.js +2 -0
- package/dist/backend/backend/src/services/session/index.js.map +1 -1
- package/dist/backend/backend/src/services/session/log-rotation.service.d.ts +163 -0
- package/dist/backend/backend/src/services/session/log-rotation.service.d.ts.map +1 -0
- package/dist/backend/backend/src/services/session/log-rotation.service.js +362 -0
- package/dist/backend/backend/src/services/session/log-rotation.service.js.map +1 -0
- package/dist/backend/backend/src/services/settings/settings.service.js +1 -1
- package/dist/backend/backend/src/services/settings/settings.service.js.map +1 -1
- package/dist/backend/backend/src/services/slack/slack-orchestrator-bridge.d.ts +11 -0
- package/dist/backend/backend/src/services/slack/slack-orchestrator-bridge.d.ts.map +1 -1
- package/dist/backend/backend/src/services/slack/slack-orchestrator-bridge.js +83 -1
- package/dist/backend/backend/src/services/slack/slack-orchestrator-bridge.js.map +1 -1
- package/dist/backend/backend/src/services/template/template.service.d.ts +9 -44
- package/dist/backend/backend/src/services/template/template.service.d.ts.map +1 -1
- package/dist/backend/backend/src/services/template/template.service.js +7 -80
- package/dist/backend/backend/src/services/template/template.service.js.map +1 -1
- package/dist/backend/backend/src/services/workflow/scheduler.service.d.ts +35 -0
- package/dist/backend/backend/src/services/workflow/scheduler.service.d.ts.map +1 -1
- package/dist/backend/backend/src/services/workflow/scheduler.service.js +133 -0
- package/dist/backend/backend/src/services/workflow/scheduler.service.js.map +1 -1
- package/dist/backend/backend/src/types/chat.types.d.ts +1 -1
- package/dist/backend/backend/src/types/chat.types.d.ts.map +1 -1
- package/dist/backend/backend/src/types/chat.types.js +21 -17
- package/dist/backend/backend/src/types/chat.types.js.map +1 -1
- package/dist/backend/backend/src/types/event-bus.types.d.ts +31 -0
- package/dist/backend/backend/src/types/event-bus.types.d.ts.map +1 -1
- package/dist/backend/backend/src/types/event-bus.types.js +50 -0
- package/dist/backend/backend/src/types/event-bus.types.js.map +1 -1
- package/dist/backend/backend/src/types/index.d.ts +1 -1
- package/dist/backend/backend/src/types/index.d.ts.map +1 -1
- package/dist/backend/backend/src/types/messaging.types.d.ts +4 -0
- package/dist/backend/backend/src/types/messaging.types.d.ts.map +1 -1
- package/dist/backend/backend/src/types/messaging.types.js.map +1 -1
- package/dist/backend/backend/src/types/settings.types.d.ts +1 -1
- package/dist/backend/backend/src/types/settings.types.d.ts.map +1 -1
- package/dist/backend/backend/src/types/settings.types.js +4 -4
- package/dist/backend/backend/src/types/settings.types.js.map +1 -1
- package/dist/backend/backend/src/types/team-template.types.d.ts +2 -2
- package/dist/backend/backend/src/types/team-template.types.d.ts.map +1 -1
- package/dist/backend/backend/src/types/team-template.types.js +1 -1
- package/dist/backend/backend/src/types/team-template.types.js.map +1 -1
- package/dist/backend/backend/src/websocket/terminal.gateway.d.ts +4 -4
- package/dist/backend/backend/src/websocket/terminal.gateway.d.ts.map +1 -1
- package/dist/backend/backend/src/websocket/terminal.gateway.js +9 -6
- package/dist/backend/backend/src/websocket/terminal.gateway.js.map +1 -1
- package/dist/backend/config/constants.d.ts +4 -2
- package/dist/backend/config/constants.d.ts.map +1 -1
- package/dist/backend/config/constants.js +4 -2
- package/dist/backend/config/constants.js.map +1 -1
- package/dist/cli/backend/src/constants.d.ts +77 -13
- package/dist/cli/backend/src/constants.d.ts.map +1 -1
- package/dist/cli/backend/src/constants.js +78 -16
- package/dist/cli/backend/src/constants.js.map +1 -1
- package/dist/cli/backend/src/services/mcp-server.js +1 -1
- package/dist/cli/backend/src/services/mcp-server.js.map +1 -1
- package/dist/cli/backend/src/types/chat.types.d.ts +1 -1
- package/dist/cli/backend/src/types/chat.types.d.ts.map +1 -1
- package/dist/cli/backend/src/types/chat.types.js +21 -17
- package/dist/cli/backend/src/types/chat.types.js.map +1 -1
- package/dist/cli/backend/src/types/index.d.ts +1 -1
- package/dist/cli/backend/src/types/index.d.ts.map +1 -1
- package/dist/cli/backend/src/types/settings.types.d.ts +1 -1
- package/dist/cli/backend/src/types/settings.types.d.ts.map +1 -1
- package/dist/cli/backend/src/types/settings.types.js +4 -4
- package/dist/cli/backend/src/types/settings.types.js.map +1 -1
- package/dist/cli/config/constants.d.ts +4 -2
- package/dist/cli/config/constants.d.ts.map +1 -1
- package/dist/cli/config/constants.js +4 -2
- package/dist/cli/config/constants.js.map +1 -1
- package/frontend/dist/assets/index-5cf8820f.js +4919 -0
- package/frontend/dist/assets/index-dee3a3a9.css +33 -0
- package/frontend/dist/index.html +2 -2
- package/package.json +15 -9
- package/frontend/dist/assets/index-510ab719.css +0 -33
- package/frontend/dist/assets/index-935cd846.js +0 -4961
|
@@ -0,0 +1,242 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Crewly Agent Runtime Service
|
|
3
|
+
*
|
|
4
|
+
* Concrete RuntimeAgentService subclass for the in-process Crewly Agent.
|
|
5
|
+
* Unlike PTY-based runtimes (Claude Code, Gemini CLI), this runtime runs
|
|
6
|
+
* entirely inside the Node.js process using the Vercel AI SDK.
|
|
7
|
+
*
|
|
8
|
+
* No tmux session, no shell commands — messages are routed directly to
|
|
9
|
+
* the AgentRunnerService.handleMessage() method.
|
|
10
|
+
*
|
|
11
|
+
* @module services/agent/crewly-agent/crewly-agent-runtime.service
|
|
12
|
+
*/
|
|
13
|
+
import { promises as fs } from 'fs';
|
|
14
|
+
import * as path from 'path';
|
|
15
|
+
import { RuntimeAgentService } from '../runtime-agent.service.abstract.js';
|
|
16
|
+
import { AgentRunnerService } from './agent-runner.service.js';
|
|
17
|
+
import { RUNTIME_TYPES } from '../../../constants.js';
|
|
18
|
+
import { CREWLY_AGENT_DEFAULTS } from './types.js';
|
|
19
|
+
import { InProcessLogBuffer } from './in-process-log-buffer.js';
|
|
20
|
+
/**
|
|
21
|
+
* In-process Crewly Agent runtime powered by AI SDK generateText.
|
|
22
|
+
*
|
|
23
|
+
* Key differences from PTY-based runtimes:
|
|
24
|
+
* - No tmux session needed — runs in-process
|
|
25
|
+
* - Messages routed via handleMessage() instead of PTY write
|
|
26
|
+
* - System prompt loaded from config/roles/orchestrator/prompt.md
|
|
27
|
+
* - Ready immediately after initialization (no CLI startup wait)
|
|
28
|
+
*
|
|
29
|
+
* @example
|
|
30
|
+
* ```typescript
|
|
31
|
+
* const runtime = new CrewlyAgentRuntimeService(sessionHelper, projectRoot);
|
|
32
|
+
* await runtime.initializeInProcess('crewly-orc');
|
|
33
|
+
* const result = await runtime.handleMessage('Check all team statuses');
|
|
34
|
+
* ```
|
|
35
|
+
*/
|
|
36
|
+
export class CrewlyAgentRuntimeService extends RuntimeAgentService {
|
|
37
|
+
agentRunner = null;
|
|
38
|
+
initialized = false;
|
|
39
|
+
currentSessionName = null;
|
|
40
|
+
logBuffer;
|
|
41
|
+
constructor(sessionHelper, projectRoot) {
|
|
42
|
+
super(sessionHelper, projectRoot);
|
|
43
|
+
this.logBuffer = InProcessLogBuffer.getInstance();
|
|
44
|
+
}
|
|
45
|
+
// ===== Abstract method implementations =====
|
|
46
|
+
/**
|
|
47
|
+
* Get the runtime type identifier.
|
|
48
|
+
*
|
|
49
|
+
* @returns 'crewly-agent' runtime type constant
|
|
50
|
+
*/
|
|
51
|
+
getRuntimeType() {
|
|
52
|
+
return RUNTIME_TYPES.CREWLY_AGENT;
|
|
53
|
+
}
|
|
54
|
+
/**
|
|
55
|
+
* Detect if the Crewly Agent runtime is running.
|
|
56
|
+
* For in-process runtime, this checks if the AgentRunner is initialized.
|
|
57
|
+
*
|
|
58
|
+
* @param _sessionName - Session name (unused for in-process runtime)
|
|
59
|
+
* @returns True if the agent runner is initialized
|
|
60
|
+
*/
|
|
61
|
+
async detectRuntimeSpecific(_sessionName) {
|
|
62
|
+
return this.initialized && this.agentRunner !== null && this.agentRunner.isInitialized();
|
|
63
|
+
}
|
|
64
|
+
/**
|
|
65
|
+
* Get patterns that indicate the runtime is ready.
|
|
66
|
+
* For in-process runtime, there are no terminal patterns — readiness is checked programmatically.
|
|
67
|
+
*
|
|
68
|
+
* @returns Empty array (no terminal output to match)
|
|
69
|
+
*/
|
|
70
|
+
getRuntimeReadyPatterns() {
|
|
71
|
+
return ['Crewly Agent Ready'];
|
|
72
|
+
}
|
|
73
|
+
/**
|
|
74
|
+
* Get patterns that indicate runtime errors.
|
|
75
|
+
*
|
|
76
|
+
* @returns Empty array (errors are thrown as exceptions, not terminal patterns)
|
|
77
|
+
*/
|
|
78
|
+
getRuntimeErrorPatterns() {
|
|
79
|
+
return [];
|
|
80
|
+
}
|
|
81
|
+
/**
|
|
82
|
+
* Get patterns that indicate the runtime has exited.
|
|
83
|
+
*
|
|
84
|
+
* @returns Empty array (in-process runtime doesn't exit via terminal)
|
|
85
|
+
*/
|
|
86
|
+
getRuntimeExitPatterns() {
|
|
87
|
+
return [];
|
|
88
|
+
}
|
|
89
|
+
// ===== In-process lifecycle methods =====
|
|
90
|
+
/**
|
|
91
|
+
* Initialize the in-process agent runtime.
|
|
92
|
+
*
|
|
93
|
+
* Loads the system prompt from config/roles/orchestrator/prompt.md,
|
|
94
|
+
* creates the AgentRunnerService, and initializes the model.
|
|
95
|
+
*
|
|
96
|
+
* @param sessionName - Session name for this agent instance
|
|
97
|
+
* @param config - Optional partial config overrides
|
|
98
|
+
* @param roleName - Role name for system prompt lookup (default: 'orchestrator')
|
|
99
|
+
*/
|
|
100
|
+
async initializeInProcess(sessionName, config, roleName) {
|
|
101
|
+
this.currentSessionName = sessionName;
|
|
102
|
+
// Load system prompt from file (role-specific)
|
|
103
|
+
const systemPrompt = await this.loadSystemPrompt(roleName || 'orchestrator');
|
|
104
|
+
// Build full config with defaults
|
|
105
|
+
const fullConfig = {
|
|
106
|
+
model: config?.model || CREWLY_AGENT_DEFAULTS.DEFAULT_MODEL,
|
|
107
|
+
maxSteps: config?.maxSteps || CREWLY_AGENT_DEFAULTS.MAX_STEPS,
|
|
108
|
+
sessionName,
|
|
109
|
+
apiBaseUrl: config?.apiBaseUrl || CREWLY_AGENT_DEFAULTS.API_BASE_URL,
|
|
110
|
+
systemPrompt: config?.systemPrompt || systemPrompt,
|
|
111
|
+
maxHistoryMessages: config?.maxHistoryMessages || CREWLY_AGENT_DEFAULTS.MAX_HISTORY_MESSAGES,
|
|
112
|
+
compactionThreshold: config?.compactionThreshold || CREWLY_AGENT_DEFAULTS.COMPACTION_THRESHOLD,
|
|
113
|
+
};
|
|
114
|
+
this.agentRunner = new AgentRunnerService(fullConfig);
|
|
115
|
+
await this.agentRunner.initialize();
|
|
116
|
+
this.initialized = true;
|
|
117
|
+
// Register in-process session for frontend terminal visibility
|
|
118
|
+
this.logBuffer.registerSession(sessionName);
|
|
119
|
+
this.logBuffer.append(sessionName, 'info', `Crewly Agent initialized (${fullConfig.model.provider}/${fullConfig.model.modelId})`);
|
|
120
|
+
this.logger.info('Crewly Agent runtime initialized', {
|
|
121
|
+
sessionName,
|
|
122
|
+
model: `${fullConfig.model.provider}/${fullConfig.model.modelId}`,
|
|
123
|
+
maxSteps: fullConfig.maxSteps,
|
|
124
|
+
});
|
|
125
|
+
}
|
|
126
|
+
/**
|
|
127
|
+
* Handle an incoming message by routing it to the AgentRunner.
|
|
128
|
+
*
|
|
129
|
+
* This is the primary entry point for message delivery, replacing
|
|
130
|
+
* the PTY write path used by other runtimes.
|
|
131
|
+
*
|
|
132
|
+
* @param message - The message to process
|
|
133
|
+
* @returns Agent run result with text response and tool call records
|
|
134
|
+
* @throws Error if the runtime is not initialized
|
|
135
|
+
*/
|
|
136
|
+
async handleMessage(message) {
|
|
137
|
+
if (!this.agentRunner || !this.initialized) {
|
|
138
|
+
throw new Error('Crewly Agent runtime not initialized. Call initializeInProcess() first.');
|
|
139
|
+
}
|
|
140
|
+
const session = this.currentSessionName;
|
|
141
|
+
this.logBuffer.append(session, 'info', `← Message received (${message.length} chars)`);
|
|
142
|
+
this.logger.debug('Handling message', {
|
|
143
|
+
sessionName: session,
|
|
144
|
+
messageLength: message.length,
|
|
145
|
+
historyLength: this.agentRunner.getHistoryLength(),
|
|
146
|
+
});
|
|
147
|
+
try {
|
|
148
|
+
const result = await this.agentRunner.run(message);
|
|
149
|
+
// Log tool calls to buffer for frontend visibility
|
|
150
|
+
for (const tc of result.toolCalls) {
|
|
151
|
+
const argsPreview = JSON.stringify(tc.args).substring(0, 120);
|
|
152
|
+
this.logBuffer.append(session, 'info', `🔧 ${tc.toolName}(${argsPreview})`);
|
|
153
|
+
const resultPreview = tc.result ? JSON.stringify(tc.result).substring(0, 200) : 'void';
|
|
154
|
+
this.logBuffer.append(session, 'debug', ` → ${resultPreview}`);
|
|
155
|
+
}
|
|
156
|
+
// Log response summary
|
|
157
|
+
const textPreview = result.text ? result.text.substring(0, 150) : '(no text)';
|
|
158
|
+
this.logBuffer.append(session, 'info', `→ Response (${result.steps} steps, ${result.toolCalls.length} tools): ${textPreview}`);
|
|
159
|
+
this.logBuffer.append(session, 'debug', ` Tokens: ${result.usage.input}in/${result.usage.output}out`);
|
|
160
|
+
this.logger.info('Message processed', {
|
|
161
|
+
sessionName: session,
|
|
162
|
+
steps: result.steps,
|
|
163
|
+
toolCalls: result.toolCalls.length,
|
|
164
|
+
usage: result.usage,
|
|
165
|
+
finishReason: result.finishReason,
|
|
166
|
+
});
|
|
167
|
+
return result;
|
|
168
|
+
}
|
|
169
|
+
catch (error) {
|
|
170
|
+
const errMsg = error instanceof Error ? error.message : String(error);
|
|
171
|
+
this.logBuffer.append(session, 'error', `Agent error: ${errMsg}`);
|
|
172
|
+
throw error;
|
|
173
|
+
}
|
|
174
|
+
}
|
|
175
|
+
/**
|
|
176
|
+
* Check if the runtime is initialized and ready to handle messages.
|
|
177
|
+
*
|
|
178
|
+
* @returns True if initializeInProcess() has been called successfully
|
|
179
|
+
*/
|
|
180
|
+
isReady() {
|
|
181
|
+
return this.initialized && this.agentRunner !== null && this.agentRunner.isInitialized();
|
|
182
|
+
}
|
|
183
|
+
/**
|
|
184
|
+
* Get the current agent runner instance (for inspection/testing).
|
|
185
|
+
*
|
|
186
|
+
* @returns The AgentRunnerService instance, or null if not initialized
|
|
187
|
+
*/
|
|
188
|
+
getAgentRunner() {
|
|
189
|
+
return this.agentRunner;
|
|
190
|
+
}
|
|
191
|
+
/**
|
|
192
|
+
* Get the session name this runtime was initialized with.
|
|
193
|
+
*
|
|
194
|
+
* @returns Session name string, or null if not initialized
|
|
195
|
+
*/
|
|
196
|
+
getSessionName() {
|
|
197
|
+
return this.currentSessionName;
|
|
198
|
+
}
|
|
199
|
+
/**
|
|
200
|
+
* Shut down the in-process runtime.
|
|
201
|
+
* Clears the agent runner and resets state.
|
|
202
|
+
*/
|
|
203
|
+
shutdown() {
|
|
204
|
+
this.logger.info('Shutting down Crewly Agent runtime', {
|
|
205
|
+
sessionName: this.currentSessionName,
|
|
206
|
+
});
|
|
207
|
+
if (this.currentSessionName) {
|
|
208
|
+
this.logBuffer.append(this.currentSessionName, 'info', 'Crewly Agent shutting down');
|
|
209
|
+
this.logBuffer.removeSession(this.currentSessionName);
|
|
210
|
+
}
|
|
211
|
+
this.agentRunner = null;
|
|
212
|
+
this.initialized = false;
|
|
213
|
+
this.currentSessionName = null;
|
|
214
|
+
}
|
|
215
|
+
// ===== Private helpers =====
|
|
216
|
+
/**
|
|
217
|
+
* Load the system prompt for a given role from file.
|
|
218
|
+
*
|
|
219
|
+
* @param roleName - Role name (maps to config/roles/{roleName}/prompt.md)
|
|
220
|
+
* @returns System prompt content
|
|
221
|
+
* @throws Error if the prompt file cannot be read
|
|
222
|
+
*/
|
|
223
|
+
async loadSystemPrompt(roleName = 'orchestrator') {
|
|
224
|
+
const promptPath = path.join(this.projectRoot, 'config', 'roles', roleName, 'prompt.md');
|
|
225
|
+
try {
|
|
226
|
+
const content = await fs.readFile(promptPath, 'utf8');
|
|
227
|
+
this.logger.debug('System prompt loaded', {
|
|
228
|
+
promptPath,
|
|
229
|
+
length: content.length,
|
|
230
|
+
});
|
|
231
|
+
return content;
|
|
232
|
+
}
|
|
233
|
+
catch (error) {
|
|
234
|
+
this.logger.warn('Failed to load system prompt, using fallback', {
|
|
235
|
+
promptPath,
|
|
236
|
+
error: error instanceof Error ? error.message : String(error),
|
|
237
|
+
});
|
|
238
|
+
return 'You are the Crewly orchestrator agent. Manage teams and delegate tasks.';
|
|
239
|
+
}
|
|
240
|
+
}
|
|
241
|
+
}
|
|
242
|
+
//# sourceMappingURL=crewly-agent-runtime.service.js.map
|
package/dist/backend/backend/src/services/agent/crewly-agent/crewly-agent-runtime.service.js.map
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"crewly-agent-runtime.service.js","sourceRoot":"","sources":["../../../../../../../backend/src/services/agent/crewly-agent/crewly-agent-runtime.service.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,95 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* In-Process Log Buffer
|
|
3
|
+
*
|
|
4
|
+
* Ring buffer that captures structured output from in-process Crewly Agent
|
|
5
|
+
* runtimes. Provides the same interface as PTY terminal capture so the
|
|
6
|
+
* frontend Side Terminal panel can display crewly-agent activity.
|
|
7
|
+
*
|
|
8
|
+
* @module services/agent/crewly-agent/in-process-log-buffer
|
|
9
|
+
*/
|
|
10
|
+
/**
|
|
11
|
+
* Single log entry from an in-process agent session.
|
|
12
|
+
*/
|
|
13
|
+
export interface LogEntry {
|
|
14
|
+
/** ISO timestamp */
|
|
15
|
+
timestamp: string;
|
|
16
|
+
/** Log level */
|
|
17
|
+
level: 'info' | 'debug' | 'warn' | 'error';
|
|
18
|
+
/** Log message */
|
|
19
|
+
message: string;
|
|
20
|
+
}
|
|
21
|
+
/**
|
|
22
|
+
* Singleton buffer that captures in-process agent output.
|
|
23
|
+
*
|
|
24
|
+
* Used by CrewlyAgentRuntimeService to log tool calls, responses,
|
|
25
|
+
* and errors. The terminal controller reads from this buffer when
|
|
26
|
+
* the requested session is an in-process agent (no PTY).
|
|
27
|
+
*
|
|
28
|
+
* @example
|
|
29
|
+
* ```typescript
|
|
30
|
+
* const buffer = InProcessLogBuffer.getInstance();
|
|
31
|
+
* buffer.append('crewly-assistant', 'info', 'Calling get_team_status tool...');
|
|
32
|
+
* const output = buffer.capture('crewly-assistant', 50);
|
|
33
|
+
* ```
|
|
34
|
+
*/
|
|
35
|
+
export declare class InProcessLogBuffer {
|
|
36
|
+
private static instance;
|
|
37
|
+
private sessions;
|
|
38
|
+
/**
|
|
39
|
+
* Get the singleton instance.
|
|
40
|
+
*
|
|
41
|
+
* @returns The shared InProcessLogBuffer instance
|
|
42
|
+
*/
|
|
43
|
+
static getInstance(): InProcessLogBuffer;
|
|
44
|
+
/**
|
|
45
|
+
* Reset the singleton (for testing).
|
|
46
|
+
*/
|
|
47
|
+
static resetInstance(): void;
|
|
48
|
+
/**
|
|
49
|
+
* Append a log entry for a session.
|
|
50
|
+
*
|
|
51
|
+
* @param sessionName - In-process agent session name
|
|
52
|
+
* @param level - Log level
|
|
53
|
+
* @param message - Log message text
|
|
54
|
+
*/
|
|
55
|
+
append(sessionName: string, level: LogEntry['level'], message: string): void;
|
|
56
|
+
/**
|
|
57
|
+
* Check if a session has any log entries.
|
|
58
|
+
*
|
|
59
|
+
* @param sessionName - Session to check
|
|
60
|
+
* @returns True if the session has been registered with at least one entry
|
|
61
|
+
*/
|
|
62
|
+
hasSession(sessionName: string): boolean;
|
|
63
|
+
/**
|
|
64
|
+
* Capture recent output from an in-process session, formatted like
|
|
65
|
+
* terminal output for frontend compatibility.
|
|
66
|
+
*
|
|
67
|
+
* @param sessionName - Session to capture from
|
|
68
|
+
* @param lines - Maximum number of lines to return
|
|
69
|
+
* @returns Formatted output string (one log entry per line)
|
|
70
|
+
*/
|
|
71
|
+
capture(sessionName: string, lines?: number): string;
|
|
72
|
+
/**
|
|
73
|
+
* Register a session (creates empty entry list).
|
|
74
|
+
*
|
|
75
|
+
* @param sessionName - Session to register
|
|
76
|
+
*/
|
|
77
|
+
registerSession(sessionName: string): void;
|
|
78
|
+
/**
|
|
79
|
+
* Remove a session's log buffer.
|
|
80
|
+
*
|
|
81
|
+
* @param sessionName - Session to remove
|
|
82
|
+
*/
|
|
83
|
+
removeSession(sessionName: string): void;
|
|
84
|
+
/**
|
|
85
|
+
* Get all registered in-process session names.
|
|
86
|
+
*
|
|
87
|
+
* @returns Array of session names
|
|
88
|
+
*/
|
|
89
|
+
getSessionNames(): string[];
|
|
90
|
+
/**
|
|
91
|
+
* Clear all sessions (for testing).
|
|
92
|
+
*/
|
|
93
|
+
clear(): void;
|
|
94
|
+
}
|
|
95
|
+
//# sourceMappingURL=in-process-log-buffer.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"in-process-log-buffer.d.ts","sourceRoot":"","sources":["../../../../../../../backend/src/services/agent/crewly-agent/in-process-log-buffer.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAEH;;GAEG;AACH,MAAM,WAAW,QAAQ;IACvB,oBAAoB;IACpB,SAAS,EAAE,MAAM,CAAC;IAClB,gBAAgB;IAChB,KAAK,EAAE,MAAM,GAAG,OAAO,GAAG,MAAM,GAAG,OAAO,CAAC;IAC3C,kBAAkB;IAClB,OAAO,EAAE,MAAM,CAAC;CACjB;AAKD;;;;;;;;;;;;;GAaG;AACH,qBAAa,kBAAkB;IAC7B,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAmC;IAC1D,OAAO,CAAC,QAAQ,CAAiC;IAEjD;;;;OAIG;IACH,MAAM,CAAC,WAAW,IAAI,kBAAkB;IAOxC;;OAEG;IACH,MAAM,CAAC,aAAa,IAAI,IAAI;IAI5B;;;;;;OAMG;IACH,MAAM,CAAC,WAAW,EAAE,MAAM,EAAE,KAAK,EAAE,QAAQ,CAAC,OAAO,CAAC,EAAE,OAAO,EAAE,MAAM,GAAG,IAAI;IAgB5E;;;;;OAKG;IACH,UAAU,CAAC,WAAW,EAAE,MAAM,GAAG,OAAO;IAIxC;;;;;;;OAOG;IACH,OAAO,CAAC,WAAW,EAAE,MAAM,EAAE,KAAK,SAAM,GAAG,MAAM;IAajD;;;;OAIG;IACH,eAAe,CAAC,WAAW,EAAE,MAAM,GAAG,IAAI;IAM1C;;;;OAIG;IACH,aAAa,CAAC,WAAW,EAAE,MAAM,GAAG,IAAI;IAIxC;;;;OAIG;IACH,eAAe,IAAI,MAAM,EAAE;IAI3B;;OAEG;IACH,KAAK,IAAI,IAAI;CAGd"}
|
|
@@ -0,0 +1,130 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* In-Process Log Buffer
|
|
3
|
+
*
|
|
4
|
+
* Ring buffer that captures structured output from in-process Crewly Agent
|
|
5
|
+
* runtimes. Provides the same interface as PTY terminal capture so the
|
|
6
|
+
* frontend Side Terminal panel can display crewly-agent activity.
|
|
7
|
+
*
|
|
8
|
+
* @module services/agent/crewly-agent/in-process-log-buffer
|
|
9
|
+
*/
|
|
10
|
+
/** Maximum number of entries to keep per session */
|
|
11
|
+
const MAX_ENTRIES_PER_SESSION = 500;
|
|
12
|
+
/**
|
|
13
|
+
* Singleton buffer that captures in-process agent output.
|
|
14
|
+
*
|
|
15
|
+
* Used by CrewlyAgentRuntimeService to log tool calls, responses,
|
|
16
|
+
* and errors. The terminal controller reads from this buffer when
|
|
17
|
+
* the requested session is an in-process agent (no PTY).
|
|
18
|
+
*
|
|
19
|
+
* @example
|
|
20
|
+
* ```typescript
|
|
21
|
+
* const buffer = InProcessLogBuffer.getInstance();
|
|
22
|
+
* buffer.append('crewly-assistant', 'info', 'Calling get_team_status tool...');
|
|
23
|
+
* const output = buffer.capture('crewly-assistant', 50);
|
|
24
|
+
* ```
|
|
25
|
+
*/
|
|
26
|
+
export class InProcessLogBuffer {
|
|
27
|
+
static instance = null;
|
|
28
|
+
sessions = new Map();
|
|
29
|
+
/**
|
|
30
|
+
* Get the singleton instance.
|
|
31
|
+
*
|
|
32
|
+
* @returns The shared InProcessLogBuffer instance
|
|
33
|
+
*/
|
|
34
|
+
static getInstance() {
|
|
35
|
+
if (!InProcessLogBuffer.instance) {
|
|
36
|
+
InProcessLogBuffer.instance = new InProcessLogBuffer();
|
|
37
|
+
}
|
|
38
|
+
return InProcessLogBuffer.instance;
|
|
39
|
+
}
|
|
40
|
+
/**
|
|
41
|
+
* Reset the singleton (for testing).
|
|
42
|
+
*/
|
|
43
|
+
static resetInstance() {
|
|
44
|
+
InProcessLogBuffer.instance = null;
|
|
45
|
+
}
|
|
46
|
+
/**
|
|
47
|
+
* Append a log entry for a session.
|
|
48
|
+
*
|
|
49
|
+
* @param sessionName - In-process agent session name
|
|
50
|
+
* @param level - Log level
|
|
51
|
+
* @param message - Log message text
|
|
52
|
+
*/
|
|
53
|
+
append(sessionName, level, message) {
|
|
54
|
+
if (!this.sessions.has(sessionName)) {
|
|
55
|
+
this.sessions.set(sessionName, []);
|
|
56
|
+
}
|
|
57
|
+
const entries = this.sessions.get(sessionName);
|
|
58
|
+
entries.push({
|
|
59
|
+
timestamp: new Date().toISOString(),
|
|
60
|
+
level,
|
|
61
|
+
message,
|
|
62
|
+
});
|
|
63
|
+
// Ring buffer — drop oldest entries
|
|
64
|
+
if (entries.length > MAX_ENTRIES_PER_SESSION) {
|
|
65
|
+
entries.splice(0, entries.length - MAX_ENTRIES_PER_SESSION);
|
|
66
|
+
}
|
|
67
|
+
}
|
|
68
|
+
/**
|
|
69
|
+
* Check if a session has any log entries.
|
|
70
|
+
*
|
|
71
|
+
* @param sessionName - Session to check
|
|
72
|
+
* @returns True if the session has been registered with at least one entry
|
|
73
|
+
*/
|
|
74
|
+
hasSession(sessionName) {
|
|
75
|
+
return this.sessions.has(sessionName);
|
|
76
|
+
}
|
|
77
|
+
/**
|
|
78
|
+
* Capture recent output from an in-process session, formatted like
|
|
79
|
+
* terminal output for frontend compatibility.
|
|
80
|
+
*
|
|
81
|
+
* @param sessionName - Session to capture from
|
|
82
|
+
* @param lines - Maximum number of lines to return
|
|
83
|
+
* @returns Formatted output string (one log entry per line)
|
|
84
|
+
*/
|
|
85
|
+
capture(sessionName, lines = 100) {
|
|
86
|
+
const entries = this.sessions.get(sessionName);
|
|
87
|
+
if (!entries || entries.length === 0) {
|
|
88
|
+
return '[crewly-agent] No output yet';
|
|
89
|
+
}
|
|
90
|
+
const slice = entries.slice(-lines);
|
|
91
|
+
return slice.map(e => {
|
|
92
|
+
const ts = e.timestamp.substring(11, 23); // HH:MM:SS.mmm
|
|
93
|
+
const prefix = e.level === 'error' ? 'ERROR' : e.level === 'warn' ? 'WARN' : e.level === 'debug' ? 'DEBUG' : '';
|
|
94
|
+
return prefix ? `[${ts}] ${prefix}: ${e.message}` : `[${ts}] ${e.message}`;
|
|
95
|
+
}).join('\n');
|
|
96
|
+
}
|
|
97
|
+
/**
|
|
98
|
+
* Register a session (creates empty entry list).
|
|
99
|
+
*
|
|
100
|
+
* @param sessionName - Session to register
|
|
101
|
+
*/
|
|
102
|
+
registerSession(sessionName) {
|
|
103
|
+
if (!this.sessions.has(sessionName)) {
|
|
104
|
+
this.sessions.set(sessionName, []);
|
|
105
|
+
}
|
|
106
|
+
}
|
|
107
|
+
/**
|
|
108
|
+
* Remove a session's log buffer.
|
|
109
|
+
*
|
|
110
|
+
* @param sessionName - Session to remove
|
|
111
|
+
*/
|
|
112
|
+
removeSession(sessionName) {
|
|
113
|
+
this.sessions.delete(sessionName);
|
|
114
|
+
}
|
|
115
|
+
/**
|
|
116
|
+
* Get all registered in-process session names.
|
|
117
|
+
*
|
|
118
|
+
* @returns Array of session names
|
|
119
|
+
*/
|
|
120
|
+
getSessionNames() {
|
|
121
|
+
return Array.from(this.sessions.keys());
|
|
122
|
+
}
|
|
123
|
+
/**
|
|
124
|
+
* Clear all sessions (for testing).
|
|
125
|
+
*/
|
|
126
|
+
clear() {
|
|
127
|
+
this.sessions.clear();
|
|
128
|
+
}
|
|
129
|
+
}
|
|
130
|
+
//# sourceMappingURL=in-process-log-buffer.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"in-process-log-buffer.js","sourceRoot":"","sources":["../../../../../../../backend/src/services/agent/crewly-agent/in-process-log-buffer.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Crewly Agent Runtime — Barrel Export
|
|
3
|
+
*
|
|
4
|
+
* @module services/agent/crewly-agent
|
|
5
|
+
*/
|
|
6
|
+
export { AgentRunnerService } from './agent-runner.service.js';
|
|
7
|
+
export { CrewlyAgentRuntimeService } from './crewly-agent-runtime.service.js';
|
|
8
|
+
export { CrewlyApiClient } from './api-client.js';
|
|
9
|
+
export { ModelManager } from './model-manager.js';
|
|
10
|
+
export { InProcessLogBuffer, type LogEntry } from './in-process-log-buffer.js';
|
|
11
|
+
export { createTools, getToolNames } from './tool-registry.js';
|
|
12
|
+
export { createAuditorTools, getAuditorToolNames } from './auditor-tools.js';
|
|
13
|
+
export { type ModelProvider, type ModelConfig, type ConversationState, type CrewlyAgentConfig, type AgentRunResult, type ToolCallRecord, type ApiCallResult, MODEL_PROVIDERS, CREWLY_AGENT_DEFAULTS, isModelProvider, isModelConfig, } from './types.js';
|
|
14
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../../../backend/src/services/agent/crewly-agent/index.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EAAE,kBAAkB,EAAE,MAAM,2BAA2B,CAAC;AAC/D,OAAO,EAAE,yBAAyB,EAAE,MAAM,mCAAmC,CAAC;AAC9E,OAAO,EAAE,eAAe,EAAE,MAAM,iBAAiB,CAAC;AAClD,OAAO,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AAClD,OAAO,EAAE,kBAAkB,EAAE,KAAK,QAAQ,EAAE,MAAM,4BAA4B,CAAC;AAC/E,OAAO,EAAE,WAAW,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AAC/D,OAAO,EAAE,kBAAkB,EAAE,mBAAmB,EAAE,MAAM,oBAAoB,CAAC;AAC7E,OAAO,EACL,KAAK,aAAa,EAClB,KAAK,WAAW,EAChB,KAAK,iBAAiB,EACtB,KAAK,iBAAiB,EACtB,KAAK,cAAc,EACnB,KAAK,cAAc,EACnB,KAAK,aAAa,EAClB,eAAe,EACf,qBAAqB,EACrB,eAAe,EACf,aAAa,GACd,MAAM,YAAY,CAAC"}
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Crewly Agent Runtime — Barrel Export
|
|
3
|
+
*
|
|
4
|
+
* @module services/agent/crewly-agent
|
|
5
|
+
*/
|
|
6
|
+
export { AgentRunnerService } from './agent-runner.service.js';
|
|
7
|
+
export { CrewlyAgentRuntimeService } from './crewly-agent-runtime.service.js';
|
|
8
|
+
export { CrewlyApiClient } from './api-client.js';
|
|
9
|
+
export { ModelManager } from './model-manager.js';
|
|
10
|
+
export { InProcessLogBuffer } from './in-process-log-buffer.js';
|
|
11
|
+
export { createTools, getToolNames } from './tool-registry.js';
|
|
12
|
+
export { createAuditorTools, getAuditorToolNames } from './auditor-tools.js';
|
|
13
|
+
export { MODEL_PROVIDERS, CREWLY_AGENT_DEFAULTS, isModelProvider, isModelConfig, } from './types.js';
|
|
14
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../../../../backend/src/services/agent/crewly-agent/index.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EAAE,kBAAkB,EAAE,MAAM,2BAA2B,CAAC;AAC/D,OAAO,EAAE,yBAAyB,EAAE,MAAM,mCAAmC,CAAC;AAC9E,OAAO,EAAE,eAAe,EAAE,MAAM,iBAAiB,CAAC;AAClD,OAAO,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AAClD,OAAO,EAAE,kBAAkB,EAAiB,MAAM,4BAA4B,CAAC;AAC/E,OAAO,EAAE,WAAW,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AAC/D,OAAO,EAAE,kBAAkB,EAAE,mBAAmB,EAAE,MAAM,oBAAoB,CAAC;AAC7E,OAAO,EAQL,eAAe,EACf,qBAAqB,EACrB,eAAe,EACf,aAAa,GACd,MAAM,YAAY,CAAC"}
|
|
@@ -0,0 +1,57 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Crewly Agent Model Manager
|
|
3
|
+
*
|
|
4
|
+
* Multi-provider model factory that creates AI SDK model instances
|
|
5
|
+
* from configuration. Supports Anthropic, OpenAI, and Google providers.
|
|
6
|
+
*
|
|
7
|
+
* API keys are read from environment variables by the provider SDKs:
|
|
8
|
+
* - ANTHROPIC_API_KEY
|
|
9
|
+
* - OPENAI_API_KEY
|
|
10
|
+
* - GOOGLE_GENERATIVE_AI_API_KEY
|
|
11
|
+
*
|
|
12
|
+
* @module services/agent/crewly-agent/model-manager
|
|
13
|
+
*/
|
|
14
|
+
import type { LanguageModel } from 'ai';
|
|
15
|
+
import { type ModelConfig, type ModelProvider } from './types.js';
|
|
16
|
+
/**
|
|
17
|
+
* Factory for creating AI SDK language model instances from configuration.
|
|
18
|
+
*
|
|
19
|
+
* Uses dynamic imports to avoid loading provider SDKs that aren't needed,
|
|
20
|
+
* keeping the startup cost minimal when only one provider is used.
|
|
21
|
+
*
|
|
22
|
+
* @example
|
|
23
|
+
* ```typescript
|
|
24
|
+
* const manager = new ModelManager();
|
|
25
|
+
* const model = await manager.getModel({ provider: 'anthropic', modelId: 'claude-sonnet-4-20250514' });
|
|
26
|
+
* ```
|
|
27
|
+
*/
|
|
28
|
+
export declare class ModelManager {
|
|
29
|
+
/** Cached provider module references to avoid re-importing */
|
|
30
|
+
private providerCache;
|
|
31
|
+
/**
|
|
32
|
+
* Get an AI SDK language model instance for the given configuration.
|
|
33
|
+
*
|
|
34
|
+
* @param config - Model configuration specifying provider and model ID
|
|
35
|
+
* @returns AI SDK LanguageModel instance ready for use with generateText
|
|
36
|
+
* @throws Error if the provider is unknown or the SDK is not installed
|
|
37
|
+
*/
|
|
38
|
+
getModel(config?: ModelConfig): Promise<LanguageModel>;
|
|
39
|
+
/**
|
|
40
|
+
* Get provider function, using cache for repeated calls.
|
|
41
|
+
*
|
|
42
|
+
* @param provider - Provider name
|
|
43
|
+
* @returns Function that creates a model from a model ID string
|
|
44
|
+
*/
|
|
45
|
+
private getProviderFunction;
|
|
46
|
+
/**
|
|
47
|
+
* Check which providers have API keys configured in the environment.
|
|
48
|
+
*
|
|
49
|
+
* @returns Object indicating which providers are available
|
|
50
|
+
*/
|
|
51
|
+
getAvailableProviders(): Record<ModelProvider, boolean>;
|
|
52
|
+
/**
|
|
53
|
+
* Clear the provider cache (useful for testing or reconfiguration).
|
|
54
|
+
*/
|
|
55
|
+
clearCache(): void;
|
|
56
|
+
}
|
|
57
|
+
//# sourceMappingURL=model-manager.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"model-manager.d.ts","sourceRoot":"","sources":["../../../../../../../backend/src/services/agent/crewly-agent/model-manager.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;GAYG;AAEH,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,IAAI,CAAC;AACxC,OAAO,EAAE,KAAK,WAAW,EAAE,KAAK,aAAa,EAAyB,MAAM,YAAY,CAAC;AAEzF;;;;;;;;;;;GAWG;AACH,qBAAa,YAAY;IACvB,8DAA8D;IAC9D,OAAO,CAAC,aAAa,CAAgE;IAErF;;;;;;OAMG;IACG,QAAQ,CAAC,MAAM,GAAE,WAAiD,GAAG,OAAO,CAAC,aAAa,CAAC;IAKjG;;;;;OAKG;YACW,mBAAmB;IA8BjC;;;;OAIG;IACH,qBAAqB,IAAI,MAAM,CAAC,aAAa,EAAE,OAAO,CAAC;IAQvD;;OAEG;IACH,UAAU,IAAI,IAAI;CAGnB"}
|