@robbiesrobotics/alice-agents 1.5.8 → 1.5.10

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 (591) hide show
  1. package/README.md +152 -129
  2. package/bin/alice-install.mjs +27 -35
  3. package/lib/hermes-agent.mjs +449 -0
  4. package/lib/hermes-installer.mjs +338 -0
  5. package/lib/installer.mjs +254 -19
  6. package/lib/skills.mjs +128 -4
  7. package/package.json +3 -3
  8. package/templates/skills/acculynx/SKILL.md +183 -0
  9. package/templates/skills/acculynx/references/analysis_template.py +116 -0
  10. package/templates/skills/acculynx/references/dashboard_page.tsx +641 -0
  11. package/templates/skills/claude-code/SKILL.md +2 -2
  12. package/templates/skills/coding-agent/SKILL.md +68 -0
  13. package/templates/skills/crawl4ai/SKILL.md +119 -0
  14. package/templates/skills/crawl4ai/scripts/crwl +3 -0
  15. package/templates/workspaces/_shared/AGENTS-hermes.md +54 -0
  16. package/templates/workspaces/_shared/AGENTS.md +25 -0
  17. package/templates/workspaces/_shared/SOUL-hermes.md +35 -0
  18. package/templates/workspaces/_shared/hermes-agent-skill.md +40 -0
  19. package/templates/workspaces/_shared/hermes-orchestrator-skill.md +150 -0
  20. package/templates/workspaces/_shared/hermes-specialist-skill.md +109 -0
  21. package/templates/workspaces/accuscope/AGENTS.md +38 -0
  22. package/templates/workspaces/accuscope/FEEDBACK.md +27 -0
  23. package/templates/workspaces/accuscope/HEARTBEAT.md +26 -0
  24. package/templates/workspaces/accuscope/IDENTITY.md +48 -0
  25. package/templates/workspaces/accuscope/LEARNINGS.md +46 -0
  26. package/templates/workspaces/accuscope/MEMORY.md +47 -0
  27. package/templates/workspaces/accuscope/PLAYBOOK.md +65 -0
  28. package/templates/workspaces/accuscope/SOUL.md +40 -0
  29. package/templates/workspaces/accuscope/TOOLS.md +63 -0
  30. package/templates/workspaces/accuscope/USER.md +39 -0
  31. package/templates/workspaces/aiden/AGENTS.md +52 -0
  32. package/templates/workspaces/aiden/FEEDBACK.md +12 -0
  33. package/templates/workspaces/aiden/HEARTBEAT.md +9 -0
  34. package/templates/workspaces/aiden/IDENTITY.md +6 -0
  35. package/templates/workspaces/aiden/LEARNINGS.md +6 -0
  36. package/templates/workspaces/aiden/MEMORY.md +22 -0
  37. package/templates/workspaces/aiden/PLAYBOOK.md +16 -0
  38. package/templates/workspaces/aiden/SOUL.md +1 -1
  39. package/templates/workspaces/aiden/USER.md +17 -0
  40. package/templates/workspaces/alex/AGENTS.md +52 -0
  41. package/templates/workspaces/alex/FEEDBACK.md +11 -0
  42. package/templates/workspaces/alex/HEARTBEAT.md +9 -0
  43. package/templates/workspaces/alex/IDENTITY.md +6 -0
  44. package/templates/workspaces/alex/LEARNINGS.md +5 -0
  45. package/templates/workspaces/alex/MEMORY.md +22 -0
  46. package/templates/workspaces/alex/PLAYBOOK.md +16 -0
  47. package/templates/workspaces/alex/SOUL.md +1 -1
  48. package/templates/workspaces/alex/USER.md +13 -0
  49. package/templates/workspaces/aria/AGENTS.md +18 -0
  50. package/templates/workspaces/aria/FEEDBACK.md +12 -0
  51. package/templates/workspaces/aria/HEARTBEAT.md +32 -0
  52. package/templates/workspaces/aria/IDENTITY.md +12 -0
  53. package/templates/workspaces/aria/LEARNINGS.md +31 -0
  54. package/templates/workspaces/aria/MEMORY.md +29 -0
  55. package/templates/workspaces/aria/PLAYBOOK.md +71 -0
  56. package/templates/workspaces/aria/SOUL.md +57 -0
  57. package/templates/workspaces/aria/TOOLS.md +47 -0
  58. package/templates/workspaces/aria/USER.md +18 -0
  59. package/templates/workspaces/audrey/AGENTS.md +59 -0
  60. package/templates/workspaces/audrey/FEEDBACK.md +11 -0
  61. package/templates/workspaces/audrey/HEARTBEAT.md +9 -0
  62. package/templates/workspaces/audrey/IDENTITY.md +6 -0
  63. package/templates/workspaces/audrey/LEARNINGS.md +5 -0
  64. package/templates/workspaces/audrey/MEMORY.md +22 -0
  65. package/templates/workspaces/audrey/PLAYBOOK.md +16 -0
  66. package/templates/workspaces/audrey/SOUL.md +1 -1
  67. package/templates/workspaces/audrey/TOOLS.md +15 -0
  68. package/templates/workspaces/audrey/USER.md +13 -0
  69. package/templates/workspaces/avery/AGENTS.md +52 -0
  70. package/templates/workspaces/avery/FEEDBACK.md +12 -0
  71. package/templates/workspaces/avery/HEARTBEAT.md +5 -0
  72. package/templates/workspaces/avery/IDENTITY.md +6 -0
  73. package/templates/workspaces/avery/LEARNINGS.md +6 -0
  74. package/templates/workspaces/avery/MEMORY.md +22 -0
  75. package/templates/workspaces/avery/PLAYBOOK.md +16 -0
  76. package/templates/workspaces/avery/SOUL.md +1 -1
  77. package/templates/workspaces/avery/USER.md +17 -0
  78. package/templates/workspaces/avery/skills/claude-code/SKILL.md +38 -0
  79. package/templates/workspaces/avery/skills/claude-code/claude_code +55 -0
  80. package/templates/workspaces/caleb/AGENTS.md +52 -0
  81. package/templates/workspaces/caleb/FEEDBACK.md +11 -0
  82. package/templates/workspaces/caleb/HEARTBEAT.md +9 -0
  83. package/templates/workspaces/caleb/IDENTITY.md +6 -0
  84. package/templates/workspaces/caleb/LEARNINGS.md +5 -0
  85. package/templates/workspaces/caleb/MEMORY.md +22 -0
  86. package/templates/workspaces/caleb/PLAYBOOK.md +16 -0
  87. package/templates/workspaces/caleb/SOUL.md +1 -1
  88. package/templates/workspaces/caleb/TOOLS.md +30 -0
  89. package/templates/workspaces/caleb/USER.md +13 -0
  90. package/templates/workspaces/clara/AGENTS.md +59 -0
  91. package/templates/workspaces/clara/FEEDBACK.md +12 -0
  92. package/templates/workspaces/clara/HEARTBEAT.md +5 -0
  93. package/templates/workspaces/clara/IDENTITY.md +6 -0
  94. package/templates/workspaces/clara/LEARNINGS.md +6 -0
  95. package/templates/workspaces/clara/MEMORY.md +22 -0
  96. package/templates/workspaces/clara/PLAYBOOK.md +16 -0
  97. package/templates/workspaces/clara/SOUL.md +1 -1
  98. package/templates/workspaces/clara/TOOLS.md +15 -0
  99. package/templates/workspaces/clara/USER.md +17 -0
  100. package/templates/workspaces/daphne/AGENTS.md +59 -0
  101. package/templates/workspaces/daphne/FEEDBACK.md +18 -0
  102. package/templates/workspaces/daphne/HEARTBEAT.md +5 -0
  103. package/templates/workspaces/daphne/IDENTITY.md +6 -0
  104. package/templates/workspaces/daphne/LEARNINGS.md +6 -0
  105. package/templates/workspaces/daphne/MEMORY.md +22 -0
  106. package/templates/workspaces/daphne/PLAYBOOK.md +48 -0
  107. package/templates/workspaces/daphne/SOUL.md +1 -1
  108. package/templates/workspaces/daphne/TOOLS.md +15 -0
  109. package/templates/workspaces/daphne/USER.md +17 -0
  110. package/templates/workspaces/darius/AGENTS.md +52 -0
  111. package/templates/workspaces/darius/FEEDBACK.md +12 -0
  112. package/templates/workspaces/darius/HEARTBEAT.md +5 -0
  113. package/templates/workspaces/darius/IDENTITY.md +6 -0
  114. package/templates/workspaces/darius/LEARNINGS.md +6 -0
  115. package/templates/workspaces/darius/MEMORY.md +22 -0
  116. package/templates/workspaces/darius/PLAYBOOK.md +16 -0
  117. package/templates/workspaces/darius/SOUL.md +1 -1
  118. package/templates/workspaces/darius/USER.md +17 -0
  119. package/templates/workspaces/darius/skills/claude-code/SKILL.md +38 -0
  120. package/templates/workspaces/darius/skills/claude-code/claude_code +55 -0
  121. package/templates/workspaces/devon/AGENTS.md +52 -0
  122. package/templates/workspaces/devon/FEEDBACK.md +11 -0
  123. package/templates/workspaces/devon/HEARTBEAT.md +5 -0
  124. package/templates/workspaces/devon/IDENTITY.md +6 -0
  125. package/templates/workspaces/devon/LEARNINGS.md +11 -0
  126. package/templates/workspaces/devon/MEMORY.md +22 -0
  127. package/templates/workspaces/devon/PLAYBOOK.md +16 -0
  128. package/templates/workspaces/devon/SOUL.md +1 -1
  129. package/templates/workspaces/devon/USER.md +13 -0
  130. package/templates/workspaces/devon/check_github.py +12 -0
  131. package/templates/workspaces/devon/check_mc_env.py +30 -0
  132. package/templates/workspaces/devon/check_sb.py +34 -0
  133. package/templates/workspaces/devon/check_vercel.py +12 -0
  134. package/templates/workspaces/devon/get_mc_files.py +17 -0
  135. package/templates/workspaces/devon/write_heartbeat.py +67 -0
  136. package/templates/workspaces/dylan/.env.example +33 -0
  137. package/templates/workspaces/dylan/00007_verify_licenses_table.sql +100 -0
  138. package/templates/workspaces/dylan/AGENTS.md +52 -0
  139. package/templates/workspaces/dylan/FEEDBACK.md +28 -0
  140. package/templates/workspaces/dylan/HEARTBEAT.md +5 -0
  141. package/templates/workspaces/dylan/IDENTITY.md +6 -0
  142. package/templates/workspaces/dylan/LEARNINGS.md +70 -0
  143. package/templates/workspaces/dylan/MEMORY.md +22 -0
  144. package/templates/workspaces/dylan/PLAYBOOK.md +16 -0
  145. package/templates/workspaces/dylan/SOUL.md +1 -1
  146. package/templates/workspaces/dylan/STRIPE_PIPELINE.md +185 -0
  147. package/templates/workspaces/dylan/USER.md +17 -0
  148. package/templates/workspaces/dylan/n8n-stripe-welcome-workflow.json +123 -0
  149. package/templates/workspaces/dylan/skills/claude-code/SKILL.md +38 -0
  150. package/templates/workspaces/dylan/skills/claude-code/claude_code +55 -0
  151. package/templates/workspaces/dylan/stripe-webhook-handler.py +433 -0
  152. package/templates/workspaces/dylan/test_mock_webhook.py +103 -0
  153. package/templates/workspaces/elena/AGENTS.md +59 -0
  154. package/templates/workspaces/elena/FEEDBACK.md +11 -0
  155. package/templates/workspaces/elena/HEARTBEAT.md +9 -0
  156. package/templates/workspaces/elena/IDENTITY.md +6 -0
  157. package/templates/workspaces/elena/LEARNINGS.md +5 -0
  158. package/templates/workspaces/elena/MEMORY.md +22 -0
  159. package/templates/workspaces/elena/PLAYBOOK.md +16 -0
  160. package/templates/workspaces/elena/SOUL.md +1 -1
  161. package/templates/workspaces/elena/TOOLS.md +15 -0
  162. package/templates/workspaces/elena/USER.md +13 -0
  163. package/templates/workspaces/eva/AGENTS.md +59 -0
  164. package/templates/workspaces/eva/FEEDBACK.md +11 -0
  165. package/templates/workspaces/eva/HEARTBEAT.md +9 -0
  166. package/templates/workspaces/eva/IDENTITY.md +6 -0
  167. package/templates/workspaces/eva/LEARNINGS.md +5 -0
  168. package/templates/workspaces/eva/MEMORY.md +22 -0
  169. package/templates/workspaces/eva/PLAYBOOK.md +16 -0
  170. package/templates/workspaces/eva/SOUL.md +1 -1
  171. package/templates/workspaces/eva/TOOLS.md +15 -0
  172. package/templates/workspaces/eva/USER.md +13 -0
  173. package/templates/workspaces/felix/AGENTS.md +52 -0
  174. package/templates/workspaces/felix/FEEDBACK.md +11 -0
  175. package/templates/workspaces/felix/HEARTBEAT.md +5 -0
  176. package/templates/workspaces/felix/IDENTITY.md +6 -0
  177. package/templates/workspaces/felix/LEARNINGS.md +17 -0
  178. package/templates/workspaces/felix/MEMORY.md +22 -0
  179. package/templates/workspaces/felix/PLAYBOOK.md +16 -0
  180. package/templates/workspaces/felix/SOUL.md +1 -1
  181. package/templates/workspaces/felix/USER.md +13 -0
  182. package/templates/workspaces/felix/fidelia-psychology.html +1594 -0
  183. package/templates/workspaces/felix/task.txt +164 -0
  184. package/templates/workspaces/hannah/AGENTS.md +59 -0
  185. package/templates/workspaces/hannah/FEEDBACK.md +12 -0
  186. package/templates/workspaces/hannah/HEARTBEAT.md +5 -0
  187. package/templates/workspaces/hannah/IDENTITY.md +6 -0
  188. package/templates/workspaces/hannah/LEARNINGS.md +6 -0
  189. package/templates/workspaces/hannah/MEMORY.md +22 -0
  190. package/templates/workspaces/hannah/PLAYBOOK.md +16 -0
  191. package/templates/workspaces/hannah/SOUL.md +1 -1
  192. package/templates/workspaces/hannah/TOOLS.md +15 -0
  193. package/templates/workspaces/hannah/USER.md +17 -0
  194. package/templates/workspaces/isaac/AGENTS.md +52 -0
  195. package/templates/workspaces/isaac/FEEDBACK.md +12 -0
  196. package/templates/workspaces/isaac/HEARTBEAT.md +9 -0
  197. package/templates/workspaces/isaac/IDENTITY.md +6 -0
  198. package/templates/workspaces/isaac/LEARNINGS.md +6 -0
  199. package/templates/workspaces/isaac/MEMORY.md +22 -0
  200. package/templates/workspaces/isaac/PLAYBOOK.md +16 -0
  201. package/templates/workspaces/isaac/SOUL.md +1 -1
  202. package/templates/workspaces/isaac/USER.md +17 -0
  203. package/templates/workspaces/isaac/skills/claude-code/SKILL.md +38 -0
  204. package/templates/workspaces/isaac/skills/claude-code/claude_code +55 -0
  205. package/templates/workspaces/logan/AGENTS.md +59 -0
  206. package/templates/workspaces/logan/FEEDBACK.md +11 -0
  207. package/templates/workspaces/logan/HEARTBEAT.md +9 -0
  208. package/templates/workspaces/logan/IDENTITY.md +6 -0
  209. package/templates/workspaces/logan/LEARNINGS.md +5 -0
  210. package/templates/workspaces/logan/MEMORY.md +22 -0
  211. package/templates/workspaces/logan/PLAYBOOK.md +16 -0
  212. package/templates/workspaces/logan/SOUL.md +1 -1
  213. package/templates/workspaces/logan/TOOLS.md +15 -0
  214. package/templates/workspaces/logan/USER.md +13 -0
  215. package/templates/workspaces/maxxipro/AGENTS.md +29 -0
  216. package/templates/workspaces/maxxipro/FEEDBACK.md +19 -0
  217. package/templates/workspaces/maxxipro/HEARTBEAT.md +22 -0
  218. package/templates/workspaces/maxxipro/IDENTITY.md +35 -0
  219. package/templates/workspaces/maxxipro/KNOWLEDGE.md +335 -0
  220. package/templates/workspaces/maxxipro/LEARNINGS.md +47 -0
  221. package/templates/workspaces/maxxipro/MEMORY.md +60 -0
  222. package/templates/workspaces/maxxipro/OUTREACH_TEMPLATES.md +143 -0
  223. package/templates/workspaces/maxxipro/PLAYBOOK.md +81 -0
  224. package/templates/workspaces/maxxipro/SOUL.md +146 -0
  225. package/templates/workspaces/maxxipro/TOOLS.md +81 -0
  226. package/templates/workspaces/maxxipro/USER.md +40 -0
  227. package/templates/workspaces/morgan/AGENTS.md +59 -0
  228. package/templates/workspaces/morgan/FEEDBACK.md +19 -0
  229. package/templates/workspaces/morgan/HEARTBEAT.md +5 -0
  230. package/templates/workspaces/morgan/IDENTITY.md +6 -0
  231. package/templates/workspaces/morgan/LEARNINGS.md +18 -0
  232. package/templates/workspaces/morgan/MEMORY.md +22 -0
  233. package/templates/workspaces/morgan/PLAYBOOK.md +16 -0
  234. package/templates/workspaces/morgan/SOUL.md +1 -1
  235. package/templates/workspaces/morgan/TOOLS.md +15 -0
  236. package/templates/workspaces/morgan/USER.md +13 -0
  237. package/templates/workspaces/nadia/AGENTS.md +59 -0
  238. package/templates/workspaces/nadia/FEEDBACK.md +12 -0
  239. package/templates/workspaces/nadia/HEARTBEAT.md +5 -0
  240. package/templates/workspaces/nadia/IDENTITY.md +6 -0
  241. package/templates/workspaces/nadia/LEARNINGS.md +6 -0
  242. package/templates/workspaces/nadia/MEMORY.md +22 -0
  243. package/templates/workspaces/nadia/PLAYBOOK.md +16 -0
  244. package/templates/workspaces/nadia/SOUL.md +1 -1
  245. package/templates/workspaces/nadia/TOOLS.md +15 -0
  246. package/templates/workspaces/nadia/USER.md +13 -0
  247. package/templates/workspaces/nate/AGENTS.md +24 -0
  248. package/templates/workspaces/nate/FEEDBACK.md +12 -0
  249. package/templates/workspaces/nate/HEARTBEAT.md +33 -0
  250. package/templates/workspaces/nate/IDENTITY.md +15 -0
  251. package/templates/workspaces/nate/LEARNINGS.md +33 -0
  252. package/templates/workspaces/nate/MEMORY.md +39 -0
  253. package/templates/workspaces/nate/PLAYBOOK.md +160 -0
  254. package/templates/workspaces/nate/SOUL.md +50 -0
  255. package/templates/workspaces/nate/TOOLS.md +111 -0
  256. package/templates/workspaces/nate/USER.md +32 -0
  257. package/templates/workspaces/olivia/.last-openclaw-version +1 -0
  258. package/templates/workspaces/olivia/.npmrc.tmp +0 -0
  259. package/templates/workspaces/olivia/AGENTS.md +77 -0
  260. package/templates/workspaces/olivia/ALPHA_CODING_BENCHMARK.txt +148 -0
  261. package/templates/workspaces/olivia/ALPHA_MODEL_GUIDE.md +393 -0
  262. package/templates/workspaces/olivia/FEEDBACK.md +13 -0
  263. package/templates/workspaces/olivia/HEADTOHEAD_BENCHMARK.txt +1289 -0
  264. package/templates/workspaces/olivia/HEARTBEAT.md +267 -0
  265. package/templates/workspaces/olivia/IDENTITY.md +6 -0
  266. package/templates/workspaces/olivia/LEARNINGS.md +708 -0
  267. package/templates/workspaces/olivia/MEMORY.md +202 -0
  268. package/templates/workspaces/olivia/MISSION_CONTROL_DESIGN_SPEC_v1.md +1143 -0
  269. package/templates/workspaces/olivia/MVP-COMPLETION-SUMMARY.md +175 -0
  270. package/templates/workspaces/olivia/NETWORK_IMPLEMENTATION_PLAN.md +1556 -0
  271. package/templates/workspaces/olivia/NEW_NODES_BENCHMARK.txt +947 -0
  272. package/templates/workspaces/olivia/PLAYBOOK.md +42 -0
  273. package/templates/workspaces/olivia/SELF-HEALING-COMPLETE.md +150 -0
  274. package/templates/workspaces/olivia/SOUL.md +8 -8
  275. package/templates/workspaces/olivia/TOOLS.md +15 -0
  276. package/templates/workspaces/olivia/USER.md +17 -0
  277. package/templates/workspaces/olivia/alicefleet-supabase-credentials.md +50 -0
  278. package/templates/workspaces/olivia/dzombo-copy-rewrite.md +115 -0
  279. package/templates/workspaces/olivia/dzombo-implementation-plan.md +1248 -0
  280. package/templates/workspaces/olivia/fidelia-psychology.html +1594 -0
  281. package/templates/workspaces/olivia/lead_debug.png +0 -0
  282. package/templates/workspaces/olivia/minimatch-10.2.4.tgz +0 -0
  283. package/templates/workspaces/olivia/operation-bllm-research.md +157 -0
  284. package/templates/workspaces/olivia/qa-audit-mission-control-v2.md +538 -0
  285. package/templates/workspaces/olivia/roofmaxx_logo.svg +1 -0
  286. package/templates/workspaces/olivia/roofmaxx_social.jpg +0 -0
  287. package/templates/workspaces/olivia/skills/1password/SKILL.md +53 -0
  288. package/templates/workspaces/olivia/skills/1password/_meta.json +6 -0
  289. package/templates/workspaces/olivia/skills/afrexai-recruiting-engine/README.md +57 -0
  290. package/templates/workspaces/olivia/skills/afrexai-recruiting-engine/SKILL.md +534 -0
  291. package/templates/workspaces/olivia/skills/afrexai-recruiting-engine/_meta.json +6 -0
  292. package/templates/workspaces/olivia/skills/agent-security/SKILL.md +69 -0
  293. package/templates/workspaces/olivia/skills/agent-security/_meta.json +6 -0
  294. package/templates/workspaces/olivia/skills/agentic-security-audit/SKILL.md +855 -0
  295. package/templates/workspaces/olivia/skills/agentic-security-audit/_meta.json +6 -0
  296. package/templates/workspaces/olivia/skills/ai-automation-consulting/SKILL.md +67 -0
  297. package/templates/workspaces/olivia/skills/ai-automation-consulting/_meta.json +6 -0
  298. package/templates/workspaces/olivia/skills/ai-automation-consulting/skill.json +12 -0
  299. package/templates/workspaces/olivia/skills/ai-presentation-maker/SKILL.md +1104 -0
  300. package/templates/workspaces/olivia/skills/ai-presentation-maker/_meta.json +6 -0
  301. package/templates/workspaces/olivia/skills/ai-productivity-audit/SKILL.md +181 -0
  302. package/templates/workspaces/olivia/skills/ai-productivity-audit/_meta.json +6 -0
  303. package/templates/workspaces/olivia/skills/ai-researcher/README.md +31 -0
  304. package/templates/workspaces/olivia/skills/ai-researcher/SKILL.md +59 -0
  305. package/templates/workspaces/olivia/skills/ai-researcher/_meta.json +6 -0
  306. package/templates/workspaces/olivia/skills/ai-seo-writer/README.md +19 -0
  307. package/templates/workspaces/olivia/skills/ai-seo-writer/SKILL.md +100 -0
  308. package/templates/workspaces/olivia/skills/ai-seo-writer/_meta.json +6 -0
  309. package/templates/workspaces/olivia/skills/analytics-tracking-2/SKILL.md +309 -0
  310. package/templates/workspaces/olivia/skills/analytics-tracking-2/_meta.json +6 -0
  311. package/templates/workspaces/olivia/skills/api-doc-writer/SKILL.md +232 -0
  312. package/templates/workspaces/olivia/skills/api-doc-writer/_meta.json +6 -0
  313. package/templates/workspaces/olivia/skills/api-generator/SKILL.md +49 -0
  314. package/templates/workspaces/olivia/skills/api-generator/_meta.json +6 -0
  315. package/templates/workspaces/olivia/skills/api-generator/tips.md +10 -0
  316. package/templates/workspaces/olivia/skills/apple-notes/SKILL.md +50 -0
  317. package/templates/workspaces/olivia/skills/apple-notes/_meta.json +6 -0
  318. package/templates/workspaces/olivia/skills/apple-reminders/SKILL.md +67 -0
  319. package/templates/workspaces/olivia/skills/apple-reminders/_meta.json +6 -0
  320. package/templates/workspaces/olivia/skills/automation-workflows/SKILL.md +267 -0
  321. package/templates/workspaces/olivia/skills/automation-workflows/_meta.json +6 -0
  322. package/templates/workspaces/olivia/skills/autoresearch/SKILL.md +46 -0
  323. package/templates/workspaces/olivia/skills/autoresearch/aria_write.py +148 -0
  324. package/templates/workspaces/olivia/skills/autoresearch/autoresearch.py +75 -0
  325. package/templates/workspaces/olivia/skills/azure-devops/SKILL.md +115 -0
  326. package/templates/workspaces/olivia/skills/azure-devops/_meta.json +6 -0
  327. package/templates/workspaces/olivia/skills/blogwatcher/SKILL.md +46 -0
  328. package/templates/workspaces/olivia/skills/blogwatcher/_meta.json +6 -0
  329. package/templates/workspaces/olivia/skills/blucli/SKILL.md +27 -0
  330. package/templates/workspaces/olivia/skills/blucli/_meta.json +6 -0
  331. package/templates/workspaces/olivia/skills/check-analytics/SKILL.md +92 -0
  332. package/templates/workspaces/olivia/skills/check-analytics/_meta.json +6 -0
  333. package/templates/workspaces/olivia/skills/cloud-architect/SKILL.md +89 -0
  334. package/templates/workspaces/olivia/skills/cloud-architect/_meta.json +6 -0
  335. package/templates/workspaces/olivia/skills/cloud-infra-automation/SKILL.md +50 -0
  336. package/templates/workspaces/olivia/skills/cloud-infra-automation/_meta.json +6 -0
  337. package/templates/workspaces/olivia/skills/cloud-storage/SKILL.md +61 -0
  338. package/templates/workspaces/olivia/skills/cloud-storage/_meta.json +6 -0
  339. package/templates/workspaces/olivia/skills/cloud-storage/auth.md +97 -0
  340. package/templates/workspaces/olivia/skills/cloud-storage/costs.md +88 -0
  341. package/templates/workspaces/olivia/skills/cloud-storage/providers.md +55 -0
  342. package/templates/workspaces/olivia/skills/copywriting-pro/SKILL.md +107 -0
  343. package/templates/workspaces/olivia/skills/copywriting-pro/_meta.json +6 -0
  344. package/templates/workspaces/olivia/skills/data-analyst-pro/SKILL.md +21 -0
  345. package/templates/workspaces/olivia/skills/data-analyst-pro/_meta.json +6 -0
  346. package/templates/workspaces/olivia/skills/database-designer/README.md +388 -0
  347. package/templates/workspaces/olivia/skills/database-designer/SKILL.md +66 -0
  348. package/templates/workspaces/olivia/skills/database-designer/_meta.json +6 -0
  349. package/templates/workspaces/olivia/skills/database-designer/index_optimizer.py +926 -0
  350. package/templates/workspaces/olivia/skills/database-designer/migration_generator.py +1199 -0
  351. package/templates/workspaces/olivia/skills/database-designer/schema_analyzer.py +982 -0
  352. package/templates/workspaces/olivia/skills/deploy-agent/SKILL.md +255 -0
  353. package/templates/workspaces/olivia/skills/deploy-agent/_meta.json +6 -0
  354. package/templates/workspaces/olivia/skills/devops-automation-pack/SKILL.md +72 -0
  355. package/templates/workspaces/olivia/skills/devops-automation-pack/_meta.json +6 -0
  356. package/templates/workspaces/olivia/skills/devops-automation-pack/deploy.sh +0 -0
  357. package/templates/workspaces/olivia/skills/financial-analysis-agent/SKILL.md +489 -0
  358. package/templates/workspaces/olivia/skills/financial-analysis-agent/_meta.json +6 -0
  359. package/templates/workspaces/olivia/skills/gdpr-compliance-tracker/README.md +72 -0
  360. package/templates/workspaces/olivia/skills/gdpr-compliance-tracker/SKILL.md +226 -0
  361. package/templates/workspaces/olivia/skills/gdpr-compliance-tracker/_meta.json +6 -0
  362. package/templates/workspaces/olivia/skills/gifgrep/SKILL.md +47 -0
  363. package/templates/workspaces/olivia/skills/gifgrep/_meta.json +6 -0
  364. package/templates/workspaces/olivia/skills/github/SKILL.md +47 -0
  365. package/templates/workspaces/olivia/skills/github/_meta.json +6 -0
  366. package/templates/workspaces/olivia/skills/gog/SKILL.md +36 -0
  367. package/templates/workspaces/olivia/skills/gog/_meta.json +6 -0
  368. package/templates/workspaces/olivia/skills/growth-strategy-hub/SKILL.md +135 -0
  369. package/templates/workspaces/olivia/skills/growth-strategy-hub/_meta.json +6 -0
  370. package/templates/workspaces/olivia/skills/growth-strategy-hub/metadata.json +4 -0
  371. package/templates/workspaces/olivia/skills/hetzner-cloud/SKILL.md +130 -0
  372. package/templates/workspaces/olivia/skills/hetzner-cloud/_meta.json +6 -0
  373. package/templates/workspaces/olivia/skills/himalaya/SKILL.md +217 -0
  374. package/templates/workspaces/olivia/skills/himalaya/_meta.json +6 -0
  375. package/templates/workspaces/olivia/skills/hotel-recommendation/SKILL.md +117 -0
  376. package/templates/workspaces/olivia/skills/hotel-recommendation/_meta.json +6 -0
  377. package/templates/workspaces/olivia/skills/hr-policy-generator/SKILL.md +54 -0
  378. package/templates/workspaces/olivia/skills/hr-policy-generator/_meta.json +6 -0
  379. package/templates/workspaces/olivia/skills/human-writing/SKILL.md +41 -0
  380. package/templates/workspaces/olivia/skills/human-writing/_meta.json +6 -0
  381. package/templates/workspaces/olivia/skills/imsg/SKILL.md +25 -0
  382. package/templates/workspaces/olivia/skills/imsg/_meta.json +6 -0
  383. package/templates/workspaces/olivia/skills/in-depth-research/SKILL.md +124 -0
  384. package/templates/workspaces/olivia/skills/in-depth-research/_meta.json +6 -0
  385. package/templates/workspaces/olivia/skills/in-depth-research/methodology.md +75 -0
  386. package/templates/workspaces/olivia/skills/in-depth-research/output-formats.md +168 -0
  387. package/templates/workspaces/olivia/skills/in-depth-research/sources.md +80 -0
  388. package/templates/workspaces/olivia/skills/javascript-skills/README.md +71 -0
  389. package/templates/workspaces/olivia/skills/javascript-skills/SKILL.md +746 -0
  390. package/templates/workspaces/olivia/skills/javascript-skills/_meta.json +6 -0
  391. package/templates/workspaces/olivia/skills/leadership-strategy-playbook/SKILL.md +147 -0
  392. package/templates/workspaces/olivia/skills/leadership-strategy-playbook/_meta.json +6 -0
  393. package/templates/workspaces/olivia/skills/market-research-agent/README.md +29 -0
  394. package/templates/workspaces/olivia/skills/market-research-agent/SKILL.md +52 -0
  395. package/templates/workspaces/olivia/skills/market-research-agent/_meta.json +6 -0
  396. package/templates/workspaces/olivia/skills/marketing-analytics/SKILL.md +74 -0
  397. package/templates/workspaces/olivia/skills/marketing-analytics/_meta.json +6 -0
  398. package/templates/workspaces/olivia/skills/marketing-master-io/SKILL.md +125 -0
  399. package/templates/workspaces/olivia/skills/marketing-master-io/_meta.json +6 -0
  400. package/templates/workspaces/olivia/skills/marketing-strategy-pmm/SKILL.md +398 -0
  401. package/templates/workspaces/olivia/skills/marketing-strategy-pmm/_meta.json +6 -0
  402. package/templates/workspaces/olivia/skills/meta-ads-analytics/SKILL.md +53 -0
  403. package/templates/workspaces/olivia/skills/meta-ads-analytics/_meta.json +6 -0
  404. package/templates/workspaces/olivia/skills/obsidian/SKILL.md +55 -0
  405. package/templates/workspaces/olivia/skills/obsidian/_meta.json +6 -0
  406. package/templates/workspaces/olivia/skills/openclaw-accounting/SKILL.md +125 -0
  407. package/templates/workspaces/olivia/skills/openclaw-accounting/_meta.json +6 -0
  408. package/templates/workspaces/olivia/skills/openclaw-security-toolkit/CHANGELOG.md +35 -0
  409. package/templates/workspaces/olivia/skills/openclaw-security-toolkit/CHANNELLOG.md +73 -0
  410. package/templates/workspaces/olivia/skills/openclaw-security-toolkit/README.md +161 -0
  411. package/templates/workspaces/olivia/skills/openclaw-security-toolkit/SKILL.md +130 -0
  412. package/templates/workspaces/olivia/skills/openclaw-security-toolkit/_meta.json +6 -0
  413. package/templates/workspaces/olivia/skills/openclaw-security-toolkit/config.json +36 -0
  414. package/templates/workspaces/olivia/skills/openclaw-security-toolkit/metadata.json +19 -0
  415. package/templates/workspaces/olivia/skills/openhue/SKILL.md +30 -0
  416. package/templates/workspaces/olivia/skills/openhue/_meta.json +6 -0
  417. package/templates/workspaces/olivia/skills/orgx-operations-agent/SKILL.md +41 -0
  418. package/templates/workspaces/olivia/skills/orgx-operations-agent/_meta.json +6 -0
  419. package/templates/workspaces/olivia/skills/outreach/SKILL.md +84 -0
  420. package/templates/workspaces/olivia/skills/outreach/_meta.json +6 -0
  421. package/templates/workspaces/olivia/skills/outreach/by-type.md +166 -0
  422. package/templates/workspaces/olivia/skills/outreach/templates.md +154 -0
  423. package/templates/workspaces/olivia/skills/outreach/tracking.md +145 -0
  424. package/templates/workspaces/olivia/skills/persona-hr-coordinator/SKILL.md +38 -0
  425. package/templates/workspaces/olivia/skills/persona-hr-coordinator/_meta.json +6 -0
  426. package/templates/workspaces/olivia/skills/personal-productivity/SKILL.md +161 -0
  427. package/templates/workspaces/olivia/skills/personal-productivity/_meta.json +6 -0
  428. package/templates/workspaces/olivia/skills/personal-productivity/index.js +363 -0
  429. package/templates/workspaces/olivia/skills/personal-productivity/package.json +15 -0
  430. package/templates/workspaces/olivia/skills/personal-travel/README.md +34 -0
  431. package/templates/workspaces/olivia/skills/personal-travel/SKILL.md +46 -0
  432. package/templates/workspaces/olivia/skills/personal-travel/_meta.json +6 -0
  433. package/templates/workspaces/olivia/skills/presentation-html-generator-skill/SKILL.md +185 -0
  434. package/templates/workspaces/olivia/skills/presentation-html-generator-skill/_meta.json +6 -0
  435. package/templates/workspaces/olivia/skills/product-manager/SKILL.md +77 -0
  436. package/templates/workspaces/olivia/skills/product-manager/_meta.json +6 -0
  437. package/templates/workspaces/olivia/skills/quant-strategy/SKILL.md +28 -0
  438. package/templates/workspaces/olivia/skills/quant-strategy/_meta.json +6 -0
  439. package/templates/workspaces/olivia/skills/sales-pipeline-tracker/README.md +29 -0
  440. package/templates/workspaces/olivia/skills/sales-pipeline-tracker/SKILL.md +45 -0
  441. package/templates/workspaces/olivia/skills/sales-pipeline-tracker/_meta.json +6 -0
  442. package/templates/workspaces/olivia/skills/security-auditor/SKILL.md +399 -0
  443. package/templates/workspaces/olivia/skills/security-auditor/_meta.json +6 -0
  444. package/templates/workspaces/olivia/skills/security-hardening/SKILL.md +296 -0
  445. package/templates/workspaces/olivia/skills/security-hardening/_meta.json +6 -0
  446. package/templates/workspaces/olivia/skills/security-scanner/SKILL.md +67 -0
  447. package/templates/workspaces/olivia/skills/security-scanner/_meta.json +6 -0
  448. package/templates/workspaces/olivia/skills/seo-optimization/SKILL.md +31 -0
  449. package/templates/workspaces/olivia/skills/seo-optimization/_meta.json +6 -0
  450. package/templates/workspaces/olivia/skills/service-booking/SKILL.md +193 -0
  451. package/templates/workspaces/olivia/skills/service-booking/_meta.json +6 -0
  452. package/templates/workspaces/olivia/skills/sme-hr-automation/SKILL.md +131 -0
  453. package/templates/workspaces/olivia/skills/sme-hr-automation/_meta.json +6 -0
  454. package/templates/workspaces/olivia/skills/social-media-scheduler/README.md +29 -0
  455. package/templates/workspaces/olivia/skills/social-media-scheduler/SKILL.md +49 -0
  456. package/templates/workspaces/olivia/skills/social-media-scheduler/_meta.json +6 -0
  457. package/templates/workspaces/olivia/skills/sonoscli/SKILL.md +26 -0
  458. package/templates/workspaces/olivia/skills/sonoscli/_meta.json +6 -0
  459. package/templates/workspaces/olivia/skills/strategy-advisor/SKILL.md +33 -0
  460. package/templates/workspaces/olivia/skills/strategy-advisor/_meta.json +6 -0
  461. package/templates/workspaces/olivia/skills/summarize/SKILL.md +49 -0
  462. package/templates/workspaces/olivia/skills/summarize/_meta.json +6 -0
  463. package/templates/workspaces/olivia/skills/things-mac/SKILL.md +61 -0
  464. package/templates/workspaces/olivia/skills/things-mac/_meta.json +6 -0
  465. package/templates/workspaces/olivia/skills/travel-itinerary-planner/SKILL.md +121 -0
  466. package/templates/workspaces/olivia/skills/travel-itinerary-planner/_meta.json +6 -0
  467. package/templates/workspaces/olivia/skills/travel-manager/SKILL.md +36 -0
  468. package/templates/workspaces/olivia/skills/travel-manager/_meta.json +6 -0
  469. package/templates/workspaces/olivia/skills/travel-planning/SKILL.md +238 -0
  470. package/templates/workspaces/olivia/skills/travel-planning/_meta.json +6 -0
  471. package/templates/workspaces/olivia/skills/travel-planning/booking-guide.md +91 -0
  472. package/templates/workspaces/olivia/skills/travel-planning/memory-template.md +111 -0
  473. package/templates/workspaces/olivia/skills/travel-planning/multi-city.md +131 -0
  474. package/templates/workspaces/olivia/skills/travel-planning/packing-templates.md +155 -0
  475. package/templates/workspaces/olivia/skills/travel-planning/setup.md +66 -0
  476. package/templates/workspaces/olivia/skills/update-it-all/SKILL.md +143 -0
  477. package/templates/workspaces/olivia/skills/update-it-all/_meta.json +6 -0
  478. package/templates/workspaces/olivia/skills/voice/SKILL.md +62 -0
  479. package/templates/workspaces/olivia/skills/weather/SKILL.md +49 -0
  480. package/templates/workspaces/olivia/skills/weather/_meta.json +6 -0
  481. package/templates/workspaces/olivia/skills/web-researcher/SKILL.md +21 -0
  482. package/templates/workspaces/olivia/skills/web-researcher/_meta.json +6 -0
  483. package/templates/workspaces/olivia/skills/website-seo/SKILL.md +284 -0
  484. package/templates/workspaces/olivia/skills/website-seo/_meta.json +6 -0
  485. package/templates/workspaces/olivia/stripe-welcome-n8n.json +103 -0
  486. package/templates/workspaces/olivia/test2.wav.wav +0 -0
  487. package/templates/workspaces/olivia/test_speech.json +1 -0
  488. package/templates/workspaces/olivia/test_speech.srt +0 -0
  489. package/templates/workspaces/olivia/test_speech.tsv +1 -0
  490. package/templates/workspaces/olivia/test_speech.txt +0 -0
  491. package/templates/workspaces/olivia/test_speech.vtt +2 -0
  492. package/templates/workspaces/owen/AGENTS.md +59 -0
  493. package/templates/workspaces/owen/FEEDBACK.md +12 -0
  494. package/templates/workspaces/owen/HEARTBEAT.md +5 -0
  495. package/templates/workspaces/owen/IDENTITY.md +6 -0
  496. package/templates/workspaces/owen/LEARNINGS.md +46 -0
  497. package/templates/workspaces/owen/MEMORY.md +22 -0
  498. package/templates/workspaces/owen/PLAYBOOK.md +16 -0
  499. package/templates/workspaces/owen/SOUL.md +1 -1
  500. package/templates/workspaces/owen/TOOLS.md +15 -0
  501. package/templates/workspaces/owen/USER.md +17 -0
  502. package/templates/workspaces/parker/AGENTS.md +59 -0
  503. package/templates/workspaces/parker/FEEDBACK.md +11 -0
  504. package/templates/workspaces/parker/HEARTBEAT.md +5 -0
  505. package/templates/workspaces/parker/IDENTITY.md +6 -0
  506. package/templates/workspaces/parker/LEARNINGS.md +17 -0
  507. package/templates/workspaces/parker/MEMORY.md +22 -0
  508. package/templates/workspaces/parker/PLAYBOOK.md +16 -0
  509. package/templates/workspaces/parker/SOUL.md +1 -1
  510. package/templates/workspaces/parker/TOOLS.md +15 -0
  511. package/templates/workspaces/parker/USER.md +13 -0
  512. package/templates/workspaces/quinn/AGENTS.md +52 -0
  513. package/templates/workspaces/quinn/FEEDBACK.md +11 -0
  514. package/templates/workspaces/quinn/HEARTBEAT.md +5 -0
  515. package/templates/workspaces/quinn/IDENTITY.md +6 -0
  516. package/templates/workspaces/quinn/LEARNINGS.md +35 -0
  517. package/templates/workspaces/quinn/MEMORY.md +22 -0
  518. package/templates/workspaces/quinn/PLAYBOOK.md +16 -0
  519. package/templates/workspaces/quinn/SOUL.md +1 -1
  520. package/templates/workspaces/quinn/USER.md +17 -0
  521. package/templates/workspaces/quinn/alice-login-page.png +0 -0
  522. package/templates/workspaces/rowan/AGENTS.md +59 -0
  523. package/templates/workspaces/rowan/FEEDBACK.md +12 -0
  524. package/templates/workspaces/rowan/HEARTBEAT.md +5 -0
  525. package/templates/workspaces/rowan/IDENTITY.md +6 -0
  526. package/templates/workspaces/rowan/LEARNINGS.md +12 -0
  527. package/templates/workspaces/rowan/MEMORY.md +22 -0
  528. package/templates/workspaces/rowan/PLAYBOOK.md +16 -0
  529. package/templates/workspaces/rowan/SOUL.md +1 -1
  530. package/templates/workspaces/rowan/USER.md +17 -0
  531. package/templates/workspaces/selena/AGENTS.md +59 -0
  532. package/templates/workspaces/selena/FEEDBACK.md +12 -0
  533. package/templates/workspaces/selena/HEARTBEAT.md +5 -0
  534. package/templates/workspaces/selena/IDENTITY.md +6 -0
  535. package/templates/workspaces/selena/LEARNINGS.md +24 -0
  536. package/templates/workspaces/selena/MEMORY.md +22 -0
  537. package/templates/workspaces/selena/PLAYBOOK.md +16 -0
  538. package/templates/workspaces/selena/SOUL.md +1 -1
  539. package/templates/workspaces/selena/USER.md +17 -0
  540. package/templates/workspaces/selena/kids-ai-security-compliance-plan.md +791 -0
  541. package/templates/workspaces/selena/kidspark-coppa-compliance-audit.md +866 -0
  542. package/templates/workspaces/sloane/AGENTS.md +59 -0
  543. package/templates/workspaces/sloane/FEEDBACK.md +12 -0
  544. package/templates/workspaces/sloane/HEARTBEAT.md +9 -0
  545. package/templates/workspaces/sloane/IDENTITY.md +6 -0
  546. package/templates/workspaces/sloane/LEARNINGS.md +6 -0
  547. package/templates/workspaces/sloane/MEMORY.md +22 -0
  548. package/templates/workspaces/sloane/PLAYBOOK.md +16 -0
  549. package/templates/workspaces/sloane/SOUL.md +1 -1
  550. package/templates/workspaces/sloane/TOOLS.md +15 -0
  551. package/templates/workspaces/sloane/USER.md +13 -0
  552. package/templates/workspaces/smoketestagent/AGENTS.md +52 -0
  553. package/templates/workspaces/smoketestagent/FEEDBACK.md +3 -0
  554. package/templates/workspaces/smoketestagent/HEARTBEAT.md +14 -0
  555. package/templates/workspaces/smoketestagent/IDENTITY.md +6 -0
  556. package/templates/workspaces/smoketestagent/LEARNINGS.md +3 -0
  557. package/templates/workspaces/smoketestagent/MEMORY.md +24 -0
  558. package/templates/workspaces/smoketestagent/PLAYBOOK.md +7 -0
  559. package/templates/workspaces/smoketestagent/SOUL.md +32 -0
  560. package/templates/workspaces/smoketestagent/TOOLS.md +13 -0
  561. package/templates/workspaces/smoketestagent/USER.md +5 -0
  562. package/templates/workspaces/sophie/AGENTS.md +59 -0
  563. package/templates/workspaces/sophie/FEEDBACK.md +12 -0
  564. package/templates/workspaces/sophie/HEARTBEAT.md +9 -0
  565. package/templates/workspaces/sophie/IDENTITY.md +6 -0
  566. package/templates/workspaces/sophie/LEARNINGS.md +6 -0
  567. package/templates/workspaces/sophie/MEMORY.md +22 -0
  568. package/templates/workspaces/sophie/PLAYBOOK.md +16 -0
  569. package/templates/workspaces/sophie/SOUL.md +1 -1
  570. package/templates/workspaces/sophie/TOOLS.md +15 -0
  571. package/templates/workspaces/sophie/USER.md +17 -0
  572. package/templates/workspaces/tommy/AGENTS.md +59 -0
  573. package/templates/workspaces/tommy/FEEDBACK.md +12 -0
  574. package/templates/workspaces/tommy/HEARTBEAT.md +9 -0
  575. package/templates/workspaces/tommy/IDENTITY.md +6 -0
  576. package/templates/workspaces/tommy/LEARNINGS.md +6 -0
  577. package/templates/workspaces/tommy/MEMORY.md +22 -0
  578. package/templates/workspaces/tommy/PLAYBOOK.md +16 -0
  579. package/templates/workspaces/tommy/SOUL.md +1 -1
  580. package/templates/workspaces/tommy/TOOLS.md +15 -0
  581. package/templates/workspaces/tommy/USER.md +17 -0
  582. package/templates/workspaces/uma/AGENTS.md +59 -0
  583. package/templates/workspaces/uma/FEEDBACK.md +11 -0
  584. package/templates/workspaces/uma/HEARTBEAT.md +5 -0
  585. package/templates/workspaces/uma/IDENTITY.md +6 -0
  586. package/templates/workspaces/uma/LEARNINGS.md +11 -0
  587. package/templates/workspaces/uma/MEMORY.md +22 -0
  588. package/templates/workspaces/uma/PLAYBOOK.md +16 -0
  589. package/templates/workspaces/uma/SOUL.md +1 -1
  590. package/templates/workspaces/uma/TOOLS.md +15 -0
  591. package/templates/workspaces/uma/USER.md +13 -0
