crewly 1.20.336 → 1.20.338

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 (41) hide show
  1. package/config/skills/_common/lib.sh +11 -0
  2. package/config/skills/agent/core/app-data/SKILL.md +12 -0
  3. package/config/skills/agent/core/app-data/execute.sh +42 -4
  4. package/config/skills/agent/core/app-data/execute.test.sh +35 -1
  5. package/config/skills/agent/core/slack-post/SKILL.md +1 -1
  6. package/config/skills/agent/core/slack-post/execute.sh +6 -5
  7. package/dist/backend/backend/src/controllers/apps/apps.controller.d.ts +7 -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 +23 -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 +1 -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 +3 -1
  14. package/dist/backend/backend/src/controllers/apps/apps.routes.js.map +1 -1
  15. package/dist/backend/backend/src/controllers/slack/slack.controller.d.ts.map +1 -1
  16. package/dist/backend/backend/src/controllers/slack/slack.controller.js +27 -13
  17. package/dist/backend/backend/src/controllers/slack/slack.controller.js.map +1 -1
  18. package/dist/backend/backend/src/services/apps/app-wake-message.d.ts.map +1 -1
  19. package/dist/backend/backend/src/services/apps/app-wake-message.js +1 -0
  20. package/dist/backend/backend/src/services/apps/app-wake-message.js.map +1 -1
  21. package/dist/backend/backend/src/services/apps/apps.service.d.ts +24 -0
  22. package/dist/backend/backend/src/services/apps/apps.service.d.ts.map +1 -1
  23. package/dist/backend/backend/src/services/apps/apps.service.js +45 -0
  24. package/dist/backend/backend/src/services/apps/apps.service.js.map +1 -1
  25. package/dist/backend/backend/src/services/slack/slack-agent-post.service.d.ts +46 -0
  26. package/dist/backend/backend/src/services/slack/slack-agent-post.service.d.ts.map +1 -1
  27. package/dist/backend/backend/src/services/slack/slack-agent-post.service.js +55 -2
  28. package/dist/backend/backend/src/services/slack/slack-agent-post.service.js.map +1 -1
  29. package/dist/backend/backend/src/services/slack/slack-initializer.d.ts.map +1 -1
  30. package/dist/backend/backend/src/services/slack/slack-initializer.js +4 -0
  31. package/dist/backend/backend/src/services/slack/slack-initializer.js.map +1 -1
  32. package/dist/backend/backend/src/services/slack/slack-team-channel.service.d.ts +7 -0
  33. package/dist/backend/backend/src/services/slack/slack-team-channel.service.d.ts.map +1 -1
  34. package/dist/backend/backend/src/services/slack/slack-team-channel.service.js +12 -0
  35. package/dist/backend/backend/src/services/slack/slack-team-channel.service.js.map +1 -1
  36. package/dist/backend/build-info.json +2 -2
  37. package/dist/cli/backend/src/services/slack/slack-team-channel.service.d.ts +7 -0
  38. package/dist/cli/backend/src/services/slack/slack-team-channel.service.d.ts.map +1 -1
  39. package/dist/cli/backend/src/services/slack/slack-team-channel.service.js +12 -0
  40. package/dist/cli/backend/src/services/slack/slack-team-channel.service.js.map +1 -1
  41. package/package.json +1 -1
