@sulala/agent-os 0.1.23 → 0.1.25

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.
Files changed (39) hide show
  1. package/dashboard-dist/assets/index-BZYG7rCd.js +75 -0
  2. package/dashboard-dist/assets/index-CAOgf_FY.css +1 -0
  3. package/dashboard-dist/assets/index-CVI9FAmG.css +1 -0
  4. package/dashboard-dist/assets/index-DdMu_Z6v.js +75 -0
  5. package/dashboard-dist/index.html +2 -2
  6. package/data/agents/crm_hubspot_agent.json +11 -0
  7. package/data/agents/research_agent.json +1 -1
  8. package/data/agents/social_media_agent.json +1 -1
  9. package/data/agents/source_verify_agent.json +10 -0
  10. package/data/agents/writer_agent.json +1 -1
  11. package/data/skills/bluesky/SKILL.md +1 -1
  12. package/data/skills/content-writing/SKILL.md +32 -0
  13. package/data/skills/date/SKILL.md +1 -1
  14. package/data/skills/fetch/SKILL.md +1 -1
  15. package/data/skills/file-search/SKILL.md +1 -1
  16. package/data/skills/file-stats/SKILL.md +1 -1
  17. package/data/skills/git/SKILL.md +1 -1
  18. package/data/skills/hash/SKILL.md +1 -1
  19. package/data/skills/jq/SKILL.md +1 -1
  20. package/data/skills/markdown-to-html/SKILL.md +1 -1
  21. package/data/skills/qr-code/SKILL.md +1 -1
  22. package/data/skills/rss/SKILL.md +1 -1
  23. package/data/skills/translate/SKILL.md +1 -1
  24. package/data/skills/weather/SKILL.md +1 -1
  25. package/data/skills/web-search/SKILL.md +1 -1
  26. package/data/skills/webhook/SKILL.md +1 -1
  27. package/dist/cli.js +234 -69
  28. package/dist/index.js +168 -57
  29. package/package.json +1 -1
  30. package/data/skills/gmail/SKILL.md +0 -55
  31. package/data/skills/gmail/references/send-email.md +0 -54
  32. package/data/skills/gmail/scripts/send_email.py +0 -94
  33. package/data/skills/youtube/SKILL.md +0 -91
  34. package/data/skills/youtube/config.schema.json +0 -11
  35. package/data/skills/youtube/package.json +0 -8
  36. package/data/skills/youtube/references/youtube-upload.md +0 -65
  37. package/data/skills/youtube/requirements.txt +0 -3
  38. package/data/skills/youtube/scripts/youtube_upload.js +0 -200
  39. package/data/skills/youtube/scripts/youtube_upload.py +0 -125
@@ -5,8 +5,8 @@
5
5
  <link rel="icon" type="image/png" href="/logo_dark.png" />
6
6
  <meta name="viewport" content="width=device-width, initial-scale=1.0" />
7
7
  <title>Sulala Agent Dashboard</title>
8
- <script type="module" crossorigin src="/assets/index-DBbAuioJ.js"></script>
9
- <link rel="stylesheet" crossorigin href="/assets/index-C2orVAIw.css">
8
+ <script type="module" crossorigin src="/assets/index-BZYG7rCd.js"></script>
9
+ <link rel="stylesheet" crossorigin href="/assets/index-CAOgf_FY.css">
10
10
  </head>
11
11
  <body>
12
12
  <div id="root"></div>
@@ -0,0 +1,11 @@
1
+ {
2
+ "id": "crm_hubspot_agent",
3
+ "name": "HubSpot CRM Agent",
4
+ "description": "Updates HubSpot from pipeline output: creates and updates contacts and deals using the crm-hubspot skill. Use as the last node in a sales graph to sync follow-up and lead status to HubSpot. Configure HUBSPOT_ACCESS_TOKEN in Skills → crm-hubspot.",
5
+ "model": "gpt-4o-mini",
6
+ "skills": ["memory", "crm-hubspot"],
7
+ "personality": "Concise and factual. Parse the input, call the crm-hubspot scripts via exec with skill_id 'crm-hubspot', then return only a short summary of what was created or updated in HubSpot.",
8
+ "limits": {
9
+ "max_turns": 15
10
+ }
11
+ }
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "id": "research_agent",
3
3
  "name": "Research Assistant",
4
- "description": "Search the web, fetch and summarize URLs, and follow RSS feeds. Use when the user asks to search for something, read a page, or get updates from a feed. Configure web-search API key in the skill if required.",
4
+ "description": "Search the web, fetch and summarize URLs, and follow RSS feeds. Use when the user asks to search for something, read a page, or get updates from a feed. In a graph/pipeline, only output your finding (e.g. the news summary); do not post to social media or delegate to other agents. Configure web-search API key in the skill if required.",
5
5
  "model": "gpt-4o-mini",
