crewly 1.13.0 → 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/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 +25 -0
- 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.map +1 -1
- package/dist/backend/backend/src/services/agent/crewly-agent/crewly-agent-external-runtime.service.js +9 -1
- 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 +42 -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 +22 -1
- package/dist/backend/backend/src/services/agent/crewly-agent/types.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/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/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/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/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/frontend/dist/assets/index-890d3f9d.js +4961 -0
- package/frontend/dist/index.html +1 -1
- package/package.json +2 -2
- package/packages/crewly-agent/src/runtime/agent-runner.service.test.ts +174 -30
- package/packages/crewly-agent/src/runtime/agent-runner.service.ts +121 -6
- package/packages/crewly-agent/src/runtime/types.ts +56 -5
- package/frontend/dist/assets/index-aa737fd3.js +0 -5254
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
---
|
|
2
2
|
name: Complete Task
|
|
3
3
|
description: Mark a task as complete with a summary of the work done.
|
|
4
|
-
version: 1.
|
|
4
|
+
version: 1.2.0
|
|
5
5
|
category: task-management
|
|
6
6
|
skillType: claude-skill
|
|
7
7
|
assignableRoles:
|
|
@@ -43,24 +43,56 @@ Mark a task as complete with a summary of the work done. If the task has an outp
|
|
|
43
43
|
|
|
44
44
|
| Parameter | Required | Description |
|
|
45
45
|
|-----------|----------|-------------|
|
|
46
|
-
| `
|
|
46
|
+
| `workItemId` | Preferred | ID of the V3 WorkItem to complete. This is the only input that selects the WorkItem |
|
|
47
47
|
| `sessionName` | Yes | Your agent session name |
|
|
48
48
|
| `summary` | Yes | Summary of the work completed |
|
|
49
|
+
| `absoluteTaskPath` | No | **Legacy (V1).** Still accepted so older callers keep working, but it does NOT identify a WorkItem |
|
|
49
50
|
| `output` | No | Structured output object (required if task has an output schema) |
|
|
50
|
-
|
|
|
51
|
+
| ~~`skipGates`~~ | **Rejected** | **Not supported.** This endpoint runs no quality gates, so there is nothing to skip. Passing it is a hard error. Use the `check-quality-gates` skill for gates. |
|
|
52
|
+
|
|
53
|
+
### Which WorkItem gets completed
|
|
54
|
+
|
|
55
|
+
Resolution order:
|
|
56
|
+
|
|
57
|
+
1. `workItemId`, if you pass it — always wins.
|
|
58
|
+
2. Otherwise, a lookup of the WorkItem currently `running` against your
|
|
59
|
+
`sessionName` (`GET /api/task-pool/items?status=running&target=<session>`).
|
|
60
|
+
3. If neither resolves, the skill exits non-zero with an error naming the
|
|
61
|
+
session it searched. It never reports success without completing something.
|
|
62
|
+
|
|
63
|
+
Pass `workItemId` whenever you know it — the lookup in step 2 depends on the
|
|
64
|
+
pool state at that instant and cannot disambiguate two concurrently running
|
|
65
|
+
items for one session.
|
|
51
66
|
|
|
52
67
|
## Example
|
|
53
68
|
|
|
54
69
|
```bash
|
|
55
|
-
bash config/skills/agent/complete-task/execute.sh '{"
|
|
70
|
+
bash config/skills/agent/core/complete-task/execute.sh '{"workItemId":"wi-abc123","sessionName":"dev-1","summary":"Implemented login form with validation and tests"}'
|
|
71
|
+
```
|
|
72
|
+
|
|
73
|
+
### Letting the skill resolve your running WorkItem
|
|
74
|
+
|
|
75
|
+
```bash
|
|
76
|
+
bash config/skills/agent/core/complete-task/execute.sh '{"sessionName":"dev-1","summary":"Implemented login form with validation and tests"}'
|
|
56
77
|
```
|
|
57
78
|
|
|
58
79
|
### With structured output
|
|
59
80
|
|
|
60
81
|
```bash
|
|
61
|
-
bash config/skills/agent/complete-task/execute.sh '{"
|
|
82
|
+
bash config/skills/agent/core/complete-task/execute.sh '{"workItemId":"wi-abc123","sessionName":"dev-1","summary":"Implemented login","output":{"summary":"Login form with validation","filesChanged":["src/login.tsx","src/login.test.tsx"],"testsAdded":2}}'
|
|
62
83
|
```
|
|
63
84
|
|
|
85
|
+
Note: a `summary` key inside `output` overrides the top-level `summary`.
|
|
86
|
+
|
|
87
|
+
### Legacy V1 caller (still supported)
|
|
88
|
+
|
|
89
|
+
```bash
|
|
90
|
+
bash config/skills/agent/core/complete-task/execute.sh '{"absoluteTaskPath":"/projects/app/.crewly/tasks/in_progress/implement-login.md","sessionName":"dev-1","summary":"Implemented login"}'
|
|
91
|
+
```
|
|
92
|
+
|
|
93
|
+
`absoluteTaskPath` is carried for logging context only; the WorkItem is still
|
|
94
|
+
resolved by step 2 above.
|
|
95
|
+
|
|
64
96
|
## Output Schema
|
|
65
97
|
|
|
66
98
|
If the task markdown contains an `## Output Schema` section with a JSON Schema definition, your `output` object must validate against that schema. If validation fails, the response will include the errors and you can retry (up to 2 retries). After max retries, the task will be moved to blocked/.
|
|
@@ -5,14 +5,42 @@ SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)"
|
|
|
5
5
|
source "${SCRIPT_DIR}/../../_common/lib.sh"
|
|
6
6
|
|
|
7
7
|
INPUT=$(read_json_input "${1:-}")
|
|
8
|
-
[ -z "$INPUT" ] && error_exit "Usage: execute.sh '{\"
|
|
8
|
+
[ -z "$INPUT" ] && error_exit "Usage: execute.sh '{\"workItemId\":\"wi-abc123\",\"sessionName\":\"dev-1\",\"summary\":\"Implemented feature X\",\"output\":{\"key\":\"value\"}}'"
|
|
9
9
|
|
|
10
|
+
# `workItemId` is the V3 identifier and the ONLY input that drives the API
|
|
11
|
+
# call (see the resolution block further down). `absoluteTaskPath` is the
|
|
12
|
+
# legacy V1 input: still ACCEPTED so pre-existing callers keep working, but
|
|
13
|
+
# it neither selects the WorkItem nor is required.
|
|
14
|
+
#
|
|
15
|
+
# It used to be `require_param`'d here, contradicting this skill's own
|
|
16
|
+
# resolution logic: passing `workItemId` alone — the documented V3 flow —
|
|
17
|
+
# returned `{"error":"Missing required parameter: absoluteTaskPath"}`, so
|
|
18
|
+
# every agent completing a V3 WorkItem had to bypass the skill and curl
|
|
19
|
+
# /api/task-pool/complete by hand. Same silent-friction class as the
|
|
20
|
+
# create-task `{workItem: ...}` wrapper: the skill rejected a request that
|
|
21
|
+
# was, by its own contract, correct.
|
|
22
|
+
WORK_ITEM_ID=$(printf '%s' "$INPUT" | jq -r '.workItemId // empty')
|
|
10
23
|
ABSOLUTE_TASK_PATH=$(printf '%s' "$INPUT" | jq -r '.absoluteTaskPath // empty')
|
|
11
24
|
SESSION_NAME=$(printf '%s' "$INPUT" | jq -r '.sessionName // empty')
|
|
12
25
|
SUMMARY=$(printf '%s' "$INPUT" | jq -r '.summary // empty')
|
|
26
|
+
# `skipGates` is REJECTED, not ignored.
|
|
27
|
+
#
|
|
28
|
+
# It was previously parsed here and forwarded in the request body. Nothing ever
|
|
29
|
+
# read it: `completeItem` destructures only `{agentId, tokenUsage, result}`
|
|
30
|
+
# (task-pool.controller.ts), and `POST /task-pool/complete/:id` runs no quality
|
|
31
|
+
# gates at all — gates live behind `POST /quality-gates/check`, reached via the
|
|
32
|
+
# `check-quality-gates` skill. So the field promised to skip something this
|
|
33
|
+
# endpoint never runs.
|
|
34
|
+
#
|
|
35
|
+
# Accepting-and-ignoring is the worst of the three dispositions: the caller
|
|
36
|
+
# believes gates were skipped, the belief is unfalsifiable, and nothing ever
|
|
37
|
+
# fails. Honouring it is incoherent (there is nothing here to skip). So it
|
|
38
|
+
# fails loudly instead. Safe to hard-error: no caller in the repo passes it.
|
|
13
39
|
SKIP_GATES=$(printf '%s' "$INPUT" | jq -r '.skipGates // empty')
|
|
40
|
+
if [ -n "$SKIP_GATES" ]; then
|
|
41
|
+
error_exit "skipGates is not supported by complete-task and never was — it was accepted and silently discarded. POST /task-pool/complete runs no quality gates, so there is nothing here to skip. Quality gates live behind the 'check-quality-gates' skill (POST /quality-gates/check); run or skip them there. Remove skipGates from this call."
|
|
42
|
+
fi
|
|
14
43
|
OUTPUT_JSON=$(printf '%s' "$INPUT" | jq -c '.output // empty')
|
|
15
|
-
require_param "absoluteTaskPath" "$ABSOLUTE_TASK_PATH"
|
|
16
44
|
require_param "sessionName" "$SESSION_NAME"
|
|
17
45
|
require_param "summary" "$SUMMARY"
|
|
18
46
|
|
|
@@ -48,7 +76,7 @@ fi
|
|
|
48
76
|
|
|
49
77
|
# #186: If the task file was already moved from in_progress/ to done/ by
|
|
50
78
|
# report-status (via complete-by-session), succeed silently instead of failing.
|
|
51
|
-
if echo "$ABSOLUTE_TASK_PATH" | grep -q '/in_progress/'; then
|
|
79
|
+
if [ -n "$ABSOLUTE_TASK_PATH" ] && echo "$ABSOLUTE_TASK_PATH" | grep -q '/in_progress/'; then
|
|
52
80
|
DONE_PATH="${ABSOLUTE_TASK_PATH/\/in_progress\///done/}"
|
|
53
81
|
if [ -f "$DONE_PATH" ] && [ ! -f "$ABSOLUTE_TASK_PATH" ]; then
|
|
54
82
|
echo '{"success":true,"message":"Task already completed (moved to done by report-status)"}'
|
|
@@ -69,15 +97,20 @@ fi
|
|
|
69
97
|
# The legacy `absoluteTaskPath` input is still accepted but no longer
|
|
70
98
|
# drives the API call — it's only used for logging context. Callers
|
|
71
99
|
# should switch to passing `workItemId`.
|
|
72
|
-
|
|
100
|
+
#
|
|
101
|
+
# WORK_ITEM_ID was read from the input up top alongside the other params,
|
|
102
|
+
# so the identifier is known before any of the legacy path handling runs.
|
|
73
103
|
if [ -z "$WORK_ITEM_ID" ]; then
|
|
74
104
|
POOL_RESP=$(api_call GET "/task-pool/items?status=running&target=${SESSION_NAME}" 2>/dev/null || echo '{}')
|
|
75
105
|
WORK_ITEM_ID=$(echo "$POOL_RESP" | jq -r '.workItems[0].id // .data[0].id // empty' 2>/dev/null || true)
|
|
76
106
|
fi
|
|
77
107
|
|
|
108
|
+
# Neither an explicit `workItemId` nor the pool lookup produced a target.
|
|
109
|
+
# Fail loudly and name both accepted identifiers — exiting 0 here would let
|
|
110
|
+
# a worker believe its task was closed while the pool still shows it
|
|
111
|
+
# running, which is the silent no-op this skill must never perform.
|
|
78
112
|
if [ -z "$WORK_ITEM_ID" ]; then
|
|
79
|
-
|
|
80
|
-
exit 1
|
|
113
|
+
error_exit "Could not resolve a WorkItem to complete: no 'workItemId' was passed and no running WorkItem is assigned to session '${SESSION_NAME}'. Pass 'workItemId' explicitly — find it with GET /api/task-pool/items?status=running&target=${SESSION_NAME}. Note: 'absoluteTaskPath' is a legacy input and does NOT identify a WorkItem."
|
|
81
114
|
fi
|
|
82
115
|
|
|
83
116
|
# Hygiene #4: emit canonical body shape `{agentId, result:{summary, ...output}}`
|
|
@@ -99,7 +132,6 @@ fi
|
|
|
99
132
|
BODY=$(jq -n \
|
|
100
133
|
--arg agentId "$SESSION_NAME" \
|
|
101
134
|
--arg summary "$SUMMARY" \
|
|
102
|
-
--arg skipGates "$SKIP_GATES" \
|
|
103
135
|
--argjson output "${OUTPUT_JSON:-null}" \
|
|
104
136
|
'{
|
|
105
137
|
agentId: $agentId,
|
|
@@ -107,8 +139,7 @@ BODY=$(jq -n \
|
|
|
107
139
|
+ (if $output != null and ($output | type) == "object"
|
|
108
140
|
then $output
|
|
109
141
|
else {} end))
|
|
110
|
-
}
|
|
111
|
-
+ (if $skipGates == "true" then {skipGates: true} else {} end)')
|
|
142
|
+
}')
|
|
112
143
|
|
|
113
144
|
api_call POST "/task-pool/complete/${WORK_ITEM_ID}" "$BODY"
|
|
114
145
|
|
|
@@ -0,0 +1,213 @@
|
|
|
1
|
+
#!/bin/bash
|
|
2
|
+
# =============================================================================
|
|
3
|
+
# Tests for complete-task skill
|
|
4
|
+
#
|
|
5
|
+
# Guards how this skill resolves WHICH WorkItem to complete.
|
|
6
|
+
#
|
|
7
|
+
# `absoluteTaskPath` used to be `require_param`'d, which contradicted the
|
|
8
|
+
# skill's own resolution logic: the V3 path selects the WorkItem from
|
|
9
|
+
# `workItemId` (or a pool lookup) and treats `absoluteTaskPath` as legacy
|
|
10
|
+
# logging context only. Passing `workItemId` alone therefore returned
|
|
11
|
+
# `{"error":"Missing required parameter: absoluteTaskPath"}` and agents had
|
|
12
|
+
# to bypass the skill and curl /api/task-pool/complete by hand.
|
|
13
|
+
#
|
|
14
|
+
# These tests fail if that requirement is reintroduced, if the legacy
|
|
15
|
+
# `absoluteTaskPath` path stops working, or if resolving nothing degrades
|
|
16
|
+
# into a silent no-op instead of a clear error.
|
|
17
|
+
#
|
|
18
|
+
# `curl` is stubbed on PATH, so every case runs offline and deterministically
|
|
19
|
+
# while still proving the real HTTP request the skill would have issued.
|
|
20
|
+
# =============================================================================
|
|
21
|
+
set -eo pipefail
|
|
22
|
+
|
|
23
|
+
SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)"
|
|
24
|
+
PASS=0
|
|
25
|
+
FAIL=0
|
|
26
|
+
ERRORS=""
|
|
27
|
+
|
|
28
|
+
assert_contains() {
|
|
29
|
+
local test_name="$1" needle="$2" haystack="$3"
|
|
30
|
+
if printf '%s' "$haystack" | grep -qF -- "$needle"; then
|
|
31
|
+
PASS=$((PASS + 1))
|
|
32
|
+
echo " ✓ ${test_name}"
|
|
33
|
+
else
|
|
34
|
+
FAIL=$((FAIL + 1))
|
|
35
|
+
ERRORS="${ERRORS}\n ✗ ${test_name}\n expected to contain: ${needle}\n actual: ${haystack}"
|
|
36
|
+
echo " ✗ ${test_name}"
|
|
37
|
+
echo " expected to contain: ${needle}"
|
|
38
|
+
fi
|
|
39
|
+
}
|
|
40
|
+
|
|
41
|
+
assert_not_contains() {
|
|
42
|
+
local test_name="$1" needle="$2" haystack="$3"
|
|
43
|
+
if printf '%s' "$haystack" | grep -qF -- "$needle"; then
|
|
44
|
+
FAIL=$((FAIL + 1))
|
|
45
|
+
ERRORS="${ERRORS}\n ✗ ${test_name}\n expected NOT to contain: ${needle}\n actual: ${haystack}"
|
|
46
|
+
echo " ✗ ${test_name}"
|
|
47
|
+
echo " expected NOT to contain: ${needle}"
|
|
48
|
+
else
|
|
49
|
+
PASS=$((PASS + 1))
|
|
50
|
+
echo " ✓ ${test_name}"
|
|
51
|
+
fi
|
|
52
|
+
}
|
|
53
|
+
|
|
54
|
+
# ---------------------------------------------------------------------------
|
|
55
|
+
# curl stub
|
|
56
|
+
#
|
|
57
|
+
# api_call() shells out to bare `curl`, so shadowing it on PATH intercepts
|
|
58
|
+
# every request without touching the skill. The stub records `METHOD URL` and
|
|
59
|
+
# the request body, then emits `<body>\n<http_code>` — the exact shape
|
|
60
|
+
# api_call parses because of its `-w '\n%{http_code}'`.
|
|
61
|
+
#
|
|
62
|
+
# GET /task-pool/items returns one WorkItem so the legacy pool-lookup path
|
|
63
|
+
# resolves, or an empty list when STUB_POOL_EMPTY=1, which is how the
|
|
64
|
+
# "resolves nothing" case is exercised.
|
|
65
|
+
# ---------------------------------------------------------------------------
|
|
66
|
+
STUB_DIR="$(mktemp -d)"
|
|
67
|
+
cat > "$STUB_DIR/curl" << 'STUB_EOF'
|
|
68
|
+
#!/bin/bash
|
|
69
|
+
METHOD="GET"; BODY=""; URL=""
|
|
70
|
+
while [ $# -gt 0 ]; do
|
|
71
|
+
case "$1" in
|
|
72
|
+
-X) METHOD="$2"; shift 2 ;;
|
|
73
|
+
-d) BODY="$2"; shift 2 ;;
|
|
74
|
+
-H) shift 2 ;;
|
|
75
|
+
-w) shift 2 ;;
|
|
76
|
+
-s) shift ;;
|
|
77
|
+
*) URL="$1"; shift ;;
|
|
78
|
+
esac
|
|
79
|
+
done
|
|
80
|
+
echo "${METHOD} ${URL}" >> "$CURL_LOG"
|
|
81
|
+
# Flatten to one line per request: jq -n pretty-prints, and the assertions
|
|
82
|
+
# below need one parseable JSON document per log line.
|
|
83
|
+
printf '%s\n' "$(printf '%s' "$BODY" | tr '\n' ' ')" >> "$CURL_BODY_LOG"
|
|
84
|
+
|
|
85
|
+
if [ "$METHOD" = "GET" ] && printf '%s' "$URL" | grep -q '/task-pool/items'; then
|
|
86
|
+
if [ "${STUB_POOL_EMPTY:-0}" = "1" ]; then
|
|
87
|
+
echo '{"success":true,"data":[],"count":0}'
|
|
88
|
+
else
|
|
89
|
+
echo '{"success":true,"data":[{"id":"wi-from-pool"}],"count":1}'
|
|
90
|
+
fi
|
|
91
|
+
echo "200"
|
|
92
|
+
exit 0
|
|
93
|
+
fi
|
|
94
|
+
|
|
95
|
+
echo '{"success":true,"stub":true}'
|
|
96
|
+
echo "200"
|
|
97
|
+
STUB_EOF
|
|
98
|
+
chmod +x "$STUB_DIR/curl"
|
|
99
|
+
|
|
100
|
+
export CREWLY_API_URL="http://stub.invalid"
|
|
101
|
+
export PATH="$STUB_DIR:$PATH"
|
|
102
|
+
|
|
103
|
+
# Runs execute.sh with a fresh request log. Sets OUT (stdout+stderr),
|
|
104
|
+
# REQUESTS (one "METHOD URL" per line) and BODIES (request bodies).
|
|
105
|
+
run_skill() {
|
|
106
|
+
CURL_LOG="$(mktemp)"; export CURL_LOG
|
|
107
|
+
CURL_BODY_LOG="$(mktemp)"; export CURL_BODY_LOG
|
|
108
|
+
OUT="$(bash "$SCRIPT_DIR/execute.sh" "$1" 2>&1)" || true
|
|
109
|
+
REQUESTS="$(cat "$CURL_LOG")"
|
|
110
|
+
BODIES="$(cat "$CURL_BODY_LOG")"
|
|
111
|
+
rm -f "$CURL_LOG" "$CURL_BODY_LOG"
|
|
112
|
+
}
|
|
113
|
+
|
|
114
|
+
echo "=== complete-task tests ==="
|
|
115
|
+
|
|
116
|
+
echo ""
|
|
117
|
+
echo "--- workItemId alone is sufficient (the reported bug) ---"
|
|
118
|
+
|
|
119
|
+
run_skill '{"workItemId":"wi-explicit","sessionName":"dev-1","summary":"Implemented feature X"}'
|
|
120
|
+
assert_not_contains "workItemId alone does NOT demand absoluteTaskPath" \
|
|
121
|
+
"Missing required parameter: absoluteTaskPath" "$OUT"
|
|
122
|
+
assert_contains "workItemId alone reaches POST /task-pool/complete/<id>" \
|
|
123
|
+
"POST http://stub.invalid/api/task-pool/complete/wi-explicit" "$REQUESTS"
|
|
124
|
+
assert_not_contains "workItemId alone skips the pool lookup entirely" \
|
|
125
|
+
"/task-pool/items" "$REQUESTS"
|
|
126
|
+
|
|
127
|
+
echo ""
|
|
128
|
+
echo "--- Canonical completion body ---"
|
|
129
|
+
|
|
130
|
+
# The endpoint reads `result.summary`; a top-level `summary` is ignored and
|
|
131
|
+
# 400s (task-pool.controller.ts `completeItem`).
|
|
132
|
+
# Tolerate no-match so a regression elsewhere reports as a failed assertion
|
|
133
|
+
# rather than killing the run under `set -e` / `pipefail`.
|
|
134
|
+
COMPLETE_BODY="$(printf '%s' "$BODIES" | grep 'agentId' | head -1 || true)"
|
|
135
|
+
assert_contains "body carries agentId" '"agentId": "dev-1"' "$COMPLETE_BODY"
|
|
136
|
+
assert_contains "body nests summary under result" '"summary": "Implemented feature X"' "$COMPLETE_BODY"
|
|
137
|
+
RESULT_SUMMARY="$(printf '%s' "$COMPLETE_BODY" | jq -r '.result.summary // "MISSING"' 2>/dev/null || echo "MISSING")"
|
|
138
|
+
assert_contains "result.summary is populated" "Implemented feature X" "$RESULT_SUMMARY"
|
|
139
|
+
|
|
140
|
+
echo ""
|
|
141
|
+
echo "--- Legacy absoluteTaskPath callers keep working (no regression) ---"
|
|
142
|
+
|
|
143
|
+
run_skill '{"absoluteTaskPath":"/proj/.crewly/tasks/in_progress/t.md","sessionName":"dev-2","summary":"Legacy caller"}'
|
|
144
|
+
assert_contains "legacy-only call falls back to the pool lookup" \
|
|
145
|
+
"GET http://stub.invalid/api/task-pool/items" "$REQUESTS"
|
|
146
|
+
assert_contains "legacy-only call completes the resolved WorkItem" \
|
|
147
|
+
"POST http://stub.invalid/api/task-pool/complete/wi-from-pool" "$REQUESTS"
|
|
148
|
+
|
|
149
|
+
run_skill '{"absoluteTaskPath":"/proj/.crewly/tasks/in_progress/t.md","workItemId":"wi-both","sessionName":"dev-2","summary":"Both identifiers"}'
|
|
150
|
+
assert_contains "explicit workItemId wins when both are supplied" \
|
|
151
|
+
"POST http://stub.invalid/api/task-pool/complete/wi-both" "$REQUESTS"
|
|
152
|
+
|
|
153
|
+
echo ""
|
|
154
|
+
echo "--- Neither identifier resolves: clear error, not a silent no-op ---"
|
|
155
|
+
|
|
156
|
+
STUB_POOL_EMPTY=1 run_skill '{"sessionName":"dev-3","summary":"Nothing to complete"}'
|
|
157
|
+
assert_contains "unresolvable completion reports an error" '"error"' "$OUT"
|
|
158
|
+
assert_contains "error names the workItemId parameter to pass" "workItemId" "$OUT"
|
|
159
|
+
assert_contains "error names the session it searched" "dev-3" "$OUT"
|
|
160
|
+
assert_not_contains "unresolvable completion does NOT POST a completion" \
|
|
161
|
+
"/task-pool/complete/" "$REQUESTS"
|
|
162
|
+
|
|
163
|
+
CURL_LOG="$(mktemp)"; export CURL_LOG
|
|
164
|
+
CURL_BODY_LOG="$(mktemp)"; export CURL_BODY_LOG
|
|
165
|
+
if STUB_POOL_EMPTY=1 bash "$SCRIPT_DIR/execute.sh" \
|
|
166
|
+
'{"sessionName":"dev-3","summary":"Nothing to complete"}' > /dev/null 2>&1; then
|
|
167
|
+
FAIL=$((FAIL + 1))
|
|
168
|
+
echo " ✗ unresolvable completion exits non-zero"
|
|
169
|
+
ERRORS="${ERRORS}\n ✗ unresolvable completion exits non-zero (exited 0)"
|
|
170
|
+
else
|
|
171
|
+
PASS=$((PASS + 1))
|
|
172
|
+
echo " ✓ unresolvable completion exits non-zero"
|
|
173
|
+
fi
|
|
174
|
+
rm -f "$CURL_LOG" "$CURL_BODY_LOG"
|
|
175
|
+
|
|
176
|
+
echo ""
|
|
177
|
+
echo "--- Remaining required parameters still enforced ---"
|
|
178
|
+
|
|
179
|
+
run_skill '{"workItemId":"wi-1","summary":"no session"}'
|
|
180
|
+
assert_contains "Missing sessionName returns error" "sessionName" "$OUT"
|
|
181
|
+
|
|
182
|
+
run_skill '{"workItemId":"wi-1","sessionName":"dev-1"}'
|
|
183
|
+
assert_contains "Missing summary returns error" "summary" "$OUT"
|
|
184
|
+
|
|
185
|
+
OUT="$(bash "$SCRIPT_DIR/execute.sh" '' 2>&1)" || true
|
|
186
|
+
assert_contains "Empty input returns usage error" "Usage" "$OUT"
|
|
187
|
+
assert_contains "Usage example leads with workItemId" "workItemId" "$OUT"
|
|
188
|
+
|
|
189
|
+
echo ""
|
|
190
|
+
echo "--- Source-level guards ---"
|
|
191
|
+
|
|
192
|
+
SRC="$(cat "$SCRIPT_DIR/execute.sh")"
|
|
193
|
+
|
|
194
|
+
assert_not_contains "absoluteTaskPath is NOT a required parameter" \
|
|
195
|
+
'require_param "absoluteTaskPath"' "$SRC"
|
|
196
|
+
assert_contains "absoluteTaskPath is still parsed (legacy callers accepted)" \
|
|
197
|
+
"jq -r '.absoluteTaskPath // empty'" "$SRC"
|
|
198
|
+
assert_contains "sessionName is still required" 'require_param "sessionName"' "$SRC"
|
|
199
|
+
assert_contains "summary is still required" 'require_param "summary"' "$SRC"
|
|
200
|
+
assert_contains "unresolved WorkItem exits via error_exit" \
|
|
201
|
+
'error_exit "Could not resolve a WorkItem to complete' "$SRC"
|
|
202
|
+
assert_contains "legacy in_progress shortcut only runs on the legacy path" \
|
|
203
|
+
'if [ -n "$ABSOLUTE_TASK_PATH" ] && echo "$ABSOLUTE_TASK_PATH" | grep -q' "$SRC"
|
|
204
|
+
|
|
205
|
+
# Cleanup
|
|
206
|
+
rm -rf "$STUB_DIR"
|
|
207
|
+
|
|
208
|
+
echo ""
|
|
209
|
+
echo "=== Results: ${PASS} passed, ${FAIL} failed ==="
|
|
210
|
+
if [ $FAIL -gt 0 ]; then
|
|
211
|
+
echo -e "\nFailures:${ERRORS}"
|
|
212
|
+
exit 1
|
|
213
|
+
fi
|
|
@@ -49,6 +49,39 @@ Create a new task via the `/api/task-management/create` endpoint. This allows te
|
|
|
49
49
|
| `--milestone` / `-m` | `milestone` | No | Milestone/sprint name (default: `delegated`) |
|
|
50
50
|
| `--session` / `-s` | `sessionName` | No | Session to assign the task to (open if omitted) |
|
|
51
51
|
| `--output-schema` | `outputSchema` | No | JSON object defining expected output schema |
|
|
52
|
+
| `--owner` | `owner` | No | Responsible role: `orchestrator`, `team_lead`, `agent` (default), `system`. A role, not a session name — use `--session` for the session |
|
|
53
|
+
| `--description` / `-d` | `description` | No | Short summary of the task |
|
|
54
|
+
| `--brief` | `briefMarkdown` | No | Long-form brief in markdown. Inline text, or `@/path/to/file.md`. Max 16384 bytes |
|
|
55
|
+
|
|
56
|
+
### Always attach a brief
|
|
57
|
+
|
|
58
|
+
A task's title is not a contract. Every delegated task should carry **Goal**, **Expected Outcome**, and **Eval Criteria**
|
|
59
|
+
— the receiving agent is expected to ask for them if they are missing, and a task without them tends to drift or come
|
|
60
|
+
back unsatisfiable.
|
|
61
|
+
|
|
62
|
+
Put them in `--brief`. Prefer the `@file` form: a real brief is usually too long, and too full of quotes and backticks,
|
|
63
|
+
to survive being passed as a shell argument.
|
|
64
|
+
|
|
65
|
+
```bash
|
|
66
|
+
cat > /tmp/brief.md <<'EOF'
|
|
67
|
+
## GOAL
|
|
68
|
+
What the user ultimately wants.
|
|
69
|
+
|
|
70
|
+
## EXPECTED OUTCOME
|
|
71
|
+
What must be true when this is done.
|
|
72
|
+
|
|
73
|
+
## EVAL CRITERIA
|
|
74
|
+
1. Testable statement.
|
|
75
|
+
2. Another one.
|
|
76
|
+
EOF
|
|
77
|
+
|
|
78
|
+
bash execute.sh --project-path /path/to/project --task "Implement login API" \
|
|
79
|
+
--description "Session-cookie auth for the web portal" \
|
|
80
|
+
--brief @/tmp/brief.md --session dev-max
|
|
81
|
+
```
|
|
82
|
+
|
|
83
|
+
An over-limit brief is **rejected, never truncated** — the error names the limit and your actual size, because what to
|
|
84
|
+
cut is your call, not the tool's.
|
|
52
85
|
|
|
53
86
|
## Examples — CLI Flags (preferred)
|
|
54
87
|
|
|
@@ -26,6 +26,10 @@ Options:
|
|
|
26
26
|
--milestone | -m Milestone/sprint name (default: delegated)
|
|
27
27
|
--session | -s Session to assign the task to (optional; if omitted, task is open)
|
|
28
28
|
--output-schema JSON string defining expected output schema (optional)
|
|
29
|
+
--owner Responsible role: orchestrator, team_lead, agent, system (default: agent)
|
|
30
|
+
--description | -d Short summary of the task (optional)
|
|
31
|
+
--brief Long-form brief in markdown: inline text, or @/path/to/file.md
|
|
32
|
+
Should carry Goal + Expected Outcome + Eval Criteria. Max 16384 bytes.
|
|
29
33
|
--json | -j Raw JSON payload (same as legacy)
|
|
30
34
|
--help | -h Show this help
|
|
31
35
|
EOF_USAGE
|
|
@@ -38,6 +42,9 @@ PRIORITY=""
|
|
|
38
42
|
MILESTONE=""
|
|
39
43
|
SESSION_NAME=""
|
|
40
44
|
OUTPUT_SCHEMA=""
|
|
45
|
+
OWNER=""
|
|
46
|
+
DESCRIPTION=""
|
|
47
|
+
BRIEF=""
|
|
41
48
|
|
|
42
49
|
# Detect legacy JSON argument
|
|
43
50
|
if [[ $# -gt 0 && ${1:0:1} == '{' ]]; then
|
|
@@ -71,6 +78,18 @@ while [[ $# -gt 0 ]]; do
|
|
|
71
78
|
OUTPUT_SCHEMA="$2"
|
|
72
79
|
shift 2
|
|
73
80
|
;;
|
|
81
|
+
--owner)
|
|
82
|
+
OWNER="$2"
|
|
83
|
+
shift 2
|
|
84
|
+
;;
|
|
85
|
+
--description|-d)
|
|
86
|
+
DESCRIPTION="$2"
|
|
87
|
+
shift 2
|
|
88
|
+
;;
|
|
89
|
+
--brief)
|
|
90
|
+
BRIEF="$2"
|
|
91
|
+
shift 2
|
|
92
|
+
;;
|
|
74
93
|
--json|-j)
|
|
75
94
|
INPUT_JSON="$2"
|
|
76
95
|
shift 2
|
|
@@ -111,52 +130,92 @@ if [ -n "$INPUT_JSON" ]; then
|
|
|
111
130
|
[ -z "$MILESTONE" ] && MILESTONE=$(printf '%s' "$INPUT" | jq -r '.milestone // empty')
|
|
112
131
|
[ -z "$SESSION_NAME" ] && SESSION_NAME=$(printf '%s' "$INPUT" | jq -r '.sessionName // empty')
|
|
113
132
|
[ -z "$OUTPUT_SCHEMA" ] && OUTPUT_SCHEMA=$(printf '%s' "$INPUT" | jq -c '.outputSchema // empty')
|
|
133
|
+
[ -z "$OWNER" ] && OWNER=$(printf '%s' "$INPUT" | jq -r '.owner // empty')
|
|
134
|
+
[ -z "$DESCRIPTION" ] && DESCRIPTION=$(printf '%s' "$INPUT" | jq -r '.description // empty')
|
|
135
|
+
[ -z "$BRIEF" ] && BRIEF=$(printf '%s' "$INPUT" | jq -r '.briefMarkdown // .brief // empty')
|
|
114
136
|
fi
|
|
115
137
|
|
|
116
138
|
# Apply defaults
|
|
117
139
|
PRIORITY="${PRIORITY:-medium}"
|
|
118
140
|
MILESTONE="${MILESTONE:-delegated}"
|
|
141
|
+
OWNER="${OWNER:-agent}"
|
|
119
142
|
|
|
120
143
|
require_param "projectPath (--project-path)" "$PROJECT_PATH"
|
|
121
144
|
require_param "task (--task)" "$TASK"
|
|
122
145
|
|
|
123
|
-
#
|
|
124
|
-
#
|
|
125
|
-
#
|
|
126
|
-
|
|
127
|
-
|
|
128
|
-
|
|
129
|
-
|
|
130
|
-
|
|
131
|
-
low) PRIORITY_NUM=4 ;;
|
|
132
|
-
*) PRIORITY_NUM=3 ;;
|
|
133
|
-
esac
|
|
146
|
+
# `--brief @/path/to/file.md` reads the brief from a file. A real brief is
|
|
147
|
+
# usually too long and too full of quotes/backticks to pass safely as a shell
|
|
148
|
+
# argument, so the file form is the one callers should reach for.
|
|
149
|
+
if [ -n "$BRIEF" ] && [ "${BRIEF:0:1}" = "@" ]; then
|
|
150
|
+
BRIEF_PATH="${BRIEF:1}"
|
|
151
|
+
[ -f "$BRIEF_PATH" ] || error_exit "brief file not found: ${BRIEF_PATH}"
|
|
152
|
+
BRIEF="$(cat "$BRIEF_PATH")"
|
|
153
|
+
fi
|
|
134
154
|
|
|
135
|
-
|
|
155
|
+
# Enforce MAX_BRIEF_MARKDOWN_BYTES (16 * 1024) HERE rather than letting the
|
|
156
|
+
# server reject it, so the caller gets the limit and their actual size instead
|
|
157
|
+
# of a bare 400. Deliberately NOT truncated: silently shipping a half-brief is
|
|
158
|
+
# the same class of bug this field was added to fix — trimming is the caller's
|
|
159
|
+
# decision, not ours.
|
|
160
|
+
if [ -n "$BRIEF" ]; then
|
|
161
|
+
BRIEF_BYTES=$(printf '%s' "$BRIEF" | wc -c | tr -d ' ')
|
|
162
|
+
if [ "$BRIEF_BYTES" -gt 16384 ]; then
|
|
163
|
+
error_exit "briefMarkdown is ${BRIEF_BYTES} bytes, over the 16384-byte limit (MAX_BRIEF_MARKDOWN_BYTES). Trim it, or attach the long form as a file and reference it from the brief. Not truncating automatically — what to cut is your call."
|
|
164
|
+
fi
|
|
165
|
+
fi
|
|
166
|
+
|
|
167
|
+
# Validate `owner` against the WorkItemOwner enum the endpoint accepts.
|
|
168
|
+
# This is the field, not the session name — `owner` answers "which role is
|
|
169
|
+
# responsible for execution", and `target` answers "which session runs it".
|
|
170
|
+
# Sending a session name here fails validation with
|
|
171
|
+
# "owner must be one of: orchestrator, team_lead, agent, system".
|
|
172
|
+
case "$OWNER" in
|
|
173
|
+
orchestrator|team_lead|agent|system) ;;
|
|
174
|
+
*) error_exit "owner must be one of: orchestrator, team_lead, agent, system (got: '$OWNER'). This is a role, not a session name — use --session/target for the session." ;;
|
|
175
|
+
esac
|
|
136
176
|
|
|
177
|
+
# Build a minimal `CreateWorkItemInput` for `POST /task-pool/add`.
|
|
178
|
+
#
|
|
179
|
+
# The endpoint reads `req.body` DIRECTLY as the input — there is no
|
|
180
|
+
# `{workItem: ...}` envelope. It accepts two shapes: this minimal input
|
|
181
|
+
# (server fills id/status/createdAt/retryCount/...), or a legacy full
|
|
182
|
+
# WorkItem carrying id AND status AND createdAt. We send the minimal shape,
|
|
183
|
+
# matching `team-leader/delegate-task`.
|
|
184
|
+
#
|
|
185
|
+
# Deliberately NOT sent:
|
|
186
|
+
# - `id` — this skill has no idempotency key worth preserving, so the
|
|
187
|
+
# server-generated uuid wins. (`CreateWorkItemInput.id` IS
|
|
188
|
+
# honoured when supplied; we simply have nothing stable to
|
|
189
|
+
# supply.)
|
|
190
|
+
# - `status` — derived server-side from dependsOn/scheduledAt.
|
|
191
|
+
# - empty `description`/`briefMarkdown` — omitted rather than sent as "",
|
|
192
|
+
# so a task filed without a brief stays a clean minimal WorkItem
|
|
193
|
+
# - top-level `priority` — NOT a WorkItem field; it is silently dropped by
|
|
194
|
+
# both body shapes. Priority travels in `metadata.priority`,
|
|
195
|
+
# which is what real pool items carry and what
|
|
196
|
+
# work-item-projection reads.
|
|
137
197
|
WORK_ITEM=$(jq -n \
|
|
138
|
-
--arg id "$WI_ID" \
|
|
139
198
|
--arg title "$TASK" \
|
|
140
199
|
--arg target "$SESSION_NAME" \
|
|
141
|
-
--arg owner "$
|
|
200
|
+
--arg owner "$OWNER" \
|
|
142
201
|
--arg projectPath "$PROJECT_PATH" \
|
|
143
202
|
--arg milestone "$MILESTONE" \
|
|
144
|
-
--
|
|
203
|
+
--arg priority "$PRIORITY" \
|
|
204
|
+
--arg description "$DESCRIPTION" \
|
|
205
|
+
--arg briefMarkdown "$BRIEF" \
|
|
145
206
|
'{
|
|
146
|
-
id: $id,
|
|
147
207
|
title: $title,
|
|
148
208
|
type: "delegate",
|
|
149
209
|
owner: $owner,
|
|
150
|
-
priority: $priority,
|
|
151
|
-
status: "queued",
|
|
152
210
|
target: (if $target == "" then null else $target end),
|
|
153
|
-
metadata: { projectPath: $projectPath, milestone: $milestone }
|
|
154
|
-
}
|
|
211
|
+
metadata: { projectPath: $projectPath, milestone: $milestone, priority: $priority }
|
|
212
|
+
}
|
|
213
|
+
+ (if $description != "" then {description: $description} else {} end)
|
|
214
|
+
+ (if $briefMarkdown != "" then {briefMarkdown: $briefMarkdown} else {} end)
|
|
215
|
+
| with_entries(select(.value != null))')
|
|
155
216
|
|
|
156
217
|
if [ -n "$OUTPUT_SCHEMA" ] && [ "$OUTPUT_SCHEMA" != "" ]; then
|
|
157
218
|
WORK_ITEM=$(printf '%s' "$WORK_ITEM" | jq --argjson schema "$OUTPUT_SCHEMA" '.metadata += {outputSchema: $schema}')
|
|
158
219
|
fi
|
|
159
220
|
|
|
160
|
-
|
|
161
|
-
|
|
162
|
-
api_call POST "/task-pool/add" "$BODY"
|
|
221
|
+
api_call POST "/task-pool/add" "$WORK_ITEM"
|
|
@@ -0,0 +1,46 @@
|
|
|
1
|
+
#!/bin/bash
|
|
2
|
+
# =============================================================================
|
|
3
|
+
# NOT A SKILL — a signpost.
|
|
4
|
+
#
|
|
5
|
+
# `delegate-task` does not live here. It is a TEAM LEADER skill:
|
|
6
|
+
#
|
|
7
|
+
# config/skills/team-leader/delegate-task/execute.sh
|
|
8
|
+
#
|
|
9
|
+
# This path exists because agents reach for it. Every other core skill lives at
|
|
10
|
+
# config/skills/agent/core/<name>/execute.sh, so the pattern predicts a
|
|
11
|
+
# delegate-task here, and project memory records at least one TL agent taking
|
|
12
|
+
# that path and having to self-correct.
|
|
13
|
+
#
|
|
14
|
+
# It used to be a symlink — and a BROKEN one: it pointed at
|
|
15
|
+
# ../../../../team-leader/delegate-task/execute.sh, which is one `../` too many
|
|
16
|
+
# (four levels up from here is `config/`, not `config/skills/`). So it resolved
|
|
17
|
+
# to config/team-leader/delegate-task/execute.sh, which does not exist.
|
|
18
|
+
# `test -e` failed and running it printed "No such file or directory".
|
|
19
|
+
#
|
|
20
|
+
# That is the worst of the three states: `ls` showed a delegate-task directory
|
|
21
|
+
# containing an execute.sh, so the path LOOKED real to anyone browsing, and
|
|
22
|
+
# failed only on use.
|
|
23
|
+
#
|
|
24
|
+
# WHY A SIGNPOST RATHER THAN A REPAIRED SYMLINK
|
|
25
|
+
#
|
|
26
|
+
# Repairing the link would work, but it would create a SECOND working entry
|
|
27
|
+
# point to one skill. Two paths to one implementation is the drift shape this
|
|
28
|
+
# codebase keeps paying for — the hand-copied mock in the TL delegate-task
|
|
29
|
+
# test, the template copies of norms. Anyone editing or testing delegate-task
|
|
30
|
+
# would have to remember both. There are zero callers of this path, so there is
|
|
31
|
+
# nothing to preserve by making it work.
|
|
32
|
+
#
|
|
33
|
+
# So: one canonical implementation, and a path that fails loudly and tells you
|
|
34
|
+
# where to go. Same disposition as the `skipGates` rejection (#742) and the
|
|
35
|
+
# `block-task` status pre-check (#747): reject, and name the remedy.
|
|
36
|
+
# =============================================================================
|
|
37
|
+
set -euo pipefail
|
|
38
|
+
|
|
39
|
+
SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)"
|
|
40
|
+
REAL_SKILL="$(cd "${SCRIPT_DIR}/../../.." && pwd)/team-leader/delegate-task/execute.sh"
|
|
41
|
+
|
|
42
|
+
cat >&2 <<EOF_MSG
|
|
43
|
+
{"error":"delegate-task is a TEAM LEADER skill and does not live under agent/core. Use: ${REAL_SKILL}","correctPath":"config/skills/team-leader/delegate-task/execute.sh","calledPath":"config/skills/agent/core/delegate-task/execute.sh"}
|
|
44
|
+
EOF_MSG
|
|
45
|
+
|
|
46
|
+
exit 1
|
|
@@ -53,7 +53,7 @@ anything governance-related — delegating, escalating, deciding scope.
|
|
|
53
53
|
|
|
54
54
|
| Parameter | Required | Description |
|
|
55
55
|
|-----------|----------|-------------|
|
|
56
|
-
| `trigger` | No | Filter to norms relevant to a moment (e.g. `"before_commit"`, `"
|
|
56
|
+
| `trigger` | No | Filter to norms relevant to a moment (e.g. `"before_commit"`, `"delegation"`). Matched against the norm's `trigger:` list as whole tokens, case-insensitively — `"lead"` does NOT match a norm tagged `inbound_lead`. Pass several comma-separated to mean "any of these". Omit to read all. |
|
|
57
57
|
| `teamId` | No | Team to read. Defaults to the team resolved from your `sessionName`. |
|
|
58
58
|
| `sessionName` | No | Your session name, used to resolve the team when `teamId` is omitted. |
|
|
59
59
|
|