@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
package/lib/installer.mjs
CHANGED
|
@@ -7,25 +7,15 @@ import { configExists, mergeConfig, removeAliceAgents, detectAvailableModels } f
|
|
|
7
7
|
import { scaffoldAll } from './workspace-scaffolder.mjs';
|
|
8
8
|
import { readManifest, writeManifest } from './manifest.mjs';
|
|
9
9
|
import {
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
isCloudRegistered,
|
|
15
|
-
configureCloudFromSupabase,
|
|
16
|
-
} from './mission-control.mjs';
|
|
10
|
+
promptAndInstallRuntime,
|
|
11
|
+
printNoRuntimeDetected,
|
|
12
|
+
getRuntimeInfo,
|
|
13
|
+
} from './runtime-installer.mjs';
|
|
17
14
|
import {
|
|
18
15
|
promptInstallMode,
|
|
19
16
|
promptUserInfo,
|
|
20
|
-
promptModelPreset,
|
|
21
|
-
promptCustomModel,
|
|
22
17
|
promptTier,
|
|
23
18
|
promptLicenseKey,
|
|
24
|
-
promptCloudAddon,
|
|
25
|
-
promptCloudSetup,
|
|
26
|
-
promptCloudReauth,
|
|
27
|
-
promptCloudHeartbeat,
|
|
28
|
-
promptCloudToken,
|
|
29
19
|
confirm,
|
|
30
20
|
choose,
|
|
31
21
|
input,
|
|
@@ -40,6 +30,7 @@ import { runSkillsWizardStep } from './skills.mjs';
|
|
|
40
30
|
import { resolveCodingAgentPreference } from './coding-agent.mjs';
|
|
41
31
|
import { loadAgentRegistry } from './agent-registry.mjs';
|
|
42
32
|
import { HermesAgentManager } from './hermes-agent.mjs';
|
|
33
|
+
import { isAliceRuntimeInstalled } from './alice-runtime-adapter.mjs';
|
|
43
34
|
|
|
44
35
|
function commandExists(cmd) {
|
|
45
36
|
const probe = process.platform === 'win32' ? 'where' : 'which';
|
|
@@ -190,29 +181,41 @@ function checkLinuxDockerPermissions() {
|
|
|
190
181
|
}
|
|
191
182
|
}
|
|
192
183
|
|
|
193
|
-
async function detectRuntime() {
|
|
194
|
-
|
|
184
|
+
async function detectRuntime(...preferredRuntimes) {
|
|
185
|
+
const installed = new Set();
|
|
186
|
+
|
|
187
|
+
if (isAliceRuntimeInstalled({ commandExists })) installed.add('alice-runtime');
|
|
188
|
+
|
|
195
189
|
const hermesDir = join(homedir(), '.hermes');
|
|
196
190
|
const hermesConfig = join(hermesDir, 'config.yaml');
|
|
197
191
|
if (existsSync(hermesConfig)) {
|
|
198
192
|
try {
|
|
199
193
|
execSync('hermes version', { stdio: 'pipe' });
|
|
200
|
-
|
|
194
|
+
installed.add('hermes');
|
|
201
195
|
} catch {}
|
|
202
196
|
}
|
|
203
197
|
|
|
204
|
-
// Check for NemoClaw binary
|
|
205
198
|
try {
|
|
206
199
|
execSync('nemoclaw --version', { stdio: 'pipe' });
|
|
207
|
-
|
|
200
|
+
installed.add('nemoclaw');
|
|
201
|
+
} catch {}
|
|
202
|
+
if (existsSync(join(homedir(), '.nemoclaw'))) installed.add('nemoclaw');
|
|
203
|
+
|
|
204
|
+
try {
|
|
205
|
+
execSync('openclaw --version', { stdio: 'pipe' });
|
|
206
|
+
installed.add('openclaw');
|
|
208
207
|
} catch {}
|
|
208
|
+
if (existsSync(join(homedir(), '.openclaw'))) installed.add('openclaw');
|
|
209
209
|
|
|
210
|
-
|
|
211
|
-
|
|
212
|
-
|
|
210
|
+
for (const preferred of preferredRuntimes) {
|
|
211
|
+
if (preferred && installed.has(preferred)) return preferred;
|
|
212
|
+
}
|
|
213
213
|
|
|
214
|
-
|
|
215
|
-
|
|
214
|
+
for (const runtime of ['alice-runtime', 'hermes', 'nemoclaw', 'openclaw']) {
|
|
215
|
+
if (installed.has(runtime)) return runtime;
|
|
216
|
+
}
|
|
217
|
+
|
|
218
|
+
return null;
|
|
216
219
|
}
|
|
217
220
|
|
|
218
221
|
function getOpenClawVersion() {
|
|
@@ -550,6 +553,7 @@ const __dirname = dirname(fileURLToPath(import.meta.url));
|
|
|
550
553
|
function printBanner() {
|
|
551
554
|
const pkg = JSON.parse(readFileSync(new URL('../package.json', import.meta.url)));
|
|
552
555
|
const version = pkg.version || '';
|
|
556
|
+
const agentCount = loadAgentRegistry('pro').length;
|
|
553
557
|
console.log('');
|
|
554
558
|
console.log(` ${dim('╭──────────────────────────────────────────────╮')}`);
|
|
555
559
|
console.log(` ${dim('│')} ${dim('│')}`);
|
|
@@ -557,24 +561,13 @@ function printBanner() {
|
|
|
557
561
|
console.log(` ${dim('│')} ${dim('Adaptive Learning & Intelligent Coordination')} ${dim('│')}`);
|
|
558
562
|
console.log(` ${dim('│')} ${dim('Engine — Multi-Agent Orchestration')} ${dim('│')}`);
|
|
559
563
|
console.log(` ${dim('│')} ${dim('│')}`);
|
|
560
|
-
console.log(` ${dim('│')} ${dim('v' + version)} ${green('●')} ${dim('
|
|
564
|
+
console.log(` ${dim('│')} ${dim('v' + version)} ${green('●')} ${dim(agentCount + ' AI agents, one team')} ${dim('│')}`);
|
|
561
565
|
console.log(` ${dim('│')} ${dim('│')}`);
|
|
562
566
|
console.log(` ${dim('╰──────────────────────────────────────────────╯')}`);
|
|
563
567
|
console.log('');
|
|
564
568
|
}
|
|
565
569
|
|
|
566
570
|
function printSummary(mode, tier, agents, preset, userInfo, detectedModels) {
|
|
567
|
-
return printSummaryWithOptions(mode, tier, agents, preset, userInfo, detectedModels, null);
|
|
568
|
-
}
|
|
569
|
-
|
|
570
|
-
function normalizeTierOption(tier) {
|
|
571
|
-
if (!tier) return null;
|
|
572
|
-
const normalized = String(tier).trim().toLowerCase();
|
|
573
|
-
if (normalized === 'starter' || normalized === 'pro') return normalized;
|
|
574
|
-
throw new Error(`Invalid --tier value "${tier}". Use starter or pro.`);
|
|
575
|
-
}
|
|
576
|
-
|
|
577
|
-
function printSummaryWithOptions(mode, tier, agents, preset, userInfo, detectedModels, missionControl) {
|
|
578
571
|
const modelLabel =
|
|
579
572
|
preset === 'detected'
|
|
580
573
|
? `${detectedModels?.primary || 'your configured model'} ${dim('(detected)')}`
|
|
@@ -589,12 +582,6 @@ function printSummaryWithOptions(mode, tier, agents, preset, userInfo, detectedM
|
|
|
589
582
|
`${dim('Model:')} ${green(modelLabel)}`,
|
|
590
583
|
`${dim('User:')} ${green(userInfo.name)}`,
|
|
591
584
|
`${dim('Timezone:')} ${green(userInfo.timezone)}`,
|
|
592
|
-
`${dim('Cloud:')} ${missionControl?.enabled ? (isCloudAuthenticated() ? green('connected') : yellow('enabled (setup pending)')) : dim('local only')}`,
|
|
593
|
-
...(missionControl?.enabled
|
|
594
|
-
? [
|
|
595
|
-
`${dim('Dashboard:')} ${green(missionControl.dashboardUrl)}`,
|
|
596
|
-
]
|
|
597
|
-
: []),
|
|
598
585
|
'',
|
|
599
586
|
`${dim('Agents:')}`,
|
|
600
587
|
...agents.map(a => ` ${icons.bullet} ${green(a.emoji)} ${bold(a.name.padEnd(10))} ${dim('─')} ${a.domain}`),
|
|
@@ -604,115 +591,11 @@ function printSummaryWithOptions(mode, tier, agents, preset, userInfo, detectedM
|
|
|
604
591
|
console.log('');
|
|
605
592
|
}
|
|
606
593
|
|
|
607
|
-
|
|
608
|
-
|
|
609
|
-
|
|
610
|
-
|
|
611
|
-
|
|
612
|
-
const { execFileSync } = await import('node:child_process');
|
|
613
|
-
const { mkdirSync, readFileSync, writeFileSync, existsSync: fsExists } = await import('node:fs');
|
|
614
|
-
const aliceCloudBin = join(__dirname, '..', 'bin', 'alice-cloud.cjs');
|
|
615
|
-
const defaults = getDefaultMissionControlSettings();
|
|
616
|
-
const cloudConfigPath = join(homedir(), '.openclaw', 'alice-cloud.json');
|
|
617
|
-
|
|
618
|
-
function readCloudJson() {
|
|
619
|
-
try { return JSON.parse(readFileSync(cloudConfigPath, 'utf8')); } catch { return {}; }
|
|
620
|
-
}
|
|
621
|
-
function writeCloudJson(data) {
|
|
622
|
-
mkdirSync(join(homedir(), '.openclaw'), { recursive: true });
|
|
623
|
-
writeFileSync(cloudConfigPath, JSON.stringify(data, null, 2));
|
|
624
|
-
}
|
|
625
|
-
|
|
626
|
-
try {
|
|
627
|
-
// Step 1: Login
|
|
628
|
-
console.log('');
|
|
629
|
-
console.log(` ${icons.pkg} ${bold('Setting up A.L.I.C.E. Cloud...')}`);
|
|
630
|
-
console.log('');
|
|
631
|
-
|
|
632
|
-
if (auto && options.cloudSupabaseToken) {
|
|
633
|
-
// Non-interactive: use provided token
|
|
634
|
-
const cloudData = readCloudJson();
|
|
635
|
-
cloudData.supabaseToken = options.cloudSupabaseToken;
|
|
636
|
-
writeCloudJson(cloudData);
|
|
637
|
-
printStepDone('Cloud token saved');
|
|
638
|
-
} else if (!auto) {
|
|
639
|
-
// Interactive: open the dashboard login page and prompt for token
|
|
640
|
-
console.log(` ${dim('Sign in to A.L.I.C.E. | Control to connect your local gateway.')}`);
|
|
641
|
-
console.log(` ${dim('We\'ll open the login page — after signing in, copy the access token shown.')}`);
|
|
642
|
-
console.log('');
|
|
643
|
-
|
|
644
|
-
try {
|
|
645
|
-
const open = (await import('open')).default;
|
|
646
|
-
await open('https://alice.av3.ai/login?cli=1');
|
|
647
|
-
console.log(` ${green('Browser opened!')} Sign in and copy the access token shown.`);
|
|
648
|
-
} catch {
|
|
649
|
-
console.log(` ${yellow('Could not open browser.')} Visit this URL to sign in:`);
|
|
650
|
-
console.log(` ${cyan('https://alice.av3.ai/login?cli=1')}`);
|
|
651
|
-
}
|
|
652
|
-
console.log('');
|
|
653
|
-
|
|
654
|
-
const token = await promptCloudToken();
|
|
655
|
-
|
|
656
|
-
if (token) {
|
|
657
|
-
const cloudData = readCloudJson();
|
|
658
|
-
cloudData.supabaseToken = token;
|
|
659
|
-
writeCloudJson(cloudData);
|
|
660
|
-
printStepDone('Cloud token saved');
|
|
661
|
-
} else {
|
|
662
|
-
console.log(` ${dim('Skipped — you can authenticate later with:')} ${cyan('alice-cloud login')}`);
|
|
663
|
-
}
|
|
664
|
-
}
|
|
665
|
-
|
|
666
|
-
// Step 2: Register gateway (use child process for this — no stdin needed)
|
|
667
|
-
if (isCloudAuthenticated()) {
|
|
668
|
-
console.log('');
|
|
669
|
-
console.log(` ${icons.pkg} ${bold('Registering gateway with A.L.I.C.E. Cloud...')}`);
|
|
670
|
-
try {
|
|
671
|
-
execFileSync(process.execPath, [aliceCloudBin, 'register'], {
|
|
672
|
-
stdio: ['ignore', 'inherit', 'inherit'],
|
|
673
|
-
timeout: 15000,
|
|
674
|
-
});
|
|
675
|
-
printStepDone('Gateway registered with A.L.I.C.E. Cloud');
|
|
676
|
-
} catch {
|
|
677
|
-
console.log(` ${yellow('Gateway registration failed — you can retry later with:')} ${cyan('alice-cloud register')}`);
|
|
678
|
-
}
|
|
679
|
-
|
|
680
|
-
// Step 3: Ask about heartbeat daemon
|
|
681
|
-
const startHeartbeat = auto ? false : await promptCloudHeartbeat();
|
|
682
|
-
if (startHeartbeat) {
|
|
683
|
-
console.log(` ${dim('Starting heartbeat daemon...')}`);
|
|
684
|
-
try {
|
|
685
|
-
execFileSync(process.execPath, [aliceCloudBin, 'watch', '--daemon'], {
|
|
686
|
-
stdio: ['ignore', 'inherit', 'inherit'],
|
|
687
|
-
timeout: 10000,
|
|
688
|
-
});
|
|
689
|
-
printStepDone('Heartbeat daemon started');
|
|
690
|
-
} catch {
|
|
691
|
-
console.log(` ${dim('Could not start daemon — run:')} ${cyan('alice-cloud watch --daemon')}`);
|
|
692
|
-
}
|
|
693
|
-
}
|
|
694
|
-
} else {
|
|
695
|
-
printStepSkip('A.L.I.C.E. | Control', 'no token provided — run `alice-cloud login` later');
|
|
696
|
-
}
|
|
697
|
-
} catch (err) {
|
|
698
|
-
console.log(` ${icons.warn} ${yellow('Cloud setup encountered an issue: ' + (err.message || 'unknown error'))}`);
|
|
699
|
-
console.log(` ${dim('You can complete setup later with:')} ${cyan('alice-cloud login && alice-cloud register')}`);
|
|
700
|
-
}
|
|
701
|
-
|
|
702
|
-
// Build missionControl object from whatever state we achieved
|
|
703
|
-
const cloudStatus = getCloudStatus();
|
|
704
|
-
return {
|
|
705
|
-
enabled: true,
|
|
706
|
-
provider: 'cloud',
|
|
707
|
-
dashboardUrl: existingMissionControl?.dashboardUrl || defaults.dashboardUrl,
|
|
708
|
-
ingestUrl: existingMissionControl?.ingestUrl || `${defaults.dashboardUrl}/api/v1/ingest`,
|
|
709
|
-
sourceNode: existingMissionControl?.sourceNode || defaults.sourceNode,
|
|
710
|
-
teamId: String(options.cloudTeamId || existingMissionControl?.teamId || '').trim(),
|
|
711
|
-
teamSlug: String(options.cloudTeamSlug || existingMissionControl?.teamSlug || '').trim(),
|
|
712
|
-
teamName: String(options.cloudTeamName || existingMissionControl?.teamName || '').trim(),
|
|
713
|
-
teamPlan: String(options.cloudTeamPlan || existingMissionControl?.teamPlan || '').trim(),
|
|
714
|
-
...(cloudStatus.authenticated ? { hasIngestToken: true } : {}),
|
|
715
|
-
};
|
|
594
|
+
function normalizeTierOption(tier) {
|
|
595
|
+
if (!tier) return null;
|
|
596
|
+
const normalized = String(tier).trim().toLowerCase();
|
|
597
|
+
if (normalized === 'starter' || normalized === 'pro') return normalized;
|
|
598
|
+
throw new Error(`Invalid --tier value "${tier}". Use starter or pro.`);
|
|
716
599
|
}
|
|
717
600
|
|
|
718
601
|
export async function runInstall(options = {}) {
|
|
@@ -741,7 +624,37 @@ export async function runInstall(options = {}) {
|
|
|
741
624
|
checkLinuxDockerPermissions();
|
|
742
625
|
|
|
743
626
|
// 1. Detect runtime — Hermes, NemoClaw, OpenClaw, or none
|
|
744
|
-
|
|
627
|
+
let runtime = options.runtimeOverride || await detectRuntime(manifest?.runtime);
|
|
628
|
+
|
|
629
|
+
// 1b. No runtime detected — offer to install one
|
|
630
|
+
if (!runtime) {
|
|
631
|
+
printNoRuntimeDetected();
|
|
632
|
+
const installed = await promptAndInstallRuntime();
|
|
633
|
+
if (!installed) {
|
|
634
|
+
// User skipped or install failed
|
|
635
|
+
console.log(` ${dim('Install a runtime manually, then re-run:')} ${cyan('npx @robbiesrobotics/alice-agents')}`);
|
|
636
|
+
console.log('');
|
|
637
|
+
process.exit(1);
|
|
638
|
+
}
|
|
639
|
+
runtime = installed;
|
|
640
|
+
// Re-check model after install
|
|
641
|
+
}
|
|
642
|
+
|
|
643
|
+
// 1c. User specified --runtime X but it's not installed
|
|
644
|
+
if (options.runtimeOverride && runtime !== options.runtimeOverride) {
|
|
645
|
+
const rtInfo = getRuntimeInfo(options.runtimeOverride);
|
|
646
|
+
if (rtInfo) {
|
|
647
|
+
console.log(` ${icons.info} ${dim(`You specified --runtime ${options.runtimeOverride} but ${rtInfo.name} is not installed.`)}`);
|
|
648
|
+
console.log('');
|
|
649
|
+
const installed = await promptAndInstallRuntime(options.runtimeOverride);
|
|
650
|
+
if (!installed) {
|
|
651
|
+
console.log(` ${dim('Install manually, then re-run:')} ${cyan('npx @robbiesrobotics/alice-agents --runtime ' + options.runtimeOverride)}`);
|
|
652
|
+
console.log('');
|
|
653
|
+
process.exit(1);
|
|
654
|
+
}
|
|
655
|
+
runtime = installed;
|
|
656
|
+
}
|
|
657
|
+
}
|
|
745
658
|
|
|
746
659
|
// ── HERMES-ONLY PATH ──────────────────────────────────────────────────────
|
|
747
660
|
if (runtime === 'hermes') {
|
|
@@ -756,6 +669,7 @@ export async function runInstall(options = {}) {
|
|
|
756
669
|
if (existingStatus.installed && manifest && !options.force) {
|
|
757
670
|
console.log(` ${icons.info} ${dim('A.L.I.C.E. already installed on Hermes')}`);
|
|
758
671
|
console.log(` ${dim('Run with --force to reinstall.')}\n`);
|
|
672
|
+
return;
|
|
759
673
|
}
|
|
760
674
|
|
|
761
675
|
// Detect Hermes version and model
|
|
@@ -799,7 +713,7 @@ export async function runInstall(options = {}) {
|
|
|
799
713
|
}
|
|
800
714
|
|
|
801
715
|
// 4. Confirmation
|
|
802
|
-
const agents = (await import('./agent-registry.mjs')).loadAgentRegistry(tier);
|
|
716
|
+
const agents = (await import('./agent-registry.mjs')).loadAgentRegistry(tier, { runtime: 'hermes' });
|
|
803
717
|
if (!auto) {
|
|
804
718
|
printSection('Install Summary');
|
|
805
719
|
console.log('');
|
|
@@ -835,7 +749,6 @@ export async function runInstall(options = {}) {
|
|
|
835
749
|
skills: [],
|
|
836
750
|
codingTool: null,
|
|
837
751
|
codingSkill: null,
|
|
838
|
-
missionControl: null,
|
|
839
752
|
});
|
|
840
753
|
|
|
841
754
|
console.log('');
|
|
@@ -853,6 +766,104 @@ export async function runInstall(options = {}) {
|
|
|
853
766
|
}
|
|
854
767
|
// ── END HERMES PATH ────────────────────────────────────────────────────────
|
|
855
768
|
|
|
769
|
+
// ── ALICE-RUNTIME PATH ─────────────────────────────────────────────────────
|
|
770
|
+
if (runtime === 'alice-runtime') {
|
|
771
|
+
console.log(` ${icons.ok} ${greenBold('alice-runtime detected')} ${dim('─')} installing canonical ~/.alice agents\n`);
|
|
772
|
+
|
|
773
|
+
let mode;
|
|
774
|
+
if (options.modeOverride) {
|
|
775
|
+
mode = options.modeOverride;
|
|
776
|
+
} else if (auto) {
|
|
777
|
+
mode = manifest ? 'upgrade' : 'fresh';
|
|
778
|
+
} else {
|
|
779
|
+
mode = await promptInstallMode();
|
|
780
|
+
}
|
|
781
|
+
|
|
782
|
+
if (mode === 'upgrade' && !manifest) {
|
|
783
|
+
console.log(` ${icons.warn} ${yellow('No previous install found. Switching to fresh install.')}\n`);
|
|
784
|
+
mode = 'fresh';
|
|
785
|
+
}
|
|
786
|
+
|
|
787
|
+
let userInfo;
|
|
788
|
+
if (auto) {
|
|
789
|
+
userInfo = { name: detectUserName(), timezone: detectTimezone(), notes: '' };
|
|
790
|
+
} else {
|
|
791
|
+
printSection('About You');
|
|
792
|
+
console.log('');
|
|
793
|
+
userInfo = await promptUserInfo();
|
|
794
|
+
}
|
|
795
|
+
|
|
796
|
+
let tier;
|
|
797
|
+
if (options.tierOverride) {
|
|
798
|
+
tier = normalizeTierOption(options.tierOverride);
|
|
799
|
+
} else if (auto) {
|
|
800
|
+
tier = 'starter';
|
|
801
|
+
} else {
|
|
802
|
+
tier = await promptTier();
|
|
803
|
+
}
|
|
804
|
+
|
|
805
|
+
const codingAgent = resolveCodingAgentPreference({
|
|
806
|
+
detectedModels: null,
|
|
807
|
+
override: options.codingTool,
|
|
808
|
+
});
|
|
809
|
+
const agents = loadAgentRegistry(tier);
|
|
810
|
+
|
|
811
|
+
if (!auto) {
|
|
812
|
+
printSection('Install Summary');
|
|
813
|
+
console.log('');
|
|
814
|
+
console.log(` ${dim('Runtime:')} ${green('alice-runtime')}`);
|
|
815
|
+
console.log(` ${dim('Tier:')} ${green(tier)} ${dim('(' + agents.length + ' agents)')}`);
|
|
816
|
+
console.log(` ${dim('Target:')} ${green('~/.alice/agents/{id}/')}`);
|
|
817
|
+
console.log(` ${dim('User:')} ${green(userInfo.name)}`);
|
|
818
|
+
console.log('');
|
|
819
|
+
const ok = await confirm(' Proceed with alice-runtime install?');
|
|
820
|
+
if (!ok) {
|
|
821
|
+
console.log(' Aborted.');
|
|
822
|
+
closePrompt();
|
|
823
|
+
return;
|
|
824
|
+
}
|
|
825
|
+
}
|
|
826
|
+
|
|
827
|
+
closePrompt();
|
|
828
|
+
|
|
829
|
+
printSection('Installing A.L.I.C.E. on alice-runtime');
|
|
830
|
+
console.log('');
|
|
831
|
+
|
|
832
|
+
const { workspaces: results, installedSkill } = scaffoldAll(agents, userInfo, codingAgent, {
|
|
833
|
+
runtime: 'alice-runtime',
|
|
834
|
+
});
|
|
835
|
+
const definitions = results.filter((r) => r.definitionPath).length;
|
|
836
|
+
printStepDone('Agent definitions', `${definitions} written`);
|
|
837
|
+
printStepDone('Workspaces', `${results.length} ready`);
|
|
838
|
+
|
|
839
|
+
writeManifest({
|
|
840
|
+
installedAt: manifest?.installedAt,
|
|
841
|
+
tier,
|
|
842
|
+
agents: agents.map((a) => a.id),
|
|
843
|
+
userName: userInfo.name,
|
|
844
|
+
userTimezone: userInfo.timezone,
|
|
845
|
+
runtime: 'alice-runtime',
|
|
846
|
+
modelPreset: 'runtime-default',
|
|
847
|
+
skills: [installedSkill.skillId],
|
|
848
|
+
codingTool: installedSkill.preferredTool,
|
|
849
|
+
codingSkill: installedSkill.skillId,
|
|
850
|
+
});
|
|
851
|
+
printStepDone('Manifest written');
|
|
852
|
+
|
|
853
|
+
console.log('');
|
|
854
|
+
printSeparator();
|
|
855
|
+
console.log('');
|
|
856
|
+
console.log(` ${icons.ok} ${greenBold('A.L.I.C.E. installed on alice-runtime!')} ${dim(agents.length + ' agents ready.')}`);
|
|
857
|
+
console.log('');
|
|
858
|
+
console.log(` ${dim('Health check:')} ${cyan('alice-runtime doctor')}`);
|
|
859
|
+
console.log(` ${dim('Agents dir:')} ${cyan('~/.alice/agents/')}`);
|
|
860
|
+
console.log('');
|
|
861
|
+
printSeparator();
|
|
862
|
+
console.log('');
|
|
863
|
+
return;
|
|
864
|
+
}
|
|
865
|
+
// ── END ALICE-RUNTIME PATH ─────────────────────────────────────────────────
|
|
866
|
+
|
|
856
867
|
// OpenClaw / NemoClaw path (existing behavior)
|
|
857
868
|
// 1. Detect OpenClaw — offer to install if missing
|
|
858
869
|
if (!isOpenClawInstalled() || !configExists()) {
|
|
@@ -919,6 +930,10 @@ export async function runInstall(options = {}) {
|
|
|
919
930
|
}
|
|
920
931
|
}
|
|
921
932
|
|
|
933
|
+
if (options.force) {
|
|
934
|
+
mode = manifest ? 'merge' : 'fresh';
|
|
935
|
+
}
|
|
936
|
+
|
|
922
937
|
if (mode === 'fresh' && !auto) {
|
|
923
938
|
const ok = await confirm(' ⚠ This will replace the agents section in openclaw.json. Continue?');
|
|
924
939
|
if (!ok) {
|
|
@@ -1050,73 +1065,6 @@ export async function runInstall(options = {}) {
|
|
|
1050
1065
|
}
|
|
1051
1066
|
}
|
|
1052
1067
|
|
|
1053
|
-
let missionControl = null;
|
|
1054
|
-
const existingMissionControl = manifest?.missionControl;
|
|
1055
|
-
if (tier === 'pro') {
|
|
1056
|
-
const cloudFlag = options.cloud === true ? true : options.cloud === false ? false : null;
|
|
1057
|
-
const enableCloud = auto
|
|
1058
|
-
? cloudFlag ?? existingMissionControl?.enabled ?? false
|
|
1059
|
-
: cloudFlag ?? await promptCloudAddon();
|
|
1060
|
-
|
|
1061
|
-
if (enableCloud) {
|
|
1062
|
-
const cloudStatus = getCloudStatus();
|
|
1063
|
-
|
|
1064
|
-
// Upgrade mode: show existing cloud status
|
|
1065
|
-
if (mode === 'upgrade' && (cloudStatus.authenticated || existingMissionControl?.enabled)) {
|
|
1066
|
-
console.log('');
|
|
1067
|
-
console.log(` ${icons.ok} ${green('A.L.I.C.E. Cloud is configured')}`);
|
|
1068
|
-
if (cloudStatus.user) {
|
|
1069
|
-
console.log(` ${dim('User:')} ${cloudStatus.user}`);
|
|
1070
|
-
}
|
|
1071
|
-
if (cloudStatus.gatewayUrl) {
|
|
1072
|
-
console.log(` ${dim('Gateway:')} ${cloudStatus.gatewayUrl}`);
|
|
1073
|
-
}
|
|
1074
|
-
if (cloudStatus.registeredAt) {
|
|
1075
|
-
console.log(` ${dim('Registered:')} ${cloudStatus.registeredAt}`);
|
|
1076
|
-
}
|
|
1077
|
-
console.log('');
|
|
1078
|
-
|
|
1079
|
-
const reauth = auto ? false : await promptCloudReauth();
|
|
1080
|
-
if (!reauth) {
|
|
1081
|
-
// Keep existing config — use Supabase config if available, fall back to legacy
|
|
1082
|
-
if (cloudStatus.authenticated) {
|
|
1083
|
-
missionControl = {
|
|
1084
|
-
enabled: true,
|
|
1085
|
-
provider: 'cloud',
|
|
1086
|
-
dashboardUrl: existingMissionControl?.dashboardUrl || 'https://alice.av3.ai',
|
|
1087
|
-
ingestUrl: existingMissionControl?.ingestUrl || 'https://alice.av3.ai/api/v1/ingest',
|
|
1088
|
-
sourceNode: existingMissionControl?.sourceNode || getDefaultMissionControlSettings().sourceNode,
|
|
1089
|
-
};
|
|
1090
|
-
} else {
|
|
1091
|
-
missionControl = { ...existingMissionControl, enabled: true };
|
|
1092
|
-
}
|
|
1093
|
-
} else {
|
|
1094
|
-
// Re-authenticate — run alice-cloud login inline
|
|
1095
|
-
missionControl = await _runCloudOnboarding(auto, options, existingMissionControl);
|
|
1096
|
-
}
|
|
1097
|
-
} else {
|
|
1098
|
-
// Fresh install — run cloud onboarding
|
|
1099
|
-
const wantsSetup = auto ? true : await promptCloudSetup();
|
|
1100
|
-
|
|
1101
|
-
if (wantsSetup) {
|
|
1102
|
-
missionControl = await _runCloudOnboarding(auto, options, existingMissionControl);
|
|
1103
|
-
} else {
|
|
1104
|
-
console.log('');
|
|
1105
|
-
console.log(` ${dim('You can set up cloud later with:')} ${cyan('alice-cloud login && alice-cloud register')}`);
|
|
1106
|
-
console.log('');
|
|
1107
|
-
// Cloud addon enabled but setup skipped — bridge installed, no auth yet
|
|
1108
|
-
missionControl = {
|
|
1109
|
-
enabled: true,
|
|
1110
|
-
provider: 'cloud',
|
|
1111
|
-
dashboardUrl: 'https://alice.av3.ai',
|
|
1112
|
-
ingestUrl: 'https://alice.av3.ai/api/v1/ingest',
|
|
1113
|
-
sourceNode: getDefaultMissionControlSettings().sourceNode,
|
|
1114
|
-
};
|
|
1115
|
-
}
|
|
1116
|
-
}
|
|
1117
|
-
}
|
|
1118
|
-
}
|
|
1119
|
-
|
|
1120
1068
|
const codingAgent = resolveCodingAgentPreference({
|
|
1121
1069
|
detectedModels,
|
|
1122
1070
|
override: options.codingTool,
|
|
@@ -1125,7 +1073,7 @@ export async function runInstall(options = {}) {
|
|
|
1125
1073
|
const agents = allAgents;
|
|
1126
1074
|
|
|
1127
1075
|
// 6. Confirmation
|
|
1128
|
-
|
|
1076
|
+
printSummary(mode, tier, agents, preset, userInfo, detectedModels);
|
|
1129
1077
|
|
|
1130
1078
|
if (!auto) {
|
|
1131
1079
|
const ok = await confirm(' Proceed with installation?');
|
|
@@ -1154,16 +1102,6 @@ export async function runInstall(options = {}) {
|
|
|
1154
1102
|
console.log(` ${icons.warn} ${yellow(warning)}`);
|
|
1155
1103
|
}
|
|
1156
1104
|
|
|
1157
|
-
if (missionControl?.enabled) {
|
|
1158
|
-
const missionControlResult = configureMissionControlCloud(missionControl);
|
|
1159
|
-
printStepDone('A.L.I.C.E. Cloud', missionControlResult.summary.dashboardUrl);
|
|
1160
|
-
if (!missionControlResult.summary.hasIngestToken) {
|
|
1161
|
-
printStepSkip('Cloud authentication pending', 'run `alice-cloud login && alice-cloud register` to complete setup');
|
|
1162
|
-
}
|
|
1163
|
-
} else {
|
|
1164
|
-
printStepSkip('A.L.I.C.E. Cloud', 'not enabled for this install');
|
|
1165
|
-
}
|
|
1166
|
-
|
|
1167
1105
|
// Scaffold workspaces
|
|
1168
1106
|
const { workspaces: results, installedSkill } = scaffoldAll(agents, userInfo, codingAgent);
|
|
1169
1107
|
let newWorkspaces = 0;
|
|
@@ -1207,20 +1145,11 @@ export async function runInstall(options = {}) {
|
|
|
1207
1145
|
agents: agents.map((a) => a.id),
|
|
1208
1146
|
userName: userInfo.name,
|
|
1209
1147
|
userTimezone: userInfo.timezone,
|
|
1148
|
+
runtime,
|
|
1210
1149
|
modelPreset: effectivePreset,
|
|
1211
1150
|
skills: [...new Set([...(existing?.skills || []), installedSkill.skillId, ...(skillsInstalled || [])])],
|
|
1212
1151
|
codingTool: installedSkill.preferredTool,
|
|
1213
1152
|
codingSkill: installedSkill.skillId,
|
|
1214
|
-
missionControl: missionControl
|
|
1215
|
-
? {
|
|
1216
|
-
enabled: true,
|
|
1217
|
-
provider: 'cloud',
|
|
1218
|
-
dashboardUrl: missionControl.dashboardUrl,
|
|
1219
|
-
ingestUrl: missionControl.ingestUrl,
|
|
1220
|
-
sourceNode: missionControl.sourceNode,
|
|
1221
|
-
bridgeInstalled: true,
|
|
1222
|
-
}
|
|
1223
|
-
: existing?.missionControl || null,
|
|
1224
1153
|
});
|
|
1225
1154
|
printStepDone('Manifest written');
|
|
1226
1155
|
|
|
@@ -1236,16 +1165,9 @@ export async function runInstall(options = {}) {
|
|
|
1236
1165
|
console.log(` ${icons.info} ${dim('Runtime: OpenClaw')}`);
|
|
1237
1166
|
}
|
|
1238
1167
|
console.log('');
|
|
1239
|
-
if (missionControl?.enabled && !isCloudAuthenticated()) {
|
|
1240
|
-
console.log(` ${yellow('☁️ Cloud setup pending:')} ${cyan('alice-cloud login && alice-cloud register')}`);
|
|
1241
|
-
console.log('');
|
|
1242
|
-
}
|
|
1243
1168
|
console.log(` ${dim('Manage skills:')} ${cyan('npx @robbiesrobotics/alice-agents --skills')}`);
|
|
1244
1169
|
console.log(` ${dim('Health check:')} ${cyan('npx @robbiesrobotics/alice-agents --doctor')}`);
|
|
1245
1170
|
console.log(` ${dim('Restart runtime:')} ${cyan('openclaw gateway restart')}`);
|
|
1246
|
-
if (missionControl?.enabled) {
|
|
1247
|
-
console.log(` ${dim('Cloud dashboard:')} ${cyan('https://alice.av3.ai')}`);
|
|
1248
|
-
}
|
|
1249
1171
|
console.log('');
|
|
1250
1172
|
printSeparator();
|
|
1251
1173
|
console.log('');
|
package/lib/manifest.mjs
CHANGED
|
@@ -1,17 +1,19 @@
|
|
|
1
|
-
import { readFileSync, writeFileSync } from 'node:fs';
|
|
2
|
-
import { join } from 'node:path';
|
|
1
|
+
import { existsSync, mkdirSync, readFileSync, writeFileSync } from 'node:fs';
|
|
2
|
+
import { dirname, join } from 'node:path';
|
|
3
3
|
import { homedir } from 'node:os';
|
|
4
4
|
|
|
5
5
|
const MANIFEST_NAME = '.alice-manifest.json';
|
|
6
6
|
const PACKAGE_VERSION = JSON.parse(readFileSync(new URL('../package.json', import.meta.url), 'utf8')).version || '0.0.0';
|
|
7
7
|
|
|
8
|
-
export function getManifestPath() {
|
|
8
|
+
export function getManifestPath(runtime = null) {
|
|
9
|
+
if (runtime === 'alice-runtime') return join(homedir(), '.alice', MANIFEST_NAME);
|
|
9
10
|
return join(homedir(), '.openclaw', MANIFEST_NAME);
|
|
10
11
|
}
|
|
11
12
|
|
|
12
13
|
export function readManifest() {
|
|
13
14
|
try {
|
|
14
|
-
const
|
|
15
|
+
const aliceRuntimePath = getManifestPath('alice-runtime');
|
|
16
|
+
const raw = readFileSync(existsSync(aliceRuntimePath) ? aliceRuntimePath : getManifestPath(), 'utf8');
|
|
15
17
|
return JSON.parse(raw);
|
|
16
18
|
} catch {
|
|
17
19
|
return null;
|
|
@@ -20,24 +22,27 @@ export function readManifest() {
|
|
|
20
22
|
|
|
21
23
|
export function writeManifest(data) {
|
|
22
24
|
const existing = readManifest() || {};
|
|
25
|
+
const manifestPath = getManifestPath(data.runtime);
|
|
23
26
|
const now = new Date().toISOString();
|
|
27
|
+
const { missionControl: _legacyMissionControl, ...existingClean } = existing;
|
|
24
28
|
const manifest = {
|
|
25
|
-
...
|
|
29
|
+
...existingClean,
|
|
26
30
|
version: data.version || existing.version || PACKAGE_VERSION,
|
|
27
|
-
schemaVersion:
|
|
28
|
-
packageVersion: data.packageVersion ||
|
|
31
|
+
schemaVersion: 3,
|
|
32
|
+
packageVersion: data.packageVersion || PACKAGE_VERSION,
|
|
29
33
|
installedAt: data.installedAt || existing.installedAt || now,
|
|
30
34
|
updatedAt: now,
|
|
31
35
|
tier: data.tier ?? existing.tier ?? 'starter',
|
|
32
36
|
agents: Array.isArray(data.agents) ? [...new Set(data.agents)] : (existing.agents || []),
|
|
33
37
|
userName: data.userName ?? existing.userName ?? null,
|
|
34
38
|
userTimezone: data.userTimezone ?? existing.userTimezone ?? null,
|
|
39
|
+
runtime: data.runtime ?? existing.runtime ?? 'openclaw',
|
|
35
40
|
modelPreset: data.modelPreset ?? existing.modelPreset ?? null,
|
|
36
|
-
missionControl: data.missionControl ?? existing.missionControl ?? null,
|
|
37
41
|
skills: Array.isArray(data.skills) ? [...new Set(data.skills)] : (existing.skills || []),
|
|
38
42
|
codingTool: data.codingTool ?? existing.codingTool ?? null,
|
|
39
43
|
codingSkill: data.codingSkill ?? existing.codingSkill ?? null,
|
|
40
44
|
};
|
|
41
|
-
|
|
45
|
+
mkdirSync(dirname(manifestPath), { recursive: true });
|
|
46
|
+
writeFileSync(manifestPath, JSON.stringify(manifest, null, 2) + '\n', 'utf8');
|
|
42
47
|
return manifest;
|
|
43
48
|
}
|
package/lib/prompter.mjs
CHANGED
|
@@ -106,8 +106,8 @@ export async function promptCustomModel() {
|
|
|
106
106
|
|
|
107
107
|
export async function promptTier() {
|
|
108
108
|
return choose('Agent tier:', [
|
|
109
|
-
{ label: 'Starter (
|
|
110
|
-
{ label: 'Pro (
|
|
109
|
+
{ label: 'Starter (14 agents) — core team for most workflows', value: 'starter' },
|
|
110
|
+
{ label: 'Pro (22 more agents, 36 total) — sign up at getalice.av3.ai/signup?plan=pro', value: 'pro' },
|
|
111
111
|
]);
|
|
112
112
|
}
|
|
113
113
|
|
|
@@ -126,35 +126,3 @@ export async function promptLicenseKey() {
|
|
|
126
126
|
});
|
|
127
127
|
}
|
|
128
128
|
|
|
129
|
-
export async function promptCloudAddon() {
|
|
130
|
-
console.log('');
|
|
131
|
-
console.log(' A.L.I.C.E. Cloud add-on');
|
|
132
|
-
console.log(' Remote monitoring, fleet management, and cloud sync for Pro users.');
|
|
133
|
-
console.log('');
|
|
134
|
-
return confirm(' Enable A.L.I.C.E. Cloud on this machine?', true);
|
|
135
|
-
}
|
|
136
|
-
|
|
137
|
-
export async function promptCloudSetup() {
|
|
138
|
-
console.log('');
|
|
139
|
-
console.log(' A.L.I.C.E. Cloud connects your local gateway to alice.av3.ai');
|
|
140
|
-
console.log(' for remote monitoring, fleet management, and cloud sync.');
|
|
141
|
-
console.log('');
|
|
142
|
-
return confirm(' Would you like to set up A.L.I.C.E. Cloud now?', true);
|
|
143
|
-
}
|
|
144
|
-
|
|
145
|
-
export async function promptCloudReauth() {
|
|
146
|
-
console.log('');
|
|
147
|
-
return confirm(' Re-authenticate with A.L.I.C.E. Cloud?', false);
|
|
148
|
-
}
|
|
149
|
-
|
|
150
|
-
export async function promptCloudHeartbeat() {
|
|
151
|
-
return confirm(' Start the heartbeat daemon (keeps cloud connection alive)?', true);
|
|
152
|
-
}
|
|
153
|
-
|
|
154
|
-
export async function promptCloudToken() {
|
|
155
|
-
console.log('');
|
|
156
|
-
console.log(' After logging in via your browser, paste the access token here.');
|
|
157
|
-
console.log(' Press Enter to skip — you can run `alice-cloud login` later.');
|
|
158
|
-
console.log('');
|
|
159
|
-
return input(' Access token', '');
|
|
160
|
-
}
|