crewly 1.2.4 → 1.2.6
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 +53 -13
- package/dist/backend/backend/src/constants.d.ts.map +1 -1
- package/dist/backend/backend/src/constants.js +54 -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/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 +31 -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/message-queue.service.d.ts.map +1 -1
- package/dist/backend/backend/src/services/messaging/message-queue.service.js +1 -0
- 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/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 +53 -13
- package/dist/cli/backend/src/constants.d.ts.map +1 -1
- package/dist/cli/backend/src/constants.js +54 -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-3558d1a2.js +4919 -0
- package/frontend/dist/assets/index-4c4dcc31.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,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"}
|
|
@@ -0,0 +1,93 @@
|
|
|
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 { CREWLY_AGENT_DEFAULTS } from './types.js';
|
|
15
|
+
/**
|
|
16
|
+
* Factory for creating AI SDK language model instances from configuration.
|
|
17
|
+
*
|
|
18
|
+
* Uses dynamic imports to avoid loading provider SDKs that aren't needed,
|
|
19
|
+
* keeping the startup cost minimal when only one provider is used.
|
|
20
|
+
*
|
|
21
|
+
* @example
|
|
22
|
+
* ```typescript
|
|
23
|
+
* const manager = new ModelManager();
|
|
24
|
+
* const model = await manager.getModel({ provider: 'anthropic', modelId: 'claude-sonnet-4-20250514' });
|
|
25
|
+
* ```
|
|
26
|
+
*/
|
|
27
|
+
export class ModelManager {
|
|
28
|
+
/** Cached provider module references to avoid re-importing */
|
|
29
|
+
providerCache = new Map();
|
|
30
|
+
/**
|
|
31
|
+
* Get an AI SDK language model instance for the given configuration.
|
|
32
|
+
*
|
|
33
|
+
* @param config - Model configuration specifying provider and model ID
|
|
34
|
+
* @returns AI SDK LanguageModel instance ready for use with generateText
|
|
35
|
+
* @throws Error if the provider is unknown or the SDK is not installed
|
|
36
|
+
*/
|
|
37
|
+
async getModel(config = CREWLY_AGENT_DEFAULTS.DEFAULT_MODEL) {
|
|
38
|
+
const providerFn = await this.getProviderFunction(config.provider);
|
|
39
|
+
return providerFn(config.modelId);
|
|
40
|
+
}
|
|
41
|
+
/**
|
|
42
|
+
* Get provider function, using cache for repeated calls.
|
|
43
|
+
*
|
|
44
|
+
* @param provider - Provider name
|
|
45
|
+
* @returns Function that creates a model from a model ID string
|
|
46
|
+
*/
|
|
47
|
+
async getProviderFunction(provider) {
|
|
48
|
+
const cached = this.providerCache.get(provider);
|
|
49
|
+
if (cached)
|
|
50
|
+
return cached;
|
|
51
|
+
let providerFn;
|
|
52
|
+
switch (provider) {
|
|
53
|
+
case 'anthropic': {
|
|
54
|
+
const { anthropic } = await import('@ai-sdk/anthropic');
|
|
55
|
+
providerFn = (modelId) => anthropic(modelId);
|
|
56
|
+
break;
|
|
57
|
+
}
|
|
58
|
+
case 'openai': {
|
|
59
|
+
const { openai } = await import('@ai-sdk/openai');
|
|
60
|
+
providerFn = (modelId) => openai(modelId);
|
|
61
|
+
break;
|
|
62
|
+
}
|
|
63
|
+
case 'google': {
|
|
64
|
+
const { google } = await import('@ai-sdk/google');
|
|
65
|
+
providerFn = (modelId) => google(modelId);
|
|
66
|
+
break;
|
|
67
|
+
}
|
|
68
|
+
default:
|
|
69
|
+
throw new Error(`Unknown model provider: ${provider}`);
|
|
70
|
+
}
|
|
71
|
+
this.providerCache.set(provider, providerFn);
|
|
72
|
+
return providerFn;
|
|
73
|
+
}
|
|
74
|
+
/**
|
|
75
|
+
* Check which providers have API keys configured in the environment.
|
|
76
|
+
*
|
|
77
|
+
* @returns Object indicating which providers are available
|
|
78
|
+
*/
|
|
79
|
+
getAvailableProviders() {
|
|
80
|
+
return {
|
|
81
|
+
anthropic: !!process.env.ANTHROPIC_API_KEY,
|
|
82
|
+
openai: !!process.env.OPENAI_API_KEY,
|
|
83
|
+
google: !!process.env.GOOGLE_GENERATIVE_AI_API_KEY || !!process.env.GEMINI_API_KEY,
|
|
84
|
+
};
|
|
85
|
+
}
|
|
86
|
+
/**
|
|
87
|
+
* Clear the provider cache (useful for testing or reconfiguration).
|
|
88
|
+
*/
|
|
89
|
+
clearCache() {
|
|
90
|
+
this.providerCache.clear();
|
|
91
|
+
}
|
|
92
|
+
}
|
|
93
|
+
//# sourceMappingURL=model-manager.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"model-manager.js","sourceRoot":"","sources":["../../../../../../../backend/src/services/agent/crewly-agent/model-manager.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;GAYG;AAGH,OAAO,EAAwC,qBAAqB,EAAE,MAAM,YAAY,CAAC;AAEzF;;;;;;;;;;;GAWG;AACH,MAAM,OAAO,YAAY;IACvB,8DAA8D;IACtD,aAAa,GAAG,IAAI,GAAG,EAAqD,CAAC;IAErF;;;;;;OAMG;IACH,KAAK,CAAC,QAAQ,CAAC,SAAsB,qBAAqB,CAAC,aAAa;QACtE,MAAM,UAAU,GAAG,MAAM,IAAI,CAAC,mBAAmB,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC;QACnE,OAAO,UAAU,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;IACpC,CAAC;IAED;;;;;OAKG;IACK,KAAK,CAAC,mBAAmB,CAAC,QAAuB;QACvD,MAAM,MAAM,GAAG,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;QAChD,IAAI,MAAM;YAAE,OAAO,MAAM,CAAC;QAE1B,IAAI,UAA8C,CAAC;QAEnD,QAAQ,QAAQ,EAAE,CAAC;YACjB,KAAK,WAAW,CAAC,CAAC,CAAC;gBACjB,MAAM,EAAE,SAAS,EAAE,GAAG,MAAM,MAAM,CAAC,mBAAmB,CAAC,CAAC;gBACxD,UAAU,GAAG,CAAC,OAAe,EAAE,EAAE,CAAC,SAAS,CAAC,OAAO,CAAC,CAAC;gBACrD,MAAM;YACR,CAAC;YACD,KAAK,QAAQ,CAAC,CAAC,CAAC;gBACd,MAAM,EAAE,MAAM,EAAE,GAAG,MAAM,MAAM,CAAC,gBAAgB,CAAC,CAAC;gBAClD,UAAU,GAAG,CAAC,OAAe,EAAE,EAAE,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;gBAClD,MAAM;YACR,CAAC;YACD,KAAK,QAAQ,CAAC,CAAC,CAAC;gBACd,MAAM,EAAE,MAAM,EAAE,GAAG,MAAM,MAAM,CAAC,gBAAgB,CAAC,CAAC;gBAClD,UAAU,GAAG,CAAC,OAAe,EAAE,EAAE,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;gBAClD,MAAM;YACR,CAAC;YACD;gBACE,MAAM,IAAI,KAAK,CAAC,2BAA2B,QAAQ,EAAE,CAAC,CAAC;QAC3D,CAAC;QAED,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,QAAQ,EAAE,UAAU,CAAC,CAAC;QAC7C,OAAO,UAAU,CAAC;IACpB,CAAC;IAED;;;;OAIG;IACH,qBAAqB;QACnB,OAAO;YACL,SAAS,EAAE,CAAC,CAAC,OAAO,CAAC,GAAG,CAAC,iBAAiB;YAC1C,MAAM,EAAE,CAAC,CAAC,OAAO,CAAC,GAAG,CAAC,cAAc;YACpC,MAAM,EAAE,CAAC,CAAC,OAAO,CAAC,GAAG,CAAC,4BAA4B,IAAI,CAAC,CAAC,OAAO,CAAC,GAAG,CAAC,cAAc;SACnF,CAAC;IACJ,CAAC;IAED;;OAEG;IACH,UAAU;QACR,IAAI,CAAC,aAAa,CAAC,KAAK,EAAE,CAAC;IAC7B,CAAC;CACF"}
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Smoke Test — Crewly Agent Runtime end-to-end with Gemini API
|
|
3
|
+
*
|
|
4
|
+
* Verifies the full pipeline: CrewlyAgentRuntimeService → AgentRunnerService →
|
|
5
|
+
* AI SDK generateText → Gemini model → tool calls → response.
|
|
6
|
+
*
|
|
7
|
+
* Usage:
|
|
8
|
+
* npx tsx backend/src/services/agent/crewly-agent/smoke-test.ts
|
|
9
|
+
*
|
|
10
|
+
* Requires: GEMINI_API_KEY or GOOGLE_GENERATIVE_AI_API_KEY env var
|
|
11
|
+
*/
|
|
12
|
+
export {};
|
|
13
|
+
//# sourceMappingURL=smoke-test.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"smoke-test.d.ts","sourceRoot":"","sources":["../../../../../../../backend/src/services/agent/crewly-agent/smoke-test.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG"}
|
|
@@ -0,0 +1,91 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Smoke Test — Crewly Agent Runtime end-to-end with Gemini API
|
|
3
|
+
*
|
|
4
|
+
* Verifies the full pipeline: CrewlyAgentRuntimeService → AgentRunnerService →
|
|
5
|
+
* AI SDK generateText → Gemini model → tool calls → response.
|
|
6
|
+
*
|
|
7
|
+
* Usage:
|
|
8
|
+
* npx tsx backend/src/services/agent/crewly-agent/smoke-test.ts
|
|
9
|
+
*
|
|
10
|
+
* Requires: GEMINI_API_KEY or GOOGLE_GENERATIVE_AI_API_KEY env var
|
|
11
|
+
*/
|
|
12
|
+
import { CrewlyAgentRuntimeService } from './crewly-agent-runtime.service.js';
|
|
13
|
+
// Bridge GEMINI_API_KEY → GOOGLE_GENERATIVE_AI_API_KEY if needed
|
|
14
|
+
if (!process.env.GOOGLE_GENERATIVE_AI_API_KEY && process.env.GEMINI_API_KEY) {
|
|
15
|
+
process.env.GOOGLE_GENERATIVE_AI_API_KEY = process.env.GEMINI_API_KEY;
|
|
16
|
+
}
|
|
17
|
+
const API_KEY = process.env.GOOGLE_GENERATIVE_AI_API_KEY;
|
|
18
|
+
if (!API_KEY) {
|
|
19
|
+
console.error('ERROR: No Google AI API key found. Set GEMINI_API_KEY or GOOGLE_GENERATIVE_AI_API_KEY.');
|
|
20
|
+
process.exit(1);
|
|
21
|
+
}
|
|
22
|
+
async function main() {
|
|
23
|
+
console.log('=== Crewly Agent Runtime Smoke Test ===\n');
|
|
24
|
+
console.log('Provider: google');
|
|
25
|
+
console.log('Model: gemini-2.5-flash');
|
|
26
|
+
console.log('API Key: ...%s', API_KEY.slice(-6));
|
|
27
|
+
console.log();
|
|
28
|
+
// Create a minimal mock SessionCommandHelper (not used by in-process runtime)
|
|
29
|
+
const mockSessionHelper = {
|
|
30
|
+
capturePane: () => '',
|
|
31
|
+
sendMessage: async () => { },
|
|
32
|
+
clearCurrentCommandLine: async () => { },
|
|
33
|
+
};
|
|
34
|
+
const projectRoot = process.cwd();
|
|
35
|
+
const runtime = new CrewlyAgentRuntimeService(mockSessionHelper, projectRoot);
|
|
36
|
+
try {
|
|
37
|
+
// Step 1: Initialize with Gemini
|
|
38
|
+
console.log('[1/4] Initializing runtime...');
|
|
39
|
+
await runtime.initializeInProcess('smoke-test-session', {
|
|
40
|
+
model: { provider: 'google', modelId: 'gemini-2.5-flash' },
|
|
41
|
+
maxSteps: 5,
|
|
42
|
+
systemPrompt: `You are a test agent. When asked to check team status, you MUST call the get_team_status tool. After getting the result, summarize it briefly. Always use tools when available.`,
|
|
43
|
+
});
|
|
44
|
+
console.log(' -> Runtime ready:', runtime.isReady());
|
|
45
|
+
console.log(' -> Session:', runtime.getSessionName());
|
|
46
|
+
if (!runtime.isReady()) {
|
|
47
|
+
throw new Error('Runtime failed to initialize');
|
|
48
|
+
}
|
|
49
|
+
// Step 2: Send a message that should trigger the get_team_status tool
|
|
50
|
+
console.log('\n[2/4] Sending message: "Check team status"...');
|
|
51
|
+
const result = await runtime.handleMessage('Check the current team status and report what you find.');
|
|
52
|
+
// Step 3: Verify results
|
|
53
|
+
console.log('\n[3/4] Results:');
|
|
54
|
+
console.log(' -> Response text:', result.text?.substring(0, 200) || '(empty)');
|
|
55
|
+
console.log(' -> Steps:', result.steps);
|
|
56
|
+
console.log(' -> Tool calls:', result.toolCalls.length);
|
|
57
|
+
console.log(' -> Usage:', JSON.stringify(result.usage));
|
|
58
|
+
console.log(' -> Finish reason:', result.finishReason);
|
|
59
|
+
if (result.toolCalls.length > 0) {
|
|
60
|
+
console.log('\n Tool call details:');
|
|
61
|
+
for (const tc of result.toolCalls) {
|
|
62
|
+
console.log(` - ${tc.toolName}(${JSON.stringify(tc.args)})`);
|
|
63
|
+
console.log(` Result: ${JSON.stringify(tc.result)?.substring(0, 150)}`);
|
|
64
|
+
}
|
|
65
|
+
}
|
|
66
|
+
// Step 4: Verify model used the tool
|
|
67
|
+
const usedGetTeamStatus = result.toolCalls.some(tc => tc.toolName === 'get_team_status');
|
|
68
|
+
console.log('\n[4/4] Verification:');
|
|
69
|
+
console.log(' -> Model called get_team_status:', usedGetTeamStatus);
|
|
70
|
+
console.log(' -> Got text response:', !!result.text);
|
|
71
|
+
console.log(' -> Steps > 0:', result.steps > 0);
|
|
72
|
+
const passed = result.text && result.steps > 0;
|
|
73
|
+
console.log('\n=== SMOKE TEST %s ===', passed ? 'PASSED' : 'FAILED');
|
|
74
|
+
if (!passed) {
|
|
75
|
+
process.exit(1);
|
|
76
|
+
}
|
|
77
|
+
}
|
|
78
|
+
catch (error) {
|
|
79
|
+
console.error('\n=== SMOKE TEST FAILED ===');
|
|
80
|
+
console.error('Error:', error instanceof Error ? error.message : String(error));
|
|
81
|
+
if (error instanceof Error && error.stack) {
|
|
82
|
+
console.error('\nStack:', error.stack);
|
|
83
|
+
}
|
|
84
|
+
process.exit(1);
|
|
85
|
+
}
|
|
86
|
+
finally {
|
|
87
|
+
runtime.shutdown();
|
|
88
|
+
}
|
|
89
|
+
}
|
|
90
|
+
main();
|
|
91
|
+
//# sourceMappingURL=smoke-test.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"smoke-test.js","sourceRoot":"","sources":["../../../../../../../backend/src/services/agent/crewly-agent/smoke-test.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Crewly Agent Tool Registry
|
|
3
|
+
*
|
|
4
|
+
* Defines all AI SDK tools available to the Crewly Agent runtime.
|
|
5
|
+
* Each tool maps to a Crewly REST API endpoint, replacing the bash
|
|
6
|
+
* skill scripts used by PTY-based runtimes.
|
|
7
|
+
*
|
|
8
|
+
* @module services/agent/crewly-agent/tool-registry
|
|
9
|
+
*/
|
|
10
|
+
import type { CrewlyApiClient } from './api-client.js';
|
|
11
|
+
import type { ToolDefinition } from './types.js';
|
|
12
|
+
/**
|
|
13
|
+
* Create the complete set of AI SDK tools for the Crewly Agent.
|
|
14
|
+
*
|
|
15
|
+
* Each tool's execute function calls the Crewly REST API directly
|
|
16
|
+
* via the provided API client, bypassing the bash script layer.
|
|
17
|
+
*
|
|
18
|
+
* @param client - API client instance for making REST calls
|
|
19
|
+
* @param sessionName - Agent session name for identity context
|
|
20
|
+
* @returns Object of named tools ready to pass to generateText
|
|
21
|
+
*/
|
|
22
|
+
export declare function createTools(client: CrewlyApiClient, sessionName: string): Record<string, ToolDefinition>;
|
|
23
|
+
/**
|
|
24
|
+
* Get the list of tool names available in the registry.
|
|
25
|
+
*
|
|
26
|
+
* @returns Array of tool name strings
|
|
27
|
+
*/
|
|
28
|
+
export declare function getToolNames(): string[];
|
|
29
|
+
//# sourceMappingURL=tool-registry.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"tool-registry.d.ts","sourceRoot":"","sources":["../../../../../../../backend/src/services/agent/crewly-agent/tool-registry.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAIH,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,iBAAiB,CAAC;AACvD,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,YAAY,CAAC;AAEjD;;;;;;;;;GASG;AACH,wBAAgB,WAAW,CAAC,MAAM,EAAE,eAAe,EAAE,WAAW,EAAE,MAAM,GAAG,MAAM,CAAC,MAAM,EAAE,cAAc,CAAC,CAgfxG;AA2BD;;;;GAIG;AACH,wBAAgB,YAAY,IAAI,MAAM,EAAE,CAQvC"}
|