@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.
@@ -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&current_weather=true"
28
+ ```
29
+
30
+ Returns JSON with temp, windspeed, weathercode, etc.
31
+
32
+ Docs: https://open-meteo.com/en/docs