@acedatacloud/skills 2026.706.0 → 2026.706.2
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/package.json +1 -1
- package/skills/x/SKILL.md +8 -6
- package/skills/x/scripts/x.py +13 -6
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@acedatacloud/skills",
|
|
3
|
-
"version": "2026.706.
|
|
3
|
+
"version": "2026.706.2",
|
|
4
4
|
"description": "Agent Skills for AceDataCloud AI services — music, image, video generation, LLM chat, web search. Compatible with Claude Code, GitHub Copilot, Gemini CLI, OpenAI Codex, and 30+ AI coding agents.",
|
|
5
5
|
"keywords": [
|
|
6
6
|
"agent-skills",
|
package/skills/x/SKILL.md
CHANGED
|
@@ -31,13 +31,14 @@ The connector injects the cookie jar as an env var:
|
|
|
31
31
|
- `X_COOKIES` — a JSON array of cookies (needs at least `auth_token` + `ct0`).
|
|
32
32
|
**Secret — full account access. Never echo or print it.**
|
|
33
33
|
|
|
34
|
-
## Setup —
|
|
34
|
+
## Setup — verify the shipped CLI
|
|
35
35
|
|
|
36
|
-
`twikit`
|
|
37
|
-
|
|
36
|
+
`twikit` is preinstalled in the hosted sandbox image. Do not `pip install` it at
|
|
37
|
+
runtime; if import fails, report that the sandbox image is missing the X skill
|
|
38
|
+
dependency and stop.
|
|
38
39
|
|
|
39
40
|
```sh
|
|
40
|
-
python3 -c "import twikit"
|
|
41
|
+
python3 -c "import twikit" || { echo "sandbox missing twikit; deploy the sandbox skill dependencies image" >&2; exit 1; }
|
|
41
42
|
# $SKILL_DIR can point at another skill loaded this turn — anchor on our own
|
|
42
43
|
# script (re-run this setup at the top of every fresh-shell Bash block below).
|
|
43
44
|
X="$SKILL_DIR/scripts/x.py"; [ -f "$X" ] || X=$(find /tmp -maxdepth 8 -path '*/skills/*/scripts/x.py' 2>/dev/null | head -1)
|
|
@@ -103,8 +104,9 @@ python3 $X delete --id 123456 --confirm # delete one of M
|
|
|
103
104
|
- **Not E2E-verified** (see the warning above) — expect to validate the first run.
|
|
104
105
|
- **twikit is a scraper of X's non-public API.** It can break when X changes its
|
|
105
106
|
internal endpoints. A `Couldn't get KEY_BYTE indices` / transaction-id error
|
|
106
|
-
means twikit
|
|
107
|
-
|
|
107
|
+
means twikit's transaction-id bootstrap is currently broken against X; do NOT
|
|
108
|
+
ask the user to reconnect cookies for that error. Report it as upstream drift
|
|
109
|
+
and retry only after the twikit/X compatibility issue is fixed.
|
|
108
110
|
- **ToS / rate-limit / ban risk.** This acts through the web API, not the
|
|
109
111
|
official API — high-frequency automation can get the account rate-limited or
|
|
110
112
|
suspended. Keep volume human-like.
|
package/skills/x/scripts/x.py
CHANGED
|
@@ -385,8 +385,10 @@ def main() -> None:
|
|
|
385
385
|
AccountLocked, AccountSuspended, TwitterException,
|
|
386
386
|
)
|
|
387
387
|
except Exception as e: # twikit not importable
|
|
388
|
-
die(
|
|
389
|
-
f"
|
|
388
|
+
die(
|
|
389
|
+
f"twikit is not available in the sandbox image: {e}. "
|
|
390
|
+
"Deploy the sandbox skill dependencies image; do not pip-install it at runtime."
|
|
391
|
+
)
|
|
390
392
|
try:
|
|
391
393
|
asyncio.run(run(args))
|
|
392
394
|
except (Unauthorized,) as e:
|
|
@@ -405,12 +407,17 @@ def main() -> None:
|
|
|
405
407
|
except Exception as e:
|
|
406
408
|
# twikit scrapes X's non-public API; a bare error here usually means an
|
|
407
409
|
# expired cookie OR that X changed its internal endpoints and twikit
|
|
408
|
-
# needs
|
|
409
|
-
|
|
410
|
+
# needs a compatibility fix.
|
|
411
|
+
if "Couldn't get KEY_BYTE indices" in str(e):
|
|
412
|
+
die(
|
|
413
|
+
"X request failed because twikit cannot derive X's current "
|
|
414
|
+
"transaction-id keys (`Couldn't get KEY_BYTE indices`). This is "
|
|
415
|
+
"upstream drift in X's internal web API, not a missing/expired "
|
|
416
|
+
"cookie. Retry after twikit/X compatibility is fixed."
|
|
417
|
+
)
|
|
410
418
|
die(f"X request failed ({type(e).__name__}: {e}). Likely an expired "
|
|
411
419
|
f"cookie — reconnect at https://auth.acedata.cloud/user/connections "
|
|
412
|
-
f"— or twikit drift vs X's internal API
|
|
413
|
-
f"twikit`).")
|
|
420
|
+
f"— or twikit drift vs X's internal API.")
|
|
414
421
|
|
|
415
422
|
|
|
416
423
|
if __name__ == "__main__":
|