@robbiesrobotics/alice-agents 1.5.10 → 1.5.13
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 +15 -24
- package/bin/alice-install.mjs +5 -22
- package/lib/agent-registry.mjs +50 -9
- package/lib/alice-runtime-adapter.mjs +50 -0
- package/lib/doctor.mjs +1 -32
- package/lib/hermes-installer.mjs +33 -51
- package/lib/installer.mjs +171 -249
- package/lib/manifest.mjs +14 -9
- package/lib/prompter.mjs +2 -34
- package/lib/runtime-installer.mjs +314 -0
- package/lib/workspace-scaffolder.mjs +193 -17
- package/package.json +14 -9
- package/templates/agents-pro.json +147 -36
- package/templates/agents-starter.json +207 -7
- package/templates/workspaces/_shared/AGENTS-orchestrator.md +19 -9
- package/templates/workspaces/_shared/AGENTS.md +9 -0
- package/templates/workspaces/_shared/HEARTBEAT.md +18 -0
- package/templates/workspaces/_shared/PLAYBOOK.md +6 -6
- package/templates/workspaces/_shared/SOUL-coding.md +20 -0
- package/templates/workspaces/_shared/SOUL-hermes.md +20 -0
- package/templates/workspaces/_shared/SOUL-orchestrator.md +20 -0
- package/templates/workspaces/_shared/SOUL.md +20 -0
- package/templates/workspaces/athena/AGENTS.md +172 -0
- package/templates/workspaces/athena/SOUL.md +59 -0
- package/templates/workspaces/athena/TOOLS.md +63 -0
- package/templates/workspaces/devon/AGENTS.md +50 -34
- package/templates/workspaces/devon/TOOLS.md +20 -37
- package/templates/workspaces/dylan/AGENTS.md +44 -34
- package/templates/workspaces/dylan/TOOLS.md +11 -35
- package/templates/workspaces/felix/AGENTS.md +50 -34
- package/templates/workspaces/felix/TOOLS.md +20 -45
- package/templates/workspaces/morgan/AGENTS.md +48 -39
- package/templates/workspaces/morgan/TOOLS.md +26 -9
- package/templates/workspaces/priya/AGENTS.md +68 -0
- package/templates/workspaces/priya/TOOLS.md +32 -0
- package/templates/workspaces/quinn/AGENTS.md +50 -34
- package/templates/workspaces/quinn/TOOLS.md +30 -48
- package/templates/workspaces/sasha/AGENTS.md +68 -0
- package/templates/workspaces/sasha/TOOLS.md +32 -0
- package/bin/alice-cloud.cjs +0 -385
- package/lib/mission-control.mjs +0 -242
- package/snapshots/.gitkeep +0 -0
- package/templates/mission-control-bridge/index.ts +0 -695
- package/templates/mission-control-bridge/openclaw.plugin.json +0 -8
- package/templates/mission-control-bridge/package.json +0 -11
- package/templates/skills/.gitkeep +0 -0
- package/templates/skills/acculynx/SKILL.md +0 -183
- package/templates/skills/acculynx/references/analysis_template.py +0 -116
- package/templates/skills/acculynx/references/dashboard_page.tsx +0 -641
- package/templates/skills/claude-code/.gitkeep +0 -0
- package/templates/skills/claude-code/SKILL.md +0 -111
- package/templates/skills/coding-agent/SKILL.md +0 -68
- package/templates/skills/crawl4ai/SKILL.md +0 -119
- package/templates/skills/crawl4ai/scripts/crwl +0 -3
- package/templates/workspaces/.gitkeep +0 -0
- package/templates/workspaces/_shared/.gitkeep +0 -0
- package/templates/workspaces/accuscope/AGENTS.md +0 -38
- package/templates/workspaces/accuscope/FEEDBACK.md +0 -27
- package/templates/workspaces/accuscope/HEARTBEAT.md +0 -26
- package/templates/workspaces/accuscope/IDENTITY.md +0 -48
- package/templates/workspaces/accuscope/LEARNINGS.md +0 -46
- package/templates/workspaces/accuscope/MEMORY.md +0 -47
- package/templates/workspaces/accuscope/PLAYBOOK.md +0 -65
- package/templates/workspaces/accuscope/SOUL.md +0 -40
- package/templates/workspaces/accuscope/TOOLS.md +0 -63
- package/templates/workspaces/accuscope/USER.md +0 -39
- package/templates/workspaces/aiden/AGENTS.md +0 -52
- package/templates/workspaces/aiden/FEEDBACK.md +0 -12
- package/templates/workspaces/aiden/HEARTBEAT.md +0 -9
- package/templates/workspaces/aiden/IDENTITY.md +0 -6
- package/templates/workspaces/aiden/LEARNINGS.md +0 -6
- package/templates/workspaces/aiden/MEMORY.md +0 -22
- package/templates/workspaces/aiden/PLAYBOOK.md +0 -16
- package/templates/workspaces/aiden/SOUL.md +0 -39
- package/templates/workspaces/aiden/TOOLS.md +0 -57
- package/templates/workspaces/aiden/USER.md +0 -17
- package/templates/workspaces/alex/AGENTS.md +0 -52
- package/templates/workspaces/alex/FEEDBACK.md +0 -11
- package/templates/workspaces/alex/HEARTBEAT.md +0 -9
- package/templates/workspaces/alex/IDENTITY.md +0 -6
- package/templates/workspaces/alex/LEARNINGS.md +0 -5
- package/templates/workspaces/alex/MEMORY.md +0 -22
- package/templates/workspaces/alex/PLAYBOOK.md +0 -16
- package/templates/workspaces/alex/SOUL.md +0 -40
- package/templates/workspaces/alex/TOOLS.md +0 -56
- package/templates/workspaces/alex/USER.md +0 -13
- package/templates/workspaces/aria/AGENTS.md +0 -18
- package/templates/workspaces/aria/FEEDBACK.md +0 -12
- package/templates/workspaces/aria/HEARTBEAT.md +0 -32
- package/templates/workspaces/aria/IDENTITY.md +0 -12
- package/templates/workspaces/aria/LEARNINGS.md +0 -31
- package/templates/workspaces/aria/MEMORY.md +0 -29
- package/templates/workspaces/aria/PLAYBOOK.md +0 -71
- package/templates/workspaces/aria/SOUL.md +0 -57
- package/templates/workspaces/aria/TOOLS.md +0 -47
- package/templates/workspaces/aria/USER.md +0 -18
- package/templates/workspaces/audrey/AGENTS.md +0 -59
- package/templates/workspaces/audrey/FEEDBACK.md +0 -11
- package/templates/workspaces/audrey/HEARTBEAT.md +0 -9
- package/templates/workspaces/audrey/IDENTITY.md +0 -6
- package/templates/workspaces/audrey/LEARNINGS.md +0 -5
- package/templates/workspaces/audrey/MEMORY.md +0 -22
- package/templates/workspaces/audrey/PLAYBOOK.md +0 -16
- package/templates/workspaces/audrey/SOUL.md +0 -39
- package/templates/workspaces/audrey/TOOLS.md +0 -15
- package/templates/workspaces/audrey/USER.md +0 -13
- package/templates/workspaces/avery/AGENTS.md +0 -52
- package/templates/workspaces/avery/FEEDBACK.md +0 -12
- package/templates/workspaces/avery/HEARTBEAT.md +0 -5
- package/templates/workspaces/avery/IDENTITY.md +0 -6
- package/templates/workspaces/avery/LEARNINGS.md +0 -6
- package/templates/workspaces/avery/MEMORY.md +0 -22
- package/templates/workspaces/avery/PLAYBOOK.md +0 -16
- package/templates/workspaces/avery/SOUL.md +0 -40
- package/templates/workspaces/avery/TOOLS.md +0 -47
- package/templates/workspaces/avery/USER.md +0 -17
- package/templates/workspaces/avery/skills/claude-code/SKILL.md +0 -38
- package/templates/workspaces/avery/skills/claude-code/claude_code +0 -55
- package/templates/workspaces/caleb/AGENTS.md +0 -52
- package/templates/workspaces/caleb/FEEDBACK.md +0 -11
- package/templates/workspaces/caleb/HEARTBEAT.md +0 -9
- package/templates/workspaces/caleb/IDENTITY.md +0 -6
- package/templates/workspaces/caleb/LEARNINGS.md +0 -5
- package/templates/workspaces/caleb/MEMORY.md +0 -22
- package/templates/workspaces/caleb/PLAYBOOK.md +0 -16
- package/templates/workspaces/caleb/SOUL.md +0 -39
- package/templates/workspaces/caleb/TOOLS.md +0 -30
- package/templates/workspaces/caleb/USER.md +0 -13
- package/templates/workspaces/clara/AGENTS.md +0 -59
- package/templates/workspaces/clara/FEEDBACK.md +0 -12
- package/templates/workspaces/clara/HEARTBEAT.md +0 -5
- package/templates/workspaces/clara/IDENTITY.md +0 -6
- package/templates/workspaces/clara/LEARNINGS.md +0 -6
- package/templates/workspaces/clara/MEMORY.md +0 -22
- package/templates/workspaces/clara/PLAYBOOK.md +0 -16
- package/templates/workspaces/clara/SOUL.md +0 -39
- package/templates/workspaces/clara/TOOLS.md +0 -15
- package/templates/workspaces/clara/USER.md +0 -17
- package/templates/workspaces/daphne/AGENTS.md +0 -59
- package/templates/workspaces/daphne/FEEDBACK.md +0 -18
- package/templates/workspaces/daphne/HEARTBEAT.md +0 -5
- package/templates/workspaces/daphne/IDENTITY.md +0 -6
- package/templates/workspaces/daphne/LEARNINGS.md +0 -6
- package/templates/workspaces/daphne/MEMORY.md +0 -22
- package/templates/workspaces/daphne/PLAYBOOK.md +0 -48
- package/templates/workspaces/daphne/SOUL.md +0 -39
- package/templates/workspaces/daphne/TOOLS.md +0 -15
- package/templates/workspaces/daphne/USER.md +0 -17
- package/templates/workspaces/darius/AGENTS.md +0 -52
- package/templates/workspaces/darius/FEEDBACK.md +0 -12
- package/templates/workspaces/darius/HEARTBEAT.md +0 -5
- package/templates/workspaces/darius/IDENTITY.md +0 -6
- package/templates/workspaces/darius/LEARNINGS.md +0 -6
- package/templates/workspaces/darius/MEMORY.md +0 -22
- package/templates/workspaces/darius/PLAYBOOK.md +0 -16
- package/templates/workspaces/darius/SOUL.md +0 -40
- package/templates/workspaces/darius/TOOLS.md +0 -57
- package/templates/workspaces/darius/USER.md +0 -17
- package/templates/workspaces/darius/skills/claude-code/SKILL.md +0 -38
- package/templates/workspaces/darius/skills/claude-code/claude_code +0 -55
- package/templates/workspaces/devon/FEEDBACK.md +0 -11
- package/templates/workspaces/devon/HEARTBEAT.md +0 -5
- package/templates/workspaces/devon/IDENTITY.md +0 -6
- package/templates/workspaces/devon/LEARNINGS.md +0 -11
- package/templates/workspaces/devon/MEMORY.md +0 -22
- package/templates/workspaces/devon/PLAYBOOK.md +0 -16
- package/templates/workspaces/devon/SOUL.md +0 -40
- package/templates/workspaces/devon/USER.md +0 -13
- package/templates/workspaces/devon/check_github.py +0 -12
- package/templates/workspaces/devon/check_mc_env.py +0 -30
- package/templates/workspaces/devon/check_sb.py +0 -34
- package/templates/workspaces/devon/check_vercel.py +0 -12
- package/templates/workspaces/devon/get_mc_files.py +0 -17
- package/templates/workspaces/devon/write_heartbeat.py +0 -67
- package/templates/workspaces/dylan/.env.example +0 -33
- package/templates/workspaces/dylan/00007_verify_licenses_table.sql +0 -100
- package/templates/workspaces/dylan/FEEDBACK.md +0 -28
- package/templates/workspaces/dylan/HEARTBEAT.md +0 -5
- package/templates/workspaces/dylan/IDENTITY.md +0 -6
- package/templates/workspaces/dylan/LEARNINGS.md +0 -70
- package/templates/workspaces/dylan/MEMORY.md +0 -22
- package/templates/workspaces/dylan/PLAYBOOK.md +0 -16
- package/templates/workspaces/dylan/SOUL.md +0 -42
- package/templates/workspaces/dylan/STRIPE_PIPELINE.md +0 -185
- package/templates/workspaces/dylan/USER.md +0 -17
- package/templates/workspaces/dylan/n8n-stripe-welcome-workflow.json +0 -123
- package/templates/workspaces/dylan/skills/claude-code/SKILL.md +0 -38
- package/templates/workspaces/dylan/skills/claude-code/claude_code +0 -55
- package/templates/workspaces/dylan/stripe-webhook-handler.py +0 -433
- package/templates/workspaces/dylan/test_mock_webhook.py +0 -103
- package/templates/workspaces/elena/AGENTS.md +0 -59
- package/templates/workspaces/elena/FEEDBACK.md +0 -11
- package/templates/workspaces/elena/HEARTBEAT.md +0 -9
- package/templates/workspaces/elena/IDENTITY.md +0 -6
- package/templates/workspaces/elena/LEARNINGS.md +0 -5
- package/templates/workspaces/elena/MEMORY.md +0 -22
- package/templates/workspaces/elena/PLAYBOOK.md +0 -16
- package/templates/workspaces/elena/SOUL.md +0 -39
- package/templates/workspaces/elena/TOOLS.md +0 -15
- package/templates/workspaces/elena/USER.md +0 -13
- package/templates/workspaces/eva/AGENTS.md +0 -59
- package/templates/workspaces/eva/FEEDBACK.md +0 -11
- package/templates/workspaces/eva/HEARTBEAT.md +0 -9
- package/templates/workspaces/eva/IDENTITY.md +0 -6
- package/templates/workspaces/eva/LEARNINGS.md +0 -5
- package/templates/workspaces/eva/MEMORY.md +0 -22
- package/templates/workspaces/eva/PLAYBOOK.md +0 -16
- package/templates/workspaces/eva/SOUL.md +0 -39
- package/templates/workspaces/eva/TOOLS.md +0 -15
- package/templates/workspaces/eva/USER.md +0 -13
- package/templates/workspaces/felix/FEEDBACK.md +0 -11
- package/templates/workspaces/felix/HEARTBEAT.md +0 -5
- package/templates/workspaces/felix/IDENTITY.md +0 -6
- package/templates/workspaces/felix/LEARNINGS.md +0 -17
- package/templates/workspaces/felix/MEMORY.md +0 -22
- package/templates/workspaces/felix/PLAYBOOK.md +0 -16
- package/templates/workspaces/felix/SOUL.md +0 -40
- package/templates/workspaces/felix/USER.md +0 -13
- package/templates/workspaces/felix/fidelia-psychology.html +0 -1594
- package/templates/workspaces/felix/task.txt +0 -164
- package/templates/workspaces/hannah/AGENTS.md +0 -59
- package/templates/workspaces/hannah/FEEDBACK.md +0 -12
- package/templates/workspaces/hannah/HEARTBEAT.md +0 -5
- package/templates/workspaces/hannah/IDENTITY.md +0 -6
- package/templates/workspaces/hannah/LEARNINGS.md +0 -6
- package/templates/workspaces/hannah/MEMORY.md +0 -22
- package/templates/workspaces/hannah/PLAYBOOK.md +0 -16
- package/templates/workspaces/hannah/SOUL.md +0 -39
- package/templates/workspaces/hannah/TOOLS.md +0 -15
- package/templates/workspaces/hannah/USER.md +0 -17
- package/templates/workspaces/isaac/AGENTS.md +0 -52
- package/templates/workspaces/isaac/FEEDBACK.md +0 -12
- package/templates/workspaces/isaac/HEARTBEAT.md +0 -9
- package/templates/workspaces/isaac/IDENTITY.md +0 -6
- package/templates/workspaces/isaac/LEARNINGS.md +0 -6
- package/templates/workspaces/isaac/MEMORY.md +0 -22
- package/templates/workspaces/isaac/PLAYBOOK.md +0 -16
- package/templates/workspaces/isaac/SOUL.md +0 -40
- package/templates/workspaces/isaac/TOOLS.md +0 -52
- package/templates/workspaces/isaac/USER.md +0 -17
- package/templates/workspaces/isaac/skills/claude-code/SKILL.md +0 -38
- package/templates/workspaces/isaac/skills/claude-code/claude_code +0 -55
- package/templates/workspaces/logan/AGENTS.md +0 -59
- package/templates/workspaces/logan/FEEDBACK.md +0 -11
- package/templates/workspaces/logan/HEARTBEAT.md +0 -9
- package/templates/workspaces/logan/IDENTITY.md +0 -6
- package/templates/workspaces/logan/LEARNINGS.md +0 -5
- package/templates/workspaces/logan/MEMORY.md +0 -22
- package/templates/workspaces/logan/PLAYBOOK.md +0 -16
- package/templates/workspaces/logan/SOUL.md +0 -39
- package/templates/workspaces/logan/TOOLS.md +0 -15
- package/templates/workspaces/logan/USER.md +0 -13
- package/templates/workspaces/maxxipro/AGENTS.md +0 -29
- package/templates/workspaces/maxxipro/FEEDBACK.md +0 -19
- package/templates/workspaces/maxxipro/HEARTBEAT.md +0 -22
- package/templates/workspaces/maxxipro/IDENTITY.md +0 -35
- package/templates/workspaces/maxxipro/KNOWLEDGE.md +0 -335
- package/templates/workspaces/maxxipro/LEARNINGS.md +0 -47
- package/templates/workspaces/maxxipro/MEMORY.md +0 -60
- package/templates/workspaces/maxxipro/OUTREACH_TEMPLATES.md +0 -143
- package/templates/workspaces/maxxipro/PLAYBOOK.md +0 -81
- package/templates/workspaces/maxxipro/SOUL.md +0 -146
- package/templates/workspaces/maxxipro/TOOLS.md +0 -81
- package/templates/workspaces/maxxipro/USER.md +0 -40
- package/templates/workspaces/morgan/FEEDBACK.md +0 -19
- package/templates/workspaces/morgan/HEARTBEAT.md +0 -5
- package/templates/workspaces/morgan/IDENTITY.md +0 -6
- package/templates/workspaces/morgan/LEARNINGS.md +0 -18
- package/templates/workspaces/morgan/MEMORY.md +0 -22
- package/templates/workspaces/morgan/PLAYBOOK.md +0 -16
- package/templates/workspaces/morgan/SOUL.md +0 -39
- package/templates/workspaces/morgan/USER.md +0 -13
- package/templates/workspaces/nadia/AGENTS.md +0 -59
- package/templates/workspaces/nadia/FEEDBACK.md +0 -12
- package/templates/workspaces/nadia/HEARTBEAT.md +0 -5
- package/templates/workspaces/nadia/IDENTITY.md +0 -6
- package/templates/workspaces/nadia/LEARNINGS.md +0 -6
- package/templates/workspaces/nadia/MEMORY.md +0 -22
- package/templates/workspaces/nadia/PLAYBOOK.md +0 -16
- package/templates/workspaces/nadia/SOUL.md +0 -39
- package/templates/workspaces/nadia/TOOLS.md +0 -15
- package/templates/workspaces/nadia/USER.md +0 -13
- package/templates/workspaces/nate/AGENTS.md +0 -24
- package/templates/workspaces/nate/FEEDBACK.md +0 -12
- package/templates/workspaces/nate/HEARTBEAT.md +0 -33
- package/templates/workspaces/nate/IDENTITY.md +0 -15
- package/templates/workspaces/nate/LEARNINGS.md +0 -33
- package/templates/workspaces/nate/MEMORY.md +0 -39
- package/templates/workspaces/nate/PLAYBOOK.md +0 -160
- package/templates/workspaces/nate/SOUL.md +0 -50
- package/templates/workspaces/nate/TOOLS.md +0 -111
- package/templates/workspaces/nate/USER.md +0 -32
- package/templates/workspaces/olivia/.last-openclaw-version +0 -1
- package/templates/workspaces/olivia/.npmrc.tmp +0 -0
- package/templates/workspaces/olivia/AGENTS.md +0 -77
- package/templates/workspaces/olivia/ALPHA_CODING_BENCHMARK.txt +0 -148
- package/templates/workspaces/olivia/ALPHA_MODEL_GUIDE.md +0 -393
- package/templates/workspaces/olivia/FEEDBACK.md +0 -13
- package/templates/workspaces/olivia/HEADTOHEAD_BENCHMARK.txt +0 -1289
- package/templates/workspaces/olivia/HEARTBEAT.md +0 -267
- package/templates/workspaces/olivia/IDENTITY.md +0 -6
- package/templates/workspaces/olivia/LEARNINGS.md +0 -708
- package/templates/workspaces/olivia/MEMORY.md +0 -202
- package/templates/workspaces/olivia/MISSION_CONTROL_DESIGN_SPEC_v1.md +0 -1143
- package/templates/workspaces/olivia/MVP-COMPLETION-SUMMARY.md +0 -175
- package/templates/workspaces/olivia/NETWORK_IMPLEMENTATION_PLAN.md +0 -1556
- package/templates/workspaces/olivia/NEW_NODES_BENCHMARK.txt +0 -947
- package/templates/workspaces/olivia/PLAYBOOK.md +0 -42
- package/templates/workspaces/olivia/SELF-HEALING-COMPLETE.md +0 -150
- package/templates/workspaces/olivia/SOUL.md +0 -42
- package/templates/workspaces/olivia/TOOLS.md +0 -15
- package/templates/workspaces/olivia/USER.md +0 -17
- package/templates/workspaces/olivia/alicefleet-supabase-credentials.md +0 -50
- package/templates/workspaces/olivia/dzombo-copy-rewrite.md +0 -115
- package/templates/workspaces/olivia/dzombo-implementation-plan.md +0 -1248
- package/templates/workspaces/olivia/fidelia-psychology.html +0 -1594
- package/templates/workspaces/olivia/lead_debug.png +0 -0
- package/templates/workspaces/olivia/minimatch-10.2.4.tgz +0 -0
- package/templates/workspaces/olivia/operation-bllm-research.md +0 -157
- package/templates/workspaces/olivia/qa-audit-mission-control-v2.md +0 -538
- package/templates/workspaces/olivia/roofmaxx_logo.svg +0 -1
- package/templates/workspaces/olivia/roofmaxx_social.jpg +0 -0
- package/templates/workspaces/olivia/skills/1password/SKILL.md +0 -53
- package/templates/workspaces/olivia/skills/1password/_meta.json +0 -6
- package/templates/workspaces/olivia/skills/afrexai-recruiting-engine/README.md +0 -57
- package/templates/workspaces/olivia/skills/afrexai-recruiting-engine/SKILL.md +0 -534
- package/templates/workspaces/olivia/skills/afrexai-recruiting-engine/_meta.json +0 -6
- package/templates/workspaces/olivia/skills/agent-security/SKILL.md +0 -69
- package/templates/workspaces/olivia/skills/agent-security/_meta.json +0 -6
- package/templates/workspaces/olivia/skills/agentic-security-audit/SKILL.md +0 -855
- package/templates/workspaces/olivia/skills/agentic-security-audit/_meta.json +0 -6
- package/templates/workspaces/olivia/skills/ai-automation-consulting/SKILL.md +0 -67
- package/templates/workspaces/olivia/skills/ai-automation-consulting/_meta.json +0 -6
- package/templates/workspaces/olivia/skills/ai-automation-consulting/skill.json +0 -12
- package/templates/workspaces/olivia/skills/ai-presentation-maker/SKILL.md +0 -1104
- package/templates/workspaces/olivia/skills/ai-presentation-maker/_meta.json +0 -6
- package/templates/workspaces/olivia/skills/ai-productivity-audit/SKILL.md +0 -181
- package/templates/workspaces/olivia/skills/ai-productivity-audit/_meta.json +0 -6
- package/templates/workspaces/olivia/skills/ai-researcher/README.md +0 -31
- package/templates/workspaces/olivia/skills/ai-researcher/SKILL.md +0 -59
- package/templates/workspaces/olivia/skills/ai-researcher/_meta.json +0 -6
- package/templates/workspaces/olivia/skills/ai-seo-writer/README.md +0 -19
- package/templates/workspaces/olivia/skills/ai-seo-writer/SKILL.md +0 -100
- package/templates/workspaces/olivia/skills/ai-seo-writer/_meta.json +0 -6
- package/templates/workspaces/olivia/skills/analytics-tracking-2/SKILL.md +0 -309
- package/templates/workspaces/olivia/skills/analytics-tracking-2/_meta.json +0 -6
- package/templates/workspaces/olivia/skills/api-doc-writer/SKILL.md +0 -232
- package/templates/workspaces/olivia/skills/api-doc-writer/_meta.json +0 -6
- package/templates/workspaces/olivia/skills/api-generator/SKILL.md +0 -49
- package/templates/workspaces/olivia/skills/api-generator/_meta.json +0 -6
- package/templates/workspaces/olivia/skills/api-generator/tips.md +0 -10
- package/templates/workspaces/olivia/skills/apple-notes/SKILL.md +0 -50
- package/templates/workspaces/olivia/skills/apple-notes/_meta.json +0 -6
- package/templates/workspaces/olivia/skills/apple-reminders/SKILL.md +0 -67
- package/templates/workspaces/olivia/skills/apple-reminders/_meta.json +0 -6
- package/templates/workspaces/olivia/skills/automation-workflows/SKILL.md +0 -267
- package/templates/workspaces/olivia/skills/automation-workflows/_meta.json +0 -6
- package/templates/workspaces/olivia/skills/autoresearch/SKILL.md +0 -46
- package/templates/workspaces/olivia/skills/autoresearch/aria_write.py +0 -148
- package/templates/workspaces/olivia/skills/autoresearch/autoresearch.py +0 -75
- package/templates/workspaces/olivia/skills/azure-devops/SKILL.md +0 -115
- package/templates/workspaces/olivia/skills/azure-devops/_meta.json +0 -6
- package/templates/workspaces/olivia/skills/blogwatcher/SKILL.md +0 -46
- package/templates/workspaces/olivia/skills/blogwatcher/_meta.json +0 -6
- package/templates/workspaces/olivia/skills/blucli/SKILL.md +0 -27
- package/templates/workspaces/olivia/skills/blucli/_meta.json +0 -6
- package/templates/workspaces/olivia/skills/check-analytics/SKILL.md +0 -92
- package/templates/workspaces/olivia/skills/check-analytics/_meta.json +0 -6
- package/templates/workspaces/olivia/skills/cloud-architect/SKILL.md +0 -89
- package/templates/workspaces/olivia/skills/cloud-architect/_meta.json +0 -6
- package/templates/workspaces/olivia/skills/cloud-infra-automation/SKILL.md +0 -50
- package/templates/workspaces/olivia/skills/cloud-infra-automation/_meta.json +0 -6
- package/templates/workspaces/olivia/skills/cloud-storage/SKILL.md +0 -61
- package/templates/workspaces/olivia/skills/cloud-storage/_meta.json +0 -6
- package/templates/workspaces/olivia/skills/cloud-storage/auth.md +0 -97
- package/templates/workspaces/olivia/skills/cloud-storage/costs.md +0 -88
- package/templates/workspaces/olivia/skills/cloud-storage/providers.md +0 -55
- package/templates/workspaces/olivia/skills/copywriting-pro/SKILL.md +0 -107
- package/templates/workspaces/olivia/skills/copywriting-pro/_meta.json +0 -6
- package/templates/workspaces/olivia/skills/data-analyst-pro/SKILL.md +0 -21
- package/templates/workspaces/olivia/skills/data-analyst-pro/_meta.json +0 -6
- package/templates/workspaces/olivia/skills/database-designer/README.md +0 -388
- package/templates/workspaces/olivia/skills/database-designer/SKILL.md +0 -66
- package/templates/workspaces/olivia/skills/database-designer/_meta.json +0 -6
- package/templates/workspaces/olivia/skills/database-designer/index_optimizer.py +0 -926
- package/templates/workspaces/olivia/skills/database-designer/migration_generator.py +0 -1199
- package/templates/workspaces/olivia/skills/database-designer/schema_analyzer.py +0 -982
- package/templates/workspaces/olivia/skills/deploy-agent/SKILL.md +0 -255
- package/templates/workspaces/olivia/skills/deploy-agent/_meta.json +0 -6
- package/templates/workspaces/olivia/skills/devops-automation-pack/SKILL.md +0 -72
- package/templates/workspaces/olivia/skills/devops-automation-pack/_meta.json +0 -6
- package/templates/workspaces/olivia/skills/devops-automation-pack/deploy.sh +0 -0
- package/templates/workspaces/olivia/skills/financial-analysis-agent/SKILL.md +0 -489
- package/templates/workspaces/olivia/skills/financial-analysis-agent/_meta.json +0 -6
- package/templates/workspaces/olivia/skills/gdpr-compliance-tracker/README.md +0 -72
- package/templates/workspaces/olivia/skills/gdpr-compliance-tracker/SKILL.md +0 -226
- package/templates/workspaces/olivia/skills/gdpr-compliance-tracker/_meta.json +0 -6
- package/templates/workspaces/olivia/skills/gifgrep/SKILL.md +0 -47
- package/templates/workspaces/olivia/skills/gifgrep/_meta.json +0 -6
- package/templates/workspaces/olivia/skills/github/SKILL.md +0 -47
- package/templates/workspaces/olivia/skills/github/_meta.json +0 -6
- package/templates/workspaces/olivia/skills/gog/SKILL.md +0 -36
- package/templates/workspaces/olivia/skills/gog/_meta.json +0 -6
- package/templates/workspaces/olivia/skills/growth-strategy-hub/SKILL.md +0 -135
- package/templates/workspaces/olivia/skills/growth-strategy-hub/_meta.json +0 -6
- package/templates/workspaces/olivia/skills/growth-strategy-hub/metadata.json +0 -4
- package/templates/workspaces/olivia/skills/hetzner-cloud/SKILL.md +0 -130
- package/templates/workspaces/olivia/skills/hetzner-cloud/_meta.json +0 -6
- package/templates/workspaces/olivia/skills/himalaya/SKILL.md +0 -217
- package/templates/workspaces/olivia/skills/himalaya/_meta.json +0 -6
- package/templates/workspaces/olivia/skills/hotel-recommendation/SKILL.md +0 -117
- package/templates/workspaces/olivia/skills/hotel-recommendation/_meta.json +0 -6
- package/templates/workspaces/olivia/skills/hr-policy-generator/SKILL.md +0 -54
- package/templates/workspaces/olivia/skills/hr-policy-generator/_meta.json +0 -6
- package/templates/workspaces/olivia/skills/human-writing/SKILL.md +0 -41
- package/templates/workspaces/olivia/skills/human-writing/_meta.json +0 -6
- package/templates/workspaces/olivia/skills/imsg/SKILL.md +0 -25
- package/templates/workspaces/olivia/skills/imsg/_meta.json +0 -6
- package/templates/workspaces/olivia/skills/in-depth-research/SKILL.md +0 -124
- package/templates/workspaces/olivia/skills/in-depth-research/_meta.json +0 -6
- package/templates/workspaces/olivia/skills/in-depth-research/methodology.md +0 -75
- package/templates/workspaces/olivia/skills/in-depth-research/output-formats.md +0 -168
- package/templates/workspaces/olivia/skills/in-depth-research/sources.md +0 -80
- package/templates/workspaces/olivia/skills/javascript-skills/README.md +0 -71
- package/templates/workspaces/olivia/skills/javascript-skills/SKILL.md +0 -746
- package/templates/workspaces/olivia/skills/javascript-skills/_meta.json +0 -6
- package/templates/workspaces/olivia/skills/leadership-strategy-playbook/SKILL.md +0 -147
- package/templates/workspaces/olivia/skills/leadership-strategy-playbook/_meta.json +0 -6
- package/templates/workspaces/olivia/skills/market-research-agent/README.md +0 -29
- package/templates/workspaces/olivia/skills/market-research-agent/SKILL.md +0 -52
- package/templates/workspaces/olivia/skills/market-research-agent/_meta.json +0 -6
- package/templates/workspaces/olivia/skills/marketing-analytics/SKILL.md +0 -74
- package/templates/workspaces/olivia/skills/marketing-analytics/_meta.json +0 -6
- package/templates/workspaces/olivia/skills/marketing-master-io/SKILL.md +0 -125
- package/templates/workspaces/olivia/skills/marketing-master-io/_meta.json +0 -6
- package/templates/workspaces/olivia/skills/marketing-strategy-pmm/SKILL.md +0 -398
- package/templates/workspaces/olivia/skills/marketing-strategy-pmm/_meta.json +0 -6
- package/templates/workspaces/olivia/skills/meta-ads-analytics/SKILL.md +0 -53
- package/templates/workspaces/olivia/skills/meta-ads-analytics/_meta.json +0 -6
- package/templates/workspaces/olivia/skills/obsidian/SKILL.md +0 -55
- package/templates/workspaces/olivia/skills/obsidian/_meta.json +0 -6
- package/templates/workspaces/olivia/skills/openclaw-accounting/SKILL.md +0 -125
- package/templates/workspaces/olivia/skills/openclaw-accounting/_meta.json +0 -6
- package/templates/workspaces/olivia/skills/openclaw-security-toolkit/CHANGELOG.md +0 -35
- package/templates/workspaces/olivia/skills/openclaw-security-toolkit/CHANNELLOG.md +0 -73
- package/templates/workspaces/olivia/skills/openclaw-security-toolkit/README.md +0 -161
- package/templates/workspaces/olivia/skills/openclaw-security-toolkit/SKILL.md +0 -130
- package/templates/workspaces/olivia/skills/openclaw-security-toolkit/_meta.json +0 -6
- package/templates/workspaces/olivia/skills/openclaw-security-toolkit/config.json +0 -36
- package/templates/workspaces/olivia/skills/openclaw-security-toolkit/metadata.json +0 -19
- package/templates/workspaces/olivia/skills/openhue/SKILL.md +0 -30
- package/templates/workspaces/olivia/skills/openhue/_meta.json +0 -6
- package/templates/workspaces/olivia/skills/orgx-operations-agent/SKILL.md +0 -41
- package/templates/workspaces/olivia/skills/orgx-operations-agent/_meta.json +0 -6
- package/templates/workspaces/olivia/skills/outreach/SKILL.md +0 -84
- package/templates/workspaces/olivia/skills/outreach/_meta.json +0 -6
- package/templates/workspaces/olivia/skills/outreach/by-type.md +0 -166
- package/templates/workspaces/olivia/skills/outreach/templates.md +0 -154
- package/templates/workspaces/olivia/skills/outreach/tracking.md +0 -145
- package/templates/workspaces/olivia/skills/persona-hr-coordinator/SKILL.md +0 -38
- package/templates/workspaces/olivia/skills/persona-hr-coordinator/_meta.json +0 -6
- package/templates/workspaces/olivia/skills/personal-productivity/SKILL.md +0 -161
- package/templates/workspaces/olivia/skills/personal-productivity/_meta.json +0 -6
- package/templates/workspaces/olivia/skills/personal-productivity/index.js +0 -363
- package/templates/workspaces/olivia/skills/personal-productivity/package.json +0 -15
- package/templates/workspaces/olivia/skills/personal-travel/README.md +0 -34
- package/templates/workspaces/olivia/skills/personal-travel/SKILL.md +0 -46
- package/templates/workspaces/olivia/skills/personal-travel/_meta.json +0 -6
- package/templates/workspaces/olivia/skills/presentation-html-generator-skill/SKILL.md +0 -185
- package/templates/workspaces/olivia/skills/presentation-html-generator-skill/_meta.json +0 -6
- package/templates/workspaces/olivia/skills/product-manager/SKILL.md +0 -77
- package/templates/workspaces/olivia/skills/product-manager/_meta.json +0 -6
- package/templates/workspaces/olivia/skills/quant-strategy/SKILL.md +0 -28
- package/templates/workspaces/olivia/skills/quant-strategy/_meta.json +0 -6
- package/templates/workspaces/olivia/skills/sales-pipeline-tracker/README.md +0 -29
- package/templates/workspaces/olivia/skills/sales-pipeline-tracker/SKILL.md +0 -45
- package/templates/workspaces/olivia/skills/sales-pipeline-tracker/_meta.json +0 -6
- package/templates/workspaces/olivia/skills/security-auditor/SKILL.md +0 -399
- package/templates/workspaces/olivia/skills/security-auditor/_meta.json +0 -6
- package/templates/workspaces/olivia/skills/security-hardening/SKILL.md +0 -296
- package/templates/workspaces/olivia/skills/security-hardening/_meta.json +0 -6
- package/templates/workspaces/olivia/skills/security-scanner/SKILL.md +0 -67
- package/templates/workspaces/olivia/skills/security-scanner/_meta.json +0 -6
- package/templates/workspaces/olivia/skills/seo-optimization/SKILL.md +0 -31
- package/templates/workspaces/olivia/skills/seo-optimization/_meta.json +0 -6
- package/templates/workspaces/olivia/skills/service-booking/SKILL.md +0 -193
- package/templates/workspaces/olivia/skills/service-booking/_meta.json +0 -6
- package/templates/workspaces/olivia/skills/sme-hr-automation/SKILL.md +0 -131
- package/templates/workspaces/olivia/skills/sme-hr-automation/_meta.json +0 -6
- package/templates/workspaces/olivia/skills/social-media-scheduler/README.md +0 -29
- package/templates/workspaces/olivia/skills/social-media-scheduler/SKILL.md +0 -49
- package/templates/workspaces/olivia/skills/social-media-scheduler/_meta.json +0 -6
- package/templates/workspaces/olivia/skills/sonoscli/SKILL.md +0 -26
- package/templates/workspaces/olivia/skills/sonoscli/_meta.json +0 -6
- package/templates/workspaces/olivia/skills/strategy-advisor/SKILL.md +0 -33
- package/templates/workspaces/olivia/skills/strategy-advisor/_meta.json +0 -6
- package/templates/workspaces/olivia/skills/summarize/SKILL.md +0 -49
- package/templates/workspaces/olivia/skills/summarize/_meta.json +0 -6
- package/templates/workspaces/olivia/skills/things-mac/SKILL.md +0 -61
- package/templates/workspaces/olivia/skills/things-mac/_meta.json +0 -6
- package/templates/workspaces/olivia/skills/travel-itinerary-planner/SKILL.md +0 -121
- package/templates/workspaces/olivia/skills/travel-itinerary-planner/_meta.json +0 -6
- package/templates/workspaces/olivia/skills/travel-manager/SKILL.md +0 -36
- package/templates/workspaces/olivia/skills/travel-manager/_meta.json +0 -6
- package/templates/workspaces/olivia/skills/travel-planning/SKILL.md +0 -238
- package/templates/workspaces/olivia/skills/travel-planning/_meta.json +0 -6
- package/templates/workspaces/olivia/skills/travel-planning/booking-guide.md +0 -91
- package/templates/workspaces/olivia/skills/travel-planning/memory-template.md +0 -111
- package/templates/workspaces/olivia/skills/travel-planning/multi-city.md +0 -131
- package/templates/workspaces/olivia/skills/travel-planning/packing-templates.md +0 -155
- package/templates/workspaces/olivia/skills/travel-planning/setup.md +0 -66
- package/templates/workspaces/olivia/skills/update-it-all/SKILL.md +0 -143
- package/templates/workspaces/olivia/skills/update-it-all/_meta.json +0 -6
- package/templates/workspaces/olivia/skills/voice/SKILL.md +0 -62
- package/templates/workspaces/olivia/skills/weather/SKILL.md +0 -49
- package/templates/workspaces/olivia/skills/weather/_meta.json +0 -6
- package/templates/workspaces/olivia/skills/web-researcher/SKILL.md +0 -21
- package/templates/workspaces/olivia/skills/web-researcher/_meta.json +0 -6
- package/templates/workspaces/olivia/skills/website-seo/SKILL.md +0 -284
- package/templates/workspaces/olivia/skills/website-seo/_meta.json +0 -6
- package/templates/workspaces/olivia/stripe-welcome-n8n.json +0 -103
- package/templates/workspaces/olivia/test2.wav.wav +0 -0
- package/templates/workspaces/olivia/test_speech.json +0 -1
- package/templates/workspaces/olivia/test_speech.srt +0 -0
- package/templates/workspaces/olivia/test_speech.tsv +0 -1
- package/templates/workspaces/olivia/test_speech.txt +0 -0
- package/templates/workspaces/olivia/test_speech.vtt +0 -2
- package/templates/workspaces/owen/AGENTS.md +0 -59
- package/templates/workspaces/owen/FEEDBACK.md +0 -12
- package/templates/workspaces/owen/HEARTBEAT.md +0 -5
- package/templates/workspaces/owen/IDENTITY.md +0 -6
- package/templates/workspaces/owen/LEARNINGS.md +0 -46
- package/templates/workspaces/owen/MEMORY.md +0 -22
- package/templates/workspaces/owen/PLAYBOOK.md +0 -16
- package/templates/workspaces/owen/SOUL.md +0 -39
- package/templates/workspaces/owen/TOOLS.md +0 -15
- package/templates/workspaces/owen/USER.md +0 -17
- package/templates/workspaces/parker/AGENTS.md +0 -59
- package/templates/workspaces/parker/FEEDBACK.md +0 -11
- package/templates/workspaces/parker/HEARTBEAT.md +0 -5
- package/templates/workspaces/parker/IDENTITY.md +0 -6
- package/templates/workspaces/parker/LEARNINGS.md +0 -17
- package/templates/workspaces/parker/MEMORY.md +0 -22
- package/templates/workspaces/parker/PLAYBOOK.md +0 -16
- package/templates/workspaces/parker/SOUL.md +0 -39
- package/templates/workspaces/parker/TOOLS.md +0 -15
- package/templates/workspaces/parker/USER.md +0 -13
- package/templates/workspaces/quinn/FEEDBACK.md +0 -11
- package/templates/workspaces/quinn/HEARTBEAT.md +0 -5
- package/templates/workspaces/quinn/IDENTITY.md +0 -6
- package/templates/workspaces/quinn/LEARNINGS.md +0 -35
- package/templates/workspaces/quinn/MEMORY.md +0 -22
- package/templates/workspaces/quinn/PLAYBOOK.md +0 -16
- package/templates/workspaces/quinn/SOUL.md +0 -40
- package/templates/workspaces/quinn/USER.md +0 -17
- package/templates/workspaces/quinn/alice-login-page.png +0 -0
- package/templates/workspaces/rowan/AGENTS.md +0 -59
- package/templates/workspaces/rowan/FEEDBACK.md +0 -12
- package/templates/workspaces/rowan/HEARTBEAT.md +0 -5
- package/templates/workspaces/rowan/IDENTITY.md +0 -6
- package/templates/workspaces/rowan/LEARNINGS.md +0 -12
- package/templates/workspaces/rowan/MEMORY.md +0 -22
- package/templates/workspaces/rowan/PLAYBOOK.md +0 -16
- package/templates/workspaces/rowan/SOUL.md +0 -40
- package/templates/workspaces/rowan/TOOLS.md +0 -59
- package/templates/workspaces/rowan/USER.md +0 -17
- package/templates/workspaces/selena/AGENTS.md +0 -59
- package/templates/workspaces/selena/FEEDBACK.md +0 -12
- package/templates/workspaces/selena/HEARTBEAT.md +0 -5
- package/templates/workspaces/selena/IDENTITY.md +0 -6
- package/templates/workspaces/selena/LEARNINGS.md +0 -24
- package/templates/workspaces/selena/MEMORY.md +0 -22
- package/templates/workspaces/selena/PLAYBOOK.md +0 -16
- package/templates/workspaces/selena/SOUL.md +0 -40
- package/templates/workspaces/selena/TOOLS.md +0 -47
- package/templates/workspaces/selena/USER.md +0 -17
- package/templates/workspaces/selena/kids-ai-security-compliance-plan.md +0 -791
- package/templates/workspaces/selena/kidspark-coppa-compliance-audit.md +0 -866
- package/templates/workspaces/sloane/AGENTS.md +0 -59
- package/templates/workspaces/sloane/FEEDBACK.md +0 -12
- package/templates/workspaces/sloane/HEARTBEAT.md +0 -9
- package/templates/workspaces/sloane/IDENTITY.md +0 -6
- package/templates/workspaces/sloane/LEARNINGS.md +0 -6
- package/templates/workspaces/sloane/MEMORY.md +0 -22
- package/templates/workspaces/sloane/PLAYBOOK.md +0 -16
- package/templates/workspaces/sloane/SOUL.md +0 -39
- package/templates/workspaces/sloane/TOOLS.md +0 -15
- package/templates/workspaces/sloane/USER.md +0 -13
- package/templates/workspaces/smoketestagent/AGENTS.md +0 -52
- package/templates/workspaces/smoketestagent/FEEDBACK.md +0 -3
- package/templates/workspaces/smoketestagent/HEARTBEAT.md +0 -14
- package/templates/workspaces/smoketestagent/IDENTITY.md +0 -6
- package/templates/workspaces/smoketestagent/LEARNINGS.md +0 -3
- package/templates/workspaces/smoketestagent/MEMORY.md +0 -24
- package/templates/workspaces/smoketestagent/PLAYBOOK.md +0 -7
- package/templates/workspaces/smoketestagent/SOUL.md +0 -32
- package/templates/workspaces/smoketestagent/TOOLS.md +0 -13
- package/templates/workspaces/smoketestagent/USER.md +0 -5
- package/templates/workspaces/sophie/AGENTS.md +0 -59
- package/templates/workspaces/sophie/FEEDBACK.md +0 -12
- package/templates/workspaces/sophie/HEARTBEAT.md +0 -9
- package/templates/workspaces/sophie/IDENTITY.md +0 -6
- package/templates/workspaces/sophie/LEARNINGS.md +0 -6
- package/templates/workspaces/sophie/MEMORY.md +0 -22
- package/templates/workspaces/sophie/PLAYBOOK.md +0 -16
- package/templates/workspaces/sophie/SOUL.md +0 -39
- package/templates/workspaces/sophie/TOOLS.md +0 -15
- package/templates/workspaces/sophie/USER.md +0 -17
- package/templates/workspaces/tommy/AGENTS.md +0 -59
- package/templates/workspaces/tommy/FEEDBACK.md +0 -12
- package/templates/workspaces/tommy/HEARTBEAT.md +0 -9
- package/templates/workspaces/tommy/IDENTITY.md +0 -6
- package/templates/workspaces/tommy/LEARNINGS.md +0 -6
- package/templates/workspaces/tommy/MEMORY.md +0 -22
- package/templates/workspaces/tommy/PLAYBOOK.md +0 -16
- package/templates/workspaces/tommy/SOUL.md +0 -39
- package/templates/workspaces/tommy/TOOLS.md +0 -15
- package/templates/workspaces/tommy/USER.md +0 -17
- package/templates/workspaces/uma/AGENTS.md +0 -59
- package/templates/workspaces/uma/FEEDBACK.md +0 -11
- package/templates/workspaces/uma/HEARTBEAT.md +0 -5
- package/templates/workspaces/uma/IDENTITY.md +0 -6
- package/templates/workspaces/uma/LEARNINGS.md +0 -11
- package/templates/workspaces/uma/MEMORY.md +0 -22
- package/templates/workspaces/uma/PLAYBOOK.md +0 -16
- package/templates/workspaces/uma/SOUL.md +0 -39
- package/templates/workspaces/uma/TOOLS.md +0 -15
- package/templates/workspaces/uma/USER.md +0 -13
- package/tools/.gitkeep +0 -0
|
@@ -0,0 +1,314 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* runtime-installer.mjs — Auto-install missing runtimes for A.L.I.C.E.
|
|
3
|
+
*
|
|
4
|
+
* Handles detecting, offering to install, and installing:
|
|
5
|
+
* - Hermes Agent (Nous Research)
|
|
6
|
+
* - OpenClaw
|
|
7
|
+
* - NemoClaw (NVIDIA)
|
|
8
|
+
*/
|
|
9
|
+
|
|
10
|
+
import { execSync } from 'node:child_process';
|
|
11
|
+
import { existsSync } from 'node:fs';
|
|
12
|
+
import { homedir } from 'node:os';
|
|
13
|
+
import { join } from 'node:path';
|
|
14
|
+
import { confirm, choose } from './prompter.mjs';
|
|
15
|
+
|
|
16
|
+
// ── Colors / icons (duplicated from installer.mjs to avoid circular imports) ──
|
|
17
|
+
const cyan = (s) => `\x1b[36m${s}\x1b[0m`;
|
|
18
|
+
const green = (s) => `\x1b[32m${s}\x1b[0m`;
|
|
19
|
+
const greenBold = (s) => `\x1b[1m\x1b[32m${s}\x1b[0m`;
|
|
20
|
+
const yellow = (s) => `\x1b[33m${s}\x1b[0m`;
|
|
21
|
+
const red = (s) => `\x1b[31m${s}\x1b[0m`;
|
|
22
|
+
const dim = (s) => `\x1b[2m${s}\x1b[0m`;
|
|
23
|
+
const bold = (s) => `\x1b[1m${s}\x1b[0m`;
|
|
24
|
+
const icons = { ok: '✔', fail: '✗', info: 'ℹ', warn: '⚠' };
|
|
25
|
+
|
|
26
|
+
// ── Runtime definitions ──────────────────────────────────────────────────────
|
|
27
|
+
|
|
28
|
+
const RUNTIMES = {
|
|
29
|
+
hermes: {
|
|
30
|
+
name: 'Hermes Agent',
|
|
31
|
+
maker: 'Nous Research',
|
|
32
|
+
emoji: '🧠',
|
|
33
|
+
tagline: 'Self-improving personal AI agent',
|
|
34
|
+
description: [
|
|
35
|
+
'Lightweight — runs on laptops, VPS, even Android.',
|
|
36
|
+
'Self-improving — creates skills from experience, remembers across sessions.',
|
|
37
|
+
'A.L.I.C.E. becomes a team of Hermes skills.',
|
|
38
|
+
],
|
|
39
|
+
installTime: '~2 minutes',
|
|
40
|
+
platforms: ['Linux', 'macOS', 'WSL2', 'Android/Termux'],
|
|
41
|
+
requiresDocker: false,
|
|
42
|
+
modelCommand: 'hermes model',
|
|
43
|
+
docsUrl: 'https://hermes-agent.nousresearch.com/docs/',
|
|
44
|
+
getInstallCommand() {
|
|
45
|
+
return 'curl -fsSL https://raw.githubusercontent.com/NousResearch/hermes-agent/main/scripts/install.sh | bash';
|
|
46
|
+
},
|
|
47
|
+
isInstalled() {
|
|
48
|
+
const hermesConfig = join(homedir(), '.hermes', 'config.yaml');
|
|
49
|
+
if (!existsSync(hermesConfig)) return false;
|
|
50
|
+
try {
|
|
51
|
+
execSync('hermes version', { stdio: 'pipe' });
|
|
52
|
+
return true;
|
|
53
|
+
} catch {
|
|
54
|
+
return false;
|
|
55
|
+
}
|
|
56
|
+
},
|
|
57
|
+
getPostInstallSteps() {
|
|
58
|
+
return [
|
|
59
|
+
`Reload your shell: ${cyan('source ~/.bashrc')} ${dim('(or ~/.zshrc)')}`,
|
|
60
|
+
`Pick a model: ${cyan('hermes model')}`,
|
|
61
|
+
`Re-run A.L.I.C.E.: ${cyan('npx @robbiesrobotics/alice-agents')}`,
|
|
62
|
+
];
|
|
63
|
+
},
|
|
64
|
+
},
|
|
65
|
+
|
|
66
|
+
openclaw: {
|
|
67
|
+
name: 'OpenClaw',
|
|
68
|
+
maker: 'OpenClaw',
|
|
69
|
+
emoji: '🤖',
|
|
70
|
+
tagline: 'Mature multi-agent orchestration platform',
|
|
71
|
+
description: [
|
|
72
|
+
'Full agent workspaces, subagent spawning, cron, MCP support.',
|
|
73
|
+
'15+ messaging platforms. Mature ecosystem with ClawHub skills.',
|
|
74
|
+
'A.L.I.C.E. becomes an agent workspace tree.',
|
|
75
|
+
],
|
|
76
|
+
installTime: '~3 minutes',
|
|
77
|
+
platforms: ['Linux', 'macOS', 'Windows', 'WSL2'],
|
|
78
|
+
requiresDocker: false,
|
|
79
|
+
modelCommand: 'openclaw configure',
|
|
80
|
+
docsUrl: 'https://docs.openclaw.ai',
|
|
81
|
+
getInstallCommand() {
|
|
82
|
+
return 'npm install -g openclaw';
|
|
83
|
+
},
|
|
84
|
+
isInstalled() {
|
|
85
|
+
try {
|
|
86
|
+
execSync('openclaw --version', { stdio: 'pipe' });
|
|
87
|
+
return true;
|
|
88
|
+
} catch {
|
|
89
|
+
return false;
|
|
90
|
+
}
|
|
91
|
+
},
|
|
92
|
+
getPostInstallSteps() {
|
|
93
|
+
return [
|
|
94
|
+
`Set up your model: ${cyan('openclaw configure')}`,
|
|
95
|
+
`Re-run A.L.I.C.E.: ${cyan('npx @robbiesrobotics/alice-agents')}`,
|
|
96
|
+
];
|
|
97
|
+
},
|
|
98
|
+
},
|
|
99
|
+
|
|
100
|
+
nemoclaw: {
|
|
101
|
+
name: 'NemoClaw',
|
|
102
|
+
maker: 'NVIDIA',
|
|
103
|
+
emoji: '🛡️',
|
|
104
|
+
tagline: 'Enterprise-grade agents with sandboxing',
|
|
105
|
+
description: [
|
|
106
|
+
'Agents run isolated — Landlock + seccomp + network namespace sandboxing.',
|
|
107
|
+
'Built on OpenClaw, hardened by NVIDIA. Best for sensitive data.',
|
|
108
|
+
'A.L.I.C.E. runs inside the OpenShell sandbox.',
|
|
109
|
+
],
|
|
110
|
+
installTime: '~20-30 minutes',
|
|
111
|
+
platforms: ['Linux', 'macOS (Docker)', 'DGX Spark', 'WSL2'],
|
|
112
|
+
requiresDocker: true,
|
|
113
|
+
modelCommand: '(configured during install)',
|
|
114
|
+
docsUrl: 'https://docs.nvidia.com/nemoclaw/latest/',
|
|
115
|
+
getInstallCommand() {
|
|
116
|
+
return 'curl -fsSL https://www.nvidia.com/nemoclaw.sh | bash';
|
|
117
|
+
},
|
|
118
|
+
isInstalled() {
|
|
119
|
+
try {
|
|
120
|
+
execSync('nemoclaw --version', { stdio: 'pipe' });
|
|
121
|
+
return true;
|
|
122
|
+
} catch {
|
|
123
|
+
return false;
|
|
124
|
+
}
|
|
125
|
+
},
|
|
126
|
+
getPostInstallSteps() {
|
|
127
|
+
return [
|
|
128
|
+
`NemoClaw configures your model during onboard.`,
|
|
129
|
+
`Connect: ${cyan('nemoclaw <name> connect')}`,
|
|
130
|
+
`Re-run A.L.I.C.E.: ${cyan('npx @robbiesrobotics/alice-agents --runtime nemoclaw')}`,
|
|
131
|
+
];
|
|
132
|
+
},
|
|
133
|
+
},
|
|
134
|
+
};
|
|
135
|
+
|
|
136
|
+
// ── Public API ───────────────────────────────────────────────────────────────
|
|
137
|
+
|
|
138
|
+
/**
|
|
139
|
+
* Show the runtime selection wizard and install the chosen runtime.
|
|
140
|
+
* Returns the runtime key ('hermes' | 'openclaw' | 'nemoclaw') or null if user skips.
|
|
141
|
+
*/
|
|
142
|
+
export async function promptAndInstallRuntime(forceRuntime = null) {
|
|
143
|
+
// If user specified --runtime X but it's not installed, install that one
|
|
144
|
+
if (forceRuntime && RUNTIMES[forceRuntime]) {
|
|
145
|
+
return await installSpecificRuntime(forceRuntime);
|
|
146
|
+
}
|
|
147
|
+
|
|
148
|
+
// No runtime at all — show the full wizard
|
|
149
|
+
printRuntimeWizard();
|
|
150
|
+
|
|
151
|
+
const choice = await choose(
|
|
152
|
+
' Which runtime do you want to install?',
|
|
153
|
+
['1', '2', '3', 'skip'],
|
|
154
|
+
'1'
|
|
155
|
+
);
|
|
156
|
+
|
|
157
|
+
const map = { '1': 'hermes', '2': 'openclaw', '3': 'nemoclaw' };
|
|
158
|
+
const picked = map[choice];
|
|
159
|
+
|
|
160
|
+
if (!picked) {
|
|
161
|
+
console.log(`\n ${dim('Skipped. Install a runtime manually and re-run this installer.')}\n`);
|
|
162
|
+
return null;
|
|
163
|
+
}
|
|
164
|
+
|
|
165
|
+
return await installSpecificRuntime(picked);
|
|
166
|
+
}
|
|
167
|
+
|
|
168
|
+
/**
|
|
169
|
+
* Install a specific runtime, show progress, verify, and return the key.
|
|
170
|
+
*/
|
|
171
|
+
async function installSpecificRuntime(key) {
|
|
172
|
+
const rt = RUNTIMES[key];
|
|
173
|
+
if (!rt) return null;
|
|
174
|
+
|
|
175
|
+
// Pre-flight checks
|
|
176
|
+
if (rt.requiresDocker) {
|
|
177
|
+
const dockerOk = checkDockerAvailable();
|
|
178
|
+
if (!dockerOk) {
|
|
179
|
+
console.log(`\n ${icons.warn} ${yellow('Docker is required for ' + rt.name + ' but does not appear to be running.')}`);
|
|
180
|
+
console.log(` Start Docker (or Colima on macOS) and try again.\n`);
|
|
181
|
+
console.log(` ${dim('Docs: ' + rt.docsUrl)}\n`);
|
|
182
|
+
return null;
|
|
183
|
+
}
|
|
184
|
+
}
|
|
185
|
+
|
|
186
|
+
if (key === 'nemoclaw') {
|
|
187
|
+
const platform = process.platform;
|
|
188
|
+
if (platform === 'darwin') {
|
|
189
|
+
console.log(`\n ${icons.warn} ${yellow('NemoClaw on macOS requires Docker Desktop or Colima.')}`);
|
|
190
|
+
console.log(` ${dim('Make sure one is running before proceeding.')}`);
|
|
191
|
+
const ok = await confirm(' Continue with NemoClaw install?', false);
|
|
192
|
+
if (!ok) return null;
|
|
193
|
+
}
|
|
194
|
+
}
|
|
195
|
+
|
|
196
|
+
// Confirm
|
|
197
|
+
console.log(`\n ${bold(rt.emoji + ' Installing ' + rt.name + ' (' + rt.installTime + ')')}\n`);
|
|
198
|
+
console.log(` ${dim(rt.getInstallCommand())}\n`);
|
|
199
|
+
|
|
200
|
+
const ok = await confirm(' Proceed?', true);
|
|
201
|
+
if (!ok) return null;
|
|
202
|
+
|
|
203
|
+
// Run install
|
|
204
|
+
console.log('');
|
|
205
|
+
try {
|
|
206
|
+
execSync(rt.getInstallCommand(), { stdio: 'inherit', timeout: 10 * 60 * 1000 }); // 10 min timeout
|
|
207
|
+
} catch (err) {
|
|
208
|
+
console.log(`\n ${icons.fail} ${red('Installation failed.')}`);
|
|
209
|
+
console.log(` Install manually: ${cyan(rt.getInstallCommand())}`);
|
|
210
|
+
console.log(` Docs: ${dim(rt.docsUrl)}\n`);
|
|
211
|
+
return null;
|
|
212
|
+
}
|
|
213
|
+
|
|
214
|
+
// Verify
|
|
215
|
+
console.log('');
|
|
216
|
+
if (rt.isInstalled()) {
|
|
217
|
+
console.log(` ${icons.ok} ${green(rt.name + ' installed successfully!')}`);
|
|
218
|
+
} else {
|
|
219
|
+
console.log(` ${icons.warn} ${yellow('Install completed but ' + rt.name + ' not detected in PATH.')}`);
|
|
220
|
+
console.log(` You may need to reload your shell: ${cyan('source ~/.bashrc')}`);
|
|
221
|
+
}
|
|
222
|
+
|
|
223
|
+
// Post-install steps
|
|
224
|
+
const steps = rt.getPostInstallSteps();
|
|
225
|
+
if (steps.length) {
|
|
226
|
+
console.log(`\n ${bold('Next steps:')}`);
|
|
227
|
+
for (const step of steps) {
|
|
228
|
+
console.log(` ${step}`);
|
|
229
|
+
}
|
|
230
|
+
console.log('');
|
|
231
|
+
}
|
|
232
|
+
|
|
233
|
+
return key;
|
|
234
|
+
}
|
|
235
|
+
|
|
236
|
+
/**
|
|
237
|
+
* Check if Docker is available and running.
|
|
238
|
+
*/
|
|
239
|
+
function checkDockerAvailable() {
|
|
240
|
+
try {
|
|
241
|
+
execSync('docker info', { stdio: 'pipe' });
|
|
242
|
+
return true;
|
|
243
|
+
} catch {
|
|
244
|
+
return false;
|
|
245
|
+
}
|
|
246
|
+
}
|
|
247
|
+
|
|
248
|
+
/**
|
|
249
|
+
* Check if any supported runtime is installed.
|
|
250
|
+
* Returns the runtime key or null.
|
|
251
|
+
*/
|
|
252
|
+
export function detectAnyRuntime() {
|
|
253
|
+
for (const [key, rt] of Object.entries(RUNTIMES)) {
|
|
254
|
+
if (rt.isInstalled()) return key;
|
|
255
|
+
}
|
|
256
|
+
return null;
|
|
257
|
+
}
|
|
258
|
+
|
|
259
|
+
/**
|
|
260
|
+
* Get runtime info object.
|
|
261
|
+
*/
|
|
262
|
+
export function getRuntimeInfo(key) {
|
|
263
|
+
return RUNTIMES[key] || null;
|
|
264
|
+
}
|
|
265
|
+
|
|
266
|
+
/**
|
|
267
|
+
* Print the runtime selection wizard.
|
|
268
|
+
*/
|
|
269
|
+
function printRuntimeWizard() {
|
|
270
|
+
console.log('');
|
|
271
|
+
console.log(' ╭─ Choose Your Runtime ───────────────────────────────────────╮');
|
|
272
|
+
console.log(' │ │');
|
|
273
|
+
console.log(' │ A.L.I.C.E. needs a runtime to manage your agent team. │');
|
|
274
|
+
console.log(' │ │');
|
|
275
|
+
console.log(' │ Three options — they work great together too: │');
|
|
276
|
+
console.log(' │ │');
|
|
277
|
+
console.log(' │ 1. 🧠 Hermes Agent (recommended) │');
|
|
278
|
+
console.log(' │ Self-improving personal AI agent by Nous Research. │');
|
|
279
|
+
console.log(' │ Lightweight, runs anywhere — laptop, VPS, phone. │');
|
|
280
|
+
console.log(' │ A.L.I.C.E. becomes a team of Hermes skills. │');
|
|
281
|
+
console.log(' │ Install: ~2 minutes │');
|
|
282
|
+
console.log(' │ │');
|
|
283
|
+
console.log(' │ 2. 🤖 OpenClaw │');
|
|
284
|
+
console.log(' │ Mature multi-agent orchestration platform. │');
|
|
285
|
+
console.log(' │ Agent workspaces, subagent spawning, cron, MCP. │');
|
|
286
|
+
console.log(' │ A.L.I.C.E. becomes an agent workspace tree. │');
|
|
287
|
+
console.log(' │ Install: ~3 minutes │');
|
|
288
|
+
console.log(' │ │');
|
|
289
|
+
console.log(' │ 3. 🛡️ NemoClaw (NVIDIA) │');
|
|
290
|
+
console.log(' │ Enterprise-grade OpenClaw with OpenShell sandboxing. │');
|
|
291
|
+
console.log(' │ Agents run isolated — Landlock + seccomp + netns. │');
|
|
292
|
+
console.log(' │ Best for teams handling sensitive data. │');
|
|
293
|
+
console.log(' │ Requires Docker · Install: ~20-30 minutes │');
|
|
294
|
+
console.log(' │ │');
|
|
295
|
+
console.log(' │ Not sure? Start with Hermes — it\'s the fastest path. │');
|
|
296
|
+
console.log(' │ You can add OpenClaw or NemoClaw later. │');
|
|
297
|
+
console.log(' │ │');
|
|
298
|
+
console.log(' ╰─────────────────────────────────────────────────────────────╯');
|
|
299
|
+
console.log('');
|
|
300
|
+
}
|
|
301
|
+
|
|
302
|
+
/**
|
|
303
|
+
* Print "runtime not detected" message (used before the wizard).
|
|
304
|
+
*/
|
|
305
|
+
export function printNoRuntimeDetected() {
|
|
306
|
+
console.log('');
|
|
307
|
+
console.log(` ${icons.warn} ${yellow('No supported runtime detected')}`);
|
|
308
|
+
console.log('');
|
|
309
|
+
console.log(' A.L.I.C.E. requires one of:');
|
|
310
|
+
console.log(` ${cyan('1.')} Hermes Agent ${dim('— personal AI agent, self-improving')}`);
|
|
311
|
+
console.log(` ${cyan('2.')} OpenClaw ${dim('— multi-agent orchestration, mature ecosystem')}`);
|
|
312
|
+
console.log(` ${cyan('3.')} NemoClaw ${dim('— enterprise sandboxed agents (NVIDIA)')}`);
|
|
313
|
+
console.log('');
|
|
314
|
+
}
|
|
@@ -3,6 +3,11 @@ import { join, dirname } from 'node:path';
|
|
|
3
3
|
import { homedir } from 'node:os';
|
|
4
4
|
import { fileURLToPath } from 'node:url';
|
|
5
5
|
import { buildCodingAgentSkillContent, resolveCodingAgentPreference } from './coding-agent.mjs';
|
|
6
|
+
import {
|
|
7
|
+
ALICE_RUNTIME_HOME,
|
|
8
|
+
getAliceRuntimeWorkspaceDir,
|
|
9
|
+
writeAliceRuntimeDefinition,
|
|
10
|
+
} from './alice-runtime-adapter.mjs';
|
|
6
11
|
|
|
7
12
|
const __dirname = dirname(fileURLToPath(import.meta.url));
|
|
8
13
|
const TEMPLATES_DIR = join(__dirname, '..', 'templates', 'workspaces');
|
|
@@ -13,7 +18,7 @@ const SKILLS_DIR = join(OPENCLAW_DIR, 'skills');
|
|
|
13
18
|
const PRODUCT_FILES = ['SOUL.md', 'AGENTS.md', 'IDENTITY.md', 'TOOLS.md'];
|
|
14
19
|
|
|
15
20
|
// User files — only created if missing
|
|
16
|
-
const USER_FILES = ['PLAYBOOK.md', 'LEARNINGS.md', 'FEEDBACK.md', 'USER.md', 'MEMORY.md'];
|
|
21
|
+
const USER_FILES = ['PLAYBOOK.md', 'LEARNINGS.md', 'FEEDBACK.md', 'USER.md', 'MEMORY.md', 'HEARTBEAT.md'];
|
|
17
22
|
|
|
18
23
|
function renderTemplate(template, vars) {
|
|
19
24
|
let result = template;
|
|
@@ -31,12 +36,17 @@ function loadTemplate(filename) {
|
|
|
31
36
|
return null;
|
|
32
37
|
}
|
|
33
38
|
|
|
34
|
-
function
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
return readFileSync(agentOverridePath, 'utf8');
|
|
39
|
+
function loadAgentTemplate(agent, filename) {
|
|
40
|
+
const agentPath = join(TEMPLATES_DIR, agent.id, filename);
|
|
41
|
+
if (existsSync(agentPath)) {
|
|
42
|
+
return readFileSync(agentPath, 'utf8');
|
|
39
43
|
}
|
|
44
|
+
return null;
|
|
45
|
+
}
|
|
46
|
+
|
|
47
|
+
function getTemplateVariant(baseName, agent) {
|
|
48
|
+
const agentTemplate = loadAgentTemplate(agent, baseName);
|
|
49
|
+
if (agentTemplate) return agentTemplate;
|
|
40
50
|
|
|
41
51
|
// Use variant-based naming
|
|
42
52
|
if (agent.isOrchestrator) {
|
|
@@ -53,8 +63,170 @@ function getTemplateVariant(baseName, agent) {
|
|
|
53
63
|
return loadTemplate(baseName);
|
|
54
64
|
}
|
|
55
65
|
|
|
56
|
-
|
|
57
|
-
|
|
66
|
+
function getUserFileTemplate(filename, agent) {
|
|
67
|
+
return loadTemplate(filename);
|
|
68
|
+
}
|
|
69
|
+
|
|
70
|
+
function normalizeSoulContent(content, agent) {
|
|
71
|
+
if (agent.isOrchestrator) {
|
|
72
|
+
return content
|
|
73
|
+
.replace(
|
|
74
|
+
/\*\*You are A\.L\.I\.C\.E\., orchestrator of a \d+-agent team\.\*\*/,
|
|
75
|
+
'**You are A.L.I.C.E., orchestrator of the A.L.I.C.E. team.**'
|
|
76
|
+
)
|
|
77
|
+
.replace(
|
|
78
|
+
/\*\*Memory recall before answering\.\*\*[\s\S]*?Match scores in the 0\.5\+ range are usually directly relevant; under 0\.3 is noise\./m,
|
|
79
|
+
`**Memory recall before answering.** When a question touches past decisions, projects, people, or technical details, check the team's stored context first.
|
|
80
|
+
|
|
81
|
+
Start with the most relevant local sources: \`MEMORY.md\`, recent \`LEARNINGS.md\` entries, and files under the owning agent's \`memory/\` directory.
|
|
82
|
+
|
|
83
|
+
If \`mempalace\` is installed on this machine, you may also run \`mempalace search "<query>"\` via the \`exec\` tool for faster recall, using \`--wing <agentId>\` when one agent clearly owns the topic. Treat \`mempalace\` as optional tooling, not a guaranteed dependency of every install.`
|
|
84
|
+
);
|
|
85
|
+
}
|
|
86
|
+
|
|
87
|
+
if (!content.includes('mempalace search "<query>" --wing')) {
|
|
88
|
+
return content;
|
|
89
|
+
}
|
|
90
|
+
|
|
91
|
+
return content.replace(
|
|
92
|
+
/## Memory[\s\S]*?Do NOT journal:/m,
|
|
93
|
+
`## Memory
|
|
94
|
+
|
|
95
|
+
You have a persistent workspace memory. Keep \`MEMORY.md\`, recent \`LEARNINGS.md\` entries, and the \`memory/\` directory useful and current.
|
|
96
|
+
|
|
97
|
+
**Recall before answering.** When a question touches your past work, decisions, or technical history:
|
|
98
|
+
|
|
99
|
+
1. Check your local workspace context first: \`MEMORY.md\`, recent \`LEARNINGS.md\` entries, and relevant files under \`memory/\`.
|
|
100
|
+
2. If \`mempalace\` is installed on this machine, you may also run \`mempalace search "<query>" --wing ${agent.id}\` via \`exec\` for faster recall.
|
|
101
|
+
3. Treat \`mempalace\` as optional tooling, not a guaranteed dependency of every A.L.I.C.E. install.
|
|
102
|
+
|
|
103
|
+
**Write durable learnings.** When you learn something worth remembering across sessions, append it to \`LEARNINGS.md\` or add a dated file under \`memory/\`. If \`mempalace\` is installed later, those notes can be indexed then.
|
|
104
|
+
|
|
105
|
+
Do NOT journal:`
|
|
106
|
+
);
|
|
107
|
+
}
|
|
108
|
+
|
|
109
|
+
function normalizeAgentsContent(content, agent) {
|
|
110
|
+
if (!agent.isOrchestrator) {
|
|
111
|
+
return content;
|
|
112
|
+
}
|
|
113
|
+
|
|
114
|
+
return content
|
|
115
|
+
.replace(
|
|
116
|
+
/You are \*\*A\.L\.I\.C\.E\.\*\*, the \*\*orchestrator\*\* of the A\.L\.I\.C\.E\. team\. You coordinate \d+ specialist agents to deliver results for Rob\./,
|
|
117
|
+
'You are **A.L.I.C.E.**, the **orchestrator** of the A.L.I.C.E. team. You coordinate the specialist team to deliver results for Rob.'
|
|
118
|
+
)
|
|
119
|
+
.replace(
|
|
120
|
+
/2\. \*\*Memory recall\*\* — .*?\n3\./s,
|
|
121
|
+
'2. **Memory recall** — when a request touches past decisions, projects, people, or technical history, check the most relevant local context first: the owning agent\'s `MEMORY.md`, recent `LEARNINGS.md` entries, and files under `memory/`. If `mempalace` is installed on this machine, you may also search it via `exec`, using `--wing <agentId>` when one specialist clearly owns the topic.\n3.'
|
|
122
|
+
);
|
|
123
|
+
}
|
|
124
|
+
|
|
125
|
+
function normalizeCodingToolContent(filename, content) {
|
|
126
|
+
if (!['SOUL.md', 'AGENTS.md', 'TOOLS.md', 'PLAYBOOK.md'].includes(filename)) {
|
|
127
|
+
return content;
|
|
128
|
+
}
|
|
129
|
+
|
|
130
|
+
return content
|
|
131
|
+
.replaceAll('`claude_code`', '`coding-agent`')
|
|
132
|
+
.replaceAll('claude_code "', 'coding-agent "')
|
|
133
|
+
.replaceAll(
|
|
134
|
+
'**For coding tasks, use the `coding-agent` skill** — it runs Claude Code CLI autonomously with full file editing, terminal, and search capabilities',
|
|
135
|
+
'**For coding tasks, use the `coding-agent` skill** — it selects the preferred coding CLI for this machine, preferring Codex for OpenAI defaults and Claude Code for Anthropic defaults'
|
|
136
|
+
)
|
|
137
|
+
.replaceAll(
|
|
138
|
+
'Use `coding-agent` for: writing code, debugging, refactoring, multi-file changes, test creation',
|
|
139
|
+
'Use `coding-agent` for: writing code, debugging, refactoring, multi-file changes, and test creation'
|
|
140
|
+
)
|
|
141
|
+
.replaceAll('## Primary Tool: Claude Code', '## Primary Tool: coding-agent')
|
|
142
|
+
.replaceAll(
|
|
143
|
+
'**For any non-trivial coding task, use the `coding-agent` skill.** It delegates to the Claude Code CLI, which has its own file editing, terminal, and search capabilities. This is your power tool.',
|
|
144
|
+
'**For any non-trivial coding task, use the `coding-agent` skill.** It chooses the preferred coding CLI for this machine, preferring Codex for OpenAI defaults and Claude Code for Anthropic defaults. This is your power tool.'
|
|
145
|
+
)
|
|
146
|
+
.replaceAll(
|
|
147
|
+
'- **Always set workdir** to the project root so Claude Code can navigate the full codebase',
|
|
148
|
+
'- **Always set workdir** to the project root so the coding CLI can navigate the full codebase'
|
|
149
|
+
)
|
|
150
|
+
.replaceAll(
|
|
151
|
+
"- Review Claude Code's output before incorporating into your response",
|
|
152
|
+
"- Review the coding agent's output before incorporating it into your response"
|
|
153
|
+
)
|
|
154
|
+
.replaceAll(
|
|
155
|
+
"- Review Claude Code's output before incorporating it into your response",
|
|
156
|
+
"- Review the coding agent's output before incorporating it into your response"
|
|
157
|
+
)
|
|
158
|
+
.replaceAll(
|
|
159
|
+
'- `read/write/edit` — simple file reads/edits when Claude Code is overkill',
|
|
160
|
+
'- `read/write/edit` — simple file reads/edits when the coding agent is overkill'
|
|
161
|
+
)
|
|
162
|
+
.replaceAll(
|
|
163
|
+
'- **coding-agent** — Full Claude Code CLI for coding tasks',
|
|
164
|
+
'- **coding-agent** — Provider-aware coding CLI skill for coding tasks'
|
|
165
|
+
)
|
|
166
|
+
.replaceAll(
|
|
167
|
+
'- Use `coding-agent` for multi-file changes and complex coding tasks',
|
|
168
|
+
'- Use `coding-agent` for multi-file changes and complex coding tasks'
|
|
169
|
+
)
|
|
170
|
+
.replaceAll(
|
|
171
|
+
'**For multi-file tasks, use Claude Code.** Don\'t hand-edit patches file by file when the coding agent can navigate the full codebase faster and more reliably. Delegate implementation; own the plan and verification.',
|
|
172
|
+
'**For multi-file tasks, use the `coding-agent` skill.** It can pick the best available coding CLI for this machine and navigate the full codebase faster than manual patch-by-patch edits. Delegate implementation; own the plan and verification.'
|
|
173
|
+
)
|
|
174
|
+
.replaceAll(
|
|
175
|
+
'Before spawning Claude Code directly or writing implementation code yourself:',
|
|
176
|
+
'Before spawning the `coding-agent` skill directly or writing implementation code yourself:'
|
|
177
|
+
)
|
|
178
|
+
.replaceAll(
|
|
179
|
+
'3. Only fall back to direct Claude Code if genuinely no specialist covers it',
|
|
180
|
+
'3. Only fall back to direct `coding-agent` use if genuinely no specialist covers it'
|
|
181
|
+
)
|
|
182
|
+
.replaceAll(
|
|
183
|
+
"3. Felix implements using Claude Code with Nadia's spec as the brief",
|
|
184
|
+
"3. Sasha implements using the `coding-agent` skill with Nadia's spec as the brief"
|
|
185
|
+
)
|
|
186
|
+
.replaceAll(
|
|
187
|
+
'**Wrong:** A.L.I.C.E. spawns Claude Code directly for UI without involving Nadia or Felix',
|
|
188
|
+
'**Wrong:** A.L.I.C.E. spawns the `coding-agent` skill directly for UI without involving Nadia or Sasha'
|
|
189
|
+
)
|
|
190
|
+
.replaceAll(
|
|
191
|
+
'**Right:** Nadia → Felix → Claude Code → Quinn → A.L.I.C.E.',
|
|
192
|
+
'**Right:** Nadia → Sasha → coding-agent → Morgan → A.L.I.C.E.'
|
|
193
|
+
)
|
|
194
|
+
.replaceAll(
|
|
195
|
+
'- **Backend/API** → Dylan → Claude Code → Quinn (tests)',
|
|
196
|
+
'- **Backend/API** → Dylan → coding-agent → Morgan (tests)'
|
|
197
|
+
)
|
|
198
|
+
.replaceAll(
|
|
199
|
+
"- Don't spawn Claude Code directly for design work — route through Nadia first",
|
|
200
|
+
"- Don't spawn the `coding-agent` skill directly for design work — route through Nadia first"
|
|
201
|
+
)
|
|
202
|
+
.replaceAll(
|
|
203
|
+
"- Don't iterate on UI without a design spec. Nadia → Felix → Claude Code is the correct chain.",
|
|
204
|
+
"- Don't iterate on UI without a design spec. Nadia → Sasha → coding-agent is the correct chain."
|
|
205
|
+
)
|
|
206
|
+
.replaceAll(
|
|
207
|
+
"3. **Felix** — frontend implementation (spawns Claude Code with Nadia's spec)",
|
|
208
|
+
"3. **Sasha** — frontend implementation (spawns the `coding-agent` skill with Nadia's spec)"
|
|
209
|
+
);
|
|
210
|
+
}
|
|
211
|
+
|
|
212
|
+
function normalizeTemplateContent(filename, content, agent) {
|
|
213
|
+
if (filename === 'SOUL.md') {
|
|
214
|
+
return normalizeCodingToolContent(filename, normalizeSoulContent(content, agent));
|
|
215
|
+
}
|
|
216
|
+
if (filename === 'AGENTS.md') {
|
|
217
|
+
return normalizeCodingToolContent(filename, normalizeAgentsContent(content, agent));
|
|
218
|
+
}
|
|
219
|
+
return normalizeCodingToolContent(filename, content);
|
|
220
|
+
}
|
|
221
|
+
|
|
222
|
+
function resolveWorkspaceDir(agent, runtime) {
|
|
223
|
+
if (runtime === 'alice-runtime') return getAliceRuntimeWorkspaceDir(agent.id);
|
|
224
|
+
return join(OPENCLAW_DIR, `workspace-${agent.id}`);
|
|
225
|
+
}
|
|
226
|
+
|
|
227
|
+
export function scaffoldWorkspace(agent, userInfo, agentCount, options = {}) {
|
|
228
|
+
const runtime = options.runtime || 'openclaw';
|
|
229
|
+
const workspaceDir = resolveWorkspaceDir(agent, runtime);
|
|
58
230
|
|
|
59
231
|
// Create workspace + memory dirs
|
|
60
232
|
mkdirSync(join(workspaceDir, 'memory'), { recursive: true });
|
|
@@ -64,6 +236,7 @@ export function scaffoldWorkspace(agent, userInfo, agentCount) {
|
|
|
64
236
|
userTimezone: userInfo.timezone,
|
|
65
237
|
userNotes: userInfo.notes ? `- **Notes:** ${userInfo.notes}` : '',
|
|
66
238
|
agentName: agent.name,
|
|
239
|
+
agentId: agent.id,
|
|
67
240
|
agentDomain: agent.domain,
|
|
68
241
|
agentEmoji: agent.emoji,
|
|
69
242
|
agentDescription: agent.description,
|
|
@@ -77,7 +250,7 @@ export function scaffoldWorkspace(agent, userInfo, agentCount) {
|
|
|
77
250
|
for (const filename of PRODUCT_FILES) {
|
|
78
251
|
const template = getTemplateVariant(filename, agent);
|
|
79
252
|
if (template) {
|
|
80
|
-
const content = renderTemplate(template, vars);
|
|
253
|
+
const content = normalizeTemplateContent(filename, renderTemplate(template, vars), agent);
|
|
81
254
|
writeFileSync(join(workspaceDir, filename), content, 'utf8');
|
|
82
255
|
written.push(filename);
|
|
83
256
|
}
|
|
@@ -87,9 +260,9 @@ export function scaffoldWorkspace(agent, userInfo, agentCount) {
|
|
|
87
260
|
for (const filename of USER_FILES) {
|
|
88
261
|
const filePath = join(workspaceDir, filename);
|
|
89
262
|
if (!existsSync(filePath)) {
|
|
90
|
-
const template =
|
|
263
|
+
const template = getUserFileTemplate(filename, agent);
|
|
91
264
|
if (template) {
|
|
92
|
-
const content = renderTemplate(template, vars);
|
|
265
|
+
const content = normalizeTemplateContent(filename, renderTemplate(template, vars), agent);
|
|
93
266
|
writeFileSync(filePath, content, 'utf8');
|
|
94
267
|
written.push(filename);
|
|
95
268
|
}
|
|
@@ -98,12 +271,15 @@ export function scaffoldWorkspace(agent, userInfo, agentCount) {
|
|
|
98
271
|
}
|
|
99
272
|
}
|
|
100
273
|
|
|
101
|
-
|
|
274
|
+
const definitionPath = runtime === 'alice-runtime' ? writeAliceRuntimeDefinition(agent) : null;
|
|
275
|
+
|
|
276
|
+
return { workspaceDir, written, skipped, definitionPath };
|
|
102
277
|
}
|
|
103
278
|
|
|
104
|
-
export function scaffoldSkills(preference = null) {
|
|
279
|
+
export function scaffoldSkills(preference = null, options = {}) {
|
|
105
280
|
const codingAgentPreference = preference || resolveCodingAgentPreference();
|
|
106
|
-
const
|
|
281
|
+
const skillsDir = options.runtime === 'alice-runtime' ? join(ALICE_RUNTIME_HOME, 'skills') : SKILLS_DIR;
|
|
282
|
+
const codingAgentSkillDir = join(skillsDir, codingAgentPreference.skillId);
|
|
107
283
|
mkdirSync(codingAgentSkillDir, { recursive: true });
|
|
108
284
|
|
|
109
285
|
const skillDestPath = join(codingAgentSkillDir, 'SKILL.md');
|
|
@@ -111,17 +287,17 @@ export function scaffoldSkills(preference = null) {
|
|
|
111
287
|
return codingAgentPreference;
|
|
112
288
|
}
|
|
113
289
|
|
|
114
|
-
export function scaffoldAll(agents, userInfo, skillPreference = null) {
|
|
290
|
+
export function scaffoldAll(agents, userInfo, skillPreference = null, options = {}) {
|
|
115
291
|
const agentCount = agents.length;
|
|
116
292
|
const results = [];
|
|
117
293
|
|
|
118
294
|
for (const agent of agents) {
|
|
119
|
-
const result = scaffoldWorkspace(agent, userInfo, agentCount);
|
|
295
|
+
const result = scaffoldWorkspace(agent, userInfo, agentCount, options);
|
|
120
296
|
results.push({ agent: agent.id, ...result });
|
|
121
297
|
}
|
|
122
298
|
|
|
123
299
|
// Install skills
|
|
124
|
-
const installedSkill = scaffoldSkills(skillPreference);
|
|
300
|
+
const installedSkill = scaffoldSkills(skillPreference, options);
|
|
125
301
|
|
|
126
302
|
return { workspaces: results, installedSkill };
|
|
127
303
|
}
|
package/package.json
CHANGED
|
@@ -1,10 +1,9 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@robbiesrobotics/alice-agents",
|
|
3
|
-
"version": "1.5.
|
|
4
|
-
"description": "A.L.I.C.E. —
|
|
3
|
+
"version": "1.5.13",
|
|
4
|
+
"description": "A.L.I.C.E. — 36 AI agents for Alice Runtime, OpenClaw, NemoClaw, and Hermes Agent. One conversation, one team.",
|
|
5
5
|
"bin": {
|
|
6
|
-
"alice-agents": "bin/alice-install.mjs"
|
|
7
|
-
"alice-cloud": "bin/alice-cloud.cjs"
|
|
6
|
+
"alice-agents": "bin/alice-install.mjs"
|
|
8
7
|
},
|
|
9
8
|
"type": "module",
|
|
10
9
|
"engines": {
|
|
@@ -21,13 +20,19 @@
|
|
|
21
20
|
"files": [
|
|
22
21
|
"bin/",
|
|
23
22
|
"lib/",
|
|
24
|
-
"tools
|
|
25
|
-
"snapshots
|
|
23
|
+
"tools/*.mjs",
|
|
24
|
+
"snapshots/*.json",
|
|
26
25
|
"templates/agents-starter.json",
|
|
27
26
|
"templates/agents-pro.json",
|
|
28
|
-
"templates/
|
|
29
|
-
"templates/
|
|
30
|
-
"templates/workspaces/",
|
|
27
|
+
"templates/workspaces/_shared/*.md",
|
|
28
|
+
"templates/workspaces/athena/*.md",
|
|
29
|
+
"templates/workspaces/devon/*.md",
|
|
30
|
+
"templates/workspaces/dylan/*.md",
|
|
31
|
+
"templates/workspaces/felix/*.md",
|
|
32
|
+
"templates/workspaces/morgan/*.md",
|
|
33
|
+
"templates/workspaces/priya/*.md",
|
|
34
|
+
"templates/workspaces/quinn/*.md",
|
|
35
|
+
"templates/workspaces/sasha/*.md",
|
|
31
36
|
"README.md"
|
|
32
37
|
],
|
|
33
38
|
"scripts": {
|