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.
- package/config/skills/agent/core/whatsapp-draft/SKILL.md +80 -0
- package/config/skills/agent/core/whatsapp-draft/execute.sh +84 -0
- package/config/skills/agent/core/whatsapp-draft/execute.test.sh +70 -0
- package/config/skills/agent/core/whatsapp-inbox/SKILL.md +75 -0
- package/config/skills/agent/core/whatsapp-inbox/execute.sh +87 -0
- package/config/skills/agent/core/whatsapp-inbox/execute.test.sh +68 -0
- package/config/skills/agent/core/whatsapp-read/SKILL.md +80 -0
- package/config/skills/agent/core/whatsapp-read/execute.sh +116 -0
- package/config/skills/agent/core/whatsapp-read/execute.test.sh +84 -0
- package/config/skills/agent/core/whatsapp-send/SKILL.md +70 -0
- package/config/skills/agent/core/whatsapp-send/execute.sh +84 -0
- package/config/skills/agent/core/whatsapp-send/execute.test.sh +79 -0
- package/dist/backend/backend/src/constants.d.ts +107 -0
- package/dist/backend/backend/src/constants.d.ts.map +1 -1
- package/dist/backend/backend/src/constants.js +105 -0
- package/dist/backend/backend/src/constants.js.map +1 -1
- package/dist/backend/backend/src/controllers/whatsapp/whatsapp-inbox.controller.d.ts +73 -0
- package/dist/backend/backend/src/controllers/whatsapp/whatsapp-inbox.controller.d.ts.map +1 -0
- package/dist/backend/backend/src/controllers/whatsapp/whatsapp-inbox.controller.js +310 -0
- package/dist/backend/backend/src/controllers/whatsapp/whatsapp-inbox.controller.js.map +1 -0
- package/dist/backend/backend/src/controllers/whatsapp/whatsapp.controller.d.ts.map +1 -1
- package/dist/backend/backend/src/controllers/whatsapp/whatsapp.controller.js +53 -4
- package/dist/backend/backend/src/controllers/whatsapp/whatsapp.controller.js.map +1 -1
- package/dist/backend/backend/src/services/ai/prompt-modules/skills-reference.module.d.ts.map +1 -1
- package/dist/backend/backend/src/services/ai/prompt-modules/skills-reference.module.js +5 -0
- package/dist/backend/backend/src/services/ai/prompt-modules/skills-reference.module.js.map +1 -1
- package/dist/backend/backend/src/services/browser/browser-session.service.d.ts.map +1 -1
- package/dist/backend/backend/src/services/browser/browser-session.service.js +13 -0
- package/dist/backend/backend/src/services/browser/browser-session.service.js.map +1 -1
- package/dist/backend/backend/src/services/cloud/mobile-api-relay.service.d.ts.map +1 -1
- package/dist/backend/backend/src/services/cloud/mobile-api-relay.service.js +29 -1
- package/dist/backend/backend/src/services/cloud/mobile-api-relay.service.js.map +1 -1
- package/dist/backend/backend/src/services/whatsapp/index.d.ts +5 -1
- package/dist/backend/backend/src/services/whatsapp/index.d.ts.map +1 -1
- package/dist/backend/backend/src/services/whatsapp/index.js +5 -1
- package/dist/backend/backend/src/services/whatsapp/index.js.map +1 -1
- package/dist/backend/backend/src/services/whatsapp/whatsapp-connection-config.d.ts +59 -0
- package/dist/backend/backend/src/services/whatsapp/whatsapp-connection-config.d.ts.map +1 -0
- package/dist/backend/backend/src/services/whatsapp/whatsapp-connection-config.js +108 -0
- package/dist/backend/backend/src/services/whatsapp/whatsapp-connection-config.js.map +1 -0
- package/dist/backend/backend/src/services/whatsapp/whatsapp-draft-gate.d.ts +74 -0
- package/dist/backend/backend/src/services/whatsapp/whatsapp-draft-gate.d.ts.map +1 -0
- package/dist/backend/backend/src/services/whatsapp/whatsapp-draft-gate.js +82 -0
- package/dist/backend/backend/src/services/whatsapp/whatsapp-draft-gate.js.map +1 -0
- package/dist/backend/backend/src/services/whatsapp/whatsapp-inbox-capture.d.ts +184 -0
- package/dist/backend/backend/src/services/whatsapp/whatsapp-inbox-capture.d.ts.map +1 -0
- package/dist/backend/backend/src/services/whatsapp/whatsapp-inbox-capture.js +420 -0
- package/dist/backend/backend/src/services/whatsapp/whatsapp-inbox-capture.js.map +1 -0
- package/dist/backend/backend/src/services/whatsapp/whatsapp-inbox.store.d.ts +243 -0
- package/dist/backend/backend/src/services/whatsapp/whatsapp-inbox.store.d.ts.map +1 -0
- package/dist/backend/backend/src/services/whatsapp/whatsapp-inbox.store.js +538 -0
- package/dist/backend/backend/src/services/whatsapp/whatsapp-inbox.store.js.map +1 -0
- package/dist/backend/backend/src/services/whatsapp/whatsapp-initializer.d.ts +32 -2
- package/dist/backend/backend/src/services/whatsapp/whatsapp-initializer.d.ts.map +1 -1
- package/dist/backend/backend/src/services/whatsapp/whatsapp-initializer.js +65 -9
- package/dist/backend/backend/src/services/whatsapp/whatsapp-initializer.js.map +1 -1
- package/dist/backend/backend/src/services/whatsapp/whatsapp-orchestrator-bridge.d.ts.map +1 -1
- package/dist/backend/backend/src/services/whatsapp/whatsapp-orchestrator-bridge.js +11 -0
- package/dist/backend/backend/src/services/whatsapp/whatsapp-orchestrator-bridge.js.map +1 -1
- package/dist/backend/backend/src/services/whatsapp/whatsapp.service.d.ts +59 -1
- package/dist/backend/backend/src/services/whatsapp/whatsapp.service.d.ts.map +1 -1
- package/dist/backend/backend/src/services/whatsapp/whatsapp.service.js +159 -9
- package/dist/backend/backend/src/services/whatsapp/whatsapp.service.js.map +1 -1
- package/dist/backend/backend/src/types/whatsapp.types.d.ts +108 -0
- package/dist/backend/backend/src/types/whatsapp.types.d.ts.map +1 -1
- package/dist/backend/backend/src/types/whatsapp.types.js +9 -0
- package/dist/backend/backend/src/types/whatsapp.types.js.map +1 -1
- package/dist/backend/build-info.json +2 -2
- package/dist/cli/backend/src/constants.d.ts +107 -0
- package/dist/cli/backend/src/constants.d.ts.map +1 -1
- package/dist/cli/backend/src/constants.js +105 -0
- package/dist/cli/backend/src/constants.js.map +1 -1
- package/dist/cli/backend/src/services/ai/prompt-modules/skills-reference.module.d.ts.map +1 -1
- package/dist/cli/backend/src/services/ai/prompt-modules/skills-reference.module.js +5 -0
- package/dist/cli/backend/src/services/ai/prompt-modules/skills-reference.module.js.map +1 -1
- package/frontend/dist/assets/{index-07e338a9.js → index-daf43f1a.js} +268 -268
- package/frontend/dist/index.html +1 -1
- 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 = {
|