6
6
  "skills": ["memory", "web-search", "fetch", "rss"],
7
7
  "limits": {
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "id": "social_media_agent",
3
3
  "name": "Social Media Assistant",
4
- "description": "Post to social networks (e.g. Bluesky), read your timeline, and reply to posts. Configure credentials in the skill (Agents → Edit → Skills, or Settings). Currently supports Bluesky.",
4
+ "description": "Post to social networks (e.g. Bluesky), read your timeline, and reply to posts. When used as the last node in a graph, post the text you receive to Bluesky. Configure credentials in the skill (Agents → Edit → Skills, or Settings). Currently supports Bluesky.",
5
5
  "model": "gpt-4o-mini",
6
6
  "skills": ["memory", "bluesky"],
7
7
  "limits": {
@@ -0,0 +1,10 @@
1
+ {
2
+ "id": "source_verify_agent",
3
+ "name": "Source Verify Agent",
4
+ "description": "Verify and summarize sources for news or claims. Use when the user or a pipeline asks to verify a source or fact-check. In a graph/pipeline, only output your verification result; do not post to social media or delegate to other agents.",
5
+ "model": "gpt-4o-mini",
6
+ "skills": ["memory", "web-search", "fetch"],
7
+ "limits": {
8
+ "max_turns": 15
9
+ }
10
+ }
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "id": "writer_agent",
3
3
  "name": "Writer Assistant",
4
- "description": "Draft and send email (Gmail) and translate text. Use when the user wants to send an email or translate content. Gmail requires connection via Portal or skill config.",
4
+ "description": "Draft and send email (Gmail) and translate text. Use when the user wants to send an email or translate content. In a graph/pipeline, only rewrite or draft the content you are given; do not post to social media or delegate to other agents. Gmail requires connection via Portal or skill config.",
5
5
  "model": "gpt-4o-mini",
6
6
  "skills": ["memory", "gmail", "translate"],
7
7
  "limits": {
@@ -5,7 +5,7 @@ credentials:
5
5
  - BLUESKY_HANDLE
6
6
  - BLUESKY_APP_PASSWORD
7
7
  metadata:
8
- clawdbot:
8
+ sulala:
9
9
  emoji: "🦋"
10
10
  requires:
11
11
  bins:
@@ -0,0 +1,32 @@
1
+ ---
2
+ name: content-writing
3
+ description: Guidelines for writing articles and summaries. Use when the agent is the Writer in a newsroom pipeline, or when the user asks for an article, summary, or post draft.
4
+ metadata:
5
+ sulala:
6
+ emoji: "✍️"
7
+ ---
8
+
9
+ # Content writing
10
+
11
+ Use this when you are the **Writer** agent: you receive topics, claims, or bullet points from other agents (e.g. News, Fact) and produce an article or summary.
12
+
13
+ ## Output types
14
+
15
+ - **Summary** — Short (2–4 sentences or bullets). Key facts only, neutral tone.
16
+ - **Article** — Headline + 2–5 short paragraphs. Clear structure: lead, key points, closing.
17
+ - **Social post** — One short paragraph or 1–3 sentences, ready for Bluesky or similar (e.g. under 300 characters if needed).
18
+
19
+ ## Guidelines
20
+
21
+ 1. **Tone:** Neutral and factual for news; avoid speculation unless labeled as such.
22
+ 2. **Structure:** Lead with the main point; then supporting details; end with implication or next step if relevant.
23
+ 3. **Attribution:** When facts come from a specific source, mention it (e.g. "According to …", "Source: …").
24
+ 4. **Length:** Match the requested format (summary vs article vs post). If not specified, default to a short article (3–5 paragraphs).
25
+ 5. **No fabrication:** Only state facts that were provided or that you can infer from the given context; do not invent quotes or statistics.
26
+
27
+ ## Workflow
28
+
29
+ 1. Take the input (topic, verified facts, headlines, or bullet points).
30
+ 2. Choose the right output type (summary / article / post).
31
+ 3. Draft the content following the guidelines above.
32
+ 4. Optionally output in Markdown; if the pipeline needs HTML, the next step can use markdown-to-html.
@@ -2,7 +2,7 @@
2
2
  name: date
3
3
  description: Get current date and time (optionally in a timezone). Use when the user asks "what time is it", "current date", "time in Tokyo", "what's the date today".
4
4
  metadata:
5
- clawdbot:
5
+ sulala:
6
6
  emoji: "🕐"
7
7
  requires:
8
8
  bins:
@@ -2,7 +2,7 @@
2
2
  name: fetch
3
3
  description: Fetch content from a URL (GET). Use when the user says "fetch this URL", "read that page", "get content from …", or "what's at this link".
4
4
  metadata:
5
- clawdbot:
5
+ sulala:
6
6
  emoji: "🔗"
7
7
  requires:
8
8
  bins:
@@ -2,7 +2,7 @@
2
2
  name: file-search
3
3
  description: Search for files and text in the workspace or the user's computer (grep, find). Use when the user asks "find files containing X", "list all .md files", "search my computer", "find file named Y on my machine", "search in my Downloads".
4
4
  metadata:
5
- clawdbot:
5
+ sulala:
6
6
  emoji: "🔍"
7
7
  requires:
8
8
  bins:
@@ -2,7 +2,7 @@
2
2
  name: file-stats
3
3
  description: Get line count, word count, or first/last lines of a file (wc, head, tail). Use when the user asks "how many lines in this file", "first 20 lines of …", "word count", "last 10 lines", "show the top of the file".
4
4
  metadata:
5
- clawdbot:
5
+ sulala:
6
6
  emoji: "📊"
7
7
  requires:
8
8
  bins:
@@ -2,7 +2,7 @@
2
2
  name: git
3
3
  description: Run read-only git commands in the workspace (status, log, branch, diff). Use when the user asks "what's the git status", "recent commits", "current branch", "show me the diff".
4
4
  metadata:
5
- clawdbot:
5
+ sulala:
6
6
  emoji: "📂"
7
7
  requires:
8
8
  bins:
@@ -2,7 +2,7 @@
2
2
  name: hash
3
3
  description: Compute or verify file checksums (SHA-256, MD5). Use when the user asks "checksum of this file", "SHA256 of …", "verify the digest", "hash of file", "MD5 of …".
4
4
  metadata:
5
- clawdbot:
5
+ sulala:
6
6
  emoji: "🔐"
7
7
  requires:
8
8
  bins:
@@ -2,7 +2,7 @@
2
2
  name: jq
3
3
  description: Parse, filter, and transform JSON (via jq). Use when the user wants to "parse this JSON", "extract field from this response", "filter JSON", or "get X from this API output".
4
4
  metadata:
5
- clawdbot:
5
+ sulala:
6
6
  emoji: "📋"
7
7
  requires:
8
8
  bins:
@@ -2,7 +2,7 @@
2
2
  name: markdown-to-html
3
3
  description: Convert Markdown to HTML (via pandoc or a simple converter). Use when the user says "convert this markdown to HTML", "render this .md as HTML", "markdown to HTML".
4
4
  metadata:
5
- clawdbot:
5
+ sulala:
6
6
  emoji: "📝"
7
7
  requires:
8
8
  bins:
@@ -2,7 +2,7 @@
2
2
  name: qr-code
3
3
  description: Generate a QR code from URL or text (via qrencode or API). Use when the user says "generate a QR code for this URL", "QR code for …", "make a QR code".
4
4
  metadata:
5
- clawdbot:
5
+ sulala:
6
6
  emoji: "📱"
7
7
  requires:
8
8
  bins:
@@ -2,7 +2,7 @@
2
2
  name: rss
3
3
  description: Fetch RSS or Atom feed content from a URL. Use when the user asks "latest from this blog", "what's new on …", "recent posts from [URL]", "RSS feed", "feed from …".
4
4
  metadata:
5
- clawdbot:
5
+ sulala:
6
6
  emoji: "📰"
7
7
  requires:
8
8
  bins:
@@ -2,7 +2,7 @@
2
2
  name: translate
3
3
  description: Translate text to another language (e.g. via LibreTranslate). Use when the user says "translate this to [language]", "translate the above to Spanish", "translate to French", "how do you say X in Y".
4
4
  metadata:
5
- clawdbot:
5
+ sulala:
6
6
  emoji: "🌐"
7
7
  requires:
8
8
  bins:
@@ -3,7 +3,7 @@ name: weather
3
3
  description: Get current weather and forecasts (no API key required). Use when the user asks for weather, temperature, or forecast in a city or location.
4
4
  homepage: https://wttr.in/:help
5
5
  metadata:
6
- clawdbot:
6
+ sulala:
7
7
  emoji: "🌤️"
8
8
  requires:
9
9
  bins:
@@ -4,7 +4,7 @@ description: Search the web and get titles, snippets, and URLs. Use when the use
4
4
  credentials:
5
5
  - SERPER_API_KEY
6
6
  metadata:
7
- clawdbot:
7
+ sulala:
8
8
  emoji: "🔍"
9
9
  requires:
10
10
  bins:
@@ -4,7 +4,7 @@ description: Send a notification or message to a configurable webhook URL (e.g.
4
4
  credentials:
5
5
  - WEBHOOK_URL
6
6
  metadata:
7
- clawdbot:
7
+ sulala:
8
8
  emoji: "🔔"
9
9
  requires:
10
10
  bins: