crewly 1.11.2 → 1.11.4
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/agent/core/accept-task/SKILL.md +35 -7
- package/config/skills/agent/core/poll-tasks/execute.sh +44 -9
- package/config/skills/agent/core/poll-tasks/execute.test.sh +98 -0
- package/config/skills/agent/core/record-learning/execute.sh +92 -3
- package/config/skills/agent/core/register-self/SKILL.md +51 -8
- package/config/skills/agent/transcribe-audio/SKILL.md +110 -0
- package/config/skills/agent/transcribe-audio/execute.sh +223 -0
- package/config/skills/agent/transcribe-audio/instructions.md +92 -0
- package/config/skills/agent/transcribe-audio/skill.json +22 -0
- package/config/skills/orchestrator/assign-task/SKILL.md +40 -6
- package/config/skills/orchestrator/broadcast/SKILL.md +45 -8
- package/dist/backend/backend/src/constants.d.ts +0 -16
- package/dist/backend/backend/src/constants.d.ts.map +1 -1
- package/dist/backend/backend/src/constants.js +0 -16
- package/dist/backend/backend/src/constants.js.map +1 -1
- package/dist/backend/backend/src/controllers/memory/memory.controller.d.ts.map +1 -1
- package/dist/backend/backend/src/controllers/memory/memory.controller.js +3 -10
- package/dist/backend/backend/src/controllers/memory/memory.controller.js.map +1 -1
- package/dist/backend/backend/src/controllers/system/system.controller.d.ts.map +1 -1
- package/dist/backend/backend/src/controllers/system/system.controller.js +24 -5
- package/dist/backend/backend/src/controllers/system/system.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 +57 -2
- package/dist/backend/backend/src/controllers/team/team.controller.js.map +1 -1
- package/dist/backend/backend/src/index.d.ts +2 -0
- package/dist/backend/backend/src/index.d.ts.map +1 -1
- package/dist/backend/backend/src/index.js +124 -1
- package/dist/backend/backend/src/index.js.map +1 -1
- package/dist/backend/backend/src/routes/api.routes.d.ts.map +1 -1
- package/dist/backend/backend/src/routes/api.routes.js +0 -3
- package/dist/backend/backend/src/routes/api.routes.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 +56 -20
- package/dist/backend/backend/src/services/agent/agent-registration.service.js.map +1 -1
- package/dist/backend/backend/src/services/ai/prompt-modules/index.d.ts +1 -0
- package/dist/backend/backend/src/services/ai/prompt-modules/index.d.ts.map +1 -1
- package/dist/backend/backend/src/services/ai/prompt-modules/index.js +1 -0
- package/dist/backend/backend/src/services/ai/prompt-modules/index.js.map +1 -1
- package/dist/backend/backend/src/services/ai/prompt-modules/prompt-assembly.service.d.ts.map +1 -1
- package/dist/backend/backend/src/services/ai/prompt-modules/prompt-assembly.service.js +2 -0
- package/dist/backend/backend/src/services/ai/prompt-modules/prompt-assembly.service.js.map +1 -1
- package/dist/backend/backend/src/services/ai/prompt-modules/sop-norm-distinction.module.d.ts +79 -0
- package/dist/backend/backend/src/services/ai/prompt-modules/sop-norm-distinction.module.d.ts.map +1 -0
- package/dist/backend/backend/src/services/ai/prompt-modules/sop-norm-distinction.module.js +118 -0
- package/dist/backend/backend/src/services/ai/prompt-modules/sop-norm-distinction.module.js.map +1 -0
- package/dist/backend/backend/src/services/boot/boot-announce.service.d.ts +88 -0
- package/dist/backend/backend/src/services/boot/boot-announce.service.d.ts.map +1 -0
- package/dist/backend/backend/src/services/boot/boot-announce.service.js +119 -0
- package/dist/backend/backend/src/services/boot/boot-announce.service.js.map +1 -0
- package/dist/backend/backend/src/services/event-bus/event-to-workitem-bridge.service.d.ts.map +1 -1
- package/dist/backend/backend/src/services/event-bus/event-to-workitem-bridge.service.js +14 -0
- package/dist/backend/backend/src/services/event-bus/event-to-workitem-bridge.service.js.map +1 -1
- package/dist/backend/backend/src/services/mcp-server.d.ts.map +1 -1
- package/dist/backend/backend/src/services/mcp-server.js +0 -6
- package/dist/backend/backend/src/services/mcp-server.js.map +1 -1
- package/dist/backend/backend/src/services/memory/learning-format.validator.d.ts +97 -0
- package/dist/backend/backend/src/services/memory/learning-format.validator.d.ts.map +1 -0
- package/dist/backend/backend/src/services/memory/learning-format.validator.js +209 -0
- package/dist/backend/backend/src/services/memory/learning-format.validator.js.map +1 -0
- package/dist/backend/backend/src/services/memory/memory.service.d.ts +78 -41
- package/dist/backend/backend/src/services/memory/memory.service.d.ts.map +1 -1
- package/dist/backend/backend/src/services/memory/memory.service.js +209 -127
- package/dist/backend/backend/src/services/memory/memory.service.js.map +1 -1
- package/dist/backend/backend/src/services/memory/project-memory.service.d.ts.map +1 -1
- package/dist/backend/backend/src/services/memory/project-memory.service.js +37 -9
- package/dist/backend/backend/src/services/memory/project-memory.service.js.map +1 -1
- package/dist/backend/backend/src/services/orchestrator/commitment-approval-guard.d.ts +46 -0
- package/dist/backend/backend/src/services/orchestrator/commitment-approval-guard.d.ts.map +1 -1
- package/dist/backend/backend/src/services/orchestrator/commitment-approval-guard.js +51 -0
- package/dist/backend/backend/src/services/orchestrator/commitment-approval-guard.js.map +1 -1
- package/dist/backend/backend/src/services/orchestrator/orchestrator-heartbeat-monitor.service.d.ts.map +1 -1
- package/dist/backend/backend/src/services/orchestrator/orchestrator-heartbeat-monitor.service.js +29 -0
- package/dist/backend/backend/src/services/orchestrator/orchestrator-heartbeat-monitor.service.js.map +1 -1
- 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 +9 -0
- package/dist/backend/backend/src/services/session/pty/pty-session-backend.js.map +1 -1
- package/dist/backend/backend/src/services/session/runtime-pid-registry.service.d.ts +86 -0
- package/dist/backend/backend/src/services/session/runtime-pid-registry.service.d.ts.map +1 -0
- package/dist/backend/backend/src/services/session/runtime-pid-registry.service.js +214 -0
- package/dist/backend/backend/src/services/session/runtime-pid-registry.service.js.map +1 -0
- package/dist/backend/backend/src/services/sop/sop.service.d.ts +70 -2
- package/dist/backend/backend/src/services/sop/sop.service.d.ts.map +1 -1
- package/dist/backend/backend/src/services/sop/sop.service.js +93 -3
- package/dist/backend/backend/src/services/sop/sop.service.js.map +1 -1
- package/dist/backend/backend/src/services/task-pool/claim.service.d.ts +41 -0
- package/dist/backend/backend/src/services/task-pool/claim.service.d.ts.map +1 -1
- package/dist/backend/backend/src/services/task-pool/claim.service.js +72 -0
- package/dist/backend/backend/src/services/task-pool/claim.service.js.map +1 -1
- package/dist/backend/backend/src/services/task-pool/task-pool.service.d.ts +16 -0
- package/dist/backend/backend/src/services/task-pool/task-pool.service.d.ts.map +1 -1
- package/dist/backend/backend/src/services/task-pool/task-pool.service.js +20 -0
- package/dist/backend/backend/src/services/task-pool/task-pool.service.js.map +1 -1
- package/dist/backend/backend/src/services/telegram/telegram-orchestrator-bridge.d.ts.map +1 -1
- package/dist/backend/backend/src/services/telegram/telegram-orchestrator-bridge.js +11 -0
- package/dist/backend/backend/src/services/telegram/telegram-orchestrator-bridge.js.map +1 -1
- package/dist/backend/backend/src/services/telegram/telegram.service.d.ts.map +1 -1
- package/dist/backend/backend/src/services/telegram/telegram.service.js +24 -2
- package/dist/backend/backend/src/services/telegram/telegram.service.js.map +1 -1
- package/dist/backend/backend/src/services/v3/mission-reminder.service.d.ts.map +1 -1
- package/dist/backend/backend/src/services/v3/mission-reminder.service.js +18 -18
- package/dist/backend/backend/src/services/v3/mission-reminder.service.js.map +1 -1
- package/dist/backend/backend/src/services/v3/request-sla.subscriber.d.ts +10 -0
- package/dist/backend/backend/src/services/v3/request-sla.subscriber.d.ts.map +1 -1
- package/dist/backend/backend/src/services/v3/request-sla.subscriber.js +20 -12
- package/dist/backend/backend/src/services/v3/request-sla.subscriber.js.map +1 -1
- package/dist/backend/backend/src/services/wiki/wiki-migrate.service.d.ts.map +1 -1
- package/dist/backend/backend/src/services/wiki/wiki-migrate.service.js +12 -3
- package/dist/backend/backend/src/services/wiki/wiki-migrate.service.js.map +1 -1
- package/dist/backend/backend/src/services/wiki/wiki-query.service.d.ts +15 -5
- package/dist/backend/backend/src/services/wiki/wiki-query.service.d.ts.map +1 -1
- package/dist/backend/backend/src/services/wiki/wiki-query.service.js +31 -50
- package/dist/backend/backend/src/services/wiki/wiki-query.service.js.map +1 -1
- package/dist/backend/backend/src/services/wiki/wiki-search.service.d.ts +16 -0
- package/dist/backend/backend/src/services/wiki/wiki-search.service.d.ts.map +1 -1
- package/dist/backend/backend/src/services/wiki/wiki-search.service.js +20 -0
- package/dist/backend/backend/src/services/wiki/wiki-search.service.js.map +1 -1
- package/dist/backend/backend/src/types/settings.types.d.ts +8 -0
- package/dist/backend/backend/src/types/settings.types.d.ts.map +1 -1
- package/dist/backend/backend/src/types/settings.types.js +2 -0
- package/dist/backend/backend/src/types/settings.types.js.map +1 -1
- package/dist/backend/backend/src/types/v2/work-item.types.d.ts +23 -0
- 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 +29 -0
- package/dist/backend/backend/src/types/v2/work-item.types.js.map +1 -1
- package/dist/cli/backend/src/constants.d.ts +0 -16
- package/dist/cli/backend/src/constants.d.ts.map +1 -1
- package/dist/cli/backend/src/constants.js +0 -16
- package/dist/cli/backend/src/constants.js.map +1 -1
- package/dist/cli/backend/src/services/mcp-server.d.ts.map +1 -1
- package/dist/cli/backend/src/services/mcp-server.js +0 -6
- package/dist/cli/backend/src/services/mcp-server.js.map +1 -1
- package/dist/cli/backend/src/services/memory/memory.service.d.ts +78 -41
- package/dist/cli/backend/src/services/memory/memory.service.d.ts.map +1 -1
- package/dist/cli/backend/src/services/memory/memory.service.js +209 -127
- package/dist/cli/backend/src/services/memory/memory.service.js.map +1 -1
- package/dist/cli/backend/src/services/memory/project-memory.service.d.ts.map +1 -1
- package/dist/cli/backend/src/services/memory/project-memory.service.js +37 -9
- package/dist/cli/backend/src/services/memory/project-memory.service.js.map +1 -1
- package/dist/cli/backend/src/services/task-pool/claim.service.d.ts +41 -0
- package/dist/cli/backend/src/services/task-pool/claim.service.d.ts.map +1 -1
- package/dist/cli/backend/src/services/task-pool/claim.service.js +72 -0
- package/dist/cli/backend/src/services/task-pool/claim.service.js.map +1 -1
- package/dist/cli/backend/src/services/task-pool/task-pool.service.d.ts +16 -0
- package/dist/cli/backend/src/services/task-pool/task-pool.service.d.ts.map +1 -1
- package/dist/cli/backend/src/services/task-pool/task-pool.service.js +20 -0
- package/dist/cli/backend/src/services/task-pool/task-pool.service.js.map +1 -1
- package/dist/cli/backend/src/services/wiki/schema-loader.service.d.ts +57 -0
- package/dist/cli/backend/src/services/wiki/schema-loader.service.d.ts.map +1 -0
- package/dist/cli/backend/src/services/wiki/schema-loader.service.js +183 -0
- package/dist/cli/backend/src/services/wiki/schema-loader.service.js.map +1 -0
- package/dist/cli/backend/src/services/wiki/wiki-ingest.service.d.ts +100 -0
- package/dist/cli/backend/src/services/wiki/wiki-ingest.service.d.ts.map +1 -0
- package/dist/cli/backend/src/services/wiki/wiki-ingest.service.js +212 -0
- package/dist/cli/backend/src/services/wiki/wiki-ingest.service.js.map +1 -0
- package/dist/cli/backend/src/services/wiki/wiki-overlay.resolver.d.ts +43 -0
- package/dist/cli/backend/src/services/wiki/wiki-overlay.resolver.d.ts.map +1 -0
- package/dist/cli/backend/src/services/wiki/wiki-overlay.resolver.js +67 -0
- package/dist/cli/backend/src/services/wiki/wiki-overlay.resolver.js.map +1 -0
- package/dist/cli/backend/src/services/wiki/wiki-search.service.d.ts +166 -0
- package/dist/cli/backend/src/services/wiki/wiki-search.service.d.ts.map +1 -0
- package/dist/cli/backend/src/services/wiki/wiki-search.service.js +379 -0
- package/dist/cli/backend/src/services/wiki/wiki-search.service.js.map +1 -0
- package/dist/cli/backend/src/services/wiki/wiki.types.d.ts +84 -0
- package/dist/cli/backend/src/services/wiki/wiki.types.d.ts.map +1 -0
- package/dist/cli/backend/src/services/wiki/wiki.types.js +10 -0
- package/dist/cli/backend/src/services/wiki/wiki.types.js.map +1 -0
- package/dist/cli/backend/src/types/settings.types.d.ts +8 -0
- package/dist/cli/backend/src/types/settings.types.d.ts.map +1 -1
- package/dist/cli/backend/src/types/settings.types.js +2 -0
- package/dist/cli/backend/src/types/settings.types.js.map +1 -1
- package/dist/cli/backend/src/types/v2/work-item.types.d.ts +23 -0
- 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 +29 -0
- package/dist/cli/backend/src/types/v2/work-item.types.js.map +1 -1
- package/frontend/dist/assets/{index-44266b5d.css → index-8205ea5e.css} +1 -1
- package/frontend/dist/assets/{index-4099a91c.js → index-890d3f9d.js} +289 -289
- package/frontend/dist/index.html +2 -2
- package/package.json +1 -1
|
@@ -0,0 +1,223 @@
|
|
|
1
|
+
#!/bin/bash
|
|
2
|
+
# transcribe-audio — General-purpose Whisper speech-to-text for a local file.
|
|
3
|
+
#
|
|
4
|
+
# Engines:
|
|
5
|
+
# local : whisper.cpp (large-v3-turbo) — free, offline, segment timestamps.
|
|
6
|
+
# openai : OpenAI Whisper API (whisper-1) — zero-install, pay-per-use.
|
|
7
|
+
# auto : prefer local if installed, else fall back to openai (default).
|
|
8
|
+
#
|
|
9
|
+
# Engine detection + key resolution lift the proven logic from Flopost
|
|
10
|
+
# (desktop/server/whisperModule.ts, service/lib/video/transcriptionService.ts).
|
|
11
|
+
#
|
|
12
|
+
# Usage:
|
|
13
|
+
# bash execute.sh '{"audioFile":"/path/to/recording.m4a"}'
|
|
14
|
+
# bash execute.sh '{"audioFile":"/x.mp3","outputFile":"./t.md","language":"zh"}'
|
|
15
|
+
# bash execute.sh '{"audioFile":"/x.wav","engine":"openai"}'
|
|
16
|
+
#
|
|
17
|
+
# Requires: ffmpeg, jq, curl. Local engine also needs whisper-cli + a model file.
|
|
18
|
+
|
|
19
|
+
set -euo pipefail
|
|
20
|
+
|
|
21
|
+
# ── Constants (no hardcoded magic spread through the body) ───────────────────────
|
|
22
|
+
MODEL_FILENAME="ggml-large-v3-turbo-q5_0.bin"
|
|
23
|
+
FLOPOST_WHISPER_DIR="${HOME}/.flopost/whisper"
|
|
24
|
+
WHISPER_CACHE_DIR="${HOME}/.cache/whisper-models"
|
|
25
|
+
OPENAI_TRANSCRIBE_URL="https://api.openai.com/v1/audio/transcriptions"
|
|
26
|
+
OPENAI_MODEL="whisper-1"
|
|
27
|
+
SETTINGS_URL="http://localhost:8787/api/settings"
|
|
28
|
+
|
|
29
|
+
err_json() { printf '{"success":false,"error":%s}\n' "$(printf '%s' "$1" | jq -Rsa .)"; exit 1; }
|
|
30
|
+
|
|
31
|
+
# ── Input parsing ───────────────────────────────────────────────────────────────
|
|
32
|
+
INPUT="${1:-}"
|
|
33
|
+
[ -z "$INPUT" ] && err_json "Usage: execute.sh '{\"audioFile\":\"/path/to/audio.m4a\"}'"
|
|
34
|
+
|
|
35
|
+
command -v jq >/dev/null 2>&1 || { echo '{"success":false,"error":"jq is required but not installed (brew install jq)"}'; exit 1; }
|
|
36
|
+
|
|
37
|
+
AUDIO_FILE=$(printf '%s' "$INPUT" | jq -r '.audioFile // empty')
|
|
38
|
+
OUTPUT_FILE=$(printf '%s' "$INPUT" | jq -r '.outputFile // empty')
|
|
39
|
+
LANGUAGE=$(printf '%s' "$INPUT" | jq -r '.language // "auto"')
|
|
40
|
+
ENGINE=$(printf '%s' "$INPUT" | jq -r '.engine // "auto"')
|
|
41
|
+
|
|
42
|
+
[ -z "$AUDIO_FILE" ] && err_json "audioFile is required (path to a local audio or video file)"
|
|
43
|
+
[ -f "$AUDIO_FILE" ] || err_json "audioFile not found: ${AUDIO_FILE}"
|
|
44
|
+
case "$ENGINE" in auto|local|openai) ;; *) err_json "engine must be one of: auto, local, openai (got: ${ENGINE})";; esac
|
|
45
|
+
|
|
46
|
+
command -v ffmpeg >/dev/null 2>&1 || err_json "ffmpeg is required but not installed (brew install ffmpeg)"
|
|
47
|
+
|
|
48
|
+
# ── Local whisper.cpp detection (lifted from whisperModule.ts) ───────────────────
|
|
49
|
+
resolve_whisper_binary() {
|
|
50
|
+
if [ -n "${FLOPOST_WHISPER_BIN:-}" ] && [ -x "${FLOPOST_WHISPER_BIN}" ]; then echo "${FLOPOST_WHISPER_BIN}"; return; fi
|
|
51
|
+
if [ -x "${FLOPOST_WHISPER_DIR}/whisper-cli" ]; then echo "${FLOPOST_WHISPER_DIR}/whisper-cli"; return; fi
|
|
52
|
+
if command -v whisper-cli >/dev/null 2>&1; then command -v whisper-cli; return; fi
|
|
53
|
+
for p in /opt/homebrew/bin/whisper-cli /usr/local/bin/whisper-cli; do
|
|
54
|
+
[ -x "$p" ] && { echo "$p"; return; }
|
|
55
|
+
done
|
|
56
|
+
echo ""
|
|
57
|
+
}
|
|
58
|
+
resolve_whisper_model() {
|
|
59
|
+
if [ -n "${FLOPOST_WHISPER_MODEL:-}" ] && [ -f "${FLOPOST_WHISPER_MODEL}" ]; then echo "${FLOPOST_WHISPER_MODEL}"; return; fi
|
|
60
|
+
if [ -f "${FLOPOST_WHISPER_DIR}/${MODEL_FILENAME}" ]; then echo "${FLOPOST_WHISPER_DIR}/${MODEL_FILENAME}"; return; fi
|
|
61
|
+
if [ -f "${WHISPER_CACHE_DIR}/${MODEL_FILENAME}" ]; then echo "${WHISPER_CACHE_DIR}/${MODEL_FILENAME}"; return; fi
|
|
62
|
+
echo ""
|
|
63
|
+
}
|
|
64
|
+
binary_hint() {
|
|
65
|
+
case "$(uname -s)" in
|
|
66
|
+
Darwin) echo "brew install whisper-cpp" ;;
|
|
67
|
+
*) echo "Build whisper.cpp from https://github.com/ggerganov/whisper.cpp and put whisper-cli on PATH" ;;
|
|
68
|
+
esac
|
|
69
|
+
}
|
|
70
|
+
|
|
71
|
+
WHISPER_BIN="$(resolve_whisper_binary)"
|
|
72
|
+
WHISPER_MODEL="$(resolve_whisper_model)"
|
|
73
|
+
LOCAL_AVAILABLE=false
|
|
74
|
+
[ -n "$WHISPER_BIN" ] && [ -n "$WHISPER_MODEL" ] && LOCAL_AVAILABLE=true
|
|
75
|
+
|
|
76
|
+
# ── OpenAI key resolution (env → Crewly settings; never hardcoded) ───────────────
|
|
77
|
+
resolve_openai_key() {
|
|
78
|
+
if [ -n "${OPENAI_API_KEY:-}" ]; then echo "${OPENAI_API_KEY}"; return; fi
|
|
79
|
+
curl -sf "${SETTINGS_URL}" 2>/dev/null | jq -r '.data.apiKeys.global.openai // empty' 2>/dev/null || true
|
|
80
|
+
}
|
|
81
|
+
|
|
82
|
+
# ── Choose engine ────────────────────────────────────────────────────────────────
|
|
83
|
+
CHOSEN=""
|
|
84
|
+
if [ "$ENGINE" = "local" ]; then
|
|
85
|
+
[ "$LOCAL_AVAILABLE" = true ] || err_json "engine=local requested but whisper.cpp is not installed. Binary: $( [ -n "$WHISPER_BIN" ] && echo found || echo "missing ($(binary_hint))" ); Model: $( [ -n "$WHISPER_MODEL" ] && echo found || echo "missing ${MODEL_FILENAME} (put it in ${FLOPOST_WHISPER_DIR}/ or set FLOPOST_WHISPER_MODEL)" )."
|
|
86
|
+
CHOSEN="local"
|
|
87
|
+
elif [ "$ENGINE" = "openai" ]; then
|
|
88
|
+
CHOSEN="openai"
|
|
89
|
+
else
|
|
90
|
+
if [ "$LOCAL_AVAILABLE" = true ]; then CHOSEN="local"; else CHOSEN="openai"; fi
|
|
91
|
+
fi
|
|
92
|
+
|
|
93
|
+
# ── Working dir with auto-cleanup ────────────────────────────────────────────────
|
|
94
|
+
WORK=$(mktemp -d /tmp/transcribe-audio-XXXXXX)
|
|
95
|
+
cleanup() { rm -rf "$WORK"; }
|
|
96
|
+
trap cleanup EXIT
|
|
97
|
+
|
|
98
|
+
# Normalize to 16kHz mono PCM WAV (what both engines want).
|
|
99
|
+
WAV="${WORK}/audio.wav"
|
|
100
|
+
echo '{"status":"extracting","message":"Normalizing audio to 16kHz mono WAV..."}' >&2
|
|
101
|
+
if ! ffmpeg -y -i "$AUDIO_FILE" -vn -ac 1 -ar 16000 -c:a pcm_s16le "$WAV" >/dev/null 2>"${WORK}/ffmpeg.err"; then
|
|
102
|
+
err_json "ffmpeg failed to extract audio: $(tail -c 400 "${WORK}/ffmpeg.err" 2>/dev/null)"
|
|
103
|
+
fi
|
|
104
|
+
|
|
105
|
+
# Duration (best-effort).
|
|
106
|
+
DURATION=$(ffprobe -v error -show_entries format=duration -of default=noprint_wrappers=1:nokey=1 "$WAV" 2>/dev/null || echo "null")
|
|
107
|
+
[ -z "$DURATION" ] && DURATION="null"
|
|
108
|
+
|
|
109
|
+
RESULT_FILE="${WORK}/result.json" # holds {language, segments:[{start,end,text,speaker}]}
|
|
110
|
+
# Engine functions write RESULT_FILE on success, return non-zero (with message in
|
|
111
|
+
# engine.err) on failure — never exit, so auto-mode can fall back cleanly.
|
|
112
|
+
fail() { printf '%s' "$1" > "${WORK}/engine.err"; return 1; }
|
|
113
|
+
|
|
114
|
+
# ── Engine: local whisper.cpp ────────────────────────────────────────────────────
|
|
115
|
+
run_local() {
|
|
116
|
+
echo "{\"status\":\"transcribing\",\"engine\":\"whisper.cpp\",\"message\":\"Running local whisper.cpp...\"}" >&2
|
|
117
|
+
local prefix="${WORK}/out"
|
|
118
|
+
local lang_arg="auto"; [ "$LANGUAGE" != "auto" ] && lang_arg="$LANGUAGE"
|
|
119
|
+
local threads; threads=$(( $(sysctl -n hw.ncpu 2>/dev/null || nproc 2>/dev/null || echo 4) - 2 )); [ "$threads" -lt 4 ] && threads=4
|
|
120
|
+
if ! "$WHISPER_BIN" -m "$WHISPER_MODEL" -f "$WAV" -l "$lang_arg" -oj -of "$prefix" -t "$threads" >/dev/null 2>"${WORK}/whisper.err"; then
|
|
121
|
+
fail "whisper-cli failed: $(tail -c 400 "${WORK}/whisper.err" 2>/dev/null)"; return 1
|
|
122
|
+
fi
|
|
123
|
+
[ -f "${prefix}.json" ] || { fail "whisper-cli produced no JSON output"; return 1; }
|
|
124
|
+
# whisper.cpp JSON: { result:{language}, transcription:[{offsets:{from,to(ms)}, text}] }
|
|
125
|
+
jq '{
|
|
126
|
+
language: (.result.language // "auto"),
|
|
127
|
+
segments: [ .transcription[]
|
|
128
|
+
| { start: ((.offsets.from // 0) / 1000),
|
|
129
|
+
end: ((.offsets.to // 0) / 1000),
|
|
130
|
+
text: (.text | gsub("^[[:space:]]+|[[:space:]]+$";"")),
|
|
131
|
+
speaker: "Unknown" }
|
|
132
|
+
| select(.text | test("^\\[.*\\]$") | not) # drop [BLANK_AUDIO] / [Music] tags
|
|
133
|
+
| select(.text | length > 0) ]
|
|
134
|
+
}' "${prefix}.json" > "$RESULT_FILE" || { fail "failed to parse whisper.cpp output"; return 1; }
|
|
135
|
+
return 0
|
|
136
|
+
}
|
|
137
|
+
|
|
138
|
+
# ── Engine: OpenAI Whisper API ───────────────────────────────────────────────────
|
|
139
|
+
run_openai() {
|
|
140
|
+
local key; key="$(resolve_openai_key)"
|
|
141
|
+
[ -z "$key" ] && { fail "OpenAI engine selected but no OpenAI API key found. Set OPENAI_API_KEY (Crewly secrets) or configure Settings > API Keys."; return 1; }
|
|
142
|
+
echo "{\"status\":\"transcribing\",\"engine\":\"openai-whisper-1\",\"message\":\"Uploading to OpenAI Whisper API...\"}" >&2
|
|
143
|
+
local resp="${WORK}/openai.json"
|
|
144
|
+
local lang_args=(); [ "$LANGUAGE" != "auto" ] && lang_args=(-F "language=${LANGUAGE}")
|
|
145
|
+
local http
|
|
146
|
+
http=$(curl -sS -w '%{http_code}' -o "$resp" \
|
|
147
|
+
-X POST "$OPENAI_TRANSCRIBE_URL" \
|
|
148
|
+
-H "Authorization: Bearer ${key}" \
|
|
149
|
+
-F "file=@${WAV};type=audio/wav" \
|
|
150
|
+
-F "model=${OPENAI_MODEL}" \
|
|
151
|
+
-F "response_format=verbose_json" \
|
|
152
|
+
-F "timestamp_granularities[]=segment" \
|
|
153
|
+
"${lang_args[@]}" 2>"${WORK}/curl.err" || echo "000")
|
|
154
|
+
if [ "$http" != "200" ]; then
|
|
155
|
+
local apierr; apierr=$(jq -r '.error.message // empty' "$resp" 2>/dev/null || true)
|
|
156
|
+
fail "OpenAI Whisper API error (HTTP ${http}): ${apierr:-$(tail -c 300 "$resp" 2>/dev/null)}"; return 1
|
|
157
|
+
fi
|
|
158
|
+
jq '{
|
|
159
|
+
language: (.language // "auto"),
|
|
160
|
+
segments: [ (.segments // [])[]
|
|
161
|
+
| { start: (.start // 0),
|
|
162
|
+
end: (.end // 0),
|
|
163
|
+
text: ((.text // "") | gsub("^[[:space:]]+|[[:space:]]+$";"")),
|
|
164
|
+
speaker: "Unknown" }
|
|
165
|
+
| select(.text | length > 0) ]
|
|
166
|
+
}' "$resp" > "$RESULT_FILE" || { fail "failed to parse OpenAI output"; return 1; }
|
|
167
|
+
return 0
|
|
168
|
+
}
|
|
169
|
+
|
|
170
|
+
# Run chosen engine; auto-mode falls back local→openai on local failure.
|
|
171
|
+
if [ "$CHOSEN" = "local" ]; then
|
|
172
|
+
if run_local; then
|
|
173
|
+
:
|
|
174
|
+
elif [ "$ENGINE" = "auto" ]; then
|
|
175
|
+
echo '{"status":"fallback","message":"Local engine failed; falling back to OpenAI..."}' >&2
|
|
176
|
+
CHOSEN="openai"
|
|
177
|
+
run_openai || err_json "$(cat "${WORK}/engine.err" 2>/dev/null)"
|
|
178
|
+
else
|
|
179
|
+
err_json "$(cat "${WORK}/engine.err" 2>/dev/null)"
|
|
180
|
+
fi
|
|
181
|
+
else
|
|
182
|
+
run_openai || err_json "$(cat "${WORK}/engine.err" 2>/dev/null)"
|
|
183
|
+
fi
|
|
184
|
+
|
|
185
|
+
[ -f "$RESULT_FILE" ] || err_json "Transcription produced no result"
|
|
186
|
+
RESULT_JSON=$(cat "$RESULT_FILE")
|
|
187
|
+
|
|
188
|
+
ENGINE_LABEL="whisper.cpp"; [ "$CHOSEN" = "openai" ] && ENGINE_LABEL="openai-whisper-1"
|
|
189
|
+
FULL_TEXT=$(printf '%s' "$RESULT_JSON" | jq -r '[.segments[].text] | join(" ")')
|
|
190
|
+
LANG_OUT=$(printf '%s' "$RESULT_JSON" | jq -r '.language')
|
|
191
|
+
SEG_COUNT=$(printf '%s' "$RESULT_JSON" | jq '.segments | length')
|
|
192
|
+
|
|
193
|
+
# ── Optional output file (Markdown or JSON by extension) ─────────────────────────
|
|
194
|
+
SAVED_PATH=""
|
|
195
|
+
if [ -n "$OUTPUT_FILE" ]; then
|
|
196
|
+
mkdir -p "$(dirname "$OUTPUT_FILE")" 2>/dev/null || true
|
|
197
|
+
case "$OUTPUT_FILE" in
|
|
198
|
+
*.json)
|
|
199
|
+
printf '%s' "$RESULT_JSON" | jq --arg engine "$ENGINE_LABEL" --argjson dur "$DURATION" \
|
|
200
|
+
'{engine:$engine, language:.language, durationSec:$dur, segments:.segments}' > "$OUTPUT_FILE"
|
|
201
|
+
;;
|
|
202
|
+
*)
|
|
203
|
+
{
|
|
204
|
+
printf '# Transcript\n\n'
|
|
205
|
+
printf -- '- **Engine:** %s\n- **Language:** %s\n- **Duration:** %ss\n\n' "$ENGINE_LABEL" "$LANG_OUT" "$DURATION"
|
|
206
|
+
printf '## Full Text\n\n%s\n\n## Segments\n\n' "$FULL_TEXT"
|
|
207
|
+
printf '%s' "$RESULT_JSON" | jq -r '.segments[] | "- [\(.start | (. * 100 | round / 100))s → \(.end | (. * 100 | round / 100))s] \(.text)"'
|
|
208
|
+
} > "$OUTPUT_FILE"
|
|
209
|
+
;;
|
|
210
|
+
esac
|
|
211
|
+
SAVED_PATH="$OUTPUT_FILE"
|
|
212
|
+
fi
|
|
213
|
+
|
|
214
|
+
# ── Final JSON to stdout ─────────────────────────────────────────────────────────
|
|
215
|
+
printf '%s' "$RESULT_JSON" | jq \
|
|
216
|
+
--arg engine "$ENGINE_LABEL" \
|
|
217
|
+
--arg text "$FULL_TEXT" \
|
|
218
|
+
--argjson dur "$DURATION" \
|
|
219
|
+
--argjson segCount "$SEG_COUNT" \
|
|
220
|
+
--arg saved "$SAVED_PATH" \
|
|
221
|
+
'{ success:true, engine:$engine, language:.language, durationSec:$dur,
|
|
222
|
+
text:$text, segments:.segments, segmentCount:$segCount }
|
|
223
|
+
+ (if $saved == "" then {} else {outputFile:$saved} end)'
|
|
@@ -0,0 +1,92 @@
|
|
|
1
|
+
# Transcribe Audio (Whisper)
|
|
2
|
+
|
|
3
|
+
Transcribe a **local audio or video file** into text with timestamps. This is the
|
|
4
|
+
general-purpose Whisper-based speech-to-text skill — distinct from
|
|
5
|
+
`xiaoyuzhoufm-transcript` (which is the Gemini-based podcast/video research skill;
|
|
6
|
+
this skill does **not** replace it).
|
|
7
|
+
|
|
8
|
+
## Engines
|
|
9
|
+
|
|
10
|
+
| Engine | When used | Cost | Network | Timestamps |
|
|
11
|
+
|--------|-----------|------|---------|------------|
|
|
12
|
+
| **whisper.cpp** (local, `large-v3-turbo`) | Default — used whenever the binary + model are present | Free | Offline | Segment + word-level |
|
|
13
|
+
| **OpenAI Whisper API** (`whisper-1`) | Fallback — used when local is unavailable, or forced via `engine:"openai"` | ~$0.006/min | Required | Segment + word-level |
|
|
14
|
+
|
|
15
|
+
**Default = `auto`:** prefer local whisper.cpp (free, private, offline, no per-use
|
|
16
|
+
cost — ideal for unattended agents), and transparently fall back to the OpenAI API
|
|
17
|
+
when the local engine is not installed. This gives zero-cost transcription where the
|
|
18
|
+
local model exists and zero-install reliability everywhere else. Force a specific
|
|
19
|
+
engine with `engine:"local"` or `engine:"openai"`.
|
|
20
|
+
|
|
21
|
+
## Usage
|
|
22
|
+
|
|
23
|
+
```bash
|
|
24
|
+
# Auto engine (local if available, else OpenAI). Prints JSON to stdout.
|
|
25
|
+
bash execute.sh '{"audioFile":"/path/to/recording.m4a"}'
|
|
26
|
+
|
|
27
|
+
# Save as Markdown (timestamped transcript)
|
|
28
|
+
bash execute.sh '{"audioFile":"/path/to/recording.mp3","outputFile":"./transcript.md"}'
|
|
29
|
+
|
|
30
|
+
# Save as JSON (full structured segments)
|
|
31
|
+
bash execute.sh '{"audioFile":"/path/to/recording.wav","outputFile":"./transcript.json"}'
|
|
32
|
+
|
|
33
|
+
# Language hint (ISO-639-1, e.g. en / zh / ja). Default: auto-detect
|
|
34
|
+
bash execute.sh '{"audioFile":"/path/to/recording.m4a","language":"zh"}'
|
|
35
|
+
|
|
36
|
+
# Force a specific engine
|
|
37
|
+
bash execute.sh '{"audioFile":"/path/to/x.wav","engine":"local"}'
|
|
38
|
+
bash execute.sh '{"audioFile":"/path/to/x.wav","engine":"openai"}'
|
|
39
|
+
|
|
40
|
+
# A video file works too — the audio track is extracted automatically
|
|
41
|
+
bash execute.sh '{"audioFile":"/path/to/clip.mp4"}'
|
|
42
|
+
```
|
|
43
|
+
|
|
44
|
+
## Parameters
|
|
45
|
+
|
|
46
|
+
| Parameter | Required | Description |
|
|
47
|
+
|-----------|----------|-------------|
|
|
48
|
+
| `audioFile` | Yes | Path to a local audio or video file (m4a, mp3, wav, aac, ogg, flac, mp4, mov…) |
|
|
49
|
+
| `outputFile` | No | Save the transcript to this path. `.json` → structured JSON; anything else → Markdown |
|
|
50
|
+
| `language` | No | Language hint (ISO-639-1). Default: auto-detect |
|
|
51
|
+
| `engine` | No | `auto` (default), `local`, or `openai` |
|
|
52
|
+
|
|
53
|
+
## Output (stdout JSON)
|
|
54
|
+
|
|
55
|
+
```json
|
|
56
|
+
{
|
|
57
|
+
"success": true,
|
|
58
|
+
"engine": "whisper.cpp",
|
|
59
|
+
"language": "en",
|
|
60
|
+
"durationSec": 11.0,
|
|
61
|
+
"text": "Full transcript as one block of text...",
|
|
62
|
+
"segments": [
|
|
63
|
+
{ "start": 0.0, "end": 2.5, "text": "Hello everyone", "speaker": "Unknown" }
|
|
64
|
+
],
|
|
65
|
+
"segmentCount": 1,
|
|
66
|
+
"outputFile": "/abs/path/transcript.md"
|
|
67
|
+
}
|
|
68
|
+
```
|
|
69
|
+
|
|
70
|
+
`speaker` is `"Unknown"` unless the chosen engine returns diarization (neither
|
|
71
|
+
default engine performs speaker separation today; the field is reserved so
|
|
72
|
+
downstream consumers have a stable shape).
|
|
73
|
+
|
|
74
|
+
## Dependencies & Setup
|
|
75
|
+
|
|
76
|
+
- **`ffmpeg`** — required for both engines (audio is normalized to 16 kHz mono WAV).
|
|
77
|
+
Install: `brew install ffmpeg`.
|
|
78
|
+
- **Local engine (`whisper.cpp`)** — needs the `whisper-cli` binary and a model file:
|
|
79
|
+
- Binary: `brew install whisper-cpp` (provides `whisper-cli`). Override with `FLOPOST_WHISPER_BIN`.
|
|
80
|
+
- Model: `ggml-large-v3-turbo-q5_0.bin` in `~/.flopost/whisper/` or `~/.cache/whisper-models/`. Override with `FLOPOST_WHISPER_MODEL`.
|
|
81
|
+
- If the binary or model is missing, the skill falls back to OpenAI (or reports a clear hint when `engine:"local"` is forced).
|
|
82
|
+
- **OpenAI engine** — needs an OpenAI API key. Resolution order:
|
|
83
|
+
1. `OPENAI_API_KEY` environment variable (injected by Crewly secrets).
|
|
84
|
+
2. Crewly Settings → API Keys (`GET http://localhost:8787/api/settings` → `data.apiKeys.global.openai`).
|
|
85
|
+
No key is ever hard-coded.
|
|
86
|
+
|
|
87
|
+
## Notes
|
|
88
|
+
|
|
89
|
+
- Engine detection and key resolution lift the proven logic from Flopost
|
|
90
|
+
(`desktop/server/whisperModule.ts` and `service/lib/video/transcriptionService.ts`).
|
|
91
|
+
- Long files: whisper.cpp handles arbitrary length locally. The OpenAI API enforces a
|
|
92
|
+
25 MB upload limit; for larger files prefer the local engine.
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
{
|
|
2
|
+
"id": "transcribe-audio",
|
|
3
|
+
"name": "transcribe-audio",
|
|
4
|
+
"displayName": "Transcribe Audio (Whisper)",
|
|
5
|
+
"description": "Transcribe a local audio (or video) file to text with timestamps using Whisper. Defaults to local whisper.cpp (free/offline/word-level timestamps) and falls back to the OpenAI Whisper API (whisper-1) when the local engine is unavailable.",
|
|
6
|
+
"category": "content",
|
|
7
|
+
"assignableRoles": ["*"],
|
|
8
|
+
"version": "1.0.0",
|
|
9
|
+
"author": "Crewly Team",
|
|
10
|
+
"tags": [
|
|
11
|
+
"audio",
|
|
12
|
+
"transcribe",
|
|
13
|
+
"transcription",
|
|
14
|
+
"whisper",
|
|
15
|
+
"whisper.cpp",
|
|
16
|
+
"openai",
|
|
17
|
+
"speech-to-text",
|
|
18
|
+
"timestamps"
|
|
19
|
+
],
|
|
20
|
+
"requires": [],
|
|
21
|
+
"optionalSecrets": ["OPENAI_API_KEY"]
|
|
22
|
+
}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
---
|
|
2
2
|
name: Assign Task
|
|
3
|
-
description: Assign a task to
|
|
3
|
+
description: "Assign a task to a specific agent via the task management system. Use when the orchestrator needs to target a particular agent with a known task ID. For agents self-assigning the next available task, use accept-task instead."
|
|
4
4
|
version: 1.0.0
|
|
5
5
|
category: management
|
|
6
6
|
skillType: claude-skill
|
|
@@ -24,18 +24,52 @@ execution:
|
|
|
24
24
|
|
|
25
25
|
# Assign Task
|
|
26
26
|
|
|
27
|
-
Assign a task to
|
|
27
|
+
Assign a task to a specific agent via the task management system. The skill forwards the full JSON payload to the `POST /api/task-management/assign` endpoint, which records the assignment and notifies the target agent.
|
|
28
28
|
|
|
29
|
-
##
|
|
29
|
+
## When to Use
|
|
30
|
+
|
|
31
|
+
Run this skill when the orchestrator needs to assign a specific task to a known agent session. This is the formal task-tracking approach that goes through the management system's kanban board. For sending free-form work directly to an agent's terminal, use `delegate-task` instead.
|
|
32
|
+
|
|
33
|
+
## Parameters
|
|
34
|
+
|
|
35
|
+
The skill passes the full JSON input to the assignment endpoint. Common fields:
|
|
36
|
+
|
|
37
|
+
| Parameter | Required | Description |
|
|
38
|
+
|-----------|----------|-------------|
|
|
39
|
+
| `taskId` | Yes | The ID of the task to assign |
|
|
40
|
+
| `assignee` | Yes | Target agent session name (e.g., `agent-joe`) |
|
|
41
|
+
| `reason` | No | Why the task is being assigned (recorded with the assignment) |
|
|
42
|
+
|
|
43
|
+
## Examples
|
|
44
|
+
|
|
45
|
+
### Assign a task to a specific agent
|
|
30
46
|
|
|
31
47
|
```bash
|
|
32
48
|
bash config/skills/orchestrator/assign-task/execute.sh '{"taskId":"task-123","assignee":"agent-joe"}'
|
|
33
49
|
```
|
|
34
50
|
|
|
35
|
-
|
|
51
|
+
### Assign with a reason for the assignment
|
|
36
52
|
|
|
37
|
-
|
|
53
|
+
```bash
|
|
54
|
+
bash config/skills/orchestrator/assign-task/execute.sh '{"taskId":"task-456","assignee":"agent-sam","reason":"owns the auth module"}'
|
|
55
|
+
```
|
|
38
56
|
|
|
39
57
|
## Output
|
|
40
58
|
|
|
41
|
-
JSON confirmation of task assignment.
|
|
59
|
+
JSON confirmation of the task assignment from the backend, including the updated task status and assignee details.
|
|
60
|
+
|
|
61
|
+
## Error Handling
|
|
62
|
+
|
|
63
|
+
| Error | Cause | Solution |
|
|
64
|
+
|-------|-------|----------|
|
|
65
|
+
| Input is empty | No JSON provided | Pass a JSON object with `taskId` and `assignee` |
|
|
66
|
+
| `curl failed with exit code N` | Backend not running or endpoint unreachable | Start the Crewly backend |
|
|
67
|
+
| HTTP 404 | Task ID does not exist | Verify the task ID with `get-tasks` |
|
|
68
|
+
| HTTP 400 | Invalid payload or agent not found | Check that the assignee session is registered |
|
|
69
|
+
|
|
70
|
+
## Related Skills
|
|
71
|
+
|
|
72
|
+
- `delegate-task` — send a task directly to an agent's terminal with monitoring
|
|
73
|
+
- `get-tasks` — list current tasks and their statuses
|
|
74
|
+
- `accept-task` — agent self-assigns the next available task from the queue
|
|
75
|
+
- `complete-task` — mark an assigned task as done
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
---
|
|
2
2
|
name: Broadcast
|
|
3
|
-
description: Send a message to all active agent sessions.
|
|
3
|
+
description: "Send a message to all active agent sessions, excluding the orchestrator. Use when the orchestrator needs to announce information or coordinate the entire team at once. For messaging a single agent, use send-message instead."
|
|
4
4
|
version: 1.0.0
|
|
5
5
|
category: communication
|
|
6
6
|
skillType: claude-skill
|
|
@@ -24,20 +24,57 @@ execution:
|
|
|
24
24
|
|
|
25
25
|
# Broadcast
|
|
26
26
|
|
|
27
|
-
|
|
27
|
+
Send a message to all active agent sessions. The skill queries active sessions from the backend, skips the orchestrator's own session (`crewly-orc`), and delivers the message to each remaining agent individually.
|
|
28
28
|
|
|
29
|
-
##
|
|
29
|
+
## When to Use
|
|
30
30
|
|
|
31
|
-
|
|
32
|
-
bash config/skills/orchestrator/broadcast/execute.sh '{"message":"Team standup in 5 minutes"}'
|
|
33
|
-
```
|
|
31
|
+
Run this skill when the orchestrator needs to announce information, coordinate timing, or send instructions to the entire team at once. Each agent receives the message in their terminal session via the delivery endpoint.
|
|
34
32
|
|
|
35
33
|
## Parameters
|
|
36
34
|
|
|
37
35
|
| Parameter | Required | Description |
|
|
38
36
|
|-----------|----------|-------------|
|
|
39
|
-
| `message` | Yes | The message to broadcast |
|
|
37
|
+
| `message` | Yes | The message text to broadcast to all agents |
|
|
38
|
+
|
|
39
|
+
## Examples
|
|
40
|
+
|
|
41
|
+
### Announce a team standup
|
|
42
|
+
|
|
43
|
+
```bash
|
|
44
|
+
bash config/skills/orchestrator/broadcast/execute.sh '{"message":"Team standup in 5 minutes"}'
|
|
45
|
+
```
|
|
46
|
+
|
|
47
|
+
### Send a priority directive
|
|
48
|
+
|
|
49
|
+
```bash
|
|
50
|
+
bash config/skills/orchestrator/broadcast/execute.sh '{"message":"Priority shift: all agents focus on bug fixes for the next sprint"}'
|
|
51
|
+
```
|
|
40
52
|
|
|
41
53
|
## Output
|
|
42
54
|
|
|
43
|
-
|
|
55
|
+
```json
|
|
56
|
+
{
|
|
57
|
+
"sent": 3,
|
|
58
|
+
"failed": 0,
|
|
59
|
+
"message": "Broadcast complete"
|
|
60
|
+
}
|
|
61
|
+
```
|
|
62
|
+
|
|
63
|
+
- `sent` — number of agents that received the message
|
|
64
|
+
- `failed` — number of delivery failures
|
|
65
|
+
- `message` — status summary
|
|
66
|
+
|
|
67
|
+
## Error Handling
|
|
68
|
+
|
|
69
|
+
| Error | Cause | Solution |
|
|
70
|
+
|-------|-------|----------|
|
|
71
|
+
| `Missing required parameter: message` | `message` not provided in JSON input | Include `message` in the JSON payload |
|
|
72
|
+
| `Failed to get sessions` | Backend not reachable or sessions endpoint failed | Verify the Crewly backend is running |
|
|
73
|
+
| `curl failed with exit code N` | Network issue or backend down | Check backend health at `CREWLY_API_URL/api/health` |
|
|
74
|
+
| High `failed` count | One or more agent sessions are unresponsive | Check agent status with `get-team-status` and restart failed agents |
|
|
75
|
+
|
|
76
|
+
## Related Skills
|
|
77
|
+
|
|
78
|
+
- `send-message` — send a message to a single agent session
|
|
79
|
+
- `get-team-status` — check which agents are active before broadcasting
|
|
80
|
+
- `delegate-task` — send a task (not just a message) to a specific agent
|
|
@@ -1217,22 +1217,6 @@ export declare const SLACK_FILE_DOWNLOAD_CONSTANTS: {
|
|
|
1217
1217
|
/** MIME types eligible for text extraction */
|
|
1218
1218
|
readonly EXTRACTABLE_MIMES: readonly string[];
|
|
1219
1219
|
};
|
|
1220
|
-
/**
|
|
1221
|
-
* Constants for Gemini embedding-based knowledge search.
|
|
1222
|
-
* Used by KnowledgeSearchService when GEMINI_API_KEY is configured.
|
|
1223
|
-
*/
|
|
1224
|
-
export declare const EMBEDDING_CONSTANTS: {
|
|
1225
|
-
/** Gemini embedding model identifier */
|
|
1226
|
-
readonly GEMINI_MODEL: "text-embedding-004";
|
|
1227
|
-
/** Base endpoint for Gemini generative language API */
|
|
1228
|
-
readonly GEMINI_ENDPOINT: "https://generativelanguage.googleapis.com/v1/models";
|
|
1229
|
-
/** Timeout for embedding API calls (ms) */
|
|
1230
|
-
readonly TIMEOUT_MS: 10000;
|
|
1231
|
-
/** Maximum documents to embed in a single batch */
|
|
1232
|
-
readonly MAX_BATCH_SIZE: 20;
|
|
1233
|
-
/** Expected embedding vector dimensions */
|
|
1234
|
-
readonly EMBEDDING_DIMENSIONS: 768;
|
|
1235
|
-
};
|
|
1236
1220
|
/**
|
|
1237
1221
|
* Message source identifiers for the queue processor.
|
|
1238
1222
|
* Determines delivery strategy (timeouts, retry behavior).
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"constants.d.ts","sourceRoot":"","sources":["../../../../backend/src/constants.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAuBH,eAAO,MAAM,kBAAkB;;;;CAA4B,CAAC;AAC5D,eAAO,MAAM,wBAAwB;;;;;;CAAkC,CAAC;AACxE,eAAO,MAAM,gBAAgB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAA0B,CAAC;AACxD,eAAO,MAAM,gBAAgB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAA0B,CAAC;AACxD,eAAO,MAAM,sBAAsB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAAgC,CAAC;AACpE,eAAO,MAAM,8BAA8B;;;;CAAwC,CAAC;AACpF,eAAO,MAAM,uBAAuB;;;;;;;;;CAAiC,CAAC;AACtE,eAAO,MAAM,uBAAuB;;;;;CAAiC,CAAC;AACtE,eAAO,MAAM,iCAAiC;;;;;;CAA2C,CAAC;AAC1F,eAAO,MAAM,gCAAgC;;;;;;;;;CAA0C,CAAC;AACxF,eAAO,MAAM,aAAa;;;;;;;;;;;;;;;;;;;;;;;CAAuB,CAAC;AAClD,eAAO,MAAM,eAAe;;;;;;;;;;;;;;;;;;CAAyB,CAAC;AACtD,eAAO,MAAM,iBAAiB;;;CAA2B,CAAC;AAG1D,eAAO,MAAM,yBAAyB,cAAqD,CAAC;AAC5F,eAAO,MAAM,iBAAiB,iBAAiB,CAAC;AAChD,eAAO,MAAM,wBAAwB,wBAAwB,CAAC;AAC9D,eAAO,MAAM,4BAA4B,QAAQ,CAAC;AAClD,eAAO,MAAM,6BAA6B,QAAQ,CAAC;AAGnD,eAAO,MAAM,gBAAgB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAMnB,CAAC;AAGX,eAAO,MAAM,aAAa;IACzB,sEAAsE;;;IAGtE,6EAA6E;;IAE7E,0DAA0D;;IAE1D,qEAAqE;;IAErE,sDAAsD;;IAEtD,4FAA4F;;CAEnF,CAAC;AAGX,eAAO,MAAM,cAAc;;;IAG1B,sFAAsF;;IAEtF,sGAAsG;;CAE7F,CAAC;AAGX,eAAO,MAAM,wBAAwB;IACpC,6DAA6D;;IAE7D,iEAAiE;;IAEjE;;;OAGG;IACH,gGAAgG;;IAEhG,kFAAkF;;IAElF,iGAAiG;;IAEjG,6DAA6D;;IAE7D,kFAAkF;;CAEzE,CAAC;AAEX;;;;;;;;GAQG;AACH,eAAO,MAAM,uBAAuB;IACnC;;sCAEkC;;IAElC;;;yEAGqE;;IAErE;;;;;;4EAMwE;;IAExE;;;;;;;;;;OAUG;;CAEM,CAAC;AAGX,eAAO,MAAM,aAAa;;;;;CAKhB,CAAC;AAEX;;;;;;;;GAQG;AACH,eAAO,MAAM,4BAA4B,EAAG,cAAuB,CAAC;AAEpE;;;;;;;;;;GAUG;AACH,eAAO,MAAM,6BAA6B,sCAAuC,CAAC;AAElF,+GAA+G;AAC/G,eAAO,MAAM,8BAA8B,iEAAkE,CAAC;AAG9G,eAAO,MAAM,aAAa;;;;;;;;;IASzB,wEAAwE;;IAExE,8EAA8E;;IAE9E;;;uDAGmD;;IAEnD,0FAA0F;;CAEjF,CAAC;AAGX,eAAO,MAAM,sBAAsB;IAClC,iFAAiF;;IAEjF,6DAA6D;;IAE7D,mEAAmE;;IAEnE,+CAA+C;;IAE/C,0DAA0D;;IAE1D,oDAAoD;;IAEpD,8EAA8E;;IAE9E,8GAA8G;;IAE9G;6EACyE;;CAEhE,CAAC;AAGX,eAAO,MAAM,6BAA6B;;;;CAIhC,CAAC;AAEX,+EAA+E;AAC/E,eAAO,MAAM,0BAA0B;IACtC,0DAA0D;;IAE1D,0DAA0D;;IAE1D;;;;;;;;;;;;;;OAcG;2CAC2D,SAAS,MAAM,EAAE;CACtE,CAAC;AAGX,eAAO,MAAM,sBAAsB;IAClC,6CAA6C;;IAE7C,+EAA+E;;CAEtE,CAAC;AAEX;;;;GAIG;AACH,eAAO,MAAM,gBAAgB;IAC5B,0CAA0C;;IAE1C,4BAA4B;;CAEnB,CAAC;AAEX;;;;GAIG;AACH,eAAO,MAAM,sBAAsB;IAClC,0CAA0C;;IAE1C,4BAA4B;;CAEnB,CAAC;AAGX,eAAO,MAAM,wBAAwB;IACpC,oDAAoD;;IAEpD,yDAAyD;;IAEzD,2DAA2D;;IAE3D,gDAAgD;;IAEhD,6DAA6D;;IAE7D,+DAA+D;;IAE/D,kDAAkD;;IAElD,iDAAiD;;IAEjD,wFAAwF;;IAExF,iEAAiE;;IAEjE,mEAAmE;;IAEnE,6EAA6E;;IAE7E,uFAAuF;;IAEvF,iFAAiF;;IAEjF;;gFAE4E;;IAE5E;;sFAEkF;;IAElF,uDAAuD;;IAEvD,0FAA0F;;IAE1F,gEAAgE;;IAEhE,wFAAwF;;IAExF,2FAA2F;;IAE3F,wFAAwF;;CAE/E,CAAC;AAEX;;;GAGG;AACH,eAAO,MAAM,6BAA6B;IACzC,sFAAsF;;CAE7E,CAAC;AAEX;;;GAGG;AACH,eAAO,MAAM,iBAAiB;IAC7B;;;;OAIG;;IAGH;;;OAGG;;IAGH;;OAEG;;IAGH;;;OAGG;;CAEM,CAAC;AAEX;;;;;;GAMG;AACH,OAAO,EAAE,kBAAkB,IAAI,0BAA0B,EAAE,MAAM,sDAAsD,CAAC;AAExH;;;GAGG;AACH,eAAO,MAAM,uBAAuB;IACnC,sDAAsD;;IAEtD,yDAAyD;;IAEzD,sEAAsE;;IAEtE,yDAAyD;;IAEzD,6EAA6E;;IAE7E,sEAAsE;;IAEtE,wEAAwE;;IAExE;yEACqE;;IAErE,6DAA6D;;IAE7D,uCAAuC;;IAEvC,qDAAqD;;QAEpD,6CAA6C;;QAE7C,+CAA+C;;QAE/C,0CAA0C;;QAE1C,mCAAmC;;QAEnC,0CAA0C;;QAE1C,4CAA4C;;;CAGpC,CAAC;AAEX;;;;GAIG;AACH,eAAO,MAAM,wBAAwB;IACpC,6EAA6E;;IAE7E;qFACiF;;IAEjF,qEAAqE;;IAErE,mEAAmE;;CAE1D,CAAC;AAEX;;;GAGG;AACH,eAAO,MAAM,uBAAuB;IACnC,0DAA0D;;IAE1D,iFAAiF;;IAEjF,2EAA2E;;IAE3E,oEAAoE;;IAEpE,2DAA2D;;IAE3D,iEAAiE;;IAEjE,mEAAmE;;IAEnE,wEAAwE;;IAExE,yEAAyE;;CAEhE,CAAC;AAEX;;;GAGG;AACH,eAAO,MAAM,0BAA0B;IACtC;;kEAE8D;;IAE9D;;2DAEuD;;CAE9C,CAAC;AAEX;;;GAGG;AACH,eAAO,MAAM,mBAAmB;IAC/B;;mFAE+E;;IAE/E;;oFAEgF;;IAEhF;sFACkF;;IAElF,6DAA6D;;IAE7D,mDAAmD;;IAEnD,sDAAsD;;IAEtD,0DAA0D;;IAE1D,uEAAuE;;IAEvE,iEAAiE;;CAExD,CAAC;AAEX;;;;GAIG;AACH,eAAO,MAAM,sBAAsB;IAClC,wDAAwD;;IAExD,4DAA4D;;IAE5D,mDAAmD;;IAEnD,4DAA4D;;CAEnD,CAAC;AAEX;;;GAGG;AACH,eAAO,MAAM,sBAAsB;IAClC,wDAAwD;;IAExD,mDAAmD;;IAEnD,4EAA4E;;CAEnE,CAAC;AAEX;;;;GAIG;AACH,eAAO,MAAM,sBAAsB;IAClC,6EAA6E;;CAEpE,CAAC;AAEX;;;GAGG;AACH,eAAO,MAAM,uBAAuB;IACnC,yEAAyE;;CAEhE,CAAC;AAEX;;;;GAIG;AACH,eAAO,MAAM,qBAAqB;IACjC,oFAAoF;;IAEpF,gEAAgE;;CAEvD,CAAC;AAEX;;;;GAIG;AACH,eAAO,MAAM,+BAA+B;IAC3C,uDAAuD;;IAEvD,wEAAwE;;IAExE,mEAAmE;;IAEnE,uEAAuE;;CAE9D,CAAC;AAEX;;;GAGG;AACH,eAAO,MAAM,uBAAuB;IACnC,wEAAwE;;IAExE,6DAA6D;;CAEpD,CAAC;AAEX;;;;;GAKG;AACH,eAAO,MAAM,2BAA2B;IACvC;;;;OAIG;;IAKH,8DAA8D;;IAE9D,0CAA0C;;CAEjC,CAAC;AAEX;;;;;GAKG;AACH,eAAO,MAAM,8BAA8B;IAC1C,iEAAiE;;IAEjE,sDAAsD;;IAEtD,qCAAqC;;IAErC,mCAAmC;;IAEnC,qEAAqE;;CAE5D,CAAC;AAEX;;;;;GAKG;AACH,eAAO,MAAM,iCAAiC,QAA2C,CAAC;AAE1F;;;;;;;;;;;GAWG;AACH,eAAO,MAAM,uBAAuB,EAAE,MAAM,EAY3C,CAAC;AAEF;;;;;;;GAOG;AACH,eAAO,MAAM,2BAA2B,QAA2D,CAAC;AAEpG;+DAC+D;AAC/D,eAAO,MAAM,6BAA6B,IAAI,CAAC;AAE/C;;;;;;GAMG;AACH,eAAO,MAAM,8BAA8B,QAAgH,CAAC;AAE5J;wCACwC;AACxC,eAAO,MAAM,gCAAgC,IAAI,CAAC;AAElD;oFACoF;AACpF,eAAO,MAAM,gCAAgC,QAAgB,CAAC;AAE9D;;;GAGG;AACH,eAAO,MAAM,6BAA6B,EAAE,MAAM,EAOjD,CAAC;AAEF;;;;;;;;;;GAUG;AACH,eAAO,MAAM,qBAAqB,EAAE,MAAM,EAKzC,CAAC;AAEF;;;;;GAKG;AACH,eAAO,MAAM,qBAAqB,EAAE,SAAS,MAAM,EAOzC,CAAC;AAEX;;;;;;;;;;;;;GAaG;AACH,eAAO,MAAM,4BAA4B;IACxC,8DAA8D;;IAE9D;;;;OAIG;;IAEH;;;;OAIG;;CAEM,CAAC;AAEX;;;GAGG;AACH,eAAO,MAAM,sBAAsB;IAClC,8DAA8D;;IAE9D,qEAAqE;;IAErE;;;;;OAKG;;IAEH;;;;;;OAMG;;IAEH;;;;OAIG;;IAEH;;;;OAIG;;CAEM,CAAC;AAEX;;;;GAIG;AACH,eAAO,MAAM,gCAAgC;IAC5C,6DAA6D;;IAE7D,6DAA6D;;IAE7D,yDAAyD;;IAEzD,8EAA8E;;IAE9E;;;;OAIG;;IAEH,2DAA2D;;IAE3D,8DAA8D;;IAE9D,wEAAwE;;IAExE,yDAAyD;;IAEzD,kEAAkE;;IAElE,6EAA6E;;IAE7E,sEAAsE;;IAEtE,mEAAmE;;IAEnE,qFAAqF;;IAErF,2EAA2E;;CAElE,CAAC;AAEX;;;;;;;GAOG;AACH,eAAO,MAAM,wBAAwB,EAAE,MAAM,CAAC,WAAW,EAAE,MAAM,CAKvD,CAAC;AAEX;;;;GAIG;AACH,eAAO,MAAM,uBAAuB;IACnC,yDAAyD;;IAEzD,oEAAoE;;IAEpE,qEAAqE;;IAErE,wEAAwE;;IAExE,mEAAmE;;IAEnE,kEAAkE;;IAElE,oEAAoE;;IAEpE,iFAAiF;;IAEjF,mFAAmF;;CAE1E,CAAC;AAEX;;;;;GAKG;AACH,eAAO,MAAM,wBAAwB,EAAE,MAAM,EAAE,EAO9C,CAAC;AAEF;;;;GAIG;AACH,eAAO,MAAM,yBAAyB;IACrC,wDAAwD;;IAExD,0DAA0D;;CAEjD,CAAC;AAEX;;;;GAIG;AACH,eAAO,MAAM,+BAA+B;IAC3C,gDAAgD;;IAEhD,gEAAgE;;IAEhE,uCAAuC;;;;;;;;;CAS9B,CAAC;AAEX;;GAEG;AACH,eAAO,MAAM,gBAAgB;IAC5B,sDAAsD;;IAEtD,mEAAmE;;IAEnE,uEAAuE;;CAE9D,CAAC;AAEX;;;;GAIG;AACH,eAAO,MAAM,qBAAqB;IACjC,oEAAoE;;IAEpE,4DAA4D;;IAE5D,+FAA+F;;IAE/F;;;OAGG;;IAEH;;;;OAIG;;;;;;;;IAQH,2DAA2D;;IAE3D,2DAA2D;;IAE3D,qDAAqD;;IAErD,+DAA+D;;IAE/D,2DAA2D;;IAE3D,mEAAmE;;IAEnE,uEAAuE;;CAE9D,CAAC;AAEX;;;;GAIG;AACH,eAAO,MAAM,2BAA2B;IACvC,iEAAiE;;IAEjE,kEAAkE;;IAElE,0CAA0C;;IAM1C,mEAAmE;;IAEnE,uEAAuE;;CAE9D,CAAC;AAEX;;;;GAIG;AACH;;;;GAIG;AACH,eAAO,MAAM,yBAAyB;IACrC,2DAA2D;;IAE3D,uDAAuD;;IAEvD,2DAA2D;;IAE3D,2FAA2F;;IAE3F;qEACiE;;IAEjE,0DAA0D;;IAE1D,mEAAmE;;IAEnE,qEAAqE;;CAE5D,CAAC;AAEX,eAAO,MAAM,6BAA6B;IACzC,mEAAmE;;IAEnE,oEAAoE;;IAEpE,oDAAoD;;IAEpD,2DAA2D;;IAE3D,yDAAyD;;IAEzD,6EAA6E;;IAE7E,8CAA8C;gCACJ,SAAS,MAAM,EAAE;CAClD,CAAC;AAEX;;;GAGG;AACH,eAAO,MAAM,
|
|
1
|
+
{"version":3,"file":"constants.d.ts","sourceRoot":"","sources":["../../../../backend/src/constants.ts"],"names":[],"mappings":"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"}
|
|
@@ -1002,22 +1002,6 @@ export const SLACK_FILE_DOWNLOAD_CONSTANTS = {
|
|
|
1002
1002
|
/** MIME types eligible for text extraction */
|
|
1003
1003
|
EXTRACTABLE_MIMES: ['application/pdf'],
|
|
1004
1004
|
};
|
|
1005
|
-
/**
|
|
1006
|
-
* Constants for Gemini embedding-based knowledge search.
|
|
1007
|
-
* Used by KnowledgeSearchService when GEMINI_API_KEY is configured.
|
|
1008
|
-
*/
|
|
1009
|
-
export const EMBEDDING_CONSTANTS = {
|
|
1010
|
-
/** Gemini embedding model identifier */
|
|
1011
|
-
GEMINI_MODEL: 'text-embedding-004',
|
|
1012
|
-
/** Base endpoint for Gemini generative language API */
|
|
1013
|
-
GEMINI_ENDPOINT: 'https://generativelanguage.googleapis.com/v1/models',
|
|
1014
|
-
/** Timeout for embedding API calls (ms) */
|
|
1015
|
-
TIMEOUT_MS: 10000,
|
|
1016
|
-
/** Maximum documents to embed in a single batch */
|
|
1017
|
-
MAX_BATCH_SIZE: 20,
|
|
1018
|
-
/** Expected embedding vector dimensions */
|
|
1019
|
-
EMBEDDING_DIMENSIONS: 768,
|
|
1020
|
-
};
|
|
1021
1005
|
/**
|
|
1022
1006
|
* Message source identifiers for the queue processor.
|
|
1023
1007
|
* Determines delivery strategy (timeouts, retry behavior).
|