crewly 1.0.0 → 1.0.2
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 +40 -2
- package/config/skills/_common/lib.sh +2 -1
- package/config/skills/orchestrator/schedule-check/execute.sh +1 -1
- package/config/skills/orchestrator/send-pdf-to-slack/execute.sh +28 -5
- package/config/skills/orchestrator/send-pdf-to-slack/instructions.md +49 -10
- package/config/skills/orchestrator/send-pdf-to-slack/skill.json +1 -1
- package/config/skills/orchestrator/subscribe-event/execute.sh +2 -2
- package/dist/backend/backend/src/constants.d.ts +24 -2
- package/dist/backend/backend/src/constants.d.ts.map +1 -1
- package/dist/backend/backend/src/constants.js +13 -3
- package/dist/backend/backend/src/constants.js.map +1 -1
- package/dist/backend/backend/src/controllers/session/session.controller.d.ts.map +1 -1
- package/dist/backend/backend/src/controllers/session/session.controller.js +16 -7
- package/dist/backend/backend/src/controllers/session/session.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 +27 -0
- package/dist/backend/backend/src/controllers/team/team.controller.js.map +1 -1
- package/dist/backend/backend/src/index.d.ts +7 -0
- package/dist/backend/backend/src/index.d.ts.map +1 -1
- package/dist/backend/backend/src/index.js +131 -0
- package/dist/backend/backend/src/index.js.map +1 -1
- package/dist/backend/backend/src/middleware/agent-heartbeat.middleware.d.ts +3 -2
- package/dist/backend/backend/src/middleware/agent-heartbeat.middleware.d.ts.map +1 -1
- package/dist/backend/backend/src/middleware/agent-heartbeat.middleware.js +8 -2
- package/dist/backend/backend/src/middleware/agent-heartbeat.middleware.js.map +1 -1
- package/dist/backend/backend/src/services/agent/agent-heartbeat-monitor.service.d.ts +185 -0
- package/dist/backend/backend/src/services/agent/agent-heartbeat-monitor.service.d.ts.map +1 -0
- package/dist/backend/backend/src/services/agent/agent-heartbeat-monitor.service.js +508 -0
- package/dist/backend/backend/src/services/agent/agent-heartbeat-monitor.service.js.map +1 -0
- package/dist/backend/backend/src/services/agent/agent-heartbeat.service.d.ts +5 -5
- package/dist/backend/backend/src/services/agent/agent-heartbeat.service.d.ts.map +1 -1
- package/dist/backend/backend/src/services/agent/agent-heartbeat.service.js +3 -3
- 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 +39 -13
- package/dist/backend/backend/src/services/agent/agent-registration.service.js.map +1 -1
- package/dist/backend/backend/src/services/agent/disk-cleanup.service.d.ts +24 -3
- package/dist/backend/backend/src/services/agent/disk-cleanup.service.d.ts.map +1 -1
- package/dist/backend/backend/src/services/agent/disk-cleanup.service.js +15 -3
- package/dist/backend/backend/src/services/agent/disk-cleanup.service.js.map +1 -1
- package/dist/backend/backend/src/services/agent/idle-detection.service.d.ts.map +1 -1
- package/dist/backend/backend/src/services/agent/idle-detection.service.js +18 -0
- package/dist/backend/backend/src/services/agent/idle-detection.service.js.map +1 -1
- package/dist/backend/backend/src/services/agent/pty-activity-tracker.service.d.ts +7 -2
- package/dist/backend/backend/src/services/agent/pty-activity-tracker.service.d.ts.map +1 -1
- package/dist/backend/backend/src/services/agent/pty-activity-tracker.service.js +11 -3
- package/dist/backend/backend/src/services/agent/pty-activity-tracker.service.js.map +1 -1
- package/dist/backend/backend/src/services/agent/runtime-exit-monitor.service.d.ts +42 -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 +190 -1
- package/dist/backend/backend/src/services/agent/runtime-exit-monitor.service.js.map +1 -1
- package/dist/backend/backend/src/services/agent/tmux.service.js +2 -2
- package/dist/backend/backend/src/services/agent/tmux.service.js.map +1 -1
- package/dist/backend/backend/src/services/marketplace/marketplace-installer.service.d.ts +28 -4
- package/dist/backend/backend/src/services/marketplace/marketplace-installer.service.d.ts.map +1 -1
- package/dist/backend/backend/src/services/marketplace/marketplace-installer.service.js +74 -7
- package/dist/backend/backend/src/services/marketplace/marketplace-installer.service.js.map +1 -1
- 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 +13 -19
- package/dist/backend/backend/src/services/monitoring/activity-monitor.service.js.map +1 -1
- package/dist/backend/backend/src/services/orchestrator/orchestrator-heartbeat-monitor.service.d.ts +129 -0
- package/dist/backend/backend/src/services/orchestrator/orchestrator-heartbeat-monitor.service.d.ts.map +1 -0
- package/dist/backend/backend/src/services/orchestrator/orchestrator-heartbeat-monitor.service.js +253 -0
- package/dist/backend/backend/src/services/orchestrator/orchestrator-heartbeat-monitor.service.js.map +1 -0
- package/dist/backend/backend/src/services/session/pty/pty-session-backend.d.ts.map +1 -1
- package/dist/backend/backend/src/services/session/pty/pty-session-backend.js +5 -1
- package/dist/backend/backend/src/services/session/pty/pty-session-backend.js.map +1 -1
- package/dist/backend/backend/src/services/session/pty/pty-terminal-buffer.d.ts.map +1 -1
- package/dist/backend/backend/src/services/session/pty/pty-terminal-buffer.js +2 -1
- package/dist/backend/backend/src/services/session/pty/pty-terminal-buffer.js.map +1 -1
- package/dist/backend/backend/src/services/session/session-state-persistence.d.ts +4 -1
- package/dist/backend/backend/src/services/session/session-state-persistence.d.ts.map +1 -1
- package/dist/backend/backend/src/services/session/session-state-persistence.js +3 -1
- package/dist/backend/backend/src/services/session/session-state-persistence.js.map +1 -1
- package/dist/backend/backend/src/services/skill/skill-catalog.service.d.ts +11 -0
- package/dist/backend/backend/src/services/skill/skill-catalog.service.d.ts.map +1 -1
- package/dist/backend/backend/src/services/skill/skill-catalog.service.js +46 -3
- package/dist/backend/backend/src/services/skill/skill-catalog.service.js.map +1 -1
- package/dist/backend/backend/src/services/workflow/scheduler.service.d.ts +1 -0
- package/dist/backend/backend/src/services/workflow/scheduler.service.d.ts.map +1 -1
- package/dist/backend/backend/src/services/workflow/scheduler.service.js +1 -0
- package/dist/backend/backend/src/services/workflow/scheduler.service.js.map +1 -1
- package/dist/backend/backend/src/types/index.d.ts +2 -0
- package/dist/backend/backend/src/types/index.d.ts.map +1 -1
- package/dist/backend/backend/src/types/index.js.map +1 -1
- package/dist/backend/backend/src/types/scheduler.types.d.ts +17 -0
- package/dist/backend/backend/src/types/scheduler.types.d.ts.map +1 -1
- package/dist/backend/backend/src/types/scheduler.types.js.map +1 -1
- package/dist/backend/config/constants.d.ts +36 -2
- package/dist/backend/config/constants.d.ts.map +1 -1
- package/dist/backend/config/constants.js +37 -2
- package/dist/backend/config/constants.js.map +1 -1
- package/dist/backend/config/index.d.ts +1 -1
- package/dist/cli/cli/src/commands/install.d.ts +23 -0
- package/dist/cli/cli/src/commands/install.d.ts.map +1 -0
- package/dist/cli/cli/src/commands/install.js +113 -0
- package/dist/cli/cli/src/commands/install.js.map +1 -0
- package/dist/cli/cli/src/commands/search.d.ts +23 -0
- package/dist/cli/cli/src/commands/search.d.ts.map +1 -0
- package/dist/cli/cli/src/commands/search.js +85 -0
- package/dist/cli/cli/src/commands/search.js.map +1 -0
- package/dist/cli/cli/src/commands/start.d.ts.map +1 -1
- package/dist/cli/cli/src/commands/start.js +11 -0
- package/dist/cli/cli/src/commands/start.js.map +1 -1
- package/dist/cli/cli/src/constants.d.ts +1 -1
- package/dist/cli/cli/src/index.js +13 -1
- package/dist/cli/cli/src/index.js.map +1 -1
- package/dist/cli/cli/src/utils/marketplace.d.ts +111 -0
- package/dist/cli/cli/src/utils/marketplace.d.ts.map +1 -0
- package/dist/cli/cli/src/utils/marketplace.js +209 -0
- package/dist/cli/cli/src/utils/marketplace.js.map +1 -0
- package/dist/cli/config/constants.d.ts +36 -2
- package/dist/cli/config/constants.d.ts.map +1 -1
- package/dist/cli/config/constants.js +37 -2
- package/dist/cli/config/constants.js.map +1 -1
- package/dist/cli/config/index.d.ts +1 -1
- package/frontend/dist/assets/{index-77b6a2a0.js → index-4c56763b.js} +31 -31
- package/frontend/dist/assets/{index-5ddf71c8.css → index-c1dd0b10.css} +1 -1
- package/frontend/dist/index.html +2 -2
- package/package.json +11 -4
- package/config/constants.test.ts +0 -469
- package/config/quality-gates/default-gates.test.ts +0 -246
- package/config/skills/agent/_common/lib.sh +0 -4
- package/config/skills/agent/accept-task/execute.sh +0 -21
- package/config/skills/agent/accept-task/instructions.md +0 -20
- package/config/skills/agent/accept-task/skill.json +0 -20
- package/config/skills/agent/block-task/execute.sh +0 -26
- package/config/skills/agent/block-task/instructions.md +0 -22
- package/config/skills/agent/block-task/skill.json +0 -20
- package/config/skills/agent/check-quality-gates/execute.sh +0 -20
- package/config/skills/agent/check-quality-gates/instructions.md +0 -23
- package/config/skills/agent/check-quality-gates/skill.json +0 -20
- package/config/skills/agent/complete-task/execute.sh +0 -26
- package/config/skills/agent/complete-task/instructions.md +0 -22
- package/config/skills/agent/complete-task/skill.json +0 -20
- package/config/skills/agent/get-my-context/execute.sh +0 -23
- package/config/skills/agent/get-my-context/instructions.md +0 -21
- package/config/skills/agent/get-my-context/skill.json +0 -20
- package/config/skills/agent/get-sops/execute.sh +0 -24
- package/config/skills/agent/get-sops/instructions.md +0 -21
- package/config/skills/agent/get-sops/skill.json +0 -20
- package/config/skills/agent/get-team-status/execute.sh +0 -8
- package/config/skills/agent/get-team-status/instructions.md +0 -17
- package/config/skills/agent/get-team-status/skill.json +0 -20
- package/config/skills/agent/manage-knowledge/execute.sh +0 -60
- package/config/skills/agent/manage-knowledge/instructions.md +0 -46
- package/config/skills/agent/nano-banana-image/.env +0 -2
- package/config/skills/agent/nano-banana-image/.env.example +0 -6
- package/config/skills/agent/nano-banana-image/generate.sh +0 -73
- package/config/skills/agent/nano-banana-image/instructions.md +0 -50
- package/config/skills/agent/nano-banana-image/skill.json +0 -39
- package/config/skills/agent/query-knowledge/execute.sh +0 -30
- package/config/skills/agent/query-knowledge/instructions.md +0 -47
- package/config/skills/agent/query-knowledge/skill.json +0 -20
- package/config/skills/agent/read-task/execute.sh +0 -15
- package/config/skills/agent/read-task/instructions.md +0 -19
- package/config/skills/agent/read-task/skill.json +0 -20
- package/config/skills/agent/recall/execute.sh +0 -24
- package/config/skills/agent/recall/instructions.md +0 -23
- package/config/skills/agent/recall/skill.json +0 -20
- package/config/skills/agent/record-learning/execute.sh +0 -29
- package/config/skills/agent/record-learning/instructions.md +0 -24
- package/config/skills/agent/record-learning/skill.json +0 -20
- package/config/skills/agent/register-self/execute.sh +0 -28
- package/config/skills/agent/register-self/instructions.md +0 -18
- package/config/skills/agent/register-self/skill.json +0 -20
- package/config/skills/agent/remember/execute.sh +0 -29
- package/config/skills/agent/remember/instructions.md +0 -24
- package/config/skills/agent/remember/skill.json +0 -20
- package/config/skills/agent/report-progress/execute.sh +0 -28
- package/config/skills/agent/report-progress/instructions.md +0 -25
- package/config/skills/agent/report-progress/skill.json +0 -20
- package/config/skills/agent/report-status/execute.sh +0 -35
- package/config/skills/agent/report-status/instructions.md +0 -36
- package/config/skills/agent/report-status/skill.json +0 -20
- package/config/skills/agent/send-chat-response/execute.sh +0 -26
- package/config/skills/agent/send-chat-response/instructions.md +0 -22
- package/config/skills/agent/send-chat-response/skill.json +0 -20
- package/config/skills/agent/send-message/execute.sh +0 -17
- package/config/skills/agent/send-message/instructions.md +0 -20
- package/config/skills/agent/send-message/skill.json +0 -20
- package/config/skills/agent/send-pdf-to-slack/execute.sh +0 -182
- package/config/skills/agent/send-pdf-to-slack/instructions.md +0 -49
- package/config/skills/agent/send-pdf-to-slack/skill.json +0 -20
- package/config/skills/nano-banana-image/.env +0 -2
- package/config/skills/nano-banana-image/.env.example +0 -6
package/config/constants.ts
CHANGED
|
@@ -346,8 +346,8 @@ export const MESSAGE_CONSTANTS = {
|
|
|
346
346
|
* Environment variable names used across domains
|
|
347
347
|
*/
|
|
348
348
|
export const ENV_CONSTANTS = {
|
|
349
|
-
/**
|
|
350
|
-
|
|
349
|
+
/** PTY session name used for agent identity and heartbeat tracking */
|
|
350
|
+
CREWLY_SESSION_NAME: 'CREWLY_SESSION_NAME',
|
|
351
351
|
/** Crewly role identifier */
|
|
352
352
|
CREWLY_ROLE: 'CREWLY_ROLE',
|
|
353
353
|
/** API server port */
|
|
@@ -768,6 +768,44 @@ export const ORCHESTRATOR_RESTART_CONSTANTS = {
|
|
|
768
768
|
RESTART_DELAY_MS: 5000,
|
|
769
769
|
} as const;
|
|
770
770
|
|
|
771
|
+
// ========================= ORCHESTRATOR HEARTBEAT MONITOR =========================
|
|
772
|
+
|
|
773
|
+
/**
|
|
774
|
+
* Orchestrator heartbeat monitoring configuration.
|
|
775
|
+
* Used by OrchestratorHeartbeatMonitorService to detect unresponsive orchestrators,
|
|
776
|
+
* send proactive heartbeat requests, and trigger auto-restart with resume.
|
|
777
|
+
*/
|
|
778
|
+
export const ORCHESTRATOR_HEARTBEAT_CONSTANTS = {
|
|
779
|
+
/** Interval between heartbeat checks in milliseconds (30 seconds) */
|
|
780
|
+
CHECK_INTERVAL_MS: 30_000,
|
|
781
|
+
/** Time without API activity before sending a heartbeat request to orchestrator (5 minutes) */
|
|
782
|
+
HEARTBEAT_REQUEST_THRESHOLD_MS: 300_000,
|
|
783
|
+
/** Time after heartbeat request before triggering auto-restart (1 minute) */
|
|
784
|
+
RESTART_THRESHOLD_MS: 60_000,
|
|
785
|
+
/** Message sent to orchestrator PTY to request a heartbeat */
|
|
786
|
+
HEARTBEAT_REQUEST_MESSAGE: 'Please run your heartbeat skill now: bash config/skills/orchestrator/heartbeat/execute.sh',
|
|
787
|
+
/** Grace period after server start before monitoring begins (30 seconds) */
|
|
788
|
+
STARTUP_GRACE_PERIOD_MS: 30_000,
|
|
789
|
+
} as const;
|
|
790
|
+
|
|
791
|
+
/**
|
|
792
|
+
* Agent heartbeat monitor configuration.
|
|
793
|
+
* Used by AgentHeartbeatMonitorService to detect crashed/unresponsive agents
|
|
794
|
+
* and auto-restart them with task re-delivery.
|
|
795
|
+
*/
|
|
796
|
+
export const AGENT_HEARTBEAT_MONITOR_CONSTANTS = {
|
|
797
|
+
/** Interval between heartbeat checks in milliseconds (30 seconds) */
|
|
798
|
+
CHECK_INTERVAL_MS: 30_000,
|
|
799
|
+
/** Time without activity (both PTY and API) before checking process liveness (5 minutes) */
|
|
800
|
+
HEARTBEAT_REQUEST_THRESHOLD_MS: 300_000,
|
|
801
|
+
/** Grace period after server start before monitoring begins (1 minute) */
|
|
802
|
+
STARTUP_GRACE_PERIOD_MS: 60_000,
|
|
803
|
+
/** Maximum restarts per cooldown window per agent */
|
|
804
|
+
MAX_RESTARTS_PER_WINDOW: 3,
|
|
805
|
+
/** Cooldown window for restart tracking (1 hour) */
|
|
806
|
+
COOLDOWN_WINDOW_MS: 3_600_000,
|
|
807
|
+
} as const;
|
|
808
|
+
|
|
771
809
|
// ========================= AGENT SUSPEND SYSTEM =========================
|
|
772
810
|
|
|
773
811
|
/**
|
|
@@ -19,7 +19,8 @@ api_call() {
|
|
|
19
19
|
local url="${CREWLY_API_URL}/api${endpoint}"
|
|
20
20
|
local args=(-s -w '\n%{http_code}' -X "$method" -H "Content-Type: application/json")
|
|
21
21
|
# Include agent session identity header for heartbeat tracking
|
|
22
|
-
|
|
22
|
+
# Use ${VAR:-} pattern to avoid 'unbound variable' error under set -u (nounset)
|
|
23
|
+
[ -n "${CREWLY_SESSION_NAME:-}" ] && args+=(-H "X-Agent-Session: $CREWLY_SESSION_NAME")
|
|
23
24
|
[ -n "$body" ] && args+=(-d "$body")
|
|
24
25
|
|
|
25
26
|
local response
|
|
@@ -16,7 +16,7 @@ require_param "minutes" "$MINUTES"
|
|
|
16
16
|
require_param "message" "$MESSAGE"
|
|
17
17
|
|
|
18
18
|
# Default target to the caller's own session (orchestrator sends reminders to itself)
|
|
19
|
-
TARGET_SESSION="${TARGET:-${
|
|
19
|
+
TARGET_SESSION="${TARGET:-${CREWLY_SESSION_NAME:-crewly-orc}}"
|
|
20
20
|
|
|
21
21
|
# API expects: targetSession, minutes, message
|
|
22
22
|
# When recurring, also send isRecurring, intervalMinutes, and optional maxOccurrences
|
|
@@ -105,7 +105,7 @@ trap cleanup EXIT
|
|
|
105
105
|
|
|
106
106
|
# Convert markdown to PDF using weasyprint
|
|
107
107
|
if ! "$PYTHON" -c "
|
|
108
|
-
import sys, markdown, weasyprint
|
|
108
|
+
import sys, os, re, markdown, weasyprint
|
|
109
109
|
|
|
110
110
|
md_file = sys.argv[1]
|
|
111
111
|
pdf_file = sys.argv[2]
|
|
@@ -113,28 +113,51 @@ pdf_file = sys.argv[2]
|
|
|
113
113
|
with open(md_file, 'r', encoding='utf-8') as f:
|
|
114
114
|
md_content = f.read()
|
|
115
115
|
|
|
116
|
+
# Resolve the base directory for relative image paths
|
|
117
|
+
base_dir = os.path.dirname(os.path.abspath(md_file))
|
|
118
|
+
|
|
119
|
+
# Convert local absolute image paths to file:// URLs so weasyprint can load them
|
|
120
|
+
def fix_image_paths(content):
|
|
121
|
+
# Match markdown image syntax: 
|
|
122
|
+
def replace_path(match):
|
|
123
|
+
alt = match.group(1)
|
|
124
|
+
path = match.group(2)
|
|
125
|
+
if os.path.isabs(path) and os.path.exists(path):
|
|
126
|
+
return ''
|
|
127
|
+
elif not path.startswith(('http://', 'https://', 'file://')) and os.path.exists(os.path.join(base_dir, path)):
|
|
128
|
+
full = os.path.join(base_dir, path)
|
|
129
|
+
return ''
|
|
130
|
+
return match.group(0)
|
|
131
|
+
return re.sub(r'!\[([^\]]*)\]\(([^)]+)\)', replace_path, content)
|
|
132
|
+
|
|
133
|
+
md_content = fix_image_paths(md_content)
|
|
134
|
+
|
|
116
135
|
html = markdown.markdown(md_content, extensions=['tables', 'fenced_code', 'codehilite', 'toc', 'meta'])
|
|
117
136
|
|
|
118
137
|
styled_html = '''<!DOCTYPE html>
|
|
119
138
|
<html><head><meta charset=\"utf-8\">
|
|
120
139
|
<style>
|
|
140
|
+
@page { size: A4; margin: 20mm 15mm; }
|
|
121
141
|
body { font-family: -apple-system, \"Noto Sans SC\", \"PingFang SC\", \"Microsoft YaHei\", sans-serif;
|
|
122
|
-
max-width: 800px; margin:
|
|
142
|
+
max-width: 800px; margin: 0 auto; padding: 0; line-height: 1.8;
|
|
123
143
|
font-size: 14px; color: #333; }
|
|
124
144
|
h1 { font-size: 24px; border-bottom: 2px solid #333; padding-bottom: 8px; }
|
|
125
145
|
h2 { font-size: 20px; border-bottom: 1px solid #ddd; padding-bottom: 6px; margin-top: 28px; }
|
|
126
146
|
h3 { font-size: 16px; margin-top: 20px; }
|
|
127
|
-
|
|
128
|
-
|
|
147
|
+
img { max-width: 100%; height: auto; display: block; margin: 16px auto;
|
|
148
|
+
border: 1px solid #e0e0e0; border-radius: 4px; }
|
|
149
|
+
table { border-collapse: collapse; width: 100%; margin: 16px 0; font-size: 12px; }
|
|
150
|
+
th, td { border: 1px solid #ddd; padding: 6px 10px; text-align: left; }
|
|
129
151
|
th { background-color: #f5f5f5; font-weight: 600; }
|
|
130
152
|
code { background: #f4f4f4; padding: 2px 6px; border-radius: 3px; font-size: 13px; }
|
|
131
153
|
pre { background: #f4f4f4; padding: 16px; border-radius: 6px; overflow-x: auto; }
|
|
132
154
|
blockquote { border-left: 4px solid #ddd; margin: 16px 0; padding: 8px 16px; color: #666; }
|
|
133
155
|
ul, ol { padding-left: 24px; }
|
|
134
156
|
li { margin: 4px 0; }
|
|
157
|
+
hr { border: none; border-top: 1px solid #ddd; margin: 24px 0; }
|
|
135
158
|
</style></head><body>''' + html + '</body></html>'
|
|
136
159
|
|
|
137
|
-
weasyprint.HTML(string=styled_html).write_pdf(pdf_file)
|
|
160
|
+
weasyprint.HTML(string=styled_html, base_url='file://' + base_dir + '/').write_pdf(pdf_file)
|
|
138
161
|
" "$MD_FILE" "$PDF_FILE" 2>/tmp/weasyprint-err-$$.log; then
|
|
139
162
|
WP_ERR="$(cat /tmp/weasyprint-err-$$.log 2>/dev/null || echo 'unknown error')"
|
|
140
163
|
error_exit "weasyprint conversion failed: ${WP_ERR}"
|
|
@@ -1,6 +1,16 @@
|
|
|
1
1
|
# Send PDF to Slack
|
|
2
2
|
|
|
3
|
-
Converts a markdown file to
|
|
3
|
+
Converts a markdown file to a styled PDF and uploads it to a Slack channel via the `/api/slack/upload-file` endpoint. Supports embedding local images referenced in the markdown.
|
|
4
|
+
|
|
5
|
+
## Image Support
|
|
6
|
+
|
|
7
|
+
The skill automatically handles local images referenced in markdown:
|
|
8
|
+
|
|
9
|
+
- **Absolute paths**: `` — converted to `file://` URLs
|
|
10
|
+
- **Relative paths**: `` — resolved relative to the markdown file's directory
|
|
11
|
+
- **Remote URLs**: `` — passed through as-is
|
|
12
|
+
|
|
13
|
+
Images are rendered at full width (max 100% of page) with auto height scaling, centered with a subtle border.
|
|
4
14
|
|
|
5
15
|
## Prerequisites
|
|
6
16
|
|
|
@@ -10,7 +20,12 @@ Converts a markdown file to PDF using `weasyprint` (Python) and uploads it to a
|
|
|
10
20
|
## Usage
|
|
11
21
|
|
|
12
22
|
```bash
|
|
13
|
-
bash config/skills/orchestrator/send-pdf-to-slack/execute.sh
|
|
23
|
+
bash config/skills/orchestrator/send-pdf-to-slack/execute.sh \
|
|
24
|
+
--channel C0123ABC \
|
|
25
|
+
--file /path/to/document.md \
|
|
26
|
+
--title "Weekly Report" \
|
|
27
|
+
--text "Here is the report" \
|
|
28
|
+
--thread 1707123456.789000
|
|
14
29
|
```
|
|
15
30
|
|
|
16
31
|
## Parameters
|
|
@@ -23,19 +38,43 @@ bash config/skills/orchestrator/send-pdf-to-slack/execute.sh --channel C0123ABC
|
|
|
23
38
|
| `--text`, `-t` | No | Initial comment to include with the upload |
|
|
24
39
|
| `--thread`, `-r` | No | Slack thread timestamp for threaded upload |
|
|
25
40
|
|
|
26
|
-
##
|
|
41
|
+
## Example: Daily Report with Infographics
|
|
27
42
|
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
43
|
+
Create a markdown file with embedded images:
|
|
44
|
+
|
|
45
|
+
```markdown
|
|
46
|
+
# AI Daily Report - 2026-02-21
|
|
47
|
+
|
|
48
|
+
## 1. Paper Title
|
|
49
|
+
Summary of the paper.
|
|
31
50
|
|
|
32
|
-
|
|
33
|
-
bash execute.sh --channel C0123ABC --file report.md --title "Q4 Report" --text "Here is the quarterly report"
|
|
51
|
+

|
|
34
52
|
|
|
35
|
-
|
|
36
|
-
|
|
53
|
+
## 2. Another Paper
|
|
54
|
+
Summary here.
|
|
55
|
+
|
|
56
|
+

|
|
37
57
|
```
|
|
38
58
|
|
|
59
|
+
Then send it:
|
|
60
|
+
|
|
61
|
+
```bash
|
|
62
|
+
bash config/skills/orchestrator/send-pdf-to-slack/execute.sh \
|
|
63
|
+
--channel D0AC7NF5N7L \
|
|
64
|
+
--file /path/to/daily-report.md \
|
|
65
|
+
--title "AI Daily Report 2026-02-21" \
|
|
66
|
+
--text "Today's AI report with infographics" \
|
|
67
|
+
--thread 1771651155.079579
|
|
68
|
+
```
|
|
69
|
+
|
|
70
|
+
## PDF Styling
|
|
71
|
+
|
|
72
|
+
- A4 page size with 20mm/15mm margins
|
|
73
|
+
- System fonts with CJK support (PingFang SC, Noto Sans SC)
|
|
74
|
+
- Images: max-width 100%, centered, with subtle border
|
|
75
|
+
- Tables: full width, bordered cells
|
|
76
|
+
- Code blocks: gray background with monospace font
|
|
77
|
+
|
|
39
78
|
## Output
|
|
40
79
|
|
|
41
80
|
JSON response from the upload API with `fileId` on success. Also emits a `[NOTIFY]` block for chat service integration.
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"id": "orc-send-pdf-to-slack",
|
|
3
3
|
"name": "Send PDF to Slack",
|
|
4
|
-
"description": "Convert a markdown file to PDF and upload it to a Slack channel.",
|
|
4
|
+
"description": "Convert a markdown file to a styled PDF (with embedded local images) and upload it to a Slack channel. Supports markdown image syntax  — local absolute and relative image paths are automatically resolved and embedded in the PDF.",
|
|
5
5
|
"category": "communication",
|
|
6
6
|
"skillType": "claude-skill",
|
|
7
7
|
"promptFile": "instructions.md",
|
|
@@ -10,9 +10,9 @@ INPUT="${1:-}"
|
|
|
10
10
|
EVENT_TYPE=$(echo "$INPUT" | jq -r '.eventType // empty')
|
|
11
11
|
require_param "eventType" "$EVENT_TYPE"
|
|
12
12
|
|
|
13
|
-
# Inject subscriberSession from env (set by Crewly on each
|
|
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
|
-
SUBSCRIBER_SESSION="${
|
|
15
|
+
SUBSCRIBER_SESSION="${CREWLY_SESSION_NAME:-crewly-orc}"
|
|
16
16
|
BODY=$(echo "$INPUT" | jq --arg ss "$SUBSCRIBER_SESSION" \
|
|
17
17
|
'. + {subscriberSession: $ss} | if .filter == null then .filter = {} else . end')
|
|
18
18
|
|
|
@@ -160,6 +160,20 @@ export declare const VERSION_CHECK_CONSTANTS: {
|
|
|
160
160
|
readonly CACHE_TTL_MS: number;
|
|
161
161
|
readonly REQUEST_TIMEOUT_MS: 5000;
|
|
162
162
|
};
|
|
163
|
+
export declare const AGENT_HEARTBEAT_MONITOR_CONSTANTS: {
|
|
164
|
+
readonly CHECK_INTERVAL_MS: 30000;
|
|
165
|
+
readonly HEARTBEAT_REQUEST_THRESHOLD_MS: 300000;
|
|
166
|
+
readonly STARTUP_GRACE_PERIOD_MS: 60000;
|
|
167
|
+
readonly MAX_RESTARTS_PER_WINDOW: 3;
|
|
168
|
+
readonly COOLDOWN_WINDOW_MS: 3600000;
|
|
169
|
+
};
|
|
170
|
+
export declare const ORCHESTRATOR_HEARTBEAT_CONSTANTS: {
|
|
171
|
+
readonly CHECK_INTERVAL_MS: 30000;
|
|
172
|
+
readonly HEARTBEAT_REQUEST_THRESHOLD_MS: 300000;
|
|
173
|
+
readonly RESTART_THRESHOLD_MS: 60000;
|
|
174
|
+
readonly HEARTBEAT_REQUEST_MESSAGE: "Please run your heartbeat skill now: bash config/skills/orchestrator/heartbeat/execute.sh";
|
|
175
|
+
readonly STARTUP_GRACE_PERIOD_MS: 30000;
|
|
176
|
+
};
|
|
163
177
|
export declare const ORCHESTRATOR_SESSION_NAME = "crewly-orc";
|
|
164
178
|
export declare const ORCHESTRATOR_ROLE = "orchestrator";
|
|
165
179
|
export declare const ORCHESTRATOR_WINDOW_NAME = "Crewly Orchestrator";
|
|
@@ -229,8 +243,8 @@ export declare const CREWLY_CONSTANTS: {
|
|
|
229
243
|
};
|
|
230
244
|
};
|
|
231
245
|
export declare const ENV_CONSTANTS: {
|
|
232
|
-
/**
|
|
233
|
-
readonly
|
|
246
|
+
/** PTY session name used for agent identity and heartbeat tracking */
|
|
247
|
+
readonly CREWLY_SESSION_NAME: "CREWLY_SESSION_NAME";
|
|
234
248
|
readonly CREWLY_ROLE: "CREWLY_ROLE";
|
|
235
249
|
/** Base URL for the Crewly backend API (used by orchestrator bash skills) */
|
|
236
250
|
readonly CREWLY_API_URL: "CREWLY_API_URL";
|
|
@@ -553,6 +567,14 @@ export declare const RUNTIME_EXIT_CONSTANTS: {
|
|
|
553
567
|
* normal runtime initialization output.
|
|
554
568
|
*/
|
|
555
569
|
readonly STARTUP_GRACE_PERIOD_MS: 0;
|
|
570
|
+
/**
|
|
571
|
+
* Grace period for API activity before confirming a runtime exit (ms).
|
|
572
|
+
* If the agent made an API call within this window, the exit detection
|
|
573
|
+
* is treated as a false positive and skipped. This prevents false
|
|
574
|
+
* restarts when agents are actively calling skills/APIs but happen to
|
|
575
|
+
* produce PTY output that matches exit patterns.
|
|
576
|
+
*/
|
|
577
|
+
readonly API_ACTIVITY_GRACE_PERIOD_MS: 120000;
|
|
556
578
|
};
|
|
557
579
|
/**
|
|
558
580
|
* Constants for sub-agent message queue.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"constants.d.ts","sourceRoot":"","sources":["../../../../backend/src/constants.ts"],"names":[],"mappings":"AAAA;;;GAGG;
|
|
1
|
+
{"version":3,"file":"constants.d.ts","sourceRoot":"","sources":["../../../../backend/src/constants.ts"],"names":[],"mappings":"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"}
|
|
@@ -3,7 +3,7 @@
|
|
|
3
3
|
* Re-exported from the main config constants for backend use
|
|
4
4
|
*/
|
|
5
5
|
// Import from config directory for cross-domain constants
|
|
6
|
-
import { CREWLY_CONSTANTS as CONFIG_CREWLY_CONSTANTS, AGENT_IDENTITY_CONSTANTS as CONFIG_AGENT_IDENTITY_CONSTANTS, TIMING_CONSTANTS as CONFIG_TIMING_CONSTANTS, MEMORY_CONSTANTS as CONFIG_MEMORY_CONSTANTS, CONTINUATION_CONSTANTS as CONFIG_CONTINUATION_CONSTANTS, ORCHESTRATOR_RESTART_CONSTANTS as CONFIG_ORCHESTRATOR_RESTART_CONSTANTS, AGENT_SUSPEND_CONSTANTS as CONFIG_AGENT_SUSPEND_CONSTANTS, VERSION_CHECK_CONSTANTS as CONFIG_VERSION_CHECK_CONSTANTS } from '../../config/constants.js';
|
|
6
|
+
import { CREWLY_CONSTANTS as CONFIG_CREWLY_CONSTANTS, AGENT_IDENTITY_CONSTANTS as CONFIG_AGENT_IDENTITY_CONSTANTS, TIMING_CONSTANTS as CONFIG_TIMING_CONSTANTS, MEMORY_CONSTANTS as CONFIG_MEMORY_CONSTANTS, CONTINUATION_CONSTANTS as CONFIG_CONTINUATION_CONSTANTS, ORCHESTRATOR_RESTART_CONSTANTS as CONFIG_ORCHESTRATOR_RESTART_CONSTANTS, AGENT_SUSPEND_CONSTANTS as CONFIG_AGENT_SUSPEND_CONSTANTS, VERSION_CHECK_CONSTANTS as CONFIG_VERSION_CHECK_CONSTANTS, AGENT_HEARTBEAT_MONITOR_CONSTANTS as CONFIG_AGENT_HEARTBEAT_MONITOR_CONSTANTS, ORCHESTRATOR_HEARTBEAT_CONSTANTS as CONFIG_ORCHESTRATOR_HEARTBEAT_CONSTANTS } from '../../config/constants.js';
|
|
7
7
|
// Re-export the cross-domain constants for backend use
|
|
8
8
|
export const AGENT_IDENTITY_CONSTANTS = CONFIG_AGENT_IDENTITY_CONSTANTS;
|
|
9
9
|
export const TIMING_CONSTANTS = CONFIG_TIMING_CONSTANTS;
|
|
@@ -12,6 +12,8 @@ export const CONTINUATION_CONSTANTS = CONFIG_CONTINUATION_CONSTANTS;
|
|
|
12
12
|
export const ORCHESTRATOR_RESTART_CONSTANTS = CONFIG_ORCHESTRATOR_RESTART_CONSTANTS;
|
|
13
13
|
export const AGENT_SUSPEND_CONSTANTS = CONFIG_AGENT_SUSPEND_CONSTANTS;
|
|
14
14
|
export const VERSION_CHECK_CONSTANTS = CONFIG_VERSION_CHECK_CONSTANTS;
|
|
15
|
+
export const AGENT_HEARTBEAT_MONITOR_CONSTANTS = CONFIG_AGENT_HEARTBEAT_MONITOR_CONSTANTS;
|
|
16
|
+
export const ORCHESTRATOR_HEARTBEAT_CONSTANTS = CONFIG_ORCHESTRATOR_HEARTBEAT_CONSTANTS;
|
|
15
17
|
// Re-export specific constants that the backend needs from the main config
|
|
16
18
|
export const ORCHESTRATOR_SESSION_NAME = 'crewly-orc';
|
|
17
19
|
export const ORCHESTRATOR_ROLE = 'orchestrator';
|
|
@@ -28,8 +30,8 @@ export const CREWLY_CONSTANTS = {
|
|
|
28
30
|
};
|
|
29
31
|
// Environment variable names (duplicated from config/constants.ts for backend use)
|
|
30
32
|
export const ENV_CONSTANTS = {
|
|
31
|
-
/**
|
|
32
|
-
|
|
33
|
+
/** PTY session name used for agent identity and heartbeat tracking */
|
|
34
|
+
CREWLY_SESSION_NAME: 'CREWLY_SESSION_NAME',
|
|
33
35
|
CREWLY_ROLE: 'CREWLY_ROLE',
|
|
34
36
|
/** Base URL for the Crewly backend API (used by orchestrator bash skills) */
|
|
35
37
|
CREWLY_API_URL: 'CREWLY_API_URL',
|
|
@@ -367,6 +369,14 @@ export const RUNTIME_EXIT_CONSTANTS = {
|
|
|
367
369
|
* normal runtime initialization output.
|
|
368
370
|
*/
|
|
369
371
|
STARTUP_GRACE_PERIOD_MS: 0,
|
|
372
|
+
/**
|
|
373
|
+
* Grace period for API activity before confirming a runtime exit (ms).
|
|
374
|
+
* If the agent made an API call within this window, the exit detection
|
|
375
|
+
* is treated as a false positive and skipped. This prevents false
|
|
376
|
+
* restarts when agents are actively calling skills/APIs but happen to
|
|
377
|
+
* produce PTY output that matches exit patterns.
|
|
378
|
+
*/
|
|
379
|
+
API_ACTIVITY_GRACE_PERIOD_MS: 120_000,
|
|
370
380
|
};
|
|
371
381
|
/**
|
|
372
382
|
* Constants for sub-agent message queue.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"constants.js","sourceRoot":"","sources":["../../../../backend/src/constants.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,0DAA0D;AAC1D,OAAO,EACL,gBAAgB,IAAI,uBAAuB,EAC3C,wBAAwB,IAAI,+BAA+B,EAC3D,gBAAgB,IAAI,uBAAuB,EAC3C,gBAAgB,IAAI,uBAAuB,EAC3C,sBAAsB,IAAI,6BAA6B,EACvD,8BAA8B,IAAI,qCAAqC,EACvE,uBAAuB,IAAI,8BAA8B,EACzD,uBAAuB,IAAI,8BAA8B,
|
|
1
|
+
{"version":3,"file":"constants.js","sourceRoot":"","sources":["../../../../backend/src/constants.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"session.controller.d.ts","sourceRoot":"","sources":["../../../../../../backend/src/controllers/session/session.controller.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAEH,OAAO,KAAK,EAAE,OAAO,EAAE,QAAQ,EAAE,MAAM,SAAS,CAAC;AAOjD;;;;;GAKG;AACH,wBAAsB,YAAY,CACjC,IAAI,EAAE,OAAO,EACb,GAAG,EAAE,OAAO,EACZ,GAAG,EAAE,QAAQ,GACX,OAAO,CAAC,IAAI,CAAC,CAyBf;AAED;;;;;;GAMG;AACH,wBAAsB,UAAU,CAC/B,IAAI,EAAE,OAAO,EACb,GAAG,EAAE,OAAO,EACZ,GAAG,EAAE,QAAQ,GACX,OAAO,CAAC,IAAI,CAAC,CAwBf;AAED;;;;;;GAMG;AACH,wBAAsB,aAAa,CAClC,IAAI,EAAE,OAAO,EACb,GAAG,EAAE,OAAO,EACZ,GAAG,EAAE,QAAQ,GACX,OAAO,CAAC,IAAI,CAAC,CAqCf;AAED;;;;;;;GAOG;AACH,wBAAsB,cAAc,CACnC,IAAI,EAAE,OAAO,EACb,GAAG,EAAE,OAAO,EACZ,GAAG,EAAE,QAAQ,GACX,OAAO,CAAC,IAAI,CAAC,
|
|
1
|
+
{"version":3,"file":"session.controller.d.ts","sourceRoot":"","sources":["../../../../../../backend/src/controllers/session/session.controller.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAEH,OAAO,KAAK,EAAE,OAAO,EAAE,QAAQ,EAAE,MAAM,SAAS,CAAC;AAOjD;;;;;GAKG;AACH,wBAAsB,YAAY,CACjC,IAAI,EAAE,OAAO,EACb,GAAG,EAAE,OAAO,EACZ,GAAG,EAAE,QAAQ,GACX,OAAO,CAAC,IAAI,CAAC,CAyBf;AAED;;;;;;GAMG;AACH,wBAAsB,UAAU,CAC/B,IAAI,EAAE,OAAO,EACb,GAAG,EAAE,OAAO,EACZ,GAAG,EAAE,QAAQ,GACX,OAAO,CAAC,IAAI,CAAC,CAwBf;AAED;;;;;;GAMG;AACH,wBAAsB,aAAa,CAClC,IAAI,EAAE,OAAO,EACb,GAAG,EAAE,OAAO,EACZ,GAAG,EAAE,QAAQ,GACX,OAAO,CAAC,IAAI,CAAC,CAqCf;AAED;;;;;;;GAOG;AACH,wBAAsB,cAAc,CACnC,IAAI,EAAE,OAAO,EACb,GAAG,EAAE,OAAO,EACZ,GAAG,EAAE,QAAQ,GACX,OAAO,CAAC,IAAI,CAAC,CAuCf;AAED;;;;;;;GAOG;AACH,wBAAsB,gBAAgB,CACrC,IAAI,EAAE,OAAO,EACb,GAAG,EAAE,OAAO,EACZ,GAAG,EAAE,QAAQ,GACX,OAAO,CAAC,IAAI,CAAC,CAqBf;AAED;;;;;;GAMG;AACH,wBAAsB,WAAW,CAChC,IAAI,EAAE,OAAO,EACb,GAAG,EAAE,OAAO,EACZ,GAAG,EAAE,QAAQ,GACX,OAAO,CAAC,IAAI,CAAC,CAoBf;AAED;;;;;;;;GAQG;AACH,wBAAsB,mBAAmB,CACxC,IAAI,EAAE,OAAO,EACb,GAAG,EAAE,OAAO,EACZ,GAAG,EAAE,QAAQ,GACX,OAAO,CAAC,IAAI,CAAC,CAqCf;AAED;;;;;;;;GAQG;AACH,wBAAsB,uBAAuB,CAC5C,IAAI,EAAE,OAAO,EACb,GAAG,EAAE,OAAO,EACZ,GAAG,EAAE,QAAQ,GACX,OAAO,CAAC,IAAI,CAAC,CAgBf"}
|
|
@@ -7,7 +7,7 @@
|
|
|
7
7
|
*
|
|
8
8
|
* @module session.controller
|
|
9
9
|
*/
|
|
10
|
-
import { getSessionBackendSync, getSessionBackend, getSessionStatePersistence } from '../../services/session/index.js';
|
|
10
|
+
import { getSessionBackendSync, getSessionBackend, getSessionStatePersistence, createSessionCommandHelper } from '../../services/session/index.js';
|
|
11
11
|
import { LoggerService } from '../../services/core/logger.service.js';
|
|
12
12
|
import { RUNTIME_TYPES } from '../../constants.js';
|
|
13
13
|
const logger = LoggerService.getInstance().createComponentLogger('SessionController');
|
|
@@ -125,7 +125,7 @@ export async function createSession(req, res) {
|
|
|
125
125
|
export async function writeToSession(req, res) {
|
|
126
126
|
try {
|
|
127
127
|
const { name } = req.params;
|
|
128
|
-
const { data } = req.body;
|
|
128
|
+
const { data, mode } = req.body;
|
|
129
129
|
if (!data) {
|
|
130
130
|
res.status(400).json({ error: 'Data is required' });
|
|
131
131
|
return;
|
|
@@ -135,13 +135,22 @@ export async function writeToSession(req, res) {
|
|
|
135
135
|
res.status(404).json({ error: `Session '${name}' not found` });
|
|
136
136
|
return;
|
|
137
137
|
}
|
|
138
|
-
|
|
139
|
-
|
|
140
|
-
|
|
141
|
-
|
|
138
|
+
if (mode === 'message') {
|
|
139
|
+
// Use SessionCommandHelper.sendMessage() which writes text then sends Enter key
|
|
140
|
+
const helper = createSessionCommandHelper(backend);
|
|
141
|
+
await helper.sendMessage(name, data);
|
|
142
|
+
res.json({ success: true, message: `Message sent to session '${name}'` });
|
|
142
143
|
}
|
|
143
144
|
else {
|
|
144
|
-
|
|
145
|
+
// Raw write preserved for control sequences and backwards compatibility
|
|
146
|
+
const session = backend.getSession(name);
|
|
147
|
+
if (session) {
|
|
148
|
+
session.write(data);
|
|
149
|
+
res.json({ success: true, message: `Data written to session '${name}'` });
|
|
150
|
+
}
|
|
151
|
+
else {
|
|
152
|
+
res.status(404).json({ error: `Session '${name}' not found` });
|
|
153
|
+
}
|
|
145
154
|
}
|
|
146
155
|
}
|
|
147
156
|
catch (error) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"session.controller.js","sourceRoot":"","sources":["../../../../../../backend/src/controllers/session/session.controller.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAGH,OAAO,EAAE,qBAAqB,EAAE,iBAAiB,EAAE,0BAA0B,EAAE,MAAM,iCAAiC,CAAC;
|
|
1
|
+
{"version":3,"file":"session.controller.js","sourceRoot":"","sources":["../../../../../../backend/src/controllers/session/session.controller.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"team.controller.d.ts","sourceRoot":"","sources":["../../../../../../backend/src/controllers/team/team.controller.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,QAAQ,EAAE,MAAM,SAAS,CAAC;AAC5C,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;
|
|
1
|
+
{"version":3,"file":"team.controller.d.ts","sourceRoot":"","sources":["../../../../../../backend/src/controllers/team/team.controller.ts"],"names":[],"mappings":"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"}
|
|
@@ -4,6 +4,7 @@ import { CREWLY_CONSTANTS } from '../../constants.js';
|
|
|
4
4
|
import { updateAgentHeartbeat } from '../../services/agent/agent-heartbeat.service.js';
|
|
5
5
|
import { getSessionBackendSync, getSessionStatePersistence } from '../../services/session/index.js';
|
|
6
6
|
import { getTerminalGateway } from '../../websocket/terminal.gateway.js';
|
|
7
|
+
import { ActivityMonitorService } from '../../services/monitoring/activity-monitor.service.js';
|
|
7
8
|
import { MemoryService } from '../../services/memory/memory.service.js';
|
|
8
9
|
import { SubAgentMessageQueue } from '../../services/messaging/sub-agent-message-queue.service.js';
|
|
9
10
|
import { SUB_AGENT_QUEUE_CONSTANTS } from '../../constants.js';
|
|
@@ -477,15 +478,27 @@ export async function getTeams(req, res) {
|
|
|
477
478
|
const orchestratorSessionExists = backend?.sessionExists(CREWLY_CONSTANTS.SESSIONS.ORCHESTRATOR_NAME) || false;
|
|
478
479
|
const actualOrchestratorStatus = resolveAgentStatus(orchestratorStatus?.agentStatus, orchestratorSessionExists);
|
|
479
480
|
const orchestratorTeam = buildOrchestratorTeam(actualOrchestratorStatus, orchestratorStatus);
|
|
481
|
+
// Load working status data from ActivityMonitorService
|
|
482
|
+
let workingStatusData;
|
|
483
|
+
try {
|
|
484
|
+
const activityMonitor = ActivityMonitorService.getInstance();
|
|
485
|
+
workingStatusData = await activityMonitor.getTeamWorkingStatus();
|
|
486
|
+
}
|
|
487
|
+
catch {
|
|
488
|
+
// Non-fatal: fall back to teams.json workingStatus values
|
|
489
|
+
workingStatusData = null;
|
|
490
|
+
}
|
|
480
491
|
// Also update status for team members based on actual session existence
|
|
481
492
|
const teamsWithActualStatus = teams.map(team => ({
|
|
482
493
|
...team,
|
|
483
494
|
members: team.members.map(member => {
|
|
484
495
|
const memberSessionExists = backend?.sessionExists(member.sessionName) || false;
|
|
485
496
|
const resolvedStatus = resolveAgentStatus(member.agentStatus, memberSessionExists);
|
|
497
|
+
const resolvedWorkingStatus = workingStatusData?.teamMembers[member.sessionName]?.workingStatus || member.workingStatus || 'idle';
|
|
486
498
|
return {
|
|
487
499
|
...member,
|
|
488
500
|
agentStatus: resolvedStatus,
|
|
501
|
+
workingStatus: resolvedWorkingStatus,
|
|
489
502
|
};
|
|
490
503
|
})
|
|
491
504
|
}));
|
|
@@ -526,6 +539,15 @@ export async function getTeam(req, res) {
|
|
|
526
539
|
res.status(404).json({ success: false, error: 'Team not found' });
|
|
527
540
|
return;
|
|
528
541
|
}
|
|
542
|
+
// Load working status data from ActivityMonitorService
|
|
543
|
+
let workingStatusData;
|
|
544
|
+
try {
|
|
545
|
+
const activityMonitor = ActivityMonitorService.getInstance();
|
|
546
|
+
workingStatusData = await activityMonitor.getTeamWorkingStatus();
|
|
547
|
+
}
|
|
548
|
+
catch {
|
|
549
|
+
workingStatusData = null;
|
|
550
|
+
}
|
|
529
551
|
// Verify actual session existence for each member to avoid stale status
|
|
530
552
|
const backend = getSessionBackendSync();
|
|
531
553
|
if (backend) {
|
|
@@ -538,6 +560,11 @@ export async function getTeam(req, res) {
|
|
|
538
560
|
member.sessionName = '';
|
|
539
561
|
}
|
|
540
562
|
}
|
|
563
|
+
// Merge working status from ActivityMonitorService
|
|
564
|
+
const liveWorkingStatus = workingStatusData?.teamMembers[member.sessionName]?.workingStatus;
|
|
565
|
+
if (liveWorkingStatus) {
|
|
566
|
+
member.workingStatus = liveWorkingStatus;
|
|
567
|
+
}
|
|
541
568
|
}
|
|
542
569
|
}
|
|
543
570
|
res.json({ success: true, data: team });
|