crewly 1.20.121 → 1.20.123

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 (78) hide show
  1. package/config/skills/agent/core/whatsapp-draft/SKILL.md +80 -0
  2. package/config/skills/agent/core/whatsapp-draft/execute.sh +84 -0
  3. package/config/skills/agent/core/whatsapp-draft/execute.test.sh +70 -0
  4. package/config/skills/agent/core/whatsapp-inbox/SKILL.md +75 -0
  5. package/config/skills/agent/core/whatsapp-inbox/execute.sh +87 -0
  6. package/config/skills/agent/core/whatsapp-inbox/execute.test.sh +68 -0
  7. package/config/skills/agent/core/whatsapp-read/SKILL.md +80 -0
  8. package/config/skills/agent/core/whatsapp-read/execute.sh +116 -0
  9. package/config/skills/agent/core/whatsapp-read/execute.test.sh +84 -0
  10. package/config/skills/agent/core/whatsapp-send/SKILL.md +70 -0
  11. package/config/skills/agent/core/whatsapp-send/execute.sh +84 -0
  12. package/config/skills/agent/core/whatsapp-send/execute.test.sh +79 -0
  13. package/dist/backend/backend/src/constants.d.ts +107 -0
  14. package/dist/backend/backend/src/constants.d.ts.map +1 -1
  15. package/dist/backend/backend/src/constants.js +105 -0
  16. package/dist/backend/backend/src/constants.js.map +1 -1
  17. package/dist/backend/backend/src/controllers/whatsapp/whatsapp-inbox.controller.d.ts +73 -0
  18. package/dist/backend/backend/src/controllers/whatsapp/whatsapp-inbox.controller.d.ts.map +1 -0
  19. package/dist/backend/backend/src/controllers/whatsapp/whatsapp-inbox.controller.js +310 -0
  20. package/dist/backend/backend/src/controllers/whatsapp/whatsapp-inbox.controller.js.map +1 -0
  21. package/dist/backend/backend/src/controllers/whatsapp/whatsapp.controller.d.ts.map +1 -1
  22. package/dist/backend/backend/src/controllers/whatsapp/whatsapp.controller.js +53 -4
  23. package/dist/backend/backend/src/controllers/whatsapp/whatsapp.controller.js.map +1 -1
  24. package/dist/backend/backend/src/services/ai/prompt-modules/skills-reference.module.d.ts.map +1 -1
  25. package/dist/backend/backend/src/services/ai/prompt-modules/skills-reference.module.js +5 -0
  26. package/dist/backend/backend/src/services/ai/prompt-modules/skills-reference.module.js.map +1 -1
  27. package/dist/backend/backend/src/services/browser/browser-session.service.d.ts.map +1 -1
  28. package/dist/backend/backend/src/services/browser/browser-session.service.js +13 -0
  29. package/dist/backend/backend/src/services/browser/browser-session.service.js.map +1 -1
  30. package/dist/backend/backend/src/services/cloud/mobile-api-relay.service.d.ts.map +1 -1
  31. package/dist/backend/backend/src/services/cloud/mobile-api-relay.service.js +29 -1
  32. package/dist/backend/backend/src/services/cloud/mobile-api-relay.service.js.map +1 -1
  33. package/dist/backend/backend/src/services/whatsapp/index.d.ts +5 -1
  34. package/dist/backend/backend/src/services/whatsapp/index.d.ts.map +1 -1
  35. package/dist/backend/backend/src/services/whatsapp/index.js +5 -1
  36. package/dist/backend/backend/src/services/whatsapp/index.js.map +1 -1
  37. package/dist/backend/backend/src/services/whatsapp/whatsapp-connection-config.d.ts +59 -0
  38. package/dist/backend/backend/src/services/whatsapp/whatsapp-connection-config.d.ts.map +1 -0
  39. package/dist/backend/backend/src/services/whatsapp/whatsapp-connection-config.js +108 -0
  40. package/dist/backend/backend/src/services/whatsapp/whatsapp-connection-config.js.map +1 -0
  41. package/dist/backend/backend/src/services/whatsapp/whatsapp-draft-gate.d.ts +74 -0
  42. package/dist/backend/backend/src/services/whatsapp/whatsapp-draft-gate.d.ts.map +1 -0
  43. package/dist/backend/backend/src/services/whatsapp/whatsapp-draft-gate.js +82 -0
  44. package/dist/backend/backend/src/services/whatsapp/whatsapp-draft-gate.js.map +1 -0
  45. package/dist/backend/backend/src/services/whatsapp/whatsapp-inbox-capture.d.ts +184 -0
  46. package/dist/backend/backend/src/services/whatsapp/whatsapp-inbox-capture.d.ts.map +1 -0
  47. package/dist/backend/backend/src/services/whatsapp/whatsapp-inbox-capture.js +420 -0
  48. package/dist/backend/backend/src/services/whatsapp/whatsapp-inbox-capture.js.map +1 -0
  49. package/dist/backend/backend/src/services/whatsapp/whatsapp-inbox.store.d.ts +243 -0
  50. package/dist/backend/backend/src/services/whatsapp/whatsapp-inbox.store.d.ts.map +1 -0
  51. package/dist/backend/backend/src/services/whatsapp/whatsapp-inbox.store.js +538 -0
  52. package/dist/backend/backend/src/services/whatsapp/whatsapp-inbox.store.js.map +1 -0
  53. package/dist/backend/backend/src/services/whatsapp/whatsapp-initializer.d.ts +32 -2
  54. package/dist/backend/backend/src/services/whatsapp/whatsapp-initializer.d.ts.map +1 -1
  55. package/dist/backend/backend/src/services/whatsapp/whatsapp-initializer.js +65 -9
  56. package/dist/backend/backend/src/services/whatsapp/whatsapp-initializer.js.map +1 -1
  57. package/dist/backend/backend/src/services/whatsapp/whatsapp-orchestrator-bridge.d.ts.map +1 -1
  58. package/dist/backend/backend/src/services/whatsapp/whatsapp-orchestrator-bridge.js +11 -0
  59. package/dist/backend/backend/src/services/whatsapp/whatsapp-orchestrator-bridge.js.map +1 -1
  60. package/dist/backend/backend/src/services/whatsapp/whatsapp.service.d.ts +59 -1
  61. package/dist/backend/backend/src/services/whatsapp/whatsapp.service.d.ts.map +1 -1
  62. package/dist/backend/backend/src/services/whatsapp/whatsapp.service.js +159 -9
  63. package/dist/backend/backend/src/services/whatsapp/whatsapp.service.js.map +1 -1
  64. package/dist/backend/backend/src/types/whatsapp.types.d.ts +108 -0
  65. package/dist/backend/backend/src/types/whatsapp.types.d.ts.map +1 -1
  66. package/dist/backend/backend/src/types/whatsapp.types.js +9 -0
  67. package/dist/backend/backend/src/types/whatsapp.types.js.map +1 -1
  68. package/dist/backend/build-info.json +2 -2
  69. package/dist/cli/backend/src/constants.d.ts +107 -0
  70. package/dist/cli/backend/src/constants.d.ts.map +1 -1
  71. package/dist/cli/backend/src/constants.js +105 -0
  72. package/dist/cli/backend/src/constants.js.map +1 -1
  73. package/dist/cli/backend/src/services/ai/prompt-modules/skills-reference.module.d.ts.map +1 -1
  74. package/dist/cli/backend/src/services/ai/prompt-modules/skills-reference.module.js +5 -0
  75. package/dist/cli/backend/src/services/ai/prompt-modules/skills-reference.module.js.map +1 -1
  76. package/frontend/dist/assets/{index-07e338a9.js → index-daf43f1a.js} +268 -268
  77. package/frontend/dist/index.html +1 -1
  78. package/package.json +1 -1
