crewly 1.12.1 → 1.13.1
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/skills/_common/complete-body-shape.test.sh +113 -0
- package/config/skills/_common/no-dangling-symlinks.test.sh +63 -0
- package/config/skills/_common/task-pool-body-shape.test.sh +471 -0
- package/config/skills/agent/core/accept-task/execute.sh +30 -5
- package/config/skills/agent/core/block-task/execute.sh +59 -6
- package/config/skills/agent/core/complete-task/SKILL.md +37 -5
- package/config/skills/agent/core/complete-task/execute.sh +40 -9
- package/config/skills/agent/core/complete-task/execute.test.sh +213 -0
- package/config/skills/agent/core/create-task/SKILL.md +33 -0
- package/config/skills/agent/core/create-task/execute.sh +82 -23
- package/config/skills/agent/core/delegate-task/execute.sh +46 -0
- package/config/skills/agent/core/get-team-norms/SKILL.md +1 -1
- package/config/skills/agent/core/get-team-norms/execute.sh +73 -2
- package/config/skills/agent/core/handoff-task/execute.sh +8 -1
- package/config/skills/agent/core/report-status/SKILL.md +26 -0
- package/config/skills/agent/core/report-status/execute.sh +40 -5
- package/config/skills/orchestrator/delegate-task/SKILL.md +1 -1
- package/config/skills/orchestrator/delegate-task/execute.sh +45 -11
- package/config/skills/orchestrator/delegate-task/execute.test.sh +153 -1
- package/config/skills/team-leader/aggregate-results/SKILL.md +1 -1
- package/config/skills/team-leader/decompose-goal/execute.sh +11 -16
- package/config/skills/team-leader/delegate-task/SKILL.md +14 -1
- package/config/skills/team-leader/delegate-task/execute.sh +132 -43
- package/config/skills/team-leader/delegate-task/execute.test.sh +180 -27
- package/config/vitest-exclude.constants.ts +56 -0
- package/dist/backend/backend/src/controllers/chat/chat.controller.d.ts.map +1 -1
- package/dist/backend/backend/src/controllers/chat/chat.controller.js +29 -7
- package/dist/backend/backend/src/controllers/chat/chat.controller.js.map +1 -1
- package/dist/backend/backend/src/controllers/cloud/cloud.controller.d.ts.map +1 -1
- package/dist/backend/backend/src/controllers/cloud/cloud.controller.js +1 -1
- package/dist/backend/backend/src/controllers/cloud/cloud.controller.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 +18 -3
- package/dist/backend/backend/src/controllers/monitoring/terminal.controller.js.map +1 -1
- package/dist/backend/backend/src/controllers/slack/slack.controller.d.ts.map +1 -1
- package/dist/backend/backend/src/controllers/slack/slack.controller.js +18 -15
- package/dist/backend/backend/src/controllers/slack/slack.controller.js.map +1 -1
- package/dist/backend/backend/src/controllers/task-pool/task-pool.controller.d.ts +6 -1
- 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 +19 -10
- package/dist/backend/backend/src/controllers/task-pool/task-pool.controller.js.map +1 -1
- package/dist/backend/backend/src/index.d.ts.map +1 -1
- package/dist/backend/backend/src/index.js +20 -0
- package/dist/backend/backend/src/index.js.map +1 -1
- package/dist/backend/backend/src/scripts/stamp-build.d.ts +25 -0
- package/dist/backend/backend/src/scripts/stamp-build.d.ts.map +1 -0
- package/dist/backend/backend/src/scripts/stamp-build.js +48 -0
- package/dist/backend/backend/src/scripts/stamp-build.js.map +1 -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 +33 -1
- package/dist/backend/backend/src/services/agent/agent-registration.service.js.map +1 -1
- package/dist/backend/backend/src/services/agent/crewly-agent/crewly-agent-external-runtime.service.d.ts +78 -2
- package/dist/backend/backend/src/services/agent/crewly-agent/crewly-agent-external-runtime.service.d.ts.map +1 -1
- package/dist/backend/backend/src/services/agent/crewly-agent/crewly-agent-external-runtime.service.js +248 -44
- package/dist/backend/backend/src/services/agent/crewly-agent/crewly-agent-external-runtime.service.js.map +1 -1
- package/dist/backend/backend/src/services/agent/crewly-agent/types.d.ts +51 -3
- 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 +31 -1
- package/dist/backend/backend/src/services/agent/crewly-agent/types.js.map +1 -1
- package/dist/backend/backend/src/services/cloud/cloud-client.service.d.ts +5 -0
- package/dist/backend/backend/src/services/cloud/cloud-client.service.d.ts.map +1 -1
- package/dist/backend/backend/src/services/cloud/cloud-client.service.js +7 -0
- package/dist/backend/backend/src/services/cloud/cloud-client.service.js.map +1 -1
- package/dist/backend/backend/src/services/event-bus/event-to-workitem-bridge.service.d.ts +15 -0
- package/dist/backend/backend/src/services/event-bus/event-to-workitem-bridge.service.d.ts.map +1 -1
- package/dist/backend/backend/src/services/event-bus/event-to-workitem-bridge.service.js +40 -0
- package/dist/backend/backend/src/services/event-bus/event-to-workitem-bridge.service.js.map +1 -1
- package/dist/backend/backend/src/services/orchestrator/commitment-approval-guard.d.ts.map +1 -1
- package/dist/backend/backend/src/services/orchestrator/commitment-approval-guard.js +26 -0
- package/dist/backend/backend/src/services/orchestrator/commitment-approval-guard.js.map +1 -1
- package/dist/backend/backend/src/services/orchestrator/onboarding/materialize-team.d.ts.map +1 -1
- package/dist/backend/backend/src/services/orchestrator/onboarding/materialize-team.js +19 -3
- package/dist/backend/backend/src/services/orchestrator/onboarding/materialize-team.js.map +1 -1
- package/dist/backend/backend/src/services/orchestrator/orchestrator-status.service.d.ts +28 -3
- package/dist/backend/backend/src/services/orchestrator/orchestrator-status.service.d.ts.map +1 -1
- package/dist/backend/backend/src/services/orchestrator/orchestrator-status.service.js +65 -8
- package/dist/backend/backend/src/services/orchestrator/orchestrator-status.service.js.map +1 -1
- package/dist/backend/backend/src/services/reconciler/reconcile-rules.d.ts +214 -4
- package/dist/backend/backend/src/services/reconciler/reconcile-rules.d.ts.map +1 -1
- package/dist/backend/backend/src/services/reconciler/reconcile-rules.js +330 -48
- 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 +13 -1
- package/dist/backend/backend/src/services/reconciler/reconciler-data-provider.d.ts.map +1 -1
- package/dist/backend/backend/src/services/reconciler/reconciler-data-provider.js +84 -5
- package/dist/backend/backend/src/services/reconciler/reconciler-data-provider.js.map +1 -1
- package/dist/backend/backend/src/services/reconciler/reconciler.service.d.ts +14 -0
- package/dist/backend/backend/src/services/reconciler/reconciler.service.d.ts.map +1 -1
- package/dist/backend/backend/src/services/reconciler/reconciler.service.js +77 -3
- package/dist/backend/backend/src/services/reconciler/reconciler.service.js.map +1 -1
- package/dist/backend/backend/src/services/task-pool/task-pool.service.d.ts +152 -7
- 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 +268 -36
- package/dist/backend/backend/src/services/task-pool/task-pool.service.js.map +1 -1
- package/dist/backend/backend/src/services/v3/escalation-router.service.js +2 -2
- package/dist/backend/backend/src/services/v3/escalation-router.service.js.map +1 -1
- 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 +39 -2
- package/dist/backend/backend/src/services/v3/request-sla.subscriber.js.map +1 -1
- package/dist/backend/backend/src/services/wiki/wiki-migrate.service.d.ts +3 -0
- package/dist/backend/backend/src/services/wiki/wiki-migrate.service.d.ts.map +1 -1
- package/dist/backend/backend/src/services/wiki/wiki-migrate.service.js +21 -10
- package/dist/backend/backend/src/services/wiki/wiki-migrate.service.js.map +1 -1
- package/dist/backend/backend/src/types/v2/index.d.ts +1 -1
- package/dist/backend/backend/src/types/v2/index.d.ts.map +1 -1
- package/dist/backend/backend/src/types/v2/index.js +1 -1
- package/dist/backend/backend/src/types/v2/index.js.map +1 -1
- package/dist/backend/backend/src/types/v2/work-item.types.d.ts +181 -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 +104 -17
- package/dist/backend/backend/src/types/v2/work-item.types.js.map +1 -1
- package/dist/backend/backend/src/utils/build-provenance.d.ts +150 -0
- package/dist/backend/backend/src/utils/build-provenance.d.ts.map +1 -0
- package/dist/backend/backend/src/utils/build-provenance.js +211 -0
- package/dist/backend/backend/src/utils/build-provenance.js.map +1 -0
- package/dist/backend/backend/src/websocket/chat.gateway.d.ts.map +1 -1
- package/dist/backend/backend/src/websocket/chat.gateway.js +7 -1
- package/dist/backend/backend/src/websocket/chat.gateway.js.map +1 -1
- package/dist/backend/build-info.json +4 -0
- package/dist/backend/config/vitest-exclude.constants.d.ts +53 -0
- package/dist/backend/config/vitest-exclude.constants.d.ts.map +1 -0
- package/dist/backend/config/vitest-exclude.constants.js +55 -0
- package/dist/backend/config/vitest-exclude.constants.js.map +1 -0
- package/dist/cli/backend/src/services/agent/active-work-briefing.service.d.ts +538 -0
- package/dist/cli/backend/src/services/agent/active-work-briefing.service.d.ts.map +1 -0
- package/dist/cli/backend/src/services/agent/active-work-briefing.service.js +802 -0
- package/dist/cli/backend/src/services/agent/active-work-briefing.service.js.map +1 -0
- package/dist/cli/backend/src/services/agent/agent-heartbeat.service.d.ts +240 -0
- package/dist/cli/backend/src/services/agent/agent-heartbeat.service.d.ts.map +1 -0
- package/dist/cli/backend/src/services/agent/agent-heartbeat.service.js +524 -0
- package/dist/cli/backend/src/services/agent/agent-heartbeat.service.js.map +1 -0
- package/dist/cli/backend/src/services/agent/agent-registration.service.d.ts +629 -0
- package/dist/cli/backend/src/services/agent/agent-registration.service.d.ts.map +1 -0
- package/dist/cli/backend/src/services/agent/agent-registration.service.js +4548 -0
- package/dist/cli/backend/src/services/agent/agent-registration.service.js.map +1 -0
- package/dist/cli/backend/src/services/agent/agent-suspend.service.d.ts +118 -0
- package/dist/cli/backend/src/services/agent/agent-suspend.service.d.ts.map +1 -0
- package/dist/cli/backend/src/services/agent/agent-suspend.service.js +304 -0
- package/dist/cli/backend/src/services/agent/agent-suspend.service.js.map +1 -0
- package/dist/cli/backend/src/services/agent/auditor-scheduler.service.d.ts +196 -0
- package/dist/cli/backend/src/services/agent/auditor-scheduler.service.d.ts.map +1 -0
- package/dist/cli/backend/src/services/agent/auditor-scheduler.service.js +504 -0
- package/dist/cli/backend/src/services/agent/auditor-scheduler.service.js.map +1 -0
- package/dist/cli/backend/src/services/agent/claude-runtime.service.d.ts +97 -0
- package/dist/cli/backend/src/services/agent/claude-runtime.service.d.ts.map +1 -0
- package/dist/cli/backend/src/services/agent/claude-runtime.service.js +334 -0
- package/dist/cli/backend/src/services/agent/claude-runtime.service.js.map +1 -0
- package/dist/cli/backend/src/services/agent/codex-runtime.service.d.ts +47 -0
- package/dist/cli/backend/src/services/agent/codex-runtime.service.d.ts.map +1 -0
- package/dist/cli/backend/src/services/agent/codex-runtime.service.js +112 -0
- package/dist/cli/backend/src/services/agent/codex-runtime.service.js.map +1 -0
- package/dist/cli/backend/src/services/agent/context-window-monitor.service.d.ts +323 -0
- package/dist/cli/backend/src/services/agent/context-window-monitor.service.d.ts.map +1 -0
- package/dist/cli/backend/src/services/agent/context-window-monitor.service.js +1056 -0
- package/dist/cli/backend/src/services/agent/context-window-monitor.service.js.map +1 -0
- package/dist/cli/backend/src/services/agent/crewly-agent/crewly-agent-external-runtime.service.d.ts +198 -0
- package/dist/cli/backend/src/services/agent/crewly-agent/crewly-agent-external-runtime.service.d.ts.map +1 -0
- package/dist/cli/backend/src/services/agent/crewly-agent/crewly-agent-external-runtime.service.js +816 -0
- package/dist/cli/backend/src/services/agent/crewly-agent/crewly-agent-external-runtime.service.js.map +1 -0
- package/dist/cli/backend/src/services/agent/crewly-agent/in-process-log-buffer.d.ts +155 -0
- package/dist/cli/backend/src/services/agent/crewly-agent/in-process-log-buffer.d.ts.map +1 -0
- package/dist/cli/backend/src/services/agent/crewly-agent/in-process-log-buffer.js +272 -0
- package/dist/cli/backend/src/services/agent/crewly-agent/in-process-log-buffer.js.map +1 -0
- package/dist/cli/backend/src/services/agent/crewly-agent/in-process-runtime-registry.d.ts +91 -0
- package/dist/cli/backend/src/services/agent/crewly-agent/in-process-runtime-registry.d.ts.map +1 -0
- package/dist/cli/backend/src/services/agent/crewly-agent/in-process-runtime-registry.js +120 -0
- package/dist/cli/backend/src/services/agent/crewly-agent/in-process-runtime-registry.js.map +1 -0
- package/dist/cli/backend/src/services/agent/crewly-agent/types.d.ts +536 -0
- package/dist/cli/backend/src/services/agent/crewly-agent/types.d.ts.map +1 -0
- package/dist/cli/backend/src/services/agent/crewly-agent/types.js +282 -0
- package/dist/cli/backend/src/services/agent/crewly-agent/types.js.map +1 -0
- package/dist/cli/backend/src/services/agent/disk-cleanup.service.d.ts +100 -0
- package/dist/cli/backend/src/services/agent/disk-cleanup.service.d.ts.map +1 -0
- package/dist/cli/backend/src/services/agent/disk-cleanup.service.js +149 -0
- package/dist/cli/backend/src/services/agent/disk-cleanup.service.js.map +1 -0
- package/dist/cli/backend/src/services/agent/gemini-runtime.service.d.ts +130 -0
- package/dist/cli/backend/src/services/agent/gemini-runtime.service.d.ts.map +1 -0
- package/dist/cli/backend/src/services/agent/gemini-runtime.service.js +758 -0
- package/dist/cli/backend/src/services/agent/gemini-runtime.service.js.map +1 -0
- package/dist/cli/backend/src/services/agent/oauth-relogin-monitor.service.d.ts +216 -0
- package/dist/cli/backend/src/services/agent/oauth-relogin-monitor.service.d.ts.map +1 -0
- package/dist/cli/backend/src/services/agent/oauth-relogin-monitor.service.js +508 -0
- package/dist/cli/backend/src/services/agent/oauth-relogin-monitor.service.js.map +1 -0
- package/dist/cli/backend/src/services/agent/pty-activity-tracker.service.d.ts +113 -0
- package/dist/cli/backend/src/services/agent/pty-activity-tracker.service.d.ts.map +1 -0
- package/dist/cli/backend/src/services/agent/pty-activity-tracker.service.js +161 -0
- package/dist/cli/backend/src/services/agent/pty-activity-tracker.service.js.map +1 -0
- package/dist/cli/backend/src/services/agent/runtime-agent.service.abstract.d.ts +156 -0
- package/dist/cli/backend/src/services/agent/runtime-agent.service.abstract.d.ts.map +1 -0
- package/dist/cli/backend/src/services/agent/runtime-agent.service.abstract.js +641 -0
- package/dist/cli/backend/src/services/agent/runtime-agent.service.abstract.js.map +1 -0
- package/dist/cli/backend/src/services/agent/runtime-exit-monitor.service.d.ts +295 -0
- package/dist/cli/backend/src/services/agent/runtime-exit-monitor.service.d.ts.map +1 -0
- package/dist/cli/backend/src/services/agent/runtime-exit-monitor.service.js +1166 -0
- package/dist/cli/backend/src/services/agent/runtime-exit-monitor.service.js.map +1 -0
- package/dist/cli/backend/src/services/agent/runtime-service.factory.d.ts +71 -0
- package/dist/cli/backend/src/services/agent/runtime-service.factory.d.ts.map +1 -0
- package/dist/cli/backend/src/services/agent/runtime-service.factory.js +174 -0
- package/dist/cli/backend/src/services/agent/runtime-service.factory.js.map +1 -0
- package/dist/cli/backend/src/services/ai/prompt-builder.service.d.ts +435 -0
- package/dist/cli/backend/src/services/ai/prompt-builder.service.d.ts.map +1 -0
- package/dist/cli/backend/src/services/ai/prompt-builder.service.js +1331 -0
- package/dist/cli/backend/src/services/ai/prompt-builder.service.js.map +1 -0
- package/dist/cli/backend/src/services/ai/prompt-modules/capability-overlay.module.d.ts +33 -0
- package/dist/cli/backend/src/services/ai/prompt-modules/capability-overlay.module.d.ts.map +1 -0
- package/dist/cli/backend/src/services/ai/prompt-modules/capability-overlay.module.js +70 -0
- package/dist/cli/backend/src/services/ai/prompt-modules/capability-overlay.module.js.map +1 -0
- package/dist/cli/backend/src/services/ai/prompt-modules/communication.module.d.ts +100 -0
- package/dist/cli/backend/src/services/ai/prompt-modules/communication.module.d.ts.map +1 -0
- package/dist/cli/backend/src/services/ai/prompt-modules/communication.module.js +296 -0
- package/dist/cli/backend/src/services/ai/prompt-modules/communication.module.js.map +1 -0
- package/dist/cli/backend/src/services/ai/prompt-modules/decision-rights.module.d.ts +59 -0
- package/dist/cli/backend/src/services/ai/prompt-modules/decision-rights.module.d.ts.map +1 -0
- package/dist/cli/backend/src/services/ai/prompt-modules/decision-rights.module.js +87 -0
- package/dist/cli/backend/src/services/ai/prompt-modules/decision-rights.module.js.map +1 -0
- package/dist/cli/backend/src/services/ai/prompt-modules/default-execution-loop.module.d.ts +67 -0
- package/dist/cli/backend/src/services/ai/prompt-modules/default-execution-loop.module.d.ts.map +1 -0
- package/dist/cli/backend/src/services/ai/prompt-modules/default-execution-loop.module.js +84 -0
- package/dist/cli/backend/src/services/ai/prompt-modules/default-execution-loop.module.js.map +1 -0
- package/dist/cli/backend/src/services/ai/prompt-modules/domain-sop.module.d.ts +35 -0
- package/dist/cli/backend/src/services/ai/prompt-modules/domain-sop.module.d.ts.map +1 -0
- package/dist/cli/backend/src/services/ai/prompt-modules/domain-sop.module.js +50 -0
- package/dist/cli/backend/src/services/ai/prompt-modules/domain-sop.module.js.map +1 -0
- package/dist/cli/backend/src/services/ai/prompt-modules/expert-profile.module.d.ts +41 -0
- package/dist/cli/backend/src/services/ai/prompt-modules/expert-profile.module.d.ts.map +1 -0
- package/dist/cli/backend/src/services/ai/prompt-modules/expert-profile.module.js +95 -0
- package/dist/cli/backend/src/services/ai/prompt-modules/expert-profile.module.js.map +1 -0
- package/dist/cli/backend/src/services/ai/prompt-modules/identity.module.d.ts +28 -0
- package/dist/cli/backend/src/services/ai/prompt-modules/identity.module.d.ts.map +1 -0
- package/dist/cli/backend/src/services/ai/prompt-modules/identity.module.js +47 -0
- package/dist/cli/backend/src/services/ai/prompt-modules/identity.module.js.map +1 -0
- package/dist/cli/backend/src/services/ai/prompt-modules/lazy-anti-patterns.module.d.ts +65 -0
- package/dist/cli/backend/src/services/ai/prompt-modules/lazy-anti-patterns.module.d.ts.map +1 -0
- package/dist/cli/backend/src/services/ai/prompt-modules/lazy-anti-patterns.module.js +79 -0
- package/dist/cli/backend/src/services/ai/prompt-modules/lazy-anti-patterns.module.js.map +1 -0
- package/dist/cli/backend/src/services/ai/prompt-modules/learning-reference.module.d.ts +28 -0
- package/dist/cli/backend/src/services/ai/prompt-modules/learning-reference.module.d.ts.map +1 -0
- package/dist/cli/backend/src/services/ai/prompt-modules/learning-reference.module.js +55 -0
- package/dist/cli/backend/src/services/ai/prompt-modules/learning-reference.module.js.map +1 -0
- package/dist/cli/backend/src/services/ai/prompt-modules/lifecycle.module.d.ts +44 -0
- package/dist/cli/backend/src/services/ai/prompt-modules/lifecycle.module.d.ts.map +1 -0
- package/dist/cli/backend/src/services/ai/prompt-modules/lifecycle.module.js +120 -0
- package/dist/cli/backend/src/services/ai/prompt-modules/lifecycle.module.js.map +1 -0
- package/dist/cli/backend/src/services/ai/prompt-modules/markdown-file-module.d.ts +46 -0
- package/dist/cli/backend/src/services/ai/prompt-modules/markdown-file-module.d.ts.map +1 -0
- package/dist/cli/backend/src/services/ai/prompt-modules/markdown-file-module.js +44 -0
- package/dist/cli/backend/src/services/ai/prompt-modules/markdown-file-module.js.map +1 -0
- package/dist/cli/backend/src/services/ai/prompt-modules/memory-reference.module.d.ts +28 -0
- package/dist/cli/backend/src/services/ai/prompt-modules/memory-reference.module.d.ts.map +1 -0
- package/dist/cli/backend/src/services/ai/prompt-modules/memory-reference.module.js +46 -0
- package/dist/cli/backend/src/services/ai/prompt-modules/memory-reference.module.js.map +1 -0
- package/dist/cli/backend/src/services/ai/prompt-modules/mission-context.module.d.ts +60 -0
- package/dist/cli/backend/src/services/ai/prompt-modules/mission-context.module.d.ts.map +1 -0
- package/dist/cli/backend/src/services/ai/prompt-modules/mission-context.module.js +104 -0
- package/dist/cli/backend/src/services/ai/prompt-modules/mission-context.module.js.map +1 -0
- package/dist/cli/backend/src/services/ai/prompt-modules/project-reference.module.d.ts +29 -0
- package/dist/cli/backend/src/services/ai/prompt-modules/project-reference.module.d.ts.map +1 -0
- package/dist/cli/backend/src/services/ai/prompt-modules/project-reference.module.js +50 -0
- package/dist/cli/backend/src/services/ai/prompt-modules/project-reference.module.js.map +1 -0
- package/dist/cli/backend/src/services/ai/prompt-modules/prompt-assembly.service.d.ts +103 -0
- package/dist/cli/backend/src/services/ai/prompt-modules/prompt-assembly.service.d.ts.map +1 -0
- package/dist/cli/backend/src/services/ai/prompt-modules/prompt-assembly.service.js +383 -0
- package/dist/cli/backend/src/services/ai/prompt-modules/prompt-assembly.service.js.map +1 -0
- package/dist/cli/backend/src/services/ai/prompt-modules/recovery.module.d.ts +34 -0
- package/dist/cli/backend/src/services/ai/prompt-modules/recovery.module.d.ts.map +1 -0
- package/dist/cli/backend/src/services/ai/prompt-modules/recovery.module.js +96 -0
- package/dist/cli/backend/src/services/ai/prompt-modules/recovery.module.js.map +1 -0
- package/dist/cli/backend/src/services/ai/prompt-modules/request-contract.module.d.ts +106 -0
- package/dist/cli/backend/src/services/ai/prompt-modules/request-contract.module.d.ts.map +1 -0
- package/dist/cli/backend/src/services/ai/prompt-modules/request-contract.module.js +167 -0
- package/dist/cli/backend/src/services/ai/prompt-modules/request-contract.module.js.map +1 -0
- package/dist/cli/backend/src/services/ai/prompt-modules/risk-policy.module.d.ts +35 -0
- package/dist/cli/backend/src/services/ai/prompt-modules/risk-policy.module.d.ts.map +1 -0
- package/dist/cli/backend/src/services/ai/prompt-modules/risk-policy.module.js +50 -0
- package/dist/cli/backend/src/services/ai/prompt-modules/risk-policy.module.js.map +1 -0
- package/dist/cli/backend/src/services/ai/prompt-modules/role-boundary.module.d.ts +91 -0
- package/dist/cli/backend/src/services/ai/prompt-modules/role-boundary.module.d.ts.map +1 -0
- package/dist/cli/backend/src/services/ai/prompt-modules/role-boundary.module.js +411 -0
- package/dist/cli/backend/src/services/ai/prompt-modules/role-boundary.module.js.map +1 -0
- package/dist/cli/backend/src/services/ai/prompt-modules/skills-reference.module.d.ts +62 -0
- package/dist/cli/backend/src/services/ai/prompt-modules/skills-reference.module.d.ts.map +1 -0
- package/dist/cli/backend/src/services/ai/prompt-modules/skills-reference.module.js +199 -0
- package/dist/cli/backend/src/services/ai/prompt-modules/skills-reference.module.js.map +1 -0
- package/dist/cli/backend/src/services/ai/prompt-modules/sop-norm-distinction.module.d.ts +79 -0
- package/dist/cli/backend/src/services/ai/prompt-modules/sop-norm-distinction.module.d.ts.map +1 -0
- package/dist/cli/backend/src/services/ai/prompt-modules/sop-norm-distinction.module.js +118 -0
- package/dist/cli/backend/src/services/ai/prompt-modules/sop-norm-distinction.module.js.map +1 -0
- package/dist/cli/backend/src/services/ai/prompt-modules/soul.module.d.ts +102 -0
- package/dist/cli/backend/src/services/ai/prompt-modules/soul.module.d.ts.map +1 -0
- package/dist/cli/backend/src/services/ai/prompt-modules/soul.module.js +229 -0
- package/dist/cli/backend/src/services/ai/prompt-modules/soul.module.js.map +1 -0
- package/dist/cli/backend/src/services/ai/prompt-modules/team-norms.module.d.ts +61 -0
- package/dist/cli/backend/src/services/ai/prompt-modules/team-norms.module.d.ts.map +1 -0
- package/dist/cli/backend/src/services/ai/prompt-modules/team-norms.module.js +197 -0
- package/dist/cli/backend/src/services/ai/prompt-modules/team-norms.module.js.map +1 -0
- package/dist/cli/backend/src/services/ai/prompt-modules/team-reference.module.d.ts +54 -0
- package/dist/cli/backend/src/services/ai/prompt-modules/team-reference.module.d.ts.map +1 -0
- package/dist/cli/backend/src/services/ai/prompt-modules/team-reference.module.js +149 -0
- package/dist/cli/backend/src/services/ai/prompt-modules/team-reference.module.js.map +1 -0
- package/dist/cli/backend/src/services/ai/prompt-modules/user-profile-reference.module.d.ts +32 -0
- package/dist/cli/backend/src/services/ai/prompt-modules/user-profile-reference.module.d.ts.map +1 -0
- package/dist/cli/backend/src/services/ai/prompt-modules/user-profile-reference.module.js +69 -0
- package/dist/cli/backend/src/services/ai/prompt-modules/user-profile-reference.module.js.map +1 -0
- package/dist/cli/backend/src/services/ai/prompt-modules/working-memory.module.d.ts +91 -0
- package/dist/cli/backend/src/services/ai/prompt-modules/working-memory.module.d.ts.map +1 -0
- package/dist/cli/backend/src/services/ai/prompt-modules/working-memory.module.js +136 -0
- package/dist/cli/backend/src/services/ai/prompt-modules/working-memory.module.js.map +1 -0
- package/dist/cli/backend/src/services/ai/self-improvement/growth-areas.service.d.ts +81 -0
- package/dist/cli/backend/src/services/ai/self-improvement/growth-areas.service.d.ts.map +1 -0
- package/dist/cli/backend/src/services/ai/self-improvement/growth-areas.service.js +135 -0
- package/dist/cli/backend/src/services/ai/self-improvement/growth-areas.service.js.map +1 -0
- package/dist/cli/backend/src/services/chat-v2/chat-v2.service.d.ts +737 -0
- package/dist/cli/backend/src/services/chat-v2/chat-v2.service.d.ts.map +1 -0
- package/dist/cli/backend/src/services/chat-v2/chat-v2.service.js +1213 -0
- package/dist/cli/backend/src/services/chat-v2/chat-v2.service.js.map +1 -0
- package/dist/cli/backend/src/services/chat-v2/chat-v2.singleton.d.ts +27 -0
- package/dist/cli/backend/src/services/chat-v2/chat-v2.singleton.d.ts.map +1 -0
- package/dist/cli/backend/src/services/chat-v2/chat-v2.singleton.js +57 -0
- package/dist/cli/backend/src/services/chat-v2/chat-v2.singleton.js.map +1 -0
- package/dist/cli/backend/src/services/chat-v2/config.d.ts +100 -0
- package/dist/cli/backend/src/services/chat-v2/config.d.ts.map +1 -0
- package/dist/cli/backend/src/services/chat-v2/config.js +174 -0
- package/dist/cli/backend/src/services/chat-v2/config.js.map +1 -0
- package/dist/cli/backend/src/services/chat-v2/legacy-dto.utils.d.ts +118 -0
- package/dist/cli/backend/src/services/chat-v2/legacy-dto.utils.d.ts.map +1 -0
- package/dist/cli/backend/src/services/chat-v2/legacy-dto.utils.js +171 -0
- package/dist/cli/backend/src/services/chat-v2/legacy-dto.utils.js.map +1 -0
- package/dist/cli/backend/src/services/chat-v2/sqlite/channel.store.d.ts +188 -0
- package/dist/cli/backend/src/services/chat-v2/sqlite/channel.store.d.ts.map +1 -0
- package/dist/cli/backend/src/services/chat-v2/sqlite/channel.store.js +317 -0
- package/dist/cli/backend/src/services/chat-v2/sqlite/channel.store.js.map +1 -0
- package/dist/cli/backend/src/services/chat-v2/sqlite/chat-db.d.ts +119 -0
- package/dist/cli/backend/src/services/chat-v2/sqlite/chat-db.d.ts.map +1 -0
- package/dist/cli/backend/src/services/chat-v2/sqlite/chat-db.js +551 -0
- package/dist/cli/backend/src/services/chat-v2/sqlite/chat-db.js.map +1 -0
- package/dist/cli/backend/src/services/chat-v2/sqlite/message.store.d.ts +208 -0
- package/dist/cli/backend/src/services/chat-v2/sqlite/message.store.d.ts.map +1 -0
- package/dist/cli/backend/src/services/chat-v2/sqlite/message.store.js +405 -0
- package/dist/cli/backend/src/services/chat-v2/sqlite/message.store.js.map +1 -0
- package/dist/cli/backend/src/services/chat-v2/types.d.ts +341 -0
- package/dist/cli/backend/src/services/chat-v2/types.d.ts.map +1 -0
- package/dist/cli/backend/src/services/chat-v2/types.js +61 -0
- package/dist/cli/backend/src/services/chat-v2/types.js.map +1 -0
- package/dist/cli/backend/src/services/cloud/cloud-client.service.d.ts +5 -0
- package/dist/cli/backend/src/services/cloud/cloud-client.service.d.ts.map +1 -1
- package/dist/cli/backend/src/services/cloud/cloud-client.service.js +7 -0
- package/dist/cli/backend/src/services/cloud/cloud-client.service.js.map +1 -1
- package/dist/cli/backend/src/services/continuation/patterns/idle-patterns.d.ts +37 -0
- package/dist/cli/backend/src/services/continuation/patterns/idle-patterns.d.ts.map +1 -0
- package/dist/cli/backend/src/services/continuation/patterns/idle-patterns.js +63 -0
- package/dist/cli/backend/src/services/continuation/patterns/idle-patterns.js.map +1 -0
- package/dist/cli/backend/src/services/intent-task/intent-classifier.rules.d.ts +335 -0
- package/dist/cli/backend/src/services/intent-task/intent-classifier.rules.d.ts.map +1 -0
- package/dist/cli/backend/src/services/intent-task/intent-classifier.rules.js +421 -0
- package/dist/cli/backend/src/services/intent-task/intent-classifier.rules.js.map +1 -0
- package/dist/cli/backend/src/services/mcp-client.d.ts +233 -0
- package/dist/cli/backend/src/services/mcp-client.d.ts.map +1 -0
- package/dist/cli/backend/src/services/mcp-client.js +302 -0
- package/dist/cli/backend/src/services/mcp-client.js.map +1 -0
- package/dist/cli/backend/src/services/memory/mission-context.service.d.ts +168 -0
- package/dist/cli/backend/src/services/memory/mission-context.service.d.ts.map +1 -0
- package/dist/cli/backend/src/services/memory/mission-context.service.js +365 -0
- package/dist/cli/backend/src/services/memory/mission-context.service.js.map +1 -0
- package/dist/cli/backend/src/services/memory/session-memory.service.d.ts +197 -0
- package/dist/cli/backend/src/services/memory/session-memory.service.d.ts.map +1 -0
- package/dist/cli/backend/src/services/memory/session-memory.service.js +369 -0
- package/dist/cli/backend/src/services/memory/session-memory.service.js.map +1 -0
- package/dist/cli/backend/src/services/memory/user-profile.service.d.ts +77 -0
- package/dist/cli/backend/src/services/memory/user-profile.service.d.ts.map +1 -0
- package/dist/cli/backend/src/services/memory/user-profile.service.js +171 -0
- package/dist/cli/backend/src/services/memory/user-profile.service.js.map +1 -0
- package/dist/cli/backend/src/services/memory/working-memory.service.d.ts +232 -0
- package/dist/cli/backend/src/services/memory/working-memory.service.d.ts.map +1 -0
- package/dist/cli/backend/src/services/memory/working-memory.service.js +417 -0
- package/dist/cli/backend/src/services/memory/working-memory.service.js.map +1 -0
- package/dist/cli/backend/src/services/messaging/sub-agent-message-queue.service.d.ts +84 -0
- package/dist/cli/backend/src/services/messaging/sub-agent-message-queue.service.d.ts.map +1 -0
- package/dist/cli/backend/src/services/messaging/sub-agent-message-queue.service.js +136 -0
- package/dist/cli/backend/src/services/messaging/sub-agent-message-queue.service.js.map +1 -0
- package/dist/cli/backend/src/services/messaging/thread-status-queue.service.d.ts +358 -0
- package/dist/cli/backend/src/services/messaging/thread-status-queue.service.d.ts.map +1 -0
- package/dist/cli/backend/src/services/messaging/thread-status-queue.service.js +755 -0
- package/dist/cli/backend/src/services/messaging/thread-status-queue.service.js.map +1 -0
- package/dist/cli/backend/src/services/monitoring/token-usage.service.d.ts +269 -0
- package/dist/cli/backend/src/services/monitoring/token-usage.service.d.ts.map +1 -0
- package/dist/cli/backend/src/services/monitoring/token-usage.service.js +391 -0
- package/dist/cli/backend/src/services/monitoring/token-usage.service.js.map +1 -0
- package/dist/cli/backend/src/services/observability/agent-behavior-log.service.d.ts +132 -0
- package/dist/cli/backend/src/services/observability/agent-behavior-log.service.d.ts.map +1 -0
- package/dist/cli/backend/src/services/observability/agent-behavior-log.service.js +284 -0
- package/dist/cli/backend/src/services/observability/agent-behavior-log.service.js.map +1 -0
- package/dist/cli/backend/src/services/observability/agent-behavior-log.singleton.d.ts +70 -0
- package/dist/cli/backend/src/services/observability/agent-behavior-log.singleton.d.ts.map +1 -0
- package/dist/cli/backend/src/services/observability/agent-behavior-log.singleton.js +121 -0
- package/dist/cli/backend/src/services/observability/agent-behavior-log.singleton.js.map +1 -0
- package/dist/cli/backend/src/services/observability/agent-behavior-log.types.d.ts +130 -0
- package/dist/cli/backend/src/services/observability/agent-behavior-log.types.d.ts.map +1 -0
- package/dist/cli/backend/src/services/observability/agent-behavior-log.types.js +48 -0
- package/dist/cli/backend/src/services/observability/agent-behavior-log.types.js.map +1 -0
- package/dist/cli/backend/src/services/observability/observability-db.d.ts +84 -0
- package/dist/cli/backend/src/services/observability/observability-db.d.ts.map +1 -0
- package/dist/cli/backend/src/services/observability/observability-db.js +165 -0
- package/dist/cli/backend/src/services/observability/observability-db.js.map +1 -0
- package/dist/cli/backend/src/services/onboarding/content-approval.service.d.ts +124 -0
- package/dist/cli/backend/src/services/onboarding/content-approval.service.d.ts.map +1 -0
- package/dist/cli/backend/src/services/onboarding/content-approval.service.js +256 -0
- package/dist/cli/backend/src/services/onboarding/content-approval.service.js.map +1 -0
- package/dist/cli/backend/src/services/onboarding/content-approval.types.d.ts +80 -0
- package/dist/cli/backend/src/services/onboarding/content-approval.types.d.ts.map +1 -0
- package/dist/cli/backend/src/services/onboarding/content-approval.types.js +16 -0
- package/dist/cli/backend/src/services/onboarding/content-approval.types.js.map +1 -0
- package/dist/cli/backend/src/services/orc/orc-delivery-enforcer.service.d.ts +142 -0
- package/dist/cli/backend/src/services/orc/orc-delivery-enforcer.service.d.ts.map +1 -0
- package/dist/cli/backend/src/services/orc/orc-delivery-enforcer.service.js +265 -0
- package/dist/cli/backend/src/services/orc/orc-delivery-enforcer.service.js.map +1 -0
- package/dist/cli/backend/src/services/orchestrator/improvement-marker.service.d.ts +231 -0
- package/dist/cli/backend/src/services/orchestrator/improvement-marker.service.d.ts.map +1 -0
- package/dist/cli/backend/src/services/orchestrator/improvement-marker.service.js +353 -0
- package/dist/cli/backend/src/services/orchestrator/improvement-marker.service.js.map +1 -0
- package/dist/cli/backend/src/services/orchestrator/improvement-startup.service.d.ts +157 -0
- package/dist/cli/backend/src/services/orchestrator/improvement-startup.service.d.ts.map +1 -0
- package/dist/cli/backend/src/services/orchestrator/improvement-startup.service.js +483 -0
- package/dist/cli/backend/src/services/orchestrator/improvement-startup.service.js.map +1 -0
- package/dist/cli/backend/src/services/orchestrator/index.d.ts +16 -0
- package/dist/cli/backend/src/services/orchestrator/index.d.ts.map +1 -0
- package/dist/cli/backend/src/services/orchestrator/index.js +16 -0
- package/dist/cli/backend/src/services/orchestrator/index.js.map +1 -0
- package/dist/cli/backend/src/services/orchestrator/orchestrator-restart.service.d.ts +117 -0
- package/dist/cli/backend/src/services/orchestrator/orchestrator-restart.service.d.ts.map +1 -0
- package/dist/cli/backend/src/services/orchestrator/orchestrator-restart.service.js +300 -0
- package/dist/cli/backend/src/services/orchestrator/orchestrator-restart.service.js.map +1 -0
- package/dist/cli/backend/src/services/orchestrator/orchestrator-setup.service.d.ts +114 -0
- package/dist/cli/backend/src/services/orchestrator/orchestrator-setup.service.d.ts.map +1 -0
- package/dist/cli/backend/src/services/orchestrator/orchestrator-setup.service.js +195 -0
- package/dist/cli/backend/src/services/orchestrator/orchestrator-setup.service.js.map +1 -0
- package/dist/cli/backend/src/services/orchestrator/orchestrator-status.service.d.ts +94 -0
- package/dist/cli/backend/src/services/orchestrator/orchestrator-status.service.d.ts.map +1 -0
- package/dist/cli/backend/src/services/orchestrator/orchestrator-status.service.js +279 -0
- package/dist/cli/backend/src/services/orchestrator/orchestrator-status.service.js.map +1 -0
- package/dist/cli/backend/src/services/orchestrator/safe-restart.service.d.ts +192 -0
- package/dist/cli/backend/src/services/orchestrator/safe-restart.service.d.ts.map +1 -0
- package/dist/cli/backend/src/services/orchestrator/safe-restart.service.js +395 -0
- package/dist/cli/backend/src/services/orchestrator/safe-restart.service.js.map +1 -0
- package/dist/cli/backend/src/services/orchestrator/self-improvement.service.d.ts +201 -0
- package/dist/cli/backend/src/services/orchestrator/self-improvement.service.d.ts.map +1 -0
- package/dist/cli/backend/src/services/orchestrator/self-improvement.service.js +396 -0
- package/dist/cli/backend/src/services/orchestrator/self-improvement.service.js.map +1 -0
- package/dist/cli/backend/src/services/orchestrator/slack-bridge-lazy.d.ts +17 -0
- package/dist/cli/backend/src/services/orchestrator/slack-bridge-lazy.d.ts.map +1 -0
- package/dist/cli/backend/src/services/orchestrator/slack-bridge-lazy.js +30 -0
- package/dist/cli/backend/src/services/orchestrator/slack-bridge-lazy.js.map +1 -0
- package/dist/cli/backend/src/services/orchestrator/state-persistence.service.d.ts +249 -0
- package/dist/cli/backend/src/services/orchestrator/state-persistence.service.d.ts.map +1 -0
- package/dist/cli/backend/src/services/orchestrator/state-persistence.service.js +569 -0
- package/dist/cli/backend/src/services/orchestrator/state-persistence.service.js.map +1 -0
- package/dist/cli/backend/src/services/session/index.d.ts +47 -0
- package/dist/cli/backend/src/services/session/index.d.ts.map +1 -0
- package/dist/cli/backend/src/services/session/index.js +50 -0
- package/dist/cli/backend/src/services/session/index.js.map +1 -0
- package/dist/cli/backend/src/services/session/log-rotation.service.d.ts +163 -0
- package/dist/cli/backend/src/services/session/log-rotation.service.d.ts.map +1 -0
- package/dist/cli/backend/src/services/session/log-rotation.service.js +362 -0
- package/dist/cli/backend/src/services/session/log-rotation.service.js.map +1 -0
- package/dist/cli/backend/src/services/session/pty/index.d.ts +11 -0
- package/dist/cli/backend/src/services/session/pty/index.d.ts.map +1 -0
- package/dist/cli/backend/src/services/session/pty/index.js +11 -0
- package/dist/cli/backend/src/services/session/pty/index.js.map +1 -0
- package/dist/cli/backend/src/services/session/pty/pty-session-backend.d.ts +445 -0
- package/dist/cli/backend/src/services/session/pty/pty-session-backend.d.ts.map +1 -0
- package/dist/cli/backend/src/services/session/pty/pty-session-backend.js +804 -0
- package/dist/cli/backend/src/services/session/pty/pty-session-backend.js.map +1 -0
- package/dist/cli/backend/src/services/session/pty/pty-session.d.ts +252 -0
- package/dist/cli/backend/src/services/session/pty/pty-session.d.ts.map +1 -0
- package/dist/cli/backend/src/services/session/pty/pty-session.js +611 -0
- package/dist/cli/backend/src/services/session/pty/pty-session.js.map +1 -0
- package/dist/cli/backend/src/services/session/pty/pty-terminal-buffer.d.ts +275 -0
- package/dist/cli/backend/src/services/session/pty/pty-terminal-buffer.d.ts.map +1 -0
- package/dist/cli/backend/src/services/session/pty/pty-terminal-buffer.js +403 -0
- package/dist/cli/backend/src/services/session/pty/pty-terminal-buffer.js.map +1 -0
- package/dist/cli/backend/src/services/session/runtime-pid-registry.service.d.ts +86 -0
- package/dist/cli/backend/src/services/session/runtime-pid-registry.service.d.ts.map +1 -0
- package/dist/cli/backend/src/services/session/runtime-pid-registry.service.js +214 -0
- package/dist/cli/backend/src/services/session/runtime-pid-registry.service.js.map +1 -0
- package/dist/cli/backend/src/services/session/session-backend.factory.d.ts +127 -0
- package/dist/cli/backend/src/services/session/session-backend.factory.d.ts.map +1 -0
- package/dist/cli/backend/src/services/session/session-backend.factory.js +226 -0
- package/dist/cli/backend/src/services/session/session-backend.factory.js.map +1 -0
- package/dist/cli/backend/src/services/session/session-backend.interface.d.ts +390 -0
- package/dist/cli/backend/src/services/session/session-backend.interface.d.ts.map +1 -0
- package/dist/cli/backend/src/services/session/session-backend.interface.js +19 -0
- package/dist/cli/backend/src/services/session/session-backend.interface.js.map +1 -0
- package/dist/cli/backend/src/services/session/session-command-helper.d.ts +350 -0
- package/dist/cli/backend/src/services/session/session-command-helper.d.ts.map +1 -0
- package/dist/cli/backend/src/services/session/session-command-helper.js +810 -0
- package/dist/cli/backend/src/services/session/session-command-helper.js.map +1 -0
- package/dist/cli/backend/src/services/session/session-handoff.service.d.ts +307 -0
- package/dist/cli/backend/src/services/session/session-handoff.service.d.ts.map +1 -0
- package/dist/cli/backend/src/services/session/session-handoff.service.js +742 -0
- package/dist/cli/backend/src/services/session/session-handoff.service.js.map +1 -0
- package/dist/cli/backend/src/services/session/session-state-persistence.d.ts +231 -0
- package/dist/cli/backend/src/services/session/session-state-persistence.d.ts.map +1 -0
- package/dist/cli/backend/src/services/session/session-state-persistence.js +407 -0
- package/dist/cli/backend/src/services/session/session-state-persistence.js.map +1 -0
- package/dist/cli/backend/src/services/settings/role.service.d.ts +277 -0
- package/dist/cli/backend/src/services/settings/role.service.d.ts.map +1 -0
- package/dist/cli/backend/src/services/settings/role.service.js +728 -0
- package/dist/cli/backend/src/services/settings/role.service.js.map +1 -0
- package/dist/cli/backend/src/services/slack/cross-machine-message.service.d.ts +152 -0
- package/dist/cli/backend/src/services/slack/cross-machine-message.service.d.ts.map +1 -0
- package/dist/cli/backend/src/services/slack/cross-machine-message.service.js +354 -0
- package/dist/cli/backend/src/services/slack/cross-machine-message.service.js.map +1 -0
- package/dist/cli/backend/src/services/slack/slack-image.service.d.ts +114 -0
- package/dist/cli/backend/src/services/slack/slack-image.service.d.ts.map +1 -0
- package/dist/cli/backend/src/services/slack/slack-image.service.js +331 -0
- package/dist/cli/backend/src/services/slack/slack-image.service.js.map +1 -0
- package/dist/cli/backend/src/services/slack/slack-orchestrator-bridge.d.ts +499 -0
- package/dist/cli/backend/src/services/slack/slack-orchestrator-bridge.d.ts.map +1 -0
- package/dist/cli/backend/src/services/slack/slack-orchestrator-bridge.js +1928 -0
- package/dist/cli/backend/src/services/slack/slack-orchestrator-bridge.js.map +1 -0
- package/dist/cli/backend/src/services/slack/slack.service.d.ts +315 -0
- package/dist/cli/backend/src/services/slack/slack.service.d.ts.map +1 -0
- package/dist/cli/backend/src/services/slack/slack.service.js +1094 -0
- package/dist/cli/backend/src/services/slack/slack.service.js.map +1 -0
- package/dist/cli/backend/src/services/sop/sop.service.d.ts +364 -0
- package/dist/cli/backend/src/services/sop/sop.service.d.ts.map +1 -0
- package/dist/cli/backend/src/services/sop/sop.service.js +734 -0
- package/dist/cli/backend/src/services/sop/sop.service.js.map +1 -0
- package/dist/cli/backend/src/services/task-pool/task-pool.service.d.ts +152 -7
- 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 +268 -36
- package/dist/cli/backend/src/services/task-pool/task-pool.service.js.map +1 -1
- package/dist/cli/backend/src/services/v3/escalation-router.service.d.ts +178 -0
- package/dist/cli/backend/src/services/v3/escalation-router.service.d.ts.map +1 -0
- package/dist/cli/backend/src/services/v3/escalation-router.service.js +692 -0
- package/dist/cli/backend/src/services/v3/escalation-router.service.js.map +1 -0
- package/dist/cli/backend/src/services/v3/kr-tracking.service.d.ts +200 -0
- package/dist/cli/backend/src/services/v3/kr-tracking.service.d.ts.map +1 -0
- package/dist/cli/backend/src/services/v3/kr-tracking.service.js +482 -0
- package/dist/cli/backend/src/services/v3/kr-tracking.service.js.map +1 -0
- package/dist/cli/backend/src/services/v3/mission-executor.service.d.ts +117 -0
- package/dist/cli/backend/src/services/v3/mission-executor.service.d.ts.map +1 -0
- package/dist/cli/backend/src/services/v3/mission-executor.service.js +321 -0
- package/dist/cli/backend/src/services/v3/mission-executor.service.js.map +1 -0
- package/dist/cli/backend/src/services/v3/request-sla.subscriber.d.ts +610 -0
- package/dist/cli/backend/src/services/v3/request-sla.subscriber.d.ts.map +1 -0
- package/dist/cli/backend/src/services/v3/request-sla.subscriber.js +1529 -0
- package/dist/cli/backend/src/services/v3/request-sla.subscriber.js.map +1 -0
- package/dist/cli/backend/src/services/v3/request-tracker.service.d.ts +78 -0
- package/dist/cli/backend/src/services/v3/request-tracker.service.d.ts.map +1 -0
- package/dist/cli/backend/src/services/v3/request-tracker.service.js +108 -0
- package/dist/cli/backend/src/services/v3/request-tracker.service.js.map +1 -0
- package/dist/cli/backend/src/services/v3/request.service.d.ts +295 -0
- package/dist/cli/backend/src/services/v3/request.service.d.ts.map +1 -0
- package/dist/cli/backend/src/services/v3/request.service.js +534 -0
- package/dist/cli/backend/src/services/v3/request.service.js.map +1 -0
- package/dist/cli/backend/src/services/v3/v3-data.service.d.ts +340 -0
- package/dist/cli/backend/src/services/v3/v3-data.service.d.ts.map +1 -0
- package/dist/cli/backend/src/services/v3/v3-data.service.js +1113 -0
- package/dist/cli/backend/src/services/v3/v3-data.service.js.map +1 -0
- package/dist/cli/backend/src/types/cross-machine.types.d.ts +103 -0
- package/dist/cli/backend/src/types/cross-machine.types.d.ts.map +1 -0
- package/dist/cli/backend/src/types/cross-machine.types.js +47 -0
- package/dist/cli/backend/src/types/cross-machine.types.js.map +1 -0
- package/dist/cli/backend/src/types/intent-task.types.d.ts +402 -0
- package/dist/cli/backend/src/types/intent-task.types.d.ts.map +1 -0
- package/dist/cli/backend/src/types/intent-task.types.js +403 -0
- package/dist/cli/backend/src/types/intent-task.types.js.map +1 -0
- package/dist/cli/backend/src/types/orchestrator-state.types.d.ts +531 -0
- package/dist/cli/backend/src/types/orchestrator-state.types.d.ts.map +1 -0
- package/dist/cli/backend/src/types/orchestrator-state.types.js +110 -0
- package/dist/cli/backend/src/types/orchestrator-state.types.js.map +1 -0
- package/dist/cli/backend/src/types/v2/index.d.ts +30 -0
- package/dist/cli/backend/src/types/v2/index.d.ts.map +1 -0
- package/dist/cli/backend/src/types/v2/index.js +22 -0
- package/dist/cli/backend/src/types/v2/index.js.map +1 -0
- package/dist/cli/backend/src/types/v2/key-result.types.d.ts +279 -0
- package/dist/cli/backend/src/types/v2/key-result.types.d.ts.map +1 -0
- package/dist/cli/backend/src/types/v2/key-result.types.js +264 -0
- package/dist/cli/backend/src/types/v2/key-result.types.js.map +1 -0
- package/dist/cli/backend/src/types/v2/mission.types.d.ts +661 -0
- package/dist/cli/backend/src/types/v2/mission.types.d.ts.map +1 -0
- package/dist/cli/backend/src/types/v2/mission.types.js +713 -0
- package/dist/cli/backend/src/types/v2/mission.types.js.map +1 -0
- package/dist/cli/backend/src/types/v2/reconcile.types.d.ts +204 -0
- package/dist/cli/backend/src/types/v2/reconcile.types.d.ts.map +1 -0
- package/dist/cli/backend/src/types/v2/reconcile.types.js +121 -0
- package/dist/cli/backend/src/types/v2/reconcile.types.js.map +1 -0
- package/dist/cli/backend/src/types/v2/request.types.d.ts +192 -0
- package/dist/cli/backend/src/types/v2/request.types.d.ts.map +1 -0
- package/dist/cli/backend/src/types/v2/request.types.js +179 -0
- package/dist/cli/backend/src/types/v2/request.types.js.map +1 -0
- package/dist/cli/backend/src/types/v2/work-item.types.d.ts +181 -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 +104 -17
- package/dist/cli/backend/src/types/v2/work-item.types.js.map +1 -1
- package/dist/cli/backend/src/types/v2/workspace.types.d.ts +157 -0
- package/dist/cli/backend/src/types/v2/workspace.types.d.ts.map +1 -0
- package/dist/cli/backend/src/types/v2/workspace.types.js +173 -0
- package/dist/cli/backend/src/types/v2/workspace.types.js.map +1 -0
- package/dist/cli/backend/src/utils/async.utils.d.ts +68 -0
- package/dist/cli/backend/src/utils/async.utils.d.ts.map +1 -0
- package/dist/cli/backend/src/utils/async.utils.js +80 -0
- package/dist/cli/backend/src/utils/async.utils.js.map +1 -0
- package/dist/cli/backend/src/utils/native-binding.utils.d.ts +128 -0
- package/dist/cli/backend/src/utils/native-binding.utils.d.ts.map +1 -0
- package/dist/cli/backend/src/utils/native-binding.utils.js +206 -0
- package/dist/cli/backend/src/utils/native-binding.utils.js.map +1 -0
- package/dist/cli/backend/src/websocket/chat.gateway.d.ts +142 -0
- package/dist/cli/backend/src/websocket/chat.gateway.d.ts.map +1 -0
- package/dist/cli/backend/src/websocket/chat.gateway.js +327 -0
- package/dist/cli/backend/src/websocket/chat.gateway.js.map +1 -0
- package/dist/cli/backend/src/websocket/terminal.gateway.d.ts +341 -0
- package/dist/cli/backend/src/websocket/terminal.gateway.d.ts.map +1 -0
- package/dist/cli/backend/src/websocket/terminal.gateway.js +933 -0
- package/dist/cli/backend/src/websocket/terminal.gateway.js.map +1 -0
- package/dist/cli/config/vitest-exclude.constants.d.ts +53 -0
- package/dist/cli/config/vitest-exclude.constants.d.ts.map +1 -0
- package/dist/cli/config/vitest-exclude.constants.js +55 -0
- package/dist/cli/config/vitest-exclude.constants.js.map +1 -0
- package/package.json +2 -2
- package/packages/crewly-agent/src/cli.ts +16 -6
- package/packages/crewly-agent/src/runtime/agent-runner.service.test.ts +311 -33
- package/packages/crewly-agent/src/runtime/agent-runner.service.ts +221 -12
- package/packages/crewly-agent/src/runtime/tool-registry.test.ts +19 -0
- package/packages/crewly-agent/src/runtime/tool-registry.ts +4 -1
- package/packages/crewly-agent/src/runtime/types.ts +65 -5
|
@@ -14,6 +14,76 @@ TRIGGER=$(printf '%s' "$INPUT" | jq -r '.trigger // empty')
|
|
|
14
14
|
TEAM_ID=$(printf '%s' "$INPUT" | jq -r '.teamId // empty')
|
|
15
15
|
SESSION_NAME=$(printf '%s' "$INPUT" | jq -r '.sessionName // empty')
|
|
16
16
|
|
|
17
|
+
# ---------------------------------------------------------------------------
|
|
18
|
+
# Trigger matching
|
|
19
|
+
# ---------------------------------------------------------------------------
|
|
20
|
+
#
|
|
21
|
+
# `trigger:` frontmatter is a COMMA-SEPARATED LIST, not a single value —
|
|
22
|
+
# 6 of the 7 norms in the live runtime store lists such as
|
|
23
|
+
# "escalation,delegation,blocker". Comparing the caller's trigger to that
|
|
24
|
+
# raw string with `=` only matched when the caller happened to pass the
|
|
25
|
+
# entire list verbatim, so trigger-filtered retrieval returned nothing for
|
|
26
|
+
# essentially every norm and agents concluded no norms existed.
|
|
27
|
+
#
|
|
28
|
+
# Matching is done on whole TOKENS, deliberately not on substrings:
|
|
29
|
+
# `lead` must not match `inbound_lead`, and `sale` must not match `sales`.
|
|
30
|
+
# Both pairs exist in the current norms, so a substring fix would silently
|
|
31
|
+
# return the wrong norms rather than none — a worse failure, because it
|
|
32
|
+
# looks like it works.
|
|
33
|
+
#
|
|
34
|
+
# Tokens may contain internal spaces (e.g. "mutation check"), so only
|
|
35
|
+
# leading/trailing whitespace is trimmed; internal spacing is preserved.
|
|
36
|
+
# Comparison is case-insensitive.
|
|
37
|
+
|
|
38
|
+
# Normalise a comma-separated trigger list into one trimmed, lowercase
|
|
39
|
+
# token per line, dropping empties.
|
|
40
|
+
#
|
|
41
|
+
# $1 - Raw comma-separated trigger string (may be empty)
|
|
42
|
+
normalize_trigger_tokens() {
|
|
43
|
+
printf '%s' "${1:-}" \
|
|
44
|
+
| tr ',' '\n' \
|
|
45
|
+
| sed 's/^[[:space:]]*//; s/[[:space:]]*$//' \
|
|
46
|
+
| tr '[:upper:]' '[:lower:]' \
|
|
47
|
+
| sed '/^$/d'
|
|
48
|
+
}
|
|
49
|
+
|
|
50
|
+
# Decide whether a norm's stored trigger list satisfies the caller's query.
|
|
51
|
+
#
|
|
52
|
+
# An empty query matches everything (no filtering requested). Otherwise the
|
|
53
|
+
# two token sets must intersect: a norm matches when it declares ANY of the
|
|
54
|
+
# triggers the caller asked about.
|
|
55
|
+
#
|
|
56
|
+
# $1 - Stored `trigger:` frontmatter value
|
|
57
|
+
# $2 - Caller-supplied trigger query
|
|
58
|
+
# Returns 0 when the norm should be included, 1 when it should be skipped.
|
|
59
|
+
trigger_matches() {
|
|
60
|
+
local stored_raw="${1:-}"
|
|
61
|
+
local query_raw="${2:-}"
|
|
62
|
+
local stored_tokens query_tokens q_token s_token
|
|
63
|
+
|
|
64
|
+
[ -z "$query_raw" ] && return 0
|
|
65
|
+
|
|
66
|
+
query_tokens=$(normalize_trigger_tokens "$query_raw")
|
|
67
|
+
[ -z "$query_tokens" ] && return 0
|
|
68
|
+
|
|
69
|
+
stored_tokens=$(normalize_trigger_tokens "$stored_raw")
|
|
70
|
+
[ -z "$stored_tokens" ] && return 1
|
|
71
|
+
|
|
72
|
+
while IFS= read -r q_token; do
|
|
73
|
+
[ -z "$q_token" ] && continue
|
|
74
|
+
while IFS= read -r s_token; do
|
|
75
|
+
[ -z "$s_token" ] && continue
|
|
76
|
+
[ "$q_token" = "$s_token" ] && return 0
|
|
77
|
+
done <<EOF
|
|
78
|
+
$stored_tokens
|
|
79
|
+
EOF
|
|
80
|
+
done <<EOF
|
|
81
|
+
$query_tokens
|
|
82
|
+
EOF
|
|
83
|
+
|
|
84
|
+
return 1
|
|
85
|
+
}
|
|
86
|
+
|
|
17
87
|
# Resolve teamId: explicit param > lookup by sessionName > CREWLY_SESSION_NAME env
|
|
18
88
|
resolve_team_id() {
|
|
19
89
|
local session="${1:-${CREWLY_SESSION_NAME:-}}"
|
|
@@ -81,8 +151,9 @@ for file in "$NORMS_DIR"/*.md; do
|
|
|
81
151
|
FM_UPDATED_BY=$(echo "$FRONTMATTER" | sed -n 's/^updatedBy: *//p' | head -1)
|
|
82
152
|
FM_UPDATED_AT=$(echo "$FRONTMATTER" | sed -n 's/^updatedAt: *//p' | head -1)
|
|
83
153
|
|
|
84
|
-
# If trigger filter is set, skip
|
|
85
|
-
|
|
154
|
+
# If a trigger filter is set, skip norms that declare none of its tokens.
|
|
155
|
+
# `trigger:` is a comma-separated list; see trigger_matches above.
|
|
156
|
+
if ! trigger_matches "$FM_TRIGGER" "$TRIGGER"; then
|
|
86
157
|
continue
|
|
87
158
|
fi
|
|
88
159
|
|
|
@@ -128,7 +128,7 @@ fi
|
|
|
128
128
|
cat >> "$HANDOFF_MSG_FILE" << FOOTER_EOF
|
|
129
129
|
|
|
130
130
|
---
|
|
131
|
-
When done, report back
|
|
131
|
+
When done, report back with report-status, passing the workItemId from your [CREWLY-DISPATCH] notice (or from get-my-tasks) so the right WorkItem is closed: bash ${CREWLY_ROOT}/config/skills/agent/core/report-status/execute.sh '{"sessionName":"${TO}","workItemId":"<your WorkItem id>","status":"done","summary":"<brief summary>","projectPath":"${PROJECT_PATH}"}'
|
|
132
132
|
FOOTER_EOF
|
|
133
133
|
|
|
134
134
|
HANDOFF_MESSAGE=$(cat "$HANDOFF_MSG_FILE")
|
|
@@ -141,6 +141,13 @@ echo "Delivering handoff context to ${TO}..." >&2
|
|
|
141
141
|
deliver_result=$(api_call POST "/terminal/${TO}/write" "$DELIVER_BODY" 2>/dev/null) || {
|
|
142
142
|
# Retry with deliver endpoint (agent may need wake-up)
|
|
143
143
|
DELIVER_BODY_V2=$(jq -n --arg message "$HANDOFF_MESSAGE" \
|
|
144
|
+
# waitTimeout 15000, matching delegate-task's initial attempt. Handoff
|
|
145
|
+
# targets a worker expected to be already running, so the same fail-fast
|
|
146
|
+
# budget applies.
|
|
147
|
+
#
|
|
148
|
+
# ORIGIN NOT ESTABLISHED (WI dae79289): no delivery constant carries this
|
|
149
|
+
# value, so there is nothing to mirror. Documented, deliberately not
|
|
150
|
+
# changed.
|
|
144
151
|
'{message: $message, waitForReady: true, waitTimeout: 15000}')
|
|
145
152
|
deliver_result=$(api_call POST "/terminal/${TO}/deliver" "$DELIVER_BODY_V2" 2>/dev/null) || {
|
|
146
153
|
deliver_result='{"error":"delivery failed — target agent may be offline"}'
|
|
@@ -56,6 +56,32 @@ When `status` is `done` and a `taskPath` is provided, the task file is automatic
|
|
|
56
56
|
| `--task-id` | `taskId` | No | Task ID (for structured StatusReport format) |
|
|
57
57
|
| `--progress` | `progress` | No | Progress percentage 0-100 |
|
|
58
58
|
| `--structured` | `structured` | No | Use structured StatusReport format |
|
|
59
|
+
| `--work-item-id` / `--wi-id` | `workItemId` | **Pass this when `status=done`** | Which WorkItem to complete. See below — without it the skill infers, and refuses when the choice is ambiguous |
|
|
60
|
+
|
|
61
|
+
## This skill COMPLETES a WorkItem, not just reports
|
|
62
|
+
|
|
63
|
+
When `status=done`, this skill closes a WorkItem in the task pool as a side
|
|
64
|
+
effect. That is a surprising amount of authority for something named
|
|
65
|
+
`report-status`, and the name/behaviour mismatch is exactly why nobody
|
|
66
|
+
anticipated it silently closing the wrong item. It is not renamed here only
|
|
67
|
+
because too many callers reference it.
|
|
68
|
+
|
|
69
|
+
**Pass `workItemId` whenever you report done.** Resolution order:
|
|
70
|
+
|
|
71
|
+
1. **`workItemId` given** — that item is completed. Always prefer this.
|
|
72
|
+
2. **Omitted, exactly one WorkItem running for your session** — that one is
|
|
73
|
+
completed, and the resolved id is echoed so you can see what closed.
|
|
74
|
+
3. **Omitted, more than one running** — the skill **refuses** and names the
|
|
75
|
+
candidates. It will not guess.
|
|
76
|
+
|
|
77
|
+
Case 3 exists because guessing destroyed real work: on 2026-08-21 the skill
|
|
78
|
+
completed an arbitrary first running item, silently closing a queued WorkItem
|
|
79
|
+
nobody had started while the agent was reporting a different one done. Nothing
|
|
80
|
+
failed, and the false completion spawned a verify WorkItem for a delivery that
|
|
81
|
+
had never happened.
|
|
82
|
+
|
|
83
|
+
If the completion itself fails, the skill says so explicitly — a reported
|
|
84
|
+
status never implies the WorkItem actually closed.
|
|
59
85
|
|
|
60
86
|
## Examples — CLI Flags (preferred)
|
|
61
87
|
|
|
@@ -235,17 +235,41 @@ api_call POST "/chat/agent-response" "$BODY"
|
|
|
235
235
|
# `/task-management/complete{-by-session}` endpoints.
|
|
236
236
|
#
|
|
237
237
|
# Resolution order for which WorkItem to complete:
|
|
238
|
-
# 1. `workItemId` in input
|
|
239
|
-
# 2.
|
|
238
|
+
# 1. `workItemId` in input — explicit, always wins. PASS THIS.
|
|
239
|
+
# 2. Exactly one running WI for this session — inferred, and the resolved id
|
|
240
|
+
# is echoed so the caller can see what was closed.
|
|
241
|
+
# 3. More than one running WI — REFUSED. The candidates are named and the
|
|
242
|
+
# caller must pass `workItemId`.
|
|
243
|
+
#
|
|
244
|
+
# Why (3) refuses instead of guessing: this block used to complete
|
|
245
|
+
# `.data[0].id`, an arbitrary first running item. On 2026-08-21 that silently
|
|
246
|
+
# closed WorkItem 7db3b00c — a queued piece of work nobody had started — while
|
|
247
|
+
# the agent was reporting a DIFFERENT WI done. Nothing failed. The false
|
|
248
|
+
# completion then spawned a verify WorkItem asking the orchestrator to verify a
|
|
249
|
+
# delivery that had never happened, so one silent mis-close also consumed
|
|
250
|
+
# downstream verification attention on fiction.
|
|
251
|
+
#
|
|
252
|
+
# Inferring from a single running claim is safe and stays. Inferring from
|
|
253
|
+
# several is a coin flip on which real work gets destroyed.
|
|
240
254
|
#
|
|
241
255
|
# The legacy `taskPath` input is still accepted for backwards compatibility
|
|
242
256
|
# but no longer drives the API call.
|
|
243
257
|
if [ "$STATUS" = "done" ]; then
|
|
244
258
|
TARGET_WI_ID="${WORK_ITEM_ID:-}"
|
|
259
|
+
WI_RESOLUTION="explicit"
|
|
260
|
+
|
|
245
261
|
if [ -z "$TARGET_WI_ID" ]; then
|
|
246
|
-
# Fall back: query pool for this session's running WIs and complete the first match.
|
|
247
262
|
POOL_RESP=$(api_call GET "/task-pool/items?status=running&target=${SESSION_NAME}" 2>/dev/null || echo '{}')
|
|
248
|
-
|
|
263
|
+
RUNNING_IDS=$(printf '%s' "$POOL_RESP" | jq -r '((.workItems // .data // []) | map(.id)) | .[]' 2>/dev/null || true)
|
|
264
|
+
RUNNING_COUNT=$(printf '%s' "$RUNNING_IDS" | grep -c . || true)
|
|
265
|
+
|
|
266
|
+
if [ "$RUNNING_COUNT" -gt 1 ]; then
|
|
267
|
+
CANDIDATES=$(printf '%s' "$RUNNING_IDS" | tr '\n' ' ')
|
|
268
|
+
error_exit "report-status refuses to guess which WorkItem to complete: ${RUNNING_COUNT} are running for ${SESSION_NAME} (${CANDIDATES}). Pass workItemId explicitly. Completing an arbitrary one silently closes work nobody did — and a false completion cascades into a verify WorkItem for a delivery that never happened."
|
|
269
|
+
fi
|
|
270
|
+
|
|
271
|
+
TARGET_WI_ID=$(printf '%s' "$RUNNING_IDS" | head -1)
|
|
272
|
+
WI_RESOLUTION="inferred"
|
|
249
273
|
fi
|
|
250
274
|
|
|
251
275
|
if [ -n "$TARGET_WI_ID" ]; then
|
|
@@ -258,7 +282,18 @@ if [ "$STATUS" = "done" ]; then
|
|
|
258
282
|
--arg agentId "$SESSION_NAME" \
|
|
259
283
|
--arg summary "$SUMMARY" \
|
|
260
284
|
'{agentId: $agentId, result: {summary: $summary}}')
|
|
261
|
-
|
|
285
|
+
# No `|| true`. A swallowed failure here is the inverse of the bug above:
|
|
286
|
+
# report-status would announce success while the WorkItem stayed open, and
|
|
287
|
+
# that is equally invisible. Report what actually happened either way.
|
|
288
|
+
if COMPLETE_RESULT=$(api_call POST "/task-pool/complete/${TARGET_WI_ID}" "$COMPLETE_BODY" 2>&1); then
|
|
289
|
+
# Echo the resolved id even on the happy path. Silent-but-correct is how
|
|
290
|
+
# this class hides — the caller must be able to see WHICH item closed.
|
|
291
|
+
jq -n --arg id "$TARGET_WI_ID" --arg how "$WI_RESOLUTION" \
|
|
292
|
+
'{completedWorkItem: $id, resolvedBy: $how}' >&2
|
|
293
|
+
else
|
|
294
|
+
jq -n --arg id "$TARGET_WI_ID" --arg err "$COMPLETE_RESULT" \
|
|
295
|
+
'{warning: "status reported, but completing the WorkItem FAILED — it is still open", workItemId: $id, error: $err}' >&2
|
|
296
|
+
fi
|
|
262
297
|
fi
|
|
263
298
|
fi
|
|
264
299
|
|
|
@@ -41,7 +41,7 @@ The script auto-resolves `config/skills/...` references to absolute paths so del
|
|
|
41
41
|
| `--task` / `-T` | `task` | Yes | Task description (or pipe via stdin) |
|
|
42
42
|
| `--task-file` | — | No | Read task description from a file path |
|
|
43
43
|
| `--priority` / `-P` | `priority` | No | Priority: `low`, `normal`, `high` (default: `normal`) |
|
|
44
|
-
| `--context` / `-c` | `context` | No | Additional context for the task |
|
|
44
|
+
| `--context` / `-c` | `context` | No | Additional context for the task. Scanned for the Request Contract alongside `--task` |
|
|
45
45
|
| `--project` / `-p` | `projectPath` | No | Project path; creates task file in `.crewly/tasks/` |
|
|
46
46
|
| `--team` / `-g` | `teamId` | No | Team ID for cross-team validation |
|
|
47
47
|
| `--task-type` | `taskType` | No | Task type: `general`, `technical` (default: `general`) |
|
|
@@ -95,26 +95,51 @@ require_param "task (--task)" "$TASK"
|
|
|
95
95
|
# downstream are entitled to push back per the Brief Reception Protocol when
|
|
96
96
|
# these are absent. Spec:
|
|
97
97
|
# .crewly/specs/2026-05-03-agent-improvement-p0-execution.md §"Fix P0-3".
|
|
98
|
+
#
|
|
99
|
+
# Scans the WHOLE delegated brief, not just `--task`. The Request Contract can
|
|
100
|
+
# legitimately live in `--task`, in `--context`, or be split across the two,
|
|
101
|
+
# and delegators routinely put the long-form G/O/E in `--context` while
|
|
102
|
+
# `--task` carries the one-line ask. `--context` is delivered to the target
|
|
103
|
+
# (see the TASK_MESSAGE assembly below), so a contract written there does
|
|
104
|
+
# reach the recipient — it was simply not being looked at here. Scanning only
|
|
105
|
+
# `--task` therefore warned "Request Contract incomplete" at briefs whose
|
|
106
|
+
# contract was fully present, just in the other field.
|
|
107
|
+
#
|
|
108
|
+
# That false positive is corrosive rather than cosmetic: this warning is the
|
|
109
|
+
# signal TLs and workers use to decide whether to push back under the Brief
|
|
110
|
+
# Reception Protocol, so crying wolf trains them to ignore a real one.
|
|
111
|
+
#
|
|
112
|
+
# The check is NOT weakened — a marker genuinely absent from BOTH fields
|
|
113
|
+
# still warns, and the missing-field list is still per-marker.
|
|
114
|
+
#
|
|
115
|
+
# Mirrors the same fix in config/skills/team-leader/delegate-task/execute.sh.
|
|
116
|
+
#
|
|
117
|
+
# $1 = task, $2 = context (either may be empty).
|
|
98
118
|
warn_missing_request_contract() {
|
|
99
|
-
|
|
119
|
+
# Join with a newline rather than concatenating: the patterns below anchor
|
|
120
|
+
# on `^`, which grep evaluates per line, and a seam newline also prevents a
|
|
121
|
+
# task ending in "go" plus a context starting "al:" from fabricating a
|
|
122
|
+
# spurious "goal:" match across the boundary.
|
|
123
|
+
local brief
|
|
124
|
+
brief="$(printf '%s\n%s' "${1:-}" "${2:-}")"
|
|
100
125
|
local missing=()
|
|
101
|
-
if ! echo "$
|
|
126
|
+
if ! echo "$brief" | grep -qiE '(^|[^a-zA-Z])(\*\*)?(goal|objective)(:|s?\b)'; then
|
|
102
127
|
missing+=("Goal")
|
|
103
128
|
fi
|
|
104
|
-
if ! echo "$
|
|
129
|
+
if ! echo "$brief" | grep -qiE '(^|[^a-zA-Z])(\*\*)?(expected )?outcome(:|s?\b)'; then
|
|
105
130
|
missing+=("Outcome")
|
|
106
131
|
fi
|
|
107
|
-
if ! echo "$
|
|
132
|
+
if ! echo "$brief" | grep -qiE '(^|[^a-zA-Z])(\*\*)?(eval|evaluation criteria|acceptance criteria)(:|s?\b)'; then
|
|
108
133
|
missing+=("Eval")
|
|
109
134
|
fi
|
|
110
135
|
if [ ${#missing[@]} -gt 0 ]; then
|
|
111
136
|
local list
|
|
112
137
|
list=$(IFS=, ; echo "${missing[*]}")
|
|
113
|
-
echo "{\"warning\":\"Request Contract incomplete: brief is missing markers for: ${list}. Per P0-3 spec, every delegated subtask MUST include Goal + Expected Outcome + Eval Criteria. TLs and workers may push back via the Brief Reception Protocol. Source: .crewly/specs/2026-05-03-agent-improvement-p0-execution.md §Fix P0-3.\"}" >&2
|
|
138
|
+
echo "{\"warning\":\"Request Contract incomplete: brief is missing markers for: ${list}. Neither the task nor the context field carries them. Per P0-3 spec, every delegated subtask MUST include Goal + Expected Outcome + Eval Criteria. TLs and workers may push back via the Brief Reception Protocol. Source: .crewly/specs/2026-05-03-agent-improvement-p0-execution.md §Fix P0-3.\"}" >&2
|
|
114
139
|
fi
|
|
115
140
|
}
|
|
116
141
|
|
|
117
|
-
warn_missing_request_contract "$TASK"
|
|
142
|
+
warn_missing_request_contract "$TASK" "$CONTEXT"
|
|
118
143
|
|
|
119
144
|
# #180: Validate target agent belongs to the specified team
|
|
120
145
|
if [ -n "$TEAM_ID" ] && [ "$FORCE_CROSS_TEAM" != "true" ]; then
|
|
@@ -141,8 +166,17 @@ if [ "$TASK_TYPE" = "technical" ] && [ -n "$TEAM_ID" ]; then
|
|
|
141
166
|
fi
|
|
142
167
|
|
|
143
168
|
# Structured message parameters (for hierarchical teams)
|
|
144
|
-
# Default INPUT to empty JSON if not set (when using --flag mode)
|
|
145
|
-
|
|
169
|
+
# Default INPUT to empty JSON if not set (when using --flag mode).
|
|
170
|
+
#
|
|
171
|
+
# NOT `${INPUT:-{}}` — bash ends the expansion at the FIRST `}`, so that form
|
|
172
|
+
# means "default to `{`" followed by a literal `}`. It is correct only when
|
|
173
|
+
# INPUT is unset (yielding `{}`); when INPUT holds real JSON it appends a
|
|
174
|
+
# stray `}` and every subsequent `jq` call dies with
|
|
175
|
+
# "parse error: Unmatched '}'". That silently broke the entire JSON-input mode
|
|
176
|
+
# of this skill while --flag mode kept working.
|
|
177
|
+
if [ -z "${INPUT:-}" ]; then
|
|
178
|
+
INPUT='{}'
|
|
179
|
+
fi
|
|
146
180
|
TITLE=$(printf '%s' "$INPUT" | jq -r '.title // empty')
|
|
147
181
|
PARENT_TASK_ID=$(printf '%s' "$INPUT" | jq -r '.parentTaskId // empty')
|
|
148
182
|
EXPECTED_ARTIFACTS=$(printf '%s' "$INPUT" | jq -c '.expectedArtifacts // empty')
|
|
@@ -197,13 +231,13 @@ if [ "$USE_STRUCTURED" = "true" ] && [ -n "$TITLE" ]; then
|
|
|
197
231
|
|
|
198
232
|
[ -n "$CONTEXT" ] && TASK_MESSAGE="${TASK_MESSAGE}\n\nAdditional context: ${CONTEXT}"
|
|
199
233
|
[ -n "$DEADLINE_HINT" ] && TASK_MESSAGE="${TASK_MESSAGE}\n\n**Deadline hint**: ${DEADLINE_HINT}"
|
|
200
|
-
TASK_MESSAGE="${TASK_MESSAGE}\n\n---\nWhen done, report back
|
|
234
|
+
TASK_MESSAGE="${TASK_MESSAGE}\n\n---\nWhen done, report back with report-status, passing the workItemId from your [CREWLY-DISPATCH] notice (or from get-my-tasks) so the right WorkItem is closed: bash ${CREWLY_ROOT}/config/skills/agent/core/report-status/execute.sh '{\"sessionName\":\"${TO}\",\"workItemId\":\"<your WorkItem id>\",\"status\":\"done\",\"summary\":\"<brief summary>\",\"projectPath\":\"${PROJECT_PATH}\"}'"
|
|
201
235
|
TASK_MESSAGE="${TASK_MESSAGE}\n\nBefore reporting done, persist key findings using: bash ${CREWLY_ROOT}/config/skills/agent/core/remember/execute.sh '{\"agentId\":\"${TO}\",\"content\":\"<key findings>\",\"category\":\"pattern\",\"scope\":\"project\",\"projectPath\":\"${PROJECT_PATH}\"}'"
|
|
202
236
|
else
|
|
203
237
|
# Legacy free-text format (backwards compatible)
|
|
204
238
|
TASK_MESSAGE="New task from orchestrator (priority: ${PRIORITY}):\n\n${TASK}"
|
|
205
239
|
[ -n "$CONTEXT" ] && TASK_MESSAGE="${TASK_MESSAGE}\n\nContext: ${CONTEXT}"
|
|
206
|
-
TASK_MESSAGE="${TASK_MESSAGE}\n\nWhen done, report back
|
|
240
|
+
TASK_MESSAGE="${TASK_MESSAGE}\n\nWhen done, report back with report-status, passing the workItemId from your [CREWLY-DISPATCH] notice (or from get-my-tasks) so the right WorkItem is closed: bash ${CREWLY_ROOT}/config/skills/agent/core/report-status/execute.sh '{\"sessionName\":\"${TO}\",\"workItemId\":\"<your WorkItem id>\",\"status\":\"done\",\"summary\":\"<brief summary>\",\"projectPath\":\"${PROJECT_PATH}\"}'"
|
|
207
241
|
TASK_MESSAGE="${TASK_MESSAGE}\n\nBefore reporting done, persist key findings using: bash ${CREWLY_ROOT}/config/skills/agent/core/remember/execute.sh '{\"agentId\":\"${TO}\",\"content\":\"<key findings>\",\"category\":\"pattern\",\"scope\":\"project\",\"projectPath\":\"${PROJECT_PATH}\"}'"
|
|
208
242
|
fi
|
|
209
243
|
|
|
@@ -238,7 +272,7 @@ POOL_BODY=$(jq -n \
|
|
|
238
272
|
--arg priority "$WI_PRIORITY" \
|
|
239
273
|
--arg projectPath "${PROJECT_PATH:-}" \
|
|
240
274
|
--arg requestId "${REQUEST_ID:-}" \
|
|
241
|
-
'{type: $type, owner: $owner, target: $target, title: $title, description: $description, briefMarkdown: $briefMarkdown, priority: $priority} + (if $projectPath != "" then {projectPath: $projectPath} else {} end) + (if $requestId != "" then {requestId: $requestId} else {} end)')
|
|
275
|
+
'{type: $type, owner: $owner, target: $target, title: $title, description: $description, briefMarkdown: $briefMarkdown, metadata: ({priority: $priority} + (if $projectPath != "" then {projectPath: $projectPath} else {} end))} + (if $requestId != "" then {requestId: $requestId} else {} end)')
|
|
242
276
|
|
|
243
277
|
# Pipeline-#4 fix (spec 2026-05-05-request-decompose-pipeline-gap.md, Patch B):
|
|
244
278
|
# Route is /api/task-pool/add (not /api/pool/add — that endpoint does not exist
|
|
@@ -1,7 +1,17 @@
|
|
|
1
1
|
#!/bin/bash
|
|
2
2
|
# Tests for ORC delegate-task execute.sh
|
|
3
3
|
#
|
|
4
|
-
#
|
|
4
|
+
# Covers two things:
|
|
5
|
+
# 1. the auto-claim transition (Tests 1-6), and
|
|
6
|
+
# 2. the Request Contract checker (Test 7), which scans BOTH `--task` and
|
|
7
|
+
# `--context` — see the note above Test 7.
|
|
8
|
+
#
|
|
9
|
+
# Note the harness runs a COPY of the real execute.sh under a stubbed
|
|
10
|
+
# api_call, so production logic is exercised verbatim; no part of the skill
|
|
11
|
+
# is reimplemented here. Keep it that way — a hand-copied mirror of skill
|
|
12
|
+
# logic silently stops tracking the skill.
|
|
13
|
+
#
|
|
14
|
+
# Tests 1-6 are focused on the auto-claim transition added 2026-05-20 — the skill must
|
|
5
15
|
# call POST /task-pool/claim immediately after POST /task-pool/add succeeds,
|
|
6
16
|
# so the WI transitions queued → running at dispatch time and doesn't rot
|
|
7
17
|
# in queued waiting for a pull that may never come (the 2026-05-20
|
|
@@ -196,6 +206,148 @@ OUT=$(CALL_LOG="$CALL_LOG" CREWLY_ROOT=/tmp/crewly-test \
|
|
|
196
206
|
|
|
197
207
|
assert_output_contains "result reports custom fallbackMinutes=120" '"fallbackMinutes": 120' "$OUT"
|
|
198
208
|
|
|
209
|
+
# ---------------------------------------------------------------------------
|
|
210
|
+
# Test 7: Request Contract checker scans --task AND --context
|
|
211
|
+
#
|
|
212
|
+
# The checker used to read only `--task`. This skill has its own `--context`
|
|
213
|
+
# flag and delivers it to the target, so an orchestrator that put the
|
|
214
|
+
# long-form Goal / Expected Outcome / Eval Criteria in `--context` was told
|
|
215
|
+
# the contract was "incomplete" while every marker was in fact present. That
|
|
216
|
+
# false positive is what the Brief Reception Protocol keys off, so it has to
|
|
217
|
+
# be right in both directions: silent when the contract is present anywhere,
|
|
218
|
+
# and still loud when a marker is in neither field.
|
|
219
|
+
# ---------------------------------------------------------------------------
|
|
220
|
+
echo ""
|
|
221
|
+
echo "=== ORC delegate-task — Request Contract checker ==="
|
|
222
|
+
|
|
223
|
+
CTX_FULL="**Goal:** Ship the importer. **Expected Outcome:** CSVs land in prod. **Eval Criteria:** all tests green."
|
|
224
|
+
|
|
225
|
+
# 7a: contract entirely in --context — must NOT warn
|
|
226
|
+
> "$CALL_LOG"
|
|
227
|
+
OUT=$(CALL_LOG="$CALL_LOG" CREWLY_ROOT=/tmp/crewly-test \
|
|
228
|
+
bash "${SKILL_PARENT}/delegate-task/execute.sh" \
|
|
229
|
+
--to crewly-test-bob \
|
|
230
|
+
--task "build the importer" \
|
|
231
|
+
--context "$CTX_FULL" \
|
|
232
|
+
2>&1 || true)
|
|
233
|
+
if echo "$OUT" | grep -q "Request Contract incomplete"; then
|
|
234
|
+
echo " FAIL: contract present in --context was still reported incomplete: $OUT"
|
|
235
|
+
FAIL=$((FAIL + 1))
|
|
236
|
+
else
|
|
237
|
+
echo " PASS: contract in --context suppresses the warning"
|
|
238
|
+
PASS=$((PASS + 1))
|
|
239
|
+
fi
|
|
240
|
+
|
|
241
|
+
# 7b: contract split across --task and --context — must NOT warn
|
|
242
|
+
> "$CALL_LOG"
|
|
243
|
+
OUT=$(CALL_LOG="$CALL_LOG" CREWLY_ROOT=/tmp/crewly-test \
|
|
244
|
+
bash "${SKILL_PARENT}/delegate-task/execute.sh" \
|
|
245
|
+
--to crewly-test-bob \
|
|
246
|
+
--task "**Goal:** ship the importer" \
|
|
247
|
+
--context "**Expected Outcome:** CSVs land in prod. **Eval Criteria:** all tests green." \
|
|
248
|
+
2>&1 || true)
|
|
249
|
+
if echo "$OUT" | grep -q "Request Contract incomplete"; then
|
|
250
|
+
echo " FAIL: split contract was reported incomplete: $OUT"
|
|
251
|
+
FAIL=$((FAIL + 1))
|
|
252
|
+
else
|
|
253
|
+
echo " PASS: contract split across --task and --context suppresses the warning"
|
|
254
|
+
PASS=$((PASS + 1))
|
|
255
|
+
fi
|
|
256
|
+
|
|
257
|
+
# 7c: contract entirely in --task, no --context — must NOT warn (no regression)
|
|
258
|
+
> "$CALL_LOG"
|
|
259
|
+
OUT=$(CALL_LOG="$CALL_LOG" CREWLY_ROOT=/tmp/crewly-test \
|
|
260
|
+
bash "${SKILL_PARENT}/delegate-task/execute.sh" \
|
|
261
|
+
--to crewly-test-bob \
|
|
262
|
+
--task "$CTX_FULL" \
|
|
263
|
+
2>&1 || true)
|
|
264
|
+
if echo "$OUT" | grep -q "Request Contract incomplete"; then
|
|
265
|
+
echo " FAIL: contract in --task alone was reported incomplete: $OUT"
|
|
266
|
+
FAIL=$((FAIL + 1))
|
|
267
|
+
else
|
|
268
|
+
echo " PASS: contract in --task alone still suppresses the warning"
|
|
269
|
+
PASS=$((PASS + 1))
|
|
270
|
+
fi
|
|
271
|
+
|
|
272
|
+
# 7d: one marker absent from BOTH — check is not weakened
|
|
273
|
+
> "$CALL_LOG"
|
|
274
|
+
OUT=$(CALL_LOG="$CALL_LOG" CREWLY_ROOT=/tmp/crewly-test \
|
|
275
|
+
bash "${SKILL_PARENT}/delegate-task/execute.sh" \
|
|
276
|
+
--to crewly-test-bob \
|
|
277
|
+
--task "**Goal:** ship it" \
|
|
278
|
+
--context "**Expected Outcome:** it ships." \
|
|
279
|
+
2>&1 || true)
|
|
280
|
+
if echo "$OUT" | grep -q "Request Contract incomplete" && echo "$OUT" | grep -q "Eval"; then
|
|
281
|
+
echo " PASS: still warns for the one marker absent from both fields"
|
|
282
|
+
PASS=$((PASS + 1))
|
|
283
|
+
else
|
|
284
|
+
echo " FAIL: expected an Eval-missing warning, got: $OUT"
|
|
285
|
+
FAIL=$((FAIL + 1))
|
|
286
|
+
fi
|
|
287
|
+
|
|
288
|
+
# 7e: nothing anywhere — all three still named
|
|
289
|
+
> "$CALL_LOG"
|
|
290
|
+
OUT=$(CALL_LOG="$CALL_LOG" CREWLY_ROOT=/tmp/crewly-test \
|
|
291
|
+
bash "${SKILL_PARENT}/delegate-task/execute.sh" \
|
|
292
|
+
--to crewly-test-bob \
|
|
293
|
+
--task "just do the thing" \
|
|
294
|
+
--context "here is some background prose" \
|
|
295
|
+
2>&1 || true)
|
|
296
|
+
if echo "$OUT" | grep -q "Request Contract incomplete" && \
|
|
297
|
+
echo "$OUT" | grep -q "Goal" && \
|
|
298
|
+
echo "$OUT" | grep -q "Outcome" && \
|
|
299
|
+
echo "$OUT" | grep -q "Eval"; then
|
|
300
|
+
echo " PASS: all three markers reported missing"
|
|
301
|
+
PASS=$((PASS + 1))
|
|
302
|
+
else
|
|
303
|
+
echo " FAIL: expected all three named, got: $OUT"
|
|
304
|
+
FAIL=$((FAIL + 1))
|
|
305
|
+
fi
|
|
306
|
+
|
|
307
|
+
# 7f: warning stays non-fatal — dispatch still happens
|
|
308
|
+
> "$CALL_LOG"
|
|
309
|
+
OUT=$(CALL_LOG="$CALL_LOG" CREWLY_ROOT=/tmp/crewly-test \
|
|
310
|
+
bash "${SKILL_PARENT}/delegate-task/execute.sh" \
|
|
311
|
+
--to crewly-test-bob \
|
|
312
|
+
--task "unstructured task" \
|
|
313
|
+
2>&1 || true)
|
|
314
|
+
assert_log_contains "dispatch proceeds despite an incomplete contract" "POST /task-pool/add"
|
|
315
|
+
|
|
316
|
+
# 7g: markers are not fabricated across the task/context seam
|
|
317
|
+
> "$CALL_LOG"
|
|
318
|
+
OUT=$(CALL_LOG="$CALL_LOG" CREWLY_ROOT=/tmp/crewly-test \
|
|
319
|
+
bash "${SKILL_PARENT}/delegate-task/execute.sh" \
|
|
320
|
+
--to crewly-test-bob \
|
|
321
|
+
--task "please go" \
|
|
322
|
+
--context "al: nothing here. Expected Outcome: y. Eval Criteria: z." \
|
|
323
|
+
2>&1 || true)
|
|
324
|
+
if echo "$OUT" | grep -q "Request Contract incomplete" && echo "$OUT" | grep -q "Goal"; then
|
|
325
|
+
echo " PASS: seam does not fabricate a Goal marker"
|
|
326
|
+
PASS=$((PASS + 1))
|
|
327
|
+
else
|
|
328
|
+
echo " FAIL: 'go'+'al:' across the seam was accepted as a Goal marker: $OUT"
|
|
329
|
+
FAIL=$((FAIL + 1))
|
|
330
|
+
fi
|
|
331
|
+
|
|
332
|
+
# 7h: source-level guard on the production call site. The scenarios above run
|
|
333
|
+
# a copy of execute.sh, but pin the call line explicitly so reverting it to
|
|
334
|
+
# the task-only form fails loudly even if a future refactor moves the checker.
|
|
335
|
+
SRC=$(cat "$SCRIPT_DIR/execute.sh")
|
|
336
|
+
if printf '%s' "$SRC" | grep -q -- 'warn_missing_request_contract "$TASK" "$CONTEXT"'; then
|
|
337
|
+
echo " PASS: call site passes \$TASK and \$CONTEXT"
|
|
338
|
+
PASS=$((PASS + 1))
|
|
339
|
+
else
|
|
340
|
+
echo " FAIL: execute.sh does not call warn_missing_request_contract with both fields"
|
|
341
|
+
FAIL=$((FAIL + 1))
|
|
342
|
+
fi
|
|
343
|
+
if printf '%s' "$SRC" | grep -qE '^warn_missing_request_contract "\$TASK"$'; then
|
|
344
|
+
echo " FAIL: execute.sh still has a task-only call to the contract checker"
|
|
345
|
+
FAIL=$((FAIL + 1))
|
|
346
|
+
else
|
|
347
|
+
echo " PASS: no task-only call to the contract checker remains"
|
|
348
|
+
PASS=$((PASS + 1))
|
|
349
|
+
fi
|
|
350
|
+
|
|
199
351
|
# --- Summary ---
|
|
200
352
|
echo ""
|
|
201
353
|
echo "=== Results: $PASS passed, $FAIL failed ==="
|
|
@@ -105,7 +105,7 @@ The report is written to `reportFile` and follows the `[TL_REPORT]` tag conventi
|
|
|
105
105
|
|
|
106
106
|
After generating the report, send it to the Orchestrator:
|
|
107
107
|
```bash
|
|
108
|
-
bash {{SKILLS_PATH}}/agent/core/report-status/execute.sh '{"sessionName":"tl-session","status":"done","summary":"Objective complete: 4/5 tasks passed. Report at /tmp/tl-report-team-123.md"}'
|
|
108
|
+
bash {{SKILLS_PATH}}/agent/core/report-status/execute.sh '{"sessionName":"tl-session","workItemId":"<your WorkItem id>","status":"done","summary":"Objective complete: 4/5 tasks passed. Report at /tmp/tl-report-team-123.md"}'
|
|
109
109
|
```
|
|
110
110
|
|
|
111
111
|
## Related Skills
|
|
@@ -53,36 +53,31 @@ ${TASK_CRITERIA}"
|
|
|
53
53
|
Parent objective: ${OBJECTIVE}
|
|
54
54
|
Required role: ${TASK_ROLE}"
|
|
55
55
|
|
|
56
|
-
case "$TASK_PRIORITY" in
|
|
57
|
-
critical) PRIORITY_NUM=1 ;;
|
|
58
|
-
high) PRIORITY_NUM=2 ;;
|
|
59
|
-
normal|medium) PRIORITY_NUM=3 ;;
|
|
60
|
-
low) PRIORITY_NUM=4 ;;
|
|
61
|
-
*) PRIORITY_NUM=3 ;;
|
|
62
|
-
esac
|
|
63
|
-
|
|
64
|
-
WI_ID="task-$(date +%s%N | cut -c1-13)-${i}-$$"
|
|
65
56
|
|
|
57
|
+
# Minimal CreateWorkItemInput — no client-side `id`/`status`.
|
|
58
|
+
#
|
|
59
|
+
# A body carrying `id` and `status` but no `createdAt` fails the endpoint's
|
|
60
|
+
# `isLegacyFullShape` check, so it silently takes the MINIMAL path and the
|
|
61
|
+
# server generates its own uuid anyway. The old client id was never
|
|
62
|
+
# referenced after creation, so there is nothing to preserve: commit to the
|
|
63
|
+
# minimal shape rather than sending two-thirds of the legacy one.
|
|
66
64
|
WORK_ITEM=$(jq -n \
|
|
67
|
-
--arg id "$WI_ID" \
|
|
68
65
|
--arg title "$TASK_TITLE" \
|
|
69
66
|
--arg brief "$BRIEF" \
|
|
70
67
|
--arg projectPath "$PROJECT_PATH" \
|
|
71
68
|
--arg milestone "$MILESTONE" \
|
|
72
69
|
--arg role "$TASK_ROLE" \
|
|
73
|
-
--
|
|
70
|
+
--arg priority "$TASK_PRIORITY" \
|
|
74
71
|
'{
|
|
75
|
-
id: $id,
|
|
76
72
|
title: $title,
|
|
77
73
|
type: "delegate",
|
|
78
74
|
owner: "system",
|
|
79
|
-
priority: $priority,
|
|
80
|
-
status: "queued",
|
|
81
75
|
briefMarkdown: $brief,
|
|
82
|
-
metadata: { projectPath: $projectPath, milestone: $milestone, requiredRole: $role }
|
|
76
|
+
metadata: { projectPath: $projectPath, milestone: $milestone, requiredRole: $role, priority: $priority }
|
|
83
77
|
}')
|
|
84
78
|
|
|
85
|
-
|
|
79
|
+
# No envelope: addItem reads req.body directly as the CreateWorkItemInput.
|
|
80
|
+
CREATE_BODY="$WORK_ITEM"
|
|
86
81
|
CREATE_RESULT=$(api_call POST "/task-pool/add" "$CREATE_BODY" 2>/dev/null || echo '{"error":"Failed to create WorkItem"}')
|
|
87
82
|
CREATED_ID=$(echo "$CREATE_RESULT" | jq -r '.data.id // .workItem.id // empty' 2>/dev/null || true)
|
|
88
83
|
|
|
@@ -42,12 +42,25 @@ Assigns a task to a worker within the Team Leader's subordinate scope. Validates
|
|
|
42
42
|
| `--task` / `-T` | `task` | Yes | Task description (or pipe via stdin) |
|
|
43
43
|
| `--task-file` | — | No | Read task description from a file path |
|
|
44
44
|
| `--priority` / `-P` | `priority` | No | Priority: `low`, `normal`, `high` (default: `normal`) |
|
|
45
|
-
| `--context` / `-c` | `context` | No | Additional context for the worker |
|
|
45
|
+
| `--context` / `-c` | `context` | No | Additional context for the worker. Scanned for the Request Contract alongside `--task` |
|
|
46
46
|
| `--project` / `-p` | `projectPath` | No | Project path; creates task file in `.crewly/tasks/` |
|
|
47
47
|
| `--team` / `-g` | `teamId` | No | Team ID for hierarchy validation |
|
|
48
48
|
| `--tl-member` | `tlMemberId` | No | TL's member ID for hierarchy validation |
|
|
49
49
|
| `--from` | `fromSession` | No | Delegating TL's session name (for monitoring) |
|
|
50
50
|
|
|
51
|
+
## Request Contract check
|
|
52
|
+
|
|
53
|
+
Before delegating, the skill scans the brief for Goal, Expected Outcome, and
|
|
54
|
+
Eval Criteria markers, and emits a non-fatal warning on stderr naming any that
|
|
55
|
+
are missing. Workers use that warning to decide whether to push back under the
|
|
56
|
+
Brief Reception Protocol.
|
|
57
|
+
|
|
58
|
+
`--task` and `--context` are scanned **together**, so the contract may live in
|
|
59
|
+
either field or be split across both. A marker absent from both still warns.
|
|
60
|
+
|
|
61
|
+
Recognised synonyms: `Objective` for Goal; `Acceptance Criteria` or
|
|
62
|
+
`Evaluation Criteria` for Eval Criteria.
|
|
63
|
+
|
|
51
64
|
## Usage — CLI Flags (preferred)
|
|
52
65
|
|
|
53
66
|
```bash
|