crewly 1.20.281 → 1.20.282

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 (22) hide show
  1. package/config/skills/agent/core/receive-file/SKILL.md +53 -0
  2. package/config/skills/agent/core/receive-file/execute.sh +125 -0
  3. package/config/skills/agent/core/receive-file/execute.test.sh +80 -0
  4. package/config/skills/agent/core/send-file/SKILL.md +62 -0
  5. package/config/skills/agent/core/send-file/execute.sh +145 -0
  6. package/config/skills/agent/core/send-file/execute.test.sh +81 -0
  7. package/dist/backend/backend/src/controllers/apps/apps.controller.d.ts +12 -0
  8. package/dist/backend/backend/src/controllers/apps/apps.controller.d.ts.map +1 -1
  9. package/dist/backend/backend/src/controllers/apps/apps.controller.js +41 -0
  10. package/dist/backend/backend/src/controllers/apps/apps.controller.js.map +1 -1
  11. package/dist/backend/backend/src/controllers/apps/apps.routes.d.ts +4 -0
  12. package/dist/backend/backend/src/controllers/apps/apps.routes.d.ts.map +1 -1
  13. package/dist/backend/backend/src/controllers/apps/apps.routes.js +12 -1
  14. package/dist/backend/backend/src/controllers/apps/apps.routes.js.map +1 -1
  15. package/dist/backend/backend/src/services/ai/prompt-modules/skills-reference.module.d.ts.map +1 -1
  16. package/dist/backend/backend/src/services/ai/prompt-modules/skills-reference.module.js +1 -0
  17. package/dist/backend/backend/src/services/ai/prompt-modules/skills-reference.module.js.map +1 -1
  18. package/dist/backend/build-info.json +2 -2
  19. package/dist/cli/backend/src/services/ai/prompt-modules/skills-reference.module.d.ts.map +1 -1
  20. package/dist/cli/backend/src/services/ai/prompt-modules/skills-reference.module.js +1 -0
  21. package/dist/cli/backend/src/services/ai/prompt-modules/skills-reference.module.js.map +1 -1
  22. package/package.json +1 -1
