crewly 1.20.153 → 1.20.154
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/verify-output/SKILL.md +2 -2
- package/config/sops/developer/git-workflow.md +1 -1
- package/dist/backend/backend/src/constants.d.ts +359 -1
- package/dist/backend/backend/src/constants.d.ts.map +1 -1
- package/dist/backend/backend/src/constants.js +350 -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/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 +100 -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 +28 -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 +93 -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 +1 -1
- 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 +9 -0
- 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-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 +321 -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 +41 -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 +51 -2
- 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 +1 -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 +359 -1
- package/dist/cli/backend/src/constants.d.ts.map +1 -1
- package/dist/cli/backend/src/constants.js +350 -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 +28 -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 +93 -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/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/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 +321 -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 +1 -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
|
@@ -159,6 +159,13 @@ export const SLA_TERMINAL_WORK_ITEM_STATUSES = new Set([
|
|
|
159
159
|
export const WORK_ITEM_BLOCK_SOURCES = {
|
|
160
160
|
/** Blocked through the block API by the agent / a lead: stays blocked until unblocked. */
|
|
161
161
|
EXPLICIT: 'explicit',
|
|
162
|
+
/**
|
|
163
|
+
* Parked by the reconciler because the agent sat on a terminal prompt
|
|
164
|
+
* (approval, trust, plan menu) for too long (#815). Resumed to `running`
|
|
165
|
+
* automatically when the prompt is gone; never re-queued or counted as a
|
|
166
|
+
* failure or retry.
|
|
167
|
+
*/
|
|
168
|
+
WAITING_ON_HUMAN: 'waiting_on_human',
|
|
162
169
|
};
|
|
163
170
|
/**
|
|
164
171
|
* Whether a WorkItem is blocked on purpose (block API) rather than parked by
|
|
@@ -175,6 +182,20 @@ export const WORK_ITEM_BLOCK_SOURCES = {
|
|
|
175
182
|
export function isExplicitlyBlocked(wi) {
|
|
176
183
|
return wi.status === 'blocked' && wi.blockSource === WORK_ITEM_BLOCK_SOURCES.EXPLICIT;
|
|
177
184
|
}
|
|
185
|
+
/**
|
|
186
|
+
* Whether a WorkItem was parked because its agent is waiting on a human (#815).
|
|
187
|
+
*
|
|
188
|
+
* @param wi - WorkItem (status + blockSource)
|
|
189
|
+
* @returns True for a `blocked` item with the waiting_on_human block source
|
|
190
|
+
*
|
|
191
|
+
* @example
|
|
192
|
+
* ```typescript
|
|
193
|
+
* if (isWaitingOnHumanBlocked(wi)) continue; // resumed by the waiting_on_human rule only
|
|
194
|
+
* ```
|
|
195
|
+
*/
|
|
196
|
+
export function isWaitingOnHumanBlocked(wi) {
|
|
197
|
+
return wi.status === 'blocked' && wi.blockSource === WORK_ITEM_BLOCK_SOURCES.WAITING_ON_HUMAN;
|
|
198
|
+
}
|
|
178
199
|
// ---------------------------------------------------------------------------
|
|
179
200
|
// Valid State Transitions
|
|
180
201
|
// ---------------------------------------------------------------------------
|
|
@@ -195,7 +216,9 @@ export const WORK_ITEM_TRANSITIONS = {
|
|
|
195
216
|
// in TRANSITION_PERMISSIONS to TL/orchestrator/system — agents cannot
|
|
196
217
|
// self-revive a running claim.
|
|
197
218
|
running: new Set(['done', 'done_by_worker', 'failed', 'blocked', 'escalated', 'cancelled', 'queued']),
|
|
198
|
-
|
|
219
|
+
// #815: blocked → running resumes an item the reconciler parked while its
|
|
220
|
+
// agent waited on a terminal prompt (blockSource 'waiting_on_human').
|
|
221
|
+
blocked: new Set(['queued', 'running', 'cancelled']),
|
|
199
222
|
escalated: new Set(['queued', 'cancelled']),
|
|
200
223
|
done_by_worker: new Set(['verified', 'rejected']),
|
|
201
224
|
verified: new Set(),
|
|
@@ -226,73 +249,269 @@ export const DISPOSITION_REQUIRED_STATUSES = new Set(Object.keys(WORK_ITEM_TRANS
|
|
|
226
249
|
// No outbound edge reaches a strictly terminal status.
|
|
227
250
|
return ![...outbound].some((next) => TERMINAL_WORK_ITEM_STATUSES.has(next));
|
|
228
251
|
}));
|
|
252
|
+
/** All valid TransitionActorRole values. */
|
|
253
|
+
export const TRANSITION_ACTOR_ROLES = [
|
|
254
|
+
...WORK_ITEM_OWNERS,
|
|
255
|
+
'owner',
|
|
256
|
+
];
|
|
257
|
+
/**
|
|
258
|
+
* Normalise an actor argument. Anything that is not a known role — including
|
|
259
|
+
* `undefined`, `null` and `''` — yields `undefined`, which the gate refuses.
|
|
260
|
+
* There is deliberately no default role (#813: a missing actor used to
|
|
261
|
+
* become `'system'`, the most privileged role).
|
|
262
|
+
*
|
|
263
|
+
* @param input - Actor object, bare role, or nothing
|
|
264
|
+
* @returns The normalised actor, or undefined when no valid actor was given
|
|
265
|
+
*
|
|
266
|
+
* @example
|
|
267
|
+
* ```typescript
|
|
268
|
+
* normalizeTransitionActor('system'); // { role: 'system' }
|
|
269
|
+
* normalizeTransitionActor({ role: 'team_lead', session }); // unchanged
|
|
270
|
+
* normalizeTransitionActor(undefined); // undefined → refused
|
|
271
|
+
* ```
|
|
272
|
+
*/
|
|
273
|
+
export function normalizeTransitionActor(input) {
|
|
274
|
+
if (input === null || input === undefined)
|
|
275
|
+
return undefined;
|
|
276
|
+
const actor = typeof input === 'string' ? { role: input } : input;
|
|
277
|
+
if (typeof actor !== 'object' || !TRANSITION_ACTOR_ROLES.includes(actor.role)) {
|
|
278
|
+
return undefined;
|
|
279
|
+
}
|
|
280
|
+
const session = typeof actor.session === 'string' && actor.session.trim() ? actor.session.trim() : undefined;
|
|
281
|
+
return { role: actor.role, ...(session ? { session } : {}), ...(actor.via ? { via: actor.via } : {}) };
|
|
282
|
+
}
|
|
283
|
+
/**
|
|
284
|
+
* Render an actor for logs and error messages: `team_lead(sam-1)`,
|
|
285
|
+
* `system[reconciler]`, `(none)`.
|
|
286
|
+
*
|
|
287
|
+
* @param actor - Normalised actor, or undefined
|
|
288
|
+
* @returns A short human-readable label
|
|
289
|
+
*/
|
|
290
|
+
export function describeTransitionActor(actor) {
|
|
291
|
+
if (!actor)
|
|
292
|
+
return '(none)';
|
|
293
|
+
return `${actor.role}${actor.session ? `(${actor.session})` : ''}${actor.via ? `[${actor.via}]` : ''}`;
|
|
294
|
+
}
|
|
229
295
|
// ---------------------------------------------------------------------------
|
|
230
|
-
//
|
|
296
|
+
// Review metadata (#813)
|
|
231
297
|
// ---------------------------------------------------------------------------
|
|
232
298
|
/**
|
|
233
|
-
*
|
|
299
|
+
* `WorkItem.metadata` key naming the session that must review a
|
|
300
|
+
* `done_by_worker` item, when set explicitly. Usually absent: the reviewer of
|
|
301
|
+
* record is then the target of the item's review WorkItem
|
|
302
|
+
* (`<id>:verify:<id>`), which the EventToWorkItemBridge routes to the
|
|
303
|
+
* worker's own lead, else the orchestrator. TaskPoolService fills it from
|
|
304
|
+
* there before calling the gate.
|
|
305
|
+
*/
|
|
306
|
+
export const WORK_ITEM_REVIEWER_KEY = 'reviewer';
|
|
307
|
+
/**
|
|
308
|
+
* `WorkItem.metadata` key stamped when an overdue review was escalated to the
|
|
309
|
+
* orchestrator. From then on the orchestrator may render the verdict too.
|
|
310
|
+
*/
|
|
311
|
+
export const REVIEW_ESCALATED_TO_ORC_KEY = 'verifyEscalatedAt';
|
|
312
|
+
/**
|
|
313
|
+
* `WorkItem.metadata` key stamped when a review still open at the TTL was
|
|
314
|
+
* escalated to the owner (replaces the old 24h auto-verify).
|
|
315
|
+
*/
|
|
316
|
+
export const REVIEW_ESCALATED_TO_OWNER_KEY = 'reviewOwnerEscalatedAt';
|
|
317
|
+
/** The two verdict edges: the only way out of `done_by_worker`. */
|
|
318
|
+
export const VERDICT_TRANSITIONS = new Set([
|
|
319
|
+
'done_by_worker→verified',
|
|
320
|
+
'done_by_worker→rejected',
|
|
321
|
+
]);
|
|
322
|
+
/**
|
|
323
|
+
* The session recorded as a WorkItem's reviewer, if any.
|
|
324
|
+
*
|
|
325
|
+
* @param item - WorkItem (only `metadata` is read)
|
|
326
|
+
* @returns The reviewer session, or undefined
|
|
327
|
+
*/
|
|
328
|
+
export function getWorkItemReviewer(item) {
|
|
329
|
+
const v = item.metadata?.[WORK_ITEM_REVIEWER_KEY];
|
|
330
|
+
return typeof v === 'string' && v.trim() ? v.trim() : undefined;
|
|
331
|
+
}
|
|
332
|
+
// ---------------------------------------------------------------------------
|
|
333
|
+
// Transition Permissions (closed table)
|
|
334
|
+
// ---------------------------------------------------------------------------
|
|
335
|
+
/**
|
|
336
|
+
* Which actor roles may take each legal status edge.
|
|
337
|
+
*
|
|
338
|
+
* Format: `from→to` key → set of allowed {@link TransitionActorRole}s.
|
|
339
|
+
*
|
|
340
|
+
* **Closed (#813).** Every edge in {@link WORK_ITEM_TRANSITIONS} has an entry;
|
|
341
|
+
* an edge with no entry is refused for every actor, `system` included. The
|
|
342
|
+
* test suite fails if a legal edge is added without an entry here. `system`
|
|
343
|
+
* no longer bypasses the table: it is listed on the edges server code
|
|
344
|
+
* actually takes, and is absent from `done_by_worker→verified` — no timer,
|
|
345
|
+
* sweeper or fallback may certify work.
|
|
234
346
|
*
|
|
235
|
-
*
|
|
236
|
-
*
|
|
237
|
-
* The 'system' role (reconciler) can always trigger any valid transition.
|
|
347
|
+
* The verdict edges ({@link VERDICT_TRANSITIONS}) additionally require the
|
|
348
|
+
* caller to be the item's reviewer — see {@link checkTransitionPermission}.
|
|
238
349
|
*/
|
|
239
350
|
export const TRANSITION_PERMISSIONS = {
|
|
351
|
+
// --- queued ---
|
|
352
|
+
// Claims run server-side (claimFromPool → 'system'); agents / leads that
|
|
353
|
+
// move an item straight to running keep the access they always had.
|
|
354
|
+
'queued→running': new Set(['agent', 'team_lead', 'orchestrator', 'system']),
|
|
240
355
|
// Only TL or orchestrator can propose tasks
|
|
241
356
|
'queued→proposed': new Set(['team_lead', 'orchestrator']),
|
|
357
|
+
// Mission executor defers an item to a future slot
|
|
358
|
+
'queued→scheduled': new Set(['team_lead', 'orchestrator', 'system']),
|
|
359
|
+
'queued→cancelled': new Set(['team_lead', 'orchestrator', 'owner', 'system']),
|
|
360
|
+
// --- scheduled ---
|
|
361
|
+
'scheduled→queued': new Set(['team_lead', 'orchestrator', 'system']),
|
|
362
|
+
'scheduled→cancelled': new Set(['team_lead', 'orchestrator', 'owner', 'system']),
|
|
363
|
+
// --- proposed ---
|
|
242
364
|
// Only the assigned agent can accept or reject a proposal
|
|
243
365
|
'proposed→accepted': new Set(['agent']),
|
|
244
366
|
'proposed→rejected': new Set(['agent']),
|
|
367
|
+
'proposed→cancelled': new Set(['team_lead', 'orchestrator', 'owner', 'system']),
|
|
368
|
+
// --- accepted ---
|
|
369
|
+
'accepted→running': new Set(['agent', 'system']),
|
|
370
|
+
'accepted→cancelled': new Set(['team_lead', 'orchestrator', 'owner', 'system']),
|
|
371
|
+
// --- running ---
|
|
372
|
+
// Simple done — allowed for agents (simple tasks) and system (reconciler)
|
|
373
|
+
'running→done': new Set(['agent', 'system', 'orchestrator']),
|
|
245
374
|
// Only the assigned agent can report completion
|
|
246
375
|
'running→done_by_worker': new Set(['agent']),
|
|
376
|
+
'running→failed': new Set(['agent', 'system']),
|
|
377
|
+
'running→blocked': new Set(['agent', 'team_lead', 'orchestrator', 'system']),
|
|
247
378
|
// Only the assigned agent can escalate
|
|
248
379
|
'running→escalated': new Set(['agent']),
|
|
249
|
-
|
|
250
|
-
|
|
251
|
-
|
|
252
|
-
// Simple done — allowed for agents (simple tasks) and system (reconciler)
|
|
253
|
-
'running→done': new Set(['agent', 'system', 'orchestrator']),
|
|
254
|
-
// TRANS-1 F-F: only TL / orchestrator / system may re-queue a rejected
|
|
255
|
-
// WorkItem. Without this entry, the backward-compat default-allow at
|
|
256
|
-
// isTransitionPermitted line ~322 lets any actor (including the agent
|
|
257
|
-
// whose work was rejected) re-queue itself — a self-revival hazard.
|
|
258
|
-
// BRIDGE-1 retry policy is the canonical re-queueing path; manual
|
|
259
|
-
// TL action (or system reconciler) is the only other legal path.
|
|
260
|
-
'rejected→queued': new Set(['team_lead', 'orchestrator', 'system']),
|
|
261
|
-
// failed→queued (BRIDGE-1 retry path) — same gate as rejected→queued.
|
|
262
|
-
// Agent cannot self-resurrect a failed WorkItem.
|
|
263
|
-
'failed→queued': new Set(['team_lead', 'orchestrator', 'system']),
|
|
264
|
-
// blocked→queued (dependency-resolution path) — system-only by
|
|
265
|
-
// default. The TaskPoolService.resolveBlockedDependents() helper
|
|
266
|
-
// is the canonical caller and runs as system.
|
|
267
|
-
'blocked→queued': new Set(['team_lead', 'orchestrator', 'system']),
|
|
268
|
-
// TRANS-2: running→queued (releaseBack abandon path). Same gate as
|
|
269
|
-
// the other re-queue transitions — Reconciler revoke and TL manual
|
|
270
|
-
// release are the legitimate callers; agents cannot self-revive a
|
|
380
|
+
'running→cancelled': new Set(['team_lead', 'orchestrator', 'owner', 'system']),
|
|
381
|
+
// TRANS-2: running→queued (releaseBack abandon path). Reconciler revoke and
|
|
382
|
+
// TL manual release are the legitimate callers; agents cannot self-revive a
|
|
271
383
|
// running claim by re-queueing it.
|
|
272
384
|
'running→queued': new Set(['team_lead', 'orchestrator', 'system']),
|
|
385
|
+
// --- blocked / escalated ---
|
|
386
|
+
// blocked→queued (dependency-resolution path) — resolveBlockedDependents
|
|
387
|
+
// runs as system.
|
|
388
|
+
'blocked→queued': new Set(['team_lead', 'orchestrator', 'system']),
|
|
389
|
+
'blocked→cancelled': new Set(['team_lead', 'orchestrator', 'owner', 'system']),
|
|
390
|
+
// #815: resume after waiting_on_human — the reconciler only. Agents and
|
|
391
|
+
// leads unblock through blocked→queued.
|
|
392
|
+
'blocked→running': new Set(['system']),
|
|
393
|
+
'escalated→queued': new Set(['team_lead', 'orchestrator', 'system']),
|
|
394
|
+
'escalated→cancelled': new Set(['team_lead', 'orchestrator', 'owner', 'system']),
|
|
395
|
+
// --- verdicts (identity-checked, see checkTransitionPermission) ---
|
|
396
|
+
// No 'system': work is verified only by its reviewer.
|
|
397
|
+
'done_by_worker→verified': new Set(['team_lead', 'orchestrator', 'owner']),
|
|
398
|
+
// 'system' may send work BACK (SLA escalation timeout); it may never pass it.
|
|
399
|
+
'done_by_worker→rejected': new Set(['team_lead', 'orchestrator', 'owner', 'system']),
|
|
400
|
+
// --- re-queue after a verdict / failure ---
|
|
401
|
+
// TRANS-1 F-F: the agent whose work was rejected or failed cannot re-queue
|
|
402
|
+
// itself; BRIDGE-1 retry policy (system) and a lead are the legal paths.
|
|
403
|
+
'rejected→queued': new Set(['team_lead', 'orchestrator', 'system']),
|
|
404
|
+
'failed→queued': new Set(['team_lead', 'orchestrator', 'system']),
|
|
273
405
|
};
|
|
274
406
|
/**
|
|
275
|
-
*
|
|
407
|
+
* Whether `actor` is the rightful reviewer of a `done_by_worker` item.
|
|
276
408
|
*
|
|
277
|
-
*
|
|
278
|
-
*
|
|
279
|
-
*
|
|
409
|
+
* - `owner`: always — the owner is the last escalation step.
|
|
410
|
+
* - `orchestrator`: when it is the recorded reviewer, when no reviewer was
|
|
411
|
+
* recorded (items that predate reviewer stamping — the orchestrator is the
|
|
412
|
+
* escalation reviewer), or once the review was escalated.
|
|
413
|
+
* - `team_lead`: only as the recorded reviewer, identified by session.
|
|
414
|
+
* - `system` (rejection only — the table keeps it off `verified`).
|
|
280
415
|
*
|
|
281
|
-
* @param
|
|
416
|
+
* @param item - The WorkItem under review
|
|
417
|
+
* @param actor - The normalised caller
|
|
418
|
+
* @returns A decision (never throws)
|
|
419
|
+
*/
|
|
420
|
+
function checkReviewer(item, actor) {
|
|
421
|
+
if (actor.role === 'owner' || actor.role === 'system')
|
|
422
|
+
return { allowed: true };
|
|
423
|
+
const reviewer = getWorkItemReviewer(item);
|
|
424
|
+
if (actor.session && item.target && actor.session === item.target) {
|
|
425
|
+
return { allowed: false, reason: 'self_review', detail: `${actor.session} is the worker on this item and cannot review its own work` };
|
|
426
|
+
}
|
|
427
|
+
if (actor.session && reviewer && actor.session === reviewer)
|
|
428
|
+
return { allowed: true };
|
|
429
|
+
if (actor.role === 'orchestrator') {
|
|
430
|
+
const escalated = !!item.metadata?.[REVIEW_ESCALATED_TO_ORC_KEY] || !!item.metadata?.[REVIEW_ESCALATED_TO_OWNER_KEY];
|
|
431
|
+
if (!reviewer || escalated)
|
|
432
|
+
return { allowed: true };
|
|
433
|
+
}
|
|
434
|
+
return {
|
|
435
|
+
allowed: false,
|
|
436
|
+
reason: 'not_reviewer',
|
|
437
|
+
detail: reviewer
|
|
438
|
+
? `only the reviewer (${reviewer}), the orchestrator after escalation, or the owner may render this verdict`
|
|
439
|
+
: 'no reviewer is recorded; only the orchestrator or the owner may render this verdict',
|
|
440
|
+
};
|
|
441
|
+
}
|
|
442
|
+
/**
|
|
443
|
+
* Decide whether `actor` may move `item` to status `to`.
|
|
444
|
+
*
|
|
445
|
+
* Deny by default (#813):
|
|
446
|
+
* 1. No actor → refused (`missing_actor`). There is no default role.
|
|
447
|
+
* 2. Edge not in {@link TRANSITION_PERMISSIONS} → refused for everyone
|
|
448
|
+
* (`unlisted_transition`).
|
|
449
|
+
* 3. Role not listed for the edge → refused (`role_not_permitted`).
|
|
450
|
+
* 4. Verdict edges ({@link VERDICT_TRANSITIONS}) also require the caller to
|
|
451
|
+
* be the item's reviewer, and never the worker itself.
|
|
452
|
+
*
|
|
453
|
+
* Checks permission only — state-machine legality is
|
|
454
|
+
* {@link isValidWorkItemTransition}'s job.
|
|
455
|
+
*
|
|
456
|
+
* @param item - The WorkItem (its current `status`, `target`, `metadata` are read)
|
|
282
457
|
* @param to - Desired next status
|
|
283
|
-
* @param
|
|
284
|
-
* @returns
|
|
458
|
+
* @param actorInput - The caller (object or bare role); undefined is refused
|
|
459
|
+
* @returns `{ allowed: true }` or the refusal reason and a readable detail
|
|
460
|
+
*
|
|
461
|
+
* @example
|
|
462
|
+
* ```typescript
|
|
463
|
+
* checkTransitionPermission(wi, 'verified', { role: 'team_lead', session: 'sam' });
|
|
464
|
+
* // → { allowed: true } only when wi.metadata.reviewer === 'sam'
|
|
465
|
+
* ```
|
|
285
466
|
*/
|
|
286
|
-
export function
|
|
287
|
-
|
|
288
|
-
|
|
289
|
-
|
|
290
|
-
|
|
467
|
+
export function checkTransitionPermission(item, to, actorInput) {
|
|
468
|
+
const actor = normalizeTransitionActor(actorInput);
|
|
469
|
+
const key = `${item.status}→${to}`;
|
|
470
|
+
if (!actor) {
|
|
471
|
+
return { allowed: false, reason: 'missing_actor', detail: `no actor supplied for ${key}` };
|
|
472
|
+
}
|
|
291
473
|
const allowed = TRANSITION_PERMISSIONS[key];
|
|
292
|
-
|
|
293
|
-
|
|
294
|
-
|
|
295
|
-
|
|
474
|
+
if (!allowed) {
|
|
475
|
+
return { allowed: false, reason: 'unlisted_transition', detail: `${key} is not in the transition permission table` };
|
|
476
|
+
}
|
|
477
|
+
if (!allowed.has(actor.role)) {
|
|
478
|
+
return { allowed: false, reason: 'role_not_permitted', detail: `role '${actor.role}' may not perform ${key}` };
|
|
479
|
+
}
|
|
480
|
+
if (VERDICT_TRANSITIONS.has(key))
|
|
481
|
+
return checkReviewer(item, actor);
|
|
482
|
+
return { allowed: true };
|
|
483
|
+
}
|
|
484
|
+
/**
|
|
485
|
+
* Boolean form of {@link checkTransitionPermission}.
|
|
486
|
+
*
|
|
487
|
+
* @param item - The WorkItem (its current status, target and metadata)
|
|
488
|
+
* @param to - Desired next status
|
|
489
|
+
* @param actor - The caller; undefined is refused
|
|
490
|
+
* @returns True if the actor may perform the transition
|
|
491
|
+
*/
|
|
492
|
+
export function isTransitionPermitted(item, to, actor) {
|
|
493
|
+
return checkTransitionPermission(item, to, actor).allowed;
|
|
494
|
+
}
|
|
495
|
+
/**
|
|
496
|
+
* Thrown when a transition is legal in the state machine but the actor may
|
|
497
|
+
* not take it. Controllers map it to HTTP 403.
|
|
498
|
+
*/
|
|
499
|
+
export class ForbiddenTransitionError extends Error {
|
|
500
|
+
/** Machine-readable refusal reason */
|
|
501
|
+
reason;
|
|
502
|
+
/**
|
|
503
|
+
* @param workItemId - The WorkItem the transition was attempted on
|
|
504
|
+
* @param from - Its current status
|
|
505
|
+
* @param to - The refused target status
|
|
506
|
+
* @param actor - Who attempted it
|
|
507
|
+
* @param decision - The refusal from {@link checkTransitionPermission}
|
|
508
|
+
*/
|
|
509
|
+
constructor(workItemId, from, to, actor, decision) {
|
|
510
|
+
super(`Forbidden transition for WorkItem ${workItemId}: actor='${describeTransitionActor(actor)}' ` +
|
|
511
|
+
`not permitted to perform ${from} → ${to} (${decision.reason}: ${decision.detail}).`);
|
|
512
|
+
this.name = 'ForbiddenTransitionError';
|
|
513
|
+
this.reason = decision.reason;
|
|
514
|
+
}
|
|
296
515
|
}
|
|
297
516
|
// ---------------------------------------------------------------------------
|
|
298
517
|
// Type Guards
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"work-item.types.js","sourceRoot":"","sources":["../../../../../../backend/src/types/v2/work-item.types.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"work-item.types.js","sourceRoot":"","sources":["../../../../../../backend/src/types/v2/work-item.types.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,61 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Secret environment variable guard
|
|
3
|
+
*
|
|
4
|
+
* Environment variables whose names mark them as secrets (API keys, tokens,
|
|
5
|
+
* passwords) must never be set by typing `export KEY="value"` into a
|
|
6
|
+
* terminal: the shell echoes the line, so the value lands in scrollback, in
|
|
7
|
+
* the persistent session log (~/.crewly/logs/sessions/) and in the
|
|
8
|
+
* terminal-output API. Secrets go into a session through its spawn
|
|
9
|
+
* environment instead (`createSession(..., { env })`).
|
|
10
|
+
*
|
|
11
|
+
* @module utils/secret-env
|
|
12
|
+
*/
|
|
13
|
+
/**
|
|
14
|
+
* Whether an environment variable name denotes a secret.
|
|
15
|
+
*
|
|
16
|
+
* @param key - Environment variable name
|
|
17
|
+
* @returns True for names like OPENAI_API_KEY, ANTHROPIC_API_KEY, GITHUB_TOKEN
|
|
18
|
+
*
|
|
19
|
+
* @example
|
|
20
|
+
* ```ts
|
|
21
|
+
* isSecretEnvKey('GEMINI_API_KEY'); // true
|
|
22
|
+
* isSecretEnvKey('CREWLY_SESSION_NAME'); // false
|
|
23
|
+
* ```
|
|
24
|
+
*/
|
|
25
|
+
export declare function isSecretEnvKey(key: string): boolean;
|
|
26
|
+
/**
|
|
27
|
+
* Throws when asked to type a secret into a terminal.
|
|
28
|
+
*
|
|
29
|
+
* The error names the variable only, never the value.
|
|
30
|
+
*
|
|
31
|
+
* @param key - Environment variable name about to be exported in a terminal
|
|
32
|
+
* @throws Error when `key` is a secret name (see isSecretEnvKey)
|
|
33
|
+
*/
|
|
34
|
+
export declare function assertNotSecretEnvKey(key: string): void;
|
|
35
|
+
/** A secret's variable name and value, for masking by value */
|
|
36
|
+
export interface SecretEnvValue {
|
|
37
|
+
/** Variable name, used in the mask */
|
|
38
|
+
name: string;
|
|
39
|
+
/** The secret value to mask wherever it appears */
|
|
40
|
+
value: string;
|
|
41
|
+
}
|
|
42
|
+
/**
|
|
43
|
+
* Collects the values of every secret-named variable in one or more env maps.
|
|
44
|
+
*
|
|
45
|
+
* Used to mask secrets by exact value, which catches secrets no pattern can
|
|
46
|
+
* recognise (a Slack signing secret is plain hex). Longest values come first
|
|
47
|
+
* so a value that contains another is masked whole.
|
|
48
|
+
*
|
|
49
|
+
* @param envs - Env maps to read (e.g. process.env and a session's spawn env)
|
|
50
|
+
* @returns Distinct secret values with their names, longest first
|
|
51
|
+
*/
|
|
52
|
+
export declare function collectSecretEnvValues(...envs: ReadonlyArray<Record<string, string | undefined> | undefined>): SecretEnvValue[];
|
|
53
|
+
/**
|
|
54
|
+
* Replaces every occurrence of the given secret values with `[REDACTED <NAME>]`.
|
|
55
|
+
*
|
|
56
|
+
* @param text - Text to mask
|
|
57
|
+
* @param secrets - Values to mask (see collectSecretEnvValues)
|
|
58
|
+
* @returns The text with every listed value masked
|
|
59
|
+
*/
|
|
60
|
+
export declare function redactSecretEnvValues(text: string, secrets: readonly SecretEnvValue[]): string;
|
|
61
|
+
//# sourceMappingURL=secret-env.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"secret-env.d.ts","sourceRoot":"","sources":["../../../../../backend/src/utils/secret-env.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AASH;;;;;;;;;;;GAWG;AACH,wBAAgB,cAAc,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAEnD;AAED;;;;;;;GAOG;AACH,wBAAgB,qBAAqB,CAAC,GAAG,EAAE,MAAM,GAAG,IAAI,CAQvD;AAED,+DAA+D;AAC/D,MAAM,WAAW,cAAc;IAC9B,sCAAsC;IACtC,IAAI,EAAE,MAAM,CAAC;IACb,mDAAmD;IACnD,KAAK,EAAE,MAAM,CAAC;CACd;AAKD;;;;;;;;;GASG;AACH,wBAAgB,sBAAsB,CACrC,GAAG,IAAI,EAAE,aAAa,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,SAAS,CAAC,GAAG,SAAS,CAAC,GACpE,cAAc,EAAE,CAWlB;AAED;;;;;;GAMG;AACH,wBAAgB,qBAAqB,CAAC,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,SAAS,cAAc,EAAE,GAAG,MAAM,CAM9F"}
|
|
@@ -0,0 +1,89 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Secret environment variable guard
|
|
3
|
+
*
|
|
4
|
+
* Environment variables whose names mark them as secrets (API keys, tokens,
|
|
5
|
+
* passwords) must never be set by typing `export KEY="value"` into a
|
|
6
|
+
* terminal: the shell echoes the line, so the value lands in scrollback, in
|
|
7
|
+
* the persistent session log (~/.crewly/logs/sessions/) and in the
|
|
8
|
+
* terminal-output API. Secrets go into a session through its spawn
|
|
9
|
+
* environment instead (`createSession(..., { env })`).
|
|
10
|
+
*
|
|
11
|
+
* @module utils/secret-env
|
|
12
|
+
*/
|
|
13
|
+
/**
|
|
14
|
+
* Name suffixes that mark an environment variable as secret. Matched
|
|
15
|
+
* case-insensitively at the end of the name, after `_` or at the start
|
|
16
|
+
* (so `API_KEY`, `OPENAI_API_KEY` and `GITHUB_TOKEN` match, `TOKENIZER` does not).
|
|
17
|
+
*/
|
|
18
|
+
const SECRET_ENV_NAME_RE = /(?:^|_)(?:API_KEY|KEY_SECRET|SECRET|SECRET_KEY|TOKEN|ACCESS_TOKEN|PASSWORD|PASSWD|PRIVATE_KEY)$/i;
|
|
19
|
+
/**
|
|
20
|
+
* Whether an environment variable name denotes a secret.
|
|
21
|
+
*
|
|
22
|
+
* @param key - Environment variable name
|
|
23
|
+
* @returns True for names like OPENAI_API_KEY, ANTHROPIC_API_KEY, GITHUB_TOKEN
|
|
24
|
+
*
|
|
25
|
+
* @example
|
|
26
|
+
* ```ts
|
|
27
|
+
* isSecretEnvKey('GEMINI_API_KEY'); // true
|
|
28
|
+
* isSecretEnvKey('CREWLY_SESSION_NAME'); // false
|
|
29
|
+
* ```
|
|
30
|
+
*/
|
|
31
|
+
export function isSecretEnvKey(key) {
|
|
32
|
+
return SECRET_ENV_NAME_RE.test(key);
|
|
33
|
+
}
|
|
34
|
+
/**
|
|
35
|
+
* Throws when asked to type a secret into a terminal.
|
|
36
|
+
*
|
|
37
|
+
* The error names the variable only, never the value.
|
|
38
|
+
*
|
|
39
|
+
* @param key - Environment variable name about to be exported in a terminal
|
|
40
|
+
* @throws Error when `key` is a secret name (see isSecretEnvKey)
|
|
41
|
+
*/
|
|
42
|
+
export function assertNotSecretEnvKey(key) {
|
|
43
|
+
if (isSecretEnvKey(key)) {
|
|
44
|
+
throw new Error(`Refusing to type secret environment variable ${key} into a terminal ` +
|
|
45
|
+
'(it would be echoed into scrollback and session logs). ' +
|
|
46
|
+
'Pass it in the session spawn environment: createSession(name, cwd, { env }).');
|
|
47
|
+
}
|
|
48
|
+
}
|
|
49
|
+
/** Values shorter than this are not masked: too likely to match ordinary text */
|
|
50
|
+
const MIN_MASKABLE_SECRET_LENGTH = 12;
|
|
51
|
+
/**
|
|
52
|
+
* Collects the values of every secret-named variable in one or more env maps.
|
|
53
|
+
*
|
|
54
|
+
* Used to mask secrets by exact value, which catches secrets no pattern can
|
|
55
|
+
* recognise (a Slack signing secret is plain hex). Longest values come first
|
|
56
|
+
* so a value that contains another is masked whole.
|
|
57
|
+
*
|
|
58
|
+
* @param envs - Env maps to read (e.g. process.env and a session's spawn env)
|
|
59
|
+
* @returns Distinct secret values with their names, longest first
|
|
60
|
+
*/
|
|
61
|
+
export function collectSecretEnvValues(...envs) {
|
|
62
|
+
const byValue = new Map();
|
|
63
|
+
for (const env of envs) {
|
|
64
|
+
if (!env)
|
|
65
|
+
continue;
|
|
66
|
+
for (const [name, value] of Object.entries(env)) {
|
|
67
|
+
if (value && value.length >= MIN_MASKABLE_SECRET_LENGTH && isSecretEnvKey(name) && !byValue.has(value)) {
|
|
68
|
+
byValue.set(value, name);
|
|
69
|
+
}
|
|
70
|
+
}
|
|
71
|
+
}
|
|
72
|
+
return Array.from(byValue, ([value, name]) => ({ name, value })).sort((a, b) => b.value.length - a.value.length);
|
|
73
|
+
}
|
|
74
|
+
/**
|
|
75
|
+
* Replaces every occurrence of the given secret values with `[REDACTED <NAME>]`.
|
|
76
|
+
*
|
|
77
|
+
* @param text - Text to mask
|
|
78
|
+
* @param secrets - Values to mask (see collectSecretEnvValues)
|
|
79
|
+
* @returns The text with every listed value masked
|
|
80
|
+
*/
|
|
81
|
+
export function redactSecretEnvValues(text, secrets) {
|
|
82
|
+
let out = text;
|
|
83
|
+
for (const { name, value } of secrets) {
|
|
84
|
+
if (out.includes(value))
|
|
85
|
+
out = out.split(value).join(`[REDACTED ${name}]`);
|
|
86
|
+
}
|
|
87
|
+
return out;
|
|
88
|
+
}
|
|
89
|
+
//# sourceMappingURL=secret-env.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"secret-env.js","sourceRoot":"","sources":["../../../../../backend/src/utils/secret-env.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AAEH;;;;GAIG;AACH,MAAM,kBAAkB,GAAG,kGAAkG,CAAC;AAE9H;;;;;;;;;;;GAWG;AACH,MAAM,UAAU,cAAc,CAAC,GAAW;IACzC,OAAO,kBAAkB,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;AACrC,CAAC;AAED;;;;;;;GAOG;AACH,MAAM,UAAU,qBAAqB,CAAC,GAAW;IAChD,IAAI,cAAc,CAAC,GAAG,CAAC,EAAE,CAAC;QACzB,MAAM,IAAI,KAAK,CACd,gDAAgD,GAAG,mBAAmB;YACrE,yDAAyD;YACzD,8EAA8E,CAC/E,CAAC;IACH,CAAC;AACF,CAAC;AAUD,iFAAiF;AACjF,MAAM,0BAA0B,GAAG,EAAE,CAAC;AAEtC;;;;;;;;;GASG;AACH,MAAM,UAAU,sBAAsB,CACrC,GAAG,IAAmE;IAEtE,MAAM,OAAO,GAAG,IAAI,GAAG,EAAkB,CAAC;IAC1C,KAAK,MAAM,GAAG,IAAI,IAAI,EAAE,CAAC;QACxB,IAAI,CAAC,GAAG;YAAE,SAAS;QACnB,KAAK,MAAM,CAAC,IAAI,EAAE,KAAK,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC;YACjD,IAAI,KAAK,IAAI,KAAK,CAAC,MAAM,IAAI,0BAA0B,IAAI,cAAc,CAAC,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,EAAE,CAAC;gBACxG,OAAO,CAAC,GAAG,CAAC,KAAK,EAAE,IAAI,CAAC,CAAC;YAC1B,CAAC;QACF,CAAC;IACF,CAAC;IACD,OAAO,KAAK,CAAC,IAAI,CAAC,OAAO,EAAE,CAAC,CAAC,KAAK,EAAE,IAAI,CAAC,EAAE,EAAE,CAAC,CAAC,EAAE,IAAI,EAAE,KAAK,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,MAAM,GAAG,CAAC,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;AAClH,CAAC;AAED;;;;;;GAMG;AACH,MAAM,UAAU,qBAAqB,CAAC,IAAY,EAAE,OAAkC;IACrF,IAAI,GAAG,GAAG,IAAI,CAAC;IACf,KAAK,MAAM,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,OAAO,EAAE,CAAC;QACvC,IAAI,GAAG,CAAC,QAAQ,CAAC,KAAK,CAAC;YAAE,GAAG,GAAG,GAAG,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC,aAAa,IAAI,GAAG,CAAC,CAAC;IAC5E,CAAC;IACD,OAAO,GAAG,CAAC;AACZ,CAAC"}
|
|
@@ -284,7 +284,7 @@ export declare function createTeamFromTemplate(template: TeamTemplate, runtimeTy
|
|
|
284
284
|
* - .crewly/
|
|
285
285
|
* - .crewly/docs/
|
|
286
286
|
* - .crewly/memory/
|
|
287
|
-
* - .crewly/
|
|
287
|
+
* - .crewly/tickets/ (the project backlog, see specs/2026-09-28-project-tickets.md)
|
|
288
288
|
* - .crewly/teams/
|
|
289
289
|
*
|
|
290
290
|
* If a template is provided, copies goals.md and team.json from the
|
|
@@ -44,7 +44,7 @@ import chalk from 'chalk';
|
|
|
44
44
|
import { checkSkillsInstalled, installAllSkills, countBundledSkills, } from '../utils/marketplace.js';
|
|
45
45
|
import { listTemplates, getTemplate, getTemplatesDir, listOnboardingStarters, getDefaultStarterTemplate, } from '../utils/templates.js';
|
|
46
46
|
import { CLI_CONSTANTS } from '../constants.js';
|
|
47
|
-
import { HARNESS_CONSTANTS } from '../../../backend/src/constants.js';
|
|
47
|
+
import { HARNESS_CONSTANTS, PROJECT_TICKET_CONSTANTS } from '../../../backend/src/constants.js';
|
|
48
48
|
import { createCliHarnessService, getBackendPort, isBackendRunning, localBackendUrl, pickLoginDriver, } from '../utils/harness-engine.js';
|
|
49
49
|
import { askReadline, createReadlineIO } from '../utils/prompt-io.js';
|
|
50
50
|
import { runHarnessSetup } from './harness-setup.js';
|
|
@@ -560,7 +560,7 @@ export function createTeamFromTemplate(template, runtimeType = HARNESS_CONSTANTS
|
|
|
560
560
|
* - .crewly/
|
|
561
561
|
* - .crewly/docs/
|
|
562
562
|
* - .crewly/memory/
|
|
563
|
-
* - .crewly/
|
|
563
|
+
* - .crewly/tickets/ (the project backlog, see specs/2026-09-28-project-tickets.md)
|
|
564
564
|
* - .crewly/teams/
|
|
565
565
|
*
|
|
566
566
|
* If a template is provided, copies goals.md and team.json from the
|
|
@@ -583,7 +583,7 @@ export function scaffoldCrewlyDirectory(projectDir = process.cwd(), template) {
|
|
|
583
583
|
}
|
|
584
584
|
try {
|
|
585
585
|
if (!alreadyExisted) {
|
|
586
|
-
const subdirs = ['docs', 'memory',
|
|
586
|
+
const subdirs = ['docs', 'memory', PROJECT_TICKET_CONSTANTS.DIR_NAME, 'teams'];
|
|
587
587
|
for (const subdir of subdirs) {
|
|
588
588
|
mkdirSync(join(crewlyDir, subdir), { recursive: true });
|
|
589
589
|
}
|