crewly 1.5.8 → 1.5.10
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/config/skills/_common/lib.sh +47 -0
- package/config/skills/agent/browse-stealth/execute.sh +7 -7
- package/config/skills/agent/competitor-content-tracker/execute.sh +13 -13
- package/config/skills/agent/content-calendar/execute.sh +29 -29
- package/config/skills/agent/content-repurposer/execute.sh +8 -8
- package/config/skills/agent/content-writer/execute.sh +22 -22
- package/config/skills/agent/core/accept-task/execute.sh +6 -6
- package/config/skills/agent/core/block-task/execute.sh +5 -5
- package/config/skills/agent/core/check-quality-gates/execute.sh +5 -5
- package/config/skills/agent/core/complete-task/execute.sh +13 -13
- package/config/skills/agent/core/generate-pdf/execute.sh +4 -4
- package/config/skills/agent/core/get-my-context/execute.sh +5 -5
- package/config/skills/agent/core/get-my-tasks/execute.sh +4 -4
- package/config/skills/agent/core/get-sops/execute.sh +4 -4
- package/config/skills/agent/core/get-team-norms/execute.sh +4 -4
- package/config/skills/agent/core/handoff-task/execute.sh +8 -8
- package/config/skills/agent/core/manage-knowledge/execute.sh +14 -14
- package/config/skills/agent/core/marketplace-search/execute.sh +6 -6
- package/config/skills/agent/core/query-knowledge/execute.sh +5 -5
- package/config/skills/agent/core/read-task/execute.sh +2 -2
- package/config/skills/agent/core/recall/execute.sh +5 -5
- package/config/skills/agent/core/record-learning/execute.sh +7 -7
- package/config/skills/agent/core/register-self/execute.sh +6 -6
- package/config/skills/agent/core/remember/execute.sh +9 -9
- package/config/skills/agent/core/report-progress/execute.sh +5 -5
- package/config/skills/agent/core/report-status/execute.sh +14 -14
- package/config/skills/agent/core/save-working-state/execute.sh +5 -5
- package/config/skills/agent/core/schedule-check/execute.sh +9 -9
- package/config/skills/agent/core/send-chat-response/execute.sh +5 -5
- package/config/skills/agent/core/send-message/execute.sh +6 -5
- package/config/skills/agent/core/update-team-norm/execute.sh +9 -9
- package/config/skills/agent/core/update-user-profile/execute.sh +2 -2
- package/config/skills/agent/marketing/brand-onboarding/execute.sh +8 -8
- package/config/skills/agent/marketing/submit-for-approval/execute.sh +10 -10
- package/config/skills/agent/marketing/weekly-content-planning/execute.sh +8 -8
- package/config/skills/agent/marketing/weekly-marketing-report/execute.sh +5 -5
- package/config/skills/agent/trend-monitor/execute.sh +12 -12
- package/config/skills/auditor/score-task/execute.sh +4 -4
- package/config/skills/orchestrator/assign-task/execute.sh +1 -1
- package/config/skills/orchestrator/assign-team-to-project/execute.sh +2 -2
- package/config/skills/orchestrator/broadcast/execute.sh +2 -2
- package/config/skills/orchestrator/broadcast-to-org/execute.sh +3 -3
- package/config/skills/orchestrator/cancel-all-schedules/execute.sh +3 -3
- package/config/skills/orchestrator/cancel-cron/execute.sh +2 -2
- package/config/skills/orchestrator/cancel-schedule/execute.sh +2 -2
- package/config/skills/orchestrator/complete-task/execute.sh +1 -1
- package/config/skills/orchestrator/create-cron/execute.sh +6 -6
- package/config/skills/orchestrator/create-project/execute.sh +2 -2
- package/config/skills/orchestrator/create-team/execute.sh +2 -2
- package/config/skills/orchestrator/delegate-task/execute.sh +19 -19
- package/config/skills/orchestrator/get-agent-logs/execute.sh +3 -3
- package/config/skills/orchestrator/get-agent-status/execute.sh +2 -2
- package/config/skills/orchestrator/get-tasks/execute.sh +2 -2
- package/config/skills/orchestrator/handle-agent-failure/execute.sh +7 -7
- package/config/skills/orchestrator/list-cron/execute.sh +3 -3
- package/config/skills/orchestrator/list-schedules/execute.sh +2 -2
- package/config/skills/orchestrator/query-knowledge/execute.sh +5 -5
- package/config/skills/orchestrator/read-session-logs/execute.sh +3 -3
- package/config/skills/orchestrator/read-system-logs/execute.sh +3 -3
- package/config/skills/orchestrator/recall/execute.sh +2 -2
- package/config/skills/orchestrator/record-failure/execute.sh +2 -2
- package/config/skills/orchestrator/record-learning/execute.sh +2 -2
- package/config/skills/orchestrator/record-success/execute.sh +2 -2
- package/config/skills/orchestrator/register-self/execute.sh +4 -4
- package/config/skills/orchestrator/remember/execute.sh +3 -3
- package/config/skills/orchestrator/report-bug/execute.sh +5 -5
- package/config/skills/orchestrator/resume-session/execute.sh +2 -2
- package/config/skills/orchestrator/schedule-check/execute.sh +10 -10
- package/config/skills/orchestrator/send-key/execute.sh +6 -6
- package/config/skills/orchestrator/send-message/execute.sh +7 -6
- package/config/skills/orchestrator/set-goal/execute.sh +2 -2
- package/config/skills/orchestrator/start-agent/execute.sh +3 -3
- package/config/skills/orchestrator/start-team/execute.sh +2 -2
- package/config/skills/orchestrator/stop-agent/execute.sh +3 -3
- package/config/skills/orchestrator/stop-team/execute.sh +2 -2
- package/config/skills/orchestrator/subscribe-event/execute.sh +3 -3
- package/config/skills/orchestrator/terminate-agent/execute.sh +2 -2
- package/config/skills/orchestrator/unsubscribe-event/execute.sh +2 -2
- package/config/skills/orchestrator/update-cron/execute.sh +3 -3
- package/config/skills/orchestrator/update-focus/execute.sh +2 -2
- package/config/skills/orchestrator/update-team/execute.sh +3 -3
- package/config/skills/team-leader/aggregate-results/execute.sh +7 -7
- package/config/skills/team-leader/decompose-goal/execute.sh +5 -5
- package/config/skills/team-leader/delegate-task/execute.sh +13 -13
- package/config/skills/team-leader/handle-failure/execute.sh +10 -10
- package/config/skills/team-leader/schedule-check/execute.sh +9 -9
- package/config/skills/team-leader/start-agent/execute.sh +4 -4
- package/config/skills/team-leader/stop-agent/execute.sh +4 -4
- package/config/skills/team-leader/verify-output/execute.sh +8 -8
- package/config/templates/cloud-deploy.json +119 -0
- package/config/templates/dev-fullstack/template.json +64 -17
- package/config/templates/research-analysis/template.json +44 -15
- package/config/templates/social-media-ops/template.json +43 -15
- package/dist/backend/backend/src/controllers/agent-stream/agent-stream.controller.d.ts +31 -0
- package/dist/backend/backend/src/controllers/agent-stream/agent-stream.controller.d.ts.map +1 -0
- package/dist/backend/backend/src/controllers/agent-stream/agent-stream.controller.js +94 -0
- package/dist/backend/backend/src/controllers/agent-stream/agent-stream.controller.js.map +1 -0
- package/dist/backend/backend/src/controllers/agent-stream/agent-stream.routes.d.ts +19 -0
- package/dist/backend/backend/src/controllers/agent-stream/agent-stream.routes.d.ts.map +1 -0
- package/dist/backend/backend/src/controllers/agent-stream/agent-stream.routes.js +25 -0
- package/dist/backend/backend/src/controllers/agent-stream/agent-stream.routes.js.map +1 -0
- package/dist/backend/backend/src/controllers/browser/browser.controller.d.ts +11 -3
- package/dist/backend/backend/src/controllers/browser/browser.controller.d.ts.map +1 -1
- package/dist/backend/backend/src/controllers/browser/browser.controller.js +56 -26
- 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 +3 -1
- package/dist/backend/backend/src/controllers/browser/browser.routes.js.map +1 -1
- package/dist/backend/backend/src/controllers/chat/chat.controller.d.ts +16 -0
- package/dist/backend/backend/src/controllers/chat/chat.controller.d.ts.map +1 -1
- package/dist/backend/backend/src/controllers/chat/chat.controller.js +39 -2
- package/dist/backend/backend/src/controllers/chat/chat.controller.js.map +1 -1
- package/dist/backend/backend/src/controllers/chat/chat.routes.d.ts.map +1 -1
- package/dist/backend/backend/src/controllers/chat/chat.routes.js +3 -1
- package/dist/backend/backend/src/controllers/chat/chat.routes.js.map +1 -1
- package/dist/backend/backend/src/controllers/cloud/cloud.controller.d.ts +15 -0
- package/dist/backend/backend/src/controllers/cloud/cloud.controller.d.ts.map +1 -1
- package/dist/backend/backend/src/controllers/cloud/cloud.controller.js +45 -0
- package/dist/backend/backend/src/controllers/cloud/cloud.controller.js.map +1 -1
- package/dist/backend/backend/src/controllers/cloud/cloud.routes.d.ts +1 -0
- package/dist/backend/backend/src/controllers/cloud/cloud.routes.d.ts.map +1 -1
- package/dist/backend/backend/src/controllers/cloud/cloud.routes.js +3 -1
- package/dist/backend/backend/src/controllers/cloud/cloud.routes.js.map +1 -1
- package/dist/backend/backend/src/controllers/index.d.ts.map +1 -1
- package/dist/backend/backend/src/controllers/index.js +2 -0
- package/dist/backend/backend/src/controllers/index.js.map +1 -1
- package/dist/backend/backend/src/controllers/marketplace/marketplace.controller.d.ts +15 -0
- package/dist/backend/backend/src/controllers/marketplace/marketplace.controller.d.ts.map +1 -1
- package/dist/backend/backend/src/controllers/marketplace/marketplace.controller.js +35 -1
- package/dist/backend/backend/src/controllers/marketplace/marketplace.controller.js.map +1 -1
- package/dist/backend/backend/src/controllers/marketplace/marketplace.routes.d.ts.map +1 -1
- package/dist/backend/backend/src/controllers/marketplace/marketplace.routes.js +2 -1
- package/dist/backend/backend/src/controllers/marketplace/marketplace.routes.js.map +1 -1
- package/dist/backend/backend/src/controllers/monitoring/monitoring.routes.d.ts.map +1 -1
- package/dist/backend/backend/src/controllers/monitoring/monitoring.routes.js +7 -1
- package/dist/backend/backend/src/controllers/monitoring/monitoring.routes.js.map +1 -1
- package/dist/backend/backend/src/controllers/monitoring/terminal.controller.d.ts.map +1 -1
- package/dist/backend/backend/src/controllers/monitoring/terminal.controller.js +29 -6
- package/dist/backend/backend/src/controllers/monitoring/terminal.controller.js.map +1 -1
- package/dist/backend/backend/src/controllers/monitoring/token-usage.controller.d.ts +29 -0
- package/dist/backend/backend/src/controllers/monitoring/token-usage.controller.d.ts.map +1 -1
- package/dist/backend/backend/src/controllers/monitoring/token-usage.controller.js +76 -0
- package/dist/backend/backend/src/controllers/monitoring/token-usage.controller.js.map +1 -1
- package/dist/backend/backend/src/controllers/project/project.controller.d.ts +16 -0
- package/dist/backend/backend/src/controllers/project/project.controller.d.ts.map +1 -1
- package/dist/backend/backend/src/controllers/project/project.controller.js +47 -0
- package/dist/backend/backend/src/controllers/project/project.controller.js.map +1 -1
- package/dist/backend/backend/src/controllers/project/project.routes.d.ts.map +1 -1
- package/dist/backend/backend/src/controllers/project/project.routes.js +3 -1
- package/dist/backend/backend/src/controllers/project/project.routes.js.map +1 -1
- package/dist/backend/backend/src/controllers/system/scheduler.controller.d.ts.map +1 -1
- package/dist/backend/backend/src/controllers/system/scheduler.controller.js +10 -2
- package/dist/backend/backend/src/controllers/system/scheduler.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 +34 -3
- package/dist/backend/backend/src/controllers/team/team.controller.js.map +1 -1
- package/dist/backend/backend/src/index.d.ts.map +1 -1
- package/dist/backend/backend/src/index.js +18 -4
- package/dist/backend/backend/src/index.js.map +1 -1
- package/dist/backend/backend/src/services/agent/agent-registration.service.d.ts.map +1 -1
- package/dist/backend/backend/src/services/agent/agent-registration.service.js +25 -0
- package/dist/backend/backend/src/services/agent/agent-registration.service.js.map +1 -1
- package/dist/backend/backend/src/services/agent/crewly-agent/agent-runner.service.d.ts +2 -0
- package/dist/backend/backend/src/services/agent/crewly-agent/agent-runner.service.d.ts.map +1 -1
- package/dist/backend/backend/src/services/agent/crewly-agent/agent-runner.service.js +19 -0
- package/dist/backend/backend/src/services/agent/crewly-agent/agent-runner.service.js.map +1 -1
- package/dist/backend/backend/src/services/agent/crewly-agent/agent-stream.service.d.ts +145 -0
- package/dist/backend/backend/src/services/agent/crewly-agent/agent-stream.service.d.ts.map +1 -0
- package/dist/backend/backend/src/services/agent/crewly-agent/agent-stream.service.js +133 -0
- package/dist/backend/backend/src/services/agent/crewly-agent/agent-stream.service.js.map +1 -0
- package/dist/backend/backend/src/services/agent/crewly-agent/audit-log.service.d.ts +130 -0
- package/dist/backend/backend/src/services/agent/crewly-agent/audit-log.service.d.ts.map +1 -0
- package/dist/backend/backend/src/services/agent/crewly-agent/audit-log.service.js +263 -0
- package/dist/backend/backend/src/services/agent/crewly-agent/audit-log.service.js.map +1 -0
- package/dist/backend/backend/src/services/agent/crewly-agent/crewly-agent-runtime.service.d.ts.map +1 -1
- package/dist/backend/backend/src/services/agent/crewly-agent/crewly-agent-runtime.service.js +8 -0
- package/dist/backend/backend/src/services/agent/crewly-agent/crewly-agent-runtime.service.js.map +1 -1
- package/dist/backend/backend/src/services/agent/crewly-agent/env-isolation.service.d.ts +79 -0
- package/dist/backend/backend/src/services/agent/crewly-agent/env-isolation.service.d.ts.map +1 -0
- package/dist/backend/backend/src/services/agent/crewly-agent/env-isolation.service.js +218 -0
- package/dist/backend/backend/src/services/agent/crewly-agent/env-isolation.service.js.map +1 -0
- package/dist/backend/backend/src/services/agent/crewly-agent/output-filter.service.d.ts +91 -0
- package/dist/backend/backend/src/services/agent/crewly-agent/output-filter.service.d.ts.map +1 -0
- package/dist/backend/backend/src/services/agent/crewly-agent/output-filter.service.js +143 -0
- package/dist/backend/backend/src/services/agent/crewly-agent/output-filter.service.js.map +1 -0
- package/dist/backend/backend/src/services/agent/crewly-agent/prompt-guard.service.d.ts +103 -0
- package/dist/backend/backend/src/services/agent/crewly-agent/prompt-guard.service.d.ts.map +1 -0
- package/dist/backend/backend/src/services/agent/crewly-agent/prompt-guard.service.js +256 -0
- package/dist/backend/backend/src/services/agent/crewly-agent/prompt-guard.service.js.map +1 -0
- package/dist/backend/backend/src/services/agent/crewly-agent/tool-registry.d.ts +44 -0
- package/dist/backend/backend/src/services/agent/crewly-agent/tool-registry.d.ts.map +1 -1
- package/dist/backend/backend/src/services/agent/crewly-agent/tool-registry.js +323 -1
- package/dist/backend/backend/src/services/agent/crewly-agent/tool-registry.js.map +1 -1
- package/dist/backend/backend/src/services/agent/crewly-agent/types.d.ts +21 -0
- package/dist/backend/backend/src/services/agent/crewly-agent/types.d.ts.map +1 -1
- package/dist/backend/backend/src/services/agent/crewly-agent/types.js +7 -0
- package/dist/backend/backend/src/services/agent/crewly-agent/types.js.map +1 -1
- package/dist/backend/backend/src/services/browser/browser-bridge.service.d.ts +4 -1
- package/dist/backend/backend/src/services/browser/browser-bridge.service.d.ts.map +1 -1
- package/dist/backend/backend/src/services/browser/browser-bridge.service.js +26 -11
- package/dist/backend/backend/src/services/browser/browser-bridge.service.js.map +1 -1
- package/dist/backend/backend/src/services/chat/chat-highlights.service.d.ts +100 -0
- package/dist/backend/backend/src/services/chat/chat-highlights.service.d.ts.map +1 -0
- package/dist/backend/backend/src/services/chat/chat-highlights.service.js +145 -0
- package/dist/backend/backend/src/services/chat/chat-highlights.service.js.map +1 -0
- package/dist/backend/backend/src/services/chat/chat-sanitizer.service.d.ts +76 -0
- package/dist/backend/backend/src/services/chat/chat-sanitizer.service.d.ts.map +1 -0
- package/dist/backend/backend/src/services/chat/chat-sanitizer.service.js +127 -0
- package/dist/backend/backend/src/services/chat/chat-sanitizer.service.js.map +1 -0
- package/dist/backend/backend/src/services/chat/chat.service.d.ts +8 -0
- package/dist/backend/backend/src/services/chat/chat.service.d.ts.map +1 -1
- package/dist/backend/backend/src/services/chat/chat.service.js +27 -1
- package/dist/backend/backend/src/services/chat/chat.service.js.map +1 -1
- package/dist/backend/backend/src/services/marketplace/index.d.ts +1 -1
- package/dist/backend/backend/src/services/marketplace/index.d.ts.map +1 -1
- package/dist/backend/backend/src/services/marketplace/index.js +1 -1
- package/dist/backend/backend/src/services/marketplace/index.js.map +1 -1
- package/dist/backend/backend/src/services/marketplace/marketplace.service.d.ts +11 -0
- package/dist/backend/backend/src/services/marketplace/marketplace.service.d.ts.map +1 -1
- package/dist/backend/backend/src/services/marketplace/marketplace.service.js +31 -0
- package/dist/backend/backend/src/services/marketplace/marketplace.service.js.map +1 -1
- package/dist/backend/backend/src/services/monitoring/token-estimator.service.d.ts +197 -0
- package/dist/backend/backend/src/services/monitoring/token-estimator.service.d.ts.map +1 -0
- package/dist/backend/backend/src/services/monitoring/token-estimator.service.js +408 -0
- package/dist/backend/backend/src/services/monitoring/token-estimator.service.js.map +1 -0
- package/dist/backend/backend/src/services/project/project-search.service.d.ts +62 -0
- package/dist/backend/backend/src/services/project/project-search.service.d.ts.map +1 -0
- package/dist/backend/backend/src/services/project/project-search.service.js +107 -0
- package/dist/backend/backend/src/services/project/project-search.service.js.map +1 -0
- package/dist/backend/backend/src/services/quality/quality-gate.service.d.ts +11 -0
- package/dist/backend/backend/src/services/quality/quality-gate.service.d.ts.map +1 -1
- package/dist/backend/backend/src/services/quality/quality-gate.service.js +93 -19
- package/dist/backend/backend/src/services/quality/quality-gate.service.js.map +1 -1
- package/dist/backend/backend/src/services/session/session-command-helper.d.ts.map +1 -1
- package/dist/backend/backend/src/services/session/session-command-helper.js +11 -5
- package/dist/backend/backend/src/services/session/session-command-helper.js.map +1 -1
- package/dist/backend/backend/src/services/workflow/scheduler.service.d.ts +8 -2
- package/dist/backend/backend/src/services/workflow/scheduler.service.d.ts.map +1 -1
- package/dist/backend/backend/src/services/workflow/scheduler.service.js +30 -6
- package/dist/backend/backend/src/services/workflow/scheduler.service.js.map +1 -1
- package/dist/backend/backend/src/types/settings.types.d.ts +3 -0
- package/dist/backend/backend/src/types/settings.types.d.ts.map +1 -1
- package/dist/backend/backend/src/types/settings.types.js +1 -0
- package/dist/backend/backend/src/types/settings.types.js.map +1 -1
- package/dist/cli/backend/src/types/settings.types.d.ts +3 -0
- package/dist/cli/backend/src/types/settings.types.d.ts.map +1 -1
- package/dist/cli/backend/src/types/settings.types.js +1 -0
- package/dist/cli/backend/src/types/settings.types.js.map +1 -1
- package/dist/cli/cli/src/commands/stop.d.ts.map +1 -1
- package/dist/cli/cli/src/commands/stop.js +3 -0
- package/dist/cli/cli/src/commands/stop.js.map +1 -1
- package/dist/cli/cli/src/utils/license-check.d.ts +70 -0
- package/dist/cli/cli/src/utils/license-check.d.ts.map +1 -0
- package/dist/cli/cli/src/utils/license-check.js +124 -0
- package/dist/cli/cli/src/utils/license-check.js.map +1 -0
- package/dist/cli/cli/src/utils/process-cleanup.d.ts +9 -0
- package/dist/cli/cli/src/utils/process-cleanup.d.ts.map +1 -1
- package/dist/cli/cli/src/utils/process-cleanup.js +48 -0
- package/dist/cli/cli/src/utils/process-cleanup.js.map +1 -1
- package/frontend/dist/assets/index-76782e9e.js +5215 -0
- package/frontend/dist/assets/index-b19b2478.css +33 -0
- package/frontend/dist/index.html +2 -2
- package/package.json +1 -1
- package/frontend/dist/assets/index-512efc8e.js +0 -4921
- package/frontend/dist/assets/index-dc6ac165.css +0 -33
|
@@ -4,21 +4,21 @@ set -euo pipefail
|
|
|
4
4
|
SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)"
|
|
5
5
|
source "${SCRIPT_DIR}/../_common/lib.sh"
|
|
6
6
|
|
|
7
|
-
INPUT
|
|
7
|
+
INPUT=$(read_json_input "${1:-}")
|
|
8
8
|
[ -z "$INPUT" ] && error_exit "Usage: execute.sh '{\"minutes\":5,\"message\":\"Check on agent\",\"recurring\":true}'
|
|
9
9
|
Time-based: '{\"message\":\"Supervise\",\"recurring\":true,\"marketHoursMinutes\":5,\"offHoursMinutes\":20,\"marketHours\":\"09:30-11:30,13:00-15:00\",\"timezone\":\"Asia/Shanghai\"}'"
|
|
10
10
|
|
|
11
|
-
MINUTES=$(
|
|
12
|
-
MESSAGE=$(
|
|
13
|
-
TARGET=$(
|
|
14
|
-
RECURRING=$(
|
|
15
|
-
MAX_OCCURRENCES=$(
|
|
11
|
+
MINUTES=$(printf '%s' "$INPUT" | jq -r '.minutes // empty')
|
|
12
|
+
MESSAGE=$(printf '%s' "$INPUT" | jq -r '.message // empty')
|
|
13
|
+
TARGET=$(printf '%s' "$INPUT" | jq -r '.target // empty')
|
|
14
|
+
RECURRING=$(printf '%s' "$INPUT" | jq -r '.recurring // false')
|
|
15
|
+
MAX_OCCURRENCES=$(printf '%s' "$INPUT" | jq -r '.maxOccurrences // empty')
|
|
16
16
|
|
|
17
17
|
# #237: Time-based frequency parameters
|
|
18
|
-
MARKET_HOURS_MIN=$(
|
|
19
|
-
OFF_HOURS_MIN=$(
|
|
20
|
-
MARKET_HOURS=$(
|
|
21
|
-
TIMEZONE=$(
|
|
18
|
+
MARKET_HOURS_MIN=$(printf '%s' "$INPUT" | jq -r '.marketHoursMinutes // empty')
|
|
19
|
+
OFF_HOURS_MIN=$(printf '%s' "$INPUT" | jq -r '.offHoursMinutes // empty')
|
|
20
|
+
MARKET_HOURS=$(printf '%s' "$INPUT" | jq -r '.marketHours // empty')
|
|
21
|
+
TIMEZONE=$(printf '%s' "$INPUT" | jq -r '.timezone // empty')
|
|
22
22
|
|
|
23
23
|
require_param "message" "$MESSAGE"
|
|
24
24
|
|
|
@@ -4,12 +4,12 @@ set -euo pipefail
|
|
|
4
4
|
SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)"
|
|
5
5
|
source "${SCRIPT_DIR}/../_common/lib.sh"
|
|
6
6
|
|
|
7
|
-
INPUT
|
|
7
|
+
INPUT=$(read_json_input "${1:-}")
|
|
8
8
|
[ -z "$INPUT" ] && error_exit "Usage: execute.sh '{\"sessionName\":\"agent-session\",\"key\":\"Enter\"}' or '{\"sessionName\":\"...\",\"keys\":[\"Down\",\"Down\",\"Enter\"]}'"
|
|
9
9
|
|
|
10
|
-
SESSION_NAME=$(
|
|
11
|
-
KEY=$(
|
|
12
|
-
KEYS=$(
|
|
10
|
+
SESSION_NAME=$(printf '%s' "$INPUT" | jq -r '.sessionName // empty')
|
|
11
|
+
KEY=$(printf '%s' "$INPUT" | jq -r '.key // empty')
|
|
12
|
+
KEYS=$(printf '%s' "$INPUT" | jq -r '.keys // empty')
|
|
13
13
|
require_param "sessionName" "$SESSION_NAME"
|
|
14
14
|
|
|
15
15
|
# Support both single key and key sequence
|
|
@@ -17,9 +17,9 @@ if [ -n "$KEY" ]; then
|
|
|
17
17
|
BODY=$(jq -n --arg key "$KEY" '{key: $key}')
|
|
18
18
|
api_call POST "/terminal/${SESSION_NAME}/key" "$BODY"
|
|
19
19
|
elif [ "$KEYS" != "" ] && [ "$KEYS" != "null" ]; then
|
|
20
|
-
KEY_COUNT=$(
|
|
20
|
+
KEY_COUNT=$(printf '%s' "$INPUT" | jq '.keys | length')
|
|
21
21
|
for (( i=0; i<KEY_COUNT; i++ )); do
|
|
22
|
-
CURRENT_KEY=$(
|
|
22
|
+
CURRENT_KEY=$(printf '%s' "$INPUT" | jq -r ".keys[$i]")
|
|
23
23
|
BODY=$(jq -n --arg key "$CURRENT_KEY" '{key: $key}')
|
|
24
24
|
api_call POST "/terminal/${SESSION_NAME}/key" "$BODY"
|
|
25
25
|
# Small delay between keys to allow processing
|
|
@@ -1,15 +1,16 @@
|
|
|
1
1
|
#!/bin/bash
|
|
2
|
-
# Send a message to an agent's terminal session
|
|
2
|
+
# Send a message to an agent's terminal session.
|
|
3
|
+
# Supports: argument, stdin pipe, or @filepath for JSON input (#292, #293).
|
|
3
4
|
set -euo pipefail
|
|
4
5
|
SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)"
|
|
5
6
|
source "${SCRIPT_DIR}/../_common/lib.sh"
|
|
6
7
|
|
|
7
|
-
INPUT
|
|
8
|
-
[ -z "$INPUT" ] && error_exit "Usage: execute.sh '{\"sessionName\":\"agent-session\",\"message\":\"hello\"}'"
|
|
8
|
+
INPUT=$(read_json_input "${1:-}")
|
|
9
|
+
[ -z "$INPUT" ] && error_exit "Usage: execute.sh '{\"sessionName\":\"agent-session\",\"message\":\"hello\"}' or echo '{...}' | execute.sh"
|
|
9
10
|
|
|
10
|
-
SESSION_NAME=$(
|
|
11
|
-
MESSAGE=$(
|
|
12
|
-
FORCE=$(
|
|
11
|
+
SESSION_NAME=$(printf '%s' "$INPUT" | jq -r '.sessionName // empty')
|
|
12
|
+
MESSAGE=$(printf '%s' "$INPUT" | jq -r '.message // empty')
|
|
13
|
+
FORCE=$(printf '%s' "$INPUT" | jq -r '.force // empty')
|
|
13
14
|
require_param "sessionName" "$SESSION_NAME"
|
|
14
15
|
require_param "message" "$MESSAGE"
|
|
15
16
|
|
|
@@ -4,10 +4,10 @@ set -euo pipefail
|
|
|
4
4
|
SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)"
|
|
5
5
|
source "${SCRIPT_DIR}/../_common/lib.sh"
|
|
6
6
|
|
|
7
|
-
INPUT
|
|
7
|
+
INPUT=$(read_json_input "${1:-}")
|
|
8
8
|
[ -z "$INPUT" ] && error_exit "Usage: execute.sh '{\"goal\":\"...\",\"projectPath\":\"...\",\"setBy\":\"orchestrator\"}'"
|
|
9
9
|
|
|
10
|
-
GOAL=$(
|
|
10
|
+
GOAL=$(printf '%s' "$INPUT" | jq -r '.goal // empty')
|
|
11
11
|
require_param "goal" "$GOAL"
|
|
12
12
|
|
|
13
13
|
api_call POST "/memory/goals" "$INPUT"
|
|
@@ -4,11 +4,11 @@ set -euo pipefail
|
|
|
4
4
|
SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)"
|
|
5
5
|
source "${SCRIPT_DIR}/../_common/lib.sh"
|
|
6
6
|
|
|
7
|
-
INPUT
|
|
7
|
+
INPUT=$(read_json_input "${1:-}")
|
|
8
8
|
[ -z "$INPUT" ] && error_exit "Usage: execute.sh '{\"teamId\":\"team-uuid\",\"memberId\":\"member-uuid\"}'"
|
|
9
9
|
|
|
10
|
-
TEAM_ID=$(
|
|
11
|
-
MEMBER_ID=$(
|
|
10
|
+
TEAM_ID=$(printf '%s' "$INPUT" | jq -r '.teamId // empty')
|
|
11
|
+
MEMBER_ID=$(printf '%s' "$INPUT" | jq -r '.memberId // empty')
|
|
12
12
|
require_param "teamId" "$TEAM_ID"
|
|
13
13
|
require_param "memberId" "$MEMBER_ID"
|
|
14
14
|
|
|
@@ -4,10 +4,10 @@ set -euo pipefail
|
|
|
4
4
|
SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)"
|
|
5
5
|
source "${SCRIPT_DIR}/../_common/lib.sh"
|
|
6
6
|
|
|
7
|
-
INPUT
|
|
7
|
+
INPUT=$(read_json_input "${1:-}")
|
|
8
8
|
[ -z "$INPUT" ] && error_exit "Usage: execute.sh '{\"teamId\":\"team-uuid\",\"projectId\":\"project-uuid\"}'"
|
|
9
9
|
|
|
10
|
-
TEAM_ID=$(
|
|
10
|
+
TEAM_ID=$(printf '%s' "$INPUT" | jq -r '.teamId // empty')
|
|
11
11
|
require_param "teamId" "$TEAM_ID"
|
|
12
12
|
|
|
13
13
|
# Pass the full input as the request body (backend accepts optional projectId)
|
|
@@ -4,11 +4,11 @@ set -euo pipefail
|
|
|
4
4
|
SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)"
|
|
5
5
|
source "${SCRIPT_DIR}/../_common/lib.sh"
|
|
6
6
|
|
|
7
|
-
INPUT
|
|
7
|
+
INPUT=$(read_json_input "${1:-}")
|
|
8
8
|
[ -z "$INPUT" ] && error_exit "Usage: execute.sh '{\"teamId\":\"team-uuid\",\"memberId\":\"member-uuid\"}'"
|
|
9
9
|
|
|
10
|
-
TEAM_ID=$(
|
|
11
|
-
MEMBER_ID=$(
|
|
10
|
+
TEAM_ID=$(printf '%s' "$INPUT" | jq -r '.teamId // empty')
|
|
11
|
+
MEMBER_ID=$(printf '%s' "$INPUT" | jq -r '.memberId // empty')
|
|
12
12
|
require_param "teamId" "$TEAM_ID"
|
|
13
13
|
require_param "memberId" "$MEMBER_ID"
|
|
14
14
|
|
|
@@ -4,10 +4,10 @@ set -euo pipefail
|
|
|
4
4
|
SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)"
|
|
5
5
|
source "${SCRIPT_DIR}/../_common/lib.sh"
|
|
6
6
|
|
|
7
|
-
INPUT
|
|
7
|
+
INPUT=$(read_json_input "${1:-}")
|
|
8
8
|
[ -z "$INPUT" ] && error_exit "Usage: execute.sh '{\"teamId\":\"team-uuid\"}'"
|
|
9
9
|
|
|
10
|
-
TEAM_ID=$(
|
|
10
|
+
TEAM_ID=$(printf '%s' "$INPUT" | jq -r '.teamId // empty')
|
|
11
11
|
require_param "teamId" "$TEAM_ID"
|
|
12
12
|
|
|
13
13
|
api_call POST "/teams/${TEAM_ID}/stop"
|
|
@@ -4,16 +4,16 @@ set -euo pipefail
|
|
|
4
4
|
SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)"
|
|
5
5
|
source "${SCRIPT_DIR}/../_common/lib.sh"
|
|
6
6
|
|
|
7
|
-
INPUT
|
|
7
|
+
INPUT=$(read_json_input "${1:-}")
|
|
8
8
|
[ -z "$INPUT" ] && error_exit "Usage: execute.sh '{\"eventType\":\"agent:idle\",\"filter\":{\"sessionName\":\"agent-joe\"},\"oneShot\":true}'"
|
|
9
9
|
|
|
10
|
-
EVENT_TYPE=$(
|
|
10
|
+
EVENT_TYPE=$(printf '%s' "$INPUT" | jq -r '.eventType // empty')
|
|
11
11
|
require_param "eventType" "$EVENT_TYPE"
|
|
12
12
|
|
|
13
13
|
# Inject subscriberSession from env (set by Crewly on each PTY session)
|
|
14
14
|
# The API requires subscriberSession and filter but the agent doesn't need to provide them
|
|
15
15
|
SUBSCRIBER_SESSION="${CREWLY_SESSION_NAME:-crewly-orc}"
|
|
16
|
-
BODY=$(
|
|
16
|
+
BODY=$(printf '%s' "$INPUT" | jq --arg ss "$SUBSCRIBER_SESSION" \
|
|
17
17
|
'. + {subscriberSession: $ss} | if .filter == null then .filter = {} else . end')
|
|
18
18
|
|
|
19
19
|
api_call POST "/events/subscribe" "$BODY"
|
|
@@ -4,10 +4,10 @@ set -euo pipefail
|
|
|
4
4
|
SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)"
|
|
5
5
|
source "${SCRIPT_DIR}/../_common/lib.sh"
|
|
6
6
|
|
|
7
|
-
INPUT
|
|
7
|
+
INPUT=$(read_json_input "${1:-}")
|
|
8
8
|
[ -z "$INPUT" ] && error_exit "Usage: execute.sh '{\"sessionName\":\"agent-session\"}'"
|
|
9
9
|
|
|
10
|
-
SESSION_NAME=$(
|
|
10
|
+
SESSION_NAME=$(printf '%s' "$INPUT" | jq -r '.sessionName // empty')
|
|
11
11
|
require_param "sessionName" "$SESSION_NAME"
|
|
12
12
|
|
|
13
13
|
api_call DELETE "/terminal/${SESSION_NAME}"
|
|
@@ -4,10 +4,10 @@ set -euo pipefail
|
|
|
4
4
|
SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)"
|
|
5
5
|
source "${SCRIPT_DIR}/../_common/lib.sh"
|
|
6
6
|
|
|
7
|
-
INPUT
|
|
7
|
+
INPUT=$(read_json_input "${1:-}")
|
|
8
8
|
[ -z "$INPUT" ] && error_exit "Usage: execute.sh '{\"subscriptionId\":\"sub-123\"}'"
|
|
9
9
|
|
|
10
|
-
SUB_ID=$(
|
|
10
|
+
SUB_ID=$(printf '%s' "$INPUT" | jq -r '.subscriptionId // empty')
|
|
11
11
|
require_param "subscriptionId" "$SUB_ID"
|
|
12
12
|
|
|
13
13
|
api_call DELETE "/events/subscribe/${SUB_ID}"
|
|
@@ -4,13 +4,13 @@ set -euo pipefail
|
|
|
4
4
|
SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)"
|
|
5
5
|
source "${SCRIPT_DIR}/../_common/lib.sh"
|
|
6
6
|
|
|
7
|
-
INPUT
|
|
7
|
+
INPUT=$(read_json_input "${1:-}")
|
|
8
8
|
[ -z "$INPUT" ] && error_exit "Usage: execute.sh '{\"id\":\"cron-xxx\",\"taskDescription\":\"Updated task\"}'"
|
|
9
9
|
|
|
10
|
-
ID=$(
|
|
10
|
+
ID=$(printf '%s' "$INPUT" | jq -r '.id // empty')
|
|
11
11
|
require_param "id" "$ID"
|
|
12
12
|
|
|
13
13
|
# Build body with only provided fields
|
|
14
|
-
BODY=$(
|
|
14
|
+
BODY=$(printf '%s' "$INPUT" | jq 'del(.id)')
|
|
15
15
|
|
|
16
16
|
api_call PATCH "/cron-tasks/${ID}" "$BODY"
|
|
@@ -4,10 +4,10 @@ set -euo pipefail
|
|
|
4
4
|
SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)"
|
|
5
5
|
source "${SCRIPT_DIR}/../_common/lib.sh"
|
|
6
6
|
|
|
7
|
-
INPUT
|
|
7
|
+
INPUT=$(read_json_input "${1:-}")
|
|
8
8
|
[ -z "$INPUT" ] && error_exit "Usage: execute.sh '{\"focus\":\"...\",\"projectPath\":\"...\",\"updatedBy\":\"orchestrator\"}'"
|
|
9
9
|
|
|
10
|
-
FOCUS=$(
|
|
10
|
+
FOCUS=$(printf '%s' "$INPUT" | jq -r '.focus // empty')
|
|
11
11
|
require_param "focus" "$FOCUS"
|
|
12
12
|
|
|
13
13
|
api_call POST "/memory/focus" "$INPUT"
|
|
@@ -4,13 +4,13 @@ set -euo pipefail
|
|
|
4
4
|
SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)"
|
|
5
5
|
source "${SCRIPT_DIR}/../_common/lib.sh"
|
|
6
6
|
|
|
7
|
-
INPUT
|
|
7
|
+
INPUT=$(read_json_input "${1:-}")
|
|
8
8
|
[ -z "$INPUT" ] && error_exit "Usage: execute.sh '{\"teamId\":\"uuid\",\"name\":\"New Name\",\"description\":\"...\"}'"
|
|
9
9
|
|
|
10
|
-
TEAM_ID=$(
|
|
10
|
+
TEAM_ID=$(printf '%s' "$INPUT" | jq -r '.teamId // empty')
|
|
11
11
|
require_param "teamId" "$TEAM_ID"
|
|
12
12
|
|
|
13
13
|
# Remove teamId from the body before sending (it's in the URL)
|
|
14
|
-
BODY=$(
|
|
14
|
+
BODY=$(printf '%s' "$INPUT" | jq 'del(.teamId)')
|
|
15
15
|
|
|
16
16
|
api_call PUT "/teams/$TEAM_ID" "$BODY"
|
|
@@ -5,15 +5,15 @@ set -euo pipefail
|
|
|
5
5
|
SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)"
|
|
6
6
|
source "${SCRIPT_DIR}/../_common/lib.sh"
|
|
7
7
|
|
|
8
|
-
INPUT
|
|
8
|
+
INPUT=$(read_json_input "${1:-}")
|
|
9
9
|
[ -z "$INPUT" ] && error_exit "Usage: execute.sh '{\"teamId\":\"team-123\",\"objective\":\"Build auth module\",\"reportType\":\"final\",\"taskPaths\":[\"/path/to/task1.md\",\"/path/to/task2.md\"],\"projectPath\":\"/path/to/project\"}'"
|
|
10
10
|
|
|
11
|
-
TEAM_ID=$(
|
|
12
|
-
OBJECTIVE=$(
|
|
13
|
-
REPORT_TYPE=$(
|
|
14
|
-
TASK_PATHS=$(
|
|
15
|
-
PROJECT_PATH=$(
|
|
16
|
-
INCLUDE_VERIFICATION=$(
|
|
11
|
+
TEAM_ID=$(printf '%s' "$INPUT" | jq -r '.teamId // empty')
|
|
12
|
+
OBJECTIVE=$(printf '%s' "$INPUT" | jq -r '.objective // "Objective not specified"')
|
|
13
|
+
REPORT_TYPE=$(printf '%s' "$INPUT" | jq -r '.reportType // "final"')
|
|
14
|
+
TASK_PATHS=$(printf '%s' "$INPUT" | jq -c '.taskPaths // []')
|
|
15
|
+
PROJECT_PATH=$(printf '%s' "$INPUT" | jq -r '.projectPath // empty')
|
|
16
|
+
INCLUDE_VERIFICATION=$(printf '%s' "$INPUT" | jq -r '.includeVerification // "true"')
|
|
17
17
|
|
|
18
18
|
# Collect task data
|
|
19
19
|
TASK_RESULTS="[]"
|
|
@@ -5,13 +5,13 @@ set -euo pipefail
|
|
|
5
5
|
SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)"
|
|
6
6
|
source "${SCRIPT_DIR}/../_common/lib.sh"
|
|
7
7
|
|
|
8
|
-
INPUT
|
|
8
|
+
INPUT=$(read_json_input "${1:-}")
|
|
9
9
|
[ -z "$INPUT" ] && error_exit "Usage: execute.sh '{\"objective\":\"Build auth module\",\"projectPath\":\"/path/to/project\",\"tasks\":[{\"title\":\"...\",\"description\":\"...\",\"requiredRole\":\"developer\",\"acceptanceCriteria\":\"...\",\"priority\":\"high\"}]}'"
|
|
10
10
|
|
|
11
|
-
OBJECTIVE=$(
|
|
12
|
-
PROJECT_PATH=$(
|
|
13
|
-
TASKS=$(
|
|
14
|
-
MILESTONE=$(
|
|
11
|
+
OBJECTIVE=$(printf '%s' "$INPUT" | jq -r '.objective // empty')
|
|
12
|
+
PROJECT_PATH=$(printf '%s' "$INPUT" | jq -r '.projectPath // empty')
|
|
13
|
+
TASKS=$(printf '%s' "$INPUT" | jq -c '.tasks // empty')
|
|
14
|
+
MILESTONE=$(printf '%s' "$INPUT" | jq -r '.milestone // "delegated"')
|
|
15
15
|
require_param "objective" "$OBJECTIVE"
|
|
16
16
|
require_param "tasks" "$TASKS"
|
|
17
17
|
|
|
@@ -6,17 +6,17 @@ set -euo pipefail
|
|
|
6
6
|
SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)"
|
|
7
7
|
source "${SCRIPT_DIR}/../_common/lib.sh"
|
|
8
8
|
|
|
9
|
-
INPUT
|
|
10
|
-
[ -z "$INPUT" ] && error_exit "Usage: execute.sh '{\"to\":\"worker-session\",\"task\":\"
|
|
11
|
-
|
|
12
|
-
TO=$(
|
|
13
|
-
TASK=$(
|
|
14
|
-
PRIORITY=$(
|
|
15
|
-
CONTEXT=$(
|
|
16
|
-
PROJECT_PATH=$(
|
|
17
|
-
TEAM_ID=$(
|
|
18
|
-
TL_MEMBER_ID=$(
|
|
19
|
-
FROM_SESSION=$(
|
|
9
|
+
INPUT=$(read_json_input "${1:-}")
|
|
10
|
+
[ -z "$INPUT" ] && error_exit "Usage: execute.sh '{\"to\":\"worker-session\",\"task\":\"...\"}' or echo '{...}' | execute.sh"
|
|
11
|
+
|
|
12
|
+
TO=$(printf '%s' "$INPUT" | jq -r '.to // empty')
|
|
13
|
+
TASK=$(printf '%s' "$INPUT" | jq -r '.task // empty')
|
|
14
|
+
PRIORITY=$(printf '%s' "$INPUT" | jq -r '.priority // "normal"')
|
|
15
|
+
CONTEXT=$(printf '%s' "$INPUT" | jq -r '.context // empty')
|
|
16
|
+
PROJECT_PATH=$(printf '%s' "$INPUT" | jq -r '.projectPath // empty')
|
|
17
|
+
TEAM_ID=$(printf '%s' "$INPUT" | jq -r '.teamId // empty')
|
|
18
|
+
TL_MEMBER_ID=$(printf '%s' "$INPUT" | jq -r '.tlMemberId // empty')
|
|
19
|
+
FROM_SESSION=$(printf '%s' "$INPUT" | jq -r '.fromSession // empty')
|
|
20
20
|
require_param "to" "$TO"
|
|
21
21
|
require_param "task" "$TASK"
|
|
22
22
|
|
|
@@ -93,8 +93,8 @@ if [ -n "$PROJECT_PATH" ]; then
|
|
|
93
93
|
fi
|
|
94
94
|
|
|
95
95
|
# Set up idle event subscription for TL monitoring
|
|
96
|
-
MONITOR_IDLE=$(
|
|
97
|
-
MONITOR_FALLBACK_MINUTES=$(
|
|
96
|
+
MONITOR_IDLE=$(printf '%s' "$INPUT" | jq -r 'if .monitor.idleEvent == null then true else .monitor.idleEvent end')
|
|
97
|
+
MONITOR_FALLBACK_MINUTES=$(printf '%s' "$INPUT" | jq -r 'if .monitor.fallbackCheckMinutes == null then 5 else .monitor.fallbackCheckMinutes end')
|
|
98
98
|
|
|
99
99
|
COLLECTED_SCHEDULE_IDS="[]"
|
|
100
100
|
COLLECTED_SUBSCRIPTION_IDS="[]"
|
|
@@ -5,20 +5,20 @@ set -euo pipefail
|
|
|
5
5
|
SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)"
|
|
6
6
|
source "${SCRIPT_DIR}/../_common/lib.sh"
|
|
7
7
|
|
|
8
|
-
INPUT
|
|
8
|
+
INPUT=$(read_json_input "${1:-}")
|
|
9
9
|
[ -z "$INPUT" ] && error_exit "Usage: execute.sh '{\"workerId\":\"worker-1\",\"workerSession\":\"worker-session\",\"teamId\":\"team-123\",\"failureInfo\":{\"error\":\"tests failed\",\"failedSteps\":[\"tests\"],\"retries\":0,\"failureType\":\"verification\"},\"requiredRole\":\"developer\"}'"
|
|
10
10
|
|
|
11
|
-
WORKER_ID=$(
|
|
12
|
-
WORKER_SESSION=$(
|
|
13
|
-
TEAM_ID=$(
|
|
14
|
-
REQUIRED_ROLE=$(
|
|
15
|
-
TASK_DESCRIPTION=$(
|
|
11
|
+
WORKER_ID=$(printf '%s' "$INPUT" | jq -r '.workerId // empty')
|
|
12
|
+
WORKER_SESSION=$(printf '%s' "$INPUT" | jq -r '.workerSession // empty')
|
|
13
|
+
TEAM_ID=$(printf '%s' "$INPUT" | jq -r '.teamId // empty')
|
|
14
|
+
REQUIRED_ROLE=$(printf '%s' "$INPUT" | jq -r '.requiredRole // empty')
|
|
15
|
+
TASK_DESCRIPTION=$(printf '%s' "$INPUT" | jq -r '.taskDescription // empty')
|
|
16
16
|
|
|
17
17
|
# Failure info
|
|
18
|
-
RETRIES=$(
|
|
19
|
-
FAILURE_TYPE=$(
|
|
20
|
-
ERROR_MSG=$(
|
|
21
|
-
FAILED_STEPS=$(
|
|
18
|
+
RETRIES=$(printf '%s' "$INPUT" | jq -r '.failureInfo.retries // 0')
|
|
19
|
+
FAILURE_TYPE=$(printf '%s' "$INPUT" | jq -r '.failureInfo.failureType // "unknown"')
|
|
20
|
+
ERROR_MSG=$(printf '%s' "$INPUT" | jq -r '.failureInfo.error // "Unknown error"')
|
|
21
|
+
FAILED_STEPS=$(printf '%s' "$INPUT" | jq -c '.failureInfo.failedSteps // []')
|
|
22
22
|
|
|
23
23
|
require_param "workerId" "$WORKER_ID"
|
|
24
24
|
|
|
@@ -5,18 +5,18 @@ set -euo pipefail
|
|
|
5
5
|
SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)"
|
|
6
6
|
source "${SCRIPT_DIR}/../_common/lib.sh"
|
|
7
7
|
|
|
8
|
-
INPUT
|
|
8
|
+
INPUT=$(read_json_input "${1:-}")
|
|
9
9
|
[ -z "$INPUT" ] && error_exit "Usage: execute.sh '{\"minutes\":5,\"message\":\"Check worker progress\",\"teamId\":\"team-123\",\"tlMemberId\":\"tl-id\",\"sessionName\":\"my-session\"}'"
|
|
10
10
|
|
|
11
|
-
MINUTES=$(
|
|
12
|
-
MESSAGE=$(
|
|
13
|
-
TARGET=$(
|
|
14
|
-
RECURRING=$(
|
|
15
|
-
MAX_OCCURRENCES=$(
|
|
16
|
-
TEAM_ID=$(
|
|
17
|
-
TL_MEMBER_ID=$(
|
|
11
|
+
MINUTES=$(printf '%s' "$INPUT" | jq -r '.minutes // empty')
|
|
12
|
+
MESSAGE=$(printf '%s' "$INPUT" | jq -r '.message // empty')
|
|
13
|
+
TARGET=$(printf '%s' "$INPUT" | jq -r '.target // empty')
|
|
14
|
+
RECURRING=$(printf '%s' "$INPUT" | jq -r '.recurring // false')
|
|
15
|
+
MAX_OCCURRENCES=$(printf '%s' "$INPUT" | jq -r '.maxOccurrences // empty')
|
|
16
|
+
TEAM_ID=$(printf '%s' "$INPUT" | jq -r '.teamId // empty')
|
|
17
|
+
TL_MEMBER_ID=$(printf '%s' "$INPUT" | jq -r '.tlMemberId // empty')
|
|
18
18
|
# sessionName: explicit caller identity, used as fallback when CREWLY_SESSION_NAME is not set
|
|
19
|
-
SESSION_NAME=$(
|
|
19
|
+
SESSION_NAME=$(printf '%s' "$INPUT" | jq -r '.sessionName // empty')
|
|
20
20
|
require_param "minutes" "$MINUTES"
|
|
21
21
|
require_param "message" "$MESSAGE"
|
|
22
22
|
|
|
@@ -5,12 +5,12 @@ set -euo pipefail
|
|
|
5
5
|
SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)"
|
|
6
6
|
source "${SCRIPT_DIR}/../_common/lib.sh"
|
|
7
7
|
|
|
8
|
-
INPUT
|
|
8
|
+
INPUT=$(read_json_input "${1:-}")
|
|
9
9
|
[ -z "$INPUT" ] && error_exit "Usage: execute.sh '{\"teamId\":\"team-uuid\",\"memberId\":\"member-uuid\",\"tlMemberId\":\"tl-member-id\"}'"
|
|
10
10
|
|
|
11
|
-
TEAM_ID=$(
|
|
12
|
-
MEMBER_ID=$(
|
|
13
|
-
TL_MEMBER_ID=$(
|
|
11
|
+
TEAM_ID=$(printf '%s' "$INPUT" | jq -r '.teamId // empty')
|
|
12
|
+
MEMBER_ID=$(printf '%s' "$INPUT" | jq -r '.memberId // empty')
|
|
13
|
+
TL_MEMBER_ID=$(printf '%s' "$INPUT" | jq -r '.tlMemberId // empty')
|
|
14
14
|
require_param "teamId" "$TEAM_ID"
|
|
15
15
|
require_param "memberId" "$MEMBER_ID"
|
|
16
16
|
require_param "tlMemberId" "$TL_MEMBER_ID"
|
|
@@ -5,12 +5,12 @@ set -euo pipefail
|
|
|
5
5
|
SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)"
|
|
6
6
|
source "${SCRIPT_DIR}/../_common/lib.sh"
|
|
7
7
|
|
|
8
|
-
INPUT
|
|
8
|
+
INPUT=$(read_json_input "${1:-}")
|
|
9
9
|
[ -z "$INPUT" ] && error_exit "Usage: execute.sh '{\"teamId\":\"team-uuid\",\"memberId\":\"member-uuid\",\"tlMemberId\":\"tl-member-id\"}'"
|
|
10
10
|
|
|
11
|
-
TEAM_ID=$(
|
|
12
|
-
MEMBER_ID=$(
|
|
13
|
-
TL_MEMBER_ID=$(
|
|
11
|
+
TEAM_ID=$(printf '%s' "$INPUT" | jq -r '.teamId // empty')
|
|
12
|
+
MEMBER_ID=$(printf '%s' "$INPUT" | jq -r '.memberId // empty')
|
|
13
|
+
TL_MEMBER_ID=$(printf '%s' "$INPUT" | jq -r '.tlMemberId // empty')
|
|
14
14
|
require_param "teamId" "$TEAM_ID"
|
|
15
15
|
require_param "memberId" "$MEMBER_ID"
|
|
16
16
|
require_param "tlMemberId" "$TL_MEMBER_ID"
|
|
@@ -12,16 +12,16 @@ set -euo pipefail
|
|
|
12
12
|
SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)"
|
|
13
13
|
source "${SCRIPT_DIR}/../_common/lib.sh"
|
|
14
14
|
|
|
15
|
-
INPUT
|
|
15
|
+
INPUT=$(read_json_input "${1:-}")
|
|
16
16
|
[ -z "$INPUT" ] && error_exit "Usage: execute.sh '{\"taskId\":\"...\",\"taskPath\":\"...\",\"workerId\":\"...\",\"teamId\":\"...\",\"projectPath\":\"...\",\"templateId\":\"dev-fullstack\",\"checks\":[...]}'"
|
|
17
17
|
|
|
18
|
-
TASK_ID=$(
|
|
19
|
-
TASK_PATH=$(
|
|
20
|
-
WORKER_ID=$(
|
|
21
|
-
TEAM_ID=$(
|
|
22
|
-
PROJECT_PATH=$(
|
|
23
|
-
TEMPLATE_ID=$(
|
|
24
|
-
CHECKS=$(
|
|
18
|
+
TASK_ID=$(printf '%s' "$INPUT" | jq -r '.taskId // empty')
|
|
19
|
+
TASK_PATH=$(printf '%s' "$INPUT" | jq -r '.taskPath // empty')
|
|
20
|
+
WORKER_ID=$(printf '%s' "$INPUT" | jq -r '.workerId // empty')
|
|
21
|
+
TEAM_ID=$(printf '%s' "$INPUT" | jq -r '.teamId // empty')
|
|
22
|
+
PROJECT_PATH=$(printf '%s' "$INPUT" | jq -r '.projectPath // empty')
|
|
23
|
+
TEMPLATE_ID=$(printf '%s' "$INPUT" | jq -r '.templateId // empty')
|
|
24
|
+
CHECKS=$(printf '%s' "$INPUT" | jq -c '.checks // []')
|
|
25
25
|
|
|
26
26
|
# At least taskPath or taskId is needed
|
|
27
27
|
if [ -z "$TASK_PATH" ] && [ -z "$TASK_ID" ]; then
|
|
@@ -0,0 +1,119 @@
|
|
|
1
|
+
{
|
|
2
|
+
"$schema": "https://crewlyai.com/schemas/cloud-deploy-manifest.json",
|
|
3
|
+
"version": "1.0.0",
|
|
4
|
+
"generatedAt": "2026-03-26T00:00:00.000Z",
|
|
5
|
+
"templates": [
|
|
6
|
+
{
|
|
7
|
+
"templateId": "dev-fullstack",
|
|
8
|
+
"displayName": "Fullstack Development Team",
|
|
9
|
+
"description": "A Tech Lead orchestrates 2 developers and 1 QA engineer to build web applications. Includes code review, quality gates, browser testing, and E2E pipelines.",
|
|
10
|
+
"category": "development",
|
|
11
|
+
"icon": "laptop",
|
|
12
|
+
"tags": ["development", "web", "fullstack", "testing"],
|
|
13
|
+
"agentCount": 4,
|
|
14
|
+
"roles": [
|
|
15
|
+
{ "role": "team-leader", "label": "Tech Lead", "count": 1 },
|
|
16
|
+
{ "role": "developer", "label": "Developer", "count": 2 },
|
|
17
|
+
{ "role": "qa-engineer", "label": "QA Engineer", "count": 1 }
|
|
18
|
+
],
|
|
19
|
+
"compatibleRuntimes": ["claude-code", "crewly-agent"],
|
|
20
|
+
"defaultRuntime": "crewly-agent",
|
|
21
|
+
"estimatedTokenUsage": {
|
|
22
|
+
"perTaskAvg": 50000,
|
|
23
|
+
"dailyBudget": 5000000,
|
|
24
|
+
"modelBreakdown": {
|
|
25
|
+
"claude-sonnet-4-20250514": 85,
|
|
26
|
+
"claude-haiku-3.5": 15
|
|
27
|
+
}
|
|
28
|
+
},
|
|
29
|
+
"features": [
|
|
30
|
+
"hierarchical-delegation",
|
|
31
|
+
"code-review-pipeline",
|
|
32
|
+
"quality-gates",
|
|
33
|
+
"browser-verification",
|
|
34
|
+
"e2e-testing"
|
|
35
|
+
],
|
|
36
|
+
"deployConfig": {
|
|
37
|
+
"minMemoryMb": 512,
|
|
38
|
+
"requiresBrowser": true,
|
|
39
|
+
"requiresGit": true,
|
|
40
|
+
"normFiles": ["code-commit-sop.md", "quality-gates.md"],
|
|
41
|
+
"suggestedProviders": ["anthropic"]
|
|
42
|
+
}
|
|
43
|
+
},
|
|
44
|
+
{
|
|
45
|
+
"templateId": "research-analysis",
|
|
46
|
+
"displayName": "Research & Analysis Team",
|
|
47
|
+
"description": "A Research Lead directs 2 analysts for competitive analysis, market research, and strategic planning. Includes source verification, fact-checking, and data validation pipelines.",
|
|
48
|
+
"category": "research",
|
|
49
|
+
"icon": "microscope",
|
|
50
|
+
"tags": ["research", "analysis", "strategy", "competitive"],
|
|
51
|
+
"agentCount": 3,
|
|
52
|
+
"roles": [
|
|
53
|
+
{ "role": "team-leader", "label": "Research Lead", "count": 1 },
|
|
54
|
+
{ "role": "analyst", "label": "Research Analyst", "count": 2 }
|
|
55
|
+
],
|
|
56
|
+
"compatibleRuntimes": ["claude-code", "crewly-agent"],
|
|
57
|
+
"defaultRuntime": "crewly-agent",
|
|
58
|
+
"estimatedTokenUsage": {
|
|
59
|
+
"perTaskAvg": 40000,
|
|
60
|
+
"dailyBudget": 3000000,
|
|
61
|
+
"modelBreakdown": {
|
|
62
|
+
"claude-sonnet-4-20250514": 90,
|
|
63
|
+
"claude-haiku-3.5": 10
|
|
64
|
+
}
|
|
65
|
+
},
|
|
66
|
+
"features": [
|
|
67
|
+
"hierarchical-delegation",
|
|
68
|
+
"source-verification",
|
|
69
|
+
"fact-checking",
|
|
70
|
+
"data-validation",
|
|
71
|
+
"web-research"
|
|
72
|
+
],
|
|
73
|
+
"deployConfig": {
|
|
74
|
+
"minMemoryMb": 256,
|
|
75
|
+
"requiresBrowser": true,
|
|
76
|
+
"requiresGit": false,
|
|
77
|
+
"normFiles": ["research-methodology.md", "source-citation.md"],
|
|
78
|
+
"suggestedProviders": ["anthropic"]
|
|
79
|
+
}
|
|
80
|
+
},
|
|
81
|
+
{
|
|
82
|
+
"templateId": "social-media-ops",
|
|
83
|
+
"displayName": "Social Media Operations Team",
|
|
84
|
+
"description": "A Content Director manages 2 creators for social media content creation, visual review, and multi-platform publishing. Includes visual QA with AI vision analysis.",
|
|
85
|
+
"category": "content",
|
|
86
|
+
"icon": "smartphone",
|
|
87
|
+
"tags": ["content", "social-media", "visual", "marketing"],
|
|
88
|
+
"agentCount": 3,
|
|
89
|
+
"roles": [
|
|
90
|
+
{ "role": "team-leader", "label": "Content Director", "count": 1 },
|
|
91
|
+
{ "role": "creator", "label": "Content Creator", "count": 2 }
|
|
92
|
+
],
|
|
93
|
+
"compatibleRuntimes": ["claude-code", "crewly-agent"],
|
|
94
|
+
"defaultRuntime": "crewly-agent",
|
|
95
|
+
"estimatedTokenUsage": {
|
|
96
|
+
"perTaskAvg": 30000,
|
|
97
|
+
"dailyBudget": 2000000,
|
|
98
|
+
"modelBreakdown": {
|
|
99
|
+
"claude-sonnet-4-20250514": 70,
|
|
100
|
+
"claude-haiku-3.5": 30
|
|
101
|
+
}
|
|
102
|
+
},
|
|
103
|
+
"features": [
|
|
104
|
+
"hierarchical-delegation",
|
|
105
|
+
"visual-screenshot-review",
|
|
106
|
+
"ai-vision-analysis",
|
|
107
|
+
"content-guidelines",
|
|
108
|
+
"multi-platform"
|
|
109
|
+
],
|
|
110
|
+
"deployConfig": {
|
|
111
|
+
"minMemoryMb": 256,
|
|
112
|
+
"requiresBrowser": true,
|
|
113
|
+
"requiresGit": false,
|
|
114
|
+
"normFiles": ["posting-schedule.md", "engagement-rules.md"],
|
|
115
|
+
"suggestedProviders": ["anthropic"]
|
|
116
|
+
}
|
|
117
|
+
}
|
|
118
|
+
]
|
|
119
|
+
}
|