package/lib/skills.mjs CHANGED
@@ -9,7 +9,7 @@ import { readManifest, writeManifest } from './manifest.mjs';
9
9
  import { icons, greenBold, green, red, yellow, cyan, dim, bold,
10
10
  printSection, printSeparator, printBox, printStepDone,
11
11
  printStepFail, printStepSkip, separator } from './colors.mjs';
12
- import { confirm, choose, closePrompt } from './prompter.mjs';
12
+ import { confirm, choose, input, closePrompt } from './prompter.mjs';
13
13
 
14
14
  const OPENCLAW_DIR = join(homedir(), '.openclaw');
15
15
  const SKILLS_DIR = join(OPENCLAW_DIR, 'skills');
@@ -63,6 +63,17 @@ export const SKILL_CATALOG = [
63
63
  { id: 'blucli', label: 'BluOS', desc: 'BluOS audio system control' },
64
64
  ],
65
65
  },
66
+ {
67
+ category: 'Hermes Specialists 🤖',
68
+ icon: '🤖',
69
+ skills: [
70
+ // NOTE: Hermes agents are created and managed via the "Manage Hermes agents"
71
+ // option in the skills manager. Dynamically registered agents are shown
72
+ // separately above. This category is for informational purposes only.
73
+ // Users should run: npx @robbiesrobotics/alice-agents --skills
74
+ // and choose "Manage Hermes agents" to create new Hermes agents.
75
+ ],
76
+ },
66
77
  ];
