crewly 1.20.195 → 1.20.197
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.controller.d.ts.map +1 -1
- package/dist/backend/backend/src/controllers/browser/browser.controller.js +54 -8
- package/dist/backend/backend/src/controllers/browser/browser.controller.js.map +1 -1
- 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/browser/browser-session.service.d.ts +34 -1
- package/dist/backend/backend/src/services/browser/browser-session.service.d.ts.map +1 -1
- package/dist/backend/backend/src/services/browser/browser-session.service.js +38 -1
- package/dist/backend/backend/src/services/browser/browser-session.service.js.map +1 -1
- package/dist/backend/backend/src/services/browser/owner-browser-input.d.ts +98 -10
- package/dist/backend/backend/src/services/browser/owner-browser-input.d.ts.map +1 -1
- package/dist/backend/backend/src/services/browser/owner-browser-input.js +126 -11
- package/dist/backend/backend/src/services/browser/owner-browser-input.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-5cbcf45b.css +42 -0
- package/frontend/dist/assets/{index-800118ca.js → index-63a33dbf.js} +291 -291
- 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
|
|