@@ -0,0 +1,53 @@
1
+ ---
2
+ name: Receive File
3
+ description: Download a large file another agent of the same Crewly account sent with send-file (handoff id hf_…), save it in your workspace, verify its size, then tell Crewly Cloud to delete it. Use when a message gives you a handoff id or says "receive it with the receive-file skill".
4
+ version: 1.0.0
5
+ category: productivity
6
+ skillType: claude-skill
7
+ assignableRoles:
8
+ - "*"
9
+ triggers:
10
+ - receive file
11
+ - download handoff
12
+ - hf_
13
+ - get the file from
14
+ - fetch the video
15
+ tags:
16
+ - files
17
+ - handoff
18
+ - transfer
19
+ execution:
20
+ type: script
21
+ script:
22
+ file: execute.sh
23
+ interpreter: bash
24
+ timeoutMs: 3600000
25
+ ---
26
+
27
+ # Receive File
28
+
29
+ Downloads a file handed to you with `send-file` (by any agent of your own
30
+ Crewly account, on this or another machine). The file streams to disk, never
31
+ through memory; its size is checked against what the sender declared; then the
32
+ temporary copy on the server is deleted.
33
+
34
+ ```bash
35
+ bash execute.sh --id hf_AbCdEfGhIjKlMnOpQrStUv
36
+ bash execute.sh --id hf_… --dir ./inbox
37
+ ```
38
+
39
+ Prints:
40
+
41
+ ```json
42
+ {"success":true,"path":"/…/received/daily-2026-10-09.mp4","fileName":"daily-2026-10-09.mp4","sizeBytes":314572800,"note":"today's cut","acked":true}
43
+ ```
44
+
45
+ - `--dir`: where to save (default `received/` in your project directory).
46
+ An existing file is never overwritten; a number is added to the name.
47
+ - If the size does not match, nothing is acknowledged and the partial file is
48
+ removed: run it again (the server copy stays until it is acknowledged or
49
+ 24 hours pass).
50
+ - An interrupted download keeps its `.part` file and resumes on the next run.
51
+ - `--no-ack` keeps the server copy so another run can fetch it again.
52
+ - A handoff is gone once received, cancelled or expired (24 h): ask the sender
53
+ to send it again.
@@ -0,0 +1,125 @@
1
+ #!/bin/bash
2
+ # =============================================================================
3
+ # receive-file — download a file handed over with send-file, verify its size,
4
+ # acknowledge it (Cloud then deletes it). crewly-services apps/SPEC.md section 18.
5
+ #
6
+ # The backend (GET /api/apps/handoffs/:id) answers metadata and a presigned
7
+ # download URL; curl streams it straight to disk (resumable via a .part file).
8
+ #
9
+ # Usage:
10
+ # bash execute.sh --id hf_… [--dir <folder>] [--no-ack]
11
+ # =============================================================================
12
+ set -euo pipefail
13
+ SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)"
14
+ source "${SCRIPT_DIR}/../../_common/lib.sh"
15
+
16
+ print_usage() {
17
+ cat <<'EOF_USAGE'
18
+ Usage:
19
+ bash execute.sh --id hf_… [--dir <folder>] [--no-ack]
20
+
21
+ Options:
22
+ --id Handoff id from the sender (required)
23
+ --dir Folder to save into (default: received/ in your project directory)
24
+ --no-ack Do not delete the server copy afterwards
25
+ --help | -h Show this help
26
+ EOF_USAGE
27
+ }
28
+
29
+ fail_from() {
30
+ printf '%s' "$1" | jq -c '{success: false, status: (.status // 0), reason: (.details.error // .error // "unknown"), message: (.details.message // .details // "")}' 2>/dev/null \
31
+ || jq -cn --arg r "$1" '{success: false, reason: $r}'
32
+ exit 1
33
+ }
34
+
35
+ call() {
36
+ local out
37
+ out=$(api_call "$@" 2>&1) || { fail_from "$(printf '%s\n' "$out" | tail -n 1)"; }
38
+ printf '%s\n' "$out" | tail -n 1
39
+ }
40
+
41
+ ID=""; DIR=""; ACK=1
42
+ while [[ $# -gt 0 ]]; do
43
+ case "$1" in
44
+ --id) [ $# -ge 2 ] || error_exit "--id requires a value"; ID="$2"; shift 2 ;;
45
+ --dir) [ $# -ge 2 ] || error_exit "--dir requires a value"; DIR="$2"; shift 2 ;;
46
+ --no-ack) ACK=0; shift ;;
47
+ --help|-h) print_usage; exit 0 ;;
48
+ *) error_exit "Unknown option: $1" ;;
49
+ esac
50
+ done
51
+ [ -n "$ID" ] || error_exit "--id is required"
52
+ [[ "$ID" =~ ^hf_[A-Za-z0-9_-]{22}$ ]] || error_exit "--id must be a handoff id like hf_… (22 characters after hf_)"
53
+ [ -n "$DIR" ] || DIR="${CREWLY_PROJECT_PATH:-$PWD}/received"
54
+ command -v node >/dev/null 2>&1 || error_exit "node is required"
55
+
56
+ # The destination folder must not be inside the Crewly home directory.
57
+ check_dir() {
58
+ RF_DIR="$1" node <<'NODE'
59
+ const fs = require('fs'); const path = require('path'); const os = require('os');
60
+ const abs = path.resolve(process.env.RF_DIR);
61
+ fs.mkdirSync(abs, { recursive: true });
62
+ const r = fs.realpathSync(abs);
63
+ const homes = [path.join(os.homedir(), '.crewly'), process.env.CREWLY_HOME].filter(Boolean).map((p) => { try { return fs.realpathSync(p); } catch { return path.resolve(p); } });
64
+ if (homes.some((h) => r === h || r.startsWith(h + path.sep))) { process.stderr.write(JSON.stringify({ error: 'the folder is inside the Crewly home directory' }) + '\n'); process.exit(1); }
65
+ process.stdout.write(r);
66
+ NODE
67
+ }
68
+ DIR=$(check_dir "$DIR") || exit 1
69
+
70
+ META=$(call GET "/apps/handoffs/${ID}") || { printf '%s\n' "$META"; exit 1; }
71
+ STATUS=$(printf '%s' "$META" | jq -r '.data.status // empty')
72
+ if [ "$STATUS" != "ready" ]; then
73
+ jq -cn '{success: false, reason: "not_ready", message: "The sender has not finished uploading. Ask them to confirm, then run this again."}'
74
+ exit 1
75
+ fi
76
+ URL=$(printf '%s' "$META" | jq -r '.data.download.url // empty')
77
+ SIZE=$(printf '%s' "$META" | jq -r '.data.sizeBytes // empty')
78
+ RAW_NAME=$(printf '%s' "$META" | jq -r '.data.fileName // "file"')
79
+ NOTE=$(printf '%s' "$META" | jq -r '.data.note // empty')
80
+ [ -n "$URL" ] && [[ "$SIZE" =~ ^[0-9]+$ ]] || error_exit "Cloud answered without a download URL"
81
+
82
+ # A safe local name: the last path segment, no leading dots.
83
+ NAME=$(printf '%s' "$RAW_NAME" | tr '\\' '/' | awk -F/ '{print $NF}' | sed 's/^[.[:space:]]*//')
84
+ [ -n "$NAME" ] || NAME="file"
85
+
86
+ # The .part file is named by handoff id so an interrupted run resumes.
87
+ PART="${DIR}/.${ID}.part"
88
+ if [ -f "$PART" ]; then
89
+ HAVE=$(wc -c < "$PART" | tr -d ' ')
90
+ [ "$HAVE" -le "$SIZE" ] || rm -f "$PART"
91
+ fi
92
+ CODE=$(curl -sS -o "$PART" -w '%{http_code}' --connect-timeout 30 --retry 3 --retry-delay 3 -C - "$URL" 2>/dev/null) || CODE="000"
93
+ # 200 = whole body, 206 = resumed, 416 = the .part was already complete.
94
+ case "$CODE" in 200|206|416) ;; *)
95
+ [ "$CODE" = "000" ] || rm -f "$PART"
96
+ jq -cn --arg c "$CODE" '{success: false, reason: "download_failed", message: ("The download failed (HTTP " + $c + "). Run the skill again; a partial file is resumed.")}'
97
+ exit 1 ;;
98
+ esac
99
+
100
+ GOT=$(wc -c < "$PART" | tr -d ' ')
101
+ if [ "$GOT" != "$SIZE" ]; then
102
+ rm -f "$PART"
103
+ jq -cn --argjson g "$GOT" --argjson s "$SIZE" '{success: false, reason: "size_mismatch", message: ("Downloaded " + ($g|tostring) + " bytes, expected " + ($s|tostring) + ". The partial file was removed and the server copy kept; run the skill again.")}'
104
+ exit 1
105
+ fi
106
+
107
+ # Final name: never overwrite.
108
+ DEST="${DIR}/${NAME}"
109
+ if [ -e "$DEST" ]; then
110
+ BASE="${NAME%.*}"; EXT=""
111
+ [ "$BASE" != "$NAME" ] && EXT=".${NAME##*.}"
112
+ N=1
113
+ while [ -e "${DIR}/${BASE}-${N}${EXT}" ]; do N=$((N+1)); done
114
+ DEST="${DIR}/${BASE}-${N}${EXT}"
115
+ fi
116
+ mv "$PART" "$DEST"
117
+
118
+ ACKED=false
119
+ if [ "$ACK" = "1" ]; then
120
+ if api_call POST "/apps/handoffs/${ID}/ack" >/dev/null 2>&1; then ACKED=true; fi
121
+ fi
122
+
123
+ jq -cn --arg p "$DEST" --arg n "$NAME" --argjson s "$SIZE" --arg note "$NOTE" --argjson a "$ACKED" \
124
+ '{success: true, path: $p, fileName: $n, sizeBytes: $s, acked: $a} + (if $note != "" then {note: $note} else {} end)
125
+ + (if $a then {} else {warning: "The server copy was not deleted (it is removed automatically after 24 hours)."} end)'
@@ -0,0 +1,80 @@
1
+ #!/bin/bash
2
+ # Tests for receive-file — run with: bash execute.test.sh
3
+ # A Python stub plays both the Crewly backend and the object storage.
4
+ set -u
5
+ HERE="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)"
6
+ EXEC="$HERE/execute.sh"
7
+ PASS=0; FAIL=0
8
+ check() { if [ "$2" = "$3" ]; then PASS=$((PASS+1)); else FAIL=$((FAIL+1)); echo "FAIL: $1"; echo " want: $3"; echo " got: $2"; fi; }
9
+
10
+ PORT=18862
11
+ STUB_LOG="$(mktemp)"; export STUB_LOG STUB_PORT="$PORT"
12
+ python3 -u <<'PY' >/dev/null 2>&1 &
13
+ from http.server import BaseHTTPRequestHandler, HTTPServer
14
+ import json, os
15
+ LOG = os.environ['STUB_LOG']; PORT = int(os.environ['STUB_PORT'])
16
+ OK = 'hf_AbCdEfGhIjKlMnOpQrStUv'; SHORT = 'hf_ShortShortShortShortSh'; PEND = 'hf_PendPendPendPendPendPe'
17
+ DATA = b'x' * 2000000
18
+ def note(**kw):
19
+ with open(LOG, 'a') as f: f.write(json.dumps(kw) + '\n')
20
+ class H(BaseHTTPRequestHandler):
21
+ def send(self, code, obj):
22
+ self.send_response(code); self.send_header('Content-Type', 'application/json'); self.end_headers(); self.wfile.write(json.dumps(obj).encode())
23
+ def do_GET(self):
24
+ if self.path.startswith('/store/'):
25
+ data = DATA[:1000] if 'short' in self.path else DATA
26
+ note(op='download', range=self.headers.get('Range'))
27
+ self.send_response(200); self.send_header('Content-Length', str(len(data))); self.end_headers(); self.wfile.write(data); return
28
+ hid = self.path.rsplit('/', 1)[-1]
29
+ if hid == PEND:
30
+ return self.send(200, {'success': True, 'data': {'handoffId': hid, 'status': 'pending', 'sizeBytes': 5, 'fileName': 'a'}})
31
+ if hid in (OK, SHORT):
32
+ return self.send(200, {'success': True, 'data': {'handoffId': hid, 'status': 'ready', 'sizeBytes': len(DATA), 'fileName': '../../evil name.mp4', 'note': 'today',
33
+ 'download': {'url': f'http://127.0.0.1:{PORT}/store/' + ('short' if hid == SHORT else 'ok'), 'expiresAt': 'x'}}})
34
+ self.send(404, {'success': False, 'error': 'not_found', 'message': 'This handoff is gone.'})
35
+ def do_POST(self):
36
+ note(op='ack' if self.path.endswith('/ack') else 'other', path=self.path, session=self.headers.get('X-Agent-Session')); self.send(200, {'success': True, 'data': {'deleted': True}})
37
+ def log_message(self, *a, **k): pass
38
+ HTTPServer(('127.0.0.1', PORT), H).serve_forever()
39
+ PY
40
+ STUB_PID=$!
41
+ disown "$STUB_PID" 2>/dev/null || true
42
+ WORK="$(cd "$(mktemp -d)" && pwd -P)"
43
+ trap 'kill "$STUB_PID" >/dev/null 2>&1; rm -rf "$STUB_LOG" "$WORK"' EXIT
44
+ for i in $(seq 1 30); do curl -s -o /dev/null -m 0.2 "http://127.0.0.1:${PORT}/" 2>/dev/null && break; sleep 0.1; done
45
+ mkdir -p "$WORK/home/.crewly" "$WORK/proj"
46
+ ENVS=(CREWLY_API_URL="http://127.0.0.1:${PORT}" CREWLY_SESSION_NAME=dev-mia HOME="$WORK/home" CREWLY_HOME="$WORK/home/.crewly" CREWLY_PROJECT_PATH="$WORK/proj")
47
+ run() { env "${ENVS[@]}" bash "$EXEC" "$@" 2>/dev/null; }
48
+ run_err() { env "${ENVS[@]}" bash "$EXEC" "$@" 2>&1 >/dev/null; }
49
+
50
+ OK=hf_AbCdEfGhIjKlMnOpQrStUv
51
+ OUT=$(run --id $OK)
52
+ DEST="$WORK/proj/received/evil name.mp4"
53
+ check "result" "$(printf '%s' "$OUT" | jq -c '{success, fileName, sizeBytes, acked, note}')" '{"success":true,"fileName":"evil name.mp4","sizeBytes":2000000,"acked":true,"note":"today"}'
54
+ check "saved in the default folder under a safe name" "$(wc -c < "$DEST" | tr -d ' ')" "2000000"
55
+ check "ack sent as this agent" "$(grep '"op": "ack"' "$STUB_LOG" | jq -c '{path, session}')" '{"path":"/api/apps/handoffs/hf_AbCdEfGhIjKlMnOpQrStUv/ack","session":"dev-mia"}'
56
+ check "no .part left" "$(ls -a "$WORK/proj/received" | grep -c part)" "0"
57
+
58
+ OUT=$(run --id $OK --dir "$WORK/proj/inbox")
59
+ check "second copy goes to --dir" "$(printf '%s' "$OUT" | jq -r .path)" "$WORK/proj/inbox/evil name.mp4"
60
+ run --id $OK >/dev/null
61
+ check "never overwrites" "$(ls "$WORK/proj/received" | sort | tr '\n' '|')" "evil name-1.mp4|evil name.mp4|"
62
+
63
+ : > "$STUB_LOG"
64
+ OUT=$(run --id $OK --no-ack --dir "$WORK/proj/noack")
65
+ check "--no-ack keeps the server copy" "$(printf '%s' "$OUT" | jq -c '{acked, warning: (.warning != null)}')" '{"acked":false,"warning":true}'
66
+ check "no ack request" "$(grep -c '"op": "ack"' "$STUB_LOG")" "0"
67
+
68
+ : > "$STUB_LOG"
69
+ OUT=$(run --id hf_ShortShortShortShortSh --dir "$WORK/proj/short"; true)
70
+ check "size mismatch fails, removes the partial and does not ack" "$(printf '%s' "$OUT" | jq -r .reason)|$(ls -A "$WORK/proj/short" | wc -l | tr -d ' ')|$(grep -c '"op": "ack"' "$STUB_LOG")" "size_mismatch|0|0"
71
+
72
+ OUT=$(run --id hf_PendPendPendPendPendPe; true)
73
+ check "pending handoff is not ready" "$(printf '%s' "$OUT" | jq -r .reason)" "not_ready"
74
+ OUT=$(run --id hf_GoneGoneGoneGoneGoneGo; true)
75
+ check "unknown handoff passes Cloud's reason" "$(printf '%s' "$OUT" | jq -r .reason)" "not_found"
76
+ check "bad id refused" "$(run_err --id nope | grep -c 'handoff id')" "1"
77
+ check "dir inside Crewly home refused" "$(run_err --id $OK --dir "$WORK/home/.crewly/x" | grep -c 'Crewly home')" "1"
78
+
79
+ echo "receive-file: $PASS passed, $FAIL failed"
80
+ [ "$FAIL" -eq 0 ]
@@ -0,0 +1,62 @@
1
+ ---
2
+ name: Send File
3
+ description: Hand a LARGE file (video, archive, dataset, up to 2 GB) to another agent of the same Crewly account, on this or another machine, through a temporary Crewly Cloud relay. Prefer this over Drive or Slack for anything bigger than a few MB. The receiver deletes it with receive-file; unclaimed files are deleted after 24 hours.
4
+ version: 1.0.0
5
+ category: productivity
6
+ skillType: claude-skill
7
+ assignableRoles:
8
+ - "*"
9
+ triggers:
10
+ - send file
11
+ - send a large file
12
+ - hand off a file
13
+ - pass the video to
14
+ - transfer file to agent
15
+ - share a big file
16
+ tags:
17
+ - files
18
+ - handoff
19
+ - transfer
20
+ execution:
21
+ type: script
22
+ script:
23
+ file: execute.sh
24
+ interpreter: bash
25
+ timeoutMs: 3600000
26
+ ---
27
+
28
+ # Send File
29
+
30
+ Passes one big file to another agent of **your own Crewly account**
31
+ (same machine or another one) without Slack or Drive. Needs the machine to be
32
+ signed in to Crewly Cloud. The file is streamed from disk (never loaded into
33
+ memory), kept on a temporary server, and deleted as soon as the receiver
34
+ acknowledges it, or after 24 hours.
35
+
36
+ ```bash
37
+ bash execute.sh --path ./out/daily-2026-10-09.mp4 --note "today's cut, 300 MB" --to Mia
38
+ ```
39
+
40
+ Prints:
41
+
42
+ ```json
43
+ {"success":true,"handoffId":"hf_…","fileName":"daily-2026-10-09.mp4","sizeBytes":314572800,"expiresAt":"…",
44
+ "instruction":"Receive it with the receive-file skill: bash <skills>/core/receive-file/execute.sh --id hf_… [--dir <folder>]"}
45
+ ```
46
+
47
+ **Send the `instruction` line to the receiving agent** (use your normal
48
+ agent-to-agent message), and tell it the handoff id. Do not post the id anywhere
49
+ public.
50
+
51
+ Options:
52
+
53
+ - `--path` (required): a regular file inside your project directory (not a
54
+ symlink, not inside Crewly's home). Max 2 GB; the account may hold 5 GB of
55
+ waiting handoffs at once, so wait for receivers to finish before sending more.
56
+ - `--name`: the name the receiver sees (default: the file's name).
57
+ - `--note`: one line for the receiver. `--to`: who it is for (informational).
58
+ - `--content-type`: default from the extension.
59
+
60
+ Not for secrets or credentials. Not for files under ~5 MB that can go in a
61
+ message. Cancel a handoff you no longer want received with
62
+ `bash execute.sh --cancel hf_…`.
@@ -0,0 +1,145 @@
1
+ #!/bin/bash
2
+ # =============================================================================
3
+ # send-file — hand a large file to another agent of the same Crewly account
4
+ # through the Cloud file-handoff relay (crewly-services apps/SPEC.md section 18).
5
+ #
6
+ # The backend (POST /api/apps/handoffs) asks Cloud for a presigned upload URL;
7
+ # this script then streams the file straight to object storage with curl -T
8
+ # (from disk, never buffered), and confirms with /complete.
9
+ #
10
+ # Usage:
11
+ # bash execute.sh --path <file> [--name <name>] [--note <text>] [--to <agent>] [--content-type <type>]
12
+ # bash execute.sh --cancel <handoffId>
13
+ # =============================================================================
14
+ set -euo pipefail
15
+ SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)"
16
+ source "${SCRIPT_DIR}/../../_common/lib.sh"
17
+
18
+ print_usage() {
19
+ cat <<'EOF_USAGE'
20
+ Usage:
21
+ bash execute.sh --path <file> [--name <name>] [--note <text>] [--to <agent>] [--content-type <type>]
22
+ bash execute.sh --cancel <handoffId>
23
+
24
+ Options:
25
+ --path Regular file inside your project directory, up to 2 GB (required)
26
+ --name Name the receiver sees (default: the file's name)
27
+ --note One line for the receiver
28
+ --to Who it is for (informational; any agent of the account can receive it)
29
+ --content-type MIME type (default: from the extension)
30
+ --cancel Withdraw a handoff you made (deletes the uploaded file)
31
+ --help | -h Show this help
32
+ EOF_USAGE
33
+ }
34
+
35
+ fail_from() {
36
+ printf '%s' "$1" | jq -c '{success: false, status: (.status // 0), reason: (.details.error // .error // "unknown"), message: (.details.message // .details // "")}' 2>/dev/null \
37
+ || jq -cn --arg r "$1" '{success: false, reason: $r}'
38
+ exit 1
39
+ }
40
+
41
+ call() {
42
+ local out
43
+ out=$(api_call "$@" 2>&1) || { fail_from "$(printf '%s\n' "$out" | tail -n 1)"; }
44
+ printf '%s\n' "$out" | tail -n 1
45
+ }
46
+
47
+ content_type_for() {
48
+ case "$(printf '%s' "${1##*.}" | tr '[:upper:]' '[:lower:]')" in
49
+ mp4|m4v) echo video/mp4 ;;
50
+ mov) echo video/quicktime ;;
51
+ webm) echo video/webm ;;
52
+ mkv) echo video/x-matroska ;;
53
+ mp3) echo audio/mpeg ;;
54
+ wav) echo audio/wav ;;
55
+ m4a) echo audio/mp4 ;;
56
+ png) echo image/png ;;
57
+ jpg|jpeg) echo image/jpeg ;;
58
+ pdf) echo application/pdf ;;
59
+ zip) echo application/zip ;;
60
+ json) echo application/json ;;
61
+ csv) echo text/csv ;;
62
+ txt|md|log) echo text/plain ;;
63
+ *) echo application/octet-stream ;;
64
+ esac
65
+ }
66
+
67
+ # Regular, non-symlink file inside the project directory, never under Crewly's
68
+ # home. Prints the real path, then the size in bytes.
69
+ check_file() {
70
+ command -v node >/dev/null 2>&1 || error_exit "node is required"
71
+ CF_PATH="$1" CF_PROJECT="${CREWLY_PROJECT_PATH:-$PWD}" node <<'NODE'
72
+ const fs = require('fs'); const path = require('path'); const os = require('os');
73
+ const fail = (m) => { process.stderr.write(JSON.stringify({ error: m }) + '\n'); process.exit(1); };
74
+ const real = (p) => { try { return fs.realpathSync(p); } catch { return null; } };
75
+ const within = (c, p) => c === p || c.startsWith(p.endsWith(path.sep) ? p : p + path.sep);
76
+ const given = process.env.CF_PATH;
77
+ const abs = path.resolve(given);
78
+ let st;
79
+ try { st = fs.lstatSync(abs); } catch { fail(`file not found: ${given}`); }
80
+ if (st.isSymbolicLink()) fail(`${given} is a symbolic link; pass the real file`);
81
+ if (!st.isFile()) fail(`${given} is not a regular file`);
82
+ if (st.size === 0) fail(`${given} is empty`);
83
+ const r = real(abs); const project = real(process.env.CF_PROJECT || process.cwd());
84
+ if (!project) fail('cannot resolve the project directory');
85
+ const homes = [path.join(os.homedir(), '.crewly'), process.env.CREWLY_HOME].filter(Boolean).map((p) => real(p) || path.resolve(p));
86
+ if (homes.some((h) => within(r, h))) fail(`${given} is inside Crewly's home directory`);
87
+ if (!within(r, project)) fail(`${given} is outside your project directory (${project}); copy it there first`);
88
+ process.stdout.write(r + '\n' + st.size + '\n');
89
+ NODE
90
+ }
91
+
92
+ FILE=""; NAME=""; NOTE=""; TO=""; CTYPE=""; CANCEL=""
93
+ while [[ $# -gt 0 ]]; do
94
+ case "$1" in
95
+ --path) [ $# -ge 2 ] || error_exit "--path requires a value"; FILE="$2"; shift 2 ;;
96
+ --name) [ $# -ge 2 ] || error_exit "--name requires a value"; NAME="$2"; shift 2 ;;
97
+ --note) [ $# -ge 2 ] || error_exit "--note requires a value"; NOTE="$2"; shift 2 ;;
98
+ --to) [ $# -ge 2 ] || error_exit "--to requires a value"; TO="$2"; shift 2 ;;
99
+ --content-type) [ $# -ge 2 ] || error_exit "--content-type requires a value"; CTYPE="$2"; shift 2 ;;
100
+ --cancel) [ $# -ge 2 ] || error_exit "--cancel requires a handoff id"; CANCEL="$2"; shift 2 ;;
101
+ --help|-h) print_usage; exit 0 ;;
102
+ *) error_exit "Unknown option: $1" ;;
103
+ esac
104
+ done
105
+
106
+ if [ -n "$CANCEL" ]; then
107
+ [[ "$CANCEL" =~ ^hf_[A-Za-z0-9_-]{22}$ ]] || error_exit "--cancel needs a handoff id like hf_…"
108
+ RESULT=$(call DELETE "/apps/handoffs/${CANCEL}") || { printf '%s\n' "$RESULT"; exit 1; }
109
+ jq -cn --arg id "$CANCEL" '{success: true, handoffId: $id, cancelled: true}'
110
+ exit 0
111
+ fi
112
+
113
+ [ -n "$FILE" ] || error_exit "--path is required"
114
+ INFO=$(check_file "$FILE") || { printf '%s\n' "$INFO" >&2; exit 1; }
115
+ REAL=$(printf '%s\n' "$INFO" | sed -n 1p)
116
+ SIZE=$(printf '%s\n' "$INFO" | sed -n 2p)
117
+ [ -n "$NAME" ] || NAME="$(basename "$REAL")"
118
+ [ -n "$CTYPE" ] || CTYPE="$(content_type_for "$REAL")"
119
+
120
+ BODY=$(jq -cn --arg n "$NAME" --argjson s "$SIZE" --arg c "$CTYPE" --arg note "$NOTE" --arg to "$TO" \
121
+ '{fileName: $n, sizeBytes: $s, contentType: $c} + (if $note != "" then {note: $note} else {} end) + (if $to != "" then {to: $to} else {} end)')
122
+ CREATED=$(call POST "/apps/handoffs" "$BODY") || { printf '%s\n' "$CREATED"; exit 1; }
123
+ ID=$(printf '%s' "$CREATED" | jq -r '.data.handoffId // empty')
124
+ URL=$(printf '%s' "$CREATED" | jq -r '.data.upload.url // empty')
125
+ [ -n "$ID" ] && [ -n "$URL" ] || error_exit "Cloud answered without an upload URL"
126
+
127
+ # Headers the presigned URL was signed with; the file streams from disk (-T).
128
+ HDRS=()
129
+ while IFS= read -r line; do HDRS+=(-H "$line"); done < <(printf '%s' "$CREATED" | jq -r '.data.upload.headers // {} | to_entries[] | "\(.key): \(.value)"')
130
+
131
+ cancel_quietly() { api_call DELETE "/apps/handoffs/${ID}" >/dev/null 2>&1 || true; }
132
+
133
+ CODE=$(curl -sS -o /dev/null -w '%{http_code}' --connect-timeout 30 --retry 3 --retry-delay 3 -X PUT -T "$REAL" ${HDRS[@]+"${HDRS[@]}"} "$URL" 2>/dev/null) || CODE="000"
134
+ if [ "$CODE" != "200" ]; then
135
+ cancel_quietly
136
+ jq -cn --arg c "$CODE" '{success: false, reason: "upload_failed", message: ("The upload to temporary storage failed (HTTP " + $c + "). Nothing was kept; try again.")}'
137
+ exit 1
138
+ fi
139
+
140
+ DONE=$(api_call POST "/apps/handoffs/${ID}/complete" 2>&1) || { cancel_quietly; fail_from "$(printf '%s\n' "$DONE" | tail -n 1)"; }
141
+ EXPIRES=$(printf '%s\n' "$DONE" | tail -n 1 | jq -r '.data.expiresAt // empty')
142
+
143
+ jq -cn --arg id "$ID" --arg n "$NAME" --argjson s "$SIZE" --arg e "$EXPIRES" \
144
+ '{success: true, handoffId: $id, fileName: $n, sizeBytes: $s, expiresAt: $e,
145
+ instruction: ("Receive it with the receive-file skill: bash <skills>/core/receive-file/execute.sh --id " + $id + " [--dir <folder>]")}'
@@ -0,0 +1,81 @@
1
+ #!/bin/bash
2
+ # Tests for send-file — run with: bash execute.test.sh
3
+ # A Python stub plays both the Crewly backend and the object storage.
4
+ set -u
5
+ HERE="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)"
6
+ EXEC="$HERE/execute.sh"
7
+ PASS=0; FAIL=0
8
+ check() { if [ "$2" = "$3" ]; then PASS=$((PASS+1)); else FAIL=$((FAIL+1)); echo "FAIL: $1"; echo " want: $3"; echo " got: $2"; fi; }
9
+
10
+ PORT=18861
11
+ STUB_LOG="$(mktemp)"; STORE="$(mktemp)"; export STUB_LOG STORE STUB_PORT="$PORT"
12
+ python3 -u <<'PY' >/dev/null 2>&1 &
13
+ from http.server import BaseHTTPRequestHandler, HTTPServer
14
+ import json, os
15
+ LOG = os.environ['STUB_LOG']; STORE = os.environ['STORE']; PORT = int(os.environ['STUB_PORT'])
16
+ ID = 'hf_AbCdEfGhIjKlMnOpQrStUv'
17
+ def note(**kw):
18
+ with open(LOG, 'a') as f: f.write(json.dumps(kw) + '\n')
19
+ class H(BaseHTTPRequestHandler):
20
+ def send(self, code, obj):
21
+ self.send_response(code); self.send_header('Content-Type', 'application/json'); self.end_headers(); self.wfile.write(json.dumps(obj).encode())
22
+ def body(self):
23
+ n = int(self.headers.get('Content-Length') or 0); return self.rfile.read(n)
24
+ def do_POST(self):
25
+ b = self.body()
26
+ if self.path == '/api/apps/handoffs':
27
+ req = json.loads(b); note(op='create', req=req, session=self.headers.get('X-Agent-Session'))
28
+ if req['fileName'] == 'refuse.bin':
29
+ return self.send(402, {'success': False, 'error': 'quota_exceeded', 'message': 'Too many bytes waiting.'})
30
+ return self.send(201, {'success': True, 'data': {'handoffId': ID, 'status': 'pending', 'upload': {'url': f'http://127.0.0.1:{PORT}/store/obj', 'method': 'PUT', 'headers': {'Content-Type': req['contentType'], 'x-amz-server-side-encryption': 'AES256'}}}})
31
+ if self.path == f'/api/apps/handoffs/{ID}/complete':
32
+ note(op='complete'); return self.send(200, {'success': True, 'data': {'handoffId': ID, 'status': 'ready', 'expiresAt': '2026-10-10T00:00:00.000Z'}})
33
+ self.send(404, {'success': False})
34
+ def do_DELETE(self):
35
+ note(op='cancel', path=self.path); self.send(200, {'success': True, 'data': {'deleted': True}})
36
+ def do_PUT(self):
37
+ b = self.body()
38
+ note(op='put', bytes=len(b), ctype=self.headers.get('Content-Type'), sse=self.headers.get('x-amz-server-side-encryption'))
39
+ self.send_response(500 if os.path.exists(STORE + '.fail') else 200); self.end_headers()
40
+ def log_message(self, *a, **k): pass
41
+ HTTPServer(('127.0.0.1', PORT), H).serve_forever()
42
+ PY
43
+ STUB_PID=$!
44
+ disown "$STUB_PID" 2>/dev/null || true
45
+ WORK="$(mktemp -d)"
46
+ trap 'kill "$STUB_PID" >/dev/null 2>&1; rm -rf "$STUB_LOG" "$STORE" "$STORE.fail" "$WORK"' EXIT
47
+ for i in $(seq 1 30); do curl -s -o /dev/null -m 0.2 "http://127.0.0.1:${PORT}/" 2>/dev/null && break; sleep 0.1; done
48
+ mkdir -p "$WORK/home/.crewly" "$WORK/proj"
49
+ ENVS=(CREWLY_API_URL="http://127.0.0.1:${PORT}" CREWLY_SESSION_NAME=dev-ella HOME="$WORK/home" CREWLY_HOME="$WORK/home/.crewly" CREWLY_PROJECT_PATH="$WORK/proj")
50
+ run() { env "${ENVS[@]}" bash "$EXEC" "$@" 2>/dev/null; }
51
+ run_err() { env "${ENVS[@]}" bash "$EXEC" "$@" 2>&1 >/dev/null; }
52
+
53
+ head -c 3000000 /dev/zero > "$WORK/proj/daily.mp4"
54
+ OUT=$(run --path "$WORK/proj/daily.mp4" --note "today" --to Mia)
55
+ check "result" "$(printf '%s' "$OUT" | jq -c '{success, handoffId, fileName, sizeBytes, expiresAt}')" '{"success":true,"handoffId":"hf_AbCdEfGhIjKlMnOpQrStUv","fileName":"daily.mp4","sizeBytes":3000000,"expiresAt":"2026-10-10T00:00:00.000Z"}'
56
+ check "instruction names the receiver skill" "$(printf '%s' "$OUT" | jq -r '.instruction' | grep -c 'receive-file/execute.sh --id hf_AbCdEfGhIjKlMnOpQrStUv')" "1"
57
+ check "create request" "$(sed -n 1p "$STUB_LOG" | jq -c '{req, session}')" '{"req":{"fileName":"daily.mp4","sizeBytes":3000000,"contentType":"video/mp4","note":"today","to":"Mia"},"session":"dev-ella"}'
58
+ check "upload streamed with signed headers" "$(sed -n 2p "$STUB_LOG" | jq -c '{bytes, ctype, sse}')" '{"bytes":3000000,"ctype":"video/mp4","sse":"AES256"}'
59
+ check "complete called" "$(sed -n 3p "$STUB_LOG" | jq -r .op)" "complete"
60
+
61
+ : > "$STUB_LOG"
62
+ OUT=$(run --path "$WORK/proj/daily.mp4" --name "refuse.bin"; true)
63
+ check "cloud refusal passed through" "$(printf '%s' "$OUT" | jq -c '{success, reason}')" '{"success":false,"reason":"quota_exceeded"}'
64
+
65
+ : > "$STUB_LOG"; touch "$STORE.fail"
66
+ OUT=$(run --path "$WORK/proj/daily.mp4"; true)
67
+ check "failed upload reports and cancels" "$(printf '%s' "$OUT" | jq -r .reason)" "upload_failed"
68
+ check "cancel issued" "$(grep -c '"op": "cancel"' "$STUB_LOG")" "1"
69
+ rm -f "$STORE.fail"
70
+
71
+ echo secret > "$WORK/outside.txt"; ln -s "$WORK/proj/daily.mp4" "$WORK/proj/link.mp4"
72
+ check "outside project refused" "$(run_err --path "$WORK/outside.txt" | grep -c 'outside your project directory')" "1"
73
+ check "symlink refused" "$(run_err --path "$WORK/proj/link.mp4" | grep -c 'symbolic link')" "1"
74
+ check "missing file refused" "$(run_err --path "$WORK/proj/nope" | grep -c 'file not found')" "1"
75
+ check "path required" "$(run_err | grep -c -- '--path is required')" "1"
76
+ : > "$STUB_LOG"
77
+ run --cancel hf_AbCdEfGhIjKlMnOpQrStUv >/dev/null
78
+ check "cancel" "$(jq -r .path "$STUB_LOG")" "/api/apps/handoffs/hf_AbCdEfGhIjKlMnOpQrStUv"
79
+
80
+ echo "send-file: $PASS passed, $FAIL failed"
81
+ [ "$FAIL" -eq 0 ]
@@ -119,4 +119,16 @@ export declare const useTemplate: (req: Request, res: Response) => Promise<void>
119
119
  export declare const unlistTemplate: (req: Request, res: Response) => Promise<void>;