67
78
 
68
79
  // Egress endpoints needed per skill beyond NemoClaw baseline
@@ -76,6 +87,19 @@ const SKILL_POLICY_ENDPOINTS = {
76
87
  // openhue, sonoscli, blucli — no extra endpoints needed or use dynamic approval
77
88
  };
78
89
 
90
+ // Hermes agent registry path (set by hermes-agent.mjs)
91
+ const HERMES_AGENTS_JSON_PATH = join(OPENCLAW_DIR, 'hermes-agents.json');
92
+
93
+ function getHermesAgents() {
94
+ try {
95
+ const raw = readFileSync(HERMES_AGENTS_JSON_PATH, 'utf8');
96
+ const data = JSON.parse(raw);
97
+ return data.hermesAgents || [];
98
+ } catch {
99
+ return [];
100
+ }
101
+ }
102
+
79
103
  function commandExists(cmd) {
80
104
  const probe = process.platform === 'win32' ? 'where' : 'which';
81
105
  try { execSync(`${probe} ${cmd}`, { stdio: 'pipe' }); return true; }
@@ -267,10 +291,21 @@ export async function runSkillsManager() {
267
291
  console.log('');
268
292
  }
269
293
 
294
+ // Show registered Hermes agents
295
+ const hermesAgents = getHermesAgents();
296
+ if (hermesAgents.length > 0) {
297
+ console.log(` ${dim('Hermes agents:')}`);
298
+ hermesAgents.forEach(agent => {
299
+ console.log(` ${icons.ok} ${cyan(agent.agentId)} ${dim('—')} ${agent.domain} ${dim('—')} ${agent.description}`);
300
+ });
301
+ console.log('');
302
+ }
303
+
270
304
  const action = await choose(' What would you like to do?', [
271
- { label: 'Browse & install skills', value: 'install' },
272
- { label: 'Remove a skill', value: 'remove' },
273
- { label: 'Exit', value: 'exit' },
305
+ { label: 'Browse & install skills', value: 'install' },
306
+ { label: 'Manage Hermes agents', value: 'hermes' },
307
+ { label: 'Remove a skill', value: 'remove' },
308
+ { label: 'Exit', value: 'exit' },
274
309
  ]);
275
310
 
276
311
  if (action === 'exit') { closePrompt(); return; }
@@ -281,6 +316,10 @@ export async function runSkillsManager() {
281
316
  await runSkillsWizardStep({ auto: false, nemoclaw, sandboxName });
282
317
  }
283
318
 
319
+ if (action === 'hermes') {
320
+ await runHermesAgentsManager();
321
+ }
322
+
284
323
  if (action === 'remove') {
285
324
  if (installed.length === 0) {
286
325
  console.log(` ${icons.info} ${dim('Nothing to remove.')}`);
@@ -307,3 +346,88 @@ export async function runSkillsManager() {
307
346
 
308
347
  closePrompt();
309
348
  }
349
+
350
+ // ── Hermes Agents Manager ───────────────────────────────────────────────────
351
+
352
+ async function runHermesAgentsManager() {
353
+ // Lazy-import to avoid circular deps at top level
354
+ const { HermesAgentManager } = await import('./hermes-agent.mjs');
355
+ const hermes = new HermesAgentManager();
356
+
357
+ console.log('');
358
+ printSection('Hermes Agents');
359
+ console.log('');
360
+ console.log(` ${dim('Hermes agents are specialists powered by Hermes Agent — running as')}`);
361
+ console.log(` ${dim('subprocesses with persistent memory. Model is inherited from OpenClaw.')}`);
362
+ console.log('');
363
+
364
+ const agents = hermes.listAgents();
365
+
366
+ if (agents.length > 0) {
367
+ console.log(` ${dim('Registered agents:')}`);
368
+ for (const agent of agents) {
369
+ console.log(` ${cyan(agent.agentId)} ${dim('—')} ${agent.domain}`);
370
+ console.log(` ${dim(agent.description)}`);
371
+ console.log(` ${dim('Skills:')} ${agent.preloadSkills?.join(', ') || 'none'} ${dim('Toolsets:')} ${agent.toolsets}`);
372
+ console.log('');
373
+ }
374
+ } else {
375
+ console.log(` ${icons.info} ${dim('No Hermes agents registered yet.')}`);
376
+ console.log('');
377
+ }
378
+
379
+ const action = await choose(' What would you like to do?', [
380
+ { label: 'Create a Hermes agent', value: 'create' },
381
+ { label: 'Remove a Hermes agent', value: 'remove' },
382
+ { label: 'Exit', value: 'exit' },
383
+ ]);
384
+
385
+ if (action === 'exit') return;
386
+
387
+ if (action === 'create') {
388
+ console.log('');
389
+ const agentId = await input(' Agent ID (e.g. researcher, analyst):');
390
+ if (!agentId) { console.log(` ${dim('Cancelled.')}`); return; }
391
+
392
+ const domain = await input(' Domain (e.g. Research, Data Analysis):');
393
+ if (!domain) { console.log(` ${dim('Cancelled.')}`); return; }
394
+
395
+ const description = await input(' Description:');
396
+ if (!description) { console.log(` ${dim('Cancelled.')}`); return; }
397
+
398
+ const skillsRaw = await input(' Preload skills (comma-separated, e.g. web-search,codex) — or press Enter for none:');
399
+ const skills = skillsRaw ? skillsRaw.split(',').map(s => s.trim()).filter(Boolean) : [];
400
+
401
+ console.log('');
402
+ const result = hermes.createAgent(agentId.trim(), domain.trim(), description.trim(), '', skills);
403
+ if (result.status === 'created') {
404
+ printStepDone(`Hermes agent created: ${agentId}`);
405
+ console.log(` ${dim('Skill:')} ${result.skillPath}`);
406
+ console.log(` ${dim('Spawn with:')} hermes chat -s ${agentId} -t terminal,file,web`);
407
+ } else if (result.status === 'exists') {
408
+ printStepSkip(`Hermes agent "${agentId}"`, 'already exists');
409
+ }
410
+ console.log('');
411
+ }
412
+
413
+ if (action === 'remove') {
414
+ if (agents.length === 0) {
415
+ console.log(` ${icons.info} ${dim('Nothing to remove.')}`);
416
+ console.log('');
417
+ return;
418
+ }
419
+ const toRemove = await choose(' Which agent to remove?', [
420
+ ...agents.map(a => ({ label: `${a.agentId} (${a.domain})`, value: a.agentId })),
421
+ { label: 'Cancel', value: null },
422
+ ]);
423
+ if (toRemove) {
424
+ const result = hermes.removeAgent(toRemove);
425
+ if (result.status === 'removed') {
426
+ printStepDone(`Hermes agent "${toRemove}"`, 'removed');
427
+ } else {
428
+ printStepFail(`Hermes agent "${toRemove}"`, 'not found');
429
+ }
430
+ }
431
+ console.log('');
432
+ }
433
+ }
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@robbiesrobotics/alice-agents",
3
- "version": "1.5.8",
4
- "description": "A.L.I.C.E. \u2014 31 AI agents for OpenClaw. One conversation, one team.",
3
+ "version": "1.5.10",
4
+ "description": "A.L.I.C.E. 31 AI agents for OpenClaw. One conversation, one team.",
5
5
  "bin": {
6
6
  "alice-agents": "bin/alice-install.mjs",
7
7
  "alice-cloud": "bin/alice-cloud.cjs"
@@ -39,4 +39,4 @@
39
39
  "publishConfig": {
40
40
  "access": "public"
41
41
  }
42
- }
42
+ }
@@ -0,0 +1,183 @@
1
+ ---
2
+ name: acculynx
3
+ description: 'Analyze AccuLynx CRM CSV exports and build a live visual P&L dashboard on Vercel. Use when: Jesse or Rob drops AccuLynx CSV files in the A.L.I.C.E Sales chat and asks for analysis, a visual dashboard, or a PDF report. Covers Job Profitability Report and Job Expenses Report. Handles data quality flagging, trade/rep/stage breakdowns, and Vercel deployment.'
4
+ metadata:
5
+ {
6
+ "openclaw": { "emoji": "📊", "requires": { "anyBins": ["python3", "node", "npx", "vercel"] } }
7
+ }
8
+ ---
9
+
10
+ # AccuLynx Analysis Skill
11
+
12
+ Builds a full visual P&L + Cash Flow dashboard from AccuLynx CSV exports and deploys it live to Vercel.
13
+
14
+ ## Trigger Phrases
15
+ - "analyze acculynx"
16
+ - "build acculynx dashboard"
17
+ - "upload acculynx csv"
18
+ - "drop acculynx"
19
+ - "refresh the dashboard"
20
+ - "acclynx report"
21
+ - Any message with a `.csv` attachment from AccuLynx in the A.L.I.C.E Sales thread
22
+
23
+ ## Two CSV Types (know the difference)
24
+
25
+ ### 1. Job Profitability Report
26
+ **Filename pattern:** `Job_Profitability_Report*.csv`
27
+ **What it contains:** Per-job revenue, expenses, profit, margin %, stage, trades, salesperson
28
+ **Key columns:** `Contract Amount`, `Orders Total`, `Profit`, `Profit %`, `Total Expenses`, `Primary Salesperson`, `Order Trades`, `Current Milestone`
29
+ **Use for:** Overall P&L, top/bottom jobs, rep performance, trade profitability, margin distributions, data quality
30
+ **NOT for:** Cash flow (that's the Expenses Report)
31
+
32
+ ### 2. Job Expenses Report
33
+ **Filename pattern:** `Job_Expenses_Report*.csv` or `job_expenses_report*.csv`
34
+ **What it contains:** Weekly cash outflows (paid expenses, unbudgeted/additional costs)
35
+ **Key columns:** `Payment Date (by week)`, `Total Paid Expenses`, `Paid Expenses Count`, `Additional Expenses Total`, `Additional Expenses Count`
36
+ **Use for:** Cash flow analysis, monthly expense trends, peak payout weeks
37
+ **NOT for:** Per-job profitability (use the Profitability Report for that)
38
+
39
+ ## Standard Workflow
40
+
41
+ ### Step 1 — Save the CSV(s)
42
+ When a CSV arrives via Telegram media attachment, it's auto-saved to:
43
+ ```
44
+ /Users/aliceclaw/.openclaw/media/inbound/
45
+ ```
46
+ Look for the newest matching file. The filename will contain the report type and date.
47
+
48
+ ### Step 2 — Analyze the Data
49
+ Write and run a Python analysis script. Key things to compute:
50
+
51
+ **From Job Profitability Report:**
52
+ ```python
53
+ import csv
54
+ from collections import defaultdict
55
+
56
+ jobs = []
57
+ with open('/path/to/Job_Profitability_Report*.csv') as f:
58
+ reader = csv.DictReader(f)
59
+ for row in reader:
60
+ try:
61
+ jobs.append({
62
+ 'name': row['Job Name'],
63
+ 'contract': float(row['Contract Amount'] or 0),
64
+ 'profit': float(row['Profit'] or 0),
65
+ 'profit_pct': float(row['Profit %'] or 0),
66
+ 'expenses': float(row['Total Expenses'] or 0),
67
+ 'salesperson': row['Primary Salesperson'],
68
+ 'trades': row['Order Trades'],
69
+ 'milestone': row['Current Milestone'],
70
+ })
71
+ except: pass
72
+ ```
73
+ Compute: total revenue/profit/expenses, overall margin, profitable/lost counts, by-stage summaries, by-rep summaries, by-trade summaries, top 10/bottom 10 jobs, data quality issues (zero contract, missing trades, pending losses).
74
+
75
+ **From Job Expenses Report:**
76
+ ```python
77
+ rows = []
78
+ with open('/path/to/job_expenses_report*.csv') as f:
79
+ reader = csv.DictReader(f)
80
+ for row in reader:
81
+ rows.append({
82
+ 'date': row['Payment Date (by week)'],
83
+ 'paid': float(row['Total Paid Expenses']),
84
+ 'additional': float(row['Additional Expenses Total']),
85
+ 'count': int(row['Paid Expenses Count']),
86
+ })
87
+ ```
88
+ Compute: total paid, avg weekly, monthly aggregation, peak week, trend over time.
89
+
90
+ ### Step 3 — Build the Dashboard
91
+ Use Next.js 14 + Tailwind CSS + Chart.js (via CDN in layout.tsx).
92
+
93
+ **Project location:** `/tmp/acculynx-dashboard/`
94
+ **Vercel deploy token:** `<VERCEL_TOKEN>`
95
+
96
+ **Standard sections:**
97
+ 1. About This Data (explain both CSV types)
98
+ 2. Portfolio KPIs (revenue, profit, margin, win rate)
99
+ 3. Cash Flow Analysis (expenses data — if Job Expenses Report available)
100
+ 4. P&L by Job Stage
101
+ 5. Top 10 Jobs vs Biggest Losses
102
+ 6. Sales Rep Performance (bar charts for profit and margin)
103
+ 7. Trade Type Profitability
104
+ 8. Margin / Profit Distributions
105
+ 9. Data Quality Issues (zero contract, missing trades, pending losses)
106
+
107
+ **Required package.json dependencies:**
108
+ ```json
109
+ {
110
+ "dependencies": {
111
+ "next": "^14.2.0",
112
+ "react": "^18.3.0",
113
+ "react-dom": "^18.3.0"
114
+ },
115
+ "devDependencies": {
116
+ "typescript": "^5.4.0",
117
+ "tailwindcss": "^3.4.0",
118
+ "autoprefixer": "^10.4.0",
119
+ "postcss": "^8.4.0",
120
+ "@types/node": "^20.0.0",
121
+ "@types/react": "^18.3.0",
122
+ "@types/react-dom": "^18.3.0"
123
+ }
124
+ }
125
+ ```
126
+
127
+ **Chart.js CDN (add to layout.tsx head):**
128
+ ```tsx
129
+ <script src="https://cdn.jsdelivr.net/npm/chart.js@4.4.0/dist/chart.umd.min.js" />
130
+ ```
131
+
132
+ **Build command:** `cd /tmp/acculynx-dashboard && npm run build`
133
+ **Deploy command:** `cd /tmp/acculynx-dashboard && npx vercel deploy --prod --yes --token <VERCEL_TOKEN>`
134
+
135
+ ### Step 4 — Deploy and Report
136
+ 1. Run build — fix any TypeScript errors (common: `const` redeclaration, missing `any` type on Chart.js callbacks)
137
+ 2. Deploy to Vercel with the token above
138
+ 3. Reply in the Telegram thread with the live URL
139
+ 4. Summarize key findings in the message
140
+
141
+ ## Common Issues
142
+
143
+ ### TypeScript error: Parameter 'ctx' implicitly has 'any' type
144
+ ```tsx
145
+ // Wrong:
146
+ label: ctx => ...
147
+ // Right:
148
+ label: (ctx: any) => ...
149
+ ```
150
+
151
+ ### BUILD ERROR: 'const' declarations must be initialized
152
+ Spaces in constant names — use underscores:
153
+ ```python
154
+ # Wrong:
155
+ BREAK EVEN = 11
156
+ # Right:
157
+ BREAK_EVEN = 11
158
+ ```
159
+
160
+ ### Chart.js not loading
161
+ Load via CDN script tags in `layout.tsx <head>` — don't use npm install for Chart.js in this setup.
162
+
163
+ ## Key Thresholds (construction industry)
164
+ - **Good margin:** 30%+
165
+ - **Acceptable margin:** 20–30%
166
+ - **Warning:** <20% or any negative
167
+ - **Roofing typically:** 10–20% (thin — flag if <10%)
168
+ - **Service trades:** usually high margin (40%+)
169
+ - **Overall portfolio margin:** good at >15%
170
+
171
+ ## Data Quality Flags to Always Report
172
+ 1. Jobs with `Contract Amount = 0` — profit can't be calculated
173
+ 2. Jobs with `Profit % = 0` but nonzero profit — margin not computable
174
+ 3. Jobs with no `Order Trades` — unclassified
175
+ 4. Approved/Completed/Invoiced jobs with negative profit — embedded losses
176
+ 5. `Additional Expenses` with no corresponding payments — unbudgeted costs
177
+
178
+ ## Reply Format
179
+ Always lead with the dashboard URL, then summarize:
180
+ 1. Key P&L numbers (revenue, profit, margin)
181
+ 2. The most important insight (worst job, worst rep, worst trade, or cash flow flag)
182
+ 3. Data quality summary
183
+ 4. Ask: "Want me to set up weekly auto-refresh?"
@@ -0,0 +1,116 @@
1
+ import csv
2
+ from collections import defaultdict
3
+
4
+ jobs = []
5
+
6
+ with open('/Users/aliceclaw/.openclaw/media/inbound/Job_Profitability_Report-4_08_2026_14_4_7---1ed402bb-54d3-4511-b88f-76cdbc4769ae.csv') as f:
7
+ reader = csv.DictReader(f)
8
+ for row in reader:
9
+ try:
10
+ contract = float(row['Contract Amount'] or 0)
11
+ orders_total = float(row['Orders Total'] or 0)
12
+ profit = float(row['Profit'] or 0)
13
+ profit_pct = float(row['Profit %'] or 0)
14
+ total_expenses = float(row['Total Expenses'] or 0)
15
+ salesperson = row['Primary Salesperson']
16
+ trades = row['Order Trades']
17
+ name = row['Job Name']
18
+ jobs.append({
19
+ 'name': name,
20
+ 'contract': contract,
21
+ 'orders': orders_total,
22
+ 'profit': profit,
23
+ 'profit_pct': profit_pct,
24
+ 'expenses': total_expenses,
25
+ 'salesperson': salesperson,
26
+ 'trades': trades
27
+ })
28
+ except:
29
+ pass
30
+
31
+ # Sort by profit
32
+ by_profit = sorted(jobs, key=lambda x: x['profit'], reverse=True)
33
+ by_margin = sorted(jobs, key=lambda x: x['profit_pct'], reverse=True)
34
+ losers = sorted(jobs, key=lambda x: x['profit'])
35
+
36
+ total_profit = sum(j['profit'] for j in jobs)
37
+ total_revenue = sum(j['contract'] for j in jobs)
38
+ total_expenses = sum(j['expenses'] for j in jobs)
39
+ profitable_count = len([j for j in jobs if j['profit'] > 0])
40
+ lost_money_count = len([j for j in jobs if j['profit'] < 0])
41
+ zero_count = len([j for j in jobs if j['profit'] == 0])
42
+
43
+ print("=" * 72)
44
+ print("JESSE -- FULL P&L ANALYSIS (Job Profitability Report)")
45
+ print("=" * 72)
46
+
47
+ print("\nOVERALL P&L SUMMARY")
48
+ print(f" Total Revenue: ${total_revenue:>14,.2f}")
49
+ print(f" Total Expenses: ${total_expenses:>14,.2f}")
50
+ print(f" TOTAL PROFIT: ${total_profit:>14,.2f}")
51
+ print(f" Overall Margin: {(total_profit/total_revenue*100):>14.1f}%")
52
+ print(f" ")
53
+ print(f" Jobs Profitable: {profitable_count}")
54
+ print(f" Jobs Lost Money: {lost_money_count}")
55
+ print(f" Jobs Break-Even: {zero_count}")
56
+ print(f" Total Jobs: {len(jobs)}")
57
+
58
+ print("\n" + "=" * 72)
59
+ print("TOP 10 JOBS BY PROFIT $")
60
+ print("-" * 72)
61
+ print(f"{'Job':<38} {'Profit':>10} {'Margin':>8} {'Salesperson':<20}")
62
+ print("-" * 72)
63
+ for j in by_profit[:10]:
64
+ print(f"{j['name'][:36]:<38} ${j['profit']:>9,.0f} {j['profit_pct']*100:>6.0f}% {j['salesperson'][:18]:<20}")
65
+
66
+ print("\n" + "=" * 72)
67
+ print("TOP 10 JOBS BY MARGIN %")
68
+ print("-" * 72)
69
+ print(f"{'Job':<38} {'Margin':>8} {'Profit':>10} {'Salesperson':<20}")
70
+ print("-" * 72)
71
+ for j in by_margin[:10]:
72
+ if j['contract'] > 0:
73
+ print(f"{j['name'][:36]:<38} {j['profit_pct']*100:>6.0f}% ${j['profit']:>9,.0f} {j['salesperson'][:18]:<20}")
74
+
75
+ print("\n" + "=" * 72)
76
+ print("⚠️ JOBS THAT LOST MONEY")
77
+ print("-" * 72)
78
+ print(f"{'Job':<38} {'Loss':>10} {'Margin':>8} {'Salesperson':<20}")
79
+ print("-" * 72)
80
+ lost = [j for j in jobs if j['profit'] < 0]
81
+ for j in sorted(lost, key=lambda x: x['profit'])[:10]:
82
+ print(f"{j['name'][:36]:<38} ${j['profit']:>9,.0f} {j['profit_pct']*100:>6.0f}% {j['salesperson'][:18]:<20}")
83
+ if not lost:
84
+ print(" No jobs with negative profit found")
85
+
86
+ print("\n" + "=" * 72)
87
+ print("SALESRep PERFORMANCE (Profit)")
88
+ print("-" * 72)
89
+ reps = defaultdict(lambda: {'profit': 0, 'revenue': 0, 'count': 0})
90
+ for j in jobs:
91
+ reps[j['salesperson']]['profit'] += j['profit']
92
+ reps[j['salesperson']]['revenue'] += j['contract']
93
+ reps[j['salesperson']]['count'] += 1
94
+ print(f"{'Salesperson':<22} {'Jobs':>5} {'Revenue':>12} {'Profit':>12} {'Margin':>8}")
95
+ print("-" * 72)
96
+ for rep, d in sorted(reps.items(), key=lambda x: x[1]['profit'], reverse=True):
97
+ margin = (d['profit']/d['revenue']*100) if d['revenue'] > 0 else 0
98
+ print(f"{rep[:20]:<22} {d['count']:>5} ${d['revenue']:>10,.0f} ${d['profit']:>10,.0f} {margin:>7.0f}%")
99
+
100
+ print("\n" + "=" * 72)
101
+ print("TRADE PERFORMANCE (Profit by Primary Trade)")
102
+ print("-" * 72)
103
+ trades = defaultdict(lambda: {'profit': 0, 'revenue': 0, 'count': 0})
104
+ for j in jobs:
105
+ primary_trade = j['trades'].split(',')[0].strip() if j['trades'] else 'Unknown'
106
+ trades[primary_trade]['profit'] += j['profit']
107
+ trades[primary_trade]['revenue'] += j['contract']
108
+ trades[primary_trade]['count'] += 1
109
+ print(f"{'Trade':<20} {'Jobs':>5} {'Revenue':>12} {'Profit':>12} {'Margin':>8}")
110
+ print("-" * 72)
111
+ for trade, d in sorted(trades.items(), key=lambda x: x[1]['profit'], reverse=True):
112
+ margin = (d['profit']/d['revenue']*100) if d['revenue'] > 0 else 0
113
+ print(f"{trade[:18]:<20} {d['count']:>5} ${d['revenue']:>10,.0f} ${d['profit']:>10,.0f} {margin:>7.0f}%")
114
+
115
+ EOF
116
+ python3 /tmp/acculynx_analysis.py