crewly 1.0.6 → 1.0.8
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/README.md +146 -40
- package/config/roles/architect/prompt.md +11 -0
- package/config/roles/backend-developer/prompt.md +11 -0
- package/config/roles/designer/prompt.md +11 -0
- package/config/roles/developer/prompt.md +18 -4
- package/config/roles/frontend-developer/prompt.md +11 -0
- package/config/roles/fullstack-dev/prompt.md +11 -0
- package/config/roles/generalist/prompt.md +11 -0
- package/config/roles/orchestrator/prompt.md +53 -10
- package/config/roles/product-manager/prompt.md +18 -4
- package/config/roles/qa/prompt.md +11 -0
- package/config/roles/qa-engineer/prompt.md +11 -0
- package/config/roles/sales/prompt.md +11 -0
- package/config/roles/support/prompt.md +11 -0
- package/config/roles/tpm/prompt.md +11 -0
- package/config/skills/orchestrator/complete-task/execute.sh +1 -0
- package/config/templates/agent-claude-md.md +16 -0
- package/config/templates/research-team.json +22 -0
- package/config/templates/startup-team.json +22 -0
- package/config/templates/web-dev-team.json +22 -0
- package/dist/backend/backend/src/constants.d.ts +61 -1
- package/dist/backend/backend/src/constants.d.ts.map +1 -1
- package/dist/backend/backend/src/constants.js +65 -7
- package/dist/backend/backend/src/constants.js.map +1 -1
- package/dist/backend/backend/src/controllers/slack/slack.controller.d.ts.map +1 -1
- package/dist/backend/backend/src/controllers/slack/slack.controller.js +7 -0
- package/dist/backend/backend/src/controllers/slack/slack.controller.js.map +1 -1
- package/dist/backend/backend/src/controllers/task-management/task-management.controller.d.ts +7 -0
- package/dist/backend/backend/src/controllers/task-management/task-management.controller.d.ts.map +1 -1
- package/dist/backend/backend/src/controllers/task-management/task-management.controller.js +174 -4
- package/dist/backend/backend/src/controllers/task-management/task-management.controller.js.map +1 -1
- package/dist/backend/backend/src/index.d.ts.map +1 -1
- package/dist/backend/backend/src/index.js +34 -0
- package/dist/backend/backend/src/index.js.map +1 -1
- package/dist/backend/backend/src/routes/modules/task-management.routes.d.ts.map +1 -1
- package/dist/backend/backend/src/routes/modules/task-management.routes.js +2 -0
- package/dist/backend/backend/src/routes/modules/task-management.routes.js.map +1 -1
- package/dist/backend/backend/src/services/agent/agent-registration.service.d.ts +8 -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 +75 -17
- package/dist/backend/backend/src/services/agent/agent-registration.service.js.map +1 -1
- package/dist/backend/backend/src/services/agent/context-window-monitor.service.d.ts +222 -0
- package/dist/backend/backend/src/services/agent/context-window-monitor.service.d.ts.map +1 -0
- package/dist/backend/backend/src/services/agent/context-window-monitor.service.js +621 -0
- package/dist/backend/backend/src/services/agent/context-window-monitor.service.js.map +1 -0
- package/dist/backend/backend/src/services/index.d.ts +3 -0
- package/dist/backend/backend/src/services/index.d.ts.map +1 -1
- package/dist/backend/backend/src/services/index.js +5 -0
- package/dist/backend/backend/src/services/index.js.map +1 -1
- package/dist/backend/backend/src/services/mcp-client.d.ts +233 -0
- package/dist/backend/backend/src/services/mcp-client.d.ts.map +1 -0
- package/dist/backend/backend/src/services/mcp-client.js +297 -0
- package/dist/backend/backend/src/services/mcp-client.js.map +1 -0
- package/dist/backend/backend/src/services/mcp-server.d.ts +167 -0
- package/dist/backend/backend/src/services/mcp-server.d.ts.map +1 -0
- package/dist/backend/backend/src/services/mcp-server.js +586 -0
- package/dist/backend/backend/src/services/mcp-server.js.map +1 -0
- package/dist/backend/backend/src/services/messaging/message-queue.service.d.ts +2 -0
- 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 +6 -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 +10 -0
- 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 +94 -38
- package/dist/backend/backend/src/services/messaging/queue-processor.service.js.map +1 -1
- package/dist/backend/backend/src/services/quality/index.d.ts +1 -0
- package/dist/backend/backend/src/services/quality/index.d.ts.map +1 -1
- package/dist/backend/backend/src/services/quality/index.js +1 -0
- package/dist/backend/backend/src/services/quality/index.js.map +1 -1
- package/dist/backend/backend/src/services/quality/task-output-validator.service.d.ts +84 -0
- package/dist/backend/backend/src/services/quality/task-output-validator.service.d.ts.map +1 -0
- package/dist/backend/backend/src/services/quality/task-output-validator.service.js +163 -0
- package/dist/backend/backend/src/services/quality/task-output-validator.service.js.map +1 -0
- package/dist/backend/backend/src/services/runtime-adapter.d.ts +234 -0
- package/dist/backend/backend/src/services/runtime-adapter.d.ts.map +1 -0
- package/dist/backend/backend/src/services/runtime-adapter.js +180 -0
- package/dist/backend/backend/src/services/runtime-adapter.js.map +1 -0
- package/dist/backend/backend/src/services/slack/slack-credentials.service.d.ts +33 -0
- package/dist/backend/backend/src/services/slack/slack-credentials.service.d.ts.map +1 -0
- package/dist/backend/backend/src/services/slack/slack-credentials.service.js +103 -0
- package/dist/backend/backend/src/services/slack/slack-credentials.service.js.map +1 -0
- package/dist/backend/backend/src/services/slack/slack-initializer.d.ts +9 -1
- package/dist/backend/backend/src/services/slack/slack-initializer.d.ts.map +1 -1
- package/dist/backend/backend/src/services/slack/slack-initializer.js +31 -2
- package/dist/backend/backend/src/services/slack/slack-initializer.js.map +1 -1
- package/dist/backend/backend/src/types/event-bus.types.d.ts +2 -2
- package/dist/backend/backend/src/types/event-bus.types.d.ts.map +1 -1
- package/dist/backend/backend/src/types/event-bus.types.js +2 -0
- package/dist/backend/backend/src/types/event-bus.types.js.map +1 -1
- package/dist/backend/backend/src/types/index.d.ts +1 -0
- package/dist/backend/backend/src/types/index.d.ts.map +1 -1
- package/dist/backend/backend/src/types/index.js +2 -0
- package/dist/backend/backend/src/types/index.js.map +1 -1
- package/dist/backend/backend/src/types/messaging.types.d.ts +9 -6
- package/dist/backend/backend/src/types/messaging.types.d.ts.map +1 -1
- package/dist/backend/backend/src/types/messaging.types.js +10 -3
- package/dist/backend/backend/src/types/messaging.types.js.map +1 -1
- package/dist/backend/backend/src/types/task-output.types.d.ts +78 -0
- package/dist/backend/backend/src/types/task-output.types.d.ts.map +1 -0
- package/dist/backend/backend/src/types/task-output.types.js +27 -0
- package/dist/backend/backend/src/types/task-output.types.js.map +1 -0
- package/dist/backend/backend/src/websocket/terminal.gateway.d.ts +13 -0
- package/dist/backend/backend/src/websocket/terminal.gateway.d.ts.map +1 -1
- package/dist/backend/backend/src/websocket/terminal.gateway.js +12 -0
- package/dist/backend/backend/src/websocket/terminal.gateway.js.map +1 -1
- package/dist/cli/backend/src/constants.d.ts +751 -0
- package/dist/cli/backend/src/constants.d.ts.map +1 -0
- package/dist/cli/backend/src/constants.js +550 -0
- package/dist/cli/backend/src/constants.js.map +1 -0
- package/dist/cli/backend/src/models/Project.d.ts +18 -0
- package/dist/cli/backend/src/models/Project.d.ts.map +1 -0
- package/dist/cli/backend/src/models/Project.js +70 -0
- package/dist/cli/backend/src/models/Project.js.map +1 -0
- package/dist/cli/backend/src/models/ScheduledMessage.d.ts +27 -0
- package/dist/cli/backend/src/models/ScheduledMessage.d.ts.map +1 -0
- package/dist/cli/backend/src/models/ScheduledMessage.js +50 -0
- package/dist/cli/backend/src/models/ScheduledMessage.js.map +1 -0
- package/dist/cli/backend/src/models/Team.d.ts +20 -0
- package/dist/cli/backend/src/models/Team.d.ts.map +1 -0
- package/dist/cli/backend/src/models/Team.js +120 -0
- package/dist/cli/backend/src/models/Team.js.map +1 -0
- package/dist/cli/backend/src/models/Ticket.d.ts +24 -0
- package/dist/cli/backend/src/models/Ticket.d.ts.map +1 -0
- package/dist/cli/backend/src/models/Ticket.js +102 -0
- package/dist/cli/backend/src/models/Ticket.js.map +1 -0
- package/dist/cli/backend/src/models/index.d.ts +5 -0
- package/dist/cli/backend/src/models/index.d.ts.map +1 -0
- package/dist/cli/backend/src/models/index.js +5 -0
- package/dist/cli/backend/src/models/index.js.map +1 -0
- package/dist/cli/backend/src/services/core/config.service.d.ts +91 -0
- package/dist/cli/backend/src/services/core/config.service.d.ts.map +1 -0
- package/dist/cli/backend/src/services/core/config.service.js +246 -0
- package/dist/cli/backend/src/services/core/config.service.js.map +1 -0
- package/dist/cli/backend/src/services/core/logger.service.d.ts +70 -0
- package/dist/cli/backend/src/services/core/logger.service.d.ts.map +1 -0
- package/dist/cli/backend/src/services/core/logger.service.js +350 -0
- package/dist/cli/backend/src/services/core/logger.service.js.map +1 -0
- package/dist/cli/backend/src/services/core/storage.service.d.ts +269 -0
- package/dist/cli/backend/src/services/core/storage.service.d.ts.map +1 -0
- package/dist/cli/backend/src/services/core/storage.service.js +1406 -0
- package/dist/cli/backend/src/services/core/storage.service.js.map +1 -0
- package/dist/cli/backend/src/services/core/teams-backup.service.d.ts +92 -0
- package/dist/cli/backend/src/services/core/teams-backup.service.d.ts.map +1 -0
- package/dist/cli/backend/src/services/core/teams-backup.service.js +120 -0
- package/dist/cli/backend/src/services/core/teams-backup.service.js.map +1 -0
- package/dist/cli/backend/src/services/knowledge/knowledge-search.service.d.ts +125 -0
- package/dist/cli/backend/src/services/knowledge/knowledge-search.service.d.ts.map +1 -0
- package/dist/cli/backend/src/services/knowledge/knowledge-search.service.js +247 -0
- package/dist/cli/backend/src/services/knowledge/knowledge-search.service.js.map +1 -0
- package/dist/cli/backend/src/services/knowledge/knowledge.service.d.ts +153 -0
- package/dist/cli/backend/src/services/knowledge/knowledge.service.d.ts.map +1 -0
- package/dist/cli/backend/src/services/knowledge/knowledge.service.js +409 -0
- package/dist/cli/backend/src/services/knowledge/knowledge.service.js.map +1 -0
- package/dist/cli/backend/src/services/mcp-server.d.ts +167 -0
- package/dist/cli/backend/src/services/mcp-server.d.ts.map +1 -0
- package/dist/cli/backend/src/services/mcp-server.js +586 -0
- package/dist/cli/backend/src/services/mcp-server.js.map +1 -0
- package/dist/cli/backend/src/services/memory/agent-memory.service.d.ts +259 -0
- package/dist/cli/backend/src/services/memory/agent-memory.service.d.ts.map +1 -0
- package/dist/cli/backend/src/services/memory/agent-memory.service.js +539 -0
- package/dist/cli/backend/src/services/memory/agent-memory.service.js.map +1 -0
- package/dist/cli/backend/src/services/memory/memory.service.d.ts +306 -0
- package/dist/cli/backend/src/services/memory/memory.service.d.ts.map +1 -0
- package/dist/cli/backend/src/services/memory/memory.service.js +517 -0
- package/dist/cli/backend/src/services/memory/memory.service.js.map +1 -0
- package/dist/cli/backend/src/services/memory/project-memory.service.d.ts +252 -0
- package/dist/cli/backend/src/services/memory/project-memory.service.d.ts.map +1 -0
- package/dist/cli/backend/src/services/memory/project-memory.service.js +600 -0
- package/dist/cli/backend/src/services/memory/project-memory.service.js.map +1 -0
- package/dist/cli/backend/src/types/auto-assign.types.d.ts +271 -0
- package/dist/cli/backend/src/types/auto-assign.types.d.ts.map +1 -0
- package/dist/cli/backend/src/types/auto-assign.types.js +136 -0
- package/dist/cli/backend/src/types/auto-assign.types.js.map +1 -0
- package/dist/cli/backend/src/types/budget.types.d.ts +217 -0
- package/dist/cli/backend/src/types/budget.types.d.ts.map +1 -0
- package/dist/cli/backend/src/types/budget.types.js +82 -0
- package/dist/cli/backend/src/types/budget.types.js.map +1 -0
- package/dist/cli/backend/src/types/chat.types.d.ts +550 -0
- package/dist/cli/backend/src/types/chat.types.d.ts.map +1 -0
- package/dist/cli/backend/src/types/chat.types.js +743 -0
- package/dist/cli/backend/src/types/chat.types.js.map +1 -0
- package/dist/cli/backend/src/types/continuation.types.d.ts +237 -0
- package/dist/cli/backend/src/types/continuation.types.d.ts.map +1 -0
- package/dist/cli/backend/src/types/continuation.types.js +10 -0
- package/dist/cli/backend/src/types/continuation.types.js.map +1 -0
- package/dist/cli/backend/src/types/index.d.ts +164 -0
- package/dist/cli/backend/src/types/index.d.ts.map +1 -0
- package/dist/cli/backend/src/types/index.js +25 -0
- package/dist/cli/backend/src/types/index.js.map +1 -0
- package/dist/cli/backend/src/types/knowledge.types.d.ts +195 -0
- package/dist/cli/backend/src/types/knowledge.types.d.ts.map +1 -0
- package/dist/cli/backend/src/types/knowledge.types.js +38 -0
- package/dist/cli/backend/src/types/knowledge.types.js.map +1 -0
- package/dist/cli/backend/src/types/memory.types.d.ts +587 -0
- package/dist/cli/backend/src/types/memory.types.d.ts.map +1 -0
- package/dist/cli/backend/src/types/memory.types.js +47 -0
- package/dist/cli/backend/src/types/memory.types.js.map +1 -0
- package/dist/cli/backend/src/types/quality-gate.types.d.ts +171 -0
- package/dist/cli/backend/src/types/quality-gate.types.d.ts.map +1 -0
- package/dist/cli/backend/src/types/quality-gate.types.js +42 -0
- package/dist/cli/backend/src/types/quality-gate.types.js.map +1 -0
- package/dist/cli/backend/src/types/role.types.d.ts +260 -0
- package/dist/cli/backend/src/types/role.types.d.ts.map +1 -0
- package/dist/cli/backend/src/types/role.types.js +238 -0
- package/dist/cli/backend/src/types/role.types.js.map +1 -0
- package/dist/cli/backend/src/types/scheduler.types.d.ts +254 -0
- package/dist/cli/backend/src/types/scheduler.types.d.ts.map +1 -0
- package/dist/cli/backend/src/types/scheduler.types.js +32 -0
- package/dist/cli/backend/src/types/scheduler.types.js.map +1 -0
- package/dist/cli/backend/src/types/settings.types.d.ts +178 -0
- package/dist/cli/backend/src/types/settings.types.d.ts.map +1 -0
- package/dist/cli/backend/src/types/settings.types.js +206 -0
- package/dist/cli/backend/src/types/settings.types.js.map +1 -0
- package/dist/cli/backend/src/types/skill.types.d.ts +515 -0
- package/dist/cli/backend/src/types/skill.types.d.ts.map +1 -0
- package/dist/cli/backend/src/types/skill.types.js +481 -0
- package/dist/cli/backend/src/types/skill.types.js.map +1 -0
- package/dist/cli/backend/src/types/sop.types.d.ts +224 -0
- package/dist/cli/backend/src/types/sop.types.d.ts.map +1 -0
- package/dist/cli/backend/src/types/sop.types.js +85 -0
- package/dist/cli/backend/src/types/sop.types.js.map +1 -0
- package/dist/cli/backend/src/types/task-output.types.d.ts +78 -0
- package/dist/cli/backend/src/types/task-output.types.d.ts.map +1 -0
- package/dist/cli/backend/src/types/task-output.types.js +27 -0
- package/dist/cli/backend/src/types/task-output.types.js.map +1 -0
- package/dist/cli/backend/src/utils/file-io.utils.d.ts +102 -0
- package/dist/cli/backend/src/utils/file-io.utils.d.ts.map +1 -0
- package/dist/cli/backend/src/utils/file-io.utils.js +214 -0
- package/dist/cli/backend/src/utils/file-io.utils.js.map +1 -0
- package/dist/cli/backend/src/utils/terminal-output.utils.d.ts +54 -0
- package/dist/cli/backend/src/utils/terminal-output.utils.d.ts.map +1 -0
- package/dist/cli/backend/src/utils/terminal-output.utils.js +97 -0
- package/dist/cli/backend/src/utils/terminal-output.utils.js.map +1 -0
- package/dist/cli/cli/src/commands/mcp-server.d.ts +38 -0
- package/dist/cli/cli/src/commands/mcp-server.d.ts.map +1 -0
- package/dist/cli/cli/src/commands/mcp-server.js +49 -0
- package/dist/cli/cli/src/commands/mcp-server.js.map +1 -0
- package/dist/cli/cli/src/commands/onboard.d.ts +61 -7
- package/dist/cli/cli/src/commands/onboard.d.ts.map +1 -1
- package/dist/cli/cli/src/commands/onboard.js +192 -19
- package/dist/cli/cli/src/commands/onboard.js.map +1 -1
- package/dist/cli/cli/src/commands/publish.d.ts +27 -0
- package/dist/cli/cli/src/commands/publish.d.ts.map +1 -0
- package/dist/cli/cli/src/commands/publish.js +69 -0
- package/dist/cli/cli/src/commands/publish.js.map +1 -0
- package/dist/cli/cli/src/commands/start.d.ts.map +1 -1
- package/dist/cli/cli/src/commands/start.js +12 -2
- package/dist/cli/cli/src/commands/start.js.map +1 -1
- package/dist/cli/cli/src/index.js +14 -0
- package/dist/cli/cli/src/index.js.map +1 -1
- package/dist/cli/cli/src/utils/archive-creator.d.ts +82 -0
- package/dist/cli/cli/src/utils/archive-creator.d.ts.map +1 -0
- package/dist/cli/cli/src/utils/archive-creator.js +105 -0
- package/dist/cli/cli/src/utils/archive-creator.js.map +1 -0
- package/dist/cli/cli/src/utils/package-validator.d.ts +62 -0
- package/dist/cli/cli/src/utils/package-validator.d.ts.map +1 -0
- package/dist/cli/cli/src/utils/package-validator.js +122 -0
- package/dist/cli/cli/src/utils/package-validator.js.map +1 -0
- package/dist/cli/cli/src/utils/process-cleanup.d.ts +15 -0
- package/dist/cli/cli/src/utils/process-cleanup.d.ts.map +1 -0
- package/dist/cli/cli/src/utils/process-cleanup.js +76 -0
- package/dist/cli/cli/src/utils/process-cleanup.js.map +1 -0
- package/dist/cli/cli/src/utils/templates.d.ts +71 -0
- package/dist/cli/cli/src/utils/templates.d.ts.map +1 -0
- package/dist/cli/cli/src/utils/templates.js +91 -0
- package/dist/cli/cli/src/utils/templates.js.map +1 -0
- package/frontend/dist/assets/{index-523c7fce.js → index-68d1eb5a.js} +71 -71
- package/frontend/dist/assets/{index-4c050f52.css → index-c5043a83.css} +1 -1
- package/frontend/dist/assets/nunito-cyrillic-400-normal-e44e669f.woff2 +0 -0
- package/frontend/dist/assets/nunito-cyrillic-400-normal-ff8e8bdd.woff +0 -0
- package/frontend/dist/assets/nunito-cyrillic-500-normal-2159679b.woff +0 -0
- package/frontend/dist/assets/nunito-cyrillic-500-normal-61a3b80e.woff2 +0 -0
- package/frontend/dist/assets/nunito-cyrillic-600-normal-ac046097.woff +0 -0
- package/frontend/dist/assets/nunito-cyrillic-600-normal-e61eb97b.woff2 +0 -0
- package/frontend/dist/assets/nunito-cyrillic-700-normal-8fcefcc9.woff2 +0 -0
- package/frontend/dist/assets/nunito-cyrillic-700-normal-b9684104.woff +0 -0
- package/frontend/dist/assets/nunito-cyrillic-800-normal-40253beb.woff +0 -0
- package/frontend/dist/assets/nunito-cyrillic-800-normal-d80292de.woff2 +0 -0
- package/frontend/dist/assets/nunito-cyrillic-ext-400-normal-20d73ae7.woff2 +0 -0
- package/frontend/dist/assets/nunito-cyrillic-ext-400-normal-d48c37c9.woff +0 -0
- package/frontend/dist/assets/nunito-cyrillic-ext-500-normal-16197abd.woff +0 -0
- package/frontend/dist/assets/nunito-cyrillic-ext-500-normal-9dcfe9b5.woff2 +0 -0
- package/frontend/dist/assets/nunito-cyrillic-ext-600-normal-d53e9851.woff2 +0 -0
- package/frontend/dist/assets/nunito-cyrillic-ext-600-normal-e3d0201f.woff +0 -0
- package/frontend/dist/assets/nunito-cyrillic-ext-700-normal-5936f6ac.woff2 +0 -0
- package/frontend/dist/assets/nunito-cyrillic-ext-700-normal-c8c02775.woff +0 -0
- package/frontend/dist/assets/nunito-cyrillic-ext-800-normal-217b8f51.woff +0 -0
- package/frontend/dist/assets/nunito-cyrillic-ext-800-normal-796cf7bd.woff2 +0 -0
- package/frontend/dist/assets/nunito-latin-400-normal-a5906e15.woff2 +0 -0
- package/frontend/dist/assets/nunito-latin-400-normal-b51e7635.woff +0 -0
- package/frontend/dist/assets/nunito-latin-500-normal-23ae3083.woff2 +0 -0
- package/frontend/dist/assets/nunito-latin-500-normal-be14dbc6.woff +0 -0
- package/frontend/dist/assets/nunito-latin-600-normal-06a9c8b3.woff +0 -0
- package/frontend/dist/assets/nunito-latin-600-normal-45f437de.woff2 +0 -0
- package/frontend/dist/assets/nunito-latin-700-normal-ce9107dc.woff +0 -0
- package/frontend/dist/assets/nunito-latin-700-normal-fa89300b.woff2 +0 -0
- package/frontend/dist/assets/nunito-latin-800-normal-0ca02785.woff +0 -0
- package/frontend/dist/assets/nunito-latin-800-normal-2363d3ed.woff2 +0 -0
- package/frontend/dist/assets/nunito-latin-ext-400-normal-67250a41.woff2 +0 -0
- package/frontend/dist/assets/nunito-latin-ext-400-normal-d7e2415e.woff +0 -0
- package/frontend/dist/assets/nunito-latin-ext-500-normal-06f35d1c.woff +0 -0
- package/frontend/dist/assets/nunito-latin-ext-500-normal-343e7adc.woff2 +0 -0
- package/frontend/dist/assets/nunito-latin-ext-600-normal-5a8efd17.woff +0 -0
- package/frontend/dist/assets/nunito-latin-ext-600-normal-a7ba5f4f.woff2 +0 -0
- package/frontend/dist/assets/nunito-latin-ext-700-normal-0a4e4a02.woff2 +0 -0
- package/frontend/dist/assets/nunito-latin-ext-700-normal-0c607961.woff +0 -0
- package/frontend/dist/assets/nunito-latin-ext-800-normal-39f54b55.woff2 +0 -0
- package/frontend/dist/assets/nunito-latin-ext-800-normal-466d0211.woff +0 -0
- package/frontend/dist/assets/nunito-vietnamese-400-normal-2a755616.woff2 +0 -0
- package/frontend/dist/assets/nunito-vietnamese-400-normal-9c01ea9f.woff +0 -0
- package/frontend/dist/assets/nunito-vietnamese-500-normal-452e5e08.woff +0 -0
- package/frontend/dist/assets/nunito-vietnamese-500-normal-dc98d965.woff2 +0 -0
- package/frontend/dist/assets/nunito-vietnamese-600-normal-2ffbb85f.woff +0 -0
- package/frontend/dist/assets/nunito-vietnamese-600-normal-cf95b95d.woff2 +0 -0
- package/frontend/dist/assets/nunito-vietnamese-700-normal-0e29c28c.woff2 +0 -0
- package/frontend/dist/assets/nunito-vietnamese-700-normal-7793b75e.woff +0 -0
- package/frontend/dist/assets/nunito-vietnamese-800-normal-5baf507e.woff +0 -0
- package/frontend/dist/assets/nunito-vietnamese-800-normal-fac6740e.woff2 +0 -0
- package/frontend/dist/index.html +2 -2
- package/package.json +15 -5
|
@@ -0,0 +1,238 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Role Type Definitions
|
|
3
|
+
*
|
|
4
|
+
* Types for the Role system that powers agent personas with default prompts and assigned skills.
|
|
5
|
+
*
|
|
6
|
+
* @module types/role.types
|
|
7
|
+
*/
|
|
8
|
+
import { randomUUID } from 'crypto';
|
|
9
|
+
/**
|
|
10
|
+
* Array of all valid role categories
|
|
11
|
+
*/
|
|
12
|
+
export const ROLE_CATEGORIES = [
|
|
13
|
+
'development',
|
|
14
|
+
'management',
|
|
15
|
+
'quality',
|
|
16
|
+
'design',
|
|
17
|
+
'sales',
|
|
18
|
+
'support',
|
|
19
|
+
'automation',
|
|
20
|
+
];
|
|
21
|
+
// ============================================================================
|
|
22
|
+
// Utility Functions
|
|
23
|
+
// ============================================================================
|
|
24
|
+
/**
|
|
25
|
+
* Type guard to check if a string is a valid RoleCategory
|
|
26
|
+
*
|
|
27
|
+
* @param value - The string to check
|
|
28
|
+
* @returns True if the value is a valid RoleCategory
|
|
29
|
+
*
|
|
30
|
+
* @example
|
|
31
|
+
* ```typescript
|
|
32
|
+
* if (isValidRoleCategory(input)) {
|
|
33
|
+
* // input is typed as RoleCategory
|
|
34
|
+
* }
|
|
35
|
+
* ```
|
|
36
|
+
*/
|
|
37
|
+
export function isValidRoleCategory(value) {
|
|
38
|
+
return ROLE_CATEGORIES.includes(value);
|
|
39
|
+
}
|
|
40
|
+
/**
|
|
41
|
+
* Create a new Role with default values
|
|
42
|
+
*
|
|
43
|
+
* @param input - Required name and displayName, with optional overrides for other fields
|
|
44
|
+
* @returns A complete Role object with generated ID and timestamps
|
|
45
|
+
*
|
|
46
|
+
* @example
|
|
47
|
+
* ```typescript
|
|
48
|
+
* const role = createDefaultRole({
|
|
49
|
+
* name: 'my-role',
|
|
50
|
+
* displayName: 'My Role',
|
|
51
|
+
* category: 'development',
|
|
52
|
+
* });
|
|
53
|
+
* ```
|
|
54
|
+
*/
|
|
55
|
+
export function createDefaultRole(input) {
|
|
56
|
+
const now = new Date().toISOString();
|
|
57
|
+
return {
|
|
58
|
+
id: input.id ?? randomUUID(),
|
|
59
|
+
name: input.name,
|
|
60
|
+
displayName: input.displayName,
|
|
61
|
+
description: input.description ?? '',
|
|
62
|
+
category: input.category ?? 'development',
|
|
63
|
+
systemPromptFile: input.systemPromptFile ?? '',
|
|
64
|
+
assignedSkills: input.assignedSkills ?? [],
|
|
65
|
+
isDefault: input.isDefault ?? false,
|
|
66
|
+
isHidden: input.isHidden ?? false,
|
|
67
|
+
isBuiltin: input.isBuiltin ?? false,
|
|
68
|
+
createdAt: input.createdAt ?? now,
|
|
69
|
+
updatedAt: input.updatedAt ?? now,
|
|
70
|
+
};
|
|
71
|
+
}
|
|
72
|
+
/**
|
|
73
|
+
* Convert a Role to a RoleSummary (for list views)
|
|
74
|
+
*
|
|
75
|
+
* Strips out detailed information like timestamps and prompt file path,
|
|
76
|
+
* and replaces assignedSkills array with a count.
|
|
77
|
+
*
|
|
78
|
+
* @param role - The full Role object
|
|
79
|
+
* @returns A RoleSummary with essential fields only
|
|
80
|
+
*
|
|
81
|
+
* @example
|
|
82
|
+
* ```typescript
|
|
83
|
+
* const roles = await roleService.getAll();
|
|
84
|
+
* const summaries = roles.map(roleToSummary);
|
|
85
|
+
* ```
|
|
86
|
+
*/
|
|
87
|
+
export function roleToSummary(role) {
|
|
88
|
+
return {
|
|
89
|
+
id: role.id,
|
|
90
|
+
name: role.name,
|
|
91
|
+
displayName: role.displayName,
|
|
92
|
+
description: role.description,
|
|
93
|
+
category: role.category,
|
|
94
|
+
skillCount: role.assignedSkills.length,
|
|
95
|
+
isDefault: role.isDefault,
|
|
96
|
+
isHidden: role.isHidden,
|
|
97
|
+
hasOverride: role.hasOverride,
|
|
98
|
+
isBuiltin: role.isBuiltin,
|
|
99
|
+
};
|
|
100
|
+
}
|
|
101
|
+
/**
|
|
102
|
+
* Validate CreateRoleInput and return an array of error messages
|
|
103
|
+
*
|
|
104
|
+
* @param input - The CreateRoleInput to validate
|
|
105
|
+
* @returns Array of error messages (empty if valid)
|
|
106
|
+
*
|
|
107
|
+
* @example
|
|
108
|
+
* ```typescript
|
|
109
|
+
* const errors = validateCreateRoleInput(input);
|
|
110
|
+
* if (errors.length > 0) {
|
|
111
|
+
* throw new ValidationError(errors.join(', '));
|
|
112
|
+
* }
|
|
113
|
+
* ```
|
|
114
|
+
*/
|
|
115
|
+
export function validateCreateRoleInput(input) {
|
|
116
|
+
const errors = [];
|
|
117
|
+
if (!input.name || input.name.trim().length === 0) {
|
|
118
|
+
errors.push('Name is required');
|
|
119
|
+
}
|
|
120
|
+
else if (!/^[a-z0-9-]+$/.test(input.name)) {
|
|
121
|
+
errors.push('Name must contain only lowercase letters, numbers, and hyphens');
|
|
122
|
+
}
|
|
123
|
+
if (!input.displayName || input.displayName.trim().length === 0) {
|
|
124
|
+
errors.push('Display name is required');
|
|
125
|
+
}
|
|
126
|
+
if (!input.description || input.description.trim().length === 0) {
|
|
127
|
+
errors.push('Description is required');
|
|
128
|
+
}
|
|
129
|
+
if (!isValidRoleCategory(input.category)) {
|
|
130
|
+
errors.push(`Invalid category: ${input.category}`);
|
|
131
|
+
}
|
|
132
|
+
if (!input.systemPromptContent || input.systemPromptContent.trim().length === 0) {
|
|
133
|
+
errors.push('System prompt content is required');
|
|
134
|
+
}
|
|
135
|
+
if (input.assignedSkills && !Array.isArray(input.assignedSkills)) {
|
|
136
|
+
errors.push('Assigned skills must be an array');
|
|
137
|
+
}
|
|
138
|
+
return errors;
|
|
139
|
+
}
|
|
140
|
+
/**
|
|
141
|
+
* Validate UpdateRoleInput and return an array of error messages
|
|
142
|
+
*
|
|
143
|
+
* @param input - The UpdateRoleInput to validate
|
|
144
|
+
* @returns Array of error messages (empty if valid)
|
|
145
|
+
*
|
|
146
|
+
* @example
|
|
147
|
+
* ```typescript
|
|
148
|
+
* const errors = validateUpdateRoleInput(input);
|
|
149
|
+
* if (errors.length > 0) {
|
|
150
|
+
* throw new ValidationError(errors.join(', '));
|
|
151
|
+
* }
|
|
152
|
+
* ```
|
|
153
|
+
*/
|
|
154
|
+
export function validateUpdateRoleInput(input) {
|
|
155
|
+
const errors = [];
|
|
156
|
+
if (input.displayName !== undefined && input.displayName.trim().length === 0) {
|
|
157
|
+
errors.push('Display name cannot be empty');
|
|
158
|
+
}
|
|
159
|
+
if (input.category !== undefined && !isValidRoleCategory(input.category)) {
|
|
160
|
+
errors.push(`Invalid category: ${input.category}`);
|
|
161
|
+
}
|
|
162
|
+
if (input.systemPromptContent !== undefined && input.systemPromptContent.trim().length === 0) {
|
|
163
|
+
errors.push('System prompt content cannot be empty');
|
|
164
|
+
}
|
|
165
|
+
if (input.assignedSkills !== undefined && !Array.isArray(input.assignedSkills)) {
|
|
166
|
+
errors.push('Assigned skills must be an array');
|
|
167
|
+
}
|
|
168
|
+
return errors;
|
|
169
|
+
}
|
|
170
|
+
/**
|
|
171
|
+
* Check if a Role matches the given filter criteria
|
|
172
|
+
*
|
|
173
|
+
* @param role - The role to check
|
|
174
|
+
* @param filter - The filter criteria
|
|
175
|
+
* @returns True if the role matches all filter criteria
|
|
176
|
+
*
|
|
177
|
+
* @example
|
|
178
|
+
* ```typescript
|
|
179
|
+
* const filteredRoles = roles.filter(role => matchesRoleFilter(role, filter));
|
|
180
|
+
* ```
|
|
181
|
+
*/
|
|
182
|
+
export function matchesRoleFilter(role, filter) {
|
|
183
|
+
if (filter.category !== undefined && role.category !== filter.category) {
|
|
184
|
+
return false;
|
|
185
|
+
}
|
|
186
|
+
if (filter.isBuiltin !== undefined && role.isBuiltin !== filter.isBuiltin) {
|
|
187
|
+
return false;
|
|
188
|
+
}
|
|
189
|
+
if (filter.hasSkill !== undefined && !role.assignedSkills.includes(filter.hasSkill)) {
|
|
190
|
+
return false;
|
|
191
|
+
}
|
|
192
|
+
if (filter.search !== undefined && filter.search.trim().length > 0) {
|
|
193
|
+
const searchLower = filter.search.toLowerCase();
|
|
194
|
+
const matchesName = role.name.toLowerCase().includes(searchLower);
|
|
195
|
+
const matchesDisplayName = role.displayName.toLowerCase().includes(searchLower);
|
|
196
|
+
const matchesDescription = role.description.toLowerCase().includes(searchLower);
|
|
197
|
+
if (!matchesName && !matchesDisplayName && !matchesDescription) {
|
|
198
|
+
return false;
|
|
199
|
+
}
|
|
200
|
+
}
|
|
201
|
+
return true;
|
|
202
|
+
}
|
|
203
|
+
/**
|
|
204
|
+
* Convert a Role to RoleStorageFormat for persistence
|
|
205
|
+
*
|
|
206
|
+
* @param role - The role to convert
|
|
207
|
+
* @returns A RoleStorageFormat object ready for JSON serialization
|
|
208
|
+
*/
|
|
209
|
+
export function roleToStorageFormat(role) {
|
|
210
|
+
return {
|
|
211
|
+
id: role.id,
|
|
212
|
+
name: role.name,
|
|
213
|
+
displayName: role.displayName,
|
|
214
|
+
description: role.description,
|
|
215
|
+
category: role.category,
|
|
216
|
+
systemPromptFile: role.systemPromptFile,
|
|
217
|
+
assignedSkills: role.assignedSkills,
|
|
218
|
+
isDefault: role.isDefault,
|
|
219
|
+
isHidden: role.isHidden,
|
|
220
|
+
createdAt: role.createdAt,
|
|
221
|
+
updatedAt: role.updatedAt,
|
|
222
|
+
};
|
|
223
|
+
}
|
|
224
|
+
/**
|
|
225
|
+
* Convert a RoleStorageFormat back to a Role
|
|
226
|
+
*
|
|
227
|
+
* @param stored - The stored role data
|
|
228
|
+
* @param isBuiltin - Whether this role is built-in
|
|
229
|
+
* @returns A complete Role object
|
|
230
|
+
*/
|
|
231
|
+
export function storageFormatToRole(stored, isBuiltin) {
|
|
232
|
+
return {
|
|
233
|
+
...stored,
|
|
234
|
+
isHidden: stored.isHidden ?? false,
|
|
235
|
+
isBuiltin,
|
|
236
|
+
};
|
|
237
|
+
}
|
|
238
|
+
//# sourceMappingURL=role.types.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"role.types.js","sourceRoot":"","sources":["../../../../../backend/src/types/role.types.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,254 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Scheduler Type Definitions
|
|
3
|
+
*
|
|
4
|
+
* Types for the enhanced scheduler service with PTY compatibility,
|
|
5
|
+
* continuation-aware scheduling, and adaptive scheduling.
|
|
6
|
+
*
|
|
7
|
+
* @module types/scheduler.types
|
|
8
|
+
*/
|
|
9
|
+
/**
|
|
10
|
+
* Types of scheduled messages
|
|
11
|
+
*/
|
|
12
|
+
export type ScheduledMessageType = 'check-in' | 'commit-reminder' | 'progress-check' | 'continuation' | 'custom';
|
|
13
|
+
/**
|
|
14
|
+
* Enhanced scheduled message with type information
|
|
15
|
+
*/
|
|
16
|
+
export interface EnhancedScheduledMessage {
|
|
17
|
+
/** Unique message identifier */
|
|
18
|
+
id: string;
|
|
19
|
+
/** Target session name */
|
|
20
|
+
sessionName: string;
|
|
21
|
+
/** Message content (empty for continuation type) */
|
|
22
|
+
message: string;
|
|
23
|
+
/** Scheduled execution time */
|
|
24
|
+
scheduledFor: Date;
|
|
25
|
+
/** Type of scheduled message */
|
|
26
|
+
type: ScheduledMessageType;
|
|
27
|
+
/** Recurring configuration */
|
|
28
|
+
recurring?: RecurringConfig;
|
|
29
|
+
/** Additional metadata */
|
|
30
|
+
metadata?: ScheduledMessageMetadata;
|
|
31
|
+
/** ISO timestamp of creation */
|
|
32
|
+
createdAt: string;
|
|
33
|
+
/** Optional session name of the agent being monitored for status enrichment */
|
|
34
|
+
watchedSession?: string;
|
|
35
|
+
}
|
|
36
|
+
/**
|
|
37
|
+
* Information emitted when a stuck agent is detected by the scheduler
|
|
38
|
+
*/
|
|
39
|
+
export interface StuckAgentAlert {
|
|
40
|
+
/** Session name of the stuck agent */
|
|
41
|
+
watchedSession: string;
|
|
42
|
+
/** Reason for the stuck detection */
|
|
43
|
+
reason: 'session_dead' | 'not_yet_active' | 'idle_too_long';
|
|
44
|
+
/** Current agent lifecycle status */
|
|
45
|
+
agentStatus: string;
|
|
46
|
+
/** Current working status */
|
|
47
|
+
workingStatus: string;
|
|
48
|
+
/** Number of consecutive checks where agent was idle */
|
|
49
|
+
consecutiveIdleChecks: number;
|
|
50
|
+
}
|
|
51
|
+
/**
|
|
52
|
+
* Configuration for recurring messages
|
|
53
|
+
*/
|
|
54
|
+
export interface RecurringConfig {
|
|
55
|
+
/** Interval in minutes */
|
|
56
|
+
interval: number;
|
|
57
|
+
/** Maximum number of occurrences (undefined = unlimited) */
|
|
58
|
+
maxOccurrences?: number;
|
|
59
|
+
/** Current occurrence count */
|
|
60
|
+
currentOccurrence?: number;
|
|
61
|
+
}
|
|
62
|
+
/**
|
|
63
|
+
* Metadata for scheduled messages
|
|
64
|
+
*/
|
|
65
|
+
export interface ScheduledMessageMetadata {
|
|
66
|
+
/** Associated task ID */
|
|
67
|
+
taskId?: string;
|
|
68
|
+
/** Current iteration number */
|
|
69
|
+
iteration?: number;
|
|
70
|
+
/** Whether to trigger continuation logic */
|
|
71
|
+
triggerContinuation?: boolean;
|
|
72
|
+
/** Agent ID */
|
|
73
|
+
agentId?: string;
|
|
74
|
+
/** Project path */
|
|
75
|
+
projectPath?: string;
|
|
76
|
+
/** Custom data */
|
|
77
|
+
[key: string]: unknown;
|
|
78
|
+
}
|
|
79
|
+
/**
|
|
80
|
+
* Configuration for adaptive scheduling
|
|
81
|
+
*/
|
|
82
|
+
export interface AdaptiveScheduleConfig {
|
|
83
|
+
/** Base check interval in minutes */
|
|
84
|
+
baseInterval: number;
|
|
85
|
+
/** Minimum interval in minutes */
|
|
86
|
+
minInterval: number;
|
|
87
|
+
/** Maximum interval in minutes */
|
|
88
|
+
maxInterval: number;
|
|
89
|
+
/** Factor to adjust interval by */
|
|
90
|
+
adjustmentFactor: number;
|
|
91
|
+
}
|
|
92
|
+
/**
|
|
93
|
+
* Activity information for adaptive scheduling
|
|
94
|
+
*/
|
|
95
|
+
export interface ActivityInfo {
|
|
96
|
+
/** Whether the agent is highly active */
|
|
97
|
+
isHighlyActive: boolean;
|
|
98
|
+
/** Whether the agent is idle */
|
|
99
|
+
isIdle: boolean;
|
|
100
|
+
/** Last activity timestamp */
|
|
101
|
+
lastActivityAt?: string;
|
|
102
|
+
/** Activity level (0-1) */
|
|
103
|
+
activityLevel?: number;
|
|
104
|
+
}
|
|
105
|
+
/**
|
|
106
|
+
* Parameters for scheduling a one-time check
|
|
107
|
+
*/
|
|
108
|
+
export interface ScheduleCheckParams {
|
|
109
|
+
/** Target session name */
|
|
110
|
+
sessionName: string;
|
|
111
|
+
/** Delay in minutes */
|
|
112
|
+
delayMinutes: number;
|
|
113
|
+
/** Message to send */
|
|
114
|
+
message: string;
|
|
115
|
+
/** Type of scheduled message */
|
|
116
|
+
type?: ScheduledMessageType;
|
|
117
|
+
/** Additional metadata */
|
|
118
|
+
metadata?: ScheduledMessageMetadata;
|
|
119
|
+
}
|
|
120
|
+
/**
|
|
121
|
+
* Parameters for scheduling a recurring check
|
|
122
|
+
*/
|
|
123
|
+
export interface ScheduleRecurringParams {
|
|
124
|
+
/** Target session name */
|
|
125
|
+
sessionName: string;
|
|
126
|
+
/** Interval in minutes */
|
|
127
|
+
interval: number;
|
|
128
|
+
/** Message to send */
|
|
129
|
+
message: string;
|
|
130
|
+
/** Type of scheduled message */
|
|
131
|
+
type?: ScheduledMessageType;
|
|
132
|
+
/** Maximum occurrences */
|
|
133
|
+
maxOccurrences?: number;
|
|
134
|
+
/** Additional metadata */
|
|
135
|
+
metadata?: ScheduledMessageMetadata;
|
|
136
|
+
}
|
|
137
|
+
/**
|
|
138
|
+
* Parameters for scheduling a continuation check
|
|
139
|
+
*/
|
|
140
|
+
export interface ScheduleContinuationParams {
|
|
141
|
+
/** Target session name */
|
|
142
|
+
sessionName: string;
|
|
143
|
+
/** Delay in minutes */
|
|
144
|
+
delayMinutes: number;
|
|
145
|
+
/** Agent ID */
|
|
146
|
+
agentId?: string;
|
|
147
|
+
/** Project path */
|
|
148
|
+
projectPath?: string;
|
|
149
|
+
}
|
|
150
|
+
/**
|
|
151
|
+
* Default scheduling intervals
|
|
152
|
+
*/
|
|
153
|
+
export declare const DEFAULT_SCHEDULES: {
|
|
154
|
+
/** Initial check-in delay in minutes */
|
|
155
|
+
readonly initialCheck: 5;
|
|
156
|
+
/** Progress check interval in minutes */
|
|
157
|
+
readonly progressCheck: 30;
|
|
158
|
+
/** Commit reminder interval in minutes */
|
|
159
|
+
readonly commitReminder: 25;
|
|
160
|
+
};
|
|
161
|
+
/**
|
|
162
|
+
* Default adaptive schedule configuration
|
|
163
|
+
*/
|
|
164
|
+
export declare const DEFAULT_ADAPTIVE_CONFIG: AdaptiveScheduleConfig;
|
|
165
|
+
/**
|
|
166
|
+
* Interface for the enhanced SchedulerService
|
|
167
|
+
*/
|
|
168
|
+
export interface ISchedulerService {
|
|
169
|
+
/**
|
|
170
|
+
* Schedule a one-time check
|
|
171
|
+
*
|
|
172
|
+
* @param targetSession - Target session name
|
|
173
|
+
* @param minutes - Delay in minutes
|
|
174
|
+
* @param message - Message to send
|
|
175
|
+
* @returns Check ID
|
|
176
|
+
*/
|
|
177
|
+
scheduleCheck(targetSession: string, minutes: number, message: string): string;
|
|
178
|
+
/**
|
|
179
|
+
* Schedule a recurring check
|
|
180
|
+
*
|
|
181
|
+
* @param targetSession - Target session name
|
|
182
|
+
* @param intervalMinutes - Interval in minutes
|
|
183
|
+
* @param message - Message to send
|
|
184
|
+
* @returns Check ID
|
|
185
|
+
*/
|
|
186
|
+
scheduleRecurringCheck(targetSession: string, intervalMinutes: number, message: string): string;
|
|
187
|
+
/**
|
|
188
|
+
* Schedule default check-ins for a session
|
|
189
|
+
*
|
|
190
|
+
* @param sessionName - Session name
|
|
191
|
+
* @returns Array of check IDs
|
|
192
|
+
*/
|
|
193
|
+
scheduleDefaultCheckins(sessionName: string): string[];
|
|
194
|
+
/**
|
|
195
|
+
* Schedule a continuation check
|
|
196
|
+
*
|
|
197
|
+
* @param params - Continuation parameters
|
|
198
|
+
* @returns Check ID
|
|
199
|
+
*/
|
|
200
|
+
scheduleContinuationCheck(params: ScheduleContinuationParams): string;
|
|
201
|
+
/**
|
|
202
|
+
* Schedule an adaptive check-in based on activity
|
|
203
|
+
*
|
|
204
|
+
* @param sessionName - Session name
|
|
205
|
+
* @param config - Adaptive configuration
|
|
206
|
+
* @returns Check ID
|
|
207
|
+
*/
|
|
208
|
+
scheduleAdaptiveCheckin(sessionName: string, config?: AdaptiveScheduleConfig): Promise<string>;
|
|
209
|
+
/**
|
|
210
|
+
* Cancel a scheduled check
|
|
211
|
+
*
|
|
212
|
+
* @param checkId - Check ID to cancel
|
|
213
|
+
*/
|
|
214
|
+
cancelCheck(checkId: string): void;
|
|
215
|
+
/**
|
|
216
|
+
* Cancel all checks for a session
|
|
217
|
+
*
|
|
218
|
+
* @param sessionName - Session name
|
|
219
|
+
*/
|
|
220
|
+
cancelAllChecksForSession(sessionName: string): void;
|
|
221
|
+
/**
|
|
222
|
+
* Get scheduled checks for a session
|
|
223
|
+
*
|
|
224
|
+
* @param sessionName - Session name
|
|
225
|
+
* @returns Array of scheduled checks
|
|
226
|
+
*/
|
|
227
|
+
getChecksForSession(sessionName: string): EnhancedScheduledMessage[];
|
|
228
|
+
/**
|
|
229
|
+
* Get scheduler statistics
|
|
230
|
+
*
|
|
231
|
+
* @returns Statistics object
|
|
232
|
+
*/
|
|
233
|
+
getStats(): SchedulerStats;
|
|
234
|
+
/**
|
|
235
|
+
* Clean up all scheduled checks
|
|
236
|
+
*/
|
|
237
|
+
cleanup(): void;
|
|
238
|
+
}
|
|
239
|
+
/**
|
|
240
|
+
* Scheduler statistics
|
|
241
|
+
*/
|
|
242
|
+
export interface SchedulerStats {
|
|
243
|
+
/** Number of one-time checks */
|
|
244
|
+
oneTimeChecks: number;
|
|
245
|
+
/** Number of recurring checks */
|
|
246
|
+
recurringChecks: number;
|
|
247
|
+
/** Total unique sessions with active schedules */
|
|
248
|
+
totalActiveSessions: number;
|
|
249
|
+
/** Number of continuation checks */
|
|
250
|
+
continuationChecks?: number;
|
|
251
|
+
/** Number of adaptive checks */
|
|
252
|
+
adaptiveChecks?: number;
|
|
253
|
+
}
|
|
254
|
+
//# sourceMappingURL=scheduler.types.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"scheduler.types.d.ts","sourceRoot":"","sources":["../../../../../backend/src/types/scheduler.types.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,32 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Scheduler Type Definitions
|
|
3
|
+
*
|
|
4
|
+
* Types for the enhanced scheduler service with PTY compatibility,
|
|
5
|
+
* continuation-aware scheduling, and adaptive scheduling.
|
|
6
|
+
*
|
|
7
|
+
* @module types/scheduler.types
|
|
8
|
+
*/
|
|
9
|
+
// ============================================
|
|
10
|
+
// Default Schedules
|
|
11
|
+
// ============================================
|
|
12
|
+
/**
|
|
13
|
+
* Default scheduling intervals
|
|
14
|
+
*/
|
|
15
|
+
export const DEFAULT_SCHEDULES = {
|
|
16
|
+
/** Initial check-in delay in minutes */
|
|
17
|
+
initialCheck: 5,
|
|
18
|
+
/** Progress check interval in minutes */
|
|
19
|
+
progressCheck: 30,
|
|
20
|
+
/** Commit reminder interval in minutes */
|
|
21
|
+
commitReminder: 25,
|
|
22
|
+
};
|
|
23
|
+
/**
|
|
24
|
+
* Default adaptive schedule configuration
|
|
25
|
+
*/
|
|
26
|
+
export const DEFAULT_ADAPTIVE_CONFIG = {
|
|
27
|
+
baseInterval: 15,
|
|
28
|
+
minInterval: 5,
|
|
29
|
+
maxInterval: 60,
|
|
30
|
+
adjustmentFactor: 1.5,
|
|
31
|
+
};
|
|
32
|
+
//# sourceMappingURL=scheduler.types.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"scheduler.types.js","sourceRoot":"","sources":["../../../../../backend/src/types/scheduler.types.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AA0KH,+CAA+C;AAC/C,oBAAoB;AACpB,+CAA+C;AAE/C;;GAEG;AACH,MAAM,CAAC,MAAM,iBAAiB,GAAG;IAC/B,wCAAwC;IACxC,YAAY,EAAE,CAAC;IACf,yCAAyC;IACzC,aAAa,EAAE,EAAE;IACjB,0CAA0C;IAC1C,cAAc,EAAE,EAAE;CACV,CAAC;AAEX;;GAEG;AACH,MAAM,CAAC,MAAM,uBAAuB,GAA2B;IAC7D,YAAY,EAAE,EAAE;IAChB,WAAW,EAAE,CAAC;IACd,WAAW,EAAE,EAAE;IACf,gBAAgB,EAAE,GAAG;CACtB,CAAC"}
|