@@ -222,6 +222,11 @@ api_call() {
222
222
  local url="${CREWLY_API_URL}/api${endpoint}"
223
223
  _prune_skill_output
224
224
  local args=(-s -w '\n%{http_code}' -X "$method")
225
+ # A binary download (app-data --download): the body goes to CREWLY_API_DOWNLOAD_TO
226
+ # byte for byte and the response headers to CREWLY_API_DOWNLOAD_TO.hdr; stdout stays empty.
227
+ if [ -n "${CREWLY_API_DOWNLOAD_TO:-}" ]; then
228
+ args+=(-o "${CREWLY_API_DOWNLOAD_TO}" -D "${CREWLY_API_DOWNLOAD_TO}.hdr")
229
+ fi
225
230
  # Optional ceiling on the whole request (seconds). A caller that can tell
226
231
  # "the server is slow" from "it failed" (poll-tasks' claim) sets it; curl
227
232
  # then exits 28 instead of hanging until the skill runner kills the call.
@@ -314,6 +319,12 @@ api_call() {
314
319
  http_code=$(echo "$response" | tail -1)
315
320
  local body_content
316
321
  body_content=$(echo "$response" | sed '$d')
322
+ # A failed download leaves the error JSON in the target file: report it, then drop the partial file.
323
+ if [ -n "${CREWLY_API_DOWNLOAD_TO:-}" ] && ! { [ "$http_code" -ge 200 ] 2>/dev/null && [ "$http_code" -lt 300 ] 2>/dev/null; }; then
324
+ body_content=$(head -c 4000 "${CREWLY_API_DOWNLOAD_TO}" 2>/dev/null | tr -d '\000')
325
+ rm -f "${CREWLY_API_DOWNLOAD_TO}"
326
+ printf '%s' "$body_content" | jq -e . >/dev/null 2>&1 || body_content=""
327
+ fi
317
328
 
318
329
  if [ "$http_code" -ge 200 ] 2>/dev/null && [ "$http_code" -lt 300 ] 2>/dev/null; then
319
330
  _cap_skill_output "$body_content"
@@ -77,6 +77,18 @@ Output:
77
77
  bash execute.sh --app <appId> --upload ./cover.png
78
78
  bash execute.sh --app <appId> --update posts <docId> --data '{"images":[{"src":"<url from the upload>"}]}'
79
79
  ```
80
+ - `--download <fileId|file url> [--out <path>]` fetches a file stored in the app
81
+ (for example a screenshot the owner uploaded in the app: the data holds its
82
+ `fileId` or a `/_f/` URL) into your project and prints
83
+ `{ success, path, name, size, contentType }`. Default location:
84
+ `<project>/inbox/app-files/<appId>/<name>`; `--out` must be inside your project
85
+ directory (not a symlink, not under `~/.crewly`). Up to 10 MB. **To read the
86
+ numbers in an owner screenshot: `--download` it, then open the image file with
87
+ your normal file-read tool.** Works for the app's owner agents and
88
+ collaborators; an app owned by another Crewly account answers `not_found`.
89
+ ```bash
90
+ bash execute.sh --app <appId> --download <fileId>
91
+ ```
80
92
  - `--list` pages with `--after <next>` until `next` is null.
81
93
  - `--update` is a shallow merge; `--set` replaces the whole document.
82
94
  - `--if-rev` makes an update conditional: if the owner changed the doc since
@@ -21,6 +21,7 @@ Usage:
21
21
  bash execute.sh --app <appId> --add <collection> --data '{"name":"milk"}'
22
22
  bash execute.sh --app <appId> --delete <collection> <docId>
23
23
  bash execute.sh --app <appId> --upload <path-to-image> [--name <file name>]
24
+ bash execute.sh --app <appId> --download <fileId|file url> [--out <path>]
24
25
  bash execute.sh --app <appId> --request-access [--scope team|agent] [--reason "why"]
25
26
  bash execute.sh --app <appId> --collaborators
26
27
  bash execute.sh --app <appId> --owner
@@ -38,6 +39,7 @@ Options:
38
39
  --out File to write for --get-field: inside your project directory, not an existing symlink
39
40
  --decode With --get-field: base64-decode the value (a data:...;base64, prefix is dropped) so a photo is written as the real image
40
41
  --upload Put a file (an image for a post) into the app and print its url; works for the owner's agents and for collaborators. Regular, non-symlink file inside your project directory, up to 10 MB (the app's own limit may be smaller)
42
+ --download Fetch a file stored in the app (a screenshot the owner uploaded: the fileId or /_f/ URL in the app data) into your project, default <project>/inbox/app-files/<appId>/<name>; prints {success, path, name, size, contentType}. Open an image with your file-read tool to see it. Up to 10 MB
41
43
  --name File name to show for --upload (default: the file's name)
42
44
  --request-access Ask the owner to let your team (default) or only you work in an app another team published; a card goes to the owner, nothing is granted until they tap Allow
43
45
  --collaborators Who the owner let work in the app
@@ -138,7 +140,15 @@ resolve_out_path() {
138
140
  printf '%s/%s' "$real_dir" "$base"
139
141
  }
140
142
 
141
- APP=""; OP=""; UPLOAD=""; NAME=""; COLL=""; DOC=""; DATA=""; IF_REV=""; LIMIT=""; AFTER=""; SCOPE=""; REASON=""; SET_OWNER=""; WHO=""; FIELD=""; OUT_FILE=""; DECODE=""
143
+ # The 16-character file id out of a bare id or a file URL (https://apps.../_f/<token>/<fileId>[?q]).
144
+ file_id_of() {
145
+ local v="${1%%[?#]*}"
146
+ v="${v##*/}"
147
+ [[ "$v" =~ ^[a-z0-9]{16}$ ]] || return 1
148
+ printf '%s' "$v"
149
+ }
150
+
151
+ APP=""; OP=""; DOWNLOAD=""; UPLOAD=""; NAME=""; COLL=""; DOC=""; DATA=""; IF_REV=""; LIMIT=""; AFTER=""; SCOPE=""; REASON=""; SET_OWNER=""; WHO=""; FIELD=""; OUT_FILE=""; DECODE=""
142
152
  while [[ $# -gt 0 ]]; do
143
153
  case "$1" in
144
154
  --app) [ $# -ge 2 ] || error_exit "--app requires a value"; APP="$2"; shift 2 ;;
@@ -160,6 +170,7 @@ while [[ $# -gt 0 ]]; do
160
170
  --limit) [ $# -ge 2 ] || error_exit "--limit requires a value"; LIMIT="$2"; shift 2 ;;
161
171
  --after) [ $# -ge 2 ] || error_exit "--after requires a value"; AFTER="$2"; shift 2 ;;
162
172
  --upload) [ $# -ge 2 ] || error_exit "--upload requires a file path"; OP="upload"; UPLOAD="$2"; shift 2 ;;
173
+ --download) [ $# -ge 2 ] || error_exit "--download requires a file id or file URL"; OP="download"; DOWNLOAD="$2"; shift 2 ;;
163
174
  --name) [ $# -ge 2 ] || error_exit "--name requires a value"; NAME="$2"; shift 2 ;;
164
175
  --request-access) OP="request-access"; shift ;;
165
176
  --collaborators) OP="collaborators"; shift ;;
@@ -174,7 +185,7 @@ while [[ $# -gt 0 ]]; do
174
185
  done
175
186
 
176
187
  [ -n "$APP" ] || error_exit "--app is required"
177
- [ -n "$OP" ] || error_exit "one of --list / --get / --set / --update / --add / --delete / --upload / --request-access / --collaborators / --owner / --add-collaborator is required"
188
+ [ -n "$OP" ] || error_exit "one of --list / --get / --set / --update / --add / --delete / --upload / --download / --request-access / --collaborators / --owner / --add-collaborator is required"
178
189
  [[ "$APP" =~ ^[a-z0-9]{10}$ ]] || error_exit "--app must be a 10-character app id"
179
190
  case "$COLL" in .|..) error_exit "collection cannot be . or .." ;; esac
180
191
  case "$DOC" in .|..) error_exit "doc id cannot be . or .." ;; esac
@@ -189,6 +200,33 @@ case "$OP" in
189
200
  printf '%s' "$RESPONSE" | jq -c '{success: true, fileId: .data.fileId, name: .data.name, size: .data.size, contentType: .data.contentType, url: .data.url}'
190
201
  exit 0
191
202
  ;;
203
+ download)
204
+ FILE_ID="$(file_id_of "$DOWNLOAD")" || error_exit "--download needs the 16-character file id (or the file URL) from the app data"
205
+ PROJECT_DIR="$(cd "${CREWLY_PROJECT_PATH:-$PWD}" && pwd -P)" || error_exit "cannot resolve the project directory"
206
+ if [ -n "$OUT_FILE" ]; then
207
+ TARGET="$(resolve_out_path "$OUT_FILE")" || exit 1
208
+ else
209
+ case "$PROJECT_DIR/" in "${CREWLY_HOME:-$HOME/.crewly}"/*|"$HOME/.crewly"/*) error_exit "your project directory is inside Crewly's home directory" ;; esac
210
+ mkdir -p "$PROJECT_DIR/inbox/app-files/$APP" || error_exit "cannot create inbox/app-files/$APP in your project directory"
211
+ TARGET=""
212
+ fi
213
+ DL_TMP="$(mktemp "${TARGET:-$PROJECT_DIR/inbox/app-files/$APP/.download}.XXXXXX")" || error_exit "cannot write the download into your project directory"
214
+ trap 'rm -f "$DL_TMP" "$DL_TMP.hdr"' EXIT
215
+ DL_OUT=$(CREWLY_API_DOWNLOAD_TO="$DL_TMP" call GET "/apps/${APP}/files/${FILE_ID}") || { printf '%s\n' "$DL_OUT"; exit 1; }
216
+ DL_NAME="$(grep -i '^x-file-name:' "$DL_TMP.hdr" | tail -1 | sed -E 's/^[^:]*:[[:space:]]*//' | tr -d '\r')"
217
+ DL_NAME="$(printf '%b' "$(printf '%s' "$DL_NAME" | sed 's/%/\\x/g')")"
218
+ DL_TYPE="$(grep -i '^content-type:' "$DL_TMP.hdr" | tail -1 | sed -E 's/^[^:]*:[[:space:]]*//' | tr -d '\r' | cut -d';' -f1)"
219
+ [ -s "$DL_TMP" ] || error_exit "the download came back empty"
220
+ if [ -z "$TARGET" ]; then
221
+ SAFE_NAME="$(printf '%s' "${DL_NAME:-$FILE_ID}" | tr -d '\000-\037' | sed -E 's#[/\\]#_#g; s#^\.+##')"
222
+ [ -n "$SAFE_NAME" ] || SAFE_NAME="$FILE_ID"
223
+ TARGET="$PROJECT_DIR/inbox/app-files/$APP/$SAFE_NAME"
224
+ [ ! -L "$TARGET" ] || error_exit "$TARGET is a symbolic link; refusing to overwrite it"
225
+ fi
226
+ mv "$DL_TMP" "$TARGET"
227
+ jq -cn --arg p "$TARGET" --arg n "${DL_NAME:-$(basename "$TARGET")}" --arg t "${DL_TYPE:-application/octet-stream}" --argjson s "$(wc -c < "$TARGET" | tr -d ' ')" '{success: true, path: $p, name: $n, size: $s, contentType: $t}'
228
+ exit 0
229
+ ;;
192
230
  request-access)
193
231
  case "$SCOPE" in ""|team|agent) ;; *) error_exit "--scope is team or agent" ;; esac
194
232
  BODY=$(jq -cn --arg s "$SCOPE" --arg r "$REASON" '{} + (if $s != "" then {scope: $s} else {} end) + (if $r != "" then {reason: $r} else {} end)')
@@ -228,7 +266,7 @@ case "$OP" in
228
266
  [ -n "$LIMIT" ] && Q="limit=$(uri "$LIMIT")"
229
267
  [ -n "$AFTER" ] && Q="${Q:+$Q&}after=$(uri "$AFTER")"
230
268
  RESPONSE=$(call GET "${BASE}${Q:+?$Q}") || { printf '%s\n' "$RESPONSE"; exit 1; }
231
- printf '%s' "$RESPONSE" | jq -c '{success: true, docs: [.data.docs[]? | {id, data, rev, updatedAt, updatedBy: (.updatedBy.kind // null)} + (if .updatedBy.kind == "agent" then {by: .updatedBy.id} else {} end)], next: .data.next} + (if .data.truncated then {truncated: .data.truncated, truncatedHint: .data.truncatedHint} else {} end)'
269
+ printf '%s' "$RESPONSE" | jq -c '(tojson | test("\"fileId\"|/_f/")) as $hasFile | {success: true, docs: [.data.docs[]? | {id, data, rev, updatedAt, updatedBy: (.updatedBy.kind // null)} + (if .updatedBy.kind == "agent" then {by: .updatedBy.id} else {} end)], next: .data.next} + (if .data.truncated then {truncated: .data.truncated, truncatedHint: .data.truncatedHint} else {} end) + (if $hasFile then {fileHint: "Files in this data (fileId / /_f/ URL) can be fetched with --download <fileId|url>, then opened with your file-read tool."} else {} end)'
232
270
  ;;
233
271
  get-field)
234
272
  [ -n "$FIELD" ] || error_exit "--field is required for --get-field (a JSON pointer such as /photo)"
@@ -249,7 +287,7 @@ case "$OP" in
249
287
  ;;
250
288
  get)
251
289
  RESPONSE=$(call GET "${BASE}/$(uri "$DOC")") || { printf '%s\n' "$RESPONSE"; exit 1; }
252
- printf '%s' "$RESPONSE" | jq -c '{success: true, id: .data.id, data: .data.data, rev: .data.rev, updatedAt: .data.updatedAt} + (if .data.truncated then {truncated: .data.truncated, truncatedHint: .data.truncatedHint} else {} end)'
290
+ printf '%s' "$RESPONSE" | jq -c '(tojson | test("\"fileId\"|/_f/")) as $hasFile | {success: true, id: .data.id, data: .data.data, rev: .data.rev, updatedAt: .data.updatedAt} + (if .data.truncated then {truncated: .data.truncated, truncatedHint: .data.truncatedHint} else {} end) + (if $hasFile then {fileHint: "Files in this data (fileId / /_f/ URL) can be fetched with --download <fileId|url>, then opened with your file-read tool."} else {} end)'
253
291
  ;;
254
292
  set)
255
293
  need_data
@@ -58,7 +58,19 @@ class H(BaseHTTPRequestHandler):
58
58
  if method == 'DELETE':
59
59
  return send(200, {'success': True, 'data': {'deleted': True}})
60
60
  send(200, {'success': True, 'data': DOC})
61
- def do_GET(self): self._reply('GET')
61
+ def do_GET(self):
62
+ if '/files/' in self.path:
63
+ open(LOG, 'w').write(json.dumps({'method': 'GET', 'path': self.path, 'session': self.headers.get('x-agent-session')}))
64
+ if self.path.endswith('aaaaaaaaaaaaaaaa'):
65
+ body = b'\x89PNG\r\n\x1a\n\x00\x01'
66
+ self.send_response(200); self.send_header('Content-Type', 'image/png'); self.send_header('X-File-Name', 'subs%20shot.png'); self.send_header('Content-Length', str(len(body))); self.end_headers()
67
+ return self.wfile.write(body)
68
+ self.send_response(404); self.send_header('Content-Type', 'application/json'); self.end_headers()
69
+ return self.wfile.write(json.dumps({'success': False, 'error': 'not_found', 'message': 'No such file in this app.'}).encode())
70
+ if self.path.endswith('/withfile'):
71
+ self.send_response(200); self.send_header('Content-Type', 'application/json'); self.end_headers()
72
+ return self.wfile.write(json.dumps({'success': True, 'data': {'id': 'withfile', 'data': {'shots': [{'fileId': 'aaaaaaaaaaaaaaaa'}]}, 'rev': 1, 'updatedAt': 't'}}).encode())
73
+ self._reply('GET')
62
74
  def do_DELETE(self): self._reply('DELETE')
63
75
  def _body(self, m):
64
76
  n = int(self.headers.get('content-length', '0')); body = self.rfile.read(n).decode() if n else ''
@@ -237,5 +249,27 @@ check "get-field: non-string field refused" "$(printf '%s' "$OUT" | grep -c 'not
237
249
  OUT=$(run_err --app $A --get-field items milk --out "$WORK/proj/x.txt" || true)
238
250
  check "get-field: --field required" "$(printf '%s' "$OUT" | grep -c -- '--field is required')" "1"
239
251
 
252
+ # --download: bytes saved into <project>/inbox/app-files/<app>/<name>, receipt printed, same path guard.
253
+ OUT=$(run --app $A --download aaaaaaaaaaaaaaaa)
254
+ check "download: receipt" "$(printf '%s' "$OUT" | jq -c '{success, name, size, contentType}')" '{"success":true,"name":"subs shot.png","size":10,"contentType":"image/png"}'
255
+ check "download: request" "$(jq -c '{method, path, session}' "$STUB_LOG")" "{\"method\":\"GET\",\"path\":\"/api/apps/$A/files/aaaaaaaaaaaaaaaa\",\"session\":\"dev-ella\"}"
256
+ DLP="$(printf '%s' "$OUT" | jq -r .path)"
257
+ check "download: default location" "${DLP#$(cd "$WORK/proj" && pwd -P)/}" "inbox/app-files/$A/subs shot.png"
258
+ check "download: bytes intact" "$(xxd -p "$DLP" | tr -d '\n')" "89504e470d0a1a0a0001"
259
+ check "download: no temp files left" "$(ls -A "$WORK/proj/inbox/app-files/$A" | wc -l | tr -d ' ')" "1"
260
+ OUT=$(run --app $A --download "https://apps.crewlyai.com/_f/sometoken/aaaaaaaaaaaaaaaa?x=1" --out "$WORK/proj/mine.png")
261
+ check "download: url + --out" "$(printf '%s' "$OUT" | jq -r '.path | split("/") | last')" "mine.png"
262
+ OUT=$(run --app $A --download bbbbbbbbbbbbbbbb; true)
263
+ check "download: Cloud 404 passed through" "$(printf '%s' "$OUT" | jq -c '{success, status, reason}')" '{"success":false,"status":404,"reason":"not_found"}'
264
+ check "download: failed download leaves no file" "$(ls -A "$WORK/proj/inbox/app-files/$A" | wc -l | tr -d ' ')" "1"
265
+ OUT=$(run_err --app $A --download "not-an-id" || true)
266
+ check "download: bad id refused" "$(printf '%s' "$OUT" | grep -c '16-character')" "1"
267
+ OUT=$(run_err --app $A --download aaaaaaaaaaaaaaaa --out "$WORK/outside-dl.png" || true)
268
+ check "download: --out outside the project refused" "$(printf '%s' "$OUT" | grep -c 'inside your project')" "1"
269
+ OUT=$(run_err --app $A --download aaaaaaaaaaaaaaaa --out "$WORK/home/.crewly/x.png" || true)
270
+ check "download: --out under ~/.crewly refused" "$(printf '%s' "$OUT" | grep -c "inside")" "1"
271
+ OUT=$(run --app $A --get items withfile)
272
+ check "get: file reference gets the --download hint" "$(printf '%s' "$OUT" | jq -r '.fileHint | test("--download")')" "true"
273
+
240
274
  echo "app-data: $PASS passed, $FAIL failed"
241
275
  [ "$FAIL" -eq 0 ]
@@ -112,7 +112,7 @@ two are told apart. Write ids exactly as Slack shows them.
112
112
  | `--text-file` | | Read the text from a file |
113
113
  | `--thread` | `-t` | Slack thread timestamp to reply inside, or the `[SLACK-THREAD:<key>]` key from your prompt |
114
114
  | `--new-topic` | | A new top-level message. Use it for scheduled output (a briefing, a triage summary): without it, a post into a conversation where you still owe an answer from the last 30 minutes goes into that thread as the answer |
115
- | `--file` | `-f` | Attach a file (repeatable, up to 5, inside your project) for a colleague on another machine; it reaches their project inbox automatically. Needs the machine signed in to Crewly Cloud. Output has `filesNotSent` if one did not go |
115
+ | `--file` | `-f` | Upload a file into the channel/thread right after the text (repeatable, up to 5; relative paths resolve against your project). Sent by your own bot, or the workspace bot with your name when you have none. Output has `filesNotSent` with Slack's error code if one did not go |
116
116
  | `--json` | `-j` | Raw JSON payload |
117
117
 
118
118
  ## Environment
@@ -24,7 +24,7 @@ Options:
24
24
  --text-file Read the message text from a file
25
25
  --thread | -t Slack thread timestamp to reply inside
26
26
  --new-topic A new top-level post (scheduled output), never an answer to an open question
27
- --file | -f Attach a file for a colleague on another machine (repeatable, up to 5)
27
+ --file | -f Upload a file into the channel (repeatable, up to 5)
28
28
  --json | -j Raw JSON payload
29
29
  --help | -h Show this help
30
30
  EOF_USAGE
@@ -137,10 +137,11 @@ out = {
137
137
  "kind": d.get("kind", ""),
138
138
  "postedAs": d.get("postedAs", ""),
139
139
  }
140
- fh = full.get("fileHandoff") or {}
141
- if fh.get("failed"):
142
- out["filesNotSent"] = fh["failed"]
143
- out["warning"] = "The message was posted, but some files did not go; tell your colleague or send them again with --file."
140
+ if d.get("filesSent"):
141
+ out["filesSent"] = d["filesSent"]
142
+ if d.get("filesFailed"):
143
+ out["filesNotSent"] = d["filesFailed"]
144
+ out["warning"] = "The message was posted, but Slack did not take some files (see the error code in filesNotSent); fix that or tell the owner. Do not paste the file contents instead."
144
145
  print(json.dumps(out))
145
146
  '
146
147
  exit 0
@@ -78,6 +78,13 @@ export declare const deleteDoc: (req: Request, res: Response) => Promise<void>;
78
78
  * quota) pass through with their own status and code.
79
79
  */
80
80
  export declare const uploadFile: (req: Request, res: Response) => Promise<void>;
81
+ /**
82
+ * GET /api/apps/:appId/files/:fileId — the bytes of a file stored in the app
83
+ * (an image the owner uploaded in it, say). Same access as the app's data;
84
+ * answers the raw file with its `Content-Type`, `Content-Disposition` and a
85
+ * URI-encoded `X-File-Name`. An app of another account answers 404.
86
+ */
87
+ export declare function downloadFile(req: Request, res: Response): Promise<void>;
81
88
  /** GET /api/apps/:appId/comments?status=open|resolved|all (crewly#1056) */
82
89
  export declare const listComments: (req: Request, res: Response) => Promise<void>;
83
90
  /** GET /api/apps/:appId/comments/:commentId */
@@ -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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"}
@@ -190,6 +190,29 @@ export const uploadFile = handle(async (req, caller) => {
190
190
  logger.info('App file uploaded', { appId: req.params.appId, fileId: result.fileId, size: result.size, agent: caller.agentSession ?? 'owner' });
191
191
  return result;
192
192
  }, 201);
193
+ /**
194
+ * GET /api/apps/:appId/files/:fileId — the bytes of a file stored in the app
195
+ * (an image the owner uploaded in it, say). Same access as the app's data;
196
+ * answers the raw file with its `Content-Type`, `Content-Disposition` and a
197
+ * URI-encoded `X-File-Name`. An app of another account answers 404.
198
+ */
199
+ export async function downloadFile(req, res) {
200
+ try {
201
+ const caller = callerOf(req);
202
+ const file = await getAppsParts().service.downloadFile(req.params.appId, req.params.fileId, caller);
203
+ const name = (file.name ?? req.params.fileId).replace(/[^\w.\- ]/g, '_');
204
+ res.status(200);
205
+ res.setHeader('Content-Type', file.contentType);
206
+ res.setHeader('Content-Disposition', `attachment; filename="${name}"`);
207
+ res.setHeader('X-File-Name', encodeURIComponent(file.name ?? req.params.fileId));
208
+ res.setHeader('X-Content-Type-Options', 'nosniff');
209
+ res.send(file.data);
210
+ logger.info('App file downloaded', { appId: req.params.appId, fileId: req.params.fileId, size: file.data.length, agent: caller.agentSession ?? 'owner' });
211
+ }
212
+ catch (err) {
213
+ sendAppsError(res, err);
214
+ }
215
+ }
193
216
  /** GET /api/apps/:appId/comments?status=open|resolved|all (crewly#1056) */
194
217
  export const listComments = handle((req, caller) => getAppsParts().service.listComments(req.params.appId, req.query.status, caller));
195
218
  /** GET /api/apps/:appId/comments/:commentId */
@@ -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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"}
@@ -34,6 +34,7 @@
34
34
  * - DELETE /:appId/capability-request — withdraw it
35
35
  * - POST /:appId/make-private — private again (instant)
36
36
  * - POST /:appId/files — upload a file (raw body, `X-File-Name`); answers its URL
37
+ * - GET /:appId/files/:fileId — the bytes of a stored file (an owner upload); app-data --download
37
38
  * - GET /:appId/comments — `?status=open|resolved|all` (crewly#1056)
38
39
  * - GET /:appId/comments/:commentId — one thread
39
40
  * - POST /:appId/comments/:commentId/replies — reply `{ text }`
@@ -1 +1 @@
1
- {"version":3,"file":"apps.routes.d.ts","sourceRoot":"","sources":["../../../../../../backend/src/controllers/apps/apps.routes.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA8DG;AAEH,OAAgB,EAAE,MAAM,EAAE,KAAK,YAAY,EAAE,KAAK,OAAO,EAAE,KAAK,cAAc,EAAE,KAAK,QAAQ,EAAE,MAAM,SAAS,CAAC;AA8E/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,CAkEzC"}
1
+ {"version":3,"file":"apps.routes.d.ts","sourceRoot":"","sources":["../../../../../../backend/src/controllers/apps/apps.routes.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA+DG;AAEH,OAAgB,EAAE,MAAM,EAAE,KAAK,YAAY,EAAE,KAAK,OAAO,EAAE,KAAK,cAAc,EAAE,KAAK,QAAQ,EAAE,MAAM,SAAS,CAAC;AA+E/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,CAmEzC"}
@@ -34,6 +34,7 @@
34
34
  * - DELETE /:appId/capability-request — withdraw it
35
35
  * - POST /:appId/make-private — private again (instant)
36
36
  * - POST /:appId/files — upload a file (raw body, `X-File-Name`); answers its URL
37
+ * - GET /:appId/files/:fileId — the bytes of a stored file (an owner upload); app-data --download
37
38
  * - GET /:appId/comments — `?status=open|resolved|all` (crewly#1056)
38
39
  * - GET /:appId/comments/:commentId — one thread
39
40
  * - POST /:appId/comments/:commentId/replies — reply `{ text }`
@@ -64,7 +65,7 @@
64
65
  import express, { Router } from 'express';
65
66
  import { ownerOrVerifiedAgent, rejectNonOwner } from '../../middleware/caller-identity.middleware.js';
66
67
  import { CREWLY_APPS_CONSTANTS } from '../../constants.js';
67
- import { publishApp, listApps, rollbackApp, transferApp, deleteApp, getAppOwner, setAppOwner, addAgentCollaborator, requestCollaborator, listCollaborators, addCollaborator, removeCollaborator, listVersions, listDocs, addDoc, getDoc, getDocField, setDoc, updateDoc, deleteDoc, shareApp, listLinks, revokeLink, revokeLinks, requestPublic, cancelPublicRequest, makePrivate, requestCapabilities, cancelCapabilityRequest, listComments, getComment, replyComment, resolveComment, reopenComment, downloadCommentAudio, refreshThumbnail, refreshAllThumbnails, uploadFile, requestTemplate, findTemplates, myTemplates, useTemplate, unlistTemplate, checkoutTemplateFiles, createHandoff, completeHandoff, getHandoff, listHandoffs, ackHandoff, cancelHandoff, createUploadRequest, getUploadRequest, cancelUploadRequest, createShare, completeShare, getShare, listShares, cancelShare, } from './apps.controller.js';
68
+ import { publishApp, listApps, rollbackApp, transferApp, deleteApp, getAppOwner, setAppOwner, addAgentCollaborator, requestCollaborator, listCollaborators, addCollaborator, removeCollaborator, listVersions, listDocs, addDoc, getDoc, getDocField, setDoc, updateDoc, deleteDoc, shareApp, listLinks, revokeLink, revokeLinks, requestPublic, cancelPublicRequest, makePrivate, requestCapabilities, cancelCapabilityRequest, listComments, getComment, replyComment, resolveComment, reopenComment, downloadCommentAudio, refreshThumbnail, refreshAllThumbnails, uploadFile, downloadFile, requestTemplate, findTemplates, myTemplates, useTemplate, unlistTemplate, checkoutTemplateFiles, createHandoff, completeHandoff, getHandoff, listHandoffs, ackHandoff, cancelHandoff, createUploadRequest, getUploadRequest, cancelUploadRequest, createShare, completeShare, getShare, listShares, cancelShare, } from './apps.controller.js';
68
69
  const C = CREWLY_APPS_CONSTANTS;
69
70
  /**
70
71
  * The declared body size, or null when the request does not say.
@@ -190,6 +191,7 @@ export function createAppsRouter() {
190
191
  router.delete('/:appId/collaborators/:entryId', ownerOnly('Only the owner can remove a collaborator.'), removeCollaborator);
191
192
  router.post('/:appId/rollback', rollbackApp);
192
193
  router.get('/:appId/versions', listVersions);
194
+ router.get('/:appId/files/:fileId', downloadFile);
193
195
  router.get('/:appId/data/:collection', listDocs);
194
196
  router.post('/:appId/data/:collection', addDoc);
195
197
  router.get('/:appId/data/:collection/:docId', getDoc);
@@ -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":"slack.controller.d.ts","sourceRoot":"","sources":["../../../../../../backend/src/controllers/slack/slack.controller.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAsCH,QAAA,MAAM,MAAM,4CAAW,CAAC;AA6BxB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAwCG;AACH,wBAAsB,2BAA2B,CAAC,MAAM,EAAE;IACxD,SAAS,EAAE,MAAM,CAAC;IAClB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,iBAAiB,CAAC,EAAE,MAAM,CAAC;IAC3B,OAAO,EAAE,MAAM,CAAC;IAChB;;;;;OAKG;IACH,SAAS,EAAE,MAAM,GAAG,aAAa,GAAG,cAAc,CAAC;CACpD,GAAG,OAAO,CAAC,IAAI,CAAC,CAoHhB;AA+uDD,eAAe,MAAM,CAAC"}
1
+ {"version":3,"file":"slack.controller.d.ts","sourceRoot":"","sources":["../../../../../../backend/src/controllers/slack/slack.controller.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAsCH,QAAA,MAAM,MAAM,4CAAW,CAAC;AA6BxB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAwCG;AACH,wBAAsB,2BAA2B,CAAC,MAAM,EAAE;IACxD,SAAS,EAAE,MAAM,CAAC;IAClB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,iBAAiB,CAAC,EAAE,MAAM,CAAC;IAC3B,OAAO,EAAE,MAAM,CAAC;IAChB;;;;;OAKG;IACH,SAAS,EAAE,MAAM,GAAG,aAAa,GAAG,cAAc,CAAC;CACpD,GAAG,OAAO,CAAC,IAAI,CAAC,CAoHhB;AAwvDD,eAAe,MAAM,CAAC"}
@@ -1553,20 +1553,33 @@ router.post('/post', async (req, res, next) => {
1553
1553
  return;
1554
1554
  }
1555
1555
  const { target, text: rawPostText, threadTs, newTopLevel } = req.body ?? {};
1556
- // Files named with `--file` travel as Cloud handoffs; their marker lines join the text.
1557
- let text = rawPostText;
1558
- let fileHandoff = null;
1559
- if (typeof rawPostText === 'string' && Array.isArray(req.body?.files) && req.body.files.length > 0) {
1560
- const [{ attachOutboundFiles }, wiring] = await Promise.all([
1561
- import('../../services/file-handoff/file-handoff.outbound.js'),
1562
- import('../../services/file-handoff/file-handoff.wiring.js'),
1563
- ]);
1564
- const attachment = await attachOutboundFiles({ content: rawPostText, files: req.body.files, projectPath: req.body.projectPath }, agentSession, '', { service: wiring.getFileHandoffService(), projectDirFor: wiring.projectDirForAgent, crossMachine: async () => false }).catch(() => null);
1565
- if (attachment) {
1566
- text = attachment.content;
1567
- fileHandoff = { attached: attachment.attached, failed: attachment.failed };
1556
+ // Files named with `--file` are uploaded into the channel next to the text.
1557
+ // They pass the same guard as the Cloud handoff: inside the agent's project
1558
+ // (realpath, so symlinks cannot escape), not in Crewly's home, no secret
1559
+ // names or contents. Nothing is posted if any file is refused.
1560
+ const requested = Array.isArray(req.body?.files)
1561
+ ? req.body.files.filter((f) => typeof f === 'string' && f.length > 0).slice(0, 5)
1562
+ : [];
1563
+ const files = [];
1564
+ if (requested.length > 0) {
1565
+ const wiring = await import('../../services/file-handoff/file-handoff.wiring.js');
1566
+ const projectDir = await wiring.projectDirForAgent(agentSession, typeof req.body?.projectPath === 'string' ? req.body.projectPath : undefined);
1567
+ if (!projectDir) {
1568
+ res.status(400).json({ success: false, code: 'file_outside_project', error: 'Cannot tell which project directory you work in, so no file can be attached' });
1569
+ return;
1570
+ }
1571
+ const guard = wiring.getFileHandoffService();
1572
+ for (const f of requested) {
1573
+ const vetted = guard.vetFile(f, projectDir);
1574
+ if (!vetted.ok) {
1575
+ const code = vetted.reason === 'file not found' ? 'file_not_found' : 'file_outside_project';
1576
+ res.status(code === 'file_not_found' ? 404 : 400).json({ success: false, code, error: `${f}: ${vetted.reason}` });
1577
+ return;
1578
+ }
1579
+ files.push(vetted.real);
1568
1580
  }
1569
1581
  }
1582
+ const text = rawPostText;
1570
1583
  // Owner board: the agent is messaging a channel (an id shows as plain "Slack")
1571
1584
  getBoardActivity().recordMessage(agentSession, typeof target === 'string' && /^[#@]?[A-Za-z][\w.-]{0,38}$/.test(target) ? target.replace(/^@/, '') : 'Slack');
1572
1585
  try {
@@ -1577,8 +1590,9 @@ router.post('/post', async (req, res, next) => {
1577
1590
  threadTs: typeof threadTs === 'string' && threadTs ? threadTs : undefined,
1578
1591
  // #808: scheduled output says so, and never lands in an owed thread.
1579
1592
  ...(newTopLevel === true ? { newTopLevel: true } : {}),
1593
+ ...(files.length ? { files } : {}),
1580
1594
  });
1581
- res.json({ success: true, data: result, ...(fileHandoff ? { fileHandoff } : {}) });
1595
+ res.json({ success: true, data: result });
1582
1596
  return;
1583
1597
  }
1584
1598
  catch (err) {