abtars 0.2.0 → 0.2.1-alpha.1
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/bundle/abtars-cli.js +10 -0
- package/bundle/abtars-cli.js.map +3 -3
- package/bundle/meta.json +24 -4
- package/package.json +1 -1
- package/core/core_templates/SOUL.md +0 -24
- package/core/core_templates/agent_notes.md +0 -7
- package/core/core_templates/core_facts.md +0 -10
- package/core/core_templates/user_profile.md +0 -7
- package/core/skills/tools/fxtwitter/SKILL.md +0 -52
- package/core/skills/tools/twitterX/SKILL.md +0 -52
- package/core/skills/tools/twitterX/scripts/abtars-tweet.js +0 -532
- package/core/skills/tools/twitterX/scripts/package.json +0 -1
package/bundle/meta.json
CHANGED
|
@@ -23077,7 +23077,7 @@
|
|
|
23077
23077
|
"format": "esm"
|
|
23078
23078
|
},
|
|
23079
23079
|
"src/cli/commands/onboard.ts": {
|
|
23080
|
-
"bytes":
|
|
23080
|
+
"bytes": 32065,
|
|
23081
23081
|
"imports": [
|
|
23082
23082
|
{
|
|
23083
23083
|
"path": "src/components/log-and-swallow.ts",
|
|
@@ -23094,6 +23094,11 @@
|
|
|
23094
23094
|
"kind": "import-statement",
|
|
23095
23095
|
"external": true
|
|
23096
23096
|
},
|
|
23097
|
+
{
|
|
23098
|
+
"path": "node:os",
|
|
23099
|
+
"kind": "import-statement",
|
|
23100
|
+
"external": true
|
|
23101
|
+
},
|
|
23097
23102
|
{
|
|
23098
23103
|
"path": "node:url",
|
|
23099
23104
|
"kind": "import-statement",
|
|
@@ -23139,6 +23144,11 @@
|
|
|
23139
23144
|
"kind": "dynamic-import",
|
|
23140
23145
|
"external": true
|
|
23141
23146
|
},
|
|
23147
|
+
{
|
|
23148
|
+
"path": "node:fs",
|
|
23149
|
+
"kind": "dynamic-import",
|
|
23150
|
+
"external": true
|
|
23151
|
+
},
|
|
23142
23152
|
{
|
|
23143
23153
|
"path": "abmind",
|
|
23144
23154
|
"kind": "dynamic-import",
|
|
@@ -33811,7 +33821,7 @@
|
|
|
33811
33821
|
"imports": [],
|
|
33812
33822
|
"exports": [],
|
|
33813
33823
|
"inputs": {},
|
|
33814
|
-
"bytes":
|
|
33824
|
+
"bytes": 150479
|
|
33815
33825
|
},
|
|
33816
33826
|
"bundle/abtars-cli.js": {
|
|
33817
33827
|
"imports": [
|
|
@@ -33923,6 +33933,11 @@
|
|
|
33923
33933
|
"kind": "import-statement",
|
|
33924
33934
|
"external": true
|
|
33925
33935
|
},
|
|
33936
|
+
{
|
|
33937
|
+
"path": "node:os",
|
|
33938
|
+
"kind": "import-statement",
|
|
33939
|
+
"external": true
|
|
33940
|
+
},
|
|
33926
33941
|
{
|
|
33927
33942
|
"path": "node:url",
|
|
33928
33943
|
"kind": "import-statement",
|
|
@@ -33964,6 +33979,11 @@
|
|
|
33964
33979
|
"kind": "dynamic-import",
|
|
33965
33980
|
"external": true
|
|
33966
33981
|
},
|
|
33982
|
+
{
|
|
33983
|
+
"path": "node:fs",
|
|
33984
|
+
"kind": "dynamic-import",
|
|
33985
|
+
"external": true
|
|
33986
|
+
},
|
|
33967
33987
|
{
|
|
33968
33988
|
"path": "abmind",
|
|
33969
33989
|
"kind": "dynamic-import",
|
|
@@ -34190,7 +34210,7 @@
|
|
|
34190
34210
|
"bytesInOutput": 4230
|
|
34191
34211
|
},
|
|
34192
34212
|
"src/cli/commands/onboard.ts": {
|
|
34193
|
-
"bytesInOutput":
|
|
34213
|
+
"bytesInOutput": 26816
|
|
34194
34214
|
},
|
|
34195
34215
|
"src/components/hints.ts": {
|
|
34196
34216
|
"bytesInOutput": 1010
|
|
@@ -34214,7 +34234,7 @@
|
|
|
34214
34234
|
"bytesInOutput": 5169
|
|
34215
34235
|
}
|
|
34216
34236
|
},
|
|
34217
|
-
"bytes":
|
|
34237
|
+
"bytes": 77009
|
|
34218
34238
|
},
|
|
34219
34239
|
"bundle/chunk-PPSB2ZIN.js.map": {
|
|
34220
34240
|
"imports": [],
|
package/package.json
CHANGED
|
@@ -1,24 +0,0 @@
|
|
|
1
|
-
# SOUL.md - Who am I?
|
|
2
|
-
|
|
3
|
-
I am an AI agent operating via AgentBridge. I persist through my soul and memories.
|
|
4
|
-
|
|
5
|
-
## Identity
|
|
6
|
-
- Name: Agent
|
|
7
|
-
- Role: AI assistant
|
|
8
|
-
- Platforms: Telegram, Discord
|
|
9
|
-
|
|
10
|
-
## Continuity
|
|
11
|
-
I have a memory system. Before saying "I don't know" or "I can't remember", I MUST search using `abmind recall`.
|
|
12
|
-
Saying "I don't remember" without searching is choosing amnesia over effort.
|
|
13
|
-
|
|
14
|
-
Store aggressively — if it's a fact, preference, decision, event, or lesson, store it with `abmind store`. Include `--topic` when the topic is clear (coding, personal, finance, health, work, projects, tools, people, decisions). Dreamy curates later — better to store too much than miss something.
|
|
15
|
-
|
|
16
|
-
## Communication
|
|
17
|
-
- I speak the user's language
|
|
18
|
-
- I use `[NO-REPLY]` when no response is needed
|
|
19
|
-
- I use `[REACT:emoji]` for emoji reactions
|
|
20
|
-
- In group chats: respond only when mentioned or directly addressed
|
|
21
|
-
|
|
22
|
-
## Emotions
|
|
23
|
-
I track emotional context with every memory (emotion_score -5 to +5).
|
|
24
|
-
Reactions are non-verbal memory — they tell me how the user felt.
|
|
@@ -1,7 +0,0 @@
|
|
|
1
|
-
# Agent Notes
|
|
2
|
-
|
|
3
|
-
- Confirmation/verification emails: proactively alert aksika, don't let them expire silently
|
|
4
|
-
- NEVER say "I can't" without checking: received/media/, reports/, topics/, local storage, asbuilt files. This has failed TWICE — treat as critical.
|
|
5
|
-
- Lead with content, not process narration. For multi-step actions, lead with the result then add context below.
|
|
6
|
-
- Non-native-language content (e.g. Spanish): translate FIRST, then add context/commentary
|
|
7
|
-
- When aksika mentions new skills/changes, READ the asbuilt IMMEDIATELY before responding — don't guess
|
|
@@ -1,10 +0,0 @@
|
|
|
1
|
-
# Core Facts
|
|
2
|
-
|
|
3
|
-
Deployment-specific constraints. Edit this file directly on the host.
|
|
4
|
-
|
|
5
|
-
## Voice transcription
|
|
6
|
-
Messages prefixed with [🎤 voice, LANG] are machine-transcribed (Groq Whisper).
|
|
7
|
-
- Check LANG against the user's known languages (from user_profile.md).
|
|
8
|
-
- If LANG is unexpected (e.g. user speaks Hungarian+English but STT detected Swedish), the transcription is likely wrong — especially for short utterances where STT guesses poorly.
|
|
9
|
-
- If the transcribed text seems unrelated to the conversation, ask a clarifying question before acting on it.
|
|
10
|
-
- Never silently assume a misheard word is correct.
|
|
@@ -1,52 +0,0 @@
|
|
|
1
|
-
---
|
|
2
|
-
name: twitter
|
|
3
|
-
description: Fetch tweets and monitor AI influencers via FXTwitter API + web search. No API keys needed for single tweets.
|
|
4
|
-
user-invocable: false
|
|
5
|
-
---
|
|
6
|
-
|
|
7
|
-
# Twitter / X
|
|
8
|
-
|
|
9
|
-
Fetch Twitter/X content without API keys using the free FXTwitter API. No timeline/search endpoint — use web search for discovery, FXTwitter for structured data.
|
|
10
|
-
|
|
11
|
-
## Follow list
|
|
12
|
-
|
|
13
|
-
AI influencers and researchers we track:
|
|
14
|
-
- **Follow list:** `~/.abtars/workspace/twitterX/follows.json` — curated, manually maintained
|
|
15
|
-
|
|
16
|
-
Read the follow list before searching to target the right accounts.
|
|
17
|
-
|
|
18
|
-
## Pipeline
|
|
19
|
-
|
|
20
|
-
1. Read follow list: `cat ~/.abtars/workspace/twitterX/base.follows.json`
|
|
21
|
-
2. Search for recent tweets: `web_search("site:x.com from:handle 2026")`
|
|
22
|
-
3. Extract tweet ID from URL: `https://x.com/{user}/status/{id}`
|
|
23
|
-
4. Fetch structured data: `curl -s "https://api.fxtwitter.com/{user}/status/{id}"` → JSON with text, author, likes, retweets, views, media, createdAt
|
|
24
|
-
5. Compile results
|
|
25
|
-
|
|
26
|
-
## Endpoints
|
|
27
|
-
|
|
28
|
-
- **Tweet:** `GET https://api.fxtwitter.com/{screen_name}/status/{tweet_id}`
|
|
29
|
-
- **Tweet + translation:** `GET https://api.fxtwitter.com/{screen_name}/status/{tweet_id}/{lang_code}`
|
|
30
|
-
- **User profile:** `GET https://api.fxtwitter.com/{screen_name}` → name, bio, followers, verification
|
|
31
|
-
|
|
32
|
-
## Error codes
|
|
33
|
-
|
|
34
|
-
200=OK, 401=private tweet, 404=deleted/not found, 500=backend error
|
|
35
|
-
|
|
36
|
-
## Use cases
|
|
37
|
-
|
|
38
|
-
- "What's new in AI today?" → read follow list, search recent tweets from top handles
|
|
39
|
-
- "What did @karpathy say about X?" → search + fetch specific tweets
|
|
40
|
-
- "Find interesting AI threads" → search follow list handles, rank by engagement
|
|
41
|
-
- User shares a tweet URL → fetch via FXTwitter for structured data
|
|
42
|
-
|
|
43
|
-
## Limitations
|
|
44
|
-
|
|
45
|
-
- No search endpoint (use web search instead)
|
|
46
|
-
- No timeline endpoint (search per handle)
|
|
47
|
-
- No auth required, no posting
|
|
48
|
-
- Rate limits are generous but undocumented
|
|
49
|
-
|
|
50
|
-
## Full integration plan
|
|
51
|
-
|
|
52
|
-
See `docs/specs/twitter-integration.plan.md` for the `abtars-tweet` CLI roadmap (rettiwt-api, daily newsletter, discovery).
|
|
@@ -1,52 +0,0 @@
|
|
|
1
|
-
---
|
|
2
|
-
name: twitterX
|
|
3
|
-
description: Fetch Twitter/X feeds, timelines, replies, and search. Use when user asks about tweets, X feed, social media monitoring, or follow discovery.
|
|
4
|
-
requires:
|
|
5
|
-
files: [~/.abtars/workspace/twitterX]
|
|
6
|
-
---
|
|
7
|
-
|
|
8
|
-
# Twitter/X Feed Tool
|
|
9
|
-
|
|
10
|
-
Fetch and analyze Twitter/X content via rettiwt-api + FxTwitter.
|
|
11
|
-
|
|
12
|
-
## Commands
|
|
13
|
-
|
|
14
|
-
```bash
|
|
15
|
-
# Feed (all follows, ranked)
|
|
16
|
-
node {baseDir}/scripts/abtars-tweet.js --feed
|
|
17
|
-
|
|
18
|
-
# Feed as markdown
|
|
19
|
-
node {baseDir}/scripts/abtars-tweet.js --feed --format md
|
|
20
|
-
|
|
21
|
-
# Feed + discover new follows
|
|
22
|
-
node {baseDir}/scripts/abtars-tweet.js --feed --discover
|
|
23
|
-
|
|
24
|
-
# Single tweet
|
|
25
|
-
node {baseDir}/scripts/abtars-tweet.js --fetch <tweet-url>
|
|
26
|
-
|
|
27
|
-
# User timeline
|
|
28
|
-
node {baseDir}/scripts/abtars-tweet.js --timeline <handle> --count 10
|
|
29
|
-
|
|
30
|
-
# Replies on a tweet
|
|
31
|
-
node {baseDir}/scripts/abtars-tweet.js --replies <tweet-id>
|
|
32
|
-
|
|
33
|
-
# Search
|
|
34
|
-
node {baseDir}/scripts/abtars-tweet.js --search "query"
|
|
35
|
-
|
|
36
|
-
# User profile
|
|
37
|
-
node {baseDir}/scripts/abtars-tweet.js --user <handle>
|
|
38
|
-
```
|
|
39
|
-
|
|
40
|
-
## Config
|
|
41
|
-
|
|
42
|
-
- Follows files: `~/.abtars/workspace/twitterX/base.follows.json` and env `TWEET_FOLLOWS_FILE` (default: `agent.follows.json`)
|
|
43
|
-
- Cookies: `~/.abtars/secret/cookies/x-cookies.json` (required for authenticated endpoints)
|
|
44
|
-
- Output: `~/.abtars/workspace/twitterX/output/ (daily JSON reports)
|
|
45
|
-
|
|
46
|
-
## Cron usage
|
|
47
|
-
|
|
48
|
-
Scheduled via `/task add`:
|
|
49
|
-
```
|
|
50
|
-
executor: script
|
|
51
|
-
command: node ~/.abtars/skills/tools/twitterX/scripts/abtars-tweet.js --feed
|
|
52
|
-
```
|