crewly 1.6.4 → 1.6.5
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/config/roles/architect/prompt.md +68 -2
- package/config/roles/auditor/prompt.md +68 -0
- package/config/roles/backend-developer/prompt.md +68 -2
- package/config/roles/content-strategist/prompt.md +73 -5
- package/config/roles/designer/prompt.md +69 -4
- package/config/roles/developer/prompt.md +231 -4
- package/config/roles/frontend-developer/prompt.md +68 -2
- package/config/roles/fullstack-dev/prompt.md +68 -2
- package/config/roles/generalist/prompt.md +68 -2
- package/config/roles/ops/prompt.md +69 -3
- package/config/roles/orchestrator/fragments/communication.md +27 -0
- package/config/roles/orchestrator/fragments/role-boundary.md +1 -1
- package/config/roles/orchestrator/prompt.md +215 -72
- package/config/roles/product-manager/prompt.md +140 -7
- package/config/roles/qa/prompt.md +70 -5
- package/config/roles/qa-engineer/prompt.md +70 -5
- package/config/roles/researcher/prompt.md +68 -2
- package/config/roles/sales/prompt.md +70 -5
- package/config/roles/support/prompt.md +69 -4
- package/config/roles/team-leader/prompt.md +87 -6
- package/config/roles/team-leader/role-boundaries.md +26 -0
- package/config/roles/team-leader/tl-addon.md +153 -1
- package/config/roles/tpm/prompt.md +68 -2
- package/config/roles/ux-designer/prompt.md +70 -5
- package/config/skills/_common/complete-body-shape.test.sh +249 -0
- package/config/skills/agent/core/accept-task/execute.sh +18 -15
- package/config/skills/agent/core/block-task/execute.sh +27 -9
- package/config/skills/agent/core/cancel-followup/SKILL.md +18 -0
- package/config/skills/agent/core/complete-task/execute.sh +45 -7
- package/config/skills/agent/core/create-task/execute.sh +40 -12
- package/config/skills/agent/core/get-my-active-work/SKILL.md +3 -1
- package/config/skills/agent/core/get-my-tasks/execute.sh +7 -5
- package/config/skills/agent/core/handoff-task/execute.sh +34 -48
- package/config/skills/agent/core/list-my-followups/SKILL.md +18 -0
- package/config/skills/agent/core/read-task/execute.sh +21 -8
- package/config/skills/agent/core/recall/SKILL.md +7 -0
- package/config/skills/agent/core/remember/SKILL.md +17 -1
- package/config/skills/agent/core/remember/execute.sh +5 -1
- package/config/skills/agent/core/reply-channel/SKILL.md +19 -0
- package/config/skills/agent/core/report-progress/execute.sh +39 -16
- package/config/skills/agent/core/report-status/execute.sh +36 -12
- package/config/skills/agent/core/save-working-state/execute.sh +17 -6
- package/config/skills/agent/core/schedule-followup/SKILL.md +19 -0
- package/config/skills/agent/core/send-message/SKILL.md +6 -0
- package/config/skills/agent/core/supersede-memory/SKILL.md +76 -0
- package/config/skills/agent/core/supersede-memory/execute.sh +108 -0
- package/config/skills/agent/core/watch-for-event/SKILL.md +19 -0
- package/config/skills/agent/onboarding/materialize-team/SKILL.md +94 -0
- package/config/skills/agent/onboarding/materialize-team/execute.sh +98 -0
- package/config/skills/agent/onboarding/recommend-team/SKILL.md +90 -0
- package/config/skills/agent/onboarding/recommend-team/execute.sh +96 -0
- package/config/skills/agent/xhs-article-to-image/SKILL.md +20 -0
- package/config/skills/auditor/score-task/SKILL.md +15 -0
- package/config/skills/orchestrator/assign-task/execute.sh +28 -4
- package/config/skills/orchestrator/cancel-all-schedules/SKILL.md +15 -1
- package/config/skills/orchestrator/complete-task/execute.sh +45 -4
- package/config/skills/orchestrator/delegate-task/SKILL.md +1 -0
- package/config/skills/orchestrator/delegate-task/execute.sh +41 -2
- package/config/skills/orchestrator/get-tasks/execute.sh +22 -18
- package/config/skills/orchestrator/list-schedules/SKILL.md +15 -1
- package/config/skills/orchestrator/update-team-member/SKILL.md +20 -0
- package/config/skills/team-leader/decompose-goal/execute.sh +51 -20
- package/config/skills/team-leader/delegate-task/execute.sh +67 -26
- package/config/skills/team-leader/delegate-task/execute.test.sh +117 -0
- package/config/skills/team-leader/verify-output/execute.sh +19 -20
- package/config/slack-app-manifest.json +2 -1
- package/config/sops/common/dev-process-tiers.md +181 -0
- package/config/sops/common/owner-facing-communication.md +131 -0
- package/config/souls/orchestrator.md +8 -0
- package/config/souls/team-leader.md +77 -0
- package/dist/backend/backend/src/controllers/active-work/active-work.controller.d.ts.map +1 -1
- package/dist/backend/backend/src/controllers/active-work/active-work.controller.js +4 -1
- package/dist/backend/backend/src/controllers/active-work/active-work.controller.js.map +1 -1
- package/dist/backend/backend/src/controllers/agent-stream/agent-stream.controller.d.ts +8 -1
- package/dist/backend/backend/src/controllers/agent-stream/agent-stream.controller.d.ts.map +1 -1
- package/dist/backend/backend/src/controllers/agent-stream/agent-stream.controller.js +30 -26
- package/dist/backend/backend/src/controllers/agent-stream/agent-stream.controller.js.map +1 -1
- package/dist/backend/backend/src/controllers/api.controller.d.ts +0 -9
- package/dist/backend/backend/src/controllers/api.controller.d.ts.map +1 -1
- package/dist/backend/backend/src/controllers/api.controller.js +4 -32
- package/dist/backend/backend/src/controllers/api.controller.js.map +1 -1
- package/dist/backend/backend/src/controllers/chat/chat.controller.d.ts.map +1 -1
- package/dist/backend/backend/src/controllers/chat/chat.controller.js +5 -2
- package/dist/backend/backend/src/controllers/chat/chat.controller.js.map +1 -1
- package/dist/backend/backend/src/controllers/chat-v2/chat-v2.controller.d.ts.map +1 -1
- package/dist/backend/backend/src/controllers/chat-v2/chat-v2.controller.js +5 -2
- package/dist/backend/backend/src/controllers/chat-v2/chat-v2.controller.js.map +1 -1
- package/dist/backend/backend/src/controllers/checklist/checklist.controller.d.ts +45 -0
- package/dist/backend/backend/src/controllers/checklist/checklist.controller.d.ts.map +1 -0
- package/dist/backend/backend/src/controllers/checklist/checklist.controller.js +122 -0
- package/dist/backend/backend/src/controllers/checklist/checklist.controller.js.map +1 -0
- package/dist/backend/backend/src/controllers/memory/memory.controller.d.ts +24 -0
- package/dist/backend/backend/src/controllers/memory/memory.controller.d.ts.map +1 -1
- package/dist/backend/backend/src/controllers/memory/memory.controller.js +69 -1
- package/dist/backend/backend/src/controllers/memory/memory.controller.js.map +1 -1
- package/dist/backend/backend/src/controllers/memory/memory.routes.d.ts +1 -0
- package/dist/backend/backend/src/controllers/memory/memory.routes.d.ts.map +1 -1
- package/dist/backend/backend/src/controllers/memory/memory.routes.js +3 -1
- package/dist/backend/backend/src/controllers/memory/memory.routes.js.map +1 -1
- package/dist/backend/backend/src/controllers/monitoring/terminal.controller.d.ts.map +1 -1
- package/dist/backend/backend/src/controllers/monitoring/terminal.controller.js +80 -5
- package/dist/backend/backend/src/controllers/monitoring/terminal.controller.js.map +1 -1
- package/dist/backend/backend/src/controllers/onboarding/onboarding.routes.d.ts +1 -0
- package/dist/backend/backend/src/controllers/onboarding/onboarding.routes.d.ts.map +1 -1
- package/dist/backend/backend/src/controllers/onboarding/onboarding.routes.js +30 -0
- package/dist/backend/backend/src/controllers/onboarding/onboarding.routes.js.map +1 -1
- package/dist/backend/backend/src/controllers/orchestrator-onboarding/orchestrator-onboarding.controller.d.ts +41 -0
- package/dist/backend/backend/src/controllers/orchestrator-onboarding/orchestrator-onboarding.controller.d.ts.map +1 -0
- package/dist/backend/backend/src/controllers/orchestrator-onboarding/orchestrator-onboarding.controller.js +213 -0
- package/dist/backend/backend/src/controllers/orchestrator-onboarding/orchestrator-onboarding.controller.js.map +1 -0
- package/dist/backend/backend/src/controllers/orchestrator-onboarding/orchestrator-onboarding.routes.d.ts +21 -0
- package/dist/backend/backend/src/controllers/orchestrator-onboarding/orchestrator-onboarding.routes.d.ts.map +1 -0
- package/dist/backend/backend/src/controllers/orchestrator-onboarding/orchestrator-onboarding.routes.js +27 -0
- package/dist/backend/backend/src/controllers/orchestrator-onboarding/orchestrator-onboarding.routes.js.map +1 -0
- package/dist/backend/backend/src/controllers/slack/slack.controller.d.ts.map +1 -1
- package/dist/backend/backend/src/controllers/slack/slack.controller.js +97 -0
- package/dist/backend/backend/src/controllers/slack/slack.controller.js.map +1 -1
- package/dist/backend/backend/src/controllers/task-management/in-progress-tasks.controller.d.ts +13 -3
- package/dist/backend/backend/src/controllers/task-management/in-progress-tasks.controller.d.ts.map +1 -1
- package/dist/backend/backend/src/controllers/task-management/in-progress-tasks.controller.js +29 -24
- package/dist/backend/backend/src/controllers/task-management/in-progress-tasks.controller.js.map +1 -1
- package/dist/backend/backend/src/controllers/task-management/tasks.controller.d.ts.map +1 -1
- package/dist/backend/backend/src/controllers/task-management/tasks.controller.js +61 -13
- package/dist/backend/backend/src/controllers/task-management/tasks.controller.js.map +1 -1
- package/dist/backend/backend/src/controllers/task-pool/task-pool.controller.d.ts +159 -7
- 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 +421 -37
- 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 +15 -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.map +1 -1
- package/dist/backend/backend/src/controllers/team/team.controller.js +221 -10
- package/dist/backend/backend/src/controllers/team/team.controller.js.map +1 -1
- package/dist/backend/backend/src/controllers/teams-backup/teams-backup.controller.d.ts +22 -0
- package/dist/backend/backend/src/controllers/teams-backup/teams-backup.controller.d.ts.map +1 -1
- package/dist/backend/backend/src/controllers/teams-backup/teams-backup.controller.js +92 -0
- package/dist/backend/backend/src/controllers/teams-backup/teams-backup.controller.js.map +1 -1
- package/dist/backend/backend/src/controllers/teams-backup/teams-backup.routes.d.ts.map +1 -1
- package/dist/backend/backend/src/controllers/teams-backup/teams-backup.routes.js +6 -2
- package/dist/backend/backend/src/controllers/teams-backup/teams-backup.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/index.d.ts +4 -1
- package/dist/backend/backend/src/index.d.ts.map +1 -1
- package/dist/backend/backend/src/index.js +291 -64
- package/dist/backend/backend/src/index.js.map +1 -1
- package/dist/backend/backend/src/models/Project.d.ts +2 -0
- package/dist/backend/backend/src/models/Project.d.ts.map +1 -1
- package/dist/backend/backend/src/models/Project.js +10 -1
- package/dist/backend/backend/src/models/Project.js.map +1 -1
- package/dist/backend/backend/src/routes/api.routes.d.ts.map +1 -1
- package/dist/backend/backend/src/routes/api.routes.js +4 -1
- package/dist/backend/backend/src/routes/api.routes.js.map +1 -1
- package/dist/backend/backend/src/routes/modules/task-management.routes.d.ts +15 -0
- package/dist/backend/backend/src/routes/modules/task-management.routes.d.ts.map +1 -1
- package/dist/backend/backend/src/routes/modules/task-management.routes.js +23 -43
- package/dist/backend/backend/src/routes/modules/task-management.routes.js.map +1 -1
- package/dist/backend/backend/src/scripts/cleanup-stale-pool.lib.d.ts +87 -0
- package/dist/backend/backend/src/scripts/cleanup-stale-pool.lib.d.ts.map +1 -0
- package/dist/backend/backend/src/scripts/cleanup-stale-pool.lib.js +116 -0
- package/dist/backend/backend/src/scripts/cleanup-stale-pool.lib.js.map +1 -0
- package/dist/backend/backend/src/services/agent/active-work-briefing.service.d.ts +46 -6
- package/dist/backend/backend/src/services/agent/active-work-briefing.service.d.ts.map +1 -1
- package/dist/backend/backend/src/services/agent/active-work-briefing.service.js +56 -13
- package/dist/backend/backend/src/services/agent/active-work-briefing.service.js.map +1 -1
- package/dist/backend/backend/src/services/agent/agent-registration.service.d.ts +9 -0
- package/dist/backend/backend/src/services/agent/agent-registration.service.d.ts.map +1 -1
- package/dist/backend/backend/src/services/agent/agent-registration.service.js +28 -3
- package/dist/backend/backend/src/services/agent/agent-registration.service.js.map +1 -1
- package/dist/backend/backend/src/services/agent/context-window-monitor.service.d.ts +31 -5
- package/dist/backend/backend/src/services/agent/context-window-monitor.service.d.ts.map +1 -1
- package/dist/backend/backend/src/services/agent/context-window-monitor.service.js +69 -29
- package/dist/backend/backend/src/services/agent/context-window-monitor.service.js.map +1 -1
- package/dist/backend/backend/src/services/agent/crewly-agent/agent-runner.service.d.ts.map +1 -1
- package/dist/backend/backend/src/services/agent/crewly-agent/agent-runner.service.js +113 -75
- package/dist/backend/backend/src/services/agent/crewly-agent/agent-runner.service.js.map +1 -1
- package/dist/backend/backend/src/services/agent/crewly-agent/auditor-tools.d.ts.map +1 -1
- package/dist/backend/backend/src/services/agent/crewly-agent/auditor-tools.js +5 -3
- package/dist/backend/backend/src/services/agent/crewly-agent/auditor-tools.js.map +1 -1
- package/dist/backend/backend/src/services/agent/crewly-agent/crewly-agent-runtime.service.d.ts +35 -0
- package/dist/backend/backend/src/services/agent/crewly-agent/crewly-agent-runtime.service.d.ts.map +1 -1
- package/dist/backend/backend/src/services/agent/crewly-agent/crewly-agent-runtime.service.js +127 -3
- package/dist/backend/backend/src/services/agent/crewly-agent/crewly-agent-runtime.service.js.map +1 -1
- package/dist/backend/backend/src/services/agent/crewly-agent/deepseek-sse-transform.d.ts +79 -0
- package/dist/backend/backend/src/services/agent/crewly-agent/deepseek-sse-transform.d.ts.map +1 -0
- package/dist/backend/backend/src/services/agent/crewly-agent/deepseek-sse-transform.js +145 -0
- package/dist/backend/backend/src/services/agent/crewly-agent/deepseek-sse-transform.js.map +1 -0
- package/dist/backend/backend/src/services/agent/crewly-agent/model-manager.d.ts +64 -9
- package/dist/backend/backend/src/services/agent/crewly-agent/model-manager.d.ts.map +1 -1
- package/dist/backend/backend/src/services/agent/crewly-agent/model-manager.js +125 -15
- package/dist/backend/backend/src/services/agent/crewly-agent/model-manager.js.map +1 -1
- package/dist/backend/backend/src/services/agent/crewly-agent/tool-registry.d.ts.map +1 -1
- package/dist/backend/backend/src/services/agent/crewly-agent/tool-registry.js +101 -33
- package/dist/backend/backend/src/services/agent/crewly-agent/tool-registry.js.map +1 -1
- package/dist/backend/backend/src/services/agent/crewly-agent/types.d.ts +76 -1
- package/dist/backend/backend/src/services/agent/crewly-agent/types.d.ts.map +1 -1
- package/dist/backend/backend/src/services/agent/crewly-agent/types.js +73 -1
- package/dist/backend/backend/src/services/agent/crewly-agent/types.js.map +1 -1
- package/dist/backend/backend/src/services/agent/runtime-exit-monitor.service.d.ts +5 -5
- package/dist/backend/backend/src/services/agent/runtime-exit-monitor.service.d.ts.map +1 -1
- package/dist/backend/backend/src/services/agent/runtime-exit-monitor.service.js +22 -8
- package/dist/backend/backend/src/services/agent/runtime-exit-monitor.service.js.map +1 -1
- package/dist/backend/backend/src/services/ai/prompt-builder.service.d.ts +10 -0
- 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 +160 -4
- package/dist/backend/backend/src/services/ai/prompt-builder.service.js.map +1 -1
- package/dist/backend/backend/src/services/ai/prompt-modules/communication.module.d.ts +37 -0
- package/dist/backend/backend/src/services/ai/prompt-modules/communication.module.d.ts.map +1 -1
- package/dist/backend/backend/src/services/ai/prompt-modules/communication.module.js +77 -3
- package/dist/backend/backend/src/services/ai/prompt-modules/communication.module.js.map +1 -1
- package/dist/backend/backend/src/services/ai/prompt-modules/decision-rights.module.d.ts +59 -0
- package/dist/backend/backend/src/services/ai/prompt-modules/decision-rights.module.d.ts.map +1 -0
- package/dist/backend/backend/src/services/ai/prompt-modules/decision-rights.module.js +87 -0
- package/dist/backend/backend/src/services/ai/prompt-modules/decision-rights.module.js.map +1 -0
- package/dist/backend/backend/src/services/ai/prompt-modules/default-execution-loop.module.d.ts +67 -0
- package/dist/backend/backend/src/services/ai/prompt-modules/default-execution-loop.module.d.ts.map +1 -0
- package/dist/backend/backend/src/services/ai/prompt-modules/default-execution-loop.module.js +84 -0
- package/dist/backend/backend/src/services/ai/prompt-modules/default-execution-loop.module.js.map +1 -0
- package/dist/backend/backend/src/services/ai/prompt-modules/index.d.ts +4 -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 +4 -0
- package/dist/backend/backend/src/services/ai/prompt-modules/index.js.map +1 -1
- package/dist/backend/backend/src/services/ai/prompt-modules/lazy-anti-patterns.module.d.ts +65 -0
- package/dist/backend/backend/src/services/ai/prompt-modules/lazy-anti-patterns.module.d.ts.map +1 -0
- package/dist/backend/backend/src/services/ai/prompt-modules/lazy-anti-patterns.module.js +79 -0
- package/dist/backend/backend/src/services/ai/prompt-modules/lazy-anti-patterns.module.js.map +1 -0
- package/dist/backend/backend/src/services/ai/prompt-modules/mission-context.module.d.ts +60 -0
- package/dist/backend/backend/src/services/ai/prompt-modules/mission-context.module.d.ts.map +1 -0
- package/dist/backend/backend/src/services/ai/prompt-modules/mission-context.module.js +104 -0
- package/dist/backend/backend/src/services/ai/prompt-modules/mission-context.module.js.map +1 -0
- 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 +45 -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 +16 -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/request-contract.module.d.ts +106 -0
- package/dist/backend/backend/src/services/ai/prompt-modules/request-contract.module.d.ts.map +1 -0
- package/dist/backend/backend/src/services/ai/prompt-modules/request-contract.module.js +167 -0
- package/dist/backend/backend/src/services/ai/prompt-modules/request-contract.module.js.map +1 -0
- package/dist/backend/backend/src/services/ai/prompt-modules/role-boundary.module.d.ts.map +1 -1
- package/dist/backend/backend/src/services/ai/prompt-modules/role-boundary.module.js +28 -0
- package/dist/backend/backend/src/services/ai/prompt-modules/role-boundary.module.js.map +1 -1
- package/dist/backend/backend/src/services/ai/prompt-modules/soul.module.d.ts +38 -6
- package/dist/backend/backend/src/services/ai/prompt-modules/soul.module.d.ts.map +1 -1
- package/dist/backend/backend/src/services/ai/prompt-modules/soul.module.js +73 -10
- package/dist/backend/backend/src/services/ai/prompt-modules/soul.module.js.map +1 -1
- package/dist/backend/backend/src/services/ai/prompt-modules/working-memory.module.d.ts +91 -0
- package/dist/backend/backend/src/services/ai/prompt-modules/working-memory.module.d.ts.map +1 -0
- package/dist/backend/backend/src/services/ai/prompt-modules/working-memory.module.js +136 -0
- package/dist/backend/backend/src/services/ai/prompt-modules/working-memory.module.js.map +1 -0
- package/dist/backend/backend/src/services/autonomous/index.d.ts +7 -3
- package/dist/backend/backend/src/services/autonomous/index.d.ts.map +1 -1
- package/dist/backend/backend/src/services/autonomous/index.js +7 -3
- package/dist/backend/backend/src/services/autonomous/index.js.map +1 -1
- package/dist/backend/backend/src/services/browser/browser-bridge.service.d.ts.map +1 -1
- package/dist/backend/backend/src/services/browser/browser-bridge.service.js +16 -22
- package/dist/backend/backend/src/services/browser/browser-bridge.service.js.map +1 -1
- package/dist/backend/backend/src/services/chat-v2/chat-v2.service.d.ts +13 -0
- package/dist/backend/backend/src/services/chat-v2/chat-v2.service.d.ts.map +1 -1
- package/dist/backend/backend/src/services/chat-v2/chat-v2.service.js +15 -0
- package/dist/backend/backend/src/services/chat-v2/chat-v2.service.js.map +1 -1
- package/dist/backend/backend/src/services/chat-v2/sqlite/chat-db.d.ts +11 -0
- package/dist/backend/backend/src/services/chat-v2/sqlite/chat-db.d.ts.map +1 -1
- package/dist/backend/backend/src/services/chat-v2/sqlite/chat-db.js +51 -19
- package/dist/backend/backend/src/services/chat-v2/sqlite/chat-db.js.map +1 -1
- package/dist/backend/backend/src/services/chat-v2/sqlite/message.store.d.ts +18 -0
- package/dist/backend/backend/src/services/chat-v2/sqlite/message.store.d.ts.map +1 -1
- package/dist/backend/backend/src/services/chat-v2/sqlite/message.store.js +23 -0
- package/dist/backend/backend/src/services/chat-v2/sqlite/message.store.js.map +1 -1
- package/dist/backend/backend/src/services/core/config.service.d.ts.map +1 -1
- package/dist/backend/backend/src/services/core/config.service.js +8 -1
- package/dist/backend/backend/src/services/core/config.service.js.map +1 -1
- package/dist/backend/backend/src/services/core/crewly-home.utils.d.ts +51 -0
- package/dist/backend/backend/src/services/core/crewly-home.utils.d.ts.map +1 -0
- package/dist/backend/backend/src/services/core/crewly-home.utils.js +59 -0
- package/dist/backend/backend/src/services/core/crewly-home.utils.js.map +1 -0
- package/dist/backend/backend/src/services/core/state-invariant.types.d.ts +53 -0
- package/dist/backend/backend/src/services/core/state-invariant.types.d.ts.map +1 -0
- package/dist/backend/backend/src/services/core/state-invariant.types.js +61 -0
- package/dist/backend/backend/src/services/core/state-invariant.types.js.map +1 -0
- package/dist/backend/backend/src/services/core/storage.service.d.ts +20 -0
- package/dist/backend/backend/src/services/core/storage.service.d.ts.map +1 -1
- package/dist/backend/backend/src/services/core/storage.service.js +96 -8
- package/dist/backend/backend/src/services/core/storage.service.js.map +1 -1
- package/dist/backend/backend/src/services/core/teams-backup.service.d.ts +94 -4
- package/dist/backend/backend/src/services/core/teams-backup.service.d.ts.map +1 -1
- package/dist/backend/backend/src/services/core/teams-backup.service.js +172 -10
- package/dist/backend/backend/src/services/core/teams-backup.service.js.map +1 -1
- package/dist/backend/backend/src/services/index.d.ts +0 -2
- package/dist/backend/backend/src/services/index.d.ts.map +1 -1
- package/dist/backend/backend/src/services/index.js +0 -2
- package/dist/backend/backend/src/services/index.js.map +1 -1
- package/dist/backend/backend/src/services/intent-task/intent-classifier.fixture.d.ts +78 -0
- package/dist/backend/backend/src/services/intent-task/intent-classifier.fixture.d.ts.map +1 -0
- package/dist/backend/backend/src/services/intent-task/intent-classifier.fixture.js +209 -0
- package/dist/backend/backend/src/services/intent-task/intent-classifier.fixture.js.map +1 -0
- package/dist/backend/backend/src/services/intent-task/intent-classifier.rules.d.ts +331 -0
- package/dist/backend/backend/src/services/intent-task/intent-classifier.rules.d.ts.map +1 -0
- package/dist/backend/backend/src/services/intent-task/intent-classifier.rules.js +413 -0
- package/dist/backend/backend/src/services/intent-task/intent-classifier.rules.js.map +1 -0
- package/dist/backend/backend/src/services/intent-task/intent-task.service.d.ts.map +1 -1
- package/dist/backend/backend/src/services/intent-task/intent-task.service.js +13 -4
- package/dist/backend/backend/src/services/intent-task/intent-task.service.js.map +1 -1
- package/dist/backend/backend/src/services/knowledge/fts5-index.service.d.ts.map +1 -1
- package/dist/backend/backend/src/services/knowledge/fts5-index.service.js +18 -13
- package/dist/backend/backend/src/services/knowledge/fts5-index.service.js.map +1 -1
- package/dist/backend/backend/src/services/knowledge/fts5-query-sanitizer.d.ts +102 -0
- package/dist/backend/backend/src/services/knowledge/fts5-query-sanitizer.d.ts.map +1 -0
- package/dist/backend/backend/src/services/knowledge/fts5-query-sanitizer.js +118 -0
- package/dist/backend/backend/src/services/knowledge/fts5-query-sanitizer.js.map +1 -0
- package/dist/backend/backend/src/services/knowledge/vector-store.service.d.ts.map +1 -1
- package/dist/backend/backend/src/services/knowledge/vector-store.service.js +11 -15
- package/dist/backend/backend/src/services/knowledge/vector-store.service.js.map +1 -1
- package/dist/backend/backend/src/services/memory/agent-memory.service.d.ts +20 -0
- package/dist/backend/backend/src/services/memory/agent-memory.service.d.ts.map +1 -1
- package/dist/backend/backend/src/services/memory/agent-memory.service.js +27 -2
- package/dist/backend/backend/src/services/memory/agent-memory.service.js.map +1 -1
- package/dist/backend/backend/src/services/memory/memory-supersession.service.d.ts +104 -0
- package/dist/backend/backend/src/services/memory/memory-supersession.service.d.ts.map +1 -0
- package/dist/backend/backend/src/services/memory/memory-supersession.service.js +127 -0
- package/dist/backend/backend/src/services/memory/memory-supersession.service.js.map +1 -0
- package/dist/backend/backend/src/services/memory/memory.service.d.ts +48 -17
- package/dist/backend/backend/src/services/memory/memory.service.d.ts.map +1 -1
- package/dist/backend/backend/src/services/memory/memory.service.js +65 -35
- package/dist/backend/backend/src/services/memory/memory.service.js.map +1 -1
- package/dist/backend/backend/src/services/memory/mission-context.service.d.ts +168 -0
- package/dist/backend/backend/src/services/memory/mission-context.service.d.ts.map +1 -0
- package/dist/backend/backend/src/services/memory/mission-context.service.js +365 -0
- package/dist/backend/backend/src/services/memory/mission-context.service.js.map +1 -0
- package/dist/backend/backend/src/services/memory/role-knowledge-eligibility.d.ts +138 -0
- package/dist/backend/backend/src/services/memory/role-knowledge-eligibility.d.ts.map +1 -0
- package/dist/backend/backend/src/services/memory/role-knowledge-eligibility.js +183 -0
- package/dist/backend/backend/src/services/memory/role-knowledge-eligibility.js.map +1 -0
- package/dist/backend/backend/src/services/memory/vector-store.service.d.ts.map +1 -1
- package/dist/backend/backend/src/services/memory/vector-store.service.js +7 -11
- package/dist/backend/backend/src/services/memory/vector-store.service.js.map +1 -1
- package/dist/backend/backend/src/services/memory/working-memory.service.d.ts +232 -0
- package/dist/backend/backend/src/services/memory/working-memory.service.d.ts.map +1 -0
- package/dist/backend/backend/src/services/memory/working-memory.service.js +417 -0
- package/dist/backend/backend/src/services/memory/working-memory.service.js.map +1 -0
- package/dist/backend/backend/src/services/messaging/queue-processor.service.d.ts.map +1 -1
- package/dist/backend/backend/src/services/messaging/queue-processor.service.js +23 -2
- package/dist/backend/backend/src/services/messaging/queue-processor.service.js.map +1 -1
- package/dist/backend/backend/src/services/monitoring/activity-monitor.service.js +2 -2
- package/dist/backend/backend/src/services/monitoring/activity-monitor.service.js.map +1 -1
- package/dist/backend/backend/src/services/monitoring/team-activity-websocket.service.d.ts +27 -7
- package/dist/backend/backend/src/services/monitoring/team-activity-websocket.service.d.ts.map +1 -1
- package/dist/backend/backend/src/services/monitoring/team-activity-websocket.service.js +66 -27
- package/dist/backend/backend/src/services/monitoring/team-activity-websocket.service.js.map +1 -1
- package/dist/backend/backend/src/services/monitoring/teams-json-watcher.service.d.ts.map +1 -1
- package/dist/backend/backend/src/services/monitoring/teams-json-watcher.service.js +2 -2
- package/dist/backend/backend/src/services/monitoring/teams-json-watcher.service.js.map +1 -1
- package/dist/backend/backend/src/services/observability/agent-behavior-log.service.d.ts +132 -0
- package/dist/backend/backend/src/services/observability/agent-behavior-log.service.d.ts.map +1 -0
- package/dist/backend/backend/src/services/observability/agent-behavior-log.service.js +284 -0
- package/dist/backend/backend/src/services/observability/agent-behavior-log.service.js.map +1 -0
- package/dist/backend/backend/src/services/observability/agent-behavior-log.singleton.d.ts +70 -0
- package/dist/backend/backend/src/services/observability/agent-behavior-log.singleton.d.ts.map +1 -0
- package/dist/backend/backend/src/services/observability/agent-behavior-log.singleton.js +121 -0
- package/dist/backend/backend/src/services/observability/agent-behavior-log.singleton.js.map +1 -0
- package/dist/backend/backend/src/services/observability/agent-behavior-log.types.d.ts +130 -0
- package/dist/backend/backend/src/services/observability/agent-behavior-log.types.d.ts.map +1 -0
- package/dist/backend/backend/src/services/observability/agent-behavior-log.types.js +48 -0
- package/dist/backend/backend/src/services/observability/agent-behavior-log.types.js.map +1 -0
- package/dist/backend/backend/src/services/observability/observability-db.d.ts +84 -0
- package/dist/backend/backend/src/services/observability/observability-db.d.ts.map +1 -0
- package/dist/backend/backend/src/services/observability/observability-db.js +165 -0
- package/dist/backend/backend/src/services/observability/observability-db.js.map +1 -0
- package/dist/backend/backend/src/services/onboarding/onboarding.service.d.ts +22 -0
- package/dist/backend/backend/src/services/onboarding/onboarding.service.d.ts.map +1 -1
- package/dist/backend/backend/src/services/onboarding/onboarding.service.js +36 -0
- package/dist/backend/backend/src/services/onboarding/onboarding.service.js.map +1 -1
- package/dist/backend/backend/src/services/onboarding/onboarding.types.d.ts +21 -2
- package/dist/backend/backend/src/services/onboarding/onboarding.types.d.ts.map +1 -1
- package/dist/backend/backend/src/services/orchestrator/improvement-marker.service.d.ts.map +1 -1
- package/dist/backend/backend/src/services/orchestrator/improvement-marker.service.js +12 -3
- package/dist/backend/backend/src/services/orchestrator/improvement-marker.service.js.map +1 -1
- package/dist/backend/backend/src/services/orchestrator/onboarding/materialize-team.d.ts +108 -0
- package/dist/backend/backend/src/services/orchestrator/onboarding/materialize-team.d.ts.map +1 -0
- package/dist/backend/backend/src/services/orchestrator/onboarding/materialize-team.js +165 -0
- package/dist/backend/backend/src/services/orchestrator/onboarding/materialize-team.js.map +1 -0
- package/dist/backend/backend/src/services/orchestrator/onboarding/recommend-team.d.ts +114 -0
- package/dist/backend/backend/src/services/orchestrator/onboarding/recommend-team.d.ts.map +1 -0
- package/dist/backend/backend/src/services/orchestrator/onboarding/recommend-team.js +299 -0
- package/dist/backend/backend/src/services/orchestrator/onboarding/recommend-team.js.map +1 -0
- package/dist/backend/backend/src/services/orchestrator/onboarding-bootstrap.service.d.ts +128 -0
- package/dist/backend/backend/src/services/orchestrator/onboarding-bootstrap.service.d.ts.map +1 -0
- package/dist/backend/backend/src/services/orchestrator/onboarding-bootstrap.service.js +195 -0
- package/dist/backend/backend/src/services/orchestrator/onboarding-bootstrap.service.js.map +1 -0
- package/dist/backend/backend/src/services/orchestrator/onboarding-mode-loader.d.ts +66 -0
- package/dist/backend/backend/src/services/orchestrator/onboarding-mode-loader.d.ts.map +1 -0
- package/dist/backend/backend/src/services/orchestrator/onboarding-mode-loader.js +145 -0
- package/dist/backend/backend/src/services/orchestrator/onboarding-mode-loader.js.map +1 -0
- package/dist/backend/backend/src/services/orchestrator/onboarding-mode.skill-allowlist.d.ts +59 -0
- package/dist/backend/backend/src/services/orchestrator/onboarding-mode.skill-allowlist.d.ts.map +1 -0
- package/dist/backend/backend/src/services/orchestrator/onboarding-mode.skill-allowlist.js +68 -0
- package/dist/backend/backend/src/services/orchestrator/onboarding-mode.skill-allowlist.js.map +1 -0
- package/dist/backend/backend/src/services/orchestrator/prompts/onboarding-mode.prompt.d.ts +67 -0
- package/dist/backend/backend/src/services/orchestrator/prompts/onboarding-mode.prompt.d.ts.map +1 -0
- package/dist/backend/backend/src/services/orchestrator/prompts/onboarding-mode.prompt.js +290 -0
- package/dist/backend/backend/src/services/orchestrator/prompts/onboarding-mode.prompt.js.map +1 -0
- package/dist/backend/backend/src/services/orchestrator/state-persistence.service.d.ts +23 -1
- package/dist/backend/backend/src/services/orchestrator/state-persistence.service.d.ts.map +1 -1
- package/dist/backend/backend/src/services/orchestrator/state-persistence.service.js +64 -1
- package/dist/backend/backend/src/services/orchestrator/state-persistence.service.js.map +1 -1
- package/dist/backend/backend/src/services/project/active-projects.service.d.ts.map +1 -1
- package/dist/backend/backend/src/services/project/active-projects.service.js +2 -2
- package/dist/backend/backend/src/services/project/active-projects.service.js.map +1 -1
- package/dist/backend/backend/src/services/project/task-tracking.service.d.ts.map +1 -1
- package/dist/backend/backend/src/services/project/task-tracking.service.js +2 -2
- package/dist/backend/backend/src/services/project/task-tracking.service.js.map +1 -1
- package/dist/backend/backend/src/services/prompt/prompt-generator.service.d.ts.map +1 -1
- package/dist/backend/backend/src/services/prompt/prompt-generator.service.js +2 -2
- package/dist/backend/backend/src/services/prompt/prompt-generator.service.js.map +1 -1
- package/dist/backend/backend/src/services/reconciler/reconcile-rules.d.ts +51 -5
- package/dist/backend/backend/src/services/reconciler/reconcile-rules.d.ts.map +1 -1
- package/dist/backend/backend/src/services/reconciler/reconcile-rules.js +162 -15
- 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 +15 -2
- 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 +153 -11
- package/dist/backend/backend/src/services/reconciler/reconciler-data-provider.js.map +1 -1
- package/dist/backend/backend/src/services/session/session-handoff.service.d.ts +31 -18
- package/dist/backend/backend/src/services/session/session-handoff.service.d.ts.map +1 -1
- package/dist/backend/backend/src/services/session/session-handoff.service.js +73 -80
- package/dist/backend/backend/src/services/session/session-handoff.service.js.map +1 -1
- package/dist/backend/backend/src/services/session/session-state-persistence.d.ts.map +1 -1
- package/dist/backend/backend/src/services/session/session-state-persistence.js +15 -4
- package/dist/backend/backend/src/services/session/session-state-persistence.js.map +1 -1
- package/dist/backend/backend/src/services/settings/settings.service.d.ts.map +1 -1
- package/dist/backend/backend/src/services/settings/settings.service.js +25 -0
- package/dist/backend/backend/src/services/settings/settings.service.js.map +1 -1
- package/dist/backend/backend/src/services/skill/skill-catalog.service.d.ts +14 -3
- package/dist/backend/backend/src/services/skill/skill-catalog.service.d.ts.map +1 -1
- package/dist/backend/backend/src/services/skill/skill-catalog.service.js +28 -3
- package/dist/backend/backend/src/services/skill/skill-catalog.service.js.map +1 -1
- package/dist/backend/backend/src/services/slack/cross-machine-message.service.d.ts.map +1 -1
- package/dist/backend/backend/src/services/slack/cross-machine-message.service.js +13 -18
- package/dist/backend/backend/src/services/slack/cross-machine-message.service.js.map +1 -1
- package/dist/backend/backend/src/services/slack/slack-orchestrator-bridge.d.ts +45 -0
- package/dist/backend/backend/src/services/slack/slack-orchestrator-bridge.d.ts.map +1 -1
- package/dist/backend/backend/src/services/slack/slack-orchestrator-bridge.js +202 -19
- package/dist/backend/backend/src/services/slack/slack-orchestrator-bridge.js.map +1 -1
- package/dist/backend/backend/src/services/slack/slack.service.d.ts.map +1 -1
- package/dist/backend/backend/src/services/slack/slack.service.js +21 -0
- package/dist/backend/backend/src/services/slack/slack.service.js.map +1 -1
- package/dist/backend/backend/src/services/task-pool/pool-storage.d.ts +15 -1
- package/dist/backend/backend/src/services/task-pool/pool-storage.d.ts.map +1 -1
- package/dist/backend/backend/src/services/task-pool/pool-storage.js +31 -8
- package/dist/backend/backend/src/services/task-pool/pool-storage.js.map +1 -1
- package/dist/backend/backend/src/services/task-pool/task-pool.service.d.ts +183 -0
- 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 +404 -8
- package/dist/backend/backend/src/services/task-pool/task-pool.service.js.map +1 -1
- package/dist/backend/backend/src/services/v3/agent-auto-claim.service.d.ts +14 -1
- 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 +128 -17
- package/dist/backend/backend/src/services/v3/agent-auto-claim.service.js.map +1 -1
- package/dist/backend/backend/src/services/v3/cascade-request-status.d.ts +95 -0
- package/dist/backend/backend/src/services/v3/cascade-request-status.d.ts.map +1 -0
- package/dist/backend/backend/src/services/v3/cascade-request-status.js +147 -0
- package/dist/backend/backend/src/services/v3/cascade-request-status.js.map +1 -0
- 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 +42 -0
- package/dist/backend/backend/src/services/v3/escalation-router.service.js.map +1 -1
- package/dist/backend/backend/src/services/v3/mission-executor.service.d.ts.map +1 -1
- package/dist/backend/backend/src/services/v3/mission-executor.service.js +16 -4
- package/dist/backend/backend/src/services/v3/mission-executor.service.js.map +1 -1
- package/dist/backend/backend/src/services/v3/request-cascade.subscriber.d.ts +87 -0
- package/dist/backend/backend/src/services/v3/request-cascade.subscriber.d.ts.map +1 -0
- package/dist/backend/backend/src/services/v3/request-cascade.subscriber.js +152 -0
- package/dist/backend/backend/src/services/v3/request-cascade.subscriber.js.map +1 -0
- package/dist/backend/backend/src/services/v3/request-decompose.subscriber.d.ts +253 -0
- package/dist/backend/backend/src/services/v3/request-decompose.subscriber.d.ts.map +1 -0
- package/dist/backend/backend/src/services/v3/request-decompose.subscriber.js +476 -0
- package/dist/backend/backend/src/services/v3/request-decompose.subscriber.js.map +1 -0
- package/dist/backend/backend/src/services/v3/request-sla.subscriber.d.ts +55 -0
- 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 +257 -20
- 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 +204 -0
- package/dist/backend/backend/src/services/v3/request-status-update.subscriber.d.ts.map +1 -0
- package/dist/backend/backend/src/services/v3/request-status-update.subscriber.js +575 -0
- package/dist/backend/backend/src/services/v3/request-status-update.subscriber.js.map +1 -0
- package/dist/backend/backend/src/services/v3/request.service.d.ts +107 -0
- package/dist/backend/backend/src/services/v3/request.service.d.ts.map +1 -1
- package/dist/backend/backend/src/services/v3/request.service.js +155 -2
- package/dist/backend/backend/src/services/v3/request.service.js.map +1 -1
- package/dist/backend/backend/src/services/v3/trigger-engine.service.d.ts +69 -1
- package/dist/backend/backend/src/services/v3/trigger-engine.service.d.ts.map +1 -1
- package/dist/backend/backend/src/services/v3/trigger-engine.service.js +157 -4
- package/dist/backend/backend/src/services/v3/trigger-engine.service.js.map +1 -1
- package/dist/backend/backend/src/services/v3/v3-data.service.d.ts +50 -26
- 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 +126 -161
- package/dist/backend/backend/src/services/v3/v3-data.service.js.map +1 -1
- package/dist/backend/backend/src/services/v3/work-item-projection.d.ts +40 -0
- package/dist/backend/backend/src/services/v3/work-item-projection.d.ts.map +1 -0
- package/dist/backend/backend/src/services/v3/work-item-projection.js +115 -0
- package/dist/backend/backend/src/services/v3/work-item-projection.js.map +1 -0
- package/dist/backend/backend/src/services/v3/workitem-dispatch.subscriber.d.ts +121 -0
- package/dist/backend/backend/src/services/v3/workitem-dispatch.subscriber.d.ts.map +1 -0
- package/dist/backend/backend/src/services/v3/workitem-dispatch.subscriber.js +268 -0
- package/dist/backend/backend/src/services/v3/workitem-dispatch.subscriber.js.map +1 -0
- package/dist/backend/backend/src/services/whatsapp/whatsapp.service.d.ts.map +1 -1
- package/dist/backend/backend/src/services/whatsapp/whatsapp.service.js +11 -2
- package/dist/backend/backend/src/services/whatsapp/whatsapp.service.js.map +1 -1
- package/dist/backend/backend/src/services/workflow/scheduler.service.d.ts.map +1 -1
- package/dist/backend/backend/src/services/workflow/scheduler.service.js +68 -14
- package/dist/backend/backend/src/services/workflow/scheduler.service.js.map +1 -1
- 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 +12 -0
- package/dist/backend/backend/src/types/event-bus.types.js.map +1 -1
- package/dist/backend/backend/src/types/index.d.ts +11 -1
- package/dist/backend/backend/src/types/index.d.ts.map +1 -1
- package/dist/backend/backend/src/types/index.js +0 -2
- package/dist/backend/backend/src/types/index.js.map +1 -1
- package/dist/backend/backend/src/types/intent-task.types.d.ts +22 -3
- package/dist/backend/backend/src/types/intent-task.types.d.ts.map +1 -1
- package/dist/backend/backend/src/types/intent-task.types.js +201 -40
- package/dist/backend/backend/src/types/intent-task.types.js.map +1 -1
- package/dist/backend/backend/src/types/memory.types.d.ts +53 -0
- package/dist/backend/backend/src/types/memory.types.d.ts.map +1 -1
- package/dist/backend/backend/src/types/memory.types.js.map +1 -1
- package/dist/backend/backend/src/types/orchestrator-state.types.d.ts +49 -0
- package/dist/backend/backend/src/types/orchestrator-state.types.d.ts.map +1 -1
- package/dist/backend/backend/src/types/orchestrator-state.types.js +27 -0
- package/dist/backend/backend/src/types/orchestrator-state.types.js.map +1 -1
- package/dist/backend/backend/src/types/settings.types.d.ts +38 -2
- package/dist/backend/backend/src/types/settings.types.d.ts.map +1 -1
- package/dist/backend/backend/src/types/settings.types.js +16 -2
- package/dist/backend/backend/src/types/settings.types.js.map +1 -1
- package/dist/backend/backend/src/types/v2/request.types.d.ts +5 -1
- package/dist/backend/backend/src/types/v2/request.types.d.ts.map +1 -1
- package/dist/backend/backend/src/types/v2/request.types.js +2 -2
- package/dist/backend/backend/src/types/v2/request.types.js.map +1 -1
- package/dist/backend/backend/src/types/v2/work-item.types.d.ts +40 -1
- 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 +20 -0
- package/dist/backend/backend/src/types/v2/work-item.types.js.map +1 -1
- package/dist/backend/backend/src/utils/esm-require.utils.d.ts +111 -0
- package/dist/backend/backend/src/utils/esm-require.utils.d.ts.map +1 -0
- package/dist/backend/backend/src/utils/esm-require.utils.js +124 -0
- package/dist/backend/backend/src/utils/esm-require.utils.js.map +1 -0
- package/dist/backend/backend/src/utils/integrity-guarded-write.utils.d.ts +119 -0
- package/dist/backend/backend/src/utils/integrity-guarded-write.utils.d.ts.map +1 -0
- package/dist/backend/backend/src/utils/integrity-guarded-write.utils.js +212 -0
- package/dist/backend/backend/src/utils/integrity-guarded-write.utils.js.map +1 -0
- package/dist/backend/backend/src/utils/native-binding.utils.d.ts +128 -0
- package/dist/backend/backend/src/utils/native-binding.utils.d.ts.map +1 -0
- package/dist/backend/backend/src/utils/native-binding.utils.js +206 -0
- package/dist/backend/backend/src/utils/native-binding.utils.js.map +1 -0
- package/dist/backend/backend/src/utils/node-require.utils.d.ts +104 -0
- package/dist/backend/backend/src/utils/node-require.utils.d.ts.map +1 -0
- package/dist/backend/backend/src/utils/node-require.utils.js +111 -0
- package/dist/backend/backend/src/utils/node-require.utils.js.map +1 -0
- package/dist/cli/backend/src/models/Project.d.ts +2 -0
- package/dist/cli/backend/src/models/Project.d.ts.map +1 -1
- package/dist/cli/backend/src/models/Project.js +10 -1
- package/dist/cli/backend/src/models/Project.js.map +1 -1
- package/dist/cli/backend/src/services/ai/prompt-modules/prompt-module.interface.d.ts +16 -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/core/config.service.d.ts.map +1 -1
- package/dist/cli/backend/src/services/core/config.service.js +8 -1
- package/dist/cli/backend/src/services/core/config.service.js.map +1 -1
- package/dist/cli/backend/src/services/core/crewly-home.utils.d.ts +51 -0
- package/dist/cli/backend/src/services/core/crewly-home.utils.d.ts.map +1 -0
- package/dist/cli/backend/src/services/core/crewly-home.utils.js +59 -0
- package/dist/cli/backend/src/services/core/crewly-home.utils.js.map +1 -0
- package/dist/cli/backend/src/services/core/state-invariant.types.d.ts +53 -0
- package/dist/cli/backend/src/services/core/state-invariant.types.d.ts.map +1 -0
- package/dist/cli/backend/src/services/core/state-invariant.types.js +61 -0
- package/dist/cli/backend/src/services/core/state-invariant.types.js.map +1 -0
- package/dist/cli/backend/src/services/core/storage.service.d.ts +20 -0
- package/dist/cli/backend/src/services/core/storage.service.d.ts.map +1 -1
- package/dist/cli/backend/src/services/core/storage.service.js +96 -8
- package/dist/cli/backend/src/services/core/storage.service.js.map +1 -1
- package/dist/cli/backend/src/services/core/teams-backup.service.d.ts +94 -4
- package/dist/cli/backend/src/services/core/teams-backup.service.d.ts.map +1 -1
- package/dist/cli/backend/src/services/core/teams-backup.service.js +172 -10
- package/dist/cli/backend/src/services/core/teams-backup.service.js.map +1 -1
- package/dist/cli/backend/src/services/event-bus/event-bus.service.d.ts +245 -0
- package/dist/cli/backend/src/services/event-bus/event-bus.service.d.ts.map +1 -0
- package/dist/cli/backend/src/services/event-bus/event-bus.service.js +639 -0
- package/dist/cli/backend/src/services/event-bus/event-bus.service.js.map +1 -0
- package/dist/cli/backend/src/services/knowledge/fts5-index.service.d.ts.map +1 -1
- package/dist/cli/backend/src/services/knowledge/fts5-index.service.js +18 -13
- package/dist/cli/backend/src/services/knowledge/fts5-index.service.js.map +1 -1
- package/dist/cli/backend/src/services/knowledge/fts5-query-sanitizer.d.ts +102 -0
- package/dist/cli/backend/src/services/knowledge/fts5-query-sanitizer.d.ts.map +1 -0
- package/dist/cli/backend/src/services/knowledge/fts5-query-sanitizer.js +118 -0
- package/dist/cli/backend/src/services/knowledge/fts5-query-sanitizer.js.map +1 -0
- package/dist/cli/backend/src/services/knowledge/vector-store.service.d.ts.map +1 -1
- package/dist/cli/backend/src/services/knowledge/vector-store.service.js +11 -15
- package/dist/cli/backend/src/services/knowledge/vector-store.service.js.map +1 -1
- package/dist/cli/backend/src/services/memory/agent-memory.service.d.ts +20 -0
- package/dist/cli/backend/src/services/memory/agent-memory.service.d.ts.map +1 -1
- package/dist/cli/backend/src/services/memory/agent-memory.service.js +27 -2
- package/dist/cli/backend/src/services/memory/agent-memory.service.js.map +1 -1
- package/dist/cli/backend/src/services/memory/memory.service.d.ts +48 -17
- package/dist/cli/backend/src/services/memory/memory.service.d.ts.map +1 -1
- package/dist/cli/backend/src/services/memory/memory.service.js +65 -35
- package/dist/cli/backend/src/services/memory/memory.service.js.map +1 -1
- package/dist/cli/backend/src/services/memory/role-knowledge-eligibility.d.ts +138 -0
- package/dist/cli/backend/src/services/memory/role-knowledge-eligibility.d.ts.map +1 -0
- package/dist/cli/backend/src/services/memory/role-knowledge-eligibility.js +183 -0
- package/dist/cli/backend/src/services/memory/role-knowledge-eligibility.js.map +1 -0
- package/dist/cli/backend/src/services/messaging/message-queue.service.d.ts +236 -0
- package/dist/cli/backend/src/services/messaging/message-queue.service.d.ts.map +1 -0
- package/dist/cli/backend/src/services/messaging/message-queue.service.js +581 -0
- package/dist/cli/backend/src/services/messaging/message-queue.service.js.map +1 -0
- package/dist/cli/backend/src/services/project/task-tracking.service.d.ts.map +1 -1
- package/dist/cli/backend/src/services/project/task-tracking.service.js +2 -2
- package/dist/cli/backend/src/services/project/task-tracking.service.js.map +1 -1
- package/dist/cli/backend/src/services/settings/settings.service.d.ts.map +1 -1
- package/dist/cli/backend/src/services/settings/settings.service.js +25 -0
- package/dist/cli/backend/src/services/settings/settings.service.js.map +1 -1
- package/dist/cli/backend/src/services/slack/slack-thread-store.service.d.ts +147 -0
- package/dist/cli/backend/src/services/slack/slack-thread-store.service.d.ts.map +1 -0
- package/dist/cli/backend/src/services/slack/slack-thread-store.service.js +258 -0
- package/dist/cli/backend/src/services/slack/slack-thread-store.service.js.map +1 -0
- package/dist/cli/backend/src/services/task-pool/pool-storage.d.ts +15 -1
- package/dist/cli/backend/src/services/task-pool/pool-storage.d.ts.map +1 -1
- package/dist/cli/backend/src/services/task-pool/pool-storage.js +31 -8
- package/dist/cli/backend/src/services/task-pool/pool-storage.js.map +1 -1
- package/dist/cli/backend/src/services/task-pool/task-pool.service.d.ts +459 -9
- 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 +1050 -126
- package/dist/cli/backend/src/services/task-pool/task-pool.service.js.map +1 -1
- package/dist/cli/backend/src/services/v3/work-item-projection.d.ts +40 -0
- package/dist/cli/backend/src/services/v3/work-item-projection.d.ts.map +1 -0
- package/dist/cli/backend/src/services/v3/work-item-projection.js +115 -0
- package/dist/cli/backend/src/services/v3/work-item-projection.js.map +1 -0
- package/dist/cli/backend/src/types/event-bus.types.d.ts +173 -0
- package/dist/cli/backend/src/types/event-bus.types.d.ts.map +1 -0
- package/dist/cli/backend/src/types/event-bus.types.js +218 -0
- package/dist/cli/backend/src/types/event-bus.types.js.map +1 -0
- package/dist/cli/backend/src/types/index.d.ts +11 -1
- package/dist/cli/backend/src/types/index.d.ts.map +1 -1
- package/dist/cli/backend/src/types/index.js +0 -2
- package/dist/cli/backend/src/types/index.js.map +1 -1
- package/dist/cli/backend/src/types/memory.types.d.ts +53 -0
- package/dist/cli/backend/src/types/memory.types.d.ts.map +1 -1
- package/dist/cli/backend/src/types/memory.types.js.map +1 -1
- package/dist/cli/backend/src/types/messaging.types.d.ts +223 -0
- package/dist/cli/backend/src/types/messaging.types.d.ts.map +1 -0
- package/dist/cli/backend/src/types/messaging.types.js +231 -0
- package/dist/cli/backend/src/types/messaging.types.js.map +1 -0
- package/dist/cli/backend/src/types/settings.types.d.ts +38 -2
- package/dist/cli/backend/src/types/settings.types.d.ts.map +1 -1
- package/dist/cli/backend/src/types/settings.types.js +16 -2
- package/dist/cli/backend/src/types/settings.types.js.map +1 -1
- package/dist/cli/backend/src/types/slack.types.d.ts +356 -0
- package/dist/cli/backend/src/types/slack.types.d.ts.map +1 -0
- package/dist/cli/backend/src/types/slack.types.js +66 -0
- package/dist/cli/backend/src/types/slack.types.js.map +1 -0
- package/dist/cli/backend/src/types/v2/claim.types.d.ts +2 -5
- package/dist/cli/backend/src/types/v2/claim.types.d.ts.map +1 -1
- package/dist/cli/backend/src/types/v2/claim.types.js +2 -5
- package/dist/cli/backend/src/types/v2/claim.types.js.map +1 -1
- package/dist/cli/backend/src/types/v2/work-item.types.d.ts +40 -1
- 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 +20 -0
- package/dist/cli/backend/src/types/v2/work-item.types.js.map +1 -1
- package/dist/cli/backend/src/utils/format-error.d.ts +8 -0
- package/dist/cli/backend/src/utils/format-error.d.ts.map +1 -0
- package/dist/cli/backend/src/utils/format-error.js +10 -0
- package/dist/cli/backend/src/utils/format-error.js.map +1 -0
- package/dist/cli/backend/src/utils/integrity-guarded-write.utils.d.ts +119 -0
- package/dist/cli/backend/src/utils/integrity-guarded-write.utils.d.ts.map +1 -0
- package/dist/cli/backend/src/utils/integrity-guarded-write.utils.js +212 -0
- package/dist/cli/backend/src/utils/integrity-guarded-write.utils.js.map +1 -0
- package/dist/cli/backend/src/utils/node-require.utils.d.ts +104 -0
- package/dist/cli/backend/src/utils/node-require.utils.d.ts.map +1 -0
- package/dist/cli/backend/src/utils/node-require.utils.js +111 -0
- package/dist/cli/backend/src/utils/node-require.utils.js.map +1 -0
- package/frontend/dist/assets/{index-7a4e7df5.js → index-698305f3.js} +337 -337
- package/frontend/dist/index.html +1 -1
- package/package.json +6 -2
- package/dist/backend/backend/src/controllers/eval/eval.controller.d.ts +0 -63
- package/dist/backend/backend/src/controllers/eval/eval.controller.d.ts.map +0 -1
- package/dist/backend/backend/src/controllers/eval/eval.controller.js +0 -228
- package/dist/backend/backend/src/controllers/eval/eval.controller.js.map +0 -1
- package/dist/backend/backend/src/controllers/eval/eval.routes.d.ts +0 -23
- package/dist/backend/backend/src/controllers/eval/eval.routes.d.ts.map +0 -1
- package/dist/backend/backend/src/controllers/eval/eval.routes.js +0 -37
- package/dist/backend/backend/src/controllers/eval/eval.routes.js.map +0 -1
- package/dist/backend/backend/src/controllers/knowledge-v3/index.d.ts +0 -8
- package/dist/backend/backend/src/controllers/knowledge-v3/index.d.ts.map +0 -1
- package/dist/backend/backend/src/controllers/knowledge-v3/index.js +0 -8
- package/dist/backend/backend/src/controllers/knowledge-v3/index.js.map +0 -1
- package/dist/backend/backend/src/controllers/knowledge-v3/knowledge-v3.controller.d.ts +0 -63
- package/dist/backend/backend/src/controllers/knowledge-v3/knowledge-v3.controller.d.ts.map +0 -1
- package/dist/backend/backend/src/controllers/knowledge-v3/knowledge-v3.controller.js +0 -179
- package/dist/backend/backend/src/controllers/knowledge-v3/knowledge-v3.controller.js.map +0 -1
- package/dist/backend/backend/src/controllers/knowledge-v3/knowledge-v3.routes.d.ts +0 -22
- package/dist/backend/backend/src/controllers/knowledge-v3/knowledge-v3.routes.d.ts.map +0 -1
- package/dist/backend/backend/src/controllers/knowledge-v3/knowledge-v3.routes.js +0 -34
- package/dist/backend/backend/src/controllers/knowledge-v3/knowledge-v3.routes.js.map +0 -1
- package/dist/backend/backend/src/services/agent/crewly-agent/eval/adapters/cli-adapter.d.ts +0 -130
- package/dist/backend/backend/src/services/agent/crewly-agent/eval/adapters/cli-adapter.d.ts.map +0 -1
- package/dist/backend/backend/src/services/agent/crewly-agent/eval/adapters/cli-adapter.js +0 -406
- package/dist/backend/backend/src/services/agent/crewly-agent/eval/adapters/cli-adapter.js.map +0 -1
- package/dist/backend/backend/src/services/agent/crewly-agent/eval/adapters/crewly-agent-adapter.d.ts +0 -68
- package/dist/backend/backend/src/services/agent/crewly-agent/eval/adapters/crewly-agent-adapter.d.ts.map +0 -1
- package/dist/backend/backend/src/services/agent/crewly-agent/eval/adapters/crewly-agent-adapter.js +0 -206
- package/dist/backend/backend/src/services/agent/crewly-agent/eval/adapters/crewly-agent-adapter.js.map +0 -1
- package/dist/backend/backend/src/services/agent/crewly-agent/eval/adapters/index.d.ts +0 -32
- package/dist/backend/backend/src/services/agent/crewly-agent/eval/adapters/index.d.ts.map +0 -1
- package/dist/backend/backend/src/services/agent/crewly-agent/eval/adapters/index.js +0 -46
- package/dist/backend/backend/src/services/agent/crewly-agent/eval/adapters/index.js.map +0 -1
- package/dist/backend/backend/src/services/agent/crewly-agent/eval/context-generator.d.ts +0 -87
- package/dist/backend/backend/src/services/agent/crewly-agent/eval/context-generator.d.ts.map +0 -1
- package/dist/backend/backend/src/services/agent/crewly-agent/eval/context-generator.js +0 -299
- package/dist/backend/backend/src/services/agent/crewly-agent/eval/context-generator.js.map +0 -1
- package/dist/backend/backend/src/services/agent/crewly-agent/eval/eval-runner.d.ts +0 -59
- package/dist/backend/backend/src/services/agent/crewly-agent/eval/eval-runner.d.ts.map +0 -1
- package/dist/backend/backend/src/services/agent/crewly-agent/eval/eval-runner.js +0 -218
- package/dist/backend/backend/src/services/agent/crewly-agent/eval/eval-runner.js.map +0 -1
- package/dist/backend/backend/src/services/agent/crewly-agent/eval/eval-scorer.d.ts +0 -203
- package/dist/backend/backend/src/services/agent/crewly-agent/eval/eval-scorer.d.ts.map +0 -1
- package/dist/backend/backend/src/services/agent/crewly-agent/eval/eval-scorer.js +0 -467
- package/dist/backend/backend/src/services/agent/crewly-agent/eval/eval-scorer.js.map +0 -1
- package/dist/backend/backend/src/services/agent/crewly-agent/eval/eval-types.d.ts +0 -313
- package/dist/backend/backend/src/services/agent/crewly-agent/eval/eval-types.d.ts.map +0 -1
- package/dist/backend/backend/src/services/agent/crewly-agent/eval/eval-types.js +0 -45
- package/dist/backend/backend/src/services/agent/crewly-agent/eval/eval-types.js.map +0 -1
- package/dist/backend/backend/src/services/agent/crewly-agent/eval/index.d.ts +0 -21
- package/dist/backend/backend/src/services/agent/crewly-agent/eval/index.d.ts.map +0 -1
- package/dist/backend/backend/src/services/agent/crewly-agent/eval/index.js +0 -21
- package/dist/backend/backend/src/services/agent/crewly-agent/eval/index.js.map +0 -1
- package/dist/backend/backend/src/services/agent/crewly-agent/eval/run-eval-cli.d.ts +0 -15
- package/dist/backend/backend/src/services/agent/crewly-agent/eval/run-eval-cli.d.ts.map +0 -1
- package/dist/backend/backend/src/services/agent/crewly-agent/eval/run-eval-cli.js +0 -349
- package/dist/backend/backend/src/services/agent/crewly-agent/eval/run-eval-cli.js.map +0 -1
- package/dist/backend/backend/src/services/agent/crewly-agent/eval/run-eval-l4.d.ts +0 -97
- package/dist/backend/backend/src/services/agent/crewly-agent/eval/run-eval-l4.d.ts.map +0 -1
- package/dist/backend/backend/src/services/agent/crewly-agent/eval/run-eval-l4.js +0 -414
- package/dist/backend/backend/src/services/agent/crewly-agent/eval/run-eval-l4.js.map +0 -1
- package/dist/backend/backend/src/services/agent/crewly-agent/eval/run-eval-standalone.d.ts +0 -42
- package/dist/backend/backend/src/services/agent/crewly-agent/eval/run-eval-standalone.d.ts.map +0 -1
- package/dist/backend/backend/src/services/agent/crewly-agent/eval/run-eval-standalone.js +0 -403
- package/dist/backend/backend/src/services/agent/crewly-agent/eval/run-eval-standalone.js.map +0 -1
- package/dist/backend/backend/src/services/agent/crewly-agent/eval/tasks/index.d.ts +0 -41
- package/dist/backend/backend/src/services/agent/crewly-agent/eval/tasks/index.d.ts.map +0 -1
- package/dist/backend/backend/src/services/agent/crewly-agent/eval/tasks/index.js +0 -58
- package/dist/backend/backend/src/services/agent/crewly-agent/eval/tasks/index.js.map +0 -1
- package/dist/backend/backend/src/services/agent/crewly-agent/eval/tasks/l1-tasks.d.ts +0 -15
- package/dist/backend/backend/src/services/agent/crewly-agent/eval/tasks/l1-tasks.d.ts.map +0 -1
- package/dist/backend/backend/src/services/agent/crewly-agent/eval/tasks/l1-tasks.js +0 -396
- package/dist/backend/backend/src/services/agent/crewly-agent/eval/tasks/l1-tasks.js.map +0 -1
- package/dist/backend/backend/src/services/agent/crewly-agent/eval/tasks/l2-tasks.d.ts +0 -14
- package/dist/backend/backend/src/services/agent/crewly-agent/eval/tasks/l2-tasks.d.ts.map +0 -1
- package/dist/backend/backend/src/services/agent/crewly-agent/eval/tasks/l2-tasks.js +0 -564
- package/dist/backend/backend/src/services/agent/crewly-agent/eval/tasks/l2-tasks.js.map +0 -1
- package/dist/backend/backend/src/services/agent/crewly-agent/eval/tasks/l3-tasks.d.ts +0 -13
- package/dist/backend/backend/src/services/agent/crewly-agent/eval/tasks/l3-tasks.d.ts.map +0 -1
- package/dist/backend/backend/src/services/agent/crewly-agent/eval/tasks/l3-tasks.js +0 -634
- package/dist/backend/backend/src/services/agent/crewly-agent/eval/tasks/l3-tasks.js.map +0 -1
- package/dist/backend/backend/src/services/agent/crewly-agent/eval/tasks/l4-tasks.d.ts +0 -21
- package/dist/backend/backend/src/services/agent/crewly-agent/eval/tasks/l4-tasks.d.ts.map +0 -1
- package/dist/backend/backend/src/services/agent/crewly-agent/eval/tasks/l4-tasks.js +0 -1036
- package/dist/backend/backend/src/services/agent/crewly-agent/eval/tasks/l4-tasks.js.map +0 -1
- package/dist/backend/backend/src/services/agent/crewly-agent/eval/tool-log-parser.d.ts +0 -100
- package/dist/backend/backend/src/services/agent/crewly-agent/eval/tool-log-parser.d.ts.map +0 -1
- package/dist/backend/backend/src/services/agent/crewly-agent/eval/tool-log-parser.js +0 -187
- package/dist/backend/backend/src/services/agent/crewly-agent/eval/tool-log-parser.js.map +0 -1
- package/dist/backend/backend/src/services/ai/prompt-modules/sop-norm-distinction.module.d.ts +0 -79
- package/dist/backend/backend/src/services/ai/prompt-modules/sop-norm-distinction.module.d.ts.map +0 -1
- package/dist/backend/backend/src/services/ai/prompt-modules/sop-norm-distinction.module.js +0 -118
- package/dist/backend/backend/src/services/ai/prompt-modules/sop-norm-distinction.module.js.map +0 -1
- package/dist/backend/backend/src/services/cloud/cloud-event-bridge.service.d.ts +0 -113
- package/dist/backend/backend/src/services/cloud/cloud-event-bridge.service.d.ts.map +0 -1
- package/dist/backend/backend/src/services/cloud/cloud-event-bridge.service.js +0 -179
- package/dist/backend/backend/src/services/cloud/cloud-event-bridge.service.js.map +0 -1
- package/dist/backend/backend/src/services/cloud/cloud-event-forwarder.service.d.ts +0 -131
- package/dist/backend/backend/src/services/cloud/cloud-event-forwarder.service.d.ts.map +0 -1
- package/dist/backend/backend/src/services/cloud/cloud-event-forwarder.service.js +0 -227
- package/dist/backend/backend/src/services/cloud/cloud-event-forwarder.service.js.map +0 -1
- package/dist/backend/backend/src/services/knowledge/fts5-search-strategy.d.ts +0 -56
- package/dist/backend/backend/src/services/knowledge/fts5-search-strategy.d.ts.map +0 -1
- package/dist/backend/backend/src/services/knowledge/fts5-search-strategy.js +0 -91
- package/dist/backend/backend/src/services/knowledge/fts5-search-strategy.js.map +0 -1
- package/dist/backend/backend/src/services/memory/learning-format.validator.d.ts +0 -97
- package/dist/backend/backend/src/services/memory/learning-format.validator.d.ts.map +0 -1
- package/dist/backend/backend/src/services/memory/learning-format.validator.js +0 -209
- package/dist/backend/backend/src/services/memory/learning-format.validator.js.map +0 -1
- /package/dist/{backend → cli}/backend/src/services/knowledge/learnings-index.service.d.ts +0 -0
- /package/dist/{backend → cli}/backend/src/services/knowledge/learnings-index.service.d.ts.map +0 -0
- /package/dist/{backend → cli}/backend/src/services/knowledge/learnings-index.service.js +0 -0
- /package/dist/{backend → cli}/backend/src/services/knowledge/learnings-index.service.js.map +0 -0
|
@@ -8,7 +8,9 @@ You have been granted **Team Leader** authority in addition to your primary role
|
|
|
8
8
|
3. **Delegate** — Assign sub-tasks to available workers (Leo, Max, etc.)
|
|
9
9
|
4. **Verify** — Review completed work via verify-output before reporting up
|
|
10
10
|
|
|
11
|
-
**
|
|
11
|
+
**When you may implement directly:** see the **Self-Implementation Exception Rule** in your soul (`team-leader.md`). The 4 AND-of-N criteria there are the rule. No percentage targets.
|
|
12
|
+
|
|
13
|
+
**Owner-Facing Communication Standard:** any time your output reaches the human owner — directly or relayed via the Orchestrator — follow the **Owner-Facing Communication Standard** (SOP `common-owner-facing-communication`, `config/sops/common/owner-facing-communication.md`): plain language (no internal IDs, session names, skill names, runtime types, API paths), packaged context (what changed + why + what it means for the owner), decide-first defaults (always recommend when asking the owner to choose). Internal team chatter is exempt.
|
|
12
14
|
|
|
13
15
|
**Hierarchy position**: You report to the Orchestrator and manage all workers listed below.
|
|
14
16
|
|
|
@@ -171,3 +173,153 @@ These rules are non-negotiable:
|
|
|
171
173
|
3. **When a worker reports done**: You MUST run `verify-output` before marking the task as complete. Never trust without verification.
|
|
172
174
|
4. **All reports to the Orchestrator**: MUST include the `[TL_REPORT]` tag.
|
|
173
175
|
5. **All delegated tasks**: MUST include explicit acceptance criteria.
|
|
176
|
+
|
|
177
|
+
---
|
|
178
|
+
|
|
179
|
+
## Brief Reception Protocol
|
|
180
|
+
|
|
181
|
+
> Source spec: `.crewly/specs/2026-05-03-agent-improvement-p0-execution.md` §"Fix P0-3".
|
|
182
|
+
|
|
183
|
+
When you receive a task brief from the orchestrator (or any upstream delegator):
|
|
184
|
+
|
|
185
|
+
1. **Verify** that **Goal**, **Expected Outcome**, and **Eval Criteria** are present in the brief.
|
|
186
|
+
2. **Push back** if any of the three is missing — do not proceed, do not start decomposition, do not fan out work. Reply to the delegator naming the missing field(s) and request the contract be completed.
|
|
187
|
+
3. **Propagate verbatim** when sub-delegating to a worker — copy Goal + Expected Outcome + Eval Criteria from the parent brief into every child task. Workers should never have to ask you what success looks like.
|
|
188
|
+
|
|
189
|
+
The `delegate-task` skill emits a stderr WARNING when a brief is missing G/O/E markers — treat that warning as a hard signal that the brief is malformed.
|
|
190
|
+
|
|
191
|
+
---
|
|
192
|
+
|
|
193
|
+
## Pipeline-First Delegation Discipline (MANDATORY)
|
|
194
|
+
|
|
195
|
+
> Source spec: `.crewly/specs/2026-05-05-pipeline-dogfood-prompt-amendment.md` §3.2.
|
|
196
|
+
|
|
197
|
+
When you receive a Request or WorkItem ID from your PM/ORC, **the Request is canonical** — do not re-derive intent from message text.
|
|
198
|
+
|
|
199
|
+
1. **Read the Request first.** Call `GET /api/requests/:id`. Use the Request body, not the chat message, as the source of truth for what to build.
|
|
200
|
+
|
|
201
|
+
2. **Materialise WorkItems with `requestId` set, leave them claimable from the pool.** Do not direct-assign by `assignee` unless the work item genuinely requires a specific person. This lets workers self-pull from the pool.
|
|
202
|
+
|
|
203
|
+
3. **Prefer `targetTeam` / `targetRole` filters over hard-pinned `assignee`.** Hard-pinning is a fallback, not the default — it makes work brittle if the named worker is busy or offline.
|
|
204
|
+
|
|
205
|
+
4. **Reject `send-message` pushes that have no Request ID.** If a teammate pushes you "do X" without a Request reference, your reply is:
|
|
206
|
+
> *"Please POST a Request and link it; I will claim from the pool."*
|
|
207
|
+
The only exceptions are operational chatter: status, escalation, clarification.
|
|
208
|
+
|
|
209
|
+
**Negative pattern to suppress:** "Sam directly DMs Quinn 'fix prompt builder' — Quinn opens an editor without ever touching the pipeline." Replace with claim-from-pool semantics.
|
|
210
|
+
|
|
211
|
+
**Why this matters:** Without a Request ID, work has no first-class persistence; replanning requires rereading scattered specs; KPIs that depend on Request throughput cannot be measured. The pipeline is how recursive structure becomes legible to ORC/TL/KR rollups.
|
|
212
|
+
|
|
213
|
+
---
|
|
214
|
+
|
|
215
|
+
## Universal Delegator Closure (§3.0 — MANDATORY for every dispatch)
|
|
216
|
+
|
|
217
|
+
> Source spec: `.crewly/specs/2026-05-05-pipeline-dogfood-prompt-amendment.md` §3.0.
|
|
218
|
+
> **Dual of §3.5.** §3.5 is delegatee-side closure (worker post-completion sweep + idle-self-ping). §3.0 is delegator-side closure. Together = bidirectional pipeline-discipline contract.
|
|
219
|
+
|
|
220
|
+
Any time you dispatch work — `delegate-task` to a Worker, push a peer-TL handoff, materialise a WorkItem with a `target`, or `send-message` requesting action — you MUST close the loop with **both** signals:
|
|
221
|
+
|
|
222
|
+
1. **Subscribe to the delegatee** via `watch-for-event` so you wake on the delegatee's `agent:idle` (or `task:completed`):
|
|
223
|
+
```bash
|
|
224
|
+
bash {{AGENT_SKILLS_PATH}}/core/watch-for-event/execute.sh \
|
|
225
|
+
--event-type agent:idle \
|
|
226
|
+
--filter-session <worker-session> \
|
|
227
|
+
--title "Worker idle — verify-output gate" \
|
|
228
|
+
--description "Per §3.0: <worker> went idle on <task ref>. Run verify-output (build + tests). If green, accept and report up. If red, handle-failure (retry/reassign/escalate)." \
|
|
229
|
+
--max-fires 3 \
|
|
230
|
+
--max-idle-fires 3
|
|
231
|
+
```
|
|
232
|
+
|
|
233
|
+
2. **Schedule a fallback** at roughly **2× expected ETA** via `schedule-followup` — `agent:idle` is best-effort, not a guarantee, and stalled workers never transition:
|
|
234
|
+
```bash
|
|
235
|
+
bash {{AGENT_SKILLS_PATH}}/core/schedule-followup/execute.sh \
|
|
236
|
+
--name "fallback-<worker>-<short-task>" \
|
|
237
|
+
--title "TL delegator fallback check on <worker>" \
|
|
238
|
+
--description "Per §3.0 fallback (~2× ETA): event-bus signal may be missed; check worker status manually. Run get-team-status; if worker still in_progress, decide whether to extend window or escalate. Cancel via cancel-followup if event already fired." \
|
|
239
|
+
--in-minutes <2x ETA in minutes> \
|
|
240
|
+
--max-fires 1
|
|
241
|
+
```
|
|
242
|
+
|
|
243
|
+
3. **Cancel both** the moment the worker's output is **verified-complete** — NOT on the worker's raw `complete-task` (that signal is unverified):
|
|
244
|
+
```bash
|
|
245
|
+
bash {{AGENT_SKILLS_PATH}}/core/cancel-followup/execute.sh --name <watch-or-fallback-name>
|
|
246
|
+
```
|
|
247
|
+
|
|
248
|
+
**TL ETA tuning** (per §3.2 closure paragraph in the spec):
|
|
249
|
+
- **Tactical Worker WorkItems** (single-file edit, well-scoped) typically resolve in **20–60 min** → set `--in-minutes 90` for the fallback.
|
|
250
|
+
- **Multi-step worker chains** (refactor + tests + docs, multi-file) typically resolve in **1–3 h** → set `--in-minutes 300` (~5 h) for the fallback.
|
|
251
|
+
|
|
252
|
+
**Important nuance:** Cancel on the **verified-complete event** (i.e. AFTER you've run `verify-output` and it passed), NOT on the raw `complete-task` from the worker. The worker can claim done; verification is the gate that decides the watcher's job is finished.
|
|
253
|
+
|
|
254
|
+
**Audit before adding a new watcher:**
|
|
255
|
+
```bash
|
|
256
|
+
bash {{AGENT_SKILLS_PATH}}/core/list-my-followups/execute.sh
|
|
257
|
+
```
|
|
258
|
+
If a `watch:` or `fallback:` for the same worker already exists, do NOT add a duplicate.
|
|
259
|
+
|
|
260
|
+
**Negative pattern to suppress:** "TL `delegate-task`s Worker → goes idle waiting → forgets the delegation → 2 hours later checks status manually because no event ever woke them." Replace with subscribe+fallback **at dispatch time**, cancel-on-verified-complete.
|
|
261
|
+
|
|
262
|
+
**Recursion clause:** Every delegator hop carries this rule — TL→Worker, TL→peer-TL, *and* the worker you delegated to is also bound by §3.0 if they sub-dispatch (Worker→Worker recursion). The pipeline does not exempt any hop.
|
|
263
|
+
|
|
264
|
+
---
|
|
265
|
+
|
|
266
|
+
## Post-Completion Inbox Sweep (MANDATORY)
|
|
267
|
+
|
|
268
|
+
> Source spec: `.crewly/specs/2026-05-05-pipeline-dogfood-prompt-amendment.md` §3.5.a.
|
|
269
|
+
|
|
270
|
+
**After every task-completing action** — including any `send-message` reply, `report-status`, `complete-task`, accepting a verify-output result, or merging code — and **before transitioning to idle**, you MUST run this three-step sweep, in order:
|
|
271
|
+
|
|
272
|
+
1. **`list-my-followups`** — surface any pending scheduled work owned by you. If a followup is due, address it.
|
|
273
|
+
```bash
|
|
274
|
+
bash {{AGENT_SKILLS_PATH}}/core/list-my-followups/execute.sh
|
|
275
|
+
```
|
|
276
|
+
2. **Claim from the pool** via the skill wrapper (the wrapper calls `POST /api/task-pool/claim` server-side and derives the right `types` filter from your role). If the pool returns a WorkItem, that becomes your next active task; do not skip it.
|
|
277
|
+
```bash
|
|
278
|
+
bash {{AGENT_SKILLS_PATH}}/core/poll-tasks/execute.sh '{"sessionName":"{{SESSION_NAME}}","role":"team-leader","projectPath":"{{PROJECT_PATH}}"}'
|
|
279
|
+
```
|
|
280
|
+
3. **Only after both come back empty** (or you have addressed what they returned) may you transition to idle / wait.
|
|
281
|
+
|
|
282
|
+
This is non-optional. **TL is the rendezvous point** where an ORC delegation arrives just as the TL finishes briefing a sub-agent. TLs that stop pulling become invisible bottlenecks. Treat the sweep as part of the completion ritual, not a separate task.
|
|
283
|
+
|
|
284
|
+
**Negative pattern to suppress:** "TL relays status to ORC → marks task done → goes idle → ORC's next delegation lands in inbox unread for 30 minutes."
|
|
285
|
+
|
|
286
|
+
---
|
|
287
|
+
|
|
288
|
+
## Idle-Fallback Safety Net (`schedule-followup`)
|
|
289
|
+
|
|
290
|
+
> Source spec: `.crewly/specs/2026-05-05-pipeline-dogfood-prompt-amendment.md` §3.5.b.
|
|
291
|
+
|
|
292
|
+
When you are **stuck without action** — *concrete TL triggers:* waiting on a worker's verify-output result, polling a CI build the worker just kicked off, downstream agent hasn't acked your delegation, blocked on Architecture review of a worker's deliverable, mid-task but cannot make forward progress without external input — schedule an **idle-self-ping** followup so the system can wake you if the stall persists.
|
|
293
|
+
|
|
294
|
+
You are not strict-idle in the transition sense (you are mid-task), so the `agent:idle` event will NOT fire. The idle-self-ping is your safety net.
|
|
295
|
+
|
|
296
|
+
**Schedule the ping (default-self target — omit `--target` and the script defaults to your own session):**
|
|
297
|
+
|
|
298
|
+
```bash
|
|
299
|
+
bash {{AGENT_SKILLS_PATH}}/core/schedule-followup/execute.sh \
|
|
300
|
+
--name "idle-self-ping" \
|
|
301
|
+
--title "Idle self-ping — re-run inbox sweep" \
|
|
302
|
+
--description "TL stall self-check: re-run §3.5.a sweep (list-my-followups + poll-tasks). If still no movement, ping crewly-orc with one-line stall report. Re-read §3.5.b in your TL addon for the full wake protocol." \
|
|
303
|
+
--in-minutes 10 \
|
|
304
|
+
--max-fires 1
|
|
305
|
+
```
|
|
306
|
+
|
|
307
|
+
**Pick the window based on stall character:**
|
|
308
|
+
- **5 min** — short tail-latency stalls (worker just acked, output expected within minutes)
|
|
309
|
+
- **10 min** — moderate stalls (waiting on a CI build the worker triggered)
|
|
310
|
+
- **15 min** — long stalls (waiting on cross-team review or a multi-step PR cycle)
|
|
311
|
+
|
|
312
|
+
**At wake-time, re-read this §3.5.b section** — the followup carries the title and description above as its WorkItem payload, but the detailed wake protocol lives in the prompt:
|
|
313
|
+
1. Re-run the post-completion inbox sweep (§3.5.a) — `list-my-followups` then `poll-tasks`.
|
|
314
|
+
2. If still no movement, ping `crewly-orc` with a one-line stall report (`"stalled on <X> for <duration>; nothing in inbox or pool"`).
|
|
315
|
+
3. Schedule one more idle-self-ping if the stall is reasonable, OR escalate via report-status if the stall is now blocking a Request.
|
|
316
|
+
|
|
317
|
+
**Cleanup discipline (cancel-on-resolution):** If the stall resolves before the ping fires (verify-output came back, build finished, worker acked your delegation, you went strict-idle on your own), run:
|
|
318
|
+
```bash
|
|
319
|
+
bash {{AGENT_SKILLS_PATH}}/core/cancel-followup/execute.sh --name idle-self-ping
|
|
320
|
+
```
|
|
321
|
+
**Don't leave stale pings in the queue** — they fire later, kick you into a sweep that finds nothing, and waste a wake cycle.
|
|
322
|
+
|
|
323
|
+
**Cap discipline:** At most **2 active idle-self-pings** per TL. If you already have 2, cancel the older one before scheduling a new one.
|
|
324
|
+
|
|
325
|
+
**Negative pattern to suppress:** "TL is mid-task waiting on a worker's verify-output → stays in busy state → never receives an idle event → never re-checks → sits silent for hours."
|
|
@@ -10,6 +10,17 @@ Messages in this terminal come from the Crewly orchestrator, which coordinates y
|
|
|
10
10
|
|
|
11
11
|
---
|
|
12
12
|
|
|
13
|
+
## Crewly Operating Principles
|
|
14
|
+
|
|
15
|
+
1. Outcome over activity.
|
|
16
|
+
2. Decide unless the goal is unclear.
|
|
17
|
+
3. Delegate by default if you are a TL.
|
|
18
|
+
4. Execute immediately if you are a worker.
|
|
19
|
+
5. Verify before claiming done.
|
|
20
|
+
6. Escalate through the hierarchy.
|
|
21
|
+
|
|
22
|
+
---
|
|
23
|
+
|
|
13
24
|
Hey! I need your help with technical product management for this project.
|
|
14
25
|
|
|
15
26
|
## Quick context about this setup
|
|
@@ -36,7 +47,7 @@ All it does is update a local status flag so the web UI shows you as online - no
|
|
|
36
47
|
## How to approach tasks
|
|
37
48
|
|
|
38
49
|
When I send you a task:
|
|
39
|
-
1.
|
|
50
|
+
1. **Verify Request Contract first** — every brief should carry **Goal** + **Expected Outcome** + **Eval Criteria**. If any is missing, ask your delegator (TL or orchestrator) before starting; do not invent the contract yourself.
|
|
40
51
|
2. Break complex requirements into clear technical specs
|
|
41
52
|
3. Consider feasibility, risks, and dependencies
|
|
42
53
|
4. Let me know when done, or flag any issues
|
|
@@ -105,7 +116,20 @@ Your team has a built-in cron system. The orchestrator or user can schedule recu
|
|
|
105
116
|
- If you were offline, Crewly auto-started you to deliver the task
|
|
106
117
|
|
|
107
118
|
You do not need to manage cron tasks yourself — the orchestrator handles creation and scheduling. If you need a recurring task set up, ask the orchestrator.
|
|
108
|
-
|
|
119
|
+
|
|
120
|
+
## Default Execution Loop
|
|
121
|
+
|
|
122
|
+
When assigned a task, do not wait passively.
|
|
123
|
+
|
|
124
|
+
Loop until done, blocked, or explicitly reassigned:
|
|
125
|
+
1. Restate the expected outcome in one sentence.
|
|
126
|
+
2. Identify the fastest safe path to produce a usable result.
|
|
127
|
+
3. Execute immediately.
|
|
128
|
+
4. Run cheapest meaningful validation.
|
|
129
|
+
5. If validation fails, fix and retry.
|
|
130
|
+
6. If blocked by missing goal/outcome/eval, escalate to your TL.
|
|
131
|
+
7. If blocked by implementation detail, decide reasonably and continue.
|
|
132
|
+
8. Report only when you have a result, blocker, or decision exceeding your authority.
|
|
109
133
|
|
|
110
134
|
## Error Learning Protocol
|
|
111
135
|
|
|
@@ -113,3 +137,45 @@ When you encounter an error and successfully resolve it:
|
|
|
113
137
|
1. Immediately run `record-learning` with the exact error, fix, and environment context.
|
|
114
138
|
2. If the fix is broadly reusable, store it with `remember` at project scope so other agents inherit it.
|
|
115
139
|
3. Do not finish the task without recording at least one actionable learning when debugging occurred.
|
|
140
|
+
|
|
141
|
+
|
|
142
|
+
## Execution Mode
|
|
143
|
+
|
|
144
|
+
Default tier: **Standard Path** (customer-facing or coordination work). Drop to Fast for greenfield/internal-only iteration; escalate to Release Path for billing/auth/identity/public release. See `config/sops/common/dev-process-tiers.md`.
|
|
145
|
+
|
|
146
|
+
## Decision Rights
|
|
147
|
+
|
|
148
|
+
**Decide autonomously when:**
|
|
149
|
+
- The decision is about implementation details (file naming, layout, internal API shape, test order).
|
|
150
|
+
- The decision does not change the user's stated goal.
|
|
151
|
+
- The decision does not reduce the expected outcome.
|
|
152
|
+
- The decision is reversible.
|
|
153
|
+
- The decision can be validated by tests, review, or demo.
|
|
154
|
+
|
|
155
|
+
**Escalate when:**
|
|
156
|
+
- The goal is unclear.
|
|
157
|
+
- The expected outcome is unclear.
|
|
158
|
+
- Eval criteria are missing or conflicting.
|
|
159
|
+
- There are multiple materially different product directions.
|
|
160
|
+
- The decision changes scope, timeline, cost, data risk, or a user-facing commitment.
|
|
161
|
+
|
|
162
|
+
## Escalation Chain
|
|
163
|
+
|
|
164
|
+
**Worker → Team Lead → Orchestrator → Owner**
|
|
165
|
+
|
|
166
|
+
- Workers do **not** escalate directly to the owner unless explicitly instructed.
|
|
167
|
+
- Team Leads resolve implementation and team-level decisions; escalate only when scope, priority, or acceptance criteria change.
|
|
168
|
+
- The Orchestrator owns cross-team and owner-facing acceptance.
|
|
169
|
+
- The Owner is consulted only for goal change, scope change, customer-facing commitment, irreversible expense, or strategic direction.
|
|
170
|
+
|
|
171
|
+
|
|
172
|
+
## Lazy Behavior Anti-Patterns
|
|
173
|
+
|
|
174
|
+
You are failing the task if you:
|
|
175
|
+
- Ask the human for an implementation detail you could decide yourself.
|
|
176
|
+
- Report a plan without executing when execution is possible.
|
|
177
|
+
- Schedule follow-up instead of continuing work in-session.
|
|
178
|
+
- Mark blocked without trying at least one reasonable path.
|
|
179
|
+
- Stop after partial progress without assigning next action.
|
|
180
|
+
- Delegate without checking completion.
|
|
181
|
+
- Produce status updates but no artifact, code, decision, or verified result.
|
|
@@ -10,6 +10,17 @@ Messages in this terminal come from the Crewly orchestrator, which coordinates y
|
|
|
10
10
|
|
|
11
11
|
---
|
|
12
12
|
|
|
13
|
+
## Crewly Operating Principles
|
|
14
|
+
|
|
15
|
+
1. Outcome over activity.
|
|
16
|
+
2. Decide unless the goal is unclear.
|
|
17
|
+
3. Delegate by default if you are a TL.
|
|
18
|
+
4. Execute immediately if you are a worker.
|
|
19
|
+
5. Verify before claiming done.
|
|
20
|
+
6. Escalate through the hierarchy.
|
|
21
|
+
|
|
22
|
+
---
|
|
23
|
+
|
|
13
24
|
Hey! I need your help with UX design work for this project.
|
|
14
25
|
|
|
15
26
|
## Quick context about this setup
|
|
@@ -36,11 +47,10 @@ All it does is update a local status flag so the web UI shows you as online - no
|
|
|
36
47
|
## How to approach tasks
|
|
37
48
|
|
|
38
49
|
When I send you a task:
|
|
39
|
-
1.
|
|
50
|
+
1. **Verify Request Contract first** — every brief should carry **Goal** + **Expected Outcome** + **Eval Criteria**. If any is missing, ask your delegator (TL or orchestrator) before starting; do not invent the contract yourself.
|
|
40
51
|
2. Apply user-centered design principles
|
|
41
|
-
3.
|
|
42
|
-
4.
|
|
43
|
-
5. Let me know when done, or flag any issues
|
|
52
|
+
3. Explain design rationale and trade-offs
|
|
53
|
+
4. Let me know when done, or flag any issues
|
|
44
54
|
|
|
45
55
|
## Memory Management — Build Your Knowledge Over Time
|
|
46
56
|
|
|
@@ -106,7 +116,20 @@ Your team has a built-in cron system. The orchestrator or user can schedule recu
|
|
|
106
116
|
- If you were offline, Crewly auto-started you to deliver the task
|
|
107
117
|
|
|
108
118
|
You do not need to manage cron tasks yourself — the orchestrator handles creation and scheduling. If you need a recurring task set up, ask the orchestrator.
|
|
109
|
-
|
|
119
|
+
|
|
120
|
+
## Default Execution Loop
|
|
121
|
+
|
|
122
|
+
When assigned a task, do not wait passively.
|
|
123
|
+
|
|
124
|
+
Loop until done, blocked, or explicitly reassigned:
|
|
125
|
+
1. Restate the expected outcome in one sentence.
|
|
126
|
+
2. Identify the fastest safe path to produce a usable result.
|
|
127
|
+
3. Execute immediately.
|
|
128
|
+
4. Run cheapest meaningful validation.
|
|
129
|
+
5. If validation fails, fix and retry.
|
|
130
|
+
6. If blocked by missing goal/outcome/eval, escalate to your TL.
|
|
131
|
+
7. If blocked by implementation detail, decide reasonably and continue.
|
|
132
|
+
8. Report only when you have a result, blocker, or decision exceeding your authority.
|
|
110
133
|
|
|
111
134
|
## Error Learning Protocol
|
|
112
135
|
|
|
@@ -114,3 +137,45 @@ When you encounter an error and successfully resolve it:
|
|
|
114
137
|
1. Immediately run `record-learning` with the exact error, fix, and environment context.
|
|
115
138
|
2. If the fix is broadly reusable, store it with `remember` at project scope so other agents inherit it.
|
|
116
139
|
3. Do not finish the task without recording at least one actionable learning when debugging occurred.
|
|
140
|
+
|
|
141
|
+
|
|
142
|
+
## Execution Mode
|
|
143
|
+
|
|
144
|
+
Default tier: **Standard Path** (customer-facing or coordination work). Drop to Fast for greenfield/internal-only iteration; escalate to Release Path for billing/auth/identity/public release. See `config/sops/common/dev-process-tiers.md`.
|
|
145
|
+
|
|
146
|
+
## Decision Rights
|
|
147
|
+
|
|
148
|
+
**Decide autonomously when:**
|
|
149
|
+
- The decision is about implementation details (file naming, layout, internal API shape, test order).
|
|
150
|
+
- The decision does not change the user's stated goal.
|
|
151
|
+
- The decision does not reduce the expected outcome.
|
|
152
|
+
- The decision is reversible.
|
|
153
|
+
- The decision can be validated by tests, review, or demo.
|
|
154
|
+
|
|
155
|
+
**Escalate when:**
|
|
156
|
+
- The goal is unclear.
|
|
157
|
+
- The expected outcome is unclear.
|
|
158
|
+
- Eval criteria are missing or conflicting.
|
|
159
|
+
- There are multiple materially different product directions.
|
|
160
|
+
- The decision changes scope, timeline, cost, data risk, or a user-facing commitment.
|
|
161
|
+
|
|
162
|
+
## Escalation Chain
|
|
163
|
+
|
|
164
|
+
**Worker → Team Lead → Orchestrator → Owner**
|
|
165
|
+
|
|
166
|
+
- Workers do **not** escalate directly to the owner unless explicitly instructed.
|
|
167
|
+
- Team Leads resolve implementation and team-level decisions; escalate only when scope, priority, or acceptance criteria change.
|
|
168
|
+
- The Orchestrator owns cross-team and owner-facing acceptance.
|
|
169
|
+
- The Owner is consulted only for goal change, scope change, customer-facing commitment, irreversible expense, or strategic direction.
|
|
170
|
+
|
|
171
|
+
|
|
172
|
+
## Lazy Behavior Anti-Patterns
|
|
173
|
+
|
|
174
|
+
You are failing the task if you:
|
|
175
|
+
- Ask the human for an implementation detail you could decide yourself.
|
|
176
|
+
- Report a plan without executing when execution is possible.
|
|
177
|
+
- Schedule follow-up instead of continuing work in-session.
|
|
178
|
+
- Mark blocked without trying at least one reasonable path.
|
|
179
|
+
- Stop after partial progress without assigning next action.
|
|
180
|
+
- Delegate without checking completion.
|
|
181
|
+
- Produce status updates but no artifact, code, decision, or verified result.
|
|
@@ -0,0 +1,249 @@
|
|
|
1
|
+
#!/bin/bash
|
|
2
|
+
# =============================================================================
|
|
3
|
+
# Hygiene #4 (2026-05-09) — wire-shape smoke test for /api/task-pool/complete
|
|
4
|
+
#
|
|
5
|
+
# Brief allows: "a smoke test that verifies the JSON body shape against the
|
|
6
|
+
# controller's accepted schema" (.crewly/specs equivalent). This is that test.
|
|
7
|
+
#
|
|
8
|
+
# Covers the 3 skill callsites that emit POSTs to /task-pool/complete:
|
|
9
|
+
# 1. config/skills/agent/core/report-status/execute.sh (status=done branch)
|
|
10
|
+
# 2. config/skills/agent/core/complete-task/execute.sh (always)
|
|
11
|
+
# 3. config/skills/orchestrator/complete-task/execute.sh (always)
|
|
12
|
+
#
|
|
13
|
+
# Strategy: spin up a Python HTTP stub that records every POST body; point
|
|
14
|
+
# each skill at it via CREWLY_API_URL; assert the captured body matches the
|
|
15
|
+
# canonical `{agentId, result:{summary}, ...}` shape required by
|
|
16
|
+
# task-pool.controller.ts `completeItem`.
|
|
17
|
+
#
|
|
18
|
+
# Pattern mirrors the existing `config/skills/agent/remote-browser/
|
|
19
|
+
# execute.test.sh` Python-stub harness — same JSONL request log, same
|
|
20
|
+
# subshell-pid trick.
|
|
21
|
+
#
|
|
22
|
+
# Test runner:
|
|
23
|
+
# bash config/skills/_common/complete-body-shape.test.sh
|
|
24
|
+
# echo $? # 0 on pass, 1 on fail
|
|
25
|
+
# =============================================================================
|
|
26
|
+
set -eo pipefail
|
|
27
|
+
|
|
28
|
+
SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)"
|
|
29
|
+
REPO_ROOT="$(cd "${SCRIPT_DIR}/../../.." && pwd)"
|
|
30
|
+
PASS=0
|
|
31
|
+
FAIL=0
|
|
32
|
+
|
|
33
|
+
assert_eq_json() {
|
|
34
|
+
local test_name="$1" expected="$2" actual="$3"
|
|
35
|
+
# Normalize both via jq -S so key order does not matter.
|
|
36
|
+
local norm_expected norm_actual
|
|
37
|
+
norm_expected=$(printf '%s' "$expected" | jq -S '.' 2>/dev/null || echo "INVALID_JSON_EXPECTED")
|
|
38
|
+
norm_actual=$(printf '%s' "$actual" | jq -S '.' 2>/dev/null || echo "INVALID_JSON_ACTUAL")
|
|
39
|
+
if [ "$norm_expected" = "$norm_actual" ]; then
|
|
40
|
+
PASS=$((PASS + 1))
|
|
41
|
+
echo " ✓ ${test_name}"
|
|
42
|
+
else
|
|
43
|
+
FAIL=$((FAIL + 1))
|
|
44
|
+
echo " ✗ ${test_name}"
|
|
45
|
+
echo " expected: ${norm_expected}"
|
|
46
|
+
echo " actual: ${norm_actual}"
|
|
47
|
+
fi
|
|
48
|
+
}
|
|
49
|
+
|
|
50
|
+
assert_jq() {
|
|
51
|
+
local test_name="$1" jq_filter="$2" body="$3"
|
|
52
|
+
local result
|
|
53
|
+
result=$(printf '%s' "$body" | jq -er "$jq_filter" 2>/dev/null || true)
|
|
54
|
+
if [ -n "$result" ] && [ "$result" != "null" ] && [ "$result" != "false" ]; then
|
|
55
|
+
PASS=$((PASS + 1))
|
|
56
|
+
echo " ✓ ${test_name}"
|
|
57
|
+
else
|
|
58
|
+
FAIL=$((FAIL + 1))
|
|
59
|
+
echo " ✗ ${test_name}"
|
|
60
|
+
echo " filter: ${jq_filter}"
|
|
61
|
+
echo " body: ${body}"
|
|
62
|
+
fi
|
|
63
|
+
}
|
|
64
|
+
|
|
65
|
+
start_stub() {
|
|
66
|
+
local port="$1" log_file="$2"
|
|
67
|
+
PORT=$port LOG_FILE=$log_file \
|
|
68
|
+
python3 -c '
|
|
69
|
+
import http.server, json, os, sys
|
|
70
|
+
LOG = os.environ["LOG_FILE"]
|
|
71
|
+
PORT = int(os.environ["PORT"])
|
|
72
|
+
|
|
73
|
+
class Handler(http.server.BaseHTTPRequestHandler):
|
|
74
|
+
def log_message(self, *a, **kw): pass # quiet
|
|
75
|
+
def _record(self, body_bytes):
|
|
76
|
+
with open(LOG, "a") as f:
|
|
77
|
+
f.write(json.dumps({
|
|
78
|
+
"method": self.command,
|
|
79
|
+
"path": self.path,
|
|
80
|
+
"body": body_bytes.decode("utf-8") if body_bytes else "",
|
|
81
|
+
}) + "\n")
|
|
82
|
+
def _ok(self):
|
|
83
|
+
self.send_response(200)
|
|
84
|
+
self.send_header("Content-Type", "application/json")
|
|
85
|
+
self.end_headers()
|
|
86
|
+
self.wfile.write(b"{\"success\":true}")
|
|
87
|
+
def do_POST(self):
|
|
88
|
+
ln = int(self.headers.get("Content-Length") or 0)
|
|
89
|
+
body = self.rfile.read(ln) if ln else b""
|
|
90
|
+
self._record(body)
|
|
91
|
+
# Specific handling for the resolve-running-WI fallback
|
|
92
|
+
if self.path.startswith("/api/task-pool/items"):
|
|
93
|
+
self.send_response(200)
|
|
94
|
+
self.send_header("Content-Type","application/json")
|
|
95
|
+
self.end_headers()
|
|
96
|
+
# Top-level workItems shape — matches the jq fallback chain
|
|
97
|
+
# in the skills (`.workItems[0].id // .data[0].id // empty`).
|
|
98
|
+
self.wfile.write(b"{\"workItems\":[{\"id\":\"wi-stub-1\"}]}")
|
|
99
|
+
return
|
|
100
|
+
self._ok()
|
|
101
|
+
def do_GET(self):
|
|
102
|
+
self._record(b"")
|
|
103
|
+
if self.path.startswith("/api/task-pool/items"):
|
|
104
|
+
self.send_response(200)
|
|
105
|
+
self.send_header("Content-Type","application/json")
|
|
106
|
+
self.end_headers()
|
|
107
|
+
# Top-level workItems shape — matches the jq fallback chain
|
|
108
|
+
# in the skills (`.workItems[0].id // .data[0].id // empty`).
|
|
109
|
+
self.wfile.write(b"{\"workItems\":[{\"id\":\"wi-stub-1\"}]}")
|
|
110
|
+
return
|
|
111
|
+
self._ok()
|
|
112
|
+
|
|
113
|
+
httpd = http.server.HTTPServer(("127.0.0.1", PORT), Handler)
|
|
114
|
+
httpd.serve_forever()
|
|
115
|
+
' >/dev/null 2>&1 &
|
|
116
|
+
echo $!
|
|
117
|
+
}
|
|
118
|
+
|
|
119
|
+
# ---------------------------------------------------------------------------
|
|
120
|
+
# Per-skill scenario harness
|
|
121
|
+
# ---------------------------------------------------------------------------
|
|
122
|
+
PORT=39184
|
|
123
|
+
TMPROOT=$(mktemp -d -t crewly-hygiene4-XXXXXX)
|
|
124
|
+
LOG="${TMPROOT}/requests.jsonl"
|
|
125
|
+
: > "$LOG"
|
|
126
|
+
|
|
127
|
+
STUB_PID=$(start_stub "$PORT" "$LOG")
|
|
128
|
+
trap "kill $STUB_PID 2>/dev/null || true; rm -rf $TMPROOT" EXIT
|
|
129
|
+
|
|
130
|
+
# Wait briefly for the HTTP server to bind.
|
|
131
|
+
for _ in 1 2 3 4 5 6 7 8 9 10; do
|
|
132
|
+
if curl -s "http://127.0.0.1:${PORT}/healthz" >/dev/null 2>&1; then break; fi
|
|
133
|
+
sleep 0.1
|
|
134
|
+
done
|
|
135
|
+
|
|
136
|
+
export CREWLY_API_URL="http://127.0.0.1:${PORT}"
|
|
137
|
+
|
|
138
|
+
echo "=== Hygiene #4 — /task-pool/complete body-shape smoke ==="
|
|
139
|
+
|
|
140
|
+
# ---------------------------------------------------------------------------
|
|
141
|
+
# Scenario 1 — agent/core/report-status (status=done branch)
|
|
142
|
+
# ---------------------------------------------------------------------------
|
|
143
|
+
echo ""
|
|
144
|
+
echo "--- Scenario 1: agent/core/report-status status=done ---"
|
|
145
|
+
: > "$LOG"
|
|
146
|
+
bash "${REPO_ROOT}/config/skills/agent/core/report-status/execute.sh" \
|
|
147
|
+
--session quinn-test --status done \
|
|
148
|
+
--summary "Report-status smoke summary" \
|
|
149
|
+
--project /tmp/proj-foo >/dev/null 2>&1 || true
|
|
150
|
+
|
|
151
|
+
# Expect at least one POST to /api/task-pool/complete/ — find it.
|
|
152
|
+
COMPLETE_LINE=$(grep -F '"path": "/api/task-pool/complete/' "$LOG" | head -1 || true)
|
|
153
|
+
if [ -z "$COMPLETE_LINE" ]; then
|
|
154
|
+
FAIL=$((FAIL + 1))
|
|
155
|
+
echo " ✗ no /task-pool/complete POST captured"
|
|
156
|
+
else
|
|
157
|
+
COMPLETE_BODY=$(printf '%s' "$COMPLETE_LINE" | jq -r '.body')
|
|
158
|
+
assert_jq "agentId is the session name" '.agentId == "quinn-test"' "$COMPLETE_BODY"
|
|
159
|
+
assert_jq "result.summary is non-empty" '.result.summary | length > 0' "$COMPLETE_BODY"
|
|
160
|
+
assert_jq "result.summary matches input" '.result.summary == "Report-status smoke summary"' "$COMPLETE_BODY"
|
|
161
|
+
assert_jq "no top-level summary leak (strict shape)" '.summary == null' "$COMPLETE_BODY"
|
|
162
|
+
fi
|
|
163
|
+
|
|
164
|
+
# ---------------------------------------------------------------------------
|
|
165
|
+
# Scenario 2 — agent/core/complete-task
|
|
166
|
+
# ---------------------------------------------------------------------------
|
|
167
|
+
echo ""
|
|
168
|
+
echo "--- Scenario 2: agent/core/complete-task ---"
|
|
169
|
+
: > "$LOG"
|
|
170
|
+
TASK_DIR=$(mktemp -d -t crewly-hygiene4-task-XXXXXX)
|
|
171
|
+
TASK_PATH="${TASK_DIR}/task.md"
|
|
172
|
+
echo "# task" > "$TASK_PATH"
|
|
173
|
+
|
|
174
|
+
bash "${REPO_ROOT}/config/skills/agent/core/complete-task/execute.sh" \
|
|
175
|
+
'{"absoluteTaskPath":"'"$TASK_PATH"'","sessionName":"quinn-ct","summary":"Complete-task smoke summary","workItemId":"wi-stub-1","output":{"prNumber":42,"callsites":5}}' \
|
|
176
|
+
>/dev/null 2>&1 || true
|
|
177
|
+
|
|
178
|
+
COMPLETE_LINE=$(grep -F '"path": "/api/task-pool/complete/' "$LOG" | head -1 || true)
|
|
179
|
+
if [ -z "$COMPLETE_LINE" ]; then
|
|
180
|
+
FAIL=$((FAIL + 1))
|
|
181
|
+
echo " ✗ no /task-pool/complete POST captured"
|
|
182
|
+
else
|
|
183
|
+
COMPLETE_BODY=$(printf '%s' "$COMPLETE_LINE" | jq -r '.body')
|
|
184
|
+
assert_jq "agentId is the session name" '.agentId == "quinn-ct"' "$COMPLETE_BODY"
|
|
185
|
+
assert_jq "result.summary matches" '.result.summary == "Complete-task smoke summary"' "$COMPLETE_BODY"
|
|
186
|
+
assert_jq "result.prNumber merged into result (was top-level result before)" '.result.prNumber == 42' "$COMPLETE_BODY"
|
|
187
|
+
assert_jq "result.callsites merged into result" '.result.callsites == 5' "$COMPLETE_BODY"
|
|
188
|
+
assert_jq "no top-level summary leak" '.summary == null' "$COMPLETE_BODY"
|
|
189
|
+
fi
|
|
190
|
+
rm -rf "$TASK_DIR"
|
|
191
|
+
|
|
192
|
+
# ---------------------------------------------------------------------------
|
|
193
|
+
# Scenario 3 — orchestrator/complete-task
|
|
194
|
+
# ---------------------------------------------------------------------------
|
|
195
|
+
echo ""
|
|
196
|
+
echo "--- Scenario 3: orchestrator/complete-task ---"
|
|
197
|
+
: > "$LOG"
|
|
198
|
+
bash "${REPO_ROOT}/config/skills/orchestrator/complete-task/execute.sh" \
|
|
199
|
+
'{"workItemId":"wi-stub-1","summary":"Orc complete-task smoke summary"}' \
|
|
200
|
+
>/dev/null 2>&1 || true
|
|
201
|
+
|
|
202
|
+
COMPLETE_LINE=$(grep -F '"path": "/api/task-pool/complete/' "$LOG" | head -1 || true)
|
|
203
|
+
if [ -z "$COMPLETE_LINE" ]; then
|
|
204
|
+
FAIL=$((FAIL + 1))
|
|
205
|
+
echo " ✗ no /task-pool/complete POST captured"
|
|
206
|
+
else
|
|
207
|
+
COMPLETE_BODY=$(printf '%s' "$COMPLETE_LINE" | jq -r '.body')
|
|
208
|
+
assert_jq "agentId defaults to crewly-orc" '.agentId == "crewly-orc"' "$COMPLETE_BODY"
|
|
209
|
+
assert_jq "result.summary matches" '.result.summary == "Orc complete-task smoke summary"' "$COMPLETE_BODY"
|
|
210
|
+
assert_jq "no top-level summary leak" '.summary == null' "$COMPLETE_BODY"
|
|
211
|
+
fi
|
|
212
|
+
|
|
213
|
+
echo ""
|
|
214
|
+
echo "--- Scenario 3b: orchestrator/complete-task with explicit agentId override ---"
|
|
215
|
+
: > "$LOG"
|
|
216
|
+
bash "${REPO_ROOT}/config/skills/orchestrator/complete-task/execute.sh" \
|
|
217
|
+
'{"workItemId":"wi-stub-1","summary":"Orc on-behalf-of summary","agentId":"crewly-product-leo-21a5477e"}' \
|
|
218
|
+
>/dev/null 2>&1 || true
|
|
219
|
+
|
|
220
|
+
COMPLETE_LINE=$(grep -F '"path": "/api/task-pool/complete/' "$LOG" | head -1 || true)
|
|
221
|
+
if [ -z "$COMPLETE_LINE" ]; then
|
|
222
|
+
FAIL=$((FAIL + 1))
|
|
223
|
+
echo " ✗ no /task-pool/complete POST captured"
|
|
224
|
+
else
|
|
225
|
+
COMPLETE_BODY=$(printf '%s' "$COMPLETE_LINE" | jq -r '.body')
|
|
226
|
+
assert_jq "agentId overridden to caller value" '.agentId == "crewly-product-leo-21a5477e"' "$COMPLETE_BODY"
|
|
227
|
+
fi
|
|
228
|
+
|
|
229
|
+
# ---------------------------------------------------------------------------
|
|
230
|
+
# Scenario 4 — orchestrator/complete-task rejects empty summary
|
|
231
|
+
# ---------------------------------------------------------------------------
|
|
232
|
+
echo ""
|
|
233
|
+
echo "--- Scenario 4: orchestrator/complete-task rejects empty summary ---"
|
|
234
|
+
: > "$LOG"
|
|
235
|
+
EXIT=0
|
|
236
|
+
OUTPUT=$(bash "${REPO_ROOT}/config/skills/orchestrator/complete-task/execute.sh" \
|
|
237
|
+
'{"workItemId":"wi-stub-1","summary":""}' 2>&1) || EXIT=$?
|
|
238
|
+
|
|
239
|
+
if [ "$EXIT" -ne 0 ] && printf '%s' "$OUTPUT" | grep -q "summary is required"; then
|
|
240
|
+
PASS=$((PASS + 1))
|
|
241
|
+
echo " ✓ exits non-zero with helpful 'summary is required' error"
|
|
242
|
+
else
|
|
243
|
+
FAIL=$((FAIL + 1))
|
|
244
|
+
echo " ✗ should reject empty summary; exit=$EXIT, output=$OUTPUT"
|
|
245
|
+
fi
|
|
246
|
+
|
|
247
|
+
echo ""
|
|
248
|
+
echo "=== Results: ${PASS} passed, ${FAIL} failed ==="
|
|
249
|
+
[ $FAIL -eq 0 ]
|
|
@@ -1,5 +1,17 @@
|
|
|
1
1
|
#!/bin/bash
|
|
2
|
-
#
|
|
2
|
+
# Claim the next available WorkItem from the V3 task-pool.
|
|
3
|
+
#
|
|
4
|
+
# V3-only as of spec 2026-05-06-task-management-v1-deprecation.md. The
|
|
5
|
+
# legacy `/task-management/take-next` endpoint (which read `.md` files
|
|
6
|
+
# from `delegated/open/`) is no longer the source of truth.
|
|
7
|
+
#
|
|
8
|
+
# Input shape (backwards-compat from v1):
|
|
9
|
+
# { "sessionName": "dev-1", "projectPath"?: "...", "taskGroup"?: "..." }
|
|
10
|
+
#
|
|
11
|
+
# `taskGroup` (legacy v1 milestone filter) maps to V3's `filters.types`.
|
|
12
|
+
# `teamMemberId` is no longer needed — V3 keys claims by `agentId`
|
|
13
|
+
# (= sessionName).
|
|
14
|
+
|
|
3
15
|
set -euo pipefail
|
|
4
16
|
SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)"
|
|
5
17
|
source "${SCRIPT_DIR}/../../_common/lib.sh"
|
|
@@ -10,18 +22,9 @@ INPUT=$(read_json_input "${1:-}")
|
|
|
10
22
|
SESSION_NAME=$(printf '%s' "$INPUT" | jq -r '.sessionName // empty')
|
|
11
23
|
require_param "sessionName" "$SESSION_NAME"
|
|
12
24
|
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
BODY=$(jq -n \
|
|
18
|
-
--arg sessionName "$SESSION_NAME" \
|
|
19
|
-
--arg teamMemberId "$TEAM_MEMBER_ID" \
|
|
20
|
-
--arg projectPath "$PROJECT_PATH" \
|
|
21
|
-
--arg taskGroup "$TASK_GROUP" \
|
|
22
|
-
'{sessionName: $sessionName} +
|
|
23
|
-
(if $teamMemberId != "" then {teamMemberId: $teamMemberId} else {} end) +
|
|
24
|
-
(if $projectPath != "" then {projectPath: $projectPath} else {} end) +
|
|
25
|
-
(if $taskGroup != "" then {taskGroup: $taskGroup} else {} end)')
|
|
25
|
+
# v1's `taskGroup` is informational metadata; V3 filters by WorkItem `type`
|
|
26
|
+
# instead. We pass the session name as the agent identity and let the pool
|
|
27
|
+
# pick the highest-scored available WI for this agent.
|
|
28
|
+
BODY=$(jq -n --arg agentId "$SESSION_NAME" '{agentId: $agentId}')
|
|
26
29
|
|
|
27
|
-
api_call POST "/task-
|
|
30
|
+
api_call POST "/task-pool/claim" "$BODY"
|