120
120
  /** POST /api/apps/:appId/template-files `{ source? }` — the template files of an app made from a template */
121
121
  export declare const checkoutTemplateFiles: (req: Request, res: Response) => Promise<void>;
122
+ /** POST /api/apps/handoffs `{ fileName, sizeBytes, contentType?, note?, to? }` — reserve a handoff; answers a presigned upload URL */
123
+ export declare const createHandoff: (req: Request, res: Response) => Promise<void>;
124
+ /** POST /api/apps/handoffs/:handoffId/complete — the upload finished; Cloud checks the size */
125
+ export declare const completeHandoff: (req: Request, res: Response) => Promise<void>;
126
+ /** GET /api/apps/handoffs/:handoffId — metadata, plus a presigned download URL once ready */
127
+ export declare const getHandoff: (req: Request, res: Response) => Promise<void>;
128
+ /** GET /api/apps/handoffs — the account's waiting handoffs */
129
+ export declare const listHandoffs: (req: Request, res: Response) => Promise<void>;
130
+ /** POST /api/apps/handoffs/:handoffId/ack — received; Cloud deletes the file */
131
+ export declare const ackHandoff: (req: Request, res: Response) => Promise<void>;
132
+ /** DELETE /api/apps/handoffs/:handoffId — withdraw */
133
+ export declare const cancelHandoff: (req: Request, res: Response) => Promise<void>;
122
134
  //# sourceMappingURL=apps.controller.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"apps.controller.d.ts","sourceRoot":"","sources":["../../../../../../backend/src/controllers/apps/apps.controller.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"apps.controller.d.ts","sourceRoot":"","sources":["../../../../../../backend/src/controllers/apps/apps.controller.ts"],"names":[],"mappings":"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"}