@@ -0,0 +1,84 @@
1
+ #!/bin/bash
2
+ # Tests for whatsapp-read — run with: bash execute.test.sh </dev/null
3
+ # Spins up a python HTTP stub as the backend, asserts the request path the
4
+ # skill sends and the JSON it prints. Exit 0 on pass.
5
+ set -u
6
+ HERE="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)"
7
+ EXEC="$HERE/execute.sh"
8
+ PASS=0; FAIL=0
9
+ check() {
10
+ local name="$1"; local got="$2"; local want="$3"
11
+ if [ "$got" = "$want" ]; then PASS=$((PASS+1)); else FAIL=$((FAIL+1)); echo "FAIL: $name"; echo " want: $want"; echo " got: $got"; fi
12
+ }
13
+
14
+ PORT=18842
15
+ STUB_LOG="$(mktemp)"; export STUB_LOG; export STUB_PORT="$PORT"
16
+ python3 -u <<'PY' >/dev/null 2>&1 &
17
+ from http.server import BaseHTTPRequestHandler, HTTPServer
18
+ from urllib.parse import urlparse
19
+ import json, os
20
+ LOG = os.environ['STUB_LOG']; PORT = int(os.environ['STUB_PORT'])
21
+ CHAT = {'id': '491@s.whatsapp.net', 'name': 'Ann', 'isGroup': False, 'lastMessageAt': 1760000000000}
22
+ M_IN = {'id': 'm1', 'chatId': '491@s.whatsapp.net', 'fromMe': False, 'senderJid': '491@s.whatsapp.net', 'senderName': 'Ann', 'text': 'at 8?', 'ts': 1760000000000, 'kind': 'text'}
23
+ M_OUT = dict(M_IN, id='m2', fromMe=True, senderJid='999@s.whatsapp.net', senderName=None, text='yes', ts=1760000060000)
24
+ class H(BaseHTTPRequestHandler):
25
+ def reply(self, code, body):
26
+ self.send_response(code); self.send_header('Content-Type', 'application/json'); self.end_headers()
27
+ self.wfile.write(json.dumps(body).encode())
28
+ def do_GET(self):
29
+ open(LOG, 'w').write(json.dumps({'method': 'GET', 'path': self.path}))
30
+ p = urlparse(self.path).path
31
+ if p == '/api/whatsapp/chats/nobody%40s.whatsapp.net/messages':
32
+ return self.reply(404, {'success': False, 'code': 'chat_not_found', 'error': 'Unknown chat: nobody@s.whatsapp.net'})
33
+ if p.endswith('/messages'):
34
+ return self.reply(200, {'success': True, 'data': {'chat': CHAT, 'messages': [M_IN, M_OUT], 'nextBefore': 1760000000000}})
35
+ if p == '/api/whatsapp/search':
36
+ return self.reply(200, {'success': True, 'data': [dict(M_IN, chatName='Ann')]})
37
+ if p == '/api/whatsapp/chats':
38
+ return self.reply(200, {'success': True, 'data': [CHAT, {'id': '120@g.us', 'name': None, 'isGroup': True, 'lastMessageAt': None}]})
39
+ self.reply(404, {'success': False, 'error': 'no route'})
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
+ trap 'kill "$STUB_PID" >/dev/null 2>&1; rm -f "$STUB_LOG"' EXIT
46
+ 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
47
+
48
+ run() { CREWLY_SESSION_NAME=test-agent CREWLY_API_URL="http://127.0.0.1:${PORT}" bash "$EXEC" "$@" 2>/dev/null; }
49
+ run_err() { CREWLY_SESSION_NAME=test-agent CREWLY_API_URL="http://127.0.0.1:${PORT}" bash "$EXEC" "$@" 2>&1 >/dev/null | jq -r '.error' 2>/dev/null; }
50
+
51
+ # --- one chat ---
52
+ OUT=$(run --chat 491@s.whatsapp.net --limit 2 --before 1760000100000)
53
+ check "chat: path" "$(jq -r .path "$STUB_LOG")" "/api/whatsapp/chats/491%40s.whatsapp.net/messages?limit=2&before=1760000100000"
54
+ check "chat: output" "$OUT" '{"chat":{"chatId":"491@s.whatsapp.net","name":"Ann","isGroup":false},"messages":[{"at":"2025-10-09T08:53:20Z","fromMe":false,"sender":"Ann","kind":"text","text":"at 8?"},{"at":"2025-10-09T08:54:20Z","fromMe":true,"sender":"me","kind":"text","text":"yes"}],"nextBefore":1760000000000}'
55
+
56
+ run '{"chatId":"491@s.whatsapp.net"}' >/dev/null
57
+ check "chat json: path" "$(jq -r .path "$STUB_LOG")" "/api/whatsapp/chats/491%40s.whatsapp.net/messages"
58
+
59
+ # --- search ---
60
+ OUT=$(run --q "dinner & wine" --limit 5)
61
+ check "search: path" "$(jq -r .path "$STUB_LOG")" "/api/whatsapp/search?q=dinner%20%26%20wine&limit=5"
62
+ check "search: output" "$OUT" '{"count":1,"hits":[{"chatId":"491@s.whatsapp.net","chatName":"Ann","at":"2025-10-09T08:53:20Z","fromMe":false,"sender":"Ann","kind":"text","text":"at 8?"}]}'
63
+
64
+ # --- list chats ---
65
+ OUT=$(run --chats --q ann)
66
+ check "chats: path" "$(jq -r .path "$STUB_LOG")" "/api/whatsapp/chats?q=ann"
67
+ check "chats: output" "$OUT" '{"count":2,"chats":[{"chatId":"491@s.whatsapp.net","name":"Ann","isGroup":false,"lastAt":"2025-10-09T08:53:20Z"},{"chatId":"120@g.us","name":"120@g.us","isGroup":true,"lastAt":null}]}'
68
+ run '{"chats":true,"limit":3}' >/dev/null
69
+ check "chats json: path" "$(jq -r .path "$STUB_LOG")" "/api/whatsapp/chats?limit=3"
70
+
71
+ # --- no session name: output stays clean JSON ---
72
+ OUT=$(CREWLY_SESSION_NAME= CREWLY_API_URL="http://127.0.0.1:${PORT}" bash "$EXEC" --q x 2>/dev/null | jq -r .count)
73
+ check "no session: output still parses" "$OUT" "1"
74
+
75
+ # --- errors ---
76
+ OUT=$(CREWLY_SESSION_NAME=test-agent CREWLY_API_URL="http://127.0.0.1:${PORT}" bash "$EXEC" --chat nobody@s.whatsapp.net 2>/dev/null); RC=$?
77
+ check "404: exit code" "$RC" "1"
78
+ check "404: reason" "$OUT" '{"success":false,"reason":"chat_not_found","message":"Unknown chat: nobody@s.whatsapp.net"}'
79
+
80
+ check "needs a mode" "$(run_err)" "Pass --chat <jid>, --q <text>, or --chats"
81
+ check "unknown option errors" "$(run_err --bogus)" "Unknown option: --bogus"
82
+
83
+ echo "=== Results: $PASS passed, $FAIL failed ==="
84
+ [ "$FAIL" -eq 0 ]
@@ -0,0 +1,70 @@
1
+ ---
2
+ name: WhatsApp Send
3
+ description: Send ONE WhatsApp reply draft that the owner has explicitly confirmed by replying 「发 <code>」. Fails with needs_owner_confirmation otherwise. Never use it on your own initiative.
4
+ version: 1.0.0
5
+ category: communication
6
+ skillType: claude-skill
7
+ assignableRoles:
8
+ - orchestrator
9
+ - team-leader
10
+ - generalist
11
+ - operations
12
+ - ops
13
+ - support
14
+ - sales
15
+ triggers:
16
+ - 发 W
17
+ - send whatsapp draft
18
+ tags:
19
+ - whatsapp
20
+ - send
21
+ execution:
22
+ type: script
23
+ script:
24
+ file: execute.sh
25
+ interpreter: bash
26
+ timeoutMs: 30000
27
+ ---
28
+
29
+ # WhatsApp Send
30
+
31
+ ```bash
32
+ bash execute.sh --draft W12
33
+ ```
34
+
35
+ Use this **only** right after the owner has replied **「发 W12」** (or 「发送 W12」,
36
+ "send W12", 「确认发送 W12」) for that exact draft. One draft per call, one
37
+ message per draft.
38
+
39
+ ## How the backend decides
40
+
41
+ The server checks the owner's own chat messages — which you cannot write or
42
+ fake — for 「发 W12」 sent **after** the draft was created. The draft must also be
43
+ less than **30 minutes** old. If either is missing you get:
44
+
45
+ ```json
46
+ {"success":false,"sent":false,"reason":"needs_owner_confirmation","message":"NOT SENT: the owner has not confirmed. …"}
47
+ ```
48
+
49
+ That is not an error to work around. Show the owner the draft (recipient, exact
50
+ text, code) and ask them to reply 「发 W12」. If the draft is older than 30
51
+ minutes, ask them to send it from the dashboard, or write a fresh draft.
52
+
53
+ Other failures: `draft_not_pending` (already sent or discarded — never resend),
54
+ `draft_not_found`, `not_connected`, `send_failed`.
55
+
56
+ ## Rules (owner decision — apply to every whatsapp-* skill)
57
+
58
+ - **Never send anything without the owner's explicit 「发 <code>」.** A general
59
+ "ok", "sounds good" or "handle it" is not a confirmation.
60
+ - **Never auto-reply to anyone.**
61
+ - **Summarise; don't paste private chats wholesale** into other channels.
62
+ - **Groups are low priority.**
63
+
64
+ ## Output
65
+
66
+ ```json
67
+ {"success":true,"sent":true,"code":"W12","recipient":"Ann","sentAt":"2026-09-24T18:05:00Z"}
68
+ ```
69
+
70
+ Tell the owner it went out, in one line.
@@ -0,0 +1,84 @@
1
+ #!/bin/bash
2
+ # =============================================================================
3
+ # whatsapp-send — Send ONE WhatsApp draft the owner has confirmed
4
+ #
5
+ # Backed by POST /api/whatsapp/drafts/<id|code>/send. The backend refuses
6
+ # (403 needs_owner_confirmation) unless the owner replied 「发 <code>」 in chat
7
+ # after the draft was written, within 30 minutes. This skill cannot get
8
+ # around that, and must not try.
9
+ #
10
+ # Usage:
11
+ # bash execute.sh --draft W12
12
+ # bash execute.sh '{"draft":"W12"}'
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 --draft <id|code>
22
+ bash execute.sh '{"draft":"W12"}'
23
+
24
+ Options:
25
+ --draft Draft id or code (W12) the owner confirmed with 「发 W12」
26
+ --help | -h Show this help
27
+
28
+ Fails unless the owner has replied 「发 <code>」 for this draft.
29
+ EOF_USAGE
30
+ }
31
+
32
+ INPUT_JSON=""
33
+ DRAFT=""
34
+
35
+ if [[ $# -gt 0 && ${1:0:1} == '{' ]]; then
36
+ INPUT_JSON="$1"
37
+ shift || true
38
+ fi
39
+
40
+ while [[ $# -gt 0 ]]; do
41
+ case "$1" in
42
+ --draft|-d) [ $# -ge 2 ] || error_exit "--draft requires a value"; DRAFT="$2"; shift 2 ;;
43
+ --help|-h) print_usage; exit 0 ;;
44
+ *) error_exit "Unknown option: $1" ;;
45
+ esac
46
+ done
47
+
48
+ if [ -n "$INPUT_JSON" ]; then
49
+ INPUT=$(read_json_input "$INPUT_JSON")
50
+ [ -z "$DRAFT" ] && DRAFT=$(printf '%s' "$INPUT" | jq -r '.draft // .draftId // .code // .id // empty')
51
+ fi
52
+
53
+ require_param "draft (--draft)" "$DRAFT"
54
+
55
+ # Without X-Agent-Session the backend treats a call as the owner's own click.
56
+ # An agent must never be mistaken for the owner, so refuse to run anonymously.
57
+ if [ -z "${CREWLY_SESSION_NAME:-}" ]; then
58
+ error_exit "CREWLY_SESSION_NAME is not set. whatsapp-send only runs as an identified agent; ask the owner to send it themselves or restart the agent."
59
+ fi
60
+
61
+ REF=$(jq -rn --arg v "$DRAFT" '$v|@uri')
62
+
63
+ # stderr is kept apart so lib.sh's session warning cannot pollute a good response.
64
+ ERR_FILE=$(mktemp); trap 'rm -f "$ERR_FILE"' EXIT
65
+ RESPONSE=$(api_call POST "/whatsapp/drafts/${REF}/send" '{}' 2>"$ERR_FILE") || {
66
+ ERR=$(tail -n 1 "$ERR_FILE")
67
+ printf '%s' "$ERR" | jq -c '{
68
+ success: false,
69
+ sent: false,
70
+ reason: (.details.code // .details.error // .details // .error // "unknown"),
71
+ message: (if .details.code == "needs_owner_confirmation"
72
+ then "NOT SENT: the owner has not confirmed. " + (.details.error // "")
73
+ else (.details.error // "") end)
74
+ }' 2>/dev/null || jq -n --arg r "$ERR" '{success: false, sent: false, reason: $r}'
75
+ exit 1
76
+ }
77
+
78
+ printf '%s' "$RESPONSE" | jq -c '.data as $d | {
79
+ success: true,
80
+ sent: true,
81
+ code: $d.code,
82
+ recipient: $d.recipient,
83
+ sentAt: (if $d.sentAt then (($d.sentAt / 1000) | floor | todate) else null end)
84
+ }'
@@ -0,0 +1,79 @@
1
+ #!/bin/bash
2
+ # Tests for whatsapp-send — run with: bash execute.test.sh </dev/null
3
+ # Spins up a python HTTP stub as the backend, asserts the request path the
4
+ # skill sends and the JSON it prints. Exit 0 on pass.
5
+ set -u
6
+ HERE="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)"
7
+ EXEC="$HERE/execute.sh"
8
+ PASS=0; FAIL=0
9
+ check() {
10
+ local name="$1"; local got="$2"; local want="$3"
11
+ if [ "$got" = "$want" ]; then PASS=$((PASS+1)); else FAIL=$((FAIL+1)); echo "FAIL: $name"; echo " want: $want"; echo " got: $got"; fi
12
+ }
13
+
14
+ PORT=18844
15
+ STUB_LOG="$(mktemp)"; export STUB_LOG; export STUB_PORT="$PORT"
16
+ python3 -u <<'PY' >/dev/null 2>&1 &
17
+ from http.server import BaseHTTPRequestHandler, HTTPServer
18
+ import json, os
19
+ LOG = os.environ['STUB_LOG']; PORT = int(os.environ['STUB_PORT'])
20
+ class H(BaseHTTPRequestHandler):
21
+ def reply(self, code, body):
22
+ self.send_response(code); self.send_header('Content-Type', 'application/json'); self.end_headers()
23
+ self.wfile.write(json.dumps(body).encode())
24
+ def do_POST(self):
25
+ self.rfile.read(int(self.headers.get('Content-Length', 0)))
26
+ open(LOG, 'w').write(json.dumps({'method': 'POST', 'path': self.path, 'agent': self.headers.get('X-Agent-Session')}))
27
+ if self.path == '/api/whatsapp/drafts/W12/send':
28
+ return self.reply(200, {'success': True, 'data': {'id': 'd-1', 'code': 'W12', 'status': 'sent', 'sentAt': 1760000000000, 'recipient': 'Ann', 'via': 'owner_confirmation'}})
29
+ if self.path == '/api/whatsapp/drafts/W13/send':
30
+ return self.reply(403, {'success': False, 'code': 'needs_owner_confirmation',
31
+ 'error': 'The owner has not confirmed draft W13. Ask them to reply 「发 W13」.',
32
+ 'data': {'code': 'W13', 'reason': 'no_confirmation'}})
33
+ if self.path == '/api/whatsapp/drafts/W14/send':
34
+ return self.reply(409, {'success': False, 'code': 'draft_not_pending', 'error': 'Draft W14 is sent; it cannot be sent'})
35
+ self.reply(404, {'success': False, 'code': 'draft_not_found', 'error': 'No draft'})
36
+ def log_message(self, *a, **k): pass
37
+ HTTPServer(('127.0.0.1', PORT), H).serve_forever()
38
+ PY
39
+ STUB_PID=$!
40
+ disown "$STUB_PID" 2>/dev/null || true
41
+ trap 'kill "$STUB_PID" >/dev/null 2>&1; rm -f "$STUB_LOG"' EXIT
42
+ 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
43
+
44
+ run() { CREWLY_SESSION_NAME=test-agent CREWLY_API_URL="http://127.0.0.1:${PORT}" bash "$EXEC" "$@" 2>/dev/null; }
45
+ run_err() { CREWLY_SESSION_NAME=test-agent CREWLY_API_URL="http://127.0.0.1:${PORT}" bash "$EXEC" "$@" 2>&1 >/dev/null | jq -r '.error' 2>/dev/null; }
46
+
47
+ OUT=$(run --draft W12)
48
+ check "confirmed: path" "$(jq -r .path "$STUB_LOG")" "/api/whatsapp/drafts/W12/send"
49
+ check "confirmed: agent header" "$(jq -r .agent "$STUB_LOG")" "test-agent"
50
+ check "confirmed: output" "$OUT" '{"success":true,"sent":true,"code":"W12","recipient":"Ann","sentAt":"2025-10-09T08:53:20Z"}'
51
+
52
+ run '{"draft":"W12"}' >/dev/null
53
+ check "json: path" "$(jq -r .path "$STUB_LOG")" "/api/whatsapp/drafts/W12/send"
54
+
55
+ OUT=$(run --draft W13); RC=$?
56
+ check "unconfirmed: exit code" "$RC" "1"
57
+ check "unconfirmed: reason" "$(printf '%s' "$OUT" | jq -r .reason)" "needs_owner_confirmation"
58
+ check "unconfirmed: sent false" "$(printf '%s' "$OUT" | jq -r .sent)" "false"
59
+ MSG=$(printf '%s' "$OUT" | jq -r .message)
60
+ [[ "$MSG" == "NOT SENT: the owner has not confirmed."* && "$MSG" == *"「发 W13」"* ]] && OK=yes || OK=no
61
+ check "unconfirmed: clear message" "$OK" "yes"
62
+
63
+ OUT=$(run --draft W14); RC=$?
64
+ check "already sent: exit code" "$RC" "1"
65
+ check "already sent: reason" "$(printf '%s' "$OUT" | jq -r .reason)" "draft_not_pending"
66
+
67
+ # Anonymous calls would look like the owner to the backend — refused locally,
68
+ # and no request is made.
69
+ : > "$STUB_LOG"
70
+ ERR=$(CREWLY_SESSION_NAME= CREWLY_API_URL="http://127.0.0.1:${PORT}" bash "$EXEC" --draft W12 2>&1 >/dev/null | jq -r .error); RC=$?
71
+ [[ "$ERR" == "CREWLY_SESSION_NAME is not set."* ]] && OK=yes || OK=no
72
+ check "no session: refused" "$OK" "yes"
73
+ check "no session: no request made" "$(cat "$STUB_LOG")" ""
74
+
75
+ check "missing draft" "$(run_err)" "Missing required parameter: draft (--draft)"
76
+ check "unknown option errors" "$(run_err --force)" "Unknown option: --force"
77
+
78
+ echo "=== Results: $PASS passed, $FAIL failed ==="
79
+ [ "$FAIL" -eq 0 ]
@@ -2089,7 +2089,114 @@ export declare const WHATSAPP_CONSTANTS: {
2089
2089
  readonly PHONE_PREFIX_PATTERN: RegExp;
2090
2090
  /** Fallback timeout when MESSAGE_QUEUE_CONSTANTS is unavailable (ms) */
2091
2091
  readonly DEFAULT_FALLBACK_TIMEOUT_MS: 120000;
2092
+ /**
2093
+ * Connection modes. `assistant` routes every incoming message to the
2094
+ * orchestrator and auto-replies (the original bridge). `inbox` reads the
2095
+ * owner's personal account, stores it locally and never sends anything
2096
+ * without the owner's explicit confirmation.
2097
+ */
2098
+ readonly MODES: {
2099
+ readonly ASSISTANT: "assistant";
2100
+ readonly INBOX: "inbox";
2101
+ };
2102
+ /** Mode used by `POST /api/whatsapp/connect` when the body names none (owner decision) */
2103
+ readonly DEFAULT_CONNECT_MODE: "inbox";
2104
+ /**
2105
+ * Mode for the legacy `WHATSAPP_ENABLED=true` env path when neither
2106
+ * `WHATSAPP_MODE` nor a persisted connection names one — that path has
2107
+ * always meant the orchestrator assistant.
2108
+ */
2109
+ readonly LEGACY_ENV_MODE: "assistant";
2110
+ /** Data directory under the Crewly home (`~/.crewly/whatsapp/`) */
2111
+ readonly DATA_DIR: "whatsapp";
2112
+ /** SQLite file holding the inbox (chats, messages, drafts) */
2113
+ readonly INBOX_DB_FILE: "inbox.db";
2114
+ /** Persisted connection config (mode, allowed contacts, auto-connect) */
2115
+ readonly CONNECTION_CONFIG_FILE: "connection.json";
2116
+ /** Group chat JID suffix */
2117
+ readonly GROUP_JID_SUFFIX: "@g.us";
2118
+ /** Phone-number user JID suffix */
2119
+ readonly USER_JID_SUFFIX: "@s.whatsapp.net";
2120
+ /** Linked-identity (LID) JID suffix used by newer WhatsApp addressing */
2121
+ readonly LID_JID_SUFFIX: "@lid";
2122
+ /** Pseudo-chat carrying status/stories — never part of the inbox */
2123
+ readonly STATUS_BROADCAST_JID: "status@broadcast";
2124
+ /** Baileys `messages.upsert` types: live (`notify`) and own/backfilled (`append`) */
2125
+ readonly UPSERT_TYPES: {
2126
+ readonly NOTIFY: "notify";
2127
+ readonly APPEND: "append";
2128
+ };
2129
+ /** Baileys `HistorySync.HistorySyncType.FULL` — the whole account history, skipped in inbox mode */
2130
+ readonly HISTORY_SYNC_TYPE_FULL: 2;
2131
+ /** History-sync messages older than this are not stored (inbox seeds recent history only) */
2132
+ readonly HISTORY_SYNC_MAX_AGE_MS: number;
2133
+ /** Stored message kinds */
2134
+ readonly MESSAGE_KINDS: {
2135
+ readonly TEXT: "text";
2136
+ readonly IMAGE: "image";
2137
+ readonly DOCUMENT: "document";
2138
+ readonly AUDIO: "audio";
2139
+ readonly VIDEO: "video";
2140
+ readonly STICKER: "sticker";
2141
+ readonly OTHER: "other";
2142
+ };
2143
+ /** Chat-name provenance, higher wins: pushName < chat/group subject < address-book name */
2144
+ readonly NAME_RANKS: {
2145
+ readonly NONE: 0;
2146
+ readonly PUSH_NAME: 1;
2147
+ readonly CHAT: 2;
2148
+ readonly CONTACT: 3;
2149
+ };
2150
+ /** Row caps for the read API: default and hard maximum per endpoint */
2151
+ readonly LIMITS: {
2152
+ readonly INBOX_DEFAULT: 20;
2153
+ readonly INBOX_MAX: 200;
2154
+ readonly CHATS_DEFAULT: 50;
2155
+ readonly CHATS_MAX: 500;
2156
+ readonly MESSAGES_DEFAULT: 50;
2157
+ readonly MESSAGES_MAX: 500;
2158
+ readonly SEARCH_DEFAULT: 20;
2159
+ readonly SEARCH_MAX: 200;
2160
+ readonly DRAFTS_DEFAULT: 100;
2161
+ readonly DRAFTS_MAX: 500;
2162
+ };
2163
+ /** Prefix of the short human draft code (`W12`) */
2164
+ readonly DRAFT_CODE_PREFIX: "W";
2165
+ /** Draft lifecycle. `sending` is the claim held while the socket call is in flight */
2166
+ readonly DRAFT_STATUSES: {
2167
+ readonly PENDING: "pending";
2168
+ readonly SENDING: "sending";
2169
+ readonly SENT: "sent";
2170
+ readonly DISCARDED: "discarded";
2171
+ };
2172
+ /**
2173
+ * How long after a draft is written an agent may send it on the strength of
2174
+ * the owner's 「发 W12」 chat message. After this the owner must send it from
2175
+ * the dashboard, or the agent drafts again.
2176
+ */
2177
+ readonly DRAFT_CONFIRM_WINDOW_MS: number;
2178
+ /**
2179
+ * Owner confirmation message: 「发 W12」 / 「发送 12」 / "send #W12" / 「确认发送 W12」.
2180
+ * Group 2 is the draft code (with or without the W).
2181
+ */
2182
+ readonly DRAFT_CONFIRM_PATTERN: RegExp;
2183
+ /** Owner messages scanned for a confirmation (newest first) */
2184
+ readonly OWNER_CONFIRM_SCAN_LIMIT: 200;
2185
+ /** Error codes returned by the inbox API */
2186
+ readonly ERROR_CODES: {
2187
+ readonly NEEDS_OWNER_CONFIRMATION: "needs_owner_confirmation";
2188
+ readonly AGENT_SEND_FORBIDDEN: "agent_send_forbidden_in_inbox_mode";
2189
+ readonly DRAFT_NOT_FOUND: "draft_not_found";
2190
+ readonly DRAFT_NOT_PENDING: "draft_not_pending";
2191
+ readonly CHAT_NOT_FOUND: "chat_not_found";
2192
+ readonly NOT_CONNECTED: "not_connected";
2193
+ readonly SEND_FAILED: "send_failed";
2194
+ readonly INVALID_MODE: "invalid_mode";
2195
+ readonly INVALID_INPUT: "invalid_input";
2196
+ };
2092
2197
  };
2198
+ /** WhatsApp connection mode (see {@link WHATSAPP_CONSTANTS.MODES}) */
2199
+ export type WhatsAppMode = (typeof WHATSAPP_CONSTANTS.MODES)[keyof typeof WHATSAPP_CONSTANTS.MODES];
2093
2200
  /** Google OAuth endpoint URLs and default scopes. */
2094
2201
  export declare const GOOGLE_OAUTH_CONSTANTS: {
2095
2202
  readonly AUTH_BASE_URL: "https://accounts.google.com/o/oauth2/v2/auth";
@@ -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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"}
@@ -1852,6 +1852,111 @@ export const WHATSAPP_CONSTANTS = {
1852
1852
  PHONE_PREFIX_PATTERN: /^\+/,
1853
1853
  /** Fallback timeout when MESSAGE_QUEUE_CONSTANTS is unavailable (ms) */
1854
1854
  DEFAULT_FALLBACK_TIMEOUT_MS: 120000,
1855
+ /**
1856
+ * Connection modes. `assistant` routes every incoming message to the
1857
+ * orchestrator and auto-replies (the original bridge). `inbox` reads the
1858
+ * owner's personal account, stores it locally and never sends anything
1859
+ * without the owner's explicit confirmation.
1860
+ */
1861
+ MODES: {
1862
+ ASSISTANT: 'assistant',
1863
+ INBOX: 'inbox',
1864
+ },
1865
+ /** Mode used by `POST /api/whatsapp/connect` when the body names none (owner decision) */
1866
+ DEFAULT_CONNECT_MODE: 'inbox',
1867
+ /**
1868
+ * Mode for the legacy `WHATSAPP_ENABLED=true` env path when neither
1869
+ * `WHATSAPP_MODE` nor a persisted connection names one — that path has
1870
+ * always meant the orchestrator assistant.
1871
+ */
1872
+ LEGACY_ENV_MODE: 'assistant',
1873
+ /** Data directory under the Crewly home (`~/.crewly/whatsapp/`) */
1874
+ DATA_DIR: 'whatsapp',
1875
+ /** SQLite file holding the inbox (chats, messages, drafts) */
1876
+ INBOX_DB_FILE: 'inbox.db',
1877
+ /** Persisted connection config (mode, allowed contacts, auto-connect) */
1878
+ CONNECTION_CONFIG_FILE: 'connection.json',
1879
+ /** Group chat JID suffix */
1880
+ GROUP_JID_SUFFIX: '@g.us',
1881
+ /** Phone-number user JID suffix */
1882
+ USER_JID_SUFFIX: '@s.whatsapp.net',
1883
+ /** Linked-identity (LID) JID suffix used by newer WhatsApp addressing */
1884
+ LID_JID_SUFFIX: '@lid',
1885
+ /** Pseudo-chat carrying status/stories — never part of the inbox */
1886
+ STATUS_BROADCAST_JID: 'status@broadcast',
1887
+ /** Baileys `messages.upsert` types: live (`notify`) and own/backfilled (`append`) */
1888
+ UPSERT_TYPES: {
1889
+ NOTIFY: 'notify',
1890
+ APPEND: 'append',
1891
+ },
1892
+ /** Baileys `HistorySync.HistorySyncType.FULL` — the whole account history, skipped in inbox mode */
1893
+ HISTORY_SYNC_TYPE_FULL: 2,
1894
+ /** History-sync messages older than this are not stored (inbox seeds recent history only) */
1895
+ HISTORY_SYNC_MAX_AGE_MS: 90 * 24 * 60 * 60 * 1000,
1896
+ /** Stored message kinds */
1897
+ MESSAGE_KINDS: {
1898
+ TEXT: 'text',
1899
+ IMAGE: 'image',
1900
+ DOCUMENT: 'document',
1901
+ AUDIO: 'audio',
1902
+ VIDEO: 'video',
1903
+ STICKER: 'sticker',
1904
+ OTHER: 'other',
1905
+ },
1906
+ /** Chat-name provenance, higher wins: pushName < chat/group subject < address-book name */
1907
+ NAME_RANKS: {
1908
+ NONE: 0,
1909
+ PUSH_NAME: 1,
1910
+ CHAT: 2,
1911
+ CONTACT: 3,
1912
+ },
1913
+ /** Row caps for the read API: default and hard maximum per endpoint */
1914
+ LIMITS: {
1915
+ INBOX_DEFAULT: 20,
1916
+ INBOX_MAX: 200,
1917
+ CHATS_DEFAULT: 50,
1918
+ CHATS_MAX: 500,
1919
+ MESSAGES_DEFAULT: 50,
1920
+ MESSAGES_MAX: 500,
1921
+ SEARCH_DEFAULT: 20,
1922
+ SEARCH_MAX: 200,
1923
+ DRAFTS_DEFAULT: 100,
1924
+ DRAFTS_MAX: 500,
1925
+ },
1926
+ /** Prefix of the short human draft code (`W12`) */
1927
+ DRAFT_CODE_PREFIX: 'W',
1928
+ /** Draft lifecycle. `sending` is the claim held while the socket call is in flight */
1929
+ DRAFT_STATUSES: {
1930
+ PENDING: 'pending',
1931
+ SENDING: 'sending',
1932
+ SENT: 'sent',
1933
+ DISCARDED: 'discarded',
1934
+ },
1935
+ /**
1936
+ * How long after a draft is written an agent may send it on the strength of
1937
+ * the owner's 「发 W12」 chat message. After this the owner must send it from
1938
+ * the dashboard, or the agent drafts again.
1939
+ */
1940
+ DRAFT_CONFIRM_WINDOW_MS: 30 * 60 * 1000,
1941
+ /**
1942
+ * Owner confirmation message: 「发 W12」 / 「发送 12」 / "send #W12" / 「确认发送 W12」.
1943
+ * Group 2 is the draft code (with or without the W).
1944
+ */
1945
+ DRAFT_CONFIRM_PATTERN: /^(发|发送|send|确认发送?)\s*#?(W?\d+)\s*$/i,
1946
+ /** Owner messages scanned for a confirmation (newest first) */
1947
+ OWNER_CONFIRM_SCAN_LIMIT: 200,
1948
+ /** Error codes returned by the inbox API */
1949
+ ERROR_CODES: {
1950
+ NEEDS_OWNER_CONFIRMATION: 'needs_owner_confirmation',
1951
+ AGENT_SEND_FORBIDDEN: 'agent_send_forbidden_in_inbox_mode',
1952
+ DRAFT_NOT_FOUND: 'draft_not_found',
1953
+ DRAFT_NOT_PENDING: 'draft_not_pending',
1954
+ CHAT_NOT_FOUND: 'chat_not_found',
1955
+ NOT_CONNECTED: 'not_connected',
1956
+ SEND_FAILED: 'send_failed',
1957
+ INVALID_MODE: 'invalid_mode',
1958
+ INVALID_INPUT: 'invalid_input',
1959
+ },
1855
1960
  };
1856
1961
  /** Google OAuth endpoint URLs and default scopes. */
1857
1962
  export const GOOGLE_OAUTH_CONSTANTS = {