@sulala/agent 0.1.1 → 0.1.3
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/README.md +18 -3
- package/bin/sulala.mjs +1 -1
- package/context/00-rules.md +1 -0
- package/context/apple-notes.md +99 -0
- package/context/bluesky.md +111 -0
- package/context/files.md +30 -0
- package/context/git.md +37 -0
- package/context/news.md +64 -0
- package/context/weather.md +32 -0
- package/dist/cli.js +29 -0
- package/dist/cli.js.map +1 -1
- package/dist/config.d.ts +2 -0
- package/dist/config.d.ts.map +1 -1
- package/dist/config.js +4 -0
- package/dist/config.js.map +1 -1
- package/dist/gateway/server.d.ts.map +1 -1
- package/dist/gateway/server.js +97 -1
- package/dist/gateway/server.js.map +1 -1
- package/dist/onboard-env.d.ts +7 -0
- package/dist/onboard-env.d.ts.map +1 -0
- package/dist/onboard-env.js +99 -0
- package/dist/onboard-env.js.map +1 -0
- package/dist/onboard.d.ts +21 -0
- package/dist/onboard.d.ts.map +1 -0
- package/dist/onboard.js +266 -0
- package/dist/onboard.js.map +1 -0
- package/package.json +18 -23
- package/registry/apple-notes.md +99 -0
- package/registry/bluesky.md +111 -0
- package/registry/files.md +30 -0
- package/registry/git.md +37 -0
- package/registry/news.md +64 -0
- package/registry/skills-registry.json +40 -0
- package/registry/weather.md +32 -0
package/registry/news.md
ADDED
|
@@ -0,0 +1,64 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: news
|
|
3
|
+
description: Fetch news and articles via the Perigon API. Use when the user asks for news, headlines, or articles on a topic.
|
|
4
|
+
homepage: https://www.perigon.io
|
|
5
|
+
metadata:
|
|
6
|
+
{
|
|
7
|
+
"sulala": {
|
|
8
|
+
"emoji": "📰",
|
|
9
|
+
"requires": { "bins": ["curl"], "env": ["PERIGON_API_KEY"] }
|
|
10
|
+
}
|
|
11
|
+
}
|
|
12
|
+
---
|
|
13
|
+
|
|
14
|
+
# News (Perigon API)
|
|
15
|
+
|
|
16
|
+
Use **run_command** with `curl` to fetch articles from the Perigon API. Add `curl` to ALLOWED_BINARIES.
|
|
17
|
+
|
|
18
|
+
Requires `PERIGON_API_KEY`. Set it in `.env` or in the skill config (dashboard Skills page). Config key in `skills.entries.news` is `PERIGON_API_KEY`.
|
|
19
|
+
|
|
20
|
+
**IMPORTANT:** Use `binary: "sh"` and `args: ["-c", "curl ..."]` so `$PERIGON_API_KEY` expands, or pass the key in the URL when calling curl.
|
|
21
|
+
|
|
22
|
+
## When to Use
|
|
23
|
+
|
|
24
|
+
- "Get me the latest news"
|
|
25
|
+
- "Headlines about [topic]"
|
|
26
|
+
- "Find articles on [subject]"
|
|
27
|
+
|
|
28
|
+
## API
|
|
29
|
+
|
|
30
|
+
Base URL: `https://api.perigon.io/v1`
|
|
31
|
+
|
|
32
|
+
### All articles (recent)
|
|
33
|
+
|
|
34
|
+
```bash
|
|
35
|
+
curl -s -X GET "https://api.perigon.io/v1/articles/all?apiKey=$PERIGON_API_KEY" -H "Content-Type: application/json"
|
|
36
|
+
```
|
|
37
|
+
|
|
38
|
+
### With query (topic, keyword)
|
|
39
|
+
|
|
40
|
+
Append `&q=keyword` to the URL. Example:
|
|
41
|
+
|
|
42
|
+
```bash
|
|
43
|
+
curl -s -X GET "https://api.perigon.io/v1/articles/all?apiKey=$PERIGON_API_KEY&q=climate" -H "Content-Type: application/json"
|
|
44
|
+
```
|
|
45
|
+
|
|
46
|
+
### Reading key from config
|
|
47
|
+
|
|
48
|
+
If `PERIGON_API_KEY` is not set in the environment, read from Sulala config:
|
|
49
|
+
|
|
50
|
+
```
|
|
51
|
+
CONFIG_PATH="${SULALA_CONFIG_PATH:-$HOME/.sulala/config.json}"
|
|
52
|
+
PERIGON_API_KEY=$(cat "$CONFIG_PATH" 2>/dev/null | python3 -c "import sys,json; d=json.load(sys.stdin); e=d.get('skills',{}).get('entries',{}).get('news',{}); print(e.get('PERIGON_API_KEY',''))" 2>/dev/null)
|
|
53
|
+
```
|
|
54
|
+
|
|
55
|
+
Then use `$PERIGON_API_KEY` in the curl URL.
|
|
56
|
+
|
|
57
|
+
## Response
|
|
58
|
+
|
|
59
|
+
Returns JSON with an array of articles (title, description, url, source, published date, etc.). Parse with `python3 -c "import sys,json; d=json.load(sys.stdin); ..."` to summarize or filter for the user.
|
|
60
|
+
|
|
61
|
+
## Notes
|
|
62
|
+
|
|
63
|
+
- Get an API key at https://www.perigon.io
|
|
64
|
+
- Add `api.perigon.io` to ALLOWED_CURL_HOSTS if you restrict curl by host.
|
|
@@ -0,0 +1,40 @@
|
|
|
1
|
+
{
|
|
2
|
+
"skills": [
|
|
3
|
+
{
|
|
4
|
+
"slug": "apple-notes",
|
|
5
|
+
"name": "apple-notes",
|
|
6
|
+
"description": "Manage Apple Notes via the memo CLI on macOS. Use when the user asks to add a note, list notes, search notes, or manage note folders.",
|
|
7
|
+
"version": "1.0.0"
|
|
8
|
+
},
|
|
9
|
+
{
|
|
10
|
+
"slug": "files",
|
|
11
|
+
"name": "files",
|
|
12
|
+
"description": "Basic file operations via run_command. Use when the user asks to list files, show file contents, search within files, or inspect directories.",
|
|
13
|
+
"version": "1.0.0"
|
|
14
|
+
},
|
|
15
|
+
{
|
|
16
|
+
"slug": "git",
|
|
17
|
+
"name": "git",
|
|
18
|
+
"description": "Basic Git operations via run_command. Use when the user asks to check status, diff, log, branch, or perform simple git commands.",
|
|
19
|
+
"version": "1.0.0"
|
|
20
|
+
},
|
|
21
|
+
{
|
|
22
|
+
"slug": "weather",
|
|
23
|
+
"name": "weather",
|
|
24
|
+
"description": "Get current weather and forecasts (no API key required). Uses Open-Meteo.",
|
|
25
|
+
"version": "1.0.0"
|
|
26
|
+
},
|
|
27
|
+
{
|
|
28
|
+
"slug": "bluesky",
|
|
29
|
+
"name": "bluesky",
|
|
30
|
+
"description": "Post to Bluesky (AT Protocol). Use when the user asks to post a tweet/thread to Bluesky, share content on Bluesky, or post news from a URL.",
|
|
31
|
+
"version": "1.0.0"
|
|
32
|
+
},
|
|
33
|
+
{
|
|
34
|
+
"slug": "news",
|
|
35
|
+
"name": "news",
|
|
36
|
+
"description": "Fetch news and articles via the Perigon API. Use when the user asks for news, headlines, or articles on a topic.",
|
|
37
|
+
"version": "1.0.0"
|
|
38
|
+
}
|
|
39
|
+
]
|
|
40
|
+
}
|
|
@@ -0,0 +1,32 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: weather
|
|
3
|
+
description: Get current weather and forecasts (no API key required).
|
|
4
|
+
homepage: https://open-meteo.com/en/docs
|
|
5
|
+
metadata:
|
|
6
|
+
{
|
|
7
|
+
"sulala": {
|
|
8
|
+
"emoji": "🌤️",
|
|
9
|
+
"requires": { "bins": ["curl"] }
|
|
10
|
+
}
|
|
11
|
+
}
|
|
12
|
+
---
|
|
13
|
+
|
|
14
|
+
# Weather
|
|
15
|
+
|
|
16
|
+
Use **run_command** with `curl` to fetch weather from Open-Meteo (free, no API key). Add `curl` to ALLOWED_BINARIES.
|
|
17
|
+
|
|
18
|
+
## Open-Meteo
|
|
19
|
+
|
|
20
|
+
Geocoding (city → lat, lon):
|
|
21
|
+
```bash
|
|
22
|
+
curl -s "https://geocoding-api.open-meteo.com/v1/search?name=London&count=1"
|
|
23
|
+
```
|
|
24
|
+
|
|
25
|
+
Current weather (use lat, lon from geocoding):
|
|
26
|
+
```bash
|
|
27
|
+
curl -s "https://api.open-meteo.com/v1/forecast?latitude=51.5&longitude=-0.12¤t_weather=true"
|
|
28
|
+
```
|
|
29
|
+
|
|
30
|
+
Returns JSON with temp, windspeed, weathercode, etc.
|
|
31
|
+
|
|
32
|
+
Docs: https://open-meteo.com/en/docs
|