@@ -300,4 +300,45 @@ export const useTemplate = handle(async (req, caller) => {
300
300
  export const unlistTemplate = handle(async (req, caller) => requireTemplates().unlist(req.params.templateId, caller));
301
301
  /** POST /api/apps/:appId/template-files `{ source? }` — the template files of an app made from a template */
302
302
  export const checkoutTemplateFiles = handle(async (req, caller) => requireTemplates().checkout(req.params.appId, caller, { source: body(req).source }));
303
+ // ---------------------------------------------------------------------------
304
+ // File handoff (crewly-services apps/SPEC.md section 18): a temporary relay for one
305
+ // large file between agents of the same account. The bytes never pass through
306
+ // this backend: the skills PUT to / GET from the presigned URLs Cloud returns.
307
+ // ---------------------------------------------------------------------------
308
+ const HANDOFF_ID_RE = /^hf_[A-Za-z0-9_-]{22}$/;
309
+ /** A handoff id from the URL, or a 404 that names nothing. */
310
+ function handoffIdOf(req) {
311
+ const id = req.params.handoffId;
312
+ if (!HANDOFF_ID_RE.test(id))
313
+ throw new AppsCloudError(404, 'not_found', 'No such handoff.');
314
+ return id;
315
+ }
316
+ /** Call Cloud's handoff API as this agent (or the owner). */
317
+ function handoffCall(method, path, caller, reqBody) {
318
+ return getAppsParts().client.request(method, path, {
319
+ ...(reqBody !== undefined ? { body: reqBody } : {}),
320
+ ...(caller.agentSession ? { agent: caller.agentSession } : { asOwner: true }),
321
+ });
322
+ }
323
+ /** POST /api/apps/handoffs `{ fileName, sizeBytes, contentType?, note?, to? }` — reserve a handoff; answers a presigned upload URL */
324
+ export const createHandoff = handle(async (req, caller) => {
325
+ const b = body(req);
326
+ const result = await handoffCall('POST', '/handoffs', caller, { fileName: b.fileName, sizeBytes: b.sizeBytes, contentType: b.contentType, note: b.note, to: b.to });
327
+ logger.info('File handoff created', { handoffId: result.handoffId, sizeBytes: result.sizeBytes, agent: caller.agentSession ?? 'owner' });
328
+ return result;
329
+ }, 201);
330
+ /** POST /api/apps/handoffs/:handoffId/complete — the upload finished; Cloud checks the size */
331
+ export const completeHandoff = handle((req, caller) => handoffCall('POST', `/handoffs/${handoffIdOf(req)}/complete`, caller));
332
+ /** GET /api/apps/handoffs/:handoffId — metadata, plus a presigned download URL once ready */
333
+ export const getHandoff = handle((req, caller) => handoffCall('GET', `/handoffs/${handoffIdOf(req)}`, caller));
334
+ /** GET /api/apps/handoffs — the account's waiting handoffs */
335
+ export const listHandoffs = handle((_req, caller) => handoffCall('GET', '/handoffs', caller));
336
+ /** POST /api/apps/handoffs/:handoffId/ack — received; Cloud deletes the file */
337
+ export const ackHandoff = handle(async (req, caller) => {
338
+ const result = await handoffCall('POST', `/handoffs/${handoffIdOf(req)}/ack`, caller);
339
+ logger.info('File handoff acknowledged', { handoffId: req.params.handoffId, agent: caller.agentSession ?? 'owner' });
340
+ return result;
341
+ });
342
+ /** DELETE /api/apps/handoffs/:handoffId — withdraw */
343
+ export const cancelHandoff = handle((req, caller) => handoffCall('DELETE', `/handoffs/${handoffIdOf(req)}`, caller));
303
344
  //# sourceMappingURL=apps.controller.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"apps.controller.js","sourceRoot":"","sources":["../../../../../../backend/src/controllers/apps/apps.controller.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"apps.controller.js","sourceRoot":"","sources":["../../../../../../backend/src/controllers/apps/apps.controller.ts"],"names":[],"mappings":"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"}
@@ -35,6 +35,10 @@
35
35
  * - POST /:appId/comments/:commentId/replies — reply `{ text }`
36
36
  * - POST /:appId/comments/:commentId/resolve — resolve (`/reopen` reopens)
37
37
  * - POST /:appId/comments/:commentId/audio — download its voice recordings here; answers local paths
38
+ * - POST /handoffs — `{ fileName, sizeBytes, contentType?, note?, to? }`: reserve a large-file handoff; answers a presigned upload URL
39
+ * - POST /handoffs/:handoffId/complete — upload finished (Cloud checks the size)
40
+ * - GET /handoffs/:handoffId — metadata + presigned download URL once ready (`GET /handoffs` lists)
41
+ * - POST /handoffs/:handoffId/ack — received: Cloud deletes the file (`DELETE /handoffs/:handoffId` withdraws)
38
42
  * - GET /templates — `?q&tag&category&limit`: search Marketplace app templates
39
43
  * - GET /templates/mine — this account's own templates
40
44
  * - POST /templates/:templateId/use — `{ name?, source? }`: a new app from a template (+ its files)
@@ -1 +1 @@
1
- {"version":3,"file":"apps.routes.d.ts","sourceRoot":"","sources":["../../../../../../backend/src/controllers/apps/apps.routes.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAiDG;AAEH,OAAgB,EAAE,MAAM,EAAE,KAAK,YAAY,EAAE,KAAK,OAAO,EAAE,KAAK,cAAc,EAAE,KAAK,QAAQ,EAAE,MAAM,SAAS,CAAC;AA4D/G;;;;;;;GAOG;AACH,wBAAgB,uBAAuB,CAAC,IAAI,EAAE,cAAc,GAAG,cAAc,CAS5E;AAED;;;;;;GAMG;AACH,wBAAgB,sBAAsB,CAAC,GAAG,EAAE,OAAO,EAAE,GAAG,EAAE,QAAQ,EAAE,IAAI,EAAE,YAAY,GAAG,IAAI,CAQ5F;AAED;;;;;;GAMG;AACH,wBAAgB,qBAAqB,CAAC,GAAG,EAAE,OAAO,EAAE,GAAG,EAAE,QAAQ,EAAE,IAAI,EAAE,YAAY,GAAG,IAAI,CAQ3F;AAeD;;;;GAIG;AACH,wBAAgB,gBAAgB,IAAI,MAAM,CA6CzC"}
1
+ {"version":3,"file":"apps.routes.d.ts","sourceRoot":"","sources":["../../../../../../backend/src/controllers/apps/apps.routes.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAqDG;AAEH,OAAgB,EAAE,MAAM,EAAE,KAAK,YAAY,EAAE,KAAK,OAAO,EAAE,KAAK,cAAc,EAAE,KAAK,QAAQ,EAAE,MAAM,SAAS,CAAC;AAkE/G;;;;;;;GAOG;AACH,wBAAgB,uBAAuB,CAAC,IAAI,EAAE,cAAc,GAAG,cAAc,CAS5E;AAED;;;;;;GAMG;AACH,wBAAgB,sBAAsB,CAAC,GAAG,EAAE,OAAO,EAAE,GAAG,EAAE,QAAQ,EAAE,IAAI,EAAE,YAAY,GAAG,IAAI,CAQ5F;AAED;;;;;;GAMG;AACH,wBAAgB,qBAAqB,CAAC,GAAG,EAAE,OAAO,EAAE,GAAG,EAAE,QAAQ,EAAE,IAAI,EAAE,YAAY,GAAG,IAAI,CAQ3F;AAeD;;;;GAIG;AACH,wBAAgB,gBAAgB,IAAI,MAAM,CAoDzC"}
@@ -35,6 +35,10 @@
35
35
  * - POST /:appId/comments/:commentId/replies — reply `{ text }`
36
36
  * - POST /:appId/comments/:commentId/resolve — resolve (`/reopen` reopens)
37
37
  * - POST /:appId/comments/:commentId/audio — download its voice recordings here; answers local paths
38
+ * - POST /handoffs — `{ fileName, sizeBytes, contentType?, note?, to? }`: reserve a large-file handoff; answers a presigned upload URL
39
+ * - POST /handoffs/:handoffId/complete — upload finished (Cloud checks the size)
40
+ * - GET /handoffs/:handoffId — metadata + presigned download URL once ready (`GET /handoffs` lists)
41
+ * - POST /handoffs/:handoffId/ack — received: Cloud deletes the file (`DELETE /handoffs/:handoffId` withdraws)
38
42
  * - GET /templates — `?q&tag&category&limit`: search Marketplace app templates
39
43
  * - GET /templates/mine — this account's own templates
40
44
  * - POST /templates/:templateId/use — `{ name?, source? }`: a new app from a template (+ its files)
@@ -51,7 +55,7 @@
51
55
  import express, { Router } from 'express';
52
56
  import { ownerOrVerifiedAgent, rejectNonOwner } from '../../middleware/caller-identity.middleware.js';
53
57
  import { CREWLY_APPS_CONSTANTS } from '../../constants.js';
54
- import { publishApp, listApps, rollbackApp, transferApp, getAppOwner, setAppOwner, addAgentCollaborator, requestCollaborator, listCollaborators, addCollaborator, removeCollaborator, listVersions, listDocs, addDoc, getDoc, setDoc, updateDoc, deleteDoc, shareApp, listLinks, revokeLink, revokeLinks, requestPublic, cancelPublicRequest, makePrivate, listComments, getComment, replyComment, resolveComment, reopenComment, downloadCommentAudio, refreshThumbnail, refreshAllThumbnails, uploadFile, requestTemplate, findTemplates, myTemplates, useTemplate, unlistTemplate, checkoutTemplateFiles, } from './apps.controller.js';
58
+ import { publishApp, listApps, rollbackApp, transferApp, getAppOwner, setAppOwner, addAgentCollaborator, requestCollaborator, listCollaborators, addCollaborator, removeCollaborator, listVersions, listDocs, addDoc, getDoc, setDoc, updateDoc, deleteDoc, shareApp, listLinks, revokeLink, revokeLinks, requestPublic, cancelPublicRequest, makePrivate, listComments, getComment, replyComment, resolveComment, reopenComment, downloadCommentAudio, refreshThumbnail, refreshAllThumbnails, uploadFile, requestTemplate, findTemplates, myTemplates, useTemplate, unlistTemplate, checkoutTemplateFiles, createHandoff, completeHandoff, getHandoff, listHandoffs, ackHandoff, cancelHandoff, } from './apps.controller.js';
55
59
  const C = CREWLY_APPS_CONSTANTS;
56
60
  /**
57
61
  * The declared body size, or null when the request does not say.
@@ -147,6 +151,13 @@ export function createAppsRouter() {
147
151
  router.post('/templates/:templateId/unlist', unlistTemplate);
148
152
  router.post('/:appId/template-request', requestTemplate);
149
153
  router.post('/:appId/template-files', checkoutTemplateFiles);
154
+ // File handoff (large files between agents): registered before the /:appId routes.
155
+ router.post('/handoffs', createHandoff);
156
+ router.get('/handoffs', listHandoffs);
157
+ router.get('/handoffs/:handoffId', getHandoff);
158
+ router.post('/handoffs/:handoffId/complete', completeHandoff);
159
+ router.post('/handoffs/:handoffId/ack', ackHandoff);
160
+ router.delete('/handoffs/:handoffId', cancelHandoff);
150
161
  router.post('/thumbnails/refresh-all', refreshAllThumbnails);
151
162
  router.post('/:appId/thumbnail/refresh', refreshThumbnail);
152
163
  router.post('/:appId/transfer', transferApp);
@@ -1 +1 @@
1
- {"version":3,"file":"apps.routes.js","sourceRoot":"","sources":["../../../../../../backend/src/controllers/apps/apps.routes.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"apps.routes.js","sourceRoot":"","sources":["../../../../../../backend/src/controllers/apps/apps.routes.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"skills-reference.module.d.ts","sourceRoot":"","sources":["../../../../../../../backend/src/services/ai/prompt-modules/skills-reference.module.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,YAAY,EAAE,MAAM,8BAA8B,CAAC;AAE1E;;;;;;;;GAQG;AACH,qBAAa,qBAAsB,YAAW,YAAY;IACzD,IAAI,SAAuB;IAC3B,QAAQ,SAAK;IACb,SAAS,SAAO;IAChB,WAAW,UAAS;IAEpB;;OAEG;IACH,aAAa,CAAC,OAAO,EAAE,YAAY,GAAG,OAAO;IAI7C;;;;;;OAMG;IACG,KAAK,CAAC,MAAM,EAAE,YAAY,GAAG,OAAO,CAAC,MAAM,CAAC;IAelD;;;;;;;;;;;;;;;;OAgBG;IACH,OAAO,CAAC,eAAe;IAmDvB;;;;;;;;;;;;OAYG;IACH,OAAO,CAAC,sBAAsB;IAmB9B;;OAEG;IACH,OAAO,CAAC,eAAe;IAgFvB;;;OAGG;IACH,OAAO,CAAC,iBAAiB;IA0DzB;;;;;;;;;;;;;;;;;;OAkBG;IACH,OAAO,CAAC,kBAAkB;IA+D1B;;OAEG;IACH,OAAO,CAAC,kBAAkB;CAoC1B"}
1
+ {"version":3,"file":"skills-reference.module.d.ts","sourceRoot":"","sources":["../../../../../../../backend/src/services/ai/prompt-modules/skills-reference.module.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,YAAY,EAAE,MAAM,8BAA8B,CAAC;AAE1E;;;;;;;;GAQG;AACH,qBAAa,qBAAsB,YAAW,YAAY;IACzD,IAAI,SAAuB;IAC3B,QAAQ,SAAK;IACb,SAAS,SAAO;IAChB,WAAW,UAAS;IAEpB;;OAEG;IACH,aAAa,CAAC,OAAO,EAAE,YAAY,GAAG,OAAO;IAI7C;;;;;;OAMG;IACG,KAAK,CAAC,MAAM,EAAE,YAAY,GAAG,OAAO,CAAC,MAAM,CAAC;IAelD;;;;;;;;;;;;;;;;OAgBG;IACH,OAAO,CAAC,eAAe;IAoDvB;;;;;;;;;;;;OAYG;IACH,OAAO,CAAC,sBAAsB;IAmB9B;;OAEG;IACH,OAAO,CAAC,eAAe;IAgFvB;;;OAGG;IACH,OAAO,CAAC,iBAAiB;IA0DzB;;;;;;;;;;;;;;;;;;OAkBG;IACH,OAAO,CAAC,kBAAkB;IA+D1B;;OAEG;IACH,OAAO,CAAC,kBAAkB;CAoC1B"}
@@ -66,6 +66,7 @@ export class SkillsReferenceModule {
66
66
  `- \`${p}/drive-search\` — find files in Drive by text, type or folder`,
67
67
  `- \`${p}/drive-read\` — read a Drive file's content`,
68
68
  `- \`${p}/drive-upload\` — put a file or text into Drive`,
69
+ `- \`${p}/send-file\` / \`receive-file\` — hand a LARGE file (video, archive, up to 2 GB) to another agent of this account, on this or another machine, via a temporary Crewly Cloud relay (needs Cloud sign-in). **For big files prefer these over Drive or Slack**; the receiver deletes it, unclaimed files vanish after 24 h`,
69
70
  `- \`${p}/docs-read\` / \`docs-write\` — read a Google Doc as text; create one or append to it`,
70
71
  `- \`${p}/docs-comment\` — list, reply to, resolve or add comments in a Google Doc (the owner's feedback)`,
71
72
  `- \`${p}/sheets-read\` / \`sheets-write\` — read a range as rows; create a sheet or append rows`,
@@ -1 +1 @@
1
- {"version":3,"file":"skills-reference.module.js","sourceRoot":"","sources":["../../../../../../../backend/src/services/ai/prompt-modules/skills-reference.module.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"skills-reference.module.js","sourceRoot":"","sources":["../../../../../../../backend/src/services/ai/prompt-modules/skills-reference.module.ts"],"names":[],"mappings":"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"}
@@ -1,4 +1,4 @@
1
1
  {
2
- "commit": "819e2e7e41b084b9135b4c08b3fb7d152e84240c",
3
- "builtAt": "2026-10-09T16:59:09.247Z"
2
+ "commit": "f772e51e6d1f111dd389da2eb4988d0e71b50a8f",
3
+ "builtAt": "2026-10-10T02:41:09.664Z"
4
4
  }
@@ -1 +1 @@
1
- {"version":3,"file":"skills-reference.module.d.ts","sourceRoot":"","sources":["../../../../../../../backend/src/services/ai/prompt-modules/skills-reference.module.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,YAAY,EAAE,MAAM,8BAA8B,CAAC;AAE1E;;;;;;;;GAQG;AACH,qBAAa,qBAAsB,YAAW,YAAY;IACzD,IAAI,SAAuB;IAC3B,QAAQ,SAAK;IACb,SAAS,SAAO;IAChB,WAAW,UAAS;IAEpB;;OAEG;IACH,aAAa,CAAC,OAAO,EAAE,YAAY,GAAG,OAAO;IAI7C;;;;;;OAMG;IACG,KAAK,CAAC,MAAM,EAAE,YAAY,GAAG,OAAO,CAAC,MAAM,CAAC;IAelD;;;;;;;;;;;;;;;;OAgBG;IACH,OAAO,CAAC,eAAe;IAmDvB;;;;;;;;;;;;OAYG;IACH,OAAO,CAAC,sBAAsB;IAmB9B;;OAEG;IACH,OAAO,CAAC,eAAe;IAgFvB;;;OAGG;IACH,OAAO,CAAC,iBAAiB;IA0DzB;;;;;;;;;;;;;;;;;;OAkBG;IACH,OAAO,CAAC,kBAAkB;IA+D1B;;OAEG;IACH,OAAO,CAAC,kBAAkB;CAoC1B"}
1
+ {"version":3,"file":"skills-reference.module.d.ts","sourceRoot":"","sources":["../../../../../../../backend/src/services/ai/prompt-modules/skills-reference.module.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,YAAY,EAAE,MAAM,8BAA8B,CAAC;AAE1E;;;;;;;;GAQG;AACH,qBAAa,qBAAsB,YAAW,YAAY;IACzD,IAAI,SAAuB;IAC3B,QAAQ,SAAK;IACb,SAAS,SAAO;IAChB,WAAW,UAAS;IAEpB;;OAEG;IACH,aAAa,CAAC,OAAO,EAAE,YAAY,GAAG,OAAO;IAI7C;;;;;;OAMG;IACG,KAAK,CAAC,MAAM,EAAE,YAAY,GAAG,OAAO,CAAC,MAAM,CAAC;IAelD;;;;;;;;;;;;;;;;OAgBG;IACH,OAAO,CAAC,eAAe;IAoDvB;;;;;;;;;;;;OAYG;IACH,OAAO,CAAC,sBAAsB;IAmB9B;;OAEG;IACH,OAAO,CAAC,eAAe;IAgFvB;;;OAGG;IACH,OAAO,CAAC,iBAAiB;IA0DzB;;;;;;;;;;;;;;;;;;OAkBG;IACH,OAAO,CAAC,kBAAkB;IA+D1B;;OAEG;IACH,OAAO,CAAC,kBAAkB;CAoC1B"}
@@ -66,6 +66,7 @@ export class SkillsReferenceModule {
66
66
  `- \`${p}/drive-search\` — find files in Drive by text, type or folder`,
67
67
  `- \`${p}/drive-read\` — read a Drive file's content`,
68
68
  `- \`${p}/drive-upload\` — put a file or text into Drive`,
69
+ `- \`${p}/send-file\` / \`receive-file\` — hand a LARGE file (video, archive, up to 2 GB) to another agent of this account, on this or another machine, via a temporary Crewly Cloud relay (needs Cloud sign-in). **For big files prefer these over Drive or Slack**; the receiver deletes it, unclaimed files vanish after 24 h`,
69
70
  `- \`${p}/docs-read\` / \`docs-write\` — read a Google Doc as text; create one or append to it`,
70
71
  `- \`${p}/docs-comment\` — list, reply to, resolve or add comments in a Google Doc (the owner's feedback)`,
71
72
  `- \`${p}/sheets-read\` / \`sheets-write\` — read a range as rows; create a sheet or append rows`,
@@ -1 +1 @@
1
- {"version":3,"file":"skills-reference.module.js","sourceRoot":"","sources":["../../../../../../../backend/src/services/ai/prompt-modules/skills-reference.module.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"skills-reference.module.js","sourceRoot":"","sources":["../../../../../../../backend/src/services/ai/prompt-modules/skills-reference.module.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "crewly",
3
- "version": "1.20.281",
3
+ "version": "1.20.282",
4
4
  "type": "module",
5
5
  "description": "Multi-agent orchestration platform for AI coding teams — coordinates Claude Code, Gemini CLI, and Codex agents with a real-time web dashboard",
6
6
  "workspaces": [