crewly 1.20.153 → 1.20.155
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/README.md +21 -3
- package/config/constants.ts +78 -0
- package/config/hooks/agent-status/report.sh +78 -0
- package/config/hooks/control-plane-guard/pretooluse-bash.sh +241 -0
- package/config/orchestrator_tasks/prompts/assign-task-orchestrator-prompt-template.md +19 -49
- package/config/orchestrator_tasks/prompts/checkin-orchestrator-prompt-template.md +25 -125
- package/config/orchestrator_tasks/prompts/project-start-orchestrator-prompt-template.md +29 -100
- package/config/roles/orchestrator/prompt.md +18 -2
- package/config/roles/team-leader/prompt.md +13 -3
- package/config/roles/team-leader/role.json +1 -1
- package/config/roles/team-leader/tl-addon.md +12 -3
- package/config/skills/agent/core/complete-task/SKILL.md +1 -1
- package/config/skills/agent/core/project-tickets/SKILL.md +127 -0
- package/config/skills/agent/core/project-tickets/execute.sh +182 -0
- package/config/skills/agent/core/project-tickets/execute.test.sh +116 -0
- package/config/skills/agent/core/recall/SKILL.md +1 -1
- package/config/skills/agent/core/recall/execute.sh +7 -0
- package/config/skills/agent/core/report-status/SKILL.md +3 -2
- package/config/skills/agent/core/report-status/execute.sh +37 -15
- package/config/skills/agent/core/split-ticket/SKILL.md +62 -0
- package/config/skills/agent/core/split-ticket/execute.sh +87 -0
- package/config/skills/agent/core/split-ticket/execute.test.sh +77 -0
- package/config/skills/agent/core/standing-update/SKILL.md +96 -0
- package/config/skills/agent/core/standing-update/execute.sh +107 -0
- package/config/skills/agent/onboarding/materialize-team/SKILL.md +1 -1
- package/config/skills/agent/onboarding/recommend-team/SKILL.md +1 -1
- package/config/skills/orchestrator/delegate-task/SKILL.md +4 -3
- package/config/skills/orchestrator/render-verdict/SKILL.md +62 -0
- package/config/skills/orchestrator/render-verdict/execute.sh +47 -0
- package/config/skills/orchestrator/render-verdict/execute.test.sh +121 -0
- package/config/skills/orchestrator/wiki-migrate/SKILL.md +0 -1
- package/config/skills/team-leader/aggregate-results/SKILL.md +1 -1
- package/config/skills/team-leader/assign-ticket/SKILL.md +47 -0
- package/config/skills/team-leader/assign-ticket/execute.sh +59 -0
- package/config/skills/team-leader/assign-ticket/execute.test.sh +64 -0
- package/config/skills/team-leader/decompose-goal/SKILL.md +4 -4
- package/config/skills/team-leader/delegate-task/SKILL.md +1 -1
- package/config/skills/team-leader/delegate-task/execute.sh +17 -4
- package/config/skills/team-leader/verify-output/SKILL.md +2 -2
- package/config/sops/developer/git-workflow.md +1 -1
- package/dist/backend/backend/src/constants.d.ts +397 -1
- package/dist/backend/backend/src/constants.d.ts.map +1 -1
- package/dist/backend/backend/src/constants.js +388 -2
- package/dist/backend/backend/src/constants.js.map +1 -1
- package/dist/backend/backend/src/controllers/agent-hooks/agent-hooks.controller.d.ts +27 -0
- package/dist/backend/backend/src/controllers/agent-hooks/agent-hooks.controller.d.ts.map +1 -0
- package/dist/backend/backend/src/controllers/agent-hooks/agent-hooks.controller.js +55 -0
- package/dist/backend/backend/src/controllers/agent-hooks/agent-hooks.controller.js.map +1 -0
- package/dist/backend/backend/src/controllers/agent-hooks/agent-hooks.routes.d.ts +13 -0
- package/dist/backend/backend/src/controllers/agent-hooks/agent-hooks.routes.d.ts.map +1 -0
- package/dist/backend/backend/src/controllers/agent-hooks/agent-hooks.routes.js +19 -0
- package/dist/backend/backend/src/controllers/agent-hooks/agent-hooks.routes.js.map +1 -0
- package/dist/backend/backend/src/controllers/api.controller.d.ts +0 -12
- package/dist/backend/backend/src/controllers/api.controller.d.ts.map +1 -1
- package/dist/backend/backend/src/controllers/api.controller.js +0 -44
- package/dist/backend/backend/src/controllers/api.controller.js.map +1 -1
- package/dist/backend/backend/src/controllers/approvals/approvals.controller.d.ts +27 -5
- package/dist/backend/backend/src/controllers/approvals/approvals.controller.d.ts.map +1 -1
- package/dist/backend/backend/src/controllers/approvals/approvals.controller.js +55 -15
- package/dist/backend/backend/src/controllers/approvals/approvals.controller.js.map +1 -1
- package/dist/backend/backend/src/controllers/approvals/approvals.routes.d.ts.map +1 -1
- package/dist/backend/backend/src/controllers/approvals/approvals.routes.js +2 -0
- package/dist/backend/backend/src/controllers/approvals/approvals.routes.js.map +1 -1
- package/dist/backend/backend/src/controllers/expert/expert.controller.d.ts +13 -0
- package/dist/backend/backend/src/controllers/expert/expert.controller.d.ts.map +1 -1
- package/dist/backend/backend/src/controllers/expert/expert.controller.js +67 -9
- package/dist/backend/backend/src/controllers/expert/expert.controller.js.map +1 -1
- package/dist/backend/backend/src/controllers/monitoring/terminal.controller.d.ts +32 -0
- package/dist/backend/backend/src/controllers/monitoring/terminal.controller.d.ts.map +1 -1
- package/dist/backend/backend/src/controllers/monitoring/terminal.controller.js +122 -8
- package/dist/backend/backend/src/controllers/monitoring/terminal.controller.js.map +1 -1
- package/dist/backend/backend/src/controllers/owner-receipt/owner-receipt.controller.d.ts +41 -0
- package/dist/backend/backend/src/controllers/owner-receipt/owner-receipt.controller.d.ts.map +1 -0
- package/dist/backend/backend/src/controllers/owner-receipt/owner-receipt.controller.js +146 -0
- package/dist/backend/backend/src/controllers/owner-receipt/owner-receipt.controller.js.map +1 -0
- package/dist/backend/backend/src/controllers/owner-receipt/owner-receipt.routes.d.ts +20 -0
- package/dist/backend/backend/src/controllers/owner-receipt/owner-receipt.routes.d.ts.map +1 -0
- package/dist/backend/backend/src/controllers/owner-receipt/owner-receipt.routes.js +29 -0
- package/dist/backend/backend/src/controllers/owner-receipt/owner-receipt.routes.js.map +1 -0
- package/dist/backend/backend/src/controllers/project/project.controller.d.ts +2 -2
- package/dist/backend/backend/src/controllers/project/project.controller.d.ts.map +1 -1
- package/dist/backend/backend/src/controllers/project/project.controller.js +24 -7
- package/dist/backend/backend/src/controllers/project/project.controller.js.map +1 -1
- package/dist/backend/backend/src/controllers/project/project.routes.d.ts +2 -2
- package/dist/backend/backend/src/controllers/project/project.routes.d.ts.map +1 -1
- package/dist/backend/backend/src/controllers/project/project.routes.js +3 -36
- package/dist/backend/backend/src/controllers/project/project.routes.js.map +1 -1
- package/dist/backend/backend/src/controllers/project-tickets/project-tickets.controller.d.ts +93 -0
- package/dist/backend/backend/src/controllers/project-tickets/project-tickets.controller.d.ts.map +1 -0
- package/dist/backend/backend/src/controllers/project-tickets/project-tickets.controller.js +252 -0
- package/dist/backend/backend/src/controllers/project-tickets/project-tickets.controller.js.map +1 -0
- package/dist/backend/backend/src/controllers/project-tickets/project-tickets.routes.d.ts +34 -0
- package/dist/backend/backend/src/controllers/project-tickets/project-tickets.routes.d.ts.map +1 -0
- package/dist/backend/backend/src/controllers/project-tickets/project-tickets.routes.js +51 -0
- package/dist/backend/backend/src/controllers/project-tickets/project-tickets.routes.js.map +1 -0
- package/dist/backend/backend/src/controllers/request-types.d.ts +13 -0
- package/dist/backend/backend/src/controllers/request-types.d.ts.map +1 -1
- package/dist/backend/backend/src/controllers/standing/standing.controller.d.ts +49 -0
- package/dist/backend/backend/src/controllers/standing/standing.controller.d.ts.map +1 -0
- package/dist/backend/backend/src/controllers/standing/standing.controller.js +100 -0
- package/dist/backend/backend/src/controllers/standing/standing.controller.js.map +1 -0
- package/dist/backend/backend/src/controllers/task-pool/task-pool.controller.d.ts +38 -0
- package/dist/backend/backend/src/controllers/task-pool/task-pool.controller.d.ts.map +1 -1
- package/dist/backend/backend/src/controllers/task-pool/task-pool.controller.js +143 -8
- package/dist/backend/backend/src/controllers/task-pool/task-pool.controller.js.map +1 -1
- package/dist/backend/backend/src/controllers/task-pool/task-pool.routes.d.ts.map +1 -1
- package/dist/backend/backend/src/controllers/task-pool/task-pool.routes.js +6 -1
- package/dist/backend/backend/src/controllers/task-pool/task-pool.routes.js.map +1 -1
- package/dist/backend/backend/src/controllers/team/team.controller.d.ts +2 -0
- package/dist/backend/backend/src/controllers/team/team.controller.d.ts.map +1 -1
- package/dist/backend/backend/src/controllers/team/team.controller.js +26 -6
- package/dist/backend/backend/src/controllers/team/team.controller.js.map +1 -1
- package/dist/backend/backend/src/controllers/tickets/tickets.controller.d.ts +18 -0
- package/dist/backend/backend/src/controllers/tickets/tickets.controller.d.ts.map +1 -1
- package/dist/backend/backend/src/controllers/tickets/tickets.controller.js +56 -0
- package/dist/backend/backend/src/controllers/tickets/tickets.controller.js.map +1 -1
- package/dist/backend/backend/src/controllers/tickets/tickets.routes.d.ts +1 -0
- package/dist/backend/backend/src/controllers/tickets/tickets.routes.d.ts.map +1 -1
- package/dist/backend/backend/src/controllers/tickets/tickets.routes.js +3 -1
- package/dist/backend/backend/src/controllers/tickets/tickets.routes.js.map +1 -1
- package/dist/backend/backend/src/controllers/types.d.ts +1 -2
- package/dist/backend/backend/src/controllers/types.d.ts.map +1 -1
- package/dist/backend/backend/src/controllers/wiki/wiki.controller.d.ts +2 -3
- package/dist/backend/backend/src/controllers/wiki/wiki.controller.d.ts.map +1 -1
- package/dist/backend/backend/src/controllers/wiki/wiki.controller.js +2 -3
- package/dist/backend/backend/src/controllers/wiki/wiki.controller.js.map +1 -1
- package/dist/backend/backend/src/index.d.ts.map +1 -1
- package/dist/backend/backend/src/index.js +113 -7
- package/dist/backend/backend/src/index.js.map +1 -1
- package/dist/backend/backend/src/middleware/api-token.middleware.d.ts +29 -0
- package/dist/backend/backend/src/middleware/api-token.middleware.d.ts.map +1 -1
- package/dist/backend/backend/src/middleware/api-token.middleware.js +38 -0
- package/dist/backend/backend/src/middleware/api-token.middleware.js.map +1 -1
- package/dist/backend/backend/src/models/index.d.ts +0 -1
- package/dist/backend/backend/src/models/index.d.ts.map +1 -1
- package/dist/backend/backend/src/models/index.js +0 -1
- package/dist/backend/backend/src/models/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 +24 -3
- package/dist/backend/backend/src/routes/api.routes.js.map +1 -1
- package/dist/backend/backend/src/scripts/leaked-stub-teams.lib.d.ts +6 -2
- package/dist/backend/backend/src/scripts/leaked-stub-teams.lib.d.ts.map +1 -1
- package/dist/backend/backend/src/scripts/leaked-stub-teams.lib.js +6 -2
- package/dist/backend/backend/src/scripts/leaked-stub-teams.lib.js.map +1 -1
- package/dist/backend/backend/src/services/agent/agent-registration.service.d.ts +43 -1
- 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 +129 -34
- package/dist/backend/backend/src/services/agent/agent-registration.service.js.map +1 -1
- package/dist/backend/backend/src/services/agent/control-plane-guard.service.d.ts +169 -0
- package/dist/backend/backend/src/services/agent/control-plane-guard.service.d.ts.map +1 -0
- package/dist/backend/backend/src/services/agent/control-plane-guard.service.js +231 -0
- package/dist/backend/backend/src/services/agent/control-plane-guard.service.js.map +1 -0
- package/dist/backend/backend/src/services/agent/fresh-task-conversation.service.d.ts +154 -2
- package/dist/backend/backend/src/services/agent/fresh-task-conversation.service.d.ts.map +1 -1
- package/dist/backend/backend/src/services/agent/fresh-task-conversation.service.js +380 -22
- package/dist/backend/backend/src/services/agent/fresh-task-conversation.service.js.map +1 -1
- package/dist/backend/backend/src/services/agent/runtime-agent.service.abstract.d.ts +16 -0
- package/dist/backend/backend/src/services/agent/runtime-agent.service.abstract.d.ts.map +1 -1
- package/dist/backend/backend/src/services/agent/runtime-agent.service.abstract.js +50 -0
- package/dist/backend/backend/src/services/agent/runtime-agent.service.abstract.js.map +1 -1
- package/dist/backend/backend/src/services/agent/tmux-command.service.d.ts +9 -1
- package/dist/backend/backend/src/services/agent/tmux-command.service.d.ts.map +1 -1
- package/dist/backend/backend/src/services/agent/tmux-command.service.js +12 -2
- package/dist/backend/backend/src/services/agent/tmux-command.service.js.map +1 -1
- package/dist/backend/backend/src/services/ai/prompt-builder.service.d.ts.map +1 -1
- package/dist/backend/backend/src/services/ai/prompt-builder.service.js +9 -8
- package/dist/backend/backend/src/services/ai/prompt-builder.service.js.map +1 -1
- package/dist/backend/backend/src/services/ai/prompt-modules/active-work.module.d.ts +75 -0
- package/dist/backend/backend/src/services/ai/prompt-modules/active-work.module.d.ts.map +1 -0
- package/dist/backend/backend/src/services/ai/prompt-modules/active-work.module.js +89 -0
- package/dist/backend/backend/src/services/ai/prompt-modules/active-work.module.js.map +1 -0
- package/dist/backend/backend/src/services/ai/prompt-modules/index.d.ts +3 -0
- package/dist/backend/backend/src/services/ai/prompt-modules/index.d.ts.map +1 -1
- package/dist/backend/backend/src/services/ai/prompt-modules/index.js +3 -0
- package/dist/backend/backend/src/services/ai/prompt-modules/index.js.map +1 -1
- package/dist/backend/backend/src/services/ai/prompt-modules/project-reference.module.js +1 -1
- package/dist/backend/backend/src/services/ai/prompt-modules/project-reference.module.js.map +1 -1
- package/dist/backend/backend/src/services/ai/prompt-modules/prompt-assembly.service.d.ts.map +1 -1
- package/dist/backend/backend/src/services/ai/prompt-modules/prompt-assembly.service.js +12 -0
- package/dist/backend/backend/src/services/ai/prompt-modules/prompt-assembly.service.js.map +1 -1
- package/dist/backend/backend/src/services/ai/prompt-modules/prompt-module.interface.d.ts +14 -0
- package/dist/backend/backend/src/services/ai/prompt-modules/prompt-module.interface.d.ts.map +1 -1
- package/dist/backend/backend/src/services/ai/prompt-modules/prompt-module.interface.js.map +1 -1
- package/dist/backend/backend/src/services/ai/prompt-modules/recovery.module.d.ts.map +1 -1
- package/dist/backend/backend/src/services/ai/prompt-modules/recovery.module.js +11 -7
- package/dist/backend/backend/src/services/ai/prompt-modules/recovery.module.js.map +1 -1
- package/dist/backend/backend/src/services/ai/prompt-modules/session-briefing.module.d.ts +41 -0
- package/dist/backend/backend/src/services/ai/prompt-modules/session-briefing.module.d.ts.map +1 -0
- package/dist/backend/backend/src/services/ai/prompt-modules/session-briefing.module.js +44 -0
- package/dist/backend/backend/src/services/ai/prompt-modules/session-briefing.module.js.map +1 -0
- package/dist/backend/backend/src/services/ai/prompt-modules/standing-answers.module.d.ts +67 -0
- package/dist/backend/backend/src/services/ai/prompt-modules/standing-answers.module.d.ts.map +1 -0
- package/dist/backend/backend/src/services/ai/prompt-modules/standing-answers.module.js +146 -0
- package/dist/backend/backend/src/services/ai/prompt-modules/standing-answers.module.js.map +1 -0
- package/dist/backend/backend/src/services/ai/prompt-template.service.d.ts.map +1 -1
- package/dist/backend/backend/src/services/ai/prompt-template.service.js +9 -7
- package/dist/backend/backend/src/services/ai/prompt-template.service.js.map +1 -1
- package/dist/backend/backend/src/services/cloud/mobile-api-relay.service.d.ts.map +1 -1
- package/dist/backend/backend/src/services/cloud/mobile-api-relay.service.js +7 -0
- package/dist/backend/backend/src/services/cloud/mobile-api-relay.service.js.map +1 -1
- package/dist/backend/backend/src/services/continuation/patterns/waiting-patterns.d.ts +7 -0
- package/dist/backend/backend/src/services/continuation/patterns/waiting-patterns.d.ts.map +1 -1
- package/dist/backend/backend/src/services/continuation/patterns/waiting-patterns.js +9 -1
- package/dist/backend/backend/src/services/continuation/patterns/waiting-patterns.js.map +1 -1
- package/dist/backend/backend/src/services/core/logger.service.d.ts +21 -0
- package/dist/backend/backend/src/services/core/logger.service.d.ts.map +1 -1
- package/dist/backend/backend/src/services/core/logger.service.js +42 -4
- package/dist/backend/backend/src/services/core/logger.service.js.map +1 -1
- package/dist/backend/backend/src/services/core/storage.service.d.ts +1 -5
- package/dist/backend/backend/src/services/core/storage.service.d.ts.map +1 -1
- package/dist/backend/backend/src/services/core/storage.service.js +5 -162
- package/dist/backend/backend/src/services/core/storage.service.js.map +1 -1
- 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 +6 -0
- package/dist/backend/backend/src/services/event-bus/event-bus.service.js.map +1 -1
- package/dist/backend/backend/src/services/event-bus/event-to-workitem-bridge.service.d.ts.map +1 -1
- package/dist/backend/backend/src/services/event-bus/event-to-workitem-bridge.service.js +15 -9
- package/dist/backend/backend/src/services/event-bus/event-to-workitem-bridge.service.js.map +1 -1
- package/dist/backend/backend/src/services/index.d.ts +0 -4
- package/dist/backend/backend/src/services/index.d.ts.map +1 -1
- package/dist/backend/backend/src/services/index.js +0 -4
- package/dist/backend/backend/src/services/index.js.map +1 -1
- package/dist/backend/backend/src/services/intent-task/intent-task.service.d.ts +1 -1
- package/dist/backend/backend/src/services/intent-task/intent-task.service.js +1 -1
- package/dist/backend/backend/src/services/mcp-server.d.ts +19 -6
- package/dist/backend/backend/src/services/mcp-server.d.ts.map +1 -1
- package/dist/backend/backend/src/services/mcp-server.js +46 -16
- package/dist/backend/backend/src/services/mcp-server.js.map +1 -1
- package/dist/backend/backend/src/services/mcp-tool-definitions.d.ts.map +1 -1
- package/dist/backend/backend/src/services/mcp-tool-definitions.js +3 -2
- package/dist/backend/backend/src/services/mcp-tool-definitions.js.map +1 -1
- package/dist/backend/backend/src/services/memory/standing-answers.service.d.ts +247 -0
- package/dist/backend/backend/src/services/memory/standing-answers.service.d.ts.map +1 -0
- package/dist/backend/backend/src/services/memory/standing-answers.service.js +534 -0
- package/dist/backend/backend/src/services/memory/standing-answers.service.js.map +1 -0
- package/dist/backend/backend/src/services/memory/standing-refresh.service.d.ts +104 -0
- package/dist/backend/backend/src/services/memory/standing-refresh.service.d.ts.map +1 -0
- package/dist/backend/backend/src/services/memory/standing-refresh.service.js +218 -0
- package/dist/backend/backend/src/services/memory/standing-refresh.service.js.map +1 -0
- package/dist/backend/backend/src/services/monitoring/activity-monitor.service.d.ts +35 -0
- package/dist/backend/backend/src/services/monitoring/activity-monitor.service.d.ts.map +1 -1
- package/dist/backend/backend/src/services/monitoring/activity-monitor.service.js +99 -1
- package/dist/backend/backend/src/services/monitoring/activity-monitor.service.js.map +1 -1
- package/dist/backend/backend/src/services/monitoring/agent-attention-registry.d.ts +75 -0
- package/dist/backend/backend/src/services/monitoring/agent-attention-registry.d.ts.map +1 -0
- package/dist/backend/backend/src/services/monitoring/agent-attention-registry.js +80 -0
- package/dist/backend/backend/src/services/monitoring/agent-attention-registry.js.map +1 -0
- package/dist/backend/backend/src/services/monitoring/agent-attention.d.ts +114 -0
- package/dist/backend/backend/src/services/monitoring/agent-attention.d.ts.map +1 -0
- package/dist/backend/backend/src/services/monitoring/agent-attention.js +165 -0
- package/dist/backend/backend/src/services/monitoring/agent-attention.js.map +1 -0
- package/dist/backend/backend/src/services/monitoring/agent-hook-state.d.ts +76 -0
- package/dist/backend/backend/src/services/monitoring/agent-hook-state.d.ts.map +1 -0
- package/dist/backend/backend/src/services/monitoring/agent-hook-state.js +96 -0
- package/dist/backend/backend/src/services/monitoring/agent-hook-state.js.map +1 -0
- package/dist/backend/backend/src/services/orchestrator/onboarding/materialize-team.js +1 -1
- package/dist/backend/backend/src/services/orchestrator/onboarding/recommend-team.d.ts +1 -1
- package/dist/backend/backend/src/services/orchestrator/onboarding/recommend-team.d.ts.map +1 -1
- package/dist/backend/backend/src/services/orchestrator/onboarding/recommend-team.js +13 -3
- package/dist/backend/backend/src/services/orchestrator/onboarding/recommend-team.js.map +1 -1
- package/dist/backend/backend/src/services/orchestrator/prompts/onboarding-mode.prompt.d.ts.map +1 -1
- package/dist/backend/backend/src/services/orchestrator/prompts/onboarding-mode.prompt.js +0 -4
- package/dist/backend/backend/src/services/orchestrator/prompts/onboarding-mode.prompt.js.map +1 -1
- package/dist/backend/backend/src/services/project/project-search.service.d.ts +22 -16
- package/dist/backend/backend/src/services/project/project-search.service.d.ts.map +1 -1
- package/dist/backend/backend/src/services/project/project-search.service.js +30 -53
- package/dist/backend/backend/src/services/project/project-search.service.js.map +1 -1
- package/dist/backend/backend/src/services/project-tickets/project-ticket-workflow.service.d.ts +381 -0
- package/dist/backend/backend/src/services/project-tickets/project-ticket-workflow.service.d.ts.map +1 -0
- package/dist/backend/backend/src/services/project-tickets/project-ticket-workflow.service.js +839 -0
- package/dist/backend/backend/src/services/project-tickets/project-ticket-workflow.service.js.map +1 -0
- package/dist/backend/backend/src/services/project-tickets/project-ticket.service.d.ts +214 -0
- package/dist/backend/backend/src/services/project-tickets/project-ticket.service.d.ts.map +1 -0
- package/dist/backend/backend/src/services/project-tickets/project-ticket.service.js +466 -0
- package/dist/backend/backend/src/services/project-tickets/project-ticket.service.js.map +1 -0
- package/dist/backend/backend/src/services/project-tickets/ticket-file.d.ts +121 -0
- package/dist/backend/backend/src/services/project-tickets/ticket-file.d.ts.map +1 -0
- package/dist/backend/backend/src/services/project-tickets/ticket-file.js +468 -0
- package/dist/backend/backend/src/services/project-tickets/ticket-file.js.map +1 -0
- package/dist/backend/backend/src/services/project-tickets/ticket-folder-lock.d.ts +69 -0
- package/dist/backend/backend/src/services/project-tickets/ticket-folder-lock.d.ts.map +1 -0
- package/dist/backend/backend/src/services/project-tickets/ticket-folder-lock.js +194 -0
- package/dist/backend/backend/src/services/project-tickets/ticket-folder-lock.js.map +1 -0
- package/dist/backend/backend/src/services/project-tickets/ticket-tracking.d.ts +47 -0
- package/dist/backend/backend/src/services/project-tickets/ticket-tracking.d.ts.map +1 -0
- package/dist/backend/backend/src/services/project-tickets/ticket-tracking.js +83 -0
- package/dist/backend/backend/src/services/project-tickets/ticket-tracking.js.map +1 -0
- package/dist/backend/backend/src/services/project-tickets/v1-task-migration.d.ts +97 -0
- package/dist/backend/backend/src/services/project-tickets/v1-task-migration.d.ts.map +1 -0
- package/dist/backend/backend/src/services/project-tickets/v1-task-migration.js +201 -0
- package/dist/backend/backend/src/services/project-tickets/v1-task-migration.js.map +1 -0
- package/dist/backend/backend/src/services/reconciler/reconcile-rules.d.ts +86 -22
- package/dist/backend/backend/src/services/reconciler/reconcile-rules.d.ts.map +1 -1
- package/dist/backend/backend/src/services/reconciler/reconcile-rules.js +173 -28
- package/dist/backend/backend/src/services/reconciler/reconcile-rules.js.map +1 -1
- package/dist/backend/backend/src/services/reconciler/reconciler-data-provider.d.ts +19 -1
- package/dist/backend/backend/src/services/reconciler/reconciler-data-provider.d.ts.map +1 -1
- package/dist/backend/backend/src/services/reconciler/reconciler-data-provider.js +33 -4
- package/dist/backend/backend/src/services/reconciler/reconciler-data-provider.js.map +1 -1
- package/dist/backend/backend/src/services/reconciler/reconciler.service.d.ts +24 -12
- package/dist/backend/backend/src/services/reconciler/reconciler.service.d.ts.map +1 -1
- package/dist/backend/backend/src/services/reconciler/reconciler.service.js +87 -19
- package/dist/backend/backend/src/services/reconciler/reconciler.service.js.map +1 -1
- package/dist/backend/backend/src/services/runtime-adapter.d.ts +1 -1
- package/dist/backend/backend/src/services/runtime-adapter.d.ts.map +1 -1
- package/dist/backend/backend/src/services/runtime-adapter.js +5 -9
- package/dist/backend/backend/src/services/runtime-adapter.js.map +1 -1
- package/dist/backend/backend/src/services/session/pty/pty-session-backend.d.ts +26 -1
- package/dist/backend/backend/src/services/session/pty/pty-session-backend.d.ts.map +1 -1
- package/dist/backend/backend/src/services/session/pty/pty-session-backend.js +33 -2
- package/dist/backend/backend/src/services/session/pty/pty-session-backend.js.map +1 -1
- package/dist/backend/backend/src/services/session/pty/pty-session.d.ts +5 -0
- package/dist/backend/backend/src/services/session/pty/pty-session.d.ts.map +1 -1
- package/dist/backend/backend/src/services/session/pty/pty-session.js +8 -1
- package/dist/backend/backend/src/services/session/pty/pty-session.js.map +1 -1
- package/dist/backend/backend/src/services/session/pty/pty-terminal-buffer.d.ts +18 -0
- package/dist/backend/backend/src/services/session/pty/pty-terminal-buffer.d.ts.map +1 -1
- package/dist/backend/backend/src/services/session/pty/pty-terminal-buffer.js +23 -0
- package/dist/backend/backend/src/services/session/pty/pty-terminal-buffer.js.map +1 -1
- package/dist/backend/backend/src/services/session/session-backend.interface.d.ts +8 -0
- package/dist/backend/backend/src/services/session/session-backend.interface.d.ts.map +1 -1
- package/dist/backend/backend/src/services/session/session-backend.interface.js.map +1 -1
- package/dist/backend/backend/src/services/session/session-command-helper.d.ts +12 -2
- package/dist/backend/backend/src/services/session/session-command-helper.d.ts.map +1 -1
- package/dist/backend/backend/src/services/session/session-command-helper.js +14 -2
- package/dist/backend/backend/src/services/session/session-command-helper.js.map +1 -1
- package/dist/backend/backend/src/services/task-pool/give-up/give-up-recovery.service.d.ts +239 -0
- package/dist/backend/backend/src/services/task-pool/give-up/give-up-recovery.service.d.ts.map +1 -0
- package/dist/backend/backend/src/services/task-pool/give-up/give-up-recovery.service.js +395 -0
- package/dist/backend/backend/src/services/task-pool/give-up/give-up-recovery.service.js.map +1 -0
- package/dist/backend/backend/src/services/task-pool/give-up/give-up-stats.d.ts +53 -0
- package/dist/backend/backend/src/services/task-pool/give-up/give-up-stats.d.ts.map +1 -0
- package/dist/backend/backend/src/services/task-pool/give-up/give-up-stats.js +83 -0
- package/dist/backend/backend/src/services/task-pool/give-up/give-up-stats.js.map +1 -0
- package/dist/backend/backend/src/services/task-pool/give-up/stop-classifier.d.ts +93 -0
- package/dist/backend/backend/src/services/task-pool/give-up/stop-classifier.d.ts.map +1 -0
- package/dist/backend/backend/src/services/task-pool/give-up/stop-classifier.js +244 -0
- package/dist/backend/backend/src/services/task-pool/give-up/stop-classifier.js.map +1 -0
- package/dist/backend/backend/src/services/task-pool/task-pool.service.d.ts +145 -19
- package/dist/backend/backend/src/services/task-pool/task-pool.service.d.ts.map +1 -1
- package/dist/backend/backend/src/services/task-pool/task-pool.service.js +323 -53
- package/dist/backend/backend/src/services/task-pool/task-pool.service.js.map +1 -1
- package/dist/backend/backend/src/services/template/template.service.d.ts.map +1 -1
- package/dist/backend/backend/src/services/template/template.service.js +11 -6
- package/dist/backend/backend/src/services/template/template.service.js.map +1 -1
- package/dist/backend/backend/src/services/v3/agent-auto-claim.service.d.ts +21 -4
- package/dist/backend/backend/src/services/v3/agent-auto-claim.service.d.ts.map +1 -1
- package/dist/backend/backend/src/services/v3/agent-auto-claim.service.js +53 -3
- package/dist/backend/backend/src/services/v3/agent-auto-claim.service.js.map +1 -1
- package/dist/backend/backend/src/services/v3/escalation-router.service.d.ts +85 -6
- package/dist/backend/backend/src/services/v3/escalation-router.service.d.ts.map +1 -1
- package/dist/backend/backend/src/services/v3/escalation-router.service.js +188 -9
- package/dist/backend/backend/src/services/v3/escalation-router.service.js.map +1 -1
- package/dist/backend/backend/src/services/v3/escalation.service.js +1 -1
- package/dist/backend/backend/src/services/v3/escalation.service.js.map +1 -1
- package/dist/backend/backend/src/services/v3/mission-executor.service.js +2 -2
- package/dist/backend/backend/src/services/v3/mission-executor.service.js.map +1 -1
- package/dist/backend/backend/src/services/v3/owner-receipt/owner-receipt-data.d.ts +184 -0
- package/dist/backend/backend/src/services/v3/owner-receipt/owner-receipt-data.d.ts.map +1 -0
- package/dist/backend/backend/src/services/v3/owner-receipt/owner-receipt-data.js +420 -0
- package/dist/backend/backend/src/services/v3/owner-receipt/owner-receipt-data.js.map +1 -0
- package/dist/backend/backend/src/services/v3/owner-receipt/owner-receipt.boot.d.ts +61 -0
- package/dist/backend/backend/src/services/v3/owner-receipt/owner-receipt.boot.d.ts.map +1 -0
- package/dist/backend/backend/src/services/v3/owner-receipt/owner-receipt.boot.js +100 -0
- package/dist/backend/backend/src/services/v3/owner-receipt/owner-receipt.boot.js.map +1 -0
- package/dist/backend/backend/src/services/v3/owner-receipt/owner-receipt.renderer.d.ts +36 -0
- package/dist/backend/backend/src/services/v3/owner-receipt/owner-receipt.renderer.d.ts.map +1 -0
- package/dist/backend/backend/src/services/v3/owner-receipt/owner-receipt.renderer.js +239 -0
- package/dist/backend/backend/src/services/v3/owner-receipt/owner-receipt.renderer.js.map +1 -0
- package/dist/backend/backend/src/services/v3/owner-receipt/owner-receipt.service.d.ts +152 -0
- package/dist/backend/backend/src/services/v3/owner-receipt/owner-receipt.service.d.ts.map +1 -0
- package/dist/backend/backend/src/services/v3/owner-receipt/owner-receipt.service.js +209 -0
- package/dist/backend/backend/src/services/v3/owner-receipt/owner-receipt.service.js.map +1 -0
- package/dist/backend/backend/src/services/v3/owner-receipt/owner-receipt.types.d.ts +194 -0
- package/dist/backend/backend/src/services/v3/owner-receipt/owner-receipt.types.d.ts.map +1 -0
- package/dist/backend/backend/src/services/v3/owner-receipt/owner-receipt.types.js +85 -0
- package/dist/backend/backend/src/services/v3/owner-receipt/owner-receipt.types.js.map +1 -0
- package/dist/backend/backend/src/services/v3/request-sla.subscriber.d.ts +6 -4
- package/dist/backend/backend/src/services/v3/request-sla.subscriber.d.ts.map +1 -1
- package/dist/backend/backend/src/services/v3/request-sla.subscriber.js +15 -6
- package/dist/backend/backend/src/services/v3/request-sla.subscriber.js.map +1 -1
- package/dist/backend/backend/src/services/v3/request-status-update.subscriber.d.ts.map +1 -1
- package/dist/backend/backend/src/services/v3/request-status-update.subscriber.js +14 -5
- package/dist/backend/backend/src/services/v3/request-status-update.subscriber.js.map +1 -1
- package/dist/backend/backend/src/services/v3/request.service.d.ts.map +1 -1
- package/dist/backend/backend/src/services/v3/request.service.js +2 -0
- package/dist/backend/backend/src/services/v3/request.service.js.map +1 -1
- package/dist/backend/backend/src/services/v3/ticket-ask-classifier.d.ts +82 -0
- package/dist/backend/backend/src/services/v3/ticket-ask-classifier.d.ts.map +1 -0
- package/dist/backend/backend/src/services/v3/ticket-ask-classifier.js +172 -0
- package/dist/backend/backend/src/services/v3/ticket-ask-classifier.js.map +1 -0
- package/dist/backend/backend/src/services/v3/ticket-channel-hooks.d.ts.map +1 -1
- package/dist/backend/backend/src/services/v3/ticket-channel-hooks.js +2 -0
- package/dist/backend/backend/src/services/v3/ticket-channel-hooks.js.map +1 -1
- package/dist/backend/backend/src/services/v3/ticket-intake-log.d.ts +87 -0
- package/dist/backend/backend/src/services/v3/ticket-intake-log.d.ts.map +1 -0
- package/dist/backend/backend/src/services/v3/ticket-intake-log.js +116 -0
- package/dist/backend/backend/src/services/v3/ticket-intake-log.js.map +1 -0
- package/dist/backend/backend/src/services/v3/ticket-intake.service.d.ts +133 -15
- package/dist/backend/backend/src/services/v3/ticket-intake.service.d.ts.map +1 -1
- package/dist/backend/backend/src/services/v3/ticket-intake.service.js +263 -45
- package/dist/backend/backend/src/services/v3/ticket-intake.service.js.map +1 -1
- package/dist/backend/backend/src/services/v3/ticket-review.service.d.ts +3 -1
- package/dist/backend/backend/src/services/v3/ticket-review.service.d.ts.map +1 -1
- package/dist/backend/backend/src/services/v3/ticket-review.service.js +6 -2
- package/dist/backend/backend/src/services/v3/ticket-review.service.js.map +1 -1
- package/dist/backend/backend/src/services/v3/v3-data.service.d.ts.map +1 -1
- package/dist/backend/backend/src/services/v3/v3-data.service.js +9 -3
- package/dist/backend/backend/src/services/v3/v3-data.service.js.map +1 -1
- package/dist/backend/backend/src/services/v3/workitem-dispatch.subscriber.d.ts +88 -1
- package/dist/backend/backend/src/services/v3/workitem-dispatch.subscriber.d.ts.map +1 -1
- package/dist/backend/backend/src/services/v3/workitem-dispatch.subscriber.js +169 -5
- package/dist/backend/backend/src/services/v3/workitem-dispatch.subscriber.js.map +1 -1
- package/dist/backend/backend/src/services/wiki/wiki-migrate.service.d.ts +13 -5
- package/dist/backend/backend/src/services/wiki/wiki-migrate.service.d.ts.map +1 -1
- package/dist/backend/backend/src/services/wiki/wiki-migrate.service.js +10 -9
- package/dist/backend/backend/src/services/wiki/wiki-migrate.service.js.map +1 -1
- package/dist/backend/backend/src/services/worktree/workitem-worktree.service.d.ts +241 -0
- package/dist/backend/backend/src/services/worktree/workitem-worktree.service.d.ts.map +1 -0
- package/dist/backend/backend/src/services/worktree/workitem-worktree.service.js +511 -0
- package/dist/backend/backend/src/services/worktree/workitem-worktree.service.js.map +1 -0
- package/dist/backend/backend/src/services/worktree/workitem-worktree.subscriber.d.ts +70 -0
- package/dist/backend/backend/src/services/worktree/workitem-worktree.subscriber.d.ts.map +1 -0
- package/dist/backend/backend/src/services/worktree/workitem-worktree.subscriber.js +121 -0
- package/dist/backend/backend/src/services/worktree/workitem-worktree.subscriber.js.map +1 -0
- package/dist/backend/backend/src/services/worktree/worktree-git.d.ts +260 -0
- package/dist/backend/backend/src/services/worktree/worktree-git.d.ts.map +1 -0
- package/dist/backend/backend/src/services/worktree/worktree-git.js +569 -0
- package/dist/backend/backend/src/services/worktree/worktree-git.js.map +1 -0
- package/dist/backend/backend/src/types/event-bus.types.d.ts +6 -1
- package/dist/backend/backend/src/types/event-bus.types.d.ts.map +1 -1
- package/dist/backend/backend/src/types/event-bus.types.js +8 -0
- package/dist/backend/backend/src/types/event-bus.types.js.map +1 -1
- package/dist/backend/backend/src/types/index.d.ts +23 -18
- package/dist/backend/backend/src/types/index.d.ts.map +1 -1
- package/dist/backend/backend/src/types/index.js.map +1 -1
- package/dist/backend/backend/src/types/intent-task.types.d.ts +1 -1
- package/dist/backend/backend/src/types/intent-task.types.d.ts.map +1 -1
- package/dist/backend/backend/src/types/project-ticket.types.d.ts +132 -0
- package/dist/backend/backend/src/types/project-ticket.types.d.ts.map +1 -0
- package/dist/backend/backend/src/types/project-ticket.types.js +120 -0
- package/dist/backend/backend/src/types/project-ticket.types.js.map +1 -0
- package/dist/backend/backend/src/types/review-reason.types.d.ts +3 -1
- package/dist/backend/backend/src/types/review-reason.types.d.ts.map +1 -1
- package/dist/backend/backend/src/types/review-reason.types.js +1 -0
- package/dist/backend/backend/src/types/review-reason.types.js.map +1 -1
- package/dist/backend/backend/src/types/v2/index.d.ts +2 -2
- package/dist/backend/backend/src/types/v2/index.d.ts.map +1 -1
- package/dist/backend/backend/src/types/v2/index.js +1 -1
- package/dist/backend/backend/src/types/v2/index.js.map +1 -1
- package/dist/backend/backend/src/types/v2/reconcile.types.d.ts +7 -0
- package/dist/backend/backend/src/types/v2/reconcile.types.d.ts.map +1 -1
- package/dist/backend/backend/src/types/v2/reconcile.types.js.map +1 -1
- package/dist/backend/backend/src/types/v2/request.types.d.ts +18 -0
- package/dist/backend/backend/src/types/v2/request.types.d.ts.map +1 -1
- package/dist/backend/backend/src/types/v2/request.types.js +1 -0
- package/dist/backend/backend/src/types/v2/request.types.js.map +1 -1
- package/dist/backend/backend/src/types/v2/ticket.types.d.ts +6 -2
- package/dist/backend/backend/src/types/v2/ticket.types.d.ts.map +1 -1
- package/dist/backend/backend/src/types/v2/ticket.types.js +1 -1
- package/dist/backend/backend/src/types/v2/ticket.types.js.map +1 -1
- package/dist/backend/backend/src/types/v2/work-item.types.d.ts +169 -14
- package/dist/backend/backend/src/types/v2/work-item.types.d.ts.map +1 -1
- package/dist/backend/backend/src/types/v2/work-item.types.js +263 -44
- package/dist/backend/backend/src/types/v2/work-item.types.js.map +1 -1
- package/dist/backend/backend/src/utils/agent-caller.utils.d.ts +33 -0
- package/dist/backend/backend/src/utils/agent-caller.utils.d.ts.map +1 -1
- package/dist/backend/backend/src/utils/agent-caller.utils.js +37 -0
- package/dist/backend/backend/src/utils/agent-caller.utils.js.map +1 -1
- package/dist/backend/backend/src/utils/secret-env.d.ts +61 -0
- package/dist/backend/backend/src/utils/secret-env.d.ts.map +1 -0
- package/dist/backend/backend/src/utils/secret-env.js +89 -0
- package/dist/backend/backend/src/utils/secret-env.js.map +1 -0
- package/dist/backend/build-info.json +2 -2
- package/dist/backend/config/constants.d.ts +71 -0
- package/dist/backend/config/constants.d.ts.map +1 -1
- package/dist/backend/config/constants.js +77 -0
- package/dist/backend/config/constants.js.map +1 -1
- package/dist/cli/backend/src/constants.d.ts +397 -1
- package/dist/cli/backend/src/constants.d.ts.map +1 -1
- package/dist/cli/backend/src/constants.js +388 -2
- package/dist/cli/backend/src/constants.js.map +1 -1
- package/dist/cli/backend/src/models/index.d.ts +0 -1
- package/dist/cli/backend/src/models/index.d.ts.map +1 -1
- package/dist/cli/backend/src/models/index.js +0 -1
- package/dist/cli/backend/src/models/index.js.map +1 -1
- package/dist/cli/backend/src/services/agent/agent-registration.service.d.ts +43 -1
- package/dist/cli/backend/src/services/agent/agent-registration.service.d.ts.map +1 -1
- package/dist/cli/backend/src/services/agent/agent-registration.service.js +129 -34
- package/dist/cli/backend/src/services/agent/agent-registration.service.js.map +1 -1
- package/dist/cli/backend/src/services/agent/control-plane-guard.service.d.ts +169 -0
- package/dist/cli/backend/src/services/agent/control-plane-guard.service.d.ts.map +1 -0
- package/dist/cli/backend/src/services/agent/control-plane-guard.service.js +231 -0
- package/dist/cli/backend/src/services/agent/control-plane-guard.service.js.map +1 -0
- package/dist/cli/backend/src/services/agent/fresh-task-conversation.service.d.ts +409 -0
- package/dist/cli/backend/src/services/agent/fresh-task-conversation.service.d.ts.map +1 -0
- package/dist/cli/backend/src/services/agent/fresh-task-conversation.service.js +961 -0
- package/dist/cli/backend/src/services/agent/fresh-task-conversation.service.js.map +1 -0
- package/dist/cli/backend/src/services/agent/runtime-agent.service.abstract.d.ts +16 -0
- package/dist/cli/backend/src/services/agent/runtime-agent.service.abstract.d.ts.map +1 -1
- package/dist/cli/backend/src/services/agent/runtime-agent.service.abstract.js +50 -0
- package/dist/cli/backend/src/services/agent/runtime-agent.service.abstract.js.map +1 -1
- package/dist/cli/backend/src/services/ai/prompt-builder.service.d.ts.map +1 -1
- package/dist/cli/backend/src/services/ai/prompt-builder.service.js +9 -8
- package/dist/cli/backend/src/services/ai/prompt-builder.service.js.map +1 -1
- package/dist/cli/backend/src/services/ai/prompt-modules/active-work.module.d.ts +75 -0
- package/dist/cli/backend/src/services/ai/prompt-modules/active-work.module.d.ts.map +1 -0
- package/dist/cli/backend/src/services/ai/prompt-modules/active-work.module.js +89 -0
- package/dist/cli/backend/src/services/ai/prompt-modules/active-work.module.js.map +1 -0
- package/dist/cli/backend/src/services/ai/prompt-modules/project-reference.module.js +1 -1
- package/dist/cli/backend/src/services/ai/prompt-modules/project-reference.module.js.map +1 -1
- package/dist/cli/backend/src/services/ai/prompt-modules/prompt-assembly.service.d.ts.map +1 -1
- package/dist/cli/backend/src/services/ai/prompt-modules/prompt-assembly.service.js +12 -0
- package/dist/cli/backend/src/services/ai/prompt-modules/prompt-assembly.service.js.map +1 -1
- package/dist/cli/backend/src/services/ai/prompt-modules/prompt-module.interface.d.ts +14 -0
- package/dist/cli/backend/src/services/ai/prompt-modules/prompt-module.interface.d.ts.map +1 -1
- package/dist/cli/backend/src/services/ai/prompt-modules/prompt-module.interface.js.map +1 -1
- package/dist/cli/backend/src/services/ai/prompt-modules/recovery.module.d.ts.map +1 -1
- package/dist/cli/backend/src/services/ai/prompt-modules/recovery.module.js +11 -7
- package/dist/cli/backend/src/services/ai/prompt-modules/recovery.module.js.map +1 -1
- package/dist/cli/backend/src/services/ai/prompt-modules/session-briefing.module.d.ts +41 -0
- package/dist/cli/backend/src/services/ai/prompt-modules/session-briefing.module.d.ts.map +1 -0
- package/dist/cli/backend/src/services/ai/prompt-modules/session-briefing.module.js +44 -0
- package/dist/cli/backend/src/services/ai/prompt-modules/session-briefing.module.js.map +1 -0
- package/dist/cli/backend/src/services/ai/prompt-modules/standing-answers.module.d.ts +67 -0
- package/dist/cli/backend/src/services/ai/prompt-modules/standing-answers.module.d.ts.map +1 -0
- package/dist/cli/backend/src/services/ai/prompt-modules/standing-answers.module.js +146 -0
- package/dist/cli/backend/src/services/ai/prompt-modules/standing-answers.module.js.map +1 -0
- package/dist/cli/backend/src/services/continuation/patterns/waiting-patterns.d.ts +7 -0
- package/dist/cli/backend/src/services/continuation/patterns/waiting-patterns.d.ts.map +1 -1
- package/dist/cli/backend/src/services/continuation/patterns/waiting-patterns.js +9 -1
- package/dist/cli/backend/src/services/continuation/patterns/waiting-patterns.js.map +1 -1
- package/dist/cli/backend/src/services/core/logger.service.d.ts +21 -0
- package/dist/cli/backend/src/services/core/logger.service.d.ts.map +1 -1
- package/dist/cli/backend/src/services/core/logger.service.js +42 -4
- package/dist/cli/backend/src/services/core/logger.service.js.map +1 -1
- package/dist/cli/backend/src/services/core/storage.service.d.ts +1 -5
- package/dist/cli/backend/src/services/core/storage.service.d.ts.map +1 -1
- package/dist/cli/backend/src/services/core/storage.service.js +5 -162
- package/dist/cli/backend/src/services/core/storage.service.js.map +1 -1
- package/dist/cli/backend/src/services/event-bus/event-bus.service.d.ts.map +1 -1
- package/dist/cli/backend/src/services/event-bus/event-bus.service.js +6 -0
- package/dist/cli/backend/src/services/event-bus/event-bus.service.js.map +1 -1
- package/dist/cli/backend/src/services/mcp-server.d.ts +19 -6
- package/dist/cli/backend/src/services/mcp-server.d.ts.map +1 -1
- package/dist/cli/backend/src/services/mcp-server.js +46 -16
- package/dist/cli/backend/src/services/mcp-server.js.map +1 -1
- package/dist/cli/backend/src/services/mcp-tool-definitions.d.ts.map +1 -1
- package/dist/cli/backend/src/services/mcp-tool-definitions.js +3 -2
- package/dist/cli/backend/src/services/mcp-tool-definitions.js.map +1 -1
- package/dist/cli/backend/src/services/memory/standing-answers.service.d.ts +247 -0
- package/dist/cli/backend/src/services/memory/standing-answers.service.d.ts.map +1 -0
- package/dist/cli/backend/src/services/memory/standing-answers.service.js +534 -0
- package/dist/cli/backend/src/services/memory/standing-answers.service.js.map +1 -0
- package/dist/cli/backend/src/services/monitoring/activity-monitor.service.d.ts +35 -0
- package/dist/cli/backend/src/services/monitoring/activity-monitor.service.d.ts.map +1 -1
- package/dist/cli/backend/src/services/monitoring/activity-monitor.service.js +99 -1
- package/dist/cli/backend/src/services/monitoring/activity-monitor.service.js.map +1 -1
- package/dist/cli/backend/src/services/monitoring/agent-attention-registry.d.ts +75 -0
- package/dist/cli/backend/src/services/monitoring/agent-attention-registry.d.ts.map +1 -0
- package/dist/cli/backend/src/services/monitoring/agent-attention-registry.js +80 -0
- package/dist/cli/backend/src/services/monitoring/agent-attention-registry.js.map +1 -0
- package/dist/cli/backend/src/services/monitoring/agent-attention.d.ts +114 -0
- package/dist/cli/backend/src/services/monitoring/agent-attention.d.ts.map +1 -0
- package/dist/cli/backend/src/services/monitoring/agent-attention.js +165 -0
- package/dist/cli/backend/src/services/monitoring/agent-attention.js.map +1 -0
- package/dist/cli/backend/src/services/project-tickets/project-ticket.service.d.ts +214 -0
- package/dist/cli/backend/src/services/project-tickets/project-ticket.service.d.ts.map +1 -0
- package/dist/cli/backend/src/services/project-tickets/project-ticket.service.js +466 -0
- package/dist/cli/backend/src/services/project-tickets/project-ticket.service.js.map +1 -0
- package/dist/cli/backend/src/services/project-tickets/ticket-file.d.ts +121 -0
- package/dist/cli/backend/src/services/project-tickets/ticket-file.d.ts.map +1 -0
- package/dist/cli/backend/src/services/project-tickets/ticket-file.js +468 -0
- package/dist/cli/backend/src/services/project-tickets/ticket-file.js.map +1 -0
- package/dist/cli/backend/src/services/project-tickets/ticket-folder-lock.d.ts +69 -0
- package/dist/cli/backend/src/services/project-tickets/ticket-folder-lock.d.ts.map +1 -0
- package/dist/cli/backend/src/services/project-tickets/ticket-folder-lock.js +194 -0
- package/dist/cli/backend/src/services/project-tickets/ticket-folder-lock.js.map +1 -0
- package/dist/cli/backend/src/services/project-tickets/ticket-tracking.d.ts +47 -0
- package/dist/cli/backend/src/services/project-tickets/ticket-tracking.d.ts.map +1 -0
- package/dist/cli/backend/src/services/project-tickets/ticket-tracking.js +83 -0
- package/dist/cli/backend/src/services/project-tickets/ticket-tracking.js.map +1 -0
- package/dist/cli/backend/src/services/project-tickets/v1-task-migration.d.ts +97 -0
- package/dist/cli/backend/src/services/project-tickets/v1-task-migration.d.ts.map +1 -0
- package/dist/cli/backend/src/services/project-tickets/v1-task-migration.js +201 -0
- package/dist/cli/backend/src/services/project-tickets/v1-task-migration.js.map +1 -0
- package/dist/cli/backend/src/services/session/pty/pty-session-backend.d.ts +26 -1
- package/dist/cli/backend/src/services/session/pty/pty-session-backend.d.ts.map +1 -1
- package/dist/cli/backend/src/services/session/pty/pty-session-backend.js +33 -2
- package/dist/cli/backend/src/services/session/pty/pty-session-backend.js.map +1 -1
- package/dist/cli/backend/src/services/session/pty/pty-session.d.ts +5 -0
- package/dist/cli/backend/src/services/session/pty/pty-session.d.ts.map +1 -1
- package/dist/cli/backend/src/services/session/pty/pty-session.js +8 -1
- package/dist/cli/backend/src/services/session/pty/pty-session.js.map +1 -1
- package/dist/cli/backend/src/services/session/pty/pty-terminal-buffer.d.ts +18 -0
- package/dist/cli/backend/src/services/session/pty/pty-terminal-buffer.d.ts.map +1 -1
- package/dist/cli/backend/src/services/session/pty/pty-terminal-buffer.js +23 -0
- package/dist/cli/backend/src/services/session/pty/pty-terminal-buffer.js.map +1 -1
- package/dist/cli/backend/src/services/session/session-backend.interface.d.ts +8 -0
- package/dist/cli/backend/src/services/session/session-backend.interface.d.ts.map +1 -1
- package/dist/cli/backend/src/services/session/session-backend.interface.js.map +1 -1
- package/dist/cli/backend/src/services/session/session-command-helper.d.ts +12 -2
- package/dist/cli/backend/src/services/session/session-command-helper.d.ts.map +1 -1
- package/dist/cli/backend/src/services/session/session-command-helper.js +14 -2
- package/dist/cli/backend/src/services/session/session-command-helper.js.map +1 -1
- package/dist/cli/backend/src/services/task-pool/task-pool.service.d.ts +145 -19
- package/dist/cli/backend/src/services/task-pool/task-pool.service.d.ts.map +1 -1
- package/dist/cli/backend/src/services/task-pool/task-pool.service.js +323 -53
- package/dist/cli/backend/src/services/task-pool/task-pool.service.js.map +1 -1
- package/dist/cli/backend/src/services/template/template.service.d.ts.map +1 -1
- package/dist/cli/backend/src/services/template/template.service.js +11 -6
- package/dist/cli/backend/src/services/template/template.service.js.map +1 -1
- package/dist/cli/backend/src/services/v3/escalation-router.service.d.ts +85 -6
- package/dist/cli/backend/src/services/v3/escalation-router.service.d.ts.map +1 -1
- package/dist/cli/backend/src/services/v3/escalation-router.service.js +188 -9
- package/dist/cli/backend/src/services/v3/escalation-router.service.js.map +1 -1
- package/dist/cli/backend/src/services/v3/mission-executor.service.js +2 -2
- package/dist/cli/backend/src/services/v3/mission-executor.service.js.map +1 -1
- package/dist/cli/backend/src/services/v3/request-sla.subscriber.d.ts +6 -4
- package/dist/cli/backend/src/services/v3/request-sla.subscriber.d.ts.map +1 -1
- package/dist/cli/backend/src/services/v3/request-sla.subscriber.js +15 -6
- package/dist/cli/backend/src/services/v3/request-sla.subscriber.js.map +1 -1
- package/dist/cli/backend/src/services/v3/request.service.d.ts.map +1 -1
- package/dist/cli/backend/src/services/v3/request.service.js +2 -0
- package/dist/cli/backend/src/services/v3/request.service.js.map +1 -1
- package/dist/cli/backend/src/services/v3/ticket-ask-classifier.d.ts +82 -0
- package/dist/cli/backend/src/services/v3/ticket-ask-classifier.d.ts.map +1 -0
- package/dist/cli/backend/src/services/v3/ticket-ask-classifier.js +172 -0
- package/dist/cli/backend/src/services/v3/ticket-ask-classifier.js.map +1 -0
- package/dist/cli/backend/src/services/v3/ticket-channel-hooks.d.ts.map +1 -1
- package/dist/cli/backend/src/services/v3/ticket-channel-hooks.js +2 -0
- package/dist/cli/backend/src/services/v3/ticket-channel-hooks.js.map +1 -1
- package/dist/cli/backend/src/services/v3/ticket-intake-log.d.ts +87 -0
- package/dist/cli/backend/src/services/v3/ticket-intake-log.d.ts.map +1 -0
- package/dist/cli/backend/src/services/v3/ticket-intake-log.js +116 -0
- package/dist/cli/backend/src/services/v3/ticket-intake-log.js.map +1 -0
- package/dist/cli/backend/src/services/v3/ticket-intake.service.d.ts +133 -15
- package/dist/cli/backend/src/services/v3/ticket-intake.service.d.ts.map +1 -1
- package/dist/cli/backend/src/services/v3/ticket-intake.service.js +263 -45
- package/dist/cli/backend/src/services/v3/ticket-intake.service.js.map +1 -1
- package/dist/cli/backend/src/services/v3/ticket-review.service.d.ts +3 -1
- package/dist/cli/backend/src/services/v3/ticket-review.service.d.ts.map +1 -1
- package/dist/cli/backend/src/services/v3/ticket-review.service.js +6 -2
- package/dist/cli/backend/src/services/v3/ticket-review.service.js.map +1 -1
- package/dist/cli/backend/src/services/v3/v3-data.service.d.ts.map +1 -1
- package/dist/cli/backend/src/services/v3/v3-data.service.js +9 -3
- package/dist/cli/backend/src/services/v3/v3-data.service.js.map +1 -1
- package/dist/cli/backend/src/services/worktree/worktree-git.d.ts +260 -0
- package/dist/cli/backend/src/services/worktree/worktree-git.d.ts.map +1 -0
- package/dist/cli/backend/src/services/worktree/worktree-git.js +569 -0
- package/dist/cli/backend/src/services/worktree/worktree-git.js.map +1 -0
- package/dist/cli/backend/src/types/event-bus.types.d.ts +6 -1
- package/dist/cli/backend/src/types/event-bus.types.d.ts.map +1 -1
- package/dist/cli/backend/src/types/event-bus.types.js +8 -0
- package/dist/cli/backend/src/types/event-bus.types.js.map +1 -1
- package/dist/cli/backend/src/types/index.d.ts +23 -18
- package/dist/cli/backend/src/types/index.d.ts.map +1 -1
- package/dist/cli/backend/src/types/index.js.map +1 -1
- package/dist/cli/backend/src/types/intent-task.types.d.ts +1 -1
- package/dist/cli/backend/src/types/intent-task.types.d.ts.map +1 -1
- package/dist/cli/backend/src/types/project-ticket.types.d.ts +132 -0
- package/dist/cli/backend/src/types/project-ticket.types.d.ts.map +1 -0
- package/dist/cli/backend/src/types/project-ticket.types.js +120 -0
- package/dist/cli/backend/src/types/project-ticket.types.js.map +1 -0
- package/dist/cli/backend/src/types/v2/index.d.ts +2 -2
- package/dist/cli/backend/src/types/v2/index.d.ts.map +1 -1
- package/dist/cli/backend/src/types/v2/index.js +1 -1
- package/dist/cli/backend/src/types/v2/index.js.map +1 -1
- package/dist/cli/backend/src/types/v2/reconcile.types.d.ts +7 -0
- package/dist/cli/backend/src/types/v2/reconcile.types.d.ts.map +1 -1
- package/dist/cli/backend/src/types/v2/reconcile.types.js.map +1 -1
- package/dist/cli/backend/src/types/v2/request.types.d.ts +18 -0
- package/dist/cli/backend/src/types/v2/request.types.d.ts.map +1 -1
- package/dist/cli/backend/src/types/v2/request.types.js +1 -0
- package/dist/cli/backend/src/types/v2/request.types.js.map +1 -1
- package/dist/cli/backend/src/types/v2/ticket.types.d.ts +6 -2
- package/dist/cli/backend/src/types/v2/ticket.types.d.ts.map +1 -1
- package/dist/cli/backend/src/types/v2/ticket.types.js +1 -1
- package/dist/cli/backend/src/types/v2/ticket.types.js.map +1 -1
- package/dist/cli/backend/src/types/v2/work-item.types.d.ts +169 -14
- package/dist/cli/backend/src/types/v2/work-item.types.d.ts.map +1 -1
- package/dist/cli/backend/src/types/v2/work-item.types.js +263 -44
- package/dist/cli/backend/src/types/v2/work-item.types.js.map +1 -1
- package/dist/cli/backend/src/utils/secret-env.d.ts +61 -0
- package/dist/cli/backend/src/utils/secret-env.d.ts.map +1 -0
- package/dist/cli/backend/src/utils/secret-env.js +89 -0
- package/dist/cli/backend/src/utils/secret-env.js.map +1 -0
- package/dist/cli/cli/src/commands/onboard.d.ts +1 -1
- package/dist/cli/cli/src/commands/onboard.js +3 -3
- package/dist/cli/cli/src/commands/onboard.js.map +1 -1
- package/dist/cli/cli/src/commands/publish.d.ts.map +1 -1
- package/dist/cli/cli/src/commands/publish.js +4 -5
- package/dist/cli/cli/src/commands/publish.js.map +1 -1
- package/dist/cli/cli/src/commands/service.d.ts.map +1 -1
- package/dist/cli/cli/src/commands/service.js +5 -2
- package/dist/cli/cli/src/commands/service.js.map +1 -1
- package/dist/cli/cli/src/commands/tickets.d.ts +60 -0
- package/dist/cli/cli/src/commands/tickets.d.ts.map +1 -0
- package/dist/cli/cli/src/commands/tickets.js +111 -0
- package/dist/cli/cli/src/commands/tickets.js.map +1 -0
- package/dist/cli/cli/src/index.js +12 -0
- package/dist/cli/cli/src/index.js.map +1 -1
- package/dist/cli/cli/src/utils/archive-creator.d.ts +7 -3
- package/dist/cli/cli/src/utils/archive-creator.d.ts.map +1 -1
- package/dist/cli/cli/src/utils/archive-creator.js +17 -5
- package/dist/cli/cli/src/utils/archive-creator.js.map +1 -1
- package/dist/cli/cli/src/utils/cloud-submit.d.ts +1 -1
- package/dist/cli/cli/src/utils/cloud-submit.js +1 -1
- package/dist/cli/cli/src/utils/gh-submit.d.ts +10 -1
- package/dist/cli/cli/src/utils/gh-submit.d.ts.map +1 -1
- package/dist/cli/cli/src/utils/gh-submit.js +20 -4
- package/dist/cli/cli/src/utils/gh-submit.js.map +1 -1
- package/dist/cli/cli/src/utils/package-validator.d.ts +29 -6
- package/dist/cli/cli/src/utils/package-validator.d.ts.map +1 -1
- package/dist/cli/cli/src/utils/package-validator.js +88 -36
- package/dist/cli/cli/src/utils/package-validator.js.map +1 -1
- package/dist/cli/config/constants.d.ts +71 -0
- package/dist/cli/config/constants.d.ts.map +1 -1
- package/dist/cli/config/constants.js +77 -0
- package/dist/cli/config/constants.js.map +1 -1
- package/dist/cli/config/skills/marketplace-registry.d.ts +143 -0
- package/dist/cli/config/skills/marketplace-registry.d.ts.map +1 -0
- package/dist/cli/config/skills/marketplace-registry.js +192 -0
- package/dist/cli/config/skills/marketplace-registry.js.map +1 -0
- package/frontend/dist/assets/index-8d4b3ad2.js +4951 -0
- package/frontend/dist/assets/index-b6aded4c.css +42 -0
- package/frontend/dist/index.html +2 -2
- package/package.json +1 -1
- package/config/task_starters/build_e2e_test_plan_prompt.json +0 -51
- package/config/task_starters/build_tasks_prompt.json +0 -55
- package/config/task_starters/prompts/build_tasks_step1_milestone_structure.md +0 -274
- package/config/task_starters/prompts/e2e_test_plan_step1_build_tests.md +0 -391
- package/config/task_starters/prompts/e2e_test_plan_step2_run_tests.md +0 -240
- package/config/templates/customer-loyalty-team.json +0 -44
- package/config/templates/dtc-viral-content-team.json +0 -58
- package/config/templates/expert-innovation-team.json +0 -60
- package/config/templates/pragmatic-mvp-dev-team.json +0 -58
- package/config/templates/pro-sops/norms/content-production-pipeline.md +0 -39
- package/config/templates/pro-sops/norms/customer-onboarding-sop.md +0 -40
- package/dist/backend/backend/src/controllers/task-management/tickets.controller.d.ts +0 -13
- package/dist/backend/backend/src/controllers/task-management/tickets.controller.d.ts.map +0 -1
- package/dist/backend/backend/src/controllers/task-management/tickets.controller.js +0 -214
- package/dist/backend/backend/src/controllers/task-management/tickets.controller.js.map +0 -1
- package/dist/backend/backend/src/models/Ticket.d.ts +0 -24
- package/dist/backend/backend/src/models/Ticket.d.ts.map +0 -1
- package/dist/backend/backend/src/models/Ticket.js +0 -102
- package/dist/backend/backend/src/models/Ticket.js.map +0 -1
- package/dist/backend/backend/src/services/agent/task-planning.service.d.ts +0 -134
- package/dist/backend/backend/src/services/agent/task-planning.service.d.ts.map +0 -1
- package/dist/backend/backend/src/services/agent/task-planning.service.js +0 -291
- package/dist/backend/backend/src/services/agent/task-planning.service.js.map +0 -1
- package/dist/backend/backend/src/services/monitoring/task-assignment-monitor.service.d.ts +0 -71
- package/dist/backend/backend/src/services/monitoring/task-assignment-monitor.service.d.ts.map +0 -1
- package/dist/backend/backend/src/services/monitoring/task-assignment-monitor.service.js +0 -304
- package/dist/backend/backend/src/services/monitoring/task-assignment-monitor.service.js.map +0 -1
- package/dist/backend/backend/src/services/project/task-folder.service.d.ts +0 -48
- package/dist/backend/backend/src/services/project/task-folder.service.d.ts.map +0 -1
- package/dist/backend/backend/src/services/project/task-folder.service.js +0 -193
- package/dist/backend/backend/src/services/project/task-folder.service.js.map +0 -1
- package/dist/backend/backend/src/services/project/task.service.d.ts +0 -47
- package/dist/backend/backend/src/services/project/task.service.d.ts.map +0 -1
- package/dist/backend/backend/src/services/project/task.service.js +0 -253
- package/dist/backend/backend/src/services/project/task.service.js.map +0 -1
- package/dist/backend/backend/src/services/project/ticket-editor.service.d.ts +0 -130
- package/dist/backend/backend/src/services/project/ticket-editor.service.d.ts.map +0 -1
- package/dist/backend/backend/src/services/project/ticket-editor.service.js +0 -406
- package/dist/backend/backend/src/services/project/ticket-editor.service.js.map +0 -1
- package/dist/cli/backend/src/models/Ticket.d.ts +0 -24
- package/dist/cli/backend/src/models/Ticket.d.ts.map +0 -1
- package/dist/cli/backend/src/models/Ticket.js +0 -102
- package/dist/cli/backend/src/models/Ticket.js.map +0 -1
- package/frontend/dist/assets/index-2bdb57b9.css +0 -42
- package/frontend/dist/assets/index-54f1061c.js +0 -4963
|
@@ -1,274 +0,0 @@
|
|
|
1
|
-
You are a **Principal PM + TPM** specializing in agent-friendly backlogs. Using all specs in `{PROJECT_PATH}/.crewly/specs/` — especially `project.md`, any `*_design.md`, and (if present) `integration_tests.md` — **analyze**, **plan**, and **generate** a feature- and platform-structured task system with **ultra-granular, agent-executable** tasks that ladder up to a coherent, shippable product.
|
|
2
|
-
|
|
3
|
-
**Inputs:**
|
|
4
|
-
Project: {PROJECT_NAME}
|
|
5
|
-
Path: {PROJECT_PATH}
|
|
6
|
-
|
|
7
|
-
PROJECT GOAL:
|
|
8
|
-
{INITIAL_GOAL}
|
|
9
|
-
|
|
10
|
-
USER JOURNEY:
|
|
11
|
-
{USER_JOURNEY}
|
|
12
|
-
|
|
13
|
-
## Output Contract (strict)
|
|
14
|
-
|
|
15
|
-
Produce output in **this exact order**:
|
|
16
|
-
|
|
17
|
-
1. **MANIFEST (JSON)** — first code block:
|
|
18
|
-
|
|
19
|
-
- `project_name`
|
|
20
|
-
- `features`: `{key, name, description, priority, complexity, depends_on[], journey_stage, objective_kpi}`
|
|
21
|
-
- `platforms`: detected (web, backend, mobile_ios, mobile_android, desktop, devops)
|
|
22
|
-
- `stack_summary`: derived from `*_design.md` (frontend, backend, data, infra, integrations)
|
|
23
|
-
- `milestones`: ordered `{id, dir_name, feature_keys[], platform, phase, rationale}`
|
|
24
|
-
- `dependency_graph`: edges among milestones
|
|
25
|
-
- `task_counts`: per milestone `{open, in_progress, blocked, done}`
|
|
26
|
-
- `traceability`: PRD/Design anchors → features → milestones
|
|
27
|
-
- `assumptions_tbd`: gaps with owner & due date (TBD allowed)
|
|
28
|
-
- `limits`: `max_tasks_total`, `min_tasks_per_milestone`
|
|
29
|
-
- `naming_rules`: confirm `m[number]_[feature/area]_[platform]` and status folders
|
|
30
|
-
|
|
31
|
-
2. **DIRECTORY BOOTSTRAP (bash)** — second code block:
|
|
32
|
-
|
|
33
|
-
- Create `{PROJECT_PATH}/.crewly/tasks`
|
|
34
|
-
- Create **all** milestone directories and required status subfolders `{open,in_progress,blocked,done}`
|
|
35
|
-
|
|
36
|
-
3. **TASK FILES (one markdown block per task)** — then N code blocks:
|
|
37
|
-
|
|
38
|
-
- Each block begins with an **HTML comment** of the absolute path, e.g.
|
|
39
|
-
\`\`
|
|
40
|
-
- Content follows the **Agent-Grade Task Template** (below) with filled-in specifics.
|
|
41
|
-
- Generate a reasonable number of tasks per milestone to build the component atomically.
|
|
42
|
-
- **Safety cap:** If tasks would exceed **60**, emit top-priority tasks; summarize the remainder in `MANIFEST.backlog_summary`.
|
|
43
|
-
|
|
44
|
-
**No extra commentary** outside these code blocks.
|
|
45
|
-
|
|
46
|
-
---
|
|
47
|
-
|
|
48
|
-
## How to Analyze (follow strictly)
|
|
49
|
-
|
|
50
|
-
1. **Identify Core Features (from `project.md`)**
|
|
51
|
-
|
|
52
|
-
- Map to user journey stages and objectives/KPIs.
|
|
53
|
-
- Score priority via **RICE** (Reach/Impact/Confidence/Effort) or **MoSCoW**.
|
|
54
|
-
- Note dependencies (data, services, UX).
|
|
55
|
-
|
|
56
|
-
2. **Extract Tech Stack & Constraints (from `*_design.md`)**
|
|
57
|
-
|
|
58
|
-
- Platforms, frameworks, languages, versions.
|
|
59
|
-
- Integration points and contracts (APIs, events).
|
|
60
|
-
- NFRs (perf, security, a11y) that affect task scope.
|
|
61
|
-
|
|
62
|
-
3. **Define Feature Boundaries (all specs)**
|
|
63
|
-
|
|
64
|
-
- Shared components/utilities.
|
|
65
|
-
- Cross-platform variance.
|
|
66
|
-
- Testing expectations per feature/platform.
|
|
67
|
-
|
|
68
|
-
---
|
|
69
|
-
|
|
70
|
-
## Milestone Strategy (dynamic)
|
|
71
|
-
|
|
72
|
-
- Always start with **foundation & infra**:
|
|
73
|
-
`m1_foundation_setup`, `m2_infrastructure_backend` (if backend), `m3_infrastructure_frontend` (if web).
|
|
74
|
-
- Then add **feature milestones** per platform in priority order (e.g., `m4_auth_backend`, `m5_auth_web`, `m6_auth_mobile_ios`).
|
|
75
|
-
- Add **testing/integration** and **deployment** milestones **only as required** by detected platforms/services.
|
|
76
|
-
- Phase each milestone: **Foundation → MVP → Scale → Hardening**.
|
|
77
|
-
- Conclude each feature milestone with a dedicated **integration testing task** responsible for verifying the milestone's deliverables.
|
|
78
|
-
|
|
79
|
-
---
|
|
80
|
-
|
|
81
|
-
## Granularity & Agent-Facing Rules
|
|
82
|
-
|
|
83
|
-
- **Size**: each task ≤ **2 hours** OR ≤ **150 LOC** touched; one primary file/folder focus.
|
|
84
|
-
- **Single responsibility**: one clear outcome; avoid “and/also”.
|
|
85
|
-
- **Deterministic**: all commands **idempotent**; include env vars and paths; prefer `bash -euo pipefail`.
|
|
86
|
-
- **Executable**: provide copy-paste commands, file scaffolds, and minimal compiling stubs.
|
|
87
|
-
- **Co-located unit tests** by default (`x.ts` → `x.test.ts`), or idiomatic per stack (document exception).
|
|
88
|
-
- **Traceable**: link to PRD/Design anchors; list upstream/downstream impacts.
|
|
89
|
-
- **Rollback**: include revert notes (files/commands) and cleanup.
|
|
90
|
-
|
|
91
|
-
---
|
|
92
|
-
|
|
93
|
-
## Agent-Grade Task Template (use verbatim structure; fill concretely)
|
|
94
|
-
|
|
95
|
-
````markdown
|
|
96
|
-
---
|
|
97
|
-
id: [m#_area_platform.NN]
|
|
98
|
-
feature: [key]
|
|
99
|
-
platform: [web|backend|mobile_ios|mobile_android|desktop|devops]
|
|
100
|
-
type: [frontend|backend|api|db|infra|security|qa|docs]
|
|
101
|
-
priority: [P0|P1|P2]
|
|
102
|
-
estimate_hours: [0.5–2.0]
|
|
103
|
-
owner: [TBD]
|
|
104
|
-
depends_on: [m#_area_platform.MM, ...]
|
|
105
|
-
labels: [auth, accessibility, performance, ...]
|
|
106
|
-
phase: [Foundation|MVP|Scale|Hardening]
|
|
107
|
-
spec_refs:
|
|
108
|
-
- project.md#anchor
|
|
109
|
-
- design_doc.md#section
|
|
110
|
-
objective_kpi: [explicit KPI tie-in]
|
|
111
|
-
---
|
|
112
|
-
|
|
113
|
-
# [Milestone].[Task Number]: [Precise, outcome-based title]
|
|
114
|
-
|
|
115
|
-
## Definition of Ready (DoR)
|
|
116
|
-
|
|
117
|
-
- [ ] Repo checked out; branch created: `feat/[short]`
|
|
118
|
-
- [ ] Runtime & package manager installed (versions)
|
|
119
|
-
- [ ] Env vars available/secrets set: [list]
|
|
120
|
-
- [ ] Dependencies done: [task IDs]
|
|
121
|
-
|
|
122
|
-
## Objective (Single Sentence)
|
|
123
|
-
|
|
124
|
-
What will exist or pass at the end (code + tests).
|
|
125
|
-
|
|
126
|
-
## Files & Locations (Absolute from repo root)
|
|
127
|
-
|
|
128
|
-
- `apps/web/src/components/LoginForm.tsx` (new)
|
|
129
|
-
- `apps/web/src/components/__tests__/LoginForm.test.tsx` (new)
|
|
130
|
-
- `apps/web/src/styles/forms.css` (modified)
|
|
131
|
-
|
|
132
|
-
## Scaffolding (Run exactly in order; idempotent)
|
|
133
|
-
|
|
134
|
-
```bash
|
|
135
|
-
set -euo pipefail
|
|
136
|
-
cd {REPO_ROOT}
|
|
137
|
-
mkdir -p apps/web/src/components/__tests__
|
|
138
|
-
touch apps/web/src/components/LoginForm.tsx
|
|
139
|
-
touch apps/web/src/components/__tests__/LoginForm.test.tsx
|
|
140
|
-
```
|
|
141
|
-
|
|
142
|
-
## Code Skeletons (compile-safe stubs)
|
|
143
|
-
|
|
144
|
-
```tsx
|
|
145
|
-
// apps/web/src/components/LoginForm.tsx
|
|
146
|
-
export type LoginFormProps = { onSubmit(email: string, password: string): Promise<void> };
|
|
147
|
-
export function LoginForm({ onSubmit }: LoginFormProps) {
|
|
148
|
-
return null;
|
|
149
|
-
} // TODO: replace with implementation
|
|
150
|
-
```
|
|
151
|
-
|
|
152
|
-
## Interface / Contract Snapshots
|
|
153
|
-
|
|
154
|
-
- Events: `auth:login.requested` `{ email: string }`
|
|
155
|
-
- API: POST `/api/auth/login` → 200 `{ token }` | 401 `{ error }`
|
|
156
|
-
|
|
157
|
-
## Unit Test Blueprint (write first)
|
|
158
|
-
|
|
159
|
-
- `renders form fields and submit disabled until valid`
|
|
160
|
-
- `submits valid credentials and calls onSubmit`
|
|
161
|
-
- `shows error on 401 response`
|
|
162
|
-
|
|
163
|
-
```tsx
|
|
164
|
-
// apps/web/src/components/__tests__/LoginForm.test.tsx
|
|
165
|
-
describe('LoginForm', () => {
|
|
166
|
-
it('disables submit until valid', async () => {
|
|
167
|
-
/* ... */
|
|
168
|
-
});
|
|
169
|
-
it('calls onSubmit on valid input', async () => {
|
|
170
|
-
/* ... */
|
|
171
|
-
});
|
|
172
|
-
it('handles 401 error', async () => {
|
|
173
|
-
/* ... */
|
|
174
|
-
});
|
|
175
|
-
});
|
|
176
|
-
```
|
|
177
|
-
|
|
178
|
-
## Implementation Steps
|
|
179
|
-
|
|
180
|
-
### Phase A — Structure (15–20 min)
|
|
181
|
-
|
|
182
|
-
- Implement markup with labeled inputs; basic state.
|
|
183
|
-
- Add validation (email format, min password length).
|
|
184
|
-
|
|
185
|
-
### Phase B — Logic (30–50 min)
|
|
186
|
-
|
|
187
|
-
- Wire `onSubmit`; loading/error states; a11y (ARIA, focus).
|
|
188
|
-
- Telemetry event on submit; rate-limit guard.
|
|
189
|
-
|
|
190
|
-
### Phase C — Tests (20–30 min)
|
|
191
|
-
|
|
192
|
-
- Complete unit tests (happy, edge, error).
|
|
193
|
-
- Add contract mock for `/api/auth/login`.
|
|
194
|
-
|
|
195
|
-
## Acceptance Criteria (Definition of Done)
|
|
196
|
-
|
|
197
|
-
- [ ] Unit: ≥ 85% lines, ≥ 75% branches for touched files; tests named as above
|
|
198
|
-
- [ ] Lint/format pass (ESLint/Prettier rules)
|
|
199
|
-
- [ ] A11y: keyboard nav and labels validated
|
|
200
|
-
- [ ] Contract compatibility with API design doc
|
|
201
|
-
- [ ] Commit created: `feat(auth): add LoginForm skeleton + tests`
|
|
202
|
-
|
|
203
|
-
## Run & Verify (Local/CI)
|
|
204
|
-
|
|
205
|
-
```bash
|
|
206
|
-
pnpm install
|
|
207
|
-
pnpm lint && pnpm typecheck
|
|
208
|
-
pnpm test --filter web -- --run
|
|
209
|
-
```
|
|
210
|
-
|
|
211
|
-
Expected: 3 tests pass; coverage thresholds met.
|
|
212
|
-
|
|
213
|
-
## Rollback Plan
|
|
214
|
-
|
|
215
|
-
- `git restore -SW apps/web/src/components/LoginForm.tsx apps/web/src/components/__tests__/LoginForm.test.tsx`
|
|
216
|
-
|
|
217
|
-
## Risks & Mitigations
|
|
218
|
-
|
|
219
|
-
- Validation libs conflict → use lightweight inline checks.
|
|
220
|
-
- Flaky async tests → add `await screen.findBy...` and fake timers.
|
|
221
|
-
|
|
222
|
-
## Links
|
|
223
|
-
|
|
224
|
-
- Upstream: \[project.md#auth], \[backend_design.md#login]
|
|
225
|
-
- Downstream: m5_auth_web.03 (wire to API)
|
|
226
|
-
````
|
|
227
|
-
|
|
228
|
-
---
|
|
229
|
-
|
|
230
|
-
## Integration Testing Task Guidelines (special task type)
|
|
231
|
-
|
|
232
|
-
This special task type concludes each feature milestone. It uses the standard `Agent-Grade Task Template` but with a specific structure and objective.
|
|
233
|
-
|
|
234
|
-
- **Title:** Must be named like `[Milestone].[Task Number]: Verify [Feature] Integration`.
|
|
235
|
-
- **`type`:** `qa`.
|
|
236
|
-
- **`depends_on`:** All other implementation tasks within the same milestone.
|
|
237
|
-
- **Objective:** "Create and execute an integration test script to validate the functionality delivered in this milestone; create bug-fix tasks for any failures."
|
|
238
|
-
- **Scaffolding:** Commands to create a new test script file, e.g., `touch {PROJECT_PATH}/integration_tests/test_m5_auth.sh`.
|
|
239
|
-
- **Implementation Steps:** This section must have three distinct phases.
|
|
240
|
-
1. **Write Test Script:** Detail the shell commands, API calls (`curl`), or framework commands (`cypress run`) needed to test the milestone's features. The script must have clear pass/fail exit codes. Store the script in `{PROJECT_PATH}/integration_tests/`.
|
|
241
|
-
2. **Execute Test Script:** Provide the exact command to run the script and capture its output and exit code.
|
|
242
|
-
3. **Analyze & Remediate:** Include a conditional logic block for the agent to follow.
|
|
243
|
-
- **On Success (exit code 0):** Document the successful output. The task is considered complete.
|
|
244
|
-
- **On Failure (non-zero exit code):**
|
|
245
|
-
- Document the full error output.
|
|
246
|
-
- Define the **exact follow-up tasks** needed to fix the bugs. For each bug, specify the title, objective, and files to be modified. These new tasks **must be created as new files** in the current milestone's `open/` directory.
|
|
247
|
-
|
|
248
|
-
---
|
|
249
|
-
|
|
250
|
-
## Platform Guidelines
|
|
251
|
-
|
|
252
|
-
- **Multi-platform**: distinct milestones per platform.
|
|
253
|
-
- **Full-stack**: split backend/frontend tasks.
|
|
254
|
-
- **Microservices**: one milestone per service.
|
|
255
|
-
- **Mobile**: separate iOS/Android unless cross-platform.
|
|
256
|
-
|
|
257
|
-
---
|
|
258
|
-
|
|
259
|
-
## Task Rules (strong)
|
|
260
|
-
|
|
261
|
-
- Generate **one or more tasks per milestone**. The number should be dictated by the work's natural atomic units, not an arbitrary minimum. Each task must still be atomic and independently shippable.
|
|
262
|
-
- Every feature milestone **must culminate in an integration testing task**. This task follows the specific guidelines detailed above. Its primary responsibility is to verify the milestone and generate new bug-fix tasks if verification fails.
|
|
263
|
-
- Every task must include: **Scaffolding commands**, **compile-safe stubs**, **unit test blueprint**, **exact run commands**, **DoR/DoD**, and a **rollback plan**.
|
|
264
|
-
- Use explicit paths, versions, and commands; avoid vague instructions like “update X”.
|
|
265
|
-
- For stacks that don’t support test co-location, state the idiomatic alternative and mirror the same structure under that root.
|
|
266
|
-
|
|
267
|
-
---
|
|
268
|
-
|
|
269
|
-
## Constraints
|
|
270
|
-
|
|
271
|
-
- Create directories only under `{PROJECT_PATH}/.crewly/tasks` with status folders `{open,in_progress,blocked,done}`.
|
|
272
|
-
- Do **not** create other folder levels.
|
|
273
|
-
- Filename pattern: `m[number]_[feature/area]_[platform]`.
|
|
274
|
-
- New tasks go into each milestone’s `open/` folder.
|
|
@@ -1,391 +0,0 @@
|
|
|
1
|
-
E2E TEST PLAN GENERATION - STEP 1
|
|
2
|
-
|
|
3
|
-
**Role:** You are a Senior QA Architect specializing in E2E **evaluation** (framework choice + minimal harness) across web, mobile, desktop, API, and terminal apps. Work deterministically, avoid speculation, and show reasoning **only** via explicit criteria, tables, and bullet points (no hidden chain-of-thought).
|
|
4
|
-
|
|
5
|
-
**Project Inputs:**
|
|
6
|
-
|
|
7
|
-
- **Project:** `{PROJECT_NAME}`
|
|
8
|
-
- **Repo/Path:** `{PROJECT_PATH}`
|
|
9
|
-
- **Goal:** `{INITIAL_GOAL}`
|
|
10
|
-
- **User Journey (primary flow + key alternates):**
|
|
11
|
-
`{USER_JOURNEY}`
|
|
12
|
-
|
|
13
|
-
**Repository Conventions (must honor):**
|
|
14
|
-
|
|
15
|
-
- **Specs live in:** `{PROJECT_PATH}/.crewly/specs/`
|
|
16
|
-
- **Tasks live in:** `{PROJECT_PATH}/.crewly/tasks/`
|
|
17
|
-
- **This task’s outputs must be saved under:** `{PROJECT_PATH}/e2e_tests/`
|
|
18
|
-
|
|
19
|
-
**Artifacts to Inspect (request immediately if not provided):**
|
|
20
|
-
|
|
21
|
-
1. `{PROJECT_PATH}/.crewly/specs/project.md` (authoritative tech/platform constraints)
|
|
22
|
-
2. All specs under `{PROJECT_PATH}/.crewly/specs/` (including any user-journey docs)
|
|
23
|
-
3. A **directory tree** (depth 3–4) for `{PROJECT_PATH}`
|
|
24
|
-
4. Key files if present: `package.json`, lockfiles, `requirements.txt`/`pyproject.toml`, `pom.xml`/`build.gradle`, `pubspec.yaml`, `android/app/build.gradle`, `ios/Podfile`, `electron-builder.yml`, `Dockerfile`, CI configs (`.github/workflows/*`, `gitlab-ci.yml`, etc.), framework configs (`next.config.js`, `angular.json`, `capacitor.config.*`, etc.)
|
|
25
|
-
|
|
26
|
-
> If anything is missing, explicitly note it and proceed with clearly-labeled **Assumptions**.
|
|
27
|
-
|
|
28
|
-
---
|
|
29
|
-
|
|
30
|
-
## Step 0 — Check for Existing Evaluation & Project Analysis
|
|
31
|
-
|
|
32
|
-
**1) Check for Existing E2E Evaluation Artifacts**
|
|
33
|
-
|
|
34
|
-
- First, check if these files exist:
|
|
35
|
-
- `{PROJECT_PATH}/e2e_tests/e2e_evaluation_instructions.md`
|
|
36
|
-
- `{PROJECT_PATH}/e2e_tests/e2e_evaluation_report.md`
|
|
37
|
-
- If `e2e_evaluation_report.md` exists, its content must guide your new evaluation. Your primary goal is to build upon the previous run, addressing any failures, gaps, or regressions identified in the report while still fulfilling the original `{INITIAL_GOAL}`.
|
|
38
|
-
- If these files do not exist, proceed with a fresh project analysis from scratch.
|
|
39
|
-
|
|
40
|
-
**2) Project Analysis (Specs → Codebase Reality)**
|
|
41
|
-
|
|
42
|
-
Produce a concise analysis (≤ 14 bullets) that **compares specs to the current codebase**:
|
|
43
|
-
|
|
44
|
-
**a) Project Type Identification**
|
|
45
|
-
|
|
46
|
-
- Decide: **Web**, **Mobile (iOS/Android)**, **Desktop (Electron/native)**, **API/Backend**, **Terminal/CLI**, or **Hybrid**.
|
|
47
|
-
- Cite signals (files/deps like `react`, `next`, `flutter`, `react-native`, `electron`, `express`, `fastapi`, `spring`, CLI entrypoints, etc.).
|
|
48
|
-
- Note deployment targets (browsers, devices/OS, distributions).
|
|
49
|
-
|
|
50
|
-
**b) Technology Stack (from specs vs. code)**
|
|
51
|
-
|
|
52
|
-
- **Frontend:** framework(s), build tool, SSR/SSG, state mgmt, styling.
|
|
53
|
-
- **Backend/API:** language/runtime, framework, auth (OIDC/JWT), protocols (REST/GraphQL/gRPC), jobs/queues.
|
|
54
|
-
- **Data/Integrations:** DBs, caches, 3rd-party APIs (payments, auth, analytics).
|
|
55
|
-
- **CI/CD & Environments:** pipelines, environments, containers, existing test tooling.
|
|
56
|
-
- **Existing E2E/Integration Tooling:** anything already used (Cypress/Playwright/Appium configs, etc.).
|
|
57
|
-
|
|
58
|
-
**c) Constraints & Non-functionals**
|
|
59
|
-
|
|
60
|
-
- Parallelization needs, flake tolerance, security/compliance (PII/SOC2), a11y/perf budgets, coverage expectations (devices/browsers).
|
|
61
|
-
|
|
62
|
-
**d) Diff & Gaps**
|
|
63
|
-
|
|
64
|
-
- Where **specs** and **codebase** diverge; risks and blockers for E2E evaluation.
|
|
65
|
-
|
|
66
|
-
**Deliverable for Step 1:**
|
|
67
|
-
|
|
68
|
-
- A **one-paragraph summary** + **bullet list of decisive indicators** with pointers to files/lines.
|
|
69
|
-
|
|
70
|
-
## Step 1 — Project Analysis (Specs → Codebase Reality)
|
|
71
|
-
|
|
72
|
-
Produce a concise analysis (≤ 14 bullets) that **compares specs to the current codebase**:
|
|
73
|
-
|
|
74
|
-
**1) Project Type Identification**
|
|
75
|
-
|
|
76
|
-
- Decide: **Web**, **Mobile (iOS/Android)**, **Desktop (Electron/native)**, **API/Backend**, **Terminal/CLI**, or **Hybrid**.
|
|
77
|
-
- Cite signals (files/deps like `react`, `next`, `flutter`, `react-native`, `electron`, `express`, `fastapi`, `spring`, CLI entrypoints, etc.).
|
|
78
|
-
- Note deployment targets (browsers, devices/OS, distributions).
|
|
79
|
-
|
|
80
|
-
**2) Technology Stack (from specs vs. code)**
|
|
81
|
-
|
|
82
|
-
- **Frontend:** framework(s), build tool, SSR/SSG, state mgmt, styling.
|
|
83
|
-
- **Backend/API:** language/runtime, framework, auth (OIDC/JWT), protocols (REST/GraphQL/gRPC), jobs/queues.
|
|
84
|
-
- **Data/Integrations:** DBs, caches, 3rd-party APIs (payments, auth, analytics).
|
|
85
|
-
- **CI/CD & Environments:** pipelines, environments, containers, existing test tooling.
|
|
86
|
-
- **Existing E2E/Integration Tooling:** anything already used (Cypress/Playwright/Appium configs, etc.).
|
|
87
|
-
|
|
88
|
-
**3) Constraints & Non-functionals**
|
|
89
|
-
|
|
90
|
-
- Parallelization needs, flake tolerance, security/compliance (PII/SOC2), a11y/perf budgets, coverage expectations (devices/browsers).
|
|
91
|
-
|
|
92
|
-
**4) Diff & Gaps**
|
|
93
|
-
|
|
94
|
-
- Where **specs** and **codebase** diverge; risks and blockers for E2E evaluation.
|
|
95
|
-
|
|
96
|
-
**Deliverable for Step 1:**
|
|
97
|
-
|
|
98
|
-
- A **one-paragraph summary** + **bullet list of decisive indicators** with pointers to files/lines.
|
|
99
|
-
|
|
100
|
-
---
|
|
101
|
-
|
|
102
|
-
## Step 2 — E2E Evaluation Technology Selection (Framework Choice, Not Test Authoring)
|
|
103
|
-
|
|
104
|
-
Pick the **evaluation** framework(s) per platform to **exercise end-to-end flows** (not a full suite). Provide a decision matrix with **scores 1–5**:
|
|
105
|
-
|
|
106
|
-
**Criteria:** Platform Fit, Developer UX, Stability/Auto-waits, Cross-Browser/Device Coverage, CI/Parallelization, Ecosystem/Plugins (a11y/visual/network mocks), Maintenance Cost, Scalability, Licensing/Cost.
|
|
107
|
-
|
|
108
|
-
**Candidate Pool (select relevant only):**
|
|
109
|
-
|
|
110
|
-
- **Web:** Playwright, Cypress, Selenium
|
|
111
|
-
- **Mobile:** iOS (XCUITest, Detox, Appium), Android (Espresso, UIAutomator, Appium), Flutter (Patrol/Flutter Driver)
|
|
112
|
-
- **Desktop:** Electron (Playwright, Spectron), Native (WinAppDriver, Appium for Windows/macOS)
|
|
113
|
-
- **API:** Postman/Newman, REST Assured (Java), Supertest (Node), pytest+requests (Python)
|
|
114
|
-
- **Terminal/CLI:** Node `child_process` + **expect/pexpect**-style automation; or Playwright’s **TTY** helpers where applicable
|
|
115
|
-
|
|
116
|
-
**Output Requirements (Step 2):**
|
|
117
|
-
|
|
118
|
-
- **Decision Matrix** (table with scores + brief rationale).
|
|
119
|
-
- **Recommendation:** Name **1 primary** tool per platform (or dual-stack for hybrid) + 3–5 bullets on why it fits **this project**.
|
|
120
|
-
- **Risks & Mitigations:** selectors strategy, network controls, device farm choice, flake handling.
|
|
121
|
-
- **Alternatives:** if org or infra constraints block the top choice.
|
|
122
|
-
|
|
123
|
-
---
|
|
124
|
-
|
|
125
|
-
## Step 3 — Map User Journey to an E2E **Evaluation Plan** (Not Execution)
|
|
126
|
-
|
|
127
|
-
Transform `{USER_JOURNEY}` into a practical **evaluation plan** executed by a single entry script per platform. Prioritize coverage breadth over test depth.
|
|
128
|
-
|
|
129
|
-
1. **Critical Paths → Scenario IDs** (e.g., `E2E-LOGIN-001`)
|
|
130
|
-
2. **Integrations:** auth, payments, email/SMS, analytics — choose **stub/sandbox/live-preprod** strategy for evaluation.
|
|
131
|
-
3. **Coverage Matrix:** browsers (and versions), viewports, devices/simulators, desktop OSes.
|
|
132
|
-
4. **Data Management:** seed/fixtures, per-test identities, cleanup, PII masking.
|
|
133
|
-
5. **Resilience:** network failures, slow/offline, 4xx/5xx, retries, rate limits, boundary inputs.
|
|
134
|
-
6. **Observability:** traces, screenshots, videos, console/network logs; failure triage workflow.
|
|
135
|
-
7. **CI Hooks:** when to run (PR smoke/nightly), sharding, time budgets, flake thresholds.
|
|
136
|
-
|
|
137
|
-
---
|
|
138
|
-
|
|
139
|
-
## Step 4 — Produce Evaluation Script(s) **and** Instructions (Do **Not** Execute)
|
|
140
|
-
|
|
141
|
-
Generate a **minimal evaluation harness** that calls the chosen framework(s) programmatically to drive the user-journey checks. Keep it lightweight; **no full test authoring**. The script should orchestrate framework runs, basic assertions for reachability/health, and artifact capture (traces/screenshots/videos) as supported.
|
|
142
|
-
|
|
143
|
-
**Where to save outputs (MANDATORY):**
|
|
144
|
-
All files must be returned as content **ready to save** under:
|
|
145
|
-
`{PROJECT_PATH}/e2e_tests/`
|
|
146
|
-
|
|
147
|
-
**Output Files:**
|
|
148
|
-
|
|
149
|
-
1. **Evaluation Script(s)** — name by platform and language detected (choose the best fit; examples):
|
|
150
|
-
|
|
151
|
-
- Web (TS): `{PROJECT_PATH}/e2e_tests/web_e2e_tests.ts`
|
|
152
|
-
- Web (Java): `{PROJECT_PATH}/e2e_tests/web_e2e_tests.java` (Playwright/Selenium)
|
|
153
|
-
- API (TS): `{PROJECT_PATH}/e2e_tests/api_e2e_tests.ts`
|
|
154
|
-
- API (Python): `{PROJECT_PATH}/e2e_tests/api_e2e_tests.py`
|
|
155
|
-
- Mobile (JS/TS wrapper): `{PROJECT_PATH}/e2e_tests/mobile_e2e_tests.ts` (delegates to Appium/WDIO)
|
|
156
|
-
- Desktop (Electron+Playwright): `{PROJECT_PATH}/e2e_tests/desktop_e2e_tests.ts`
|
|
157
|
-
- Terminal (TS + pty): `{PROJECT_PATH}/e2e_tests/terminal_e2e_tests.ts`
|
|
158
|
-
|
|
159
|
-
> Use **one script per relevant platform** (or multiple if hybrid). For non-Node stacks, the script may shell out to platform tools (`newman`, `appium`, `xcodebuild`, `gradlew`) via `child_process`/`subprocess`.
|
|
160
|
-
|
|
161
|
-
2. **Detailed Instruction Doc:**
|
|
162
|
-
`{PROJECT_PATH}/e2e_tests/e2e_evaluation_instructions.md` — clearly explains prerequisites, env vars/secrets, how a separate “runner” task will execute the script(s), expected artifacts, and how scenarios map to user-journey items. It must link to the script(s) in (1).
|
|
163
|
-
|
|
164
|
-
**Script Skeleton Requirements (examples):**
|
|
165
|
-
|
|
166
|
-
- **Web (Playwright, TS):** programmatic API to launch Chromium/Firefox/WebKit; navigate main critical paths; save traces/videos; exit non-zero on failed assertions.
|
|
167
|
-
- **Web (Selenium, Java):** JUnit/TestNG skeleton, grid-ready; minimal health checks + navigation placeholders.
|
|
168
|
-
- **API (Supertest or Python requests):** smoke calls for critical endpoints, validate 2xx/expected payloads, record perf timings.
|
|
169
|
-
- **Mobile (Appium/Detox):** start server/simulator, install app, run shallow navigations, capture logs/screens.
|
|
170
|
-
- **Desktop (Electron):** launch app, verify window/menu boot flow.
|
|
171
|
-
- **Terminal (pty):** spawn process, send keystrokes, assert prompts/outputs, capture transcript.
|
|
172
|
-
|
|
173
|
-
> **Do not execute** any script. Only generate content.
|
|
174
|
-
|
|
175
|
-
---
|
|
176
|
-
|
|
177
|
-
## Final Deliverables (return **both** items in one response)
|
|
178
|
-
|
|
179
|
-
- **A) Evaluation Script File(s):** saved under `{PROJECT_PATH}/e2e_tests/` with appropriate extension(s) per tech stack.
|
|
180
|
-
- **B) Detailed Instruction Markdown:** `{PROJECT_PATH}/e2e_tests/e2e_evaluation_instructions.md`.
|
|
181
|
-
|
|
182
|
-
---
|
|
183
|
-
|
|
184
|
-
### Example Skeletons (generate only those that match the detected stack)
|
|
185
|
-
|
|
186
|
-
**Web — `web_e2e_tests.ts` (Playwright programmatic API with Visual & A11y checks)**
|
|
187
|
-
|
|
188
|
-
```ts
|
|
189
|
-
// {PROJECT_PATH}/e2e_tests/web_e2e_tests.ts
|
|
190
|
-
// Potential new dev dependencies: @axe-core/playwright
|
|
191
|
-
import { chromium, firefox, webkit, Browser, Page, expect } from 'playwright';
|
|
192
|
-
import AxeBuilder from '@axe-core/playwright';
|
|
193
|
-
|
|
194
|
-
const BASE_URL = process.env.BASE_URL || 'http://localhost:3000';
|
|
195
|
-
const BROWSERS = (process.env.BROWSERS || 'chromium').split(',');
|
|
196
|
-
const HEADLESS = process.env.HEADLESS !== 'false';
|
|
197
|
-
|
|
198
|
-
async function runBrowser(name: string, fn: (b: Browser) => Promise<void>) {
|
|
199
|
-
const browser = await ({ chromium, firefox, webkit } as any)[name].launch({
|
|
200
|
-
headless: HEADLESS,
|
|
201
|
-
});
|
|
202
|
-
try {
|
|
203
|
-
await fn(browser);
|
|
204
|
-
} finally {
|
|
205
|
-
await browser.close();
|
|
206
|
-
}
|
|
207
|
-
}
|
|
208
|
-
|
|
209
|
-
async function checkAccessibility(page: Page) {
|
|
210
|
-
const accessibilityScanResults = await new AxeBuilder({ page }).analyze();
|
|
211
|
-
expect(accessibilityScanResults.violations).toEqual([]);
|
|
212
|
-
}
|
|
213
|
-
|
|
214
|
-
async function criticalPathSmoke(browser: Browser) {
|
|
215
|
-
const ctx = await browser.newContext({ viewport: { width: 1280, height: 800 } });
|
|
216
|
-
await ctx.tracing.start({ screenshots: true, snapshots: true, sources: true });
|
|
217
|
-
const page = await ctx.newPage();
|
|
218
|
-
await page.goto(BASE_URL, { waitUntil: 'domcontentloaded' });
|
|
219
|
-
|
|
220
|
-
// --- Functional, Visual, and Accessibility Checks ---
|
|
221
|
-
await page.waitForLoadState('networkidle');
|
|
222
|
-
// 1. Functional check: Is the header visible?
|
|
223
|
-
await expect(page.locator('header').first()).toBeVisible();
|
|
224
|
-
|
|
225
|
-
// 2. Visual Regression check: Does the page look correct?
|
|
226
|
-
// This will take a screenshot on the first run and compare against it on subsequent runs.
|
|
227
|
-
await expect(page).toHaveScreenshot('landing-page.png', { maxDiffPixels: 100 });
|
|
228
|
-
|
|
229
|
-
// 3. Accessibility check: Are there any violations?
|
|
230
|
-
await checkAccessibility(page);
|
|
231
|
-
|
|
232
|
-
// TODO: Add more steps based on {USER_JOURNEY}
|
|
233
|
-
// Example: await page.getByRole('button', { name: 'Sign In' }).click();
|
|
234
|
-
// await expect(page).toHaveScreenshot('signin-modal.png');
|
|
235
|
-
// await checkAccessibility(page);
|
|
236
|
-
|
|
237
|
-
await ctx.tracing.stop({ path: `./artifacts/trace-${Date.now()}.zip` });
|
|
238
|
-
await ctx.close();
|
|
239
|
-
}
|
|
240
|
-
|
|
241
|
-
(async () => {
|
|
242
|
-
for (const name of BROWSERS) await runBrowser(name, criticalPathSmoke);
|
|
243
|
-
})().catch((e) => {
|
|
244
|
-
console.error(e);
|
|
245
|
-
process.exit(1);
|
|
246
|
-
});
|
|
247
|
-
```
|
|
248
|
-
|
|
249
|
-
**Web — `web_e2e_tests.java` (Selenium + JUnit 5)**
|
|
250
|
-
|
|
251
|
-
```java
|
|
252
|
-
// {PROJECT_PATH}/e2e_tests/web_e2e_tests.java
|
|
253
|
-
import org.junit.jupiter.api.*;
|
|
254
|
-
import org.openqa.selenium.*;
|
|
255
|
-
import org.openqa.selenium.chrome.ChromeDriver;
|
|
256
|
-
|
|
257
|
-
public class WebE2ETests {
|
|
258
|
-
private WebDriver driver;
|
|
259
|
-
private static final String BASE_URL = System.getenv().getOrDefault("BASE_URL","http://localhost:3000");
|
|
260
|
-
@BeforeEach void setUp(){ driver = new ChromeDriver(); }
|
|
261
|
-
@AfterEach void tearDown(){ if (driver!=null) driver.quit(); }
|
|
262
|
-
|
|
263
|
-
@Test void landingPageLoads(){
|
|
264
|
-
driver.get(BASE_URL);
|
|
265
|
-
Assertions.assertTrue(driver.findElement(By.tagName("header")).isDisplayed(), "Header not visible");
|
|
266
|
-
}
|
|
267
|
-
}
|
|
268
|
-
```
|
|
269
|
-
|
|
270
|
-
**API — `api_e2e_tests.ts` (Supertest)**
|
|
271
|
-
|
|
272
|
-
```ts
|
|
273
|
-
// {PROJECT_PATH}/e2e_tests/api_e2e_tests.ts
|
|
274
|
-
import supertest from 'supertest';
|
|
275
|
-
const BASE_URL = process.env.API_BASE_URL || 'http://localhost:4000';
|
|
276
|
-
const client = supertest(BASE_URL);
|
|
277
|
-
|
|
278
|
-
(async () => {
|
|
279
|
-
const health = await client.get('/health').expect(200);
|
|
280
|
-
if (!health.body?.status) throw new Error('Healthcheck missing status');
|
|
281
|
-
// TODO: Add 2–3 critical endpoints from {USER_JOURNEY}
|
|
282
|
-
process.exit(0);
|
|
283
|
-
})().catch((e) => {
|
|
284
|
-
console.error(e);
|
|
285
|
-
process.exit(1);
|
|
286
|
-
});
|
|
287
|
-
```
|
|
288
|
-
|
|
289
|
-
**API — `api_e2e_tests.py` (pytest + requests style)**
|
|
290
|
-
|
|
291
|
-
```python
|
|
292
|
-
# {PROJECT_PATH}/e2e_tests/api_e2e_tests.py
|
|
293
|
-
import os, requests
|
|
294
|
-
BASE_URL = os.getenv("API_BASE_URL", "http://localhost:4000")
|
|
295
|
-
|
|
296
|
-
def test_health():
|
|
297
|
-
r = requests.get(f"{BASE_URL}/health")
|
|
298
|
-
assert r.status_code == 200
|
|
299
|
-
assert r.json().get("status")
|
|
300
|
-
```
|
|
301
|
-
|
|
302
|
-
**Mobile — `mobile_e2e_tests.ts` (Appium/WDIO delegate)**
|
|
303
|
-
|
|
304
|
-
```ts
|
|
305
|
-
// {PROJECT_PATH}/e2e_tests/mobile_e2e_tests.ts
|
|
306
|
-
import { spawn } from 'child_process';
|
|
307
|
-
const cmd = process.env.MOBILE_CMD || 'npx';
|
|
308
|
-
const args = (process.env.MOBILE_ARGS || 'wdio run ./wdio.appium.conf.ts').split(' ');
|
|
309
|
-
const child = spawn(cmd, args, { stdio: 'inherit', env: process.env });
|
|
310
|
-
child.on('exit', (code) => process.exit(code ?? 1));
|
|
311
|
-
```
|
|
312
|
-
|
|
313
|
-
**Desktop — `desktop_e2e_tests.ts` (Electron + Playwright)**
|
|
314
|
-
|
|
315
|
-
```ts
|
|
316
|
-
// {PROJECT_PATH}/e2e_tests/desktop_e2e_tests.ts
|
|
317
|
-
import { _electron as electron } from 'playwright';
|
|
318
|
-
(async () => {
|
|
319
|
-
const app = await electron.launch({ args: ['.'] });
|
|
320
|
-
const window = await app.firstWindow();
|
|
321
|
-
await window.waitForLoadState('domcontentloaded');
|
|
322
|
-
// TODO: verify main window title/menu/boot flow
|
|
323
|
-
await app.close();
|
|
324
|
-
})().catch((e) => {
|
|
325
|
-
console.error(e);
|
|
326
|
-
process.exit(1);
|
|
327
|
-
});
|
|
328
|
-
```
|
|
329
|
-
|
|
330
|
-
**Terminal — `terminal_e2e_tests.ts` (PTY smoke)**
|
|
331
|
-
|
|
332
|
-
```ts
|
|
333
|
-
// {PROJECT_PATH}/e2e_tests/terminal_e2e_tests.ts
|
|
334
|
-
import { spawn } from 'node-pty';
|
|
335
|
-
const shell = process.env.SHELL || 'bash';
|
|
336
|
-
const pty = spawn(shell, [], { cols: 120, rows: 30 });
|
|
337
|
-
pty.onData((d) => process.stdout.write(d));
|
|
338
|
-
pty.write('your-cli --help\r');
|
|
339
|
-
setTimeout(() => process.exit(0), 3000);
|
|
340
|
-
```
|
|
341
|
-
|
|
342
|
-
**Detailed Instructions — `e2e_evaluation_instructions.md`**
|
|
343
|
-
|
|
344
|
-
```markdown
|
|
345
|
-
# E2E Evaluation Instructions
|
|
346
|
-
|
|
347
|
-
**Purpose:** This document explains how a separate “runner” task will execute the generated `*_e2e_tests.*` scripts to perform an **evaluation run** across the critical user journeys. This task does **not** execute the scripts.
|
|
348
|
-
|
|
349
|
-
## Scripts Produced
|
|
350
|
-
|
|
351
|
-
- <<list only the relevant script(s): web_e2e_tests.ts | ... >>
|
|
352
|
-
- Location: `{PROJECT_PATH}/e2e_tests/`
|
|
353
|
-
|
|
354
|
-
## Prerequisites
|
|
355
|
-
|
|
356
|
-
- Appropriate runtime(s): Node.js LTS, etc.
|
|
357
|
-
- Project services running (see project README)
|
|
358
|
-
- Dependencies installed:
|
|
359
|
-
- JS/TS: `pnpm i playwright @playwright/test @axe-core/playwright`
|
|
360
|
-
- Env vars:
|
|
361
|
-
- `BASE_URL` / `API_BASE_URL`
|
|
362
|
-
- `BROWSERS=chromium,firefox,webkit` (Web/Playwright)
|
|
363
|
-
- Secrets for test accounts (via `.env` or CI secrets)
|
|
364
|
-
|
|
365
|
-
## How to Run (by the subsequent task)
|
|
366
|
-
|
|
367
|
-
- Execute examples:
|
|
368
|
-
- Web (Playwright): `ts-node e2e_tests/web_e2e_tests.ts` (env: `HEADLESS=true`)
|
|
369
|
-
- ...
|
|
370
|
-
|
|
371
|
-
## Managing Visual Baselines
|
|
372
|
-
|
|
373
|
-
The evaluation script uses Playwright's visual regression capability (`toHaveScreenshot`).
|
|
374
|
-
|
|
375
|
-
- **First Run:** When you run the script for the first time, it will generate baseline screenshots (e.g., `landing-page.png`) inside a new `e2e_tests/web_e2e_tests.ts-snapshots` directory. **You must review and commit these initial images to your repository.**
|
|
376
|
-
- **Subsequent Runs:** The script will compare the current UI against these committed baseline images and fail if there are any visual differences.
|
|
377
|
-
- **Updating Baselines:** If a UI change is intentional, you must update the baseline images by running the test runner with an update flag (e.g., `npx playwright test --update-snapshots`).
|
|
378
|
-
|
|
379
|
-
## Artifacts
|
|
380
|
-
|
|
381
|
-
- Traces/videos/screenshots/logs under `./artifacts` or CI workspace.
|
|
382
|
-
- **Visual Diffs:** If a visual test fails, Playwright will generate `*-diff.png` and `*-actual.png` files showing the discrepancy.
|
|
383
|
-
- **Accessibility Violations:** If an accessibility check fails, the test output will list the specific violations found by Axe-core.
|
|
384
|
-
|
|
385
|
-
## Scenario Mapping
|
|
386
|
-
|
|
387
|
-
- `E2E-XXX-001` → <<script section/function or test method>>
|
|
388
|
-
- `E2E-XXX-002` → <<…>>
|
|
389
|
-
|
|
390
|
-
> Keep live credentials in CI secrets; never commit PII.
|
|
391
|
-
```
|