crewly 1.20.195 → 1.20.196
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/constants.ts +68 -0
- package/config/hooks/agent-status/report.sh +31 -12
- package/config/hooks/subagent-guard/subagent.sh +25 -1
- package/config/roles/orchestrator/fragments/lifecycle.md +1 -1
- package/config/roles/orchestrator/prompt.md +3 -3
- package/config/skills/_common/lib.sh +28 -5
- package/config/skills/_common/lib.test.sh +32 -1
- package/config/skills/agent/core/create-intent-tasks/execute.sh +2 -0
- package/config/skills/agent/core/decompose-intent/execute.sh +2 -0
- package/config/skills/agent/core/experiment-card/SKILL.md +29 -1
- package/config/skills/agent/core/experiment-card/execute.sh +35 -1
- package/config/skills/agent/core/experiment-card/execute.test.sh +11 -0
- package/config/skills/agent/core/project-tickets/SKILL.md +35 -2
- package/config/skills/agent/core/project-tickets/execute.sh +59 -6
- package/config/skills/agent/core/project-tickets/execute.test.sh +24 -0
- package/config/skills/agent/core/send-message/execute.sh +16 -0
- package/config/skills/agent/core/send-message/execute.test.sh +10 -0
- package/config/skills/agent/core/trace-read/SKILL.md +117 -0
- package/config/skills/agent/core/trace-read/execute.sh +116 -0
- package/config/skills/agent/core/update-intent-task/execute.sh +2 -0
- package/config/skills/agent/marketing/submit-for-approval/execute.sh +3 -2
- package/config/skills/orchestrator/decompose-mission/execute.sh +2 -0
- package/config/skills/orchestrator/decompose-okr/execute.sh +1 -0
- package/config/skills/orchestrator/design-team/execute.sh +2 -0
- package/config/skills/orchestrator/measure-kr/execute.sh +2 -0
- package/config/skills/orchestrator/review-mission/execute.sh +2 -0
- package/config/skills/orchestrator/send-message/execute.sh +10 -2
- package/config/skills/orchestrator/send-message/execute.test.sh +9 -0
- package/config/skills/team-leader/design-checklist/execute.sh +2 -0
- package/dist/backend/backend/src/constants.d.ts +223 -5
- package/dist/backend/backend/src/constants.d.ts.map +1 -1
- package/dist/backend/backend/src/constants.js +206 -6
- package/dist/backend/backend/src/constants.js.map +1 -1
- package/dist/backend/backend/src/controllers/agent-hooks/agent-hooks.controller.d.ts +9 -3
- package/dist/backend/backend/src/controllers/agent-hooks/agent-hooks.controller.d.ts.map +1 -1
- package/dist/backend/backend/src/controllers/agent-hooks/agent-hooks.controller.js +38 -5
- package/dist/backend/backend/src/controllers/agent-hooks/agent-hooks.controller.js.map +1 -1
- package/dist/backend/backend/src/controllers/approvals/approvals.controller.d.ts +4 -9
- package/dist/backend/backend/src/controllers/approvals/approvals.controller.d.ts.map +1 -1
- package/dist/backend/backend/src/controllers/approvals/approvals.controller.js +6 -14
- package/dist/backend/backend/src/controllers/approvals/approvals.controller.js.map +1 -1
- package/dist/backend/backend/src/controllers/auth/owner-session.controller.d.ts +64 -0
- package/dist/backend/backend/src/controllers/auth/owner-session.controller.d.ts.map +1 -0
- package/dist/backend/backend/src/controllers/auth/owner-session.controller.js +164 -0
- package/dist/backend/backend/src/controllers/auth/owner-session.controller.js.map +1 -0
- package/dist/backend/backend/src/controllers/browser/browser.routes.d.ts.map +1 -1
- package/dist/backend/backend/src/controllers/browser/browser.routes.js +18 -5
- package/dist/backend/backend/src/controllers/browser/browser.routes.js.map +1 -1
- package/dist/backend/backend/src/controllers/canva/canva.routes.d.ts.map +1 -1
- package/dist/backend/backend/src/controllers/canva/canva.routes.js +8 -1
- package/dist/backend/backend/src/controllers/canva/canva.routes.js.map +1 -1
- package/dist/backend/backend/src/controllers/chat/chat.controller.d.ts.map +1 -1
- package/dist/backend/backend/src/controllers/chat/chat.controller.js +10 -1
- package/dist/backend/backend/src/controllers/chat/chat.controller.js.map +1 -1
- package/dist/backend/backend/src/controllers/cloud/cloud-device-pairing.controller.d.ts.map +1 -1
- package/dist/backend/backend/src/controllers/cloud/cloud-device-pairing.controller.js +3 -5
- package/dist/backend/backend/src/controllers/cloud/cloud-device-pairing.controller.js.map +1 -1
- package/dist/backend/backend/src/controllers/connector/connector.controller.d.ts +4 -2
- package/dist/backend/backend/src/controllers/connector/connector.controller.d.ts.map +1 -1
- package/dist/backend/backend/src/controllers/connector/connector.controller.js +17 -2
- package/dist/backend/backend/src/controllers/connector/connector.controller.js.map +1 -1
- package/dist/backend/backend/src/controllers/connector/grant-sharing.handler.d.ts.map +1 -1
- package/dist/backend/backend/src/controllers/connector/grant-sharing.handler.js +2 -3
- package/dist/backend/backend/src/controllers/connector/grant-sharing.handler.js.map +1 -1
- package/dist/backend/backend/src/controllers/decisions/decisions.controller.d.ts +4 -2
- package/dist/backend/backend/src/controllers/decisions/decisions.controller.d.ts.map +1 -1
- package/dist/backend/backend/src/controllers/decisions/decisions.controller.js +31 -20
- package/dist/backend/backend/src/controllers/decisions/decisions.controller.js.map +1 -1
- package/dist/backend/backend/src/controllers/desktop/desktop.controller.d.ts.map +1 -1
- package/dist/backend/backend/src/controllers/desktop/desktop.controller.js +16 -0
- package/dist/backend/backend/src/controllers/desktop/desktop.controller.js.map +1 -1
- package/dist/backend/backend/src/controllers/google/google.controller.d.ts.map +1 -1
- package/dist/backend/backend/src/controllers/google/google.controller.js +9 -5
- package/dist/backend/backend/src/controllers/google/google.controller.js.map +1 -1
- package/dist/backend/backend/src/controllers/google/google.routes.d.ts.map +1 -1
- package/dist/backend/backend/src/controllers/google/google.routes.js +16 -3
- package/dist/backend/backend/src/controllers/google/google.routes.js.map +1 -1
- package/dist/backend/backend/src/controllers/harness/harness.controller.d.ts.map +1 -1
- package/dist/backend/backend/src/controllers/harness/harness.controller.js +3 -5
- package/dist/backend/backend/src/controllers/harness/harness.controller.js.map +1 -1
- package/dist/backend/backend/src/controllers/microsoft/microsoft-todo.routes.d.ts.map +1 -1
- package/dist/backend/backend/src/controllers/microsoft/microsoft-todo.routes.js +8 -1
- package/dist/backend/backend/src/controllers/microsoft/microsoft-todo.routes.js.map +1 -1
- package/dist/backend/backend/src/controllers/mission/mission-policy.routes.js +1 -1
- package/dist/backend/backend/src/controllers/mission/mission-policy.routes.js.map +1 -1
- package/dist/backend/backend/src/controllers/owner-receipt/owner-receipt.controller.d.ts.map +1 -1
- package/dist/backend/backend/src/controllers/owner-receipt/owner-receipt.controller.js +3 -5
- package/dist/backend/backend/src/controllers/owner-receipt/owner-receipt.controller.js.map +1 -1
- package/dist/backend/backend/src/controllers/people/people.routes.d.ts.map +1 -1
- package/dist/backend/backend/src/controllers/people/people.routes.js +3 -5
- package/dist/backend/backend/src/controllers/people/people.routes.js.map +1 -1
- package/dist/backend/backend/src/controllers/project-tickets/project-tickets.controller.d.ts +35 -2
- package/dist/backend/backend/src/controllers/project-tickets/project-tickets.controller.d.ts.map +1 -1
- package/dist/backend/backend/src/controllers/project-tickets/project-tickets.controller.js +138 -4
- package/dist/backend/backend/src/controllers/project-tickets/project-tickets.controller.js.map +1 -1
- package/dist/backend/backend/src/controllers/project-tickets/project-tickets.routes.d.ts +2 -0
- package/dist/backend/backend/src/controllers/project-tickets/project-tickets.routes.d.ts.map +1 -1
- package/dist/backend/backend/src/controllers/project-tickets/project-tickets.routes.js +7 -1
- package/dist/backend/backend/src/controllers/project-tickets/project-tickets.routes.js.map +1 -1
- package/dist/backend/backend/src/controllers/request/open-items.controller.d.ts.map +1 -1
- package/dist/backend/backend/src/controllers/request/open-items.controller.js +2 -4
- package/dist/backend/backend/src/controllers/request/open-items.controller.js.map +1 -1
- package/dist/backend/backend/src/controllers/signal-digest/signal-digest.controller.js +1 -1
- package/dist/backend/backend/src/controllers/signal-digest/signal-digest.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 +9 -0
- package/dist/backend/backend/src/controllers/slack/slack.controller.js.map +1 -1
- package/dist/backend/backend/src/controllers/system/runtime-fallback.controller.d.ts.map +1 -1
- package/dist/backend/backend/src/controllers/system/runtime-fallback.controller.js +11 -0
- package/dist/backend/backend/src/controllers/system/runtime-fallback.controller.js.map +1 -1
- package/dist/backend/backend/src/controllers/system/system-control.controller.d.ts +6 -4
- package/dist/backend/backend/src/controllers/system/system-control.controller.d.ts.map +1 -1
- package/dist/backend/backend/src/controllers/system/system-control.controller.js +20 -13
- package/dist/backend/backend/src/controllers/system/system-control.controller.js.map +1 -1
- package/dist/backend/backend/src/controllers/team/team.controller.d.ts.map +1 -1
- package/dist/backend/backend/src/controllers/team/team.controller.js +14 -7
- package/dist/backend/backend/src/controllers/team/team.controller.js.map +1 -1
- package/dist/backend/backend/src/controllers/tickets/tickets.controller.d.ts.map +1 -1
- package/dist/backend/backend/src/controllers/tickets/tickets.controller.js +5 -7
- package/dist/backend/backend/src/controllers/tickets/tickets.controller.js.map +1 -1
- package/dist/backend/backend/src/controllers/trace/trace.controller.d.ts +30 -4
- package/dist/backend/backend/src/controllers/trace/trace.controller.d.ts.map +1 -1
- package/dist/backend/backend/src/controllers/trace/trace.controller.js +278 -10
- package/dist/backend/backend/src/controllers/trace/trace.controller.js.map +1 -1
- package/dist/backend/backend/src/controllers/whatsapp/whatsapp-inbox.controller.d.ts +3 -3
- package/dist/backend/backend/src/controllers/whatsapp/whatsapp-inbox.controller.d.ts.map +1 -1
- package/dist/backend/backend/src/controllers/whatsapp/whatsapp-inbox.controller.js +4 -2
- package/dist/backend/backend/src/controllers/whatsapp/whatsapp-inbox.controller.js.map +1 -1
- package/dist/backend/backend/src/controllers/whatsapp/whatsapp.controller.d.ts.map +1 -1
- package/dist/backend/backend/src/controllers/whatsapp/whatsapp.controller.js +10 -2
- package/dist/backend/backend/src/controllers/whatsapp/whatsapp.controller.js.map +1 -1
- package/dist/backend/backend/src/index.d.ts +34 -0
- package/dist/backend/backend/src/index.d.ts.map +1 -1
- package/dist/backend/backend/src/index.js +313 -42
- package/dist/backend/backend/src/index.js.map +1 -1
- package/dist/backend/backend/src/middleware/agent-origin-correction.d.ts +31 -0
- package/dist/backend/backend/src/middleware/agent-origin-correction.d.ts.map +1 -0
- package/dist/backend/backend/src/middleware/agent-origin-correction.js +31 -0
- package/dist/backend/backend/src/middleware/agent-origin-correction.js.map +1 -0
- package/dist/backend/backend/src/middleware/agent-origin.middleware.d.ts +6 -0
- package/dist/backend/backend/src/middleware/agent-origin.middleware.d.ts.map +1 -1
- package/dist/backend/backend/src/middleware/agent-origin.middleware.js +4 -1
- package/dist/backend/backend/src/middleware/agent-origin.middleware.js.map +1 -1
- package/dist/backend/backend/src/middleware/api-token.middleware.d.ts +20 -17
- package/dist/backend/backend/src/middleware/api-token.middleware.d.ts.map +1 -1
- package/dist/backend/backend/src/middleware/api-token.middleware.js +27 -37
- package/dist/backend/backend/src/middleware/api-token.middleware.js.map +1 -1
- package/dist/backend/backend/src/middleware/caller-identity.middleware.d.ts +213 -0
- package/dist/backend/backend/src/middleware/caller-identity.middleware.d.ts.map +1 -0
- package/dist/backend/backend/src/middleware/caller-identity.middleware.js +481 -0
- package/dist/backend/backend/src/middleware/caller-identity.middleware.js.map +1 -0
- package/dist/backend/backend/src/middleware/caller-identity.testing.d.ts +67 -0
- package/dist/backend/backend/src/middleware/caller-identity.testing.d.ts.map +1 -0
- package/dist/backend/backend/src/middleware/caller-identity.testing.js +108 -0
- package/dist/backend/backend/src/middleware/caller-identity.testing.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 +12 -2
- package/dist/backend/backend/src/services/agent/agent-registration.service.js.map +1 -1
- package/dist/backend/backend/src/services/agent/control-plane-guard.service.d.ts +7 -5
- package/dist/backend/backend/src/services/agent/control-plane-guard.service.d.ts.map +1 -1
- package/dist/backend/backend/src/services/agent/control-plane-guard.service.js +19 -10
- package/dist/backend/backend/src/services/agent/control-plane-guard.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 +10 -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/restore-filter.d.ts +5 -2
- package/dist/backend/backend/src/services/agent/restore-filter.d.ts.map +1 -1
- package/dist/backend/backend/src/services/agent/restore-filter.js +5 -2
- package/dist/backend/backend/src/services/agent/restore-filter.js.map +1 -1
- package/dist/backend/backend/src/services/agent/runtime-agent.service.abstract.d.ts.map +1 -1
- package/dist/backend/backend/src/services/agent/runtime-agent.service.abstract.js +4 -0
- package/dist/backend/backend/src/services/agent/runtime-agent.service.abstract.js.map +1 -1
- package/dist/backend/backend/src/services/agent/runtime-exit-monitor.service.d.ts +29 -0
- package/dist/backend/backend/src/services/agent/runtime-exit-monitor.service.d.ts.map +1 -1
- package/dist/backend/backend/src/services/agent/runtime-exit-monitor.service.js +77 -1
- package/dist/backend/backend/src/services/agent/runtime-exit-monitor.service.js.map +1 -1
- package/dist/backend/backend/src/services/ai/prompt-modules/skills-reference.module.d.ts.map +1 -1
- package/dist/backend/backend/src/services/ai/prompt-modules/skills-reference.module.js +1 -0
- package/dist/backend/backend/src/services/ai/prompt-modules/skills-reference.module.js.map +1 -1
- package/dist/backend/backend/src/services/chat/chat.service.d.ts +99 -2
- package/dist/backend/backend/src/services/chat/chat.service.d.ts.map +1 -1
- package/dist/backend/backend/src/services/chat/chat.service.js +265 -40
- package/dist/backend/backend/src/services/chat/chat.service.js.map +1 -1
- package/dist/backend/backend/src/services/chat-v2/chat-v2.dispatcher.service.d.ts +30 -5
- package/dist/backend/backend/src/services/chat-v2/chat-v2.dispatcher.service.d.ts.map +1 -1
- package/dist/backend/backend/src/services/chat-v2/chat-v2.dispatcher.service.js +34 -4
- package/dist/backend/backend/src/services/chat-v2/chat-v2.dispatcher.service.js.map +1 -1
- package/dist/backend/backend/src/services/chat-v2/sqlite/channel.store.d.ts +18 -11
- package/dist/backend/backend/src/services/chat-v2/sqlite/channel.store.d.ts.map +1 -1
- package/dist/backend/backend/src/services/chat-v2/sqlite/channel.store.js +19 -25
- package/dist/backend/backend/src/services/chat-v2/sqlite/channel.store.js.map +1 -1
- package/dist/backend/backend/src/services/chat-v2/sqlite/message.store.d.ts +7 -4
- package/dist/backend/backend/src/services/chat-v2/sqlite/message.store.d.ts.map +1 -1
- package/dist/backend/backend/src/services/chat-v2/sqlite/message.store.js +8 -4
- package/dist/backend/backend/src/services/chat-v2/sqlite/message.store.js.map +1 -1
- package/dist/backend/backend/src/services/chat-v2/types.d.ts +0 -1
- package/dist/backend/backend/src/services/chat-v2/types.d.ts.map +1 -1
- package/dist/backend/backend/src/services/chat-v2/types.js +0 -1
- package/dist/backend/backend/src/services/chat-v2/types.js.map +1 -1
- package/dist/backend/backend/src/services/cloud/mobile-api-relay.service.d.ts.map +1 -1
- package/dist/backend/backend/src/services/cloud/mobile-api-relay.service.js +5 -0
- package/dist/backend/backend/src/services/cloud/mobile-api-relay.service.js.map +1 -1
- package/dist/backend/backend/src/services/core/api-token.service.d.ts +28 -0
- package/dist/backend/backend/src/services/core/api-token.service.d.ts.map +1 -1
- package/dist/backend/backend/src/services/core/api-token.service.js +46 -0
- package/dist/backend/backend/src/services/core/api-token.service.js.map +1 -1
- package/dist/backend/backend/src/services/core/dashboard-build.d.ts +49 -0
- package/dist/backend/backend/src/services/core/dashboard-build.d.ts.map +1 -0
- package/dist/backend/backend/src/services/core/dashboard-build.js +68 -0
- package/dist/backend/backend/src/services/core/dashboard-build.js.map +1 -0
- package/dist/backend/backend/src/services/core/owner-auth.service.d.ts +127 -0
- package/dist/backend/backend/src/services/core/owner-auth.service.d.ts.map +1 -0
- package/dist/backend/backend/src/services/core/owner-auth.service.js +205 -0
- package/dist/backend/backend/src/services/core/owner-auth.service.js.map +1 -0
- package/dist/backend/backend/src/services/core/peer-process.service.d.ts +168 -0
- package/dist/backend/backend/src/services/core/peer-process.service.d.ts.map +1 -0
- package/dist/backend/backend/src/services/core/peer-process.service.js +352 -0
- package/dist/backend/backend/src/services/core/peer-process.service.js.map +1 -0
- package/dist/backend/backend/src/services/experiments/experiment.service.d.ts +97 -1
- package/dist/backend/backend/src/services/experiments/experiment.service.d.ts.map +1 -1
- package/dist/backend/backend/src/services/experiments/experiment.service.js +372 -1
- package/dist/backend/backend/src/services/experiments/experiment.service.js.map +1 -1
- package/dist/backend/backend/src/services/experiments/experiment.wiring.d.ts.map +1 -1
- package/dist/backend/backend/src/services/experiments/experiment.wiring.js +19 -2
- package/dist/backend/backend/src/services/experiments/experiment.wiring.js.map +1 -1
- package/dist/backend/backend/src/services/messaging/owner-message-watchdog.wiring.d.ts.map +1 -1
- package/dist/backend/backend/src/services/messaging/owner-message-watchdog.wiring.js +2 -1
- package/dist/backend/backend/src/services/messaging/owner-message-watchdog.wiring.js.map +1 -1
- package/dist/backend/backend/src/services/messaging/thread-status-queue.service.d.ts +0 -8
- package/dist/backend/backend/src/services/messaging/thread-status-queue.service.d.ts.map +1 -1
- package/dist/backend/backend/src/services/messaging/thread-status-queue.service.js +0 -18
- package/dist/backend/backend/src/services/messaging/thread-status-queue.service.js.map +1 -1
- package/dist/backend/backend/src/services/monitoring/activity-monitor.service.d.ts +19 -0
- package/dist/backend/backend/src/services/monitoring/activity-monitor.service.d.ts.map +1 -1
- package/dist/backend/backend/src/services/monitoring/activity-monitor.service.js +41 -5
- package/dist/backend/backend/src/services/monitoring/activity-monitor.service.js.map +1 -1
- package/dist/backend/backend/src/services/monitoring/agent-turn-state.d.ts +184 -0
- package/dist/backend/backend/src/services/monitoring/agent-turn-state.d.ts.map +1 -0
- package/dist/backend/backend/src/services/monitoring/agent-turn-state.js +391 -0
- package/dist/backend/backend/src/services/monitoring/agent-turn-state.js.map +1 -0
- package/dist/backend/backend/src/services/monitoring/claude-transcript-sync.service.d.ts +35 -1
- package/dist/backend/backend/src/services/monitoring/claude-transcript-sync.service.d.ts.map +1 -1
- package/dist/backend/backend/src/services/monitoring/claude-transcript-sync.service.js +138 -2
- package/dist/backend/backend/src/services/monitoring/claude-transcript-sync.service.js.map +1 -1
- package/dist/backend/backend/src/services/monitoring/claude-transcript-turn.d.ts +73 -0
- package/dist/backend/backend/src/services/monitoring/claude-transcript-turn.d.ts.map +1 -0
- package/dist/backend/backend/src/services/monitoring/claude-transcript-turn.js +258 -0
- package/dist/backend/backend/src/services/monitoring/claude-transcript-turn.js.map +1 -0
- package/dist/backend/backend/src/services/monitoring/deferred-idle-settle.d.ts +82 -0
- package/dist/backend/backend/src/services/monitoring/deferred-idle-settle.d.ts.map +1 -0
- package/dist/backend/backend/src/services/monitoring/deferred-idle-settle.js +141 -0
- package/dist/backend/backend/src/services/monitoring/deferred-idle-settle.js.map +1 -0
- package/dist/backend/backend/src/services/monitoring/system-resource-alert.service.d.ts +51 -1
- package/dist/backend/backend/src/services/monitoring/system-resource-alert.service.d.ts.map +1 -1
- package/dist/backend/backend/src/services/monitoring/system-resource-alert.service.js +118 -2
- package/dist/backend/backend/src/services/monitoring/system-resource-alert.service.js.map +1 -1
- package/dist/backend/backend/src/services/monitoring/transcript-cost-repair.d.ts +103 -0
- package/dist/backend/backend/src/services/monitoring/transcript-cost-repair.d.ts.map +1 -0
- package/dist/backend/backend/src/services/monitoring/transcript-cost-repair.js +86 -0
- package/dist/backend/backend/src/services/monitoring/transcript-cost-repair.js.map +1 -0
- package/dist/backend/backend/src/services/open-items/open-items.service.d.ts +57 -0
- package/dist/backend/backend/src/services/open-items/open-items.service.d.ts.map +1 -1
- package/dist/backend/backend/src/services/open-items/open-items.service.js +100 -4
- package/dist/backend/backend/src/services/open-items/open-items.service.js.map +1 -1
- package/dist/backend/backend/src/services/project-tickets/project-ticket-workflow.service.d.ts.map +1 -1
- package/dist/backend/backend/src/services/project-tickets/project-ticket-workflow.service.js +13 -0
- package/dist/backend/backend/src/services/project-tickets/project-ticket-workflow.service.js.map +1 -1
- package/dist/backend/backend/src/services/project-tickets/project-ticket.service.d.ts +36 -0
- package/dist/backend/backend/src/services/project-tickets/project-ticket.service.d.ts.map +1 -1
- package/dist/backend/backend/src/services/project-tickets/project-ticket.service.js +42 -3
- package/dist/backend/backend/src/services/project-tickets/project-ticket.service.js.map +1 -1
- package/dist/backend/backend/src/services/project-tickets/ticket-assignee-waker.d.ts.map +1 -1
- package/dist/backend/backend/src/services/project-tickets/ticket-assignee-waker.js +2 -1
- package/dist/backend/backend/src/services/project-tickets/ticket-assignee-waker.js.map +1 -1
- package/dist/backend/backend/src/services/project-tickets/ticket-autopilot-decision.d.ts.map +1 -1
- package/dist/backend/backend/src/services/project-tickets/ticket-autopilot-decision.js +3 -0
- package/dist/backend/backend/src/services/project-tickets/ticket-autopilot-decision.js.map +1 -1
- package/dist/backend/backend/src/services/project-tickets/ticket-autopilot-retro.d.ts +156 -0
- package/dist/backend/backend/src/services/project-tickets/ticket-autopilot-retro.d.ts.map +1 -0
- package/dist/backend/backend/src/services/project-tickets/ticket-autopilot-retro.js +308 -0
- package/dist/backend/backend/src/services/project-tickets/ticket-autopilot-retro.js.map +1 -0
- package/dist/backend/backend/src/services/project-tickets/ticket-autopilot-stats.d.ts +212 -0
- package/dist/backend/backend/src/services/project-tickets/ticket-autopilot-stats.d.ts.map +1 -0
- package/dist/backend/backend/src/services/project-tickets/ticket-autopilot-stats.js +515 -0
- package/dist/backend/backend/src/services/project-tickets/ticket-autopilot-stats.js.map +1 -0
- package/dist/backend/backend/src/services/project-tickets/ticket-autopilot-trace.d.ts +186 -0
- package/dist/backend/backend/src/services/project-tickets/ticket-autopilot-trace.d.ts.map +1 -0
- package/dist/backend/backend/src/services/project-tickets/ticket-autopilot-trace.js +341 -0
- package/dist/backend/backend/src/services/project-tickets/ticket-autopilot-trace.js.map +1 -0
- package/dist/backend/backend/src/services/project-tickets/ticket-autopilot.service.d.ts +309 -0
- package/dist/backend/backend/src/services/project-tickets/ticket-autopilot.service.d.ts.map +1 -1
- package/dist/backend/backend/src/services/project-tickets/ticket-autopilot.service.js +726 -1
- package/dist/backend/backend/src/services/project-tickets/ticket-autopilot.service.js.map +1 -1
- package/dist/backend/backend/src/services/restart/in-flight-turn-tracker.service.d.ts +34 -3
- package/dist/backend/backend/src/services/restart/in-flight-turn-tracker.service.d.ts.map +1 -1
- package/dist/backend/backend/src/services/restart/in-flight-turn-tracker.service.js +57 -2
- package/dist/backend/backend/src/services/restart/in-flight-turn-tracker.service.js.map +1 -1
- package/dist/backend/backend/src/services/restart/interrupted-turns.d.ts +61 -3
- package/dist/backend/backend/src/services/restart/interrupted-turns.d.ts.map +1 -1
- package/dist/backend/backend/src/services/restart/interrupted-turns.js +106 -9
- package/dist/backend/backend/src/services/restart/interrupted-turns.js.map +1 -1
- package/dist/backend/backend/src/services/restart/restart-drain.service.d.ts +22 -0
- package/dist/backend/backend/src/services/restart/restart-drain.service.d.ts.map +1 -1
- package/dist/backend/backend/src/services/restart/restart-drain.service.js +37 -5
- package/dist/backend/backend/src/services/restart/restart-drain.service.js.map +1 -1
- package/dist/backend/backend/src/services/restart/supervisor-stop-budget.d.ts +62 -0
- package/dist/backend/backend/src/services/restart/supervisor-stop-budget.d.ts.map +1 -0
- package/dist/backend/backend/src/services/restart/supervisor-stop-budget.js +126 -0
- package/dist/backend/backend/src/services/restart/supervisor-stop-budget.js.map +1 -0
- package/dist/backend/backend/src/services/restart/turn-probe.d.ts +17 -2
- package/dist/backend/backend/src/services/restart/turn-probe.d.ts.map +1 -1
- package/dist/backend/backend/src/services/restart/turn-probe.js +29 -4
- package/dist/backend/backend/src/services/restart/turn-probe.js.map +1 -1
- package/dist/backend/backend/src/services/runtime-fallback/runtime-fallback.service.d.ts.map +1 -1
- package/dist/backend/backend/src/services/runtime-fallback/runtime-fallback.service.js +4 -0
- package/dist/backend/backend/src/services/runtime-fallback/runtime-fallback.service.js.map +1 -1
- package/dist/backend/backend/src/services/slack/slack-auto-working.service.d.ts +29 -0
- package/dist/backend/backend/src/services/slack/slack-auto-working.service.d.ts.map +1 -1
- package/dist/backend/backend/src/services/slack/slack-auto-working.service.js +66 -3
- package/dist/backend/backend/src/services/slack/slack-auto-working.service.js.map +1 -1
- package/dist/backend/backend/src/services/slack/slack-team-channel.service.d.ts +79 -15
- package/dist/backend/backend/src/services/slack/slack-team-channel.service.d.ts.map +1 -1
- package/dist/backend/backend/src/services/slack/slack-team-channel.service.js +200 -41
- package/dist/backend/backend/src/services/slack/slack-team-channel.service.js.map +1 -1
- package/dist/backend/backend/src/services/slack/slack.service.d.ts +18 -0
- package/dist/backend/backend/src/services/slack/slack.service.d.ts.map +1 -1
- package/dist/backend/backend/src/services/slack/slack.service.js +32 -0
- package/dist/backend/backend/src/services/slack/slack.service.js.map +1 -1
- package/dist/backend/backend/src/services/trace/trace-analysis.service.d.ts +99 -0
- package/dist/backend/backend/src/services/trace/trace-analysis.service.d.ts.map +1 -0
- package/dist/backend/backend/src/services/trace/trace-analysis.service.js +148 -0
- package/dist/backend/backend/src/services/trace/trace-analysis.service.js.map +1 -0
- package/dist/backend/backend/src/services/trace/trace-context.service.d.ts +17 -0
- package/dist/backend/backend/src/services/trace/trace-context.service.d.ts.map +1 -1
- package/dist/backend/backend/src/services/trace/trace-context.service.js +58 -1
- package/dist/backend/backend/src/services/trace/trace-context.service.js.map +1 -1
- package/dist/backend/backend/src/services/trace/trace-http.middleware.d.ts +4 -0
- package/dist/backend/backend/src/services/trace/trace-http.middleware.d.ts.map +1 -1
- package/dist/backend/backend/src/services/trace/trace-http.middleware.js +32 -2
- package/dist/backend/backend/src/services/trace/trace-http.middleware.js.map +1 -1
- package/dist/backend/backend/src/services/trace/trace-metrics.d.ts +262 -0
- package/dist/backend/backend/src/services/trace/trace-metrics.d.ts.map +1 -0
- package/dist/backend/backend/src/services/trace/trace-metrics.js +810 -0
- package/dist/backend/backend/src/services/trace/trace-metrics.js.map +1 -0
- package/dist/backend/backend/src/services/trace/trace-recorder.d.ts +48 -0
- package/dist/backend/backend/src/services/trace/trace-recorder.d.ts.map +1 -1
- package/dist/backend/backend/src/services/trace/trace-recorder.js +121 -1
- package/dist/backend/backend/src/services/trace/trace-recorder.js.map +1 -1
- package/dist/backend/backend/src/services/trace/trace-store.d.ts +40 -1
- package/dist/backend/backend/src/services/trace/trace-store.d.ts.map +1 -1
- package/dist/backend/backend/src/services/trace/trace-store.js +126 -14
- package/dist/backend/backend/src/services/trace/trace-store.js.map +1 -1
- package/dist/backend/backend/src/services/trace/trace-summary.d.ts +77 -0
- package/dist/backend/backend/src/services/trace/trace-summary.d.ts.map +1 -0
- package/dist/backend/backend/src/services/trace/trace-summary.js +239 -0
- package/dist/backend/backend/src/services/trace/trace-summary.js.map +1 -0
- package/dist/backend/backend/src/services/trace/trace-timeline.d.ts +74 -0
- package/dist/backend/backend/src/services/trace/trace-timeline.d.ts.map +1 -0
- package/dist/backend/backend/src/services/trace/trace-timeline.js +162 -0
- package/dist/backend/backend/src/services/trace/trace-timeline.js.map +1 -0
- package/dist/backend/backend/src/services/trace/trace.types.d.ts +22 -3
- package/dist/backend/backend/src/services/trace/trace.types.d.ts.map +1 -1
- package/dist/backend/backend/src/services/trace/trace.types.js +20 -1
- package/dist/backend/backend/src/services/trace/trace.types.js.map +1 -1
- package/dist/backend/backend/src/services/v3/owner-receipt/owner-receipt-format-ask.d.ts +80 -0
- package/dist/backend/backend/src/services/v3/owner-receipt/owner-receipt-format-ask.d.ts.map +1 -0
- package/dist/backend/backend/src/services/v3/owner-receipt/owner-receipt-format-ask.js +184 -0
- package/dist/backend/backend/src/services/v3/owner-receipt/owner-receipt-format-ask.js.map +1 -0
- package/dist/backend/backend/src/services/v3/owner-receipt/owner-receipt.service.d.ts +7 -0
- package/dist/backend/backend/src/services/v3/owner-receipt/owner-receipt.service.d.ts.map +1 -1
- package/dist/backend/backend/src/services/v3/owner-receipt/owner-receipt.service.js +16 -0
- package/dist/backend/backend/src/services/v3/owner-receipt/owner-receipt.service.js.map +1 -1
- package/dist/backend/backend/src/services/v3/owner-receipt/owner-receipt.types.d.ts +16 -0
- package/dist/backend/backend/src/services/v3/owner-receipt/owner-receipt.types.d.ts.map +1 -1
- package/dist/backend/backend/src/services/v3/owner-receipt/owner-receipt.types.js.map +1 -1
- package/dist/backend/backend/src/services/v3/tl-auto-verify.service.d.ts.map +1 -1
- package/dist/backend/backend/src/services/v3/tl-auto-verify.service.js +2 -1
- package/dist/backend/backend/src/services/v3/tl-auto-verify.service.js.map +1 -1
- package/dist/backend/backend/src/services/v3/workitem-dispatch.subscriber.d.ts +8 -0
- package/dist/backend/backend/src/services/v3/workitem-dispatch.subscriber.d.ts.map +1 -1
- package/dist/backend/backend/src/services/v3/workitem-dispatch.subscriber.js +24 -2
- package/dist/backend/backend/src/services/v3/workitem-dispatch.subscriber.js.map +1 -1
- package/dist/backend/backend/src/services/whatsapp/whatsapp-draft-gate.d.ts +4 -3
- package/dist/backend/backend/src/services/whatsapp/whatsapp-draft-gate.d.ts.map +1 -1
- package/dist/backend/backend/src/services/whatsapp/whatsapp-draft-gate.js +3 -2
- package/dist/backend/backend/src/services/whatsapp/whatsapp-draft-gate.js.map +1 -1
- package/dist/backend/backend/src/services/wiki/wiki-ingest.service.d.ts +3 -1
- package/dist/backend/backend/src/services/wiki/wiki-ingest.service.d.ts.map +1 -1
- package/dist/backend/backend/src/services/wiki/wiki-ingest.service.js.map +1 -1
- package/dist/backend/backend/src/services/workflow/message-scheduler.service.d.ts.map +1 -1
- package/dist/backend/backend/src/services/workflow/message-scheduler.service.js +3 -0
- package/dist/backend/backend/src/services/workflow/message-scheduler.service.js.map +1 -1
- package/dist/backend/backend/src/services/workflow/scheduler.service.d.ts.map +1 -1
- package/dist/backend/backend/src/services/workflow/scheduler.service.js +3 -0
- package/dist/backend/backend/src/services/workflow/scheduler.service.js.map +1 -1
- package/dist/backend/backend/src/services/worktree/workitem-worktree.subscriber.d.ts.map +1 -1
- package/dist/backend/backend/src/services/worktree/workitem-worktree.subscriber.js +2 -1
- package/dist/backend/backend/src/services/worktree/workitem-worktree.subscriber.js.map +1 -1
- package/dist/backend/backend/src/types/decision.types.d.ts +3 -1
- package/dist/backend/backend/src/types/decision.types.d.ts.map +1 -1
- package/dist/backend/backend/src/types/experiment.types.d.ts +57 -0
- package/dist/backend/backend/src/types/experiment.types.d.ts.map +1 -1
- package/dist/backend/backend/src/types/experiment.types.js.map +1 -1
- package/dist/backend/backend/src/types/ticket-autopilot.types.d.ts +9 -0
- package/dist/backend/backend/src/types/ticket-autopilot.types.d.ts.map +1 -1
- package/dist/backend/backend/src/types/ticket-autopilot.types.js +14 -0
- package/dist/backend/backend/src/types/ticket-autopilot.types.js.map +1 -1
- package/dist/backend/backend/src/types/v2/open-item.types.d.ts +4 -0
- package/dist/backend/backend/src/types/v2/open-item.types.d.ts.map +1 -1
- package/dist/backend/backend/src/types/v2/work-item.types.d.ts +1 -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 +1 -0
- package/dist/backend/backend/src/types/v2/work-item.types.js.map +1 -1
- package/dist/backend/backend/src/utils/agent-caller.utils.d.ts +44 -37
- package/dist/backend/backend/src/utils/agent-caller.utils.d.ts.map +1 -1
- package/dist/backend/backend/src/utils/agent-caller.utils.js +48 -42
- package/dist/backend/backend/src/utils/agent-caller.utils.js.map +1 -1
- package/dist/backend/backend/src/utils/secret-env.d.ts.map +1 -1
- package/dist/backend/backend/src/utils/secret-env.js +8 -1
- package/dist/backend/backend/src/utils/secret-env.js.map +1 -1
- package/dist/backend/build-info.json +2 -2
- package/dist/backend/config/constants.d.ts +67 -0
- package/dist/backend/config/constants.d.ts.map +1 -1
- package/dist/backend/config/constants.js +67 -0
- package/dist/backend/config/constants.js.map +1 -1
- package/dist/cli/backend/src/constants.d.ts +223 -5
- package/dist/cli/backend/src/constants.d.ts.map +1 -1
- package/dist/cli/backend/src/constants.js +206 -6
- package/dist/cli/backend/src/constants.js.map +1 -1
- package/dist/cli/backend/src/services/agent/agent-registration.service.d.ts.map +1 -1
- package/dist/cli/backend/src/services/agent/agent-registration.service.js +12 -2
- package/dist/cli/backend/src/services/agent/agent-registration.service.js.map +1 -1
- package/dist/cli/backend/src/services/agent/control-plane-guard.service.d.ts +7 -5
- package/dist/cli/backend/src/services/agent/control-plane-guard.service.d.ts.map +1 -1
- package/dist/cli/backend/src/services/agent/control-plane-guard.service.js +19 -10
- package/dist/cli/backend/src/services/agent/control-plane-guard.service.js.map +1 -1
- package/dist/cli/backend/src/services/agent/crewly-agent/crewly-agent-external-runtime.service.d.ts.map +1 -1
- package/dist/cli/backend/src/services/agent/crewly-agent/crewly-agent-external-runtime.service.js +10 -1
- package/dist/cli/backend/src/services/agent/crewly-agent/crewly-agent-external-runtime.service.js.map +1 -1
- package/dist/cli/backend/src/services/agent/runtime-agent.service.abstract.d.ts.map +1 -1
- package/dist/cli/backend/src/services/agent/runtime-agent.service.abstract.js +4 -0
- package/dist/cli/backend/src/services/agent/runtime-agent.service.abstract.js.map +1 -1
- package/dist/cli/backend/src/services/agent/runtime-exit-monitor.service.d.ts +29 -0
- package/dist/cli/backend/src/services/agent/runtime-exit-monitor.service.d.ts.map +1 -1
- package/dist/cli/backend/src/services/agent/runtime-exit-monitor.service.js +77 -1
- package/dist/cli/backend/src/services/agent/runtime-exit-monitor.service.js.map +1 -1
- package/dist/cli/backend/src/services/ai/prompt-modules/skills-reference.module.d.ts.map +1 -1
- package/dist/cli/backend/src/services/ai/prompt-modules/skills-reference.module.js +1 -0
- package/dist/cli/backend/src/services/ai/prompt-modules/skills-reference.module.js.map +1 -1
- package/dist/cli/backend/src/services/chat/chat.service.d.ts +99 -2
- package/dist/cli/backend/src/services/chat/chat.service.d.ts.map +1 -1
- package/dist/cli/backend/src/services/chat/chat.service.js +265 -40
- package/dist/cli/backend/src/services/chat/chat.service.js.map +1 -1
- package/dist/cli/backend/src/services/chat-v2/chat-v2.dispatcher.service.d.ts +30 -5
- package/dist/cli/backend/src/services/chat-v2/chat-v2.dispatcher.service.d.ts.map +1 -1
- package/dist/cli/backend/src/services/chat-v2/chat-v2.dispatcher.service.js +34 -4
- package/dist/cli/backend/src/services/chat-v2/chat-v2.dispatcher.service.js.map +1 -1
- package/dist/cli/backend/src/services/chat-v2/sqlite/channel.store.d.ts +18 -11
- package/dist/cli/backend/src/services/chat-v2/sqlite/channel.store.d.ts.map +1 -1
- package/dist/cli/backend/src/services/chat-v2/sqlite/channel.store.js +19 -25
- package/dist/cli/backend/src/services/chat-v2/sqlite/channel.store.js.map +1 -1
- package/dist/cli/backend/src/services/chat-v2/sqlite/message.store.d.ts +7 -4
- package/dist/cli/backend/src/services/chat-v2/sqlite/message.store.d.ts.map +1 -1
- package/dist/cli/backend/src/services/chat-v2/sqlite/message.store.js +8 -4
- package/dist/cli/backend/src/services/chat-v2/sqlite/message.store.js.map +1 -1
- package/dist/cli/backend/src/services/chat-v2/types.d.ts +0 -1
- package/dist/cli/backend/src/services/chat-v2/types.d.ts.map +1 -1
- package/dist/cli/backend/src/services/chat-v2/types.js +0 -1
- package/dist/cli/backend/src/services/chat-v2/types.js.map +1 -1
- package/dist/cli/backend/src/services/core/api-token.service.d.ts +28 -0
- package/dist/cli/backend/src/services/core/api-token.service.d.ts.map +1 -1
- package/dist/cli/backend/src/services/core/api-token.service.js +46 -0
- package/dist/cli/backend/src/services/core/api-token.service.js.map +1 -1
- package/dist/cli/backend/src/services/core/owner-auth.service.d.ts +127 -0
- package/dist/cli/backend/src/services/core/owner-auth.service.d.ts.map +1 -0
- package/dist/cli/backend/src/services/core/owner-auth.service.js +205 -0
- package/dist/cli/backend/src/services/core/owner-auth.service.js.map +1 -0
- package/dist/cli/backend/src/services/messaging/thread-status-queue.service.d.ts +0 -8
- package/dist/cli/backend/src/services/messaging/thread-status-queue.service.d.ts.map +1 -1
- package/dist/cli/backend/src/services/messaging/thread-status-queue.service.js +0 -18
- package/dist/cli/backend/src/services/messaging/thread-status-queue.service.js.map +1 -1
- package/dist/cli/backend/src/services/monitoring/activity-monitor.service.d.ts +19 -0
- package/dist/cli/backend/src/services/monitoring/activity-monitor.service.d.ts.map +1 -1
- package/dist/cli/backend/src/services/monitoring/activity-monitor.service.js +41 -5
- package/dist/cli/backend/src/services/monitoring/activity-monitor.service.js.map +1 -1
- package/dist/cli/backend/src/services/monitoring/agent-turn-state.d.ts +184 -0
- package/dist/cli/backend/src/services/monitoring/agent-turn-state.d.ts.map +1 -0
- package/dist/cli/backend/src/services/monitoring/agent-turn-state.js +391 -0
- package/dist/cli/backend/src/services/monitoring/agent-turn-state.js.map +1 -0
- package/dist/cli/backend/src/services/monitoring/claude-transcript-turn.d.ts +73 -0
- package/dist/cli/backend/src/services/monitoring/claude-transcript-turn.d.ts.map +1 -0
- package/dist/cli/backend/src/services/monitoring/claude-transcript-turn.js +258 -0
- package/dist/cli/backend/src/services/monitoring/claude-transcript-turn.js.map +1 -0
- package/dist/cli/backend/src/services/open-items/open-items.service.d.ts +57 -0
- package/dist/cli/backend/src/services/open-items/open-items.service.d.ts.map +1 -1
- package/dist/cli/backend/src/services/open-items/open-items.service.js +100 -4
- package/dist/cli/backend/src/services/open-items/open-items.service.js.map +1 -1
- package/dist/cli/backend/src/services/project-tickets/project-ticket.service.d.ts +36 -0
- package/dist/cli/backend/src/services/project-tickets/project-ticket.service.d.ts.map +1 -1
- package/dist/cli/backend/src/services/project-tickets/project-ticket.service.js +42 -3
- package/dist/cli/backend/src/services/project-tickets/project-ticket.service.js.map +1 -1
- package/dist/cli/backend/src/services/restart/in-flight-turn-tracker.service.d.ts +34 -3
- package/dist/cli/backend/src/services/restart/in-flight-turn-tracker.service.d.ts.map +1 -1
- package/dist/cli/backend/src/services/restart/in-flight-turn-tracker.service.js +57 -2
- package/dist/cli/backend/src/services/restart/in-flight-turn-tracker.service.js.map +1 -1
- package/dist/cli/backend/src/services/restart/restart-drain.service.d.ts +22 -0
- package/dist/cli/backend/src/services/restart/restart-drain.service.d.ts.map +1 -1
- package/dist/cli/backend/src/services/restart/restart-drain.service.js +37 -5
- package/dist/cli/backend/src/services/restart/restart-drain.service.js.map +1 -1
- package/dist/cli/backend/src/services/slack/slack-auto-working.service.d.ts +29 -0
- package/dist/cli/backend/src/services/slack/slack-auto-working.service.d.ts.map +1 -1
- package/dist/cli/backend/src/services/slack/slack-auto-working.service.js +66 -3
- package/dist/cli/backend/src/services/slack/slack-auto-working.service.js.map +1 -1
- package/dist/cli/backend/src/services/slack/slack-team-channel.service.d.ts +79 -15
- package/dist/cli/backend/src/services/slack/slack-team-channel.service.d.ts.map +1 -1
- package/dist/cli/backend/src/services/slack/slack-team-channel.service.js +200 -41
- package/dist/cli/backend/src/services/slack/slack-team-channel.service.js.map +1 -1
- package/dist/cli/backend/src/services/slack/slack.service.d.ts +18 -0
- package/dist/cli/backend/src/services/slack/slack.service.d.ts.map +1 -1
- package/dist/cli/backend/src/services/slack/slack.service.js +32 -0
- package/dist/cli/backend/src/services/slack/slack.service.js.map +1 -1
- package/dist/cli/backend/src/services/trace/trace-context.service.d.ts +17 -0
- package/dist/cli/backend/src/services/trace/trace-context.service.d.ts.map +1 -1
- package/dist/cli/backend/src/services/trace/trace-context.service.js +58 -1
- package/dist/cli/backend/src/services/trace/trace-context.service.js.map +1 -1
- package/dist/cli/backend/src/services/trace/trace-recorder.d.ts +48 -0
- package/dist/cli/backend/src/services/trace/trace-recorder.d.ts.map +1 -1
- package/dist/cli/backend/src/services/trace/trace-recorder.js +121 -1
- package/dist/cli/backend/src/services/trace/trace-recorder.js.map +1 -1
- package/dist/cli/backend/src/services/trace/trace-store.d.ts +40 -1
- package/dist/cli/backend/src/services/trace/trace-store.d.ts.map +1 -1
- package/dist/cli/backend/src/services/trace/trace-store.js +126 -14
- package/dist/cli/backend/src/services/trace/trace-store.js.map +1 -1
- package/dist/cli/backend/src/services/trace/trace.types.d.ts +22 -3
- package/dist/cli/backend/src/services/trace/trace.types.d.ts.map +1 -1
- package/dist/cli/backend/src/services/trace/trace.types.js +20 -1
- package/dist/cli/backend/src/services/trace/trace.types.js.map +1 -1
- package/dist/cli/backend/src/services/wiki/wiki-ingest.service.d.ts +3 -1
- package/dist/cli/backend/src/services/wiki/wiki-ingest.service.d.ts.map +1 -1
- package/dist/cli/backend/src/services/wiki/wiki-ingest.service.js.map +1 -1
- package/dist/cli/backend/src/types/decision.types.d.ts +3 -1
- package/dist/cli/backend/src/types/decision.types.d.ts.map +1 -1
- package/dist/cli/backend/src/types/ticket-autopilot.types.d.ts +9 -0
- package/dist/cli/backend/src/types/ticket-autopilot.types.d.ts.map +1 -1
- package/dist/cli/backend/src/types/ticket-autopilot.types.js +14 -0
- package/dist/cli/backend/src/types/ticket-autopilot.types.js.map +1 -1
- package/dist/cli/backend/src/types/v2/open-item.types.d.ts +4 -0
- package/dist/cli/backend/src/types/v2/open-item.types.d.ts.map +1 -1
- package/dist/cli/backend/src/types/v2/work-item.types.d.ts +1 -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 +1 -0
- package/dist/cli/backend/src/types/v2/work-item.types.js.map +1 -1
- package/dist/cli/backend/src/utils/secret-env.d.ts.map +1 -1
- package/dist/cli/backend/src/utils/secret-env.js +8 -1
- package/dist/cli/backend/src/utils/secret-env.js.map +1 -1
- package/dist/cli/cli/src/commands/service.d.ts +12 -0
- package/dist/cli/cli/src/commands/service.d.ts.map +1 -1
- package/dist/cli/cli/src/commands/service.js +36 -2
- package/dist/cli/cli/src/commands/service.js.map +1 -1
- package/dist/cli/cli/src/index.js +4 -0
- package/dist/cli/cli/src/index.js.map +1 -1
- package/dist/cli/cli/src/utils/owner-token-fetch.d.ts +41 -0
- package/dist/cli/cli/src/utils/owner-token-fetch.d.ts.map +1 -0
- package/dist/cli/cli/src/utils/owner-token-fetch.js +83 -0
- package/dist/cli/cli/src/utils/owner-token-fetch.js.map +1 -0
- package/dist/cli/cli/src/utils/safe-shutdown.d.ts +13 -3
- package/dist/cli/cli/src/utils/safe-shutdown.d.ts.map +1 -1
- package/dist/cli/cli/src/utils/safe-shutdown.js +26 -4
- package/dist/cli/cli/src/utils/safe-shutdown.js.map +1 -1
- package/dist/cli/config/constants.d.ts +67 -0
- package/dist/cli/config/constants.d.ts.map +1 -1
- package/dist/cli/config/constants.js +67 -0
- package/dist/cli/config/constants.js.map +1 -1
- package/frontend/dist/assets/index-bfa0e2e8.css +42 -0
- package/frontend/dist/assets/{index-800118ca.js → index-edfa8e04.js} +285 -285
- package/frontend/dist/index.html +2 -2
- package/package.json +1 -1
- package/packages/crewly-agent/src/runtime/api-client.test.ts +42 -0
- package/packages/crewly-agent/src/runtime/api-client.ts +6 -0
- package/dist/backend/backend/src/services/v3/request-notification.service.d.ts +0 -52
- package/dist/backend/backend/src/services/v3/request-notification.service.d.ts.map +0 -1
- package/dist/backend/backend/src/services/v3/request-notification.service.js +0 -161
- package/dist/backend/backend/src/services/v3/request-notification.service.js.map +0 -1
- package/frontend/dist/assets/index-5e967795.css +0 -42
|
@@ -23,6 +23,10 @@
|
|
|
23
23
|
# bash execute.sh ask-owner --project P --id APP-12 --clear [--note "answer"]
|
|
24
24
|
# bash execute.sh autopilot --project P [--on|--off] [--driver <session>|--driver default]
|
|
25
25
|
# [--daily-budget <tokens, e.g. 20M>] [--max-in-flight <n>] (owner / orchestrator)
|
|
26
|
+
# [--retro on|off|default]
|
|
27
|
+
# bash execute.sh stats --project P [--days 14] [--label feed] (owner / orc / lead)
|
|
28
|
+
# bash execute.sh runs --project P [--days 7] [--label feed] (owner / orc / lead)
|
|
29
|
+
# bash execute.sh retro --project P --day YYYY-MM-DD --summary "…" [--problem "class|title|detail|evidence" …]
|
|
26
30
|
# bash execute.sh '{"action":"create","project":"P","title":"…"}'
|
|
27
31
|
#
|
|
28
32
|
# P = project id, name, or absolute path.
|
|
@@ -58,9 +62,23 @@ Usage:
|
|
|
58
62
|
bash execute.sh ask-owner --project P --id APP-12 --clear [--note "answer"]
|
|
59
63
|
The owner answered: remove the needs-owner mark
|
|
60
64
|
bash execute.sh autopilot --project P [--on|--off] [--driver <session>|default]
|
|
61
|
-
[--daily-budget <tokens, e.g. 20M>] [--max-in-flight <n>]
|
|
65
|
+
[--daily-budget <tokens, e.g. 20M>] [--max-in-flight <n>] [--retro on|off|default]
|
|
62
66
|
Owner / orchestrator: show or change the ticket
|
|
63
|
-
autopilot (no flags = show)
|
|
67
|
+
autopilot (no flags = show). --retro: the lead's
|
|
68
|
+
daily retro (default: on while an autopilot
|
|
69
|
+
experiment runs)
|
|
70
|
+
bash execute.sh stats --project P [--days 14] [--label feed]
|
|
71
|
+
Autopilot numbers per day: tickets triaged /
|
|
72
|
+
started / done / verified / sent back / stalled,
|
|
73
|
+
cycle times, owner touches, stalls by cause,
|
|
74
|
+
interventions, cost vs the daily budget
|
|
75
|
+
bash execute.sh runs --project P [--days 7] [--label feed]
|
|
76
|
+
Run trace + ticket traces per day (for trace-read)
|
|
77
|
+
bash execute.sh retro --project P --day YYYY-MM-DD --summary "what shipped, where it stalled, why"
|
|
78
|
+
[--problem "class|title|detail|evidence" …]
|
|
79
|
+
Team lead: file the daily autopilot retro.
|
|
80
|
+
class = agent_judgment | missing_skill |
|
|
81
|
+
harness_gap | owner_dependency
|
|
64
82
|
|
|
65
83
|
P = project id, name or absolute path. Workers' new tickets start in backlog;
|
|
66
84
|
the owner, the orchestrator or a team lead makes them ready.
|
|
@@ -72,6 +90,7 @@ STATUS=""; SOURCE=""; REQUEST_ID=""; NOTE=""; OWNER_REVIEW=""; ASSIGNEE=""; STAR
|
|
|
72
90
|
ACCEPTANCE_JSON="null"
|
|
73
91
|
HAS_DESCRIPTION=0
|
|
74
92
|
QUESTION=""; CLEAR=""; OPTIONS_JSON="[]"; DEFAULT_OPT=""; DEADLINE=""; SENSITIVE=""; AP_ENABLED=""; AP_DRIVER=""; AP_BUDGET=""; AP_MAX=""
|
|
93
|
+
AP_RETRO=""; DAYS=""; LABEL=""; DAY=""; SUMMARY=""; PROBLEMS_JSON="[]"
|
|
75
94
|
|
|
76
95
|
if [[ $# -gt 0 && ${1:0:1} == '{' ]]; then
|
|
77
96
|
J="$1"; shift
|
|
@@ -104,6 +123,12 @@ if [[ $# -gt 0 && ${1:0:1} == '{' ]]; then
|
|
|
104
123
|
AP_DRIVER=$(printf '%s' "$J" | jq -r '.driver // empty')
|
|
105
124
|
AP_BUDGET=$(printf '%s' "$J" | jq -r '.dailyBudgetTokens // empty')
|
|
106
125
|
AP_MAX=$(printf '%s' "$J" | jq -r '.maxInFlightPerMember // empty')
|
|
126
|
+
AP_RETRO=$(printf '%s' "$J" | jq -r 'if (.retro|type) == "boolean" then (if .retro then "on" else "off" end) else (.retro // empty) end')
|
|
127
|
+
DAYS=$(printf '%s' "$J" | jq -r '.days // empty')
|
|
128
|
+
LABEL=$(printf '%s' "$J" | jq -r '.label // empty')
|
|
129
|
+
DAY=$(printf '%s' "$J" | jq -r '.day // empty')
|
|
130
|
+
SUMMARY=$(printf '%s' "$J" | jq -r '.summary // empty')
|
|
131
|
+
PROBLEMS_JSON=$(printf '%s' "$J" | jq -c 'if (.problems|type) == "array" then .problems else [] end')
|
|
107
132
|
fi
|
|
108
133
|
if [[ -z "$ACTION" && $# -gt 0 && ${1:0:1} != '-' ]]; then ACTION="$1"; shift; fi
|
|
109
134
|
|
|
@@ -140,13 +165,20 @@ while [[ $# -gt 0 ]]; do
|
|
|
140
165
|
--daily-budget|--budget)
|
|
141
166
|
[ $# -ge 2 ] || error_exit "--daily-budget requires a value"; AP_BUDGET="$2"; shift 2 ;;
|
|
142
167
|
--max-in-flight) [ $# -ge 2 ] || error_exit "--max-in-flight requires a value"; AP_MAX="$2"; shift 2 ;;
|
|
168
|
+
--retro) [ $# -ge 2 ] || error_exit "--retro requires on, off or default"; AP_RETRO="$2"; shift 2 ;;
|
|
169
|
+
--days) [ $# -ge 2 ] || error_exit "--days requires a value"; DAYS="$2"; shift 2 ;;
|
|
170
|
+
--label) [ $# -ge 2 ] || error_exit "--label requires a value"; LABEL="$2"; shift 2 ;;
|
|
171
|
+
--day) [ $# -ge 2 ] || error_exit "--day requires a value"; DAY="$2"; shift 2 ;;
|
|
172
|
+
--summary) [ $# -ge 2 ] || error_exit "--summary requires a value"; SUMMARY="$2"; shift 2 ;;
|
|
173
|
+
--problem) [ $# -ge 2 ] || error_exit "--problem requires \"class|title|detail|evidence\""
|
|
174
|
+
PROBLEMS_JSON=$(jq -c --arg p "$2" '. + [($p | split("|")) as $f | {class: ($f[0] // "" | gsub("^\\s+|\\s+$"; "")), title: ($f[1] // "")} + (if ($f[2] // "") != "" then {detail: $f[2]} else {} end) + (if ($f[3:] | join("|")) != "" then {evidence: ($f[3:] | join("|"))} else {} end)]' <<<"$PROBLEMS_JSON"); shift 2 ;;
|
|
143
175
|
--full) shift ;;
|
|
144
176
|
--help|-h) print_usage; exit 0 ;;
|
|
145
177
|
*) error_exit "Unknown option: $1" ;;
|
|
146
178
|
esac
|
|
147
179
|
done
|
|
148
180
|
|
|
149
|
-
[ -n "$ACTION" ] || { print_usage >&2; error_exit "Missing action: list | show | create | update | claim | release | assign | log | link | ask-owner | autopilot"; }
|
|
181
|
+
[ -n "$ACTION" ] || { print_usage >&2; error_exit "Missing action: list | show | create | update | claim | release | assign | log | link | ask-owner | autopilot | stats | runs | retro"; }
|
|
150
182
|
|
|
151
183
|
# URL-encode a path segment (project paths contain slashes).
|
|
152
184
|
enc() { jq -rn --arg v "$1" '$v|@uri'; }
|
|
@@ -250,19 +282,40 @@ case "$ACTION" in
|
|
|
250
282
|
;;
|
|
251
283
|
autopilot)
|
|
252
284
|
require_param "project" "$PROJECT"
|
|
253
|
-
if [ -z "$AP_ENABLED$AP_DRIVER$AP_BUDGET$AP_MAX" ]; then
|
|
285
|
+
if [ -z "$AP_ENABLED$AP_DRIVER$AP_BUDGET$AP_MAX$AP_RETRO" ]; then
|
|
254
286
|
api_call GET "/project-ticket-autopilot/$(enc "$PROJECT")" | jq '{success, autopilot: .data}'
|
|
255
287
|
else
|
|
256
|
-
BODY=$(jq -n --arg enabled "$AP_ENABLED" --arg driver "$AP_DRIVER" --arg budget "$AP_BUDGET" --arg max "$AP_MAX" \
|
|
288
|
+
BODY=$(jq -n --arg enabled "$AP_ENABLED" --arg driver "$AP_DRIVER" --arg budget "$AP_BUDGET" --arg max "$AP_MAX" --arg retro "$AP_RETRO" \
|
|
257
289
|
'{}
|
|
258
290
|
+ (if $enabled != "" then {enabled: ($enabled == "true")} else {} end)
|
|
291
|
+
+ (if $retro == "default" then {retro: null} elif $retro != "" then {retro: $retro} else {} end)
|
|
259
292
|
+ (if $driver == "default" then {driver: null} elif $driver != "" then {driver: $driver} else {} end)
|
|
260
293
|
+ (if $budget == "default" then {dailyBudgetTokens: null} elif $budget != "" then {dailyBudgetTokens: ($budget | tonumber? // $budget)} else {} end)
|
|
261
294
|
+ (if $max == "default" then {maxInFlightPerMember: null} elif $max != "" then {maxInFlightPerMember: ($max | tonumber? // $max)} else {} end)')
|
|
262
295
|
api_call POST "/project-ticket-autopilot/$(enc "$PROJECT")" "$BODY" | jq '{success, autopilot: .data}'
|
|
263
296
|
fi
|
|
264
297
|
;;
|
|
298
|
+
stats|runs)
|
|
299
|
+
require_param "project" "$PROJECT"
|
|
300
|
+
QS=""
|
|
301
|
+
[ -n "$DAYS" ] && QS="days=$(enc "$DAYS")"
|
|
302
|
+
[ -n "$LABEL" ] && QS="${QS:+$QS&}label=$(enc "$LABEL")"
|
|
303
|
+
if [ "$ACTION" = "stats" ]; then
|
|
304
|
+
api_call GET "/project-ticket-autopilot/$(enc "$PROJECT")/stats${QS:+?$QS}" \
|
|
305
|
+
| jq '{success, stats: (.data | if . == null then null else {project, label, range, pausedForToday, total, labels,
|
|
306
|
+
days: [.days[] | {day, triaged, started, done, verified, sentBack, stalled, ownerTouches: .ownerTouches.total, stallMs: .stalls.totalMs, costUsd, pausedMs, runTraceId}]} end)}'
|
|
307
|
+
else
|
|
308
|
+
api_call GET "/project-ticket-autopilot/$(enc "$PROJECT")/runs${QS:+?$QS}" | jq '{success, runs: .data}'
|
|
309
|
+
fi
|
|
310
|
+
;;
|
|
311
|
+
retro)
|
|
312
|
+
require_param "project" "$PROJECT"
|
|
313
|
+
require_param "day (--day YYYY-MM-DD)" "$DAY"
|
|
314
|
+
require_param "summary (--summary)" "$SUMMARY"
|
|
315
|
+
BODY=$(jq -n --arg d "$DAY" --arg s "$SUMMARY" --argjson p "$PROBLEMS_JSON" '{day: $d, summary: $s, problems: $p}')
|
|
316
|
+
api_call POST "/project-ticket-autopilot/$(enc "$PROJECT")/retro" "$BODY" | jq '{success, retro: .data, error}'
|
|
317
|
+
;;
|
|
265
318
|
*)
|
|
266
|
-
error_exit "Unknown action: $ACTION (use list | show | create | update | claim | release | assign | log | link | ask-owner | autopilot)"
|
|
319
|
+
error_exit "Unknown action: $ACTION (use list | show | create | update | claim | release | assign | log | link | ask-owner | autopilot | stats | runs | retro)"
|
|
267
320
|
;;
|
|
268
321
|
esac
|
|
@@ -31,6 +31,13 @@ class H(BaseHTTPRequestHandler):
|
|
|
31
31
|
if self.path.count('/') >= 4 and not self.path.split('?')[0].endswith('%2Fapp'):
|
|
32
32
|
return self.reply(200, {'success': True, 'data': T})
|
|
33
33
|
return self.reply(200, {'success': True, 'data': {'project': {'id': 'p1'}, 'tickets': [T], 'invalid': []}})
|
|
34
|
+
if self.path.startswith('/api/project-ticket-autopilot/') and '/stats' in self.path:
|
|
35
|
+
day = {'day': '2026-10-02', 'triaged': 3, 'started': 2, 'done': 2, 'verified': 1, 'sentBack': 0, 'stalled': 1,
|
|
36
|
+
'ownerTouches': {'total': 2}, 'stalls': {'totalMs': 60000}, 'costUsd': 1.5, 'pausedMs': 0, 'runTraceId': 'tr-x', 'extra': 1}
|
|
37
|
+
return self.reply(200, {'success': True, 'data': {'project': {'id': 'p1'}, 'label': 'feed', 'range': {}, 'pausedForToday': False,
|
|
38
|
+
'total': {'verified': 1}, 'labels': ['feed'], 'days': [day]}})
|
|
39
|
+
if self.path.startswith('/api/project-ticket-autopilot/') and '/runs' in self.path:
|
|
40
|
+
return self.reply(200, {'success': True, 'data': {'project': {'id': 'p1'}, 'days': [{'day': '2026-10-02', 'runTraceId': 'tr-x', 'traces': []}]}})
|
|
34
41
|
if self.path.startswith('/api/project-ticket-autopilot/'):
|
|
35
42
|
return self.reply(200, {'success': True, 'data': {'settings': {'enabled': False}}})
|
|
36
43
|
if self.path.startswith('/api/project-tickets'):
|
|
@@ -147,6 +154,23 @@ check "autopilot off: body" "$(last '.body | tostring')" '{"enabled":false,"driv
|
|
|
147
154
|
run '{"action":"autopilot","project":"p1","enabled":true,"driver":"ce-owen"}' >/dev/null
|
|
148
155
|
check "autopilot json: body" "$(last '.body | tostring')" '{"enabled":true,"driver":"ce-owen"}'
|
|
149
156
|
|
|
157
|
+
run autopilot --project p1 --retro on >/dev/null
|
|
158
|
+
check "autopilot retro on: body" "$(last '.body | tostring')" '{"retro":"on"}'
|
|
159
|
+
run autopilot --project p1 --retro default >/dev/null
|
|
160
|
+
check "autopilot retro default: body" "$(last '.body | tostring')" '{"retro":null}'
|
|
161
|
+
|
|
162
|
+
# --- stats / runs / retro (specs/2026-10-03-autopilot-experiments.md) ---
|
|
163
|
+
OUT=$(run stats --project p1 --days 7 --label feed)
|
|
164
|
+
check "stats: path" "$(last .path)" "/api/project-ticket-autopilot/p1/stats?days=7&label=feed"
|
|
165
|
+
check "stats: day row" "$(printf '%s' "$OUT" | jq -c '.stats.days[0] | [.day, .verified, .ownerTouches, .stallMs, .runTraceId, has("extra")]')" '["2026-10-02",1,2,60000,"tr-x",false]'
|
|
166
|
+
OUT=$(run runs --project p1)
|
|
167
|
+
check "runs: path" "$(last .path)" "/api/project-ticket-autopilot/p1/runs"
|
|
168
|
+
check "runs: output" "$(printf '%s' "$OUT" | jq -c '.runs.days[0].runTraceId')" '"tr-x"'
|
|
169
|
+
run retro --project p1 --day 2026-10-02 --summary "Shipped CE-1; CE-2 stalled on the owner." --problem "owner_dependency|CE-2 waited for copy|D-4 open 3h|tr-a" --problem "harness_gap|Triage listed a stopped member as busy" >/dev/null
|
|
170
|
+
check "retro: path" "$(last .path)" "/api/project-ticket-autopilot/p1/retro"
|
|
171
|
+
check "retro: body" "$(last '.body | tostring')" '{"day":"2026-10-02","summary":"Shipped CE-1; CE-2 stalled on the owner.","problems":[{"class":"owner_dependency","title":"CE-2 waited for copy","detail":"D-4 open 3h","evidence":"tr-a"},{"class":"harness_gap","title":"Triage listed a stopped member as busy"}]}'
|
|
172
|
+
check "retro: missing day" "$(run_err retro --project p1 --summary x | grep -c 'day')" "1"
|
|
173
|
+
|
|
150
174
|
# --- errors ---
|
|
151
175
|
check "missing action" "$(run_err | grep -c 'Missing action')" "1"
|
|
152
176
|
check "unknown action" "$(run_err explode | grep -c 'Unknown action')" "1"
|
|
@@ -39,7 +39,23 @@ if [[ $# -gt 0 && ${1:0:1} == '{' ]]; then
|
|
|
39
39
|
shift || true
|
|
40
40
|
fi
|
|
41
41
|
|
|
42
|
+
# A value flag at the end of the line (or followed by another of this skill's
|
|
43
|
+
# flags) has no value: say so instead of failing on an unset "$2". Any other
|
|
44
|
+
# value is kept, so a message may still start with "-".
|
|
45
|
+
flag_value() {
|
|
46
|
+
if [[ $# -lt 2 ]]; then
|
|
47
|
+
error_exit "Flag $1 needs a value, e.g. $1 <value>. Use --help for usage."
|
|
48
|
+
fi
|
|
49
|
+
case "$2" in
|
|
50
|
+
--to|-t|--message|-m|--message-file|--json|-j|--help|-h)
|
|
51
|
+
error_exit "Flag $1 needs a value, e.g. $1 <value>. Use --help for usage." ;;
|
|
52
|
+
esac
|
|
53
|
+
}
|
|
54
|
+
|
|
42
55
|
while [[ $# -gt 0 ]]; do
|
|
56
|
+
case "$1" in
|
|
57
|
+
--to|-t|--message|-m|--message-file|--json|-j) flag_value "$@" ;;
|
|
58
|
+
esac
|
|
43
59
|
case "$1" in
|
|
44
60
|
--to|-t)
|
|
45
61
|
TO="$2"
|
|
@@ -12,6 +12,7 @@
|
|
|
12
12
|
# queued, not delivered, with a do-not-resend note (#937)
|
|
13
13
|
# 4. another queued answer is reported as queued, not delivered
|
|
14
14
|
# 5. an HTTP error still fails the skill
|
|
15
|
+
# 6. a value flag with no value prints a clear error (#997)
|
|
15
16
|
|
|
16
17
|
set -euo pipefail
|
|
17
18
|
SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)"
|
|
@@ -76,6 +77,15 @@ else
|
|
|
76
77
|
echo " PASS: an HTTP error fails the skill"; PASS=$((PASS + 1))
|
|
77
78
|
fi
|
|
78
79
|
|
|
80
|
+
OUT=$(bash "$RUN" --to 2>&1 >/dev/null || true)
|
|
81
|
+
check "--to with no value names the flag" "$OUT" 'Flag --to needs a value'
|
|
82
|
+
|
|
83
|
+
OUT=$(bash "$RUN" --to qa-1 --message 2>&1 >/dev/null || true)
|
|
84
|
+
check "--message with no value names the flag" "$OUT" 'Flag --message needs a value'
|
|
85
|
+
|
|
86
|
+
OUT=$(bash "$RUN" --to --message hi 2>&1 >/dev/null || true)
|
|
87
|
+
check "--to followed by another flag is refused" "$OUT" 'Flag --to needs a value'
|
|
88
|
+
|
|
79
89
|
echo ""
|
|
80
90
|
echo "Results: $PASS passed, $FAIL failed"
|
|
81
91
|
[ "$FAIL" -eq 0 ]
|
|
@@ -0,0 +1,117 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: Trace Read
|
|
3
|
+
description: Read how a run went, sized for your context — where the time went (agents working, waiting on the owner, waiting on an agent, idle), owner touches, rework, stalls with their cause, harness interventions, tokens and cost by agent and model, the key events and links. Look a run up by trace, work item, ticket, request or experiment, or list recent runs. For team leads and the orchestrator reviewing runs (retros), and for any agent checking what happened to its own work.
|
|
4
|
+
version: 1.0.0
|
|
5
|
+
category: monitoring
|
|
6
|
+
skillType: claude-skill
|
|
7
|
+
assignableRoles:
|
|
8
|
+
- orchestrator
|
|
9
|
+
- team-leader
|
|
10
|
+
- developer
|
|
11
|
+
- qa
|
|
12
|
+
- tpm
|
|
13
|
+
- designer
|
|
14
|
+
- frontend-developer
|
|
15
|
+
- backend-developer
|
|
16
|
+
- fullstack-dev
|
|
17
|
+
- qa-engineer
|
|
18
|
+
- product-manager
|
|
19
|
+
- architect
|
|
20
|
+
- generalist
|
|
21
|
+
- marketing
|
|
22
|
+
- content-strategist
|
|
23
|
+
- sales
|
|
24
|
+
- support
|
|
25
|
+
triggers:
|
|
26
|
+
- trace
|
|
27
|
+
- how did the run go
|
|
28
|
+
- what happened to my work
|
|
29
|
+
- why was it stuck
|
|
30
|
+
- stalls
|
|
31
|
+
- retro
|
|
32
|
+
- autonomy
|
|
33
|
+
tags:
|
|
34
|
+
- traces
|
|
35
|
+
- monitoring
|
|
36
|
+
- retros
|
|
37
|
+
- autonomy
|
|
38
|
+
execution:
|
|
39
|
+
type: script
|
|
40
|
+
script:
|
|
41
|
+
file: execute.sh
|
|
42
|
+
interpreter: bash
|
|
43
|
+
timeoutMs: 60000
|
|
44
|
+
---
|
|
45
|
+
|
|
46
|
+
# Trace Read
|
|
47
|
+
|
|
48
|
+
Every unit of work has a **run trace**: one id from the owner's request (or
|
|
49
|
+
a goal / experiment) through its tickets, work items, agent turns, messages,
|
|
50
|
+
decisions and token usage. `trace-read` turns one into a short summary you
|
|
51
|
+
can reason about without pulling hundreds of raw events into your context.
|
|
52
|
+
|
|
53
|
+
## Read one run
|
|
54
|
+
|
|
55
|
+
```bash
|
|
56
|
+
bash execute.sh --trace tr-20261003-ab12cd34
|
|
57
|
+
bash execute.sh --work-item 2c2a1c55-… # the run a work item belongs to
|
|
58
|
+
bash execute.sh --ticket CE-7 # a project ticket
|
|
59
|
+
bash execute.sh --ticket TKT-12 # an owner ticket
|
|
60
|
+
bash execute.sh --request <request id>
|
|
61
|
+
bash execute.sh --experiment EXP-3
|
|
62
|
+
```
|
|
63
|
+
|
|
64
|
+
You get, in at most `--max-chars` (default 4000):
|
|
65
|
+
|
|
66
|
+
- **Outcome** — done / cancelled / failed / waiting on the owner / in
|
|
67
|
+
progress, the ticket's status, work items done / failed / open, the
|
|
68
|
+
experiment's verdict.
|
|
69
|
+
- **Time** — wall time split into *active* (an agent turn was busy),
|
|
70
|
+
*waiting on owner* (an open decision card, a ticket in review), *waiting on
|
|
71
|
+
agent* (open work, an unanswered agent message) and *idle* (nobody held
|
|
72
|
+
anything).
|
|
73
|
+
- **Owner touches** — answered, approved, sent back, corrected (the owner
|
|
74
|
+
stepped in unprompted).
|
|
75
|
+
- **Rework** — send-backs, retries, failed verifications, subagent
|
|
76
|
+
send-backs.
|
|
77
|
+
- **Harness interventions** — nudges, redeliveries, wakes, corrections,
|
|
78
|
+
guard blocks, misroutes (agent messages that were refused or not
|
|
79
|
+
delivered).
|
|
80
|
+
- **Tokens and cost** by agent and by model.
|
|
81
|
+
- **Stalls** — gaps longer than `--stall-minutes` (default 30) where nobody
|
|
82
|
+
worked and nothing moved, each with a cause: runtime out of usage or signed
|
|
83
|
+
out, a message not delivered, waiting on the owner, waiting on an agent, or
|
|
84
|
+
nobody pushing.
|
|
85
|
+
- **Key events** — state changes, refusals, errors, interventions and owner
|
|
86
|
+
touches, in time order (routine skill calls and usage lines are only
|
|
87
|
+
counted).
|
|
88
|
+
- **Links** — the dashboard page with its Timeline tab, and the API.
|
|
89
|
+
|
|
90
|
+
## Recent runs
|
|
91
|
+
|
|
92
|
+
```bash
|
|
93
|
+
bash execute.sh --since 2026-10-01T00:00:00Z --limit 10
|
|
94
|
+
```
|
|
95
|
+
|
|
96
|
+
One line per run, newest first: state, wall / active / waiting-on-owner
|
|
97
|
+
time, touches, rework, stalls (and whether one is still going on),
|
|
98
|
+
interventions, cost. Pick one and read it with `--trace`.
|
|
99
|
+
|
|
100
|
+
## Options
|
|
101
|
+
|
|
102
|
+
| Option | Meaning |
|
|
103
|
+
|---|---|
|
|
104
|
+
| `--max-chars N` | Output size bound (600–16000, default 4000) |
|
|
105
|
+
| `--stall-minutes N` | Stall threshold in minutes (default 30) |
|
|
106
|
+
| `--json` | `{traceId, links, text, metrics}` — the full metrics object (not size-bounded) |
|
|
107
|
+
|
|
108
|
+
## Using it well
|
|
109
|
+
|
|
110
|
+
- In a retro, name the stage that failed and cite the stall or event by its
|
|
111
|
+
time; say whether it was agent judgement, a missing skill, a harness gap or
|
|
112
|
+
an owner dependency.
|
|
113
|
+
- A *waiting on the owner* stall is not a failure by itself; many in a row,
|
|
114
|
+
or long ones with nothing to decide, are.
|
|
115
|
+
- *Nobody pushing* means work sat with no owner of the next step: that is
|
|
116
|
+
the run's real gap, not the agent that eventually picked it up.
|
|
117
|
+
- Only work started after run traces were enabled (2026-10-03) has a trace.
|
|
@@ -0,0 +1,116 @@
|
|
|
1
|
+
#!/bin/bash
|
|
2
|
+
# =============================================================================
|
|
3
|
+
# trace-read — how a run went, sized for your context: time (active / waiting
|
|
4
|
+
# on the owner / waiting on an agent / idle), owner touches, rework, stalls
|
|
5
|
+
# with their cause, harness interventions, tokens and cost, key events, links.
|
|
6
|
+
#
|
|
7
|
+
# Backed by GET /api/traces (specs/2026-10-03-autonomy-metrics.md, issue #984).
|
|
8
|
+
#
|
|
9
|
+
# Usage:
|
|
10
|
+
# bash execute.sh --trace tr-20261003-ab12cd34
|
|
11
|
+
# bash execute.sh --work-item <id> | --ticket CE-7 | --ticket TKT-12 | --request <id> | --experiment EXP-3
|
|
12
|
+
# bash execute.sh --since 2026-10-01T00:00:00Z [--limit 10] # recent runs, one line each
|
|
13
|
+
# Options: [--max-chars 4000] [--stall-minutes 30] [--json]
|
|
14
|
+
# =============================================================================
|
|
15
|
+
set -euo pipefail
|
|
16
|
+
SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)"
|
|
17
|
+
source "${SCRIPT_DIR}/../../_common/lib.sh"
|
|
18
|
+
|
|
19
|
+
print_usage() {
|
|
20
|
+
cat <<'EOF_USAGE'
|
|
21
|
+
Usage:
|
|
22
|
+
bash execute.sh --trace tr-YYYYMMDD-xxxxxxxx One run: metrics, stalls with causes, key events, links
|
|
23
|
+
bash execute.sh --work-item ID The run a work item belongs to
|
|
24
|
+
bash execute.sh --ticket CE-7 | --ticket TKT-12 The run of a project ticket or an owner ticket
|
|
25
|
+
bash execute.sh --request ID The run of a Request
|
|
26
|
+
bash execute.sh --experiment EXP-3 The run of an experiment card
|
|
27
|
+
bash execute.sh --since ISO [--limit 10] Runs active since then, one line each, newest first (at most 100)
|
|
28
|
+
Options:
|
|
29
|
+
--max-chars N Size bound of the output (default 4000, 600..16000)
|
|
30
|
+
--stall-minutes N A gap with no progress longer than this is a stall (default 30)
|
|
31
|
+
--json Summary text + links + metrics as JSON (metrics are not size-bounded)
|
|
32
|
+
EOF_USAGE
|
|
33
|
+
}
|
|
34
|
+
|
|
35
|
+
TRACE=""; WORK_ITEM=""; TICKET=""; REQUEST=""; EXPERIMENT=""; SINCE=""; LIMIT="10"; MAX_CHARS="4000"; STALL=""; JSON_OUT="0"
|
|
36
|
+
|
|
37
|
+
while [[ $# -gt 0 ]]; do
|
|
38
|
+
case "$1" in
|
|
39
|
+
--trace|-t) [ $# -ge 2 ] || error_exit "--trace requires a value"; TRACE="$2"; shift 2 ;;
|
|
40
|
+
--work-item|-w) [ $# -ge 2 ] || error_exit "--work-item requires a value"; WORK_ITEM="$2"; shift 2 ;;
|
|
41
|
+
--ticket) [ $# -ge 2 ] || error_exit "--ticket requires a value"; TICKET="$2"; shift 2 ;;
|
|
42
|
+
--request|-r) [ $# -ge 2 ] || error_exit "--request requires a value"; REQUEST="$2"; shift 2 ;;
|
|
43
|
+
--experiment|-e) [ $# -ge 2 ] || error_exit "--experiment requires a value"; EXPERIMENT="$2"; shift 2 ;;
|
|
44
|
+
--since|-s) [ $# -ge 2 ] || error_exit "--since requires a value"; SINCE="$2"; shift 2 ;;
|
|
45
|
+
--limit|-l) [ $# -ge 2 ] || error_exit "--limit requires a value"; LIMIT="$2"; shift 2 ;;
|
|
46
|
+
--max-chars) [ $# -ge 2 ] || error_exit "--max-chars requires a value"; MAX_CHARS="$2"; shift 2 ;;
|
|
47
|
+
--stall-minutes) [ $# -ge 2 ] || error_exit "--stall-minutes requires a value"; STALL="$2"; shift 2 ;;
|
|
48
|
+
--json) JSON_OUT="1"; shift ;;
|
|
49
|
+
--help|-h) print_usage; exit 0 ;;
|
|
50
|
+
*) error_exit "Unknown option: $1 (see --help)" ;;
|
|
51
|
+
esac
|
|
52
|
+
done
|
|
53
|
+
|
|
54
|
+
[[ "$MAX_CHARS" =~ ^[0-9]+$ ]] || error_exit "--max-chars must be a whole number"
|
|
55
|
+
[[ "$LIMIT" =~ ^[0-9]+$ ]] || error_exit "--limit must be a whole number"
|
|
56
|
+
[ -z "$STALL" ] || [[ "$STALL" =~ ^[0-9]+(\.[0-9]+)?$ ]] || error_exit "--stall-minutes must be a positive number"
|
|
57
|
+
# The same bounds the backend applies, so the cut below matches its summary.
|
|
58
|
+
[ "$MAX_CHARS" -lt 600 ] && MAX_CHARS=600
|
|
59
|
+
[ "$MAX_CHARS" -gt 16000 ] && MAX_CHARS=16000
|
|
60
|
+
# The backend embeds metrics in at most 100 rows; ask for no more.
|
|
61
|
+
[ "$LIMIT" -gt 100 ] && LIMIT=100
|
|
62
|
+
[ "$LIMIT" -lt 1 ] && LIMIT=1
|
|
63
|
+
|
|
64
|
+
enc() { jq -rn --arg v "$1" '$v|@uri'; }
|
|
65
|
+
STALL_QS=""
|
|
66
|
+
[ -n "$STALL" ] && STALL_QS="&stallMinutes=$(enc "$STALL")"
|
|
67
|
+
|
|
68
|
+
# --- Recent runs -------------------------------------------------------------
|
|
69
|
+
if [ -z "$TRACE$WORK_ITEM$TICKET$REQUEST$EXPERIMENT" ]; then
|
|
70
|
+
[ -n "$SINCE" ] || { print_usage >&2; error_exit "Pass one of --trace, --work-item, --ticket, --request, --experiment or --since"; }
|
|
71
|
+
if ! RESP=$(api_call_full GET "/traces?since=$(enc "$SINCE")&limit=$(enc "$LIMIT")${STALL_QS}"); then
|
|
72
|
+
error_exit "Could not list traces since $SINCE"
|
|
73
|
+
fi
|
|
74
|
+
if [ "$JSON_OUT" = "1" ]; then
|
|
75
|
+
printf '%s' "$RESP" | jq -c '{success: true, traces: [.data.traces[] | {traceId, kind: .root.kind, summary: .root.summary, updatedAt, metrics}]}'
|
|
76
|
+
exit 0
|
|
77
|
+
fi
|
|
78
|
+
printf '%s' "$RESP" | jq -r --argjson max "$MAX_CHARS" '
|
|
79
|
+
def dur: (. / 60000 | floor) as $m
|
|
80
|
+
| if $m < 1 then "<1m" elif $m < 60 then "\($m)m" elif $m < 1440 then "\($m / 60 | floor)h \($m % 60)m" else "\($m / 1440 | floor)d \(($m % 1440) / 60 | floor)h" end;
|
|
81
|
+
(.data.traces // []) as $t
|
|
82
|
+
| (if ($t | length) == 0 then "No traces active since then."
|
|
83
|
+
else ([ "\($t | length) runs (newest first):" ] + [ $t[] |
|
|
84
|
+
"\(.traceId) · \(.root.kind) · \(.updatedAt[0:16] | sub("T"; " ")) · \(.root.summary[0:80])" +
|
|
85
|
+
(if .metrics then
|
|
86
|
+
" — \(.metrics.state | gsub("_"; " ")); wall \(.metrics.wallMs | dur), active \(.metrics.activeMs | dur), waiting on owner \(.metrics.waitingOwnerMs | dur); touches \(.metrics.ownerTouches), rework \(.metrics.rework), stalls \(.metrics.stalls)\(if .metrics.ongoingStall then " (one ongoing)" else "" end), interventions \(.metrics.interventions), $\(.metrics.costUsd * 100 | round / 100)"
|
|
87
|
+
else "" end) ] | join("\n")) + "\nRead one: trace-read --trace <id>"
|
|
88
|
+
end) as $text
|
|
89
|
+
| if ($text | length) > $max then $text[0:($max - 1)] + "…" else $text end'
|
|
90
|
+
exit 0
|
|
91
|
+
fi
|
|
92
|
+
|
|
93
|
+
# --- One run -----------------------------------------------------------------
|
|
94
|
+
if [ -z "$TRACE" ]; then
|
|
95
|
+
if [ -n "$WORK_ITEM" ]; then Q="workItemId=$(enc "$WORK_ITEM")"
|
|
96
|
+
elif [ -n "$TICKET" ]; then Q="ticketId=$(enc "$TICKET")"
|
|
97
|
+
elif [ -n "$REQUEST" ]; then Q="requestId=$(enc "$REQUEST")"
|
|
98
|
+
else Q="experimentId=$(enc "$EXPERIMENT")"; fi
|
|
99
|
+
if ! REF=$(api_call GET "/traces/by-ref?${Q}" 2>/dev/null); then
|
|
100
|
+
error_exit "No trace for that reference (only work started after run traces were enabled has one)"
|
|
101
|
+
fi
|
|
102
|
+
TRACE=$(printf '%s' "$REF" | jq -r '.data.traceId // empty')
|
|
103
|
+
[ -n "$TRACE" ] || error_exit "No trace for that reference"
|
|
104
|
+
fi
|
|
105
|
+
[[ "$TRACE" =~ ^tr-[0-9]{8}-[0-9a-f]+$ ]] || error_exit "Not a trace id (tr-YYYYMMDD-xxxxxxxx): $TRACE"
|
|
106
|
+
|
|
107
|
+
if ! RESP=$(api_call_full GET "/traces/$(enc "$TRACE")/summary?maxChars=${MAX_CHARS}${STALL_QS}"); then
|
|
108
|
+
error_exit "Trace $TRACE could not be read"
|
|
109
|
+
fi
|
|
110
|
+
if [ "$JSON_OUT" = "1" ]; then
|
|
111
|
+
printf '%s' "$RESP" | jq -c --argjson max "$MAX_CHARS" '{success: true, traceId: .data.traceId, links: .data.links, text: (.data.text[0:$max]), metrics: .data.metrics}'
|
|
112
|
+
else
|
|
113
|
+
# The backend already keeps the text within --max-chars; cut again so a
|
|
114
|
+
# different backend version can never flood the caller's context.
|
|
115
|
+
printf '%s' "$RESP" | jq -r --argjson max "$MAX_CHARS" '.data.text as $t | if ($t | length) > $max then $t[0:($max - 1)] + "…" else $t end'
|
|
116
|
+
fi
|
|
@@ -75,6 +75,8 @@ API_URL="${CREWLY_API_URL:-http://localhost:${CREWLY_PORT}}"
|
|
|
75
75
|
RESPONSE=$(curl -s -w "\n%{http_code}" \
|
|
76
76
|
-X PUT \
|
|
77
77
|
-H "Content-Type: application/json" \
|
|
78
|
+
-H "X-Agent-Badge: ${CREWLY_AGENT_BADGE:-}" \
|
|
79
|
+
-H "X-Agent-Session: ${CREWLY_SESSION_NAME:-}" \
|
|
78
80
|
-d "$BODY" \
|
|
79
81
|
"${API_URL}/api/intent-tasks/${TASK_ID}" 2>&1) || {
|
|
80
82
|
echo "{\"success\":false,\"error\":\"Failed to connect to backend at ${API_URL}\"}"
|
|
@@ -65,6 +65,7 @@ case "$ACTION" in
|
|
|
65
65
|
|
|
66
66
|
# Submit via API
|
|
67
67
|
RESPONSE=$(curl -s -X POST "${API_BASE}/api/content-approvals" \
|
|
68
|
+
-H "X-Agent-Badge: ${CREWLY_AGENT_BADGE:-}" \
|
|
68
69
|
-H "Content-Type: application/json" \
|
|
69
70
|
-d "$PAYLOAD" 2>/dev/null || echo '{"error":"API unreachable"}')
|
|
70
71
|
|
|
@@ -93,7 +94,7 @@ case "$ACTION" in
|
|
|
93
94
|
fi
|
|
94
95
|
|
|
95
96
|
# Check via API
|
|
96
|
-
RESPONSE=$(curl -s "${API_BASE}/api/content-approvals/${APPROVAL_ID}" 2>/dev/null || echo '{"error":"API unreachable"}')
|
|
97
|
+
RESPONSE=$(curl -s -H "X-Agent-Badge: ${CREWLY_AGENT_BADGE:-}" "${API_BASE}/api/content-approvals/${APPROVAL_ID}" 2>/dev/null || echo '{"error":"API unreachable"}')
|
|
97
98
|
|
|
98
99
|
if echo "$RESPONSE" | jq -e '.id' >/dev/null 2>&1; then
|
|
99
100
|
STATUS=$(echo "$RESPONSE" | jq -r '.status')
|
|
@@ -114,7 +115,7 @@ case "$ACTION" in
|
|
|
114
115
|
|
|
115
116
|
list)
|
|
116
117
|
# List pending approvals via API
|
|
117
|
-
RESPONSE=$(curl -s "${API_BASE}/api/content-approvals?teamId=${TEAM_ID}&status=pending" 2>/dev/null || echo '[]')
|
|
118
|
+
RESPONSE=$(curl -s -H "X-Agent-Badge: ${CREWLY_AGENT_BADGE:-}" "${API_BASE}/api/content-approvals?teamId=${TEAM_ID}&status=pending" 2>/dev/null || echo '[]')
|
|
118
119
|
|
|
119
120
|
if echo "$RESPONSE" | jq -e '.[0]' >/dev/null 2>&1; then
|
|
120
121
|
COUNT=$(echo "$RESPONSE" | jq 'length')
|
|
@@ -130,6 +130,8 @@ After generating the JSON, call the following to submit the decomposition:
|
|
|
130
130
|
\`\`\`bash
|
|
131
131
|
curl -s -X POST "${CREWLY_API_URL}/api/missions/${MISSION_ID}/decompose" \\
|
|
132
132
|
-H "Content-Type: application/json" \\
|
|
133
|
+
-H "X-Agent-Badge: \${CREWLY_AGENT_BADGE:-}" \\
|
|
134
|
+
-H "X-Agent-Session: \${CREWLY_SESSION_NAME:-}" \\
|
|
133
135
|
-d '<YOUR_JSON_OUTPUT>'
|
|
134
136
|
\`\`\`
|
|
135
137
|
|
|
@@ -122,6 +122,7 @@ After generating the JSON, submit the proposal (children are created as
|
|
|
122
122
|
\`\`\`bash
|
|
123
123
|
curl -s -X POST "${CREWLY_API_URL}/api/missions/${MISSION_ID}/decompose-okr" \\
|
|
124
124
|
-H "Content-Type: application/json" \\
|
|
125
|
+
-H "X-Agent-Badge: \${CREWLY_AGENT_BADGE:-}" \\
|
|
125
126
|
-H "X-Agent-Session: \${CREWLY_SESSION_NAME:-}" \\
|
|
126
127
|
-d '<YOUR_JSON_OUTPUT>'
|
|
127
128
|
\`\`\`
|
|
@@ -135,6 +135,8 @@ After generating the JSON, create the team:
|
|
|
135
135
|
\`\`\`bash
|
|
136
136
|
curl -s -X POST "${CREWLY_API_URL}/api/teams" \\
|
|
137
137
|
-H "Content-Type: application/json" \\
|
|
138
|
+
-H "X-Agent-Badge: \${CREWLY_AGENT_BADGE:-}" \\
|
|
139
|
+
-H "X-Agent-Session: \${CREWLY_SESSION_NAME:-}" \\
|
|
138
140
|
-d '<YOUR_JSON_OUTPUT>'
|
|
139
141
|
\`\`\`
|
|
140
142
|
|
|
@@ -79,6 +79,8 @@ After measuring, submit the value:
|
|
|
79
79
|
\`\`\`bash
|
|
80
80
|
curl -s -X POST "${CREWLY_API_URL}/api/missions/${MISSION_ID}/key-results/${KR_ID}/measure" \\
|
|
81
81
|
-H "Content-Type: application/json" \\
|
|
82
|
+
-H "X-Agent-Badge: \${CREWLY_AGENT_BADGE:-}" \\
|
|
83
|
+
-H "X-Agent-Session: \${CREWLY_SESSION_NAME:-}" \\
|
|
82
84
|
-d '{"value": <MEASURED_VALUE>, "source": "measure-kr-skill", "note": "Brief description of how measured"}'
|
|
83
85
|
\`\`\`
|
|
84
86
|
|
|
@@ -119,6 +119,8 @@ After generating the decision, submit it:
|
|
|
119
119
|
\`\`\`bash
|
|
120
120
|
curl -s -X POST "${CREWLY_API_URL}/api/missions/${MISSION_ID}/review-decision" \\
|
|
121
121
|
-H "Content-Type: application/json" \\
|
|
122
|
+
-H "X-Agent-Badge: \${CREWLY_AGENT_BADGE:-}" \\
|
|
123
|
+
-H "X-Agent-Session: \${CREWLY_SESSION_NAME:-}" \\
|
|
122
124
|
-d '<YOUR_JSON_OUTPUT>'
|
|
123
125
|
\`\`\`
|
|
124
126
|
|
|
@@ -9,10 +9,18 @@ source "${SCRIPT_DIR}/../_common/lib.sh"
|
|
|
9
9
|
# safe-call guide shows the flag form.
|
|
10
10
|
if [ "${1:-}" != "" ] && [ "${1#--}" != "${1}" ]; then
|
|
11
11
|
FLAG_SESSION=""; FLAG_MESSAGE=""; FLAG_FORCE=""
|
|
12
|
+
# A value flag at the end of the line (or followed by another flag) has no
|
|
13
|
+
# value: say so instead of letting `shift 2` exit silently under set -e.
|
|
14
|
+
flag_value() {
|
|
15
|
+
case "${2-__missing__}" in
|
|
16
|
+
__missing__|--session|--sessionName|--to|--message|--force)
|
|
17
|
+
error_exit "Flag $1 needs a value, e.g. $1 <value>" ;;
|
|
18
|
+
esac
|
|
19
|
+
}
|
|
12
20
|
while [ $# -gt 0 ]; do
|
|
13
21
|
case "$1" in
|
|
14
|
-
--session|--sessionName|--to) FLAG_SESSION="$
|
|
15
|
-
--message) FLAG_MESSAGE="$
|
|
22
|
+
--session|--sessionName|--to) flag_value "$@"; FLAG_SESSION="$2"; shift 2 ;;
|
|
23
|
+
--message) flag_value "$@"; FLAG_MESSAGE="$2"; shift 2 ;;
|
|
16
24
|
--force) FLAG_FORCE="true"; shift ;;
|
|
17
25
|
*) error_exit "Unknown option: $1" ;;
|
|
18
26
|
esac
|
|
@@ -71,6 +71,15 @@ else
|
|
|
71
71
|
PASS=$((PASS + 1)); echo " ✓ missing session delivers nothing"
|
|
72
72
|
fi
|
|
73
73
|
|
|
74
|
+
run --to
|
|
75
|
+
check "--to with no value names the flag" "Flag --to needs a value" "$OUT"
|
|
76
|
+
|
|
77
|
+
run --to dev-5 --message
|
|
78
|
+
check "--message with no value names the flag" "Flag --message needs a value" "$OUT"
|
|
79
|
+
|
|
80
|
+
run --to --message hi
|
|
81
|
+
check "--to followed by another flag is refused" "Flag --to needs a value" "$OUT"
|
|
82
|
+
|
|
74
83
|
run --bogus x
|
|
75
84
|
check "unknown flag is refused" "Unknown option: --bogus" "$OUT"
|
|
76
85
|
|
|
@@ -144,6 +144,8 @@ CHECKLIST_EOF
|
|
|
144
144
|
# Submit for approval
|
|
145
145
|
curl -s -X POST "${CREWLY_API_URL}/api/task-management/${TASK_ID}/checklist" \\
|
|
146
146
|
-H "Content-Type: application/json" \\
|
|
147
|
+
-H "X-Agent-Badge: \${CREWLY_AGENT_BADGE:-}" \\
|
|
148
|
+
-H "X-Agent-Session: \${CREWLY_SESSION_NAME:-}" \\
|
|
147
149
|
-d @"${PROJECT_PATH}/.crewly/tasks/checklist-${TASK_ID}.json"
|
|
148
150
|
\`\`\`
|
|
149
151
|
|