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.
Files changed (178) hide show
  1. package/config/skills/agent/core/accept-task/SKILL.md +35 -7
  2. package/config/skills/agent/core/poll-tasks/execute.sh +44 -9
  3. package/config/skills/agent/core/poll-tasks/execute.test.sh +98 -0
  4. package/config/skills/agent/core/record-learning/execute.sh +92 -3
  5. package/config/skills/agent/core/register-self/SKILL.md +51 -8
  6. package/config/skills/agent/transcribe-audio/SKILL.md +110 -0
  7. package/config/skills/agent/transcribe-audio/execute.sh +223 -0
  8. package/config/skills/agent/transcribe-audio/instructions.md +92 -0
  9. package/config/skills/agent/transcribe-audio/skill.json +22 -0
  10. package/config/skills/orchestrator/assign-task/SKILL.md +40 -6
  11. package/config/skills/orchestrator/broadcast/SKILL.md +45 -8
  12. package/dist/backend/backend/src/constants.d.ts +0 -16
  13. package/dist/backend/backend/src/constants.d.ts.map +1 -1
  14. package/dist/backend/backend/src/constants.js +0 -16
  15. package/dist/backend/backend/src/constants.js.map +1 -1
  16. package/dist/backend/backend/src/controllers/memory/memory.controller.d.ts.map +1 -1
  17. package/dist/backend/backend/src/controllers/memory/memory.controller.js +3 -10
  18. package/dist/backend/backend/src/controllers/memory/memory.controller.js.map +1 -1
  19. package/dist/backend/backend/src/controllers/system/system.controller.d.ts.map +1 -1
  20. package/dist/backend/backend/src/controllers/system/system.controller.js +24 -5
  21. package/dist/backend/backend/src/controllers/system/system.controller.js.map +1 -1
  22. package/dist/backend/backend/src/controllers/team/team.controller.d.ts.map +1 -1
  23. package/dist/backend/backend/src/controllers/team/team.controller.js +57 -2
  24. package/dist/backend/backend/src/controllers/team/team.controller.js.map +1 -1
  25. package/dist/backend/backend/src/index.d.ts +2 -0
  26. package/dist/backend/backend/src/index.d.ts.map +1 -1
  27. package/dist/backend/backend/src/index.js +124 -1
  28. package/dist/backend/backend/src/index.js.map +1 -1
  29. package/dist/backend/backend/src/routes/api.routes.d.ts.map +1 -1
  30. package/dist/backend/backend/src/routes/api.routes.js +0 -3
  31. package/dist/backend/backend/src/routes/api.routes.js.map +1 -1
  32. package/dist/backend/backend/src/services/agent/agent-registration.service.d.ts.map +1 -1
  33. package/dist/backend/backend/src/services/agent/agent-registration.service.js +56 -20
  34. package/dist/backend/backend/src/services/agent/agent-registration.service.js.map +1 -1
  35. package/dist/backend/backend/src/services/ai/prompt-modules/index.d.ts +1 -0
  36. package/dist/backend/backend/src/services/ai/prompt-modules/index.d.ts.map +1 -1
  37. package/dist/backend/backend/src/services/ai/prompt-modules/index.js +1 -0
  38. package/dist/backend/backend/src/services/ai/prompt-modules/index.js.map +1 -1
  39. package/dist/backend/backend/src/services/ai/prompt-modules/prompt-assembly.service.d.ts.map +1 -1
  40. package/dist/backend/backend/src/services/ai/prompt-modules/prompt-assembly.service.js +2 -0
  41. package/dist/backend/backend/src/services/ai/prompt-modules/prompt-assembly.service.js.map +1 -1
  42. package/dist/backend/backend/src/services/ai/prompt-modules/sop-norm-distinction.module.d.ts +79 -0
  43. package/dist/backend/backend/src/services/ai/prompt-modules/sop-norm-distinction.module.d.ts.map +1 -0
  44. package/dist/backend/backend/src/services/ai/prompt-modules/sop-norm-distinction.module.js +118 -0
  45. package/dist/backend/backend/src/services/ai/prompt-modules/sop-norm-distinction.module.js.map +1 -0
  46. package/dist/backend/backend/src/services/boot/boot-announce.service.d.ts +88 -0
  47. package/dist/backend/backend/src/services/boot/boot-announce.service.d.ts.map +1 -0
  48. package/dist/backend/backend/src/services/boot/boot-announce.service.js +119 -0
  49. package/dist/backend/backend/src/services/boot/boot-announce.service.js.map +1 -0
  50. package/dist/backend/backend/src/services/event-bus/event-to-workitem-bridge.service.d.ts.map +1 -1
  51. package/dist/backend/backend/src/services/event-bus/event-to-workitem-bridge.service.js +14 -0
  52. package/dist/backend/backend/src/services/event-bus/event-to-workitem-bridge.service.js.map +1 -1
  53. package/dist/backend/backend/src/services/mcp-server.d.ts.map +1 -1
  54. package/dist/backend/backend/src/services/mcp-server.js +0 -6
  55. package/dist/backend/backend/src/services/mcp-server.js.map +1 -1
  56. package/dist/backend/backend/src/services/memory/learning-format.validator.d.ts +97 -0
  57. package/dist/backend/backend/src/services/memory/learning-format.validator.d.ts.map +1 -0
  58. package/dist/backend/backend/src/services/memory/learning-format.validator.js +209 -0
  59. package/dist/backend/backend/src/services/memory/learning-format.validator.js.map +1 -0
  60. package/dist/backend/backend/src/services/memory/memory.service.d.ts +78 -41
  61. package/dist/backend/backend/src/services/memory/memory.service.d.ts.map +1 -1
  62. package/dist/backend/backend/src/services/memory/memory.service.js +209 -127
  63. package/dist/backend/backend/src/services/memory/memory.service.js.map +1 -1
  64. package/dist/backend/backend/src/services/memory/project-memory.service.d.ts.map +1 -1
  65. package/dist/backend/backend/src/services/memory/project-memory.service.js +37 -9
  66. package/dist/backend/backend/src/services/memory/project-memory.service.js.map +1 -1
  67. package/dist/backend/backend/src/services/orchestrator/commitment-approval-guard.d.ts +46 -0
  68. package/dist/backend/backend/src/services/orchestrator/commitment-approval-guard.d.ts.map +1 -1
  69. package/dist/backend/backend/src/services/orchestrator/commitment-approval-guard.js +51 -0
  70. package/dist/backend/backend/src/services/orchestrator/commitment-approval-guard.js.map +1 -1
  71. package/dist/backend/backend/src/services/orchestrator/orchestrator-heartbeat-monitor.service.d.ts.map +1 -1
  72. package/dist/backend/backend/src/services/orchestrator/orchestrator-heartbeat-monitor.service.js +29 -0
  73. package/dist/backend/backend/src/services/orchestrator/orchestrator-heartbeat-monitor.service.js.map +1 -1
  74. package/dist/backend/backend/src/services/session/pty/pty-session-backend.d.ts.map +1 -1
  75. package/dist/backend/backend/src/services/session/pty/pty-session-backend.js +9 -0
  76. package/dist/backend/backend/src/services/session/pty/pty-session-backend.js.map +1 -1
  77. package/dist/backend/backend/src/services/session/runtime-pid-registry.service.d.ts +86 -0
  78. package/dist/backend/backend/src/services/session/runtime-pid-registry.service.d.ts.map +1 -0
  79. package/dist/backend/backend/src/services/session/runtime-pid-registry.service.js +214 -0
  80. package/dist/backend/backend/src/services/session/runtime-pid-registry.service.js.map +1 -0
  81. package/dist/backend/backend/src/services/sop/sop.service.d.ts +70 -2
  82. package/dist/backend/backend/src/services/sop/sop.service.d.ts.map +1 -1
  83. package/dist/backend/backend/src/services/sop/sop.service.js +93 -3
  84. package/dist/backend/backend/src/services/sop/sop.service.js.map +1 -1
  85. package/dist/backend/backend/src/services/task-pool/claim.service.d.ts +41 -0
  86. package/dist/backend/backend/src/services/task-pool/claim.service.d.ts.map +1 -1
  87. package/dist/backend/backend/src/services/task-pool/claim.service.js +72 -0
  88. package/dist/backend/backend/src/services/task-pool/claim.service.js.map +1 -1
  89. package/dist/backend/backend/src/services/task-pool/task-pool.service.d.ts +16 -0
  90. package/dist/backend/backend/src/services/task-pool/task-pool.service.d.ts.map +1 -1
  91. package/dist/backend/backend/src/services/task-pool/task-pool.service.js +20 -0
  92. package/dist/backend/backend/src/services/task-pool/task-pool.service.js.map +1 -1
  93. package/dist/backend/backend/src/services/telegram/telegram-orchestrator-bridge.d.ts.map +1 -1
  94. package/dist/backend/backend/src/services/telegram/telegram-orchestrator-bridge.js +11 -0
  95. package/dist/backend/backend/src/services/telegram/telegram-orchestrator-bridge.js.map +1 -1
  96. package/dist/backend/backend/src/services/telegram/telegram.service.d.ts.map +1 -1
  97. package/dist/backend/backend/src/services/telegram/telegram.service.js +24 -2
  98. package/dist/backend/backend/src/services/telegram/telegram.service.js.map +1 -1
  99. package/dist/backend/backend/src/services/v3/mission-reminder.service.d.ts.map +1 -1
  100. package/dist/backend/backend/src/services/v3/mission-reminder.service.js +18 -18
  101. package/dist/backend/backend/src/services/v3/mission-reminder.service.js.map +1 -1
  102. package/dist/backend/backend/src/services/v3/request-sla.subscriber.d.ts +10 -0
  103. package/dist/backend/backend/src/services/v3/request-sla.subscriber.d.ts.map +1 -1
  104. package/dist/backend/backend/src/services/v3/request-sla.subscriber.js +20 -12
  105. package/dist/backend/backend/src/services/v3/request-sla.subscriber.js.map +1 -1
  106. package/dist/backend/backend/src/services/wiki/wiki-migrate.service.d.ts.map +1 -1
  107. package/dist/backend/backend/src/services/wiki/wiki-migrate.service.js +12 -3
  108. package/dist/backend/backend/src/services/wiki/wiki-migrate.service.js.map +1 -1
  109. package/dist/backend/backend/src/services/wiki/wiki-query.service.d.ts +15 -5
  110. package/dist/backend/backend/src/services/wiki/wiki-query.service.d.ts.map +1 -1
  111. package/dist/backend/backend/src/services/wiki/wiki-query.service.js +31 -50
  112. package/dist/backend/backend/src/services/wiki/wiki-query.service.js.map +1 -1
  113. package/dist/backend/backend/src/services/wiki/wiki-search.service.d.ts +16 -0
  114. package/dist/backend/backend/src/services/wiki/wiki-search.service.d.ts.map +1 -1
  115. package/dist/backend/backend/src/services/wiki/wiki-search.service.js +20 -0
  116. package/dist/backend/backend/src/services/wiki/wiki-search.service.js.map +1 -1
  117. package/dist/backend/backend/src/types/settings.types.d.ts +8 -0
  118. package/dist/backend/backend/src/types/settings.types.d.ts.map +1 -1
  119. package/dist/backend/backend/src/types/settings.types.js +2 -0
  120. package/dist/backend/backend/src/types/settings.types.js.map +1 -1
  121. package/dist/backend/backend/src/types/v2/work-item.types.d.ts +23 -0
  122. package/dist/backend/backend/src/types/v2/work-item.types.d.ts.map +1 -1
  123. package/dist/backend/backend/src/types/v2/work-item.types.js +29 -0
  124. package/dist/backend/backend/src/types/v2/work-item.types.js.map +1 -1
  125. package/dist/cli/backend/src/constants.d.ts +0 -16
  126. package/dist/cli/backend/src/constants.d.ts.map +1 -1
  127. package/dist/cli/backend/src/constants.js +0 -16
  128. package/dist/cli/backend/src/constants.js.map +1 -1
  129. package/dist/cli/backend/src/services/mcp-server.d.ts.map +1 -1
  130. package/dist/cli/backend/src/services/mcp-server.js +0 -6
  131. package/dist/cli/backend/src/services/mcp-server.js.map +1 -1
  132. package/dist/cli/backend/src/services/memory/memory.service.d.ts +78 -41
  133. package/dist/cli/backend/src/services/memory/memory.service.d.ts.map +1 -1
  134. package/dist/cli/backend/src/services/memory/memory.service.js +209 -127
  135. package/dist/cli/backend/src/services/memory/memory.service.js.map +1 -1
  136. package/dist/cli/backend/src/services/memory/project-memory.service.d.ts.map +1 -1
  137. package/dist/cli/backend/src/services/memory/project-memory.service.js +37 -9
  138. package/dist/cli/backend/src/services/memory/project-memory.service.js.map +1 -1
  139. package/dist/cli/backend/src/services/task-pool/claim.service.d.ts +41 -0
  140. package/dist/cli/backend/src/services/task-pool/claim.service.d.ts.map +1 -1
  141. package/dist/cli/backend/src/services/task-pool/claim.service.js +72 -0
  142. package/dist/cli/backend/src/services/task-pool/claim.service.js.map +1 -1
  143. package/dist/cli/backend/src/services/task-pool/task-pool.service.d.ts +16 -0
  144. package/dist/cli/backend/src/services/task-pool/task-pool.service.d.ts.map +1 -1
  145. package/dist/cli/backend/src/services/task-pool/task-pool.service.js +20 -0
  146. package/dist/cli/backend/src/services/task-pool/task-pool.service.js.map +1 -1
  147. package/dist/cli/backend/src/services/wiki/schema-loader.service.d.ts +57 -0
  148. package/dist/cli/backend/src/services/wiki/schema-loader.service.d.ts.map +1 -0
  149. package/dist/cli/backend/src/services/wiki/schema-loader.service.js +183 -0
  150. package/dist/cli/backend/src/services/wiki/schema-loader.service.js.map +1 -0
  151. package/dist/cli/backend/src/services/wiki/wiki-ingest.service.d.ts +100 -0
  152. package/dist/cli/backend/src/services/wiki/wiki-ingest.service.d.ts.map +1 -0
  153. package/dist/cli/backend/src/services/wiki/wiki-ingest.service.js +212 -0
  154. package/dist/cli/backend/src/services/wiki/wiki-ingest.service.js.map +1 -0
  155. package/dist/cli/backend/src/services/wiki/wiki-overlay.resolver.d.ts +43 -0
  156. package/dist/cli/backend/src/services/wiki/wiki-overlay.resolver.d.ts.map +1 -0
  157. package/dist/cli/backend/src/services/wiki/wiki-overlay.resolver.js +67 -0
  158. package/dist/cli/backend/src/services/wiki/wiki-overlay.resolver.js.map +1 -0
  159. package/dist/cli/backend/src/services/wiki/wiki-search.service.d.ts +166 -0
  160. package/dist/cli/backend/src/services/wiki/wiki-search.service.d.ts.map +1 -0
  161. package/dist/cli/backend/src/services/wiki/wiki-search.service.js +379 -0
  162. package/dist/cli/backend/src/services/wiki/wiki-search.service.js.map +1 -0
  163. package/dist/cli/backend/src/services/wiki/wiki.types.d.ts +84 -0
  164. package/dist/cli/backend/src/services/wiki/wiki.types.d.ts.map +1 -0
  165. package/dist/cli/backend/src/services/wiki/wiki.types.js +10 -0
  166. package/dist/cli/backend/src/services/wiki/wiki.types.js.map +1 -0
  167. package/dist/cli/backend/src/types/settings.types.d.ts +8 -0
  168. package/dist/cli/backend/src/types/settings.types.d.ts.map +1 -1
  169. package/dist/cli/backend/src/types/settings.types.js +2 -0
  170. package/dist/cli/backend/src/types/settings.types.js.map +1 -1
  171. package/dist/cli/backend/src/types/v2/work-item.types.d.ts +23 -0
  172. package/dist/cli/backend/src/types/v2/work-item.types.d.ts.map +1 -1
  173. package/dist/cli/backend/src/types/v2/work-item.types.js +29 -0
  174. package/dist/cli/backend/src/types/v2/work-item.types.js.map +1 -1
  175. package/frontend/dist/assets/{index-44266b5d.css → index-8205ea5e.css} +1 -1
  176. package/frontend/dist/assets/{index-4099a91c.js → index-890d3f9d.js} +289 -289
  177. package/frontend/dist/index.html +2 -2
  178. 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 an agent via the task management system.
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 an agent via the task management system.
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
- ## Usage
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
- ## Parameters
51
+ ### Assign with a reason for the assignment
36
52
 
37
- Pass the full JSON body as expected by `POST /api/task-management/assign`.
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
- Sends a message to all active agent sessions (excluding the orchestrator itself).
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
- ## Usage
29
+ ## When to Use
30
30
 
31
- ```bash
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
- JSON with count of sent/failed deliveries.
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":"